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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -250
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/dist/cjs/components/avatar/MrlAvatar/MrlAvatar.js +17 -11
  4. package/dist/cjs/components/avatar/MrlAvatar/MrlAvatar.js.map +1 -1
  5. package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js +27 -25
  6. package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
  7. package/dist/cjs/components/badge/MrlBadge/MrlBadge.js +11 -5
  8. package/dist/cjs/components/badge/MrlBadge/MrlBadge.js.map +1 -1
  9. package/dist/cjs/components/badge/MrlBadgeNotification/MrlBadgeNotification.js +12 -4
  10. package/dist/cjs/components/badge/MrlBadgeNotification/MrlBadgeNotification.js.map +1 -1
  11. package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +13 -6
  12. package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
  13. package/dist/cjs/components/breadcrumb/MrlBreadcrumbSeparator/MrlBreadcrumbSeparator.js +7 -3
  14. package/dist/cjs/components/breadcrumb/MrlBreadcrumbSeparator/MrlBreadcrumbSeparator.js.map +1 -1
  15. package/dist/cjs/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js +24 -28
  16. package/dist/cjs/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js.map +1 -1
  17. package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +20 -20
  18. package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
  19. package/dist/cjs/components/button/MrlButton/MrlButton.js +21 -21
  20. package/dist/cjs/components/button/MrlButton/MrlButton.js.map +1 -1
  21. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js +20 -22
  22. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  23. package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js +14 -10
  24. package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
  25. package/dist/cjs/components/button/MrlProcessingButton/actions.js +11 -16
  26. package/dist/cjs/components/button/MrlProcessingButton/actions.js.map +1 -1
  27. package/dist/cjs/components/button/helpers.js +4 -6
  28. package/dist/cjs/components/button/helpers.js.map +1 -1
  29. package/dist/cjs/components/callout/MrlCallout/MrlCallout.js +8 -9
  30. package/dist/cjs/components/callout/MrlCallout/MrlCallout.js.map +1 -1
  31. package/dist/cjs/components/container/MrlContainer/MrlContainer.js +14 -7
  32. package/dist/cjs/components/container/MrlContainer/MrlContainer.js.map +1 -1
  33. package/dist/cjs/components/divider/MrlDivider/MrlDivider.js +18 -6
  34. package/dist/cjs/components/divider/MrlDivider/MrlDivider.js.map +1 -1
  35. package/dist/cjs/components/empty/default/MrlEmpty.js +8 -4
  36. package/dist/cjs/components/empty/default/MrlEmpty.js.map +1 -1
  37. package/dist/cjs/components/empty/large/MrlEmptyLarge.js +8 -4
  38. package/dist/cjs/components/empty/large/MrlEmptyLarge.js.map +1 -1
  39. package/dist/cjs/components/error-boundary/MrlErrorBoundary.js +30 -38
  40. package/dist/cjs/components/error-boundary/MrlErrorBoundary.js.map +1 -1
  41. package/dist/cjs/components/filter/MrlFilter/MrlFilter.js +7 -3
  42. package/dist/cjs/components/filter/MrlFilter/MrlFilter.js.map +1 -1
  43. package/dist/cjs/components/filter/MrlFilterContext/MrlFilterContext.js +8 -7
  44. package/dist/cjs/components/filter/MrlFilterContext/MrlFilterContext.js.map +1 -1
  45. package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js +9 -3
  46. package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
  47. package/dist/cjs/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js +6 -5
  48. package/dist/cjs/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js.map +1 -1
  49. package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +13 -4
  50. package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
  51. package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +11 -7
  52. package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
  53. package/dist/cjs/components/form/date-picker/MrlDatePicker.js +21 -14
  54. package/dist/cjs/components/form/date-picker/MrlDatePicker.js.map +1 -1
  55. package/dist/cjs/components/form/fieldset/MrlFieldset/MrlFieldset.js +8 -4
  56. package/dist/cjs/components/form/fieldset/MrlFieldset/MrlFieldset.js.map +1 -1
  57. package/dist/cjs/components/form/hooks/useActiveColor.js +2 -2
  58. package/dist/cjs/components/form/hooks/useActiveColor.js.map +1 -1
  59. package/dist/cjs/components/form/hooks/useIsEditable.js +3 -3
  60. package/dist/cjs/components/form/hooks/useIsEditable.js.map +1 -1
  61. package/dist/cjs/components/form/label/MrlLabel/MrlLabel.js +12 -5
  62. package/dist/cjs/components/form/label/MrlLabel/MrlLabel.js.map +1 -1
  63. package/dist/cjs/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js +19 -5
  64. package/dist/cjs/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js.map +1 -1
  65. package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +42 -31
  66. package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
  67. package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +21 -12
  68. package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
  69. package/dist/cjs/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js +19 -11
  70. package/dist/cjs/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js.map +1 -1
  71. package/dist/cjs/components/form/legacy-select/context/SelectContext.js +8 -7
  72. package/dist/cjs/components/form/legacy-select/context/SelectContext.js.map +1 -1
  73. package/dist/cjs/components/form/legacy-select/index.js +4 -3
  74. package/dist/cjs/components/form/legacy-select/index.js.map +1 -1
  75. package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js +7 -3
  76. package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
  77. package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +11 -5
  78. package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
  79. package/dist/cjs/components/form/radio/MrlRadioGroup/MrlRadioGroup.js +3 -2
  80. package/dist/cjs/components/form/radio/MrlRadioGroup/MrlRadioGroup.js.map +1 -1
  81. package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +10 -8
  82. package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
  83. package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +10 -8
  84. package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
  85. package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js +9 -5
  86. package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
  87. package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js +9 -5
  88. package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
  89. package/dist/cjs/components/form/select/components/MrlSelectClearIndicator.js +3 -2
  90. package/dist/cjs/components/form/select/components/MrlSelectClearIndicator.js.map +1 -1
  91. package/dist/cjs/components/form/select/components/MrlSelectContainer.js +3 -2
  92. package/dist/cjs/components/form/select/components/MrlSelectContainer.js.map +1 -1
  93. package/dist/cjs/components/form/select/components/MrlSelectDropdownIndicator.js +3 -2
  94. package/dist/cjs/components/form/select/components/MrlSelectDropdownIndicator.js.map +1 -1
  95. package/dist/cjs/components/form/select/components/MrlSelectMultiValue.js +9 -3
  96. package/dist/cjs/components/form/select/components/MrlSelectMultiValue.js.map +1 -1
  97. package/dist/cjs/components/form/select/components/MrlSelectMultiValueRemove.js +3 -2
  98. package/dist/cjs/components/form/select/components/MrlSelectMultiValueRemove.js.map +1 -1
  99. package/dist/cjs/components/form/select/components/MrlSelectOption.js +3 -2
  100. package/dist/cjs/components/form/select/components/MrlSelectOption.js.map +1 -1
  101. package/dist/cjs/components/form/select/components/MrlSelectValueContainer.js +3 -2
  102. package/dist/cjs/components/form/select/components/MrlSelectValueContainer.js.map +1 -1
  103. package/dist/cjs/components/form/select/styles/default.js +18 -18
  104. package/dist/cjs/components/form/select/styles/default.js.map +1 -1
  105. package/dist/cjs/components/form/select/styles/inline.js +2 -2
  106. package/dist/cjs/components/form/select/styles/inline.js.map +1 -1
  107. package/dist/cjs/components/form/select/styles/inlineNoLabel.js +3 -3
  108. package/dist/cjs/components/form/select/styles/inlineNoLabel.js.map +1 -1
  109. package/dist/cjs/components/form/select/styles/inlineStacked.js +2 -2
  110. package/dist/cjs/components/form/select/styles/inlineStacked.js.map +1 -1
  111. package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js +14 -7
  112. package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
  113. package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +13 -9
  114. package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
  115. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +31 -19
  116. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
  117. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js +14 -17
  118. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js.map +1 -1
  119. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js +28 -23
  120. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
  121. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js +14 -17
  122. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js.map +1 -1
  123. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -16
  124. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
  125. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js +14 -17
  126. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js.map +1 -1
  127. package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js +16 -9
  128. package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
  129. package/dist/cjs/components/form/utils.js +2 -4
  130. package/dist/cjs/components/form/utils.js.map +1 -1
  131. package/dist/cjs/components/grid/MrlCol/MrlCol.js +37 -46
  132. package/dist/cjs/components/grid/MrlCol/MrlCol.js.map +1 -1
  133. package/dist/cjs/components/grid/MrlGrid/MrlGrid.js +7 -3
  134. package/dist/cjs/components/grid/MrlGrid/MrlGrid.js.map +1 -1
  135. package/dist/cjs/components/grid/MrlRow/MrlRow.js +7 -3
  136. package/dist/cjs/components/grid/MrlRow/MrlRow.js.map +1 -1
  137. package/dist/cjs/components/keystroke/MrlKeystroke/MrlKeystroke.js +7 -3
  138. package/dist/cjs/components/keystroke/MrlKeystroke/MrlKeystroke.js.map +1 -1
  139. package/dist/cjs/components/keystroke/MrlKeystrokes/MrlKeystrokes.js +7 -3
  140. package/dist/cjs/components/keystroke/MrlKeystrokes/MrlKeystrokes.js.map +1 -1
  141. package/dist/cjs/components/layout/MrlMain/MrlMain.js +9 -3
  142. package/dist/cjs/components/layout/MrlMain/MrlMain.js.map +1 -1
  143. package/dist/cjs/components/layout/MrlPage/MrlPage.js +9 -3
  144. package/dist/cjs/components/layout/MrlPage/MrlPage.js.map +1 -1
  145. package/dist/cjs/components/layout/MrlPage/index.js +3 -2
  146. package/dist/cjs/components/layout/MrlPage/index.js.map +1 -1
  147. package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js +27 -15
  148. package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
  149. package/dist/cjs/components/layout/MrlTopbar/MrlTopbar.js +10 -3
  150. package/dist/cjs/components/layout/MrlTopbar/MrlTopbar.js.map +1 -1
  151. package/dist/cjs/components/layout/context/LayoutContext.js +7 -6
  152. package/dist/cjs/components/layout/context/LayoutContext.js.map +1 -1
  153. package/dist/cjs/components/layout/error-page/MrlBrandColors/MrlBrandColors.js +18 -14
  154. package/dist/cjs/components/layout/error-page/MrlBrandColors/MrlBrandColors.js.map +1 -1
  155. package/dist/cjs/components/layout/error-page/MrlErrorPage/MrlErrorPage.js +13 -9
  156. package/dist/cjs/components/layout/error-page/MrlErrorPage/MrlErrorPage.js.map +1 -1
  157. package/dist/cjs/components/layout/utils.js +2 -2
  158. package/dist/cjs/components/layout/utils.js.map +1 -1
  159. package/dist/cjs/components/link/MrlLink/MrlLink.js +13 -4
  160. package/dist/cjs/components/link/MrlLink/MrlLink.js.map +1 -1
  161. package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js +16 -14
  162. package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
  163. package/dist/cjs/components/live-region/MrlLiveRegion/MrlLiveRegion.js +13 -12
  164. package/dist/cjs/components/live-region/MrlLiveRegion/MrlLiveRegion.js.map +1 -1
  165. package/dist/cjs/components/loader/MrlProgressBar/MrlProgressBar.js +16 -6
  166. package/dist/cjs/components/loader/MrlProgressBar/MrlProgressBar.js.map +1 -1
  167. package/dist/cjs/components/loader/MrlSpinner/MrlSpinner.js +16 -4
  168. package/dist/cjs/components/loader/MrlSpinner/MrlSpinner.js.map +1 -1
  169. package/dist/cjs/components/menu/MrlMenu/MrlMenu.js +61 -63
  170. package/dist/cjs/components/menu/MrlMenu/MrlMenu.js.map +1 -1
  171. package/dist/cjs/components/menu/MrlMenu/utilities.js +4 -6
  172. package/dist/cjs/components/menu/MrlMenu/utilities.js.map +1 -1
  173. package/dist/cjs/components/menu/MrlMenuGroup/MrlMenuGroup.js +4 -3
  174. package/dist/cjs/components/menu/MrlMenuGroup/MrlMenuGroup.js.map +1 -1
  175. package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js +24 -19
  176. package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
  177. package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -6
  178. package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
  179. package/dist/cjs/components/menu/context/MrlMenuContext.js +3 -2
  180. package/dist/cjs/components/menu/context/MrlMenuContext.js.map +1 -1
  181. package/dist/cjs/components/menu/hooks/useBrowserEdgeScroll.js +19 -15
  182. package/dist/cjs/components/menu/hooks/useBrowserEdgeScroll.js.map +1 -1
  183. package/dist/cjs/components/menu/hooks/useMenuScroll.js +8 -8
  184. package/dist/cjs/components/menu/hooks/useMenuScroll.js.map +1 -1
  185. package/dist/cjs/components/menu/hooks/useSubMenuElementPosition.js +3 -3
  186. package/dist/cjs/components/menu/hooks/useSubMenuElementPosition.js.map +1 -1
  187. package/dist/cjs/components/menu/utilities/flip-position.js +1 -1
  188. package/dist/cjs/components/menu/utilities/flip-position.js.map +1 -1
  189. package/dist/cjs/components/modal/MrlModal/MrlModal.js +29 -25
  190. package/dist/cjs/components/modal/MrlModal/MrlModal.js.map +1 -1
  191. package/dist/cjs/components/modal/MrlModalContent/MrlModalContent.js +12 -8
  192. package/dist/cjs/components/modal/MrlModalContent/MrlModalContent.js.map +1 -1
  193. package/dist/cjs/components/modal/MrlModalContext/MrlModalContext.js +4 -3
  194. package/dist/cjs/components/modal/MrlModalContext/MrlModalContext.js.map +1 -1
  195. package/dist/cjs/components/modal/MrlModalFooter/MrlModalFooter.js +13 -6
  196. package/dist/cjs/components/modal/MrlModalFooter/MrlModalFooter.js.map +1 -1
  197. package/dist/cjs/components/modal/MrlModalHeader/MrlModalHeader.js +12 -6
  198. package/dist/cjs/components/modal/MrlModalHeader/MrlModalHeader.js.map +1 -1
  199. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavGroup/MrlSidebarNavGroup.js +7 -3
  200. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavGroup/MrlSidebarNavGroup.js.map +1 -1
  201. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js +11 -3
  202. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js.map +1 -1
  203. package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js +26 -19
  204. package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
  205. package/dist/cjs/components/notification/MrlInlineMessage/MrlInlineMessage.js +17 -7
  206. package/dist/cjs/components/notification/MrlInlineMessage/MrlInlineMessage.js.map +1 -1
  207. package/dist/cjs/components/notification/MrlToast/MrlToast.js +18 -9
  208. package/dist/cjs/components/notification/MrlToast/MrlToast.js.map +1 -1
  209. package/dist/cjs/components/pagination/MrlPagination/MrlPagination.js +7 -3
  210. package/dist/cjs/components/pagination/MrlPagination/MrlPagination.js.map +1 -1
  211. package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js +7 -3
  212. package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
  213. package/dist/cjs/components/pagination/MrlPaginationText/MrlPaginationText.js +8 -4
  214. package/dist/cjs/components/pagination/MrlPaginationText/MrlPaginationText.js.map +1 -1
  215. package/dist/cjs/components/panel/MrlPanel/MrlPanel.js +25 -17
  216. package/dist/cjs/components/panel/MrlPanel/MrlPanel.js.map +1 -1
  217. package/dist/cjs/components/panel/MrlPanelContext/MrlPanelContext.js +3 -2
  218. package/dist/cjs/components/panel/MrlPanelContext/MrlPanelContext.js.map +1 -1
  219. package/dist/cjs/components/panel/MrlPanelFooter/MrlPanelFooter.js +9 -5
  220. package/dist/cjs/components/panel/MrlPanelFooter/MrlPanelFooter.js.map +1 -1
  221. package/dist/cjs/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js +8 -4
  222. package/dist/cjs/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js.map +1 -1
  223. package/dist/cjs/components/popover/MrlPopover/MrlPopover.js +77 -73
  224. package/dist/cjs/components/popover/MrlPopover/MrlPopover.js.map +1 -1
  225. package/dist/cjs/components/popover/MrlPopover/MrlPopoverScrollContainer.js +3 -2
  226. package/dist/cjs/components/popover/MrlPopover/MrlPopoverScrollContainer.js.map +1 -1
  227. package/dist/cjs/components/popover/MrlPopover/context/MrlPopoverContext.js +3 -2
  228. package/dist/cjs/components/popover/MrlPopover/context/MrlPopoverContext.js.map +1 -1
  229. package/dist/cjs/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js +22 -23
  230. package/dist/cjs/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js.map +1 -1
  231. package/dist/cjs/components/popover/MrlPopover/utilities/get-data-point.js +1 -1
  232. package/dist/cjs/components/popover/MrlPopover/utilities/get-data-point.js.map +1 -1
  233. package/dist/cjs/components/popover/MrlPopover/utilities/get-offset.js +1 -1
  234. package/dist/cjs/components/popover/MrlPopover/utilities/get-offset.js.map +1 -1
  235. package/dist/cjs/components/portal/MrlPortal.js +5 -4
  236. package/dist/cjs/components/portal/MrlPortal.js.map +1 -1
  237. package/dist/cjs/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js +237 -263
  238. package/dist/cjs/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js.map +1 -1
  239. package/dist/cjs/components/skeleton/MrlSkeleton/MrlSkeleton.js +11 -5
  240. package/dist/cjs/components/skeleton/MrlSkeleton/MrlSkeleton.js.map +1 -1
  241. package/dist/cjs/components/skeleton/MrlSkeletonText/MrlSkeletonText.js +12 -6
  242. package/dist/cjs/components/skeleton/MrlSkeletonText/MrlSkeletonText.js.map +1 -1
  243. package/dist/cjs/components/svg/MrlSvg/MrlSvg.js +17 -17
  244. package/dist/cjs/components/svg/MrlSvg/MrlSvg.js.map +1 -1
  245. package/dist/cjs/components/svg/MrlSvgAnimate/MrlSvgAnimate.js +20 -15
  246. package/dist/cjs/components/svg/MrlSvgAnimate/MrlSvgAnimate.js.map +1 -1
  247. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js +78 -96
  248. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  249. package/dist/cjs/components/table/MrlSmartTable/components/DefaultCellContent.js +5 -4
  250. package/dist/cjs/components/table/MrlSmartTable/components/DefaultCellContent.js.map +1 -1
  251. package/dist/cjs/components/table/MrlTable/MrlTable.js +7 -3
  252. package/dist/cjs/components/table/MrlTable/MrlTable.js.map +1 -1
  253. package/dist/cjs/components/table/MrlTableBody/MrlTableBody.js +7 -3
  254. package/dist/cjs/components/table/MrlTableBody/MrlTableBody.js.map +1 -1
  255. package/dist/cjs/components/table/MrlTableCell/MrlTableCell.js +12 -3
  256. package/dist/cjs/components/table/MrlTableCell/MrlTableCell.js.map +1 -1
  257. package/dist/cjs/components/table/MrlTableColumn/MrlTableColumn.js +13 -3
  258. package/dist/cjs/components/table/MrlTableColumn/MrlTableColumn.js.map +1 -1
  259. package/dist/cjs/components/table/MrlTableEmptyState/MrlTableEmptyState.js +7 -3
  260. package/dist/cjs/components/table/MrlTableEmptyState/MrlTableEmptyState.js.map +1 -1
  261. package/dist/cjs/components/table/MrlTableHeader/MrlTableHeader.js +7 -3
  262. package/dist/cjs/components/table/MrlTableHeader/MrlTableHeader.js.map +1 -1
  263. package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js +13 -7
  264. package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
  265. package/dist/cjs/components/table/utils.js +4 -10
  266. package/dist/cjs/components/table/utils.js.map +1 -1
  267. package/dist/cjs/components/tabs/MrlTab/MrlTab.js +16 -9
  268. package/dist/cjs/components/tabs/MrlTab/MrlTab.js.map +1 -1
  269. package/dist/cjs/components/tabs/MrlTabContent/MrlTabContent.js +12 -5
  270. package/dist/cjs/components/tabs/MrlTabContent/MrlTabContent.js.map +1 -1
  271. package/dist/cjs/components/tabs/MrlTabGroup/MrlTabGroup.js +15 -13
  272. package/dist/cjs/components/tabs/MrlTabGroup/MrlTabGroup.js.map +1 -1
  273. package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js +16 -9
  274. package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
  275. package/dist/cjs/components/tabs/MrlTabs/MrlTabs.js +16 -10
  276. package/dist/cjs/components/tabs/MrlTabs/MrlTabs.js.map +1 -1
  277. package/dist/cjs/components/text/MrlText/MrlText.js +14 -5
  278. package/dist/cjs/components/text/MrlText/MrlText.js.map +1 -1
  279. package/dist/cjs/components/text/MrlTextHeading/MrlTextHeading.js +14 -4
  280. package/dist/cjs/components/text/MrlTextHeading/MrlTextHeading.js.map +1 -1
  281. package/dist/cjs/components/toolbar/MrlToolbar/MrlToolbar.js +17 -8
  282. package/dist/cjs/components/toolbar/MrlToolbar/MrlToolbar.js.map +1 -1
  283. package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +7 -3
  284. package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
  285. package/dist/cjs/components/toolbar/MrlToolbarItem/MrlToolbarItem.js +1 -1
  286. package/dist/cjs/components/toolbar/MrlToolbarItem/MrlToolbarItem.js.map +1 -1
  287. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js +37 -36
  288. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  289. package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +13 -4
  290. package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
  291. package/dist/cjs/components/tooltip/useTooltipPosition/index.js +21 -19
  292. package/dist/cjs/components/tooltip/useTooltipPosition/index.js.map +1 -1
  293. package/dist/cjs/components/tooltip/useTooltipPosition/utilities.js +4 -4
  294. package/dist/cjs/components/tooltip/useTooltipPosition/utilities.js.map +1 -1
  295. package/dist/cjs/components/tooltip/utils.js +3 -3
  296. package/dist/cjs/components/tooltip/utils.js.map +1 -1
  297. package/dist/cjs/hooks/useAutoClose/useAutoClose.js +7 -6
  298. package/dist/cjs/hooks/useAutoClose/useAutoClose.js.map +1 -1
  299. package/dist/cjs/hooks/useBreakpoint/index.js +5 -5
  300. package/dist/cjs/hooks/useBreakpoint/index.js.map +1 -1
  301. package/dist/cjs/hooks/useClickOutside/index.js +4 -4
  302. package/dist/cjs/hooks/useClickOutside/index.js.map +1 -1
  303. package/dist/cjs/hooks/useCoordinate/index.js +19 -28
  304. package/dist/cjs/hooks/useCoordinate/index.js.map +1 -1
  305. package/dist/cjs/hooks/useElementDimensions/index.js +21 -33
  306. package/dist/cjs/hooks/useElementDimensions/index.js.map +1 -1
  307. package/dist/cjs/hooks/useHasFocusableDescendant/index.js +7 -8
  308. package/dist/cjs/hooks/useHasFocusableDescendant/index.js.map +1 -1
  309. package/dist/cjs/hooks/useScrollbarInfo/index.js +11 -10
  310. package/dist/cjs/hooks/useScrollbarInfo/index.js.map +1 -1
  311. package/dist/cjs/hooks/useTriggerPosition/index.js +20 -22
  312. package/dist/cjs/hooks/useTriggerPosition/index.js.map +1 -1
  313. package/dist/cjs/hooks/useTriggerPosition/utilities.js +15 -23
  314. package/dist/cjs/hooks/useTriggerPosition/utilities.js.map +1 -1
  315. package/dist/cjs/utils/checkInvalidAttributes/index.js +2 -4
  316. package/dist/cjs/utils/checkInvalidAttributes/index.js.map +1 -1
  317. package/dist/cjs/utils/frameDebounce/index.js +27 -28
  318. package/dist/cjs/utils/frameDebounce/index.js.map +1 -1
  319. package/dist/cjs/utils/getCamelCase/getCamelCase.js +2 -2
  320. package/dist/cjs/utils/getCamelCase/getCamelCase.js.map +1 -1
  321. package/dist/cjs/utils/getScrollableContainer/getScrollableContainer.js +1 -1
  322. package/dist/cjs/utils/getScrollableContainer/getScrollableContainer.js.map +1 -1
  323. package/dist/cjs/utils/hasHorizontalScroll/hasHorizontalScroll.js +1 -1
  324. package/dist/cjs/utils/hasHorizontalScroll/hasHorizontalScroll.js.map +1 -1
  325. package/dist/cjs/utils/hasScrollContent/hasScrollContent.js +1 -1
  326. package/dist/cjs/utils/hasScrollContent/hasScrollContent.js.map +1 -1
  327. package/dist/cjs/utils/isElementAriaDisabled/isElementAriaDisabled.js +1 -1
  328. package/dist/cjs/utils/isElementAriaDisabled/isElementAriaDisabled.js.map +1 -1
  329. package/dist/cjs/utils/isElementScrollable/index.js +1 -1
  330. package/dist/cjs/utils/isElementScrollable/index.js.map +1 -1
  331. package/dist/cjs/utils/isImagePath/index.js +4 -3
  332. package/dist/cjs/utils/isImagePath/index.js.map +1 -1
  333. package/dist/cjs/utils/isImageUri/index.js +1 -1
  334. package/dist/cjs/utils/isImageUri/index.js.map +1 -1
  335. package/dist/cjs/utils/isObject/isObject.js +1 -1
  336. package/dist/cjs/utils/isObject/isObject.js.map +1 -1
  337. package/dist/cjs/utils/isTouch/index.js +1 -1
  338. package/dist/cjs/utils/isTouch/index.js.map +1 -1
  339. package/dist/cjs/utils/layers/index.js +1 -1
  340. package/dist/cjs/utils/layers/index.js.map +1 -1
  341. package/dist/cjs/utils/noop/index.js +1 -1
  342. package/dist/cjs/utils/noop/index.js.map +1 -1
  343. package/dist/cjs/utils/preventDefault/preventDefault.js +1 -1
  344. package/dist/cjs/utils/preventDefault/preventDefault.js.map +1 -1
  345. package/dist/cjs/utils/setAttributes/setAttributes.js +11 -5
  346. package/dist/cjs/utils/setAttributes/setAttributes.js.map +1 -1
  347. package/dist/cjs/utils/trapFocus/index.js +9 -11
  348. package/dist/cjs/utils/trapFocus/index.js.map +1 -1
  349. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -234
  350. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  351. package/dist/esm/components/avatar/MrlAvatar/MrlAvatar.js +12 -10
  352. package/dist/esm/components/avatar/MrlAvatar/MrlAvatar.js.map +1 -1
  353. package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js +22 -24
  354. package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
  355. package/dist/esm/components/badge/MrlBadge/MrlBadge.js +6 -4
  356. package/dist/esm/components/badge/MrlBadge/MrlBadge.js.map +1 -1
  357. package/dist/esm/components/badge/MrlBadgeNotification/MrlBadgeNotification.js +7 -3
  358. package/dist/esm/components/badge/MrlBadgeNotification/MrlBadgeNotification.js.map +1 -1
  359. package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +7 -4
  360. package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
  361. package/dist/esm/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js +18 -26
  362. package/dist/esm/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js.map +1 -1
  363. package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +14 -18
  364. package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
  365. package/dist/esm/components/button/MrlButton/MrlButton.js +16 -20
  366. package/dist/esm/components/button/MrlButton/MrlButton.js.map +1 -1
  367. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js +14 -20
  368. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  369. package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js +7 -7
  370. package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
  371. package/dist/esm/components/button/MrlProcessingButton/actions.js +12 -17
  372. package/dist/esm/components/button/MrlProcessingButton/actions.js.map +1 -1
  373. package/dist/esm/components/button/helpers.js +4 -6
  374. package/dist/esm/components/button/helpers.js.map +1 -1
  375. package/dist/esm/components/callout/MrlCallout/MrlCallout.js +5 -7
  376. package/dist/esm/components/callout/MrlCallout/MrlCallout.js.map +1 -1
  377. package/dist/esm/components/container/MrlContainer/MrlContainer.js +7 -4
  378. package/dist/esm/components/container/MrlContainer/MrlContainer.js.map +1 -1
  379. package/dist/esm/components/divider/MrlDivider/MrlDivider.js +13 -5
  380. package/dist/esm/components/divider/MrlDivider/MrlDivider.js.map +1 -1
  381. package/dist/esm/components/empty/default/MrlEmpty.js +1 -1
  382. package/dist/esm/components/empty/default/MrlEmpty.js.map +1 -1
  383. package/dist/esm/components/empty/large/MrlEmptyLarge.js +1 -1
  384. package/dist/esm/components/empty/large/MrlEmptyLarge.js.map +1 -1
  385. package/dist/esm/components/error-boundary/MrlErrorBoundary.js +28 -37
  386. package/dist/esm/components/error-boundary/MrlErrorBoundary.js.map +1 -1
  387. package/dist/esm/components/filter/MrlFilterContext/MrlFilterContext.js +5 -5
  388. package/dist/esm/components/filter/MrlFilterContext/MrlFilterContext.js.map +1 -1
  389. package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js +4 -2
  390. package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
  391. package/dist/esm/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js +3 -3
  392. package/dist/esm/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js.map +1 -1
  393. package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +8 -3
  394. package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
  395. package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +2 -2
  396. package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
  397. package/dist/esm/components/form/date-picker/MrlDatePicker.js +15 -12
  398. package/dist/esm/components/form/date-picker/MrlDatePicker.js.map +1 -1
  399. package/dist/esm/components/form/fieldset/MrlFieldset/MrlFieldset.js +2 -2
  400. package/dist/esm/components/form/fieldset/MrlFieldset/MrlFieldset.js.map +1 -1
  401. package/dist/esm/components/form/hooks/useActiveColor.js +2 -2
  402. package/dist/esm/components/form/hooks/useActiveColor.js.map +1 -1
  403. package/dist/esm/components/form/hooks/useIsEditable.js +3 -3
  404. package/dist/esm/components/form/hooks/useIsEditable.js.map +1 -1
  405. package/dist/esm/components/form/label/MrlLabel/MrlLabel.js +6 -3
  406. package/dist/esm/components/form/label/MrlLabel/MrlLabel.js.map +1 -1
  407. package/dist/esm/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js +14 -4
  408. package/dist/esm/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js.map +1 -1
  409. package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +37 -30
  410. package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
  411. package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +16 -11
  412. package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
  413. package/dist/esm/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js +14 -10
  414. package/dist/esm/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js.map +1 -1
  415. package/dist/esm/components/form/legacy-select/context/SelectContext.js +5 -5
  416. package/dist/esm/components/form/legacy-select/context/SelectContext.js.map +1 -1
  417. package/dist/esm/components/form/legacy-select/index.js +1 -1
  418. package/dist/esm/components/form/legacy-select/index.js.map +1 -1
  419. package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +4 -2
  420. package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
  421. package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +3 -5
  422. package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
  423. package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +3 -5
  424. package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
  425. package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js +2 -2
  426. package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
  427. package/dist/esm/components/form/select/MrlSelect/MrlSelect.js +2 -2
  428. package/dist/esm/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
  429. package/dist/esm/components/form/select/components/MrlSelectMultiValue.js +4 -2
  430. package/dist/esm/components/form/select/components/MrlSelectMultiValue.js.map +1 -1
  431. package/dist/esm/components/form/select/styles/default.js +18 -18
  432. package/dist/esm/components/form/select/styles/default.js.map +1 -1
  433. package/dist/esm/components/form/select/styles/inline.js +2 -2
  434. package/dist/esm/components/form/select/styles/inline.js.map +1 -1
  435. package/dist/esm/components/form/select/styles/inlineNoLabel.js +3 -3
  436. package/dist/esm/components/form/select/styles/inlineNoLabel.js.map +1 -1
  437. package/dist/esm/components/form/select/styles/inlineStacked.js +2 -2
  438. package/dist/esm/components/form/select/styles/inlineStacked.js.map +1 -1
  439. package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js +9 -6
  440. package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
  441. package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +3 -3
  442. package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
  443. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +25 -17
  444. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
  445. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js +8 -15
  446. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js.map +1 -1
  447. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js +21 -20
  448. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
  449. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js +8 -15
  450. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js.map +1 -1
  451. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +15 -15
  452. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
  453. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js +8 -15
  454. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js.map +1 -1
  455. package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js +9 -6
  456. package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
  457. package/dist/esm/components/form/utils.js +2 -4
  458. package/dist/esm/components/form/utils.js.map +1 -1
  459. package/dist/esm/components/grid/MrlCol/MrlCol.js +31 -44
  460. package/dist/esm/components/grid/MrlCol/MrlCol.js.map +1 -1
  461. package/dist/esm/components/layout/MrlMain/MrlMain.js +4 -2
  462. package/dist/esm/components/layout/MrlMain/MrlMain.js.map +1 -1
  463. package/dist/esm/components/layout/MrlPage/MrlPage.js +4 -2
  464. package/dist/esm/components/layout/MrlPage/MrlPage.js.map +1 -1
  465. package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js +19 -11
  466. package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
  467. package/dist/esm/components/layout/MrlTopbar/MrlTopbar.js +5 -2
  468. package/dist/esm/components/layout/MrlTopbar/MrlTopbar.js.map +1 -1
  469. package/dist/esm/components/layout/context/LayoutContext.js +4 -4
  470. package/dist/esm/components/layout/context/LayoutContext.js.map +1 -1
  471. package/dist/esm/components/layout/error-page/MrlBrandColors/MrlBrandColors.js +1 -1
  472. package/dist/esm/components/layout/error-page/MrlBrandColors/MrlBrandColors.js.map +1 -1
  473. package/dist/esm/components/layout/error-page/MrlErrorPage/MrlErrorPage.js +1 -1
  474. package/dist/esm/components/layout/error-page/MrlErrorPage/MrlErrorPage.js.map +1 -1
  475. package/dist/esm/components/layout/utils.js +2 -2
  476. package/dist/esm/components/layout/utils.js.map +1 -1
  477. package/dist/esm/components/link/MrlLink/MrlLink.js +8 -3
  478. package/dist/esm/components/link/MrlLink/MrlLink.js.map +1 -1
  479. package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js +9 -11
  480. package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
  481. package/dist/esm/components/live-region/MrlLiveRegion/MrlLiveRegion.js +5 -9
  482. package/dist/esm/components/live-region/MrlLiveRegion/MrlLiveRegion.js.map +1 -1
  483. package/dist/esm/components/loader/MrlProgressBar/MrlProgressBar.js +9 -3
  484. package/dist/esm/components/loader/MrlProgressBar/MrlProgressBar.js.map +1 -1
  485. package/dist/esm/components/loader/MrlSpinner/MrlSpinner.js +11 -3
  486. package/dist/esm/components/loader/MrlSpinner/MrlSpinner.js.map +1 -1
  487. package/dist/esm/components/menu/MrlMenu/MrlMenu.js +56 -62
  488. package/dist/esm/components/menu/MrlMenu/MrlMenu.js.map +1 -1
  489. package/dist/esm/components/menu/MrlMenu/utilities.js +4 -6
  490. package/dist/esm/components/menu/MrlMenu/utilities.js.map +1 -1
  491. package/dist/esm/components/menu/MrlMenuGroup/MrlMenuGroup.js +1 -1
  492. package/dist/esm/components/menu/MrlMenuGroup/MrlMenuGroup.js.map +1 -1
  493. package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js +18 -17
  494. package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
  495. package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +2 -2
  496. package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
  497. package/dist/esm/components/menu/hooks/useBrowserEdgeScroll.js +14 -14
  498. package/dist/esm/components/menu/hooks/useBrowserEdgeScroll.js.map +1 -1
  499. package/dist/esm/components/menu/hooks/useMenuScroll.js +8 -8
  500. package/dist/esm/components/menu/hooks/useMenuScroll.js.map +1 -1
  501. package/dist/esm/components/menu/hooks/useSubMenuElementPosition.js +3 -3
  502. package/dist/esm/components/menu/hooks/useSubMenuElementPosition.js.map +1 -1
  503. package/dist/esm/components/menu/utilities/flip-position.js +1 -1
  504. package/dist/esm/components/menu/utilities/flip-position.js.map +1 -1
  505. package/dist/esm/components/modal/MrlModal/MrlModal.js +22 -22
  506. package/dist/esm/components/modal/MrlModal/MrlModal.js.map +1 -1
  507. package/dist/esm/components/modal/MrlModalContent/MrlModalContent.js +5 -5
  508. package/dist/esm/components/modal/MrlModalContent/MrlModalContent.js.map +1 -1
  509. package/dist/esm/components/modal/MrlModalContext/MrlModalContext.js +1 -1
  510. package/dist/esm/components/modal/MrlModalContext/MrlModalContext.js.map +1 -1
  511. package/dist/esm/components/modal/MrlModalFooter/MrlModalFooter.js +7 -4
  512. package/dist/esm/components/modal/MrlModalFooter/MrlModalFooter.js.map +1 -1
  513. package/dist/esm/components/modal/MrlModalHeader/MrlModalHeader.js +7 -5
  514. package/dist/esm/components/modal/MrlModalHeader/MrlModalHeader.js.map +1 -1
  515. package/dist/esm/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js +6 -2
  516. package/dist/esm/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js.map +1 -1
  517. package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js +18 -15
  518. package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
  519. package/dist/esm/components/notification/MrlInlineMessage/MrlInlineMessage.js +11 -5
  520. package/dist/esm/components/notification/MrlInlineMessage/MrlInlineMessage.js.map +1 -1
  521. package/dist/esm/components/notification/MrlToast/MrlToast.js +14 -9
  522. package/dist/esm/components/notification/MrlToast/MrlToast.js.map +1 -1
  523. package/dist/esm/components/panel/MrlPanel/MrlPanel.js +14 -10
  524. package/dist/esm/components/panel/MrlPanel/MrlPanel.js.map +1 -1
  525. package/dist/esm/components/panel/MrlPanelFooter/MrlPanelFooter.js +2 -2
  526. package/dist/esm/components/panel/MrlPanelFooter/MrlPanelFooter.js.map +1 -1
  527. package/dist/esm/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js +1 -1
  528. package/dist/esm/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js.map +1 -1
  529. package/dist/esm/components/popover/MrlPopover/MrlPopover.js +71 -71
  530. package/dist/esm/components/popover/MrlPopover/MrlPopover.js.map +1 -1
  531. package/dist/esm/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js +19 -21
  532. package/dist/esm/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js.map +1 -1
  533. package/dist/esm/components/popover/MrlPopover/utilities/get-data-point.js +1 -1
  534. package/dist/esm/components/popover/MrlPopover/utilities/get-data-point.js.map +1 -1
  535. package/dist/esm/components/popover/MrlPopover/utilities/get-offset.js +1 -1
  536. package/dist/esm/components/popover/MrlPopover/utilities/get-offset.js.map +1 -1
  537. package/dist/esm/components/portal/MrlPortal.js +2 -2
  538. package/dist/esm/components/portal/MrlPortal.js.map +1 -1
  539. package/dist/esm/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js +235 -262
  540. package/dist/esm/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js.map +1 -1
  541. package/dist/esm/components/skeleton/MrlSkeleton/MrlSkeleton.js +6 -4
  542. package/dist/esm/components/skeleton/MrlSkeleton/MrlSkeleton.js.map +1 -1
  543. package/dist/esm/components/skeleton/MrlSkeletonText/MrlSkeletonText.js +7 -5
  544. package/dist/esm/components/skeleton/MrlSkeletonText/MrlSkeletonText.js.map +1 -1
  545. package/dist/esm/components/svg/MrlSvg/MrlSvg.js +7 -11
  546. package/dist/esm/components/svg/MrlSvg/MrlSvg.js.map +1 -1
  547. package/dist/esm/components/svg/MrlSvgAnimate/MrlSvgAnimate.js +8 -8
  548. package/dist/esm/components/svg/MrlSvgAnimate/MrlSvgAnimate.js.map +1 -1
  549. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js +71 -94
  550. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  551. package/dist/esm/components/table/MrlSmartTable/components/DefaultCellContent.js +2 -2
  552. package/dist/esm/components/table/MrlSmartTable/components/DefaultCellContent.js.map +1 -1
  553. package/dist/esm/components/table/MrlTableCell/MrlTableCell.js +7 -2
  554. package/dist/esm/components/table/MrlTableCell/MrlTableCell.js.map +1 -1
  555. package/dist/esm/components/table/MrlTableColumn/MrlTableColumn.js +8 -2
  556. package/dist/esm/components/table/MrlTableColumn/MrlTableColumn.js.map +1 -1
  557. package/dist/esm/components/table/MrlTableRow/MrlTableRow.js +7 -5
  558. package/dist/esm/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
  559. package/dist/esm/components/table/utils.js +4 -10
  560. package/dist/esm/components/table/utils.js.map +1 -1
  561. package/dist/esm/components/tabs/MrlTab/MrlTab.js +11 -8
  562. package/dist/esm/components/tabs/MrlTab/MrlTab.js.map +1 -1
  563. package/dist/esm/components/tabs/MrlTabContent/MrlTabContent.js +7 -4
  564. package/dist/esm/components/tabs/MrlTabContent/MrlTabContent.js.map +1 -1
  565. package/dist/esm/components/tabs/MrlTabGroup/MrlTabGroup.js +8 -10
  566. package/dist/esm/components/tabs/MrlTabGroup/MrlTabGroup.js.map +1 -1
  567. package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js +11 -8
  568. package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
  569. package/dist/esm/components/tabs/MrlTabs/MrlTabs.js +11 -9
  570. package/dist/esm/components/tabs/MrlTabs/MrlTabs.js.map +1 -1
  571. package/dist/esm/components/text/MrlText/MrlText.js +8 -3
  572. package/dist/esm/components/text/MrlText/MrlText.js.map +1 -1
  573. package/dist/esm/components/text/MrlTextHeading/MrlTextHeading.js +9 -3
  574. package/dist/esm/components/text/MrlTextHeading/MrlTextHeading.js.map +1 -1
  575. package/dist/esm/components/toolbar/MrlToolbar/MrlToolbar.js +12 -7
  576. package/dist/esm/components/toolbar/MrlToolbar/MrlToolbar.js.map +1 -1
  577. package/dist/esm/components/toolbar/MrlToolbarItem/MrlToolbarItem.js +1 -1
  578. package/dist/esm/components/toolbar/MrlToolbarItem/MrlToolbarItem.js.map +1 -1
  579. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js +31 -34
  580. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  581. package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +8 -3
  582. package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
  583. package/dist/esm/components/tooltip/useTooltipPosition/index.js +15 -17
  584. package/dist/esm/components/tooltip/useTooltipPosition/index.js.map +1 -1
  585. package/dist/esm/components/tooltip/useTooltipPosition/utilities.js +4 -4
  586. package/dist/esm/components/tooltip/useTooltipPosition/utilities.js.map +1 -1
  587. package/dist/esm/components/tooltip/utils.js +3 -3
  588. package/dist/esm/components/tooltip/utils.js.map +1 -1
  589. package/dist/esm/hooks/useAutoClose/useAutoClose.js +4 -4
  590. package/dist/esm/hooks/useAutoClose/useAutoClose.js.map +1 -1
  591. package/dist/esm/hooks/useBreakpoint/index.js +5 -5
  592. package/dist/esm/hooks/useBreakpoint/index.js.map +1 -1
  593. package/dist/esm/hooks/useClickOutside/index.js +4 -4
  594. package/dist/esm/hooks/useClickOutside/index.js.map +1 -1
  595. package/dist/esm/hooks/useCoordinate/index.js +20 -29
  596. package/dist/esm/hooks/useCoordinate/index.js.map +1 -1
  597. package/dist/esm/hooks/useElementDimensions/index.js +19 -32
  598. package/dist/esm/hooks/useElementDimensions/index.js.map +1 -1
  599. package/dist/esm/hooks/useHasFocusableDescendant/index.js +4 -6
  600. package/dist/esm/hooks/useHasFocusableDescendant/index.js.map +1 -1
  601. package/dist/esm/hooks/useScrollbarInfo/index.js +8 -8
  602. package/dist/esm/hooks/useScrollbarInfo/index.js.map +1 -1
  603. package/dist/esm/hooks/useTriggerPosition/index.js +14 -20
  604. package/dist/esm/hooks/useTriggerPosition/index.js.map +1 -1
  605. package/dist/esm/hooks/useTriggerPosition/utilities.js +15 -23
  606. package/dist/esm/hooks/useTriggerPosition/utilities.js.map +1 -1
  607. package/dist/esm/utils/checkInvalidAttributes/index.js +2 -4
  608. package/dist/esm/utils/checkInvalidAttributes/index.js.map +1 -1
  609. package/dist/esm/utils/frameDebounce/index.js +28 -29
  610. package/dist/esm/utils/frameDebounce/index.js.map +1 -1
  611. package/dist/esm/utils/getCamelCase/getCamelCase.js +2 -2
  612. package/dist/esm/utils/getCamelCase/getCamelCase.js.map +1 -1
  613. package/dist/esm/utils/getScrollableContainer/getScrollableContainer.js +1 -1
  614. package/dist/esm/utils/getScrollableContainer/getScrollableContainer.js.map +1 -1
  615. package/dist/esm/utils/hasHorizontalScroll/hasHorizontalScroll.js +1 -1
  616. package/dist/esm/utils/hasHorizontalScroll/hasHorizontalScroll.js.map +1 -1
  617. package/dist/esm/utils/hasScrollContent/hasScrollContent.js +1 -1
  618. package/dist/esm/utils/hasScrollContent/hasScrollContent.js.map +1 -1
  619. package/dist/esm/utils/isElementAriaDisabled/isElementAriaDisabled.js +1 -1
  620. package/dist/esm/utils/isElementAriaDisabled/isElementAriaDisabled.js.map +1 -1
  621. package/dist/esm/utils/isElementScrollable/index.js +1 -1
  622. package/dist/esm/utils/isElementScrollable/index.js.map +1 -1
  623. package/dist/esm/utils/isImagePath/index.js +1 -1
  624. package/dist/esm/utils/isImagePath/index.js.map +1 -1
  625. package/dist/esm/utils/isImageUri/index.js +1 -1
  626. package/dist/esm/utils/isImageUri/index.js.map +1 -1
  627. package/dist/esm/utils/isObject/isObject.js +1 -1
  628. package/dist/esm/utils/isObject/isObject.js.map +1 -1
  629. package/dist/esm/utils/isTouch/index.js +1 -1
  630. package/dist/esm/utils/isTouch/index.js.map +1 -1
  631. package/dist/esm/utils/layers/index.js +1 -1
  632. package/dist/esm/utils/layers/index.js.map +1 -1
  633. package/dist/esm/utils/noop/index.js +1 -1
  634. package/dist/esm/utils/noop/index.js.map +1 -1
  635. package/dist/esm/utils/preventDefault/preventDefault.js +1 -1
  636. package/dist/esm/utils/preventDefault/preventDefault.js.map +1 -1
  637. package/dist/esm/utils/setAttributes/setAttributes.js +7 -5
  638. package/dist/esm/utils/setAttributes/setAttributes.js.map +1 -1
  639. package/dist/esm/utils/trapFocus/index.js +9 -11
  640. package/dist/esm/utils/trapFocus/index.js.map +1 -1
  641. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/hooks/useElementDimensions/index.ts"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Represents the dimensions of an element's border box.\n */\nexport type ElementDimensions = {\n\theight: number | null;\n\twidth: number | null;\n};\n\n/**\n * Calculates the dimensions of an element using the ResizeObserver API.\n *\n * @template T - The type of the element or HTMLElement.\n * @param ref - The ref object that references the element.\n * @returns {ElementDimensions} - The dimensions of the element.\n */\nexport function useElementDimensions<T>(\n\tref: React.RefObject<T extends HTMLElement ? T : HTMLElement>\n): ElementDimensions {\n\tconst [dimensions, setDimensions] = React.useState<ElementDimensions>(() => ({\n\t\theight: null,\n\t\twidth: null\n\t}));\n\n\tReact.useEffect(() => {\n\t\tif(!ref.current) return;\n\n\t\tconst expectedWidths = new WeakMap();\n\t\tconst expectedHeights = new WeakMap();\n\n\t\tconst observer = new ResizeObserver((entries) => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\tconst expectedWidth = expectedWidths.get(entry.target);\n\t\t\t\t\tconst expectedHeight = expectedHeights.get(entry.target);\n\t\t\t\t\tif(entry.borderBoxSize[0].inlineSize === expectedWidth &&\n\t\t\t\t\t\tentry.borderBoxSize[0].blockSize === expectedHeight) continue;\n\t\t\t\t\t\n\t\t\t\t\texpectedWidths.set(entry.target, entry.borderBoxSize[0].inlineSize);\n\t\t\t\t\texpectedHeights.set(entry.target, entry.borderBoxSize[0].blockSize);\n\t\t\t\t\tsetDimensions({\n\t\t\t\t\t\theight: entry.borderBoxSize[0].blockSize, \n\t\t\t\t\t\twidth: entry.borderBoxSize[0].inlineSize\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tobserver.observe(ref.current);\n\n\t\treturn () => observer.disconnect();\n\t// ref won't trigger a re-render, so it's safe to exclude it from the dependencies array\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n \n\treturn dimensions;\n}\n"],"names":["useElementDimensions","ref","_React$useState","React","useState","height","width","_React$useState2","_slicedToArray","dimensions","setDimensions","useEffect","current","expectedWidths","WeakMap","expectedHeights","observer","ResizeObserver","entries","requestAnimationFrame","_iterator","_createForOfIteratorHelper","_step","s","n","done","entry","value","expectedWidth","get","target","expectedHeight","borderBoxSize","inlineSize","blockSize","set","err","e","f","observe","disconnect"],"mappings":";;;AAEA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,oBAAoBA,CACnCC,GAA6D,EACzC;AACpB,EAAA,IAAAC,eAAA,GAAoCC,KAAK,CAACC,QAAQ,CAAoB,YAAA;MAAA,OAAO;AAC5EC,QAAAA,MAAM,EAAE,IAAI;AACZC,QAAAA,KAAK,EAAE;OACP;AAAA,IAAA,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAN,eAAA,EAAA,CAAA,CAAA;AAHIO,IAAAA,UAAU,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,gBAAA,CAAA,CAAA,CAAA;EAKhCJ,KAAK,CAACQ,SAAS,CAAC,YAAM;AACrB,IAAA,IAAG,CAACV,GAAG,CAACW,OAAO,EAAE;AAEjB,IAAA,IAAMC,cAAc,GAAG,IAAIC,OAAO,EAAE;AACpC,IAAA,IAAMC,eAAe,GAAG,IAAID,OAAO,EAAE;AAErC,IAAA,IAAME,QAAQ,GAAG,IAAIC,cAAc,CAAC,UAACC,OAAO,EAAK;AAChDC,MAAAA,qBAAqB,CAAC,YAAM;AAAA,QAAA,IAAAC,SAAA,GAAAC,0BAAA,CACPH,OAAO,CAAA;UAAAI,KAAA;AAAA,QAAA,IAAA;UAA3B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAA,EAAAC,IAAA,GAA6B;AAAA,YAAA,IAAlBC,KAAK,GAAAJ,KAAA,CAAAK,KAAA;YACf,IAAMC,aAAa,GAAGf,cAAc,CAACgB,GAAG,CAACH,KAAK,CAACI,MAAM,CAAC;YACtD,IAAMC,cAAc,GAAGhB,eAAe,CAACc,GAAG,CAACH,KAAK,CAACI,MAAM,CAAC;YACxD,IAAGJ,KAAK,CAACM,aAAa,CAAC,CAAC,CAAC,CAACC,UAAU,KAAKL,aAAa,IACrDF,KAAK,CAACM,aAAa,CAAC,CAAC,CAAC,CAACE,SAAS,KAAKH,cAAc,EAAE;AAEtDlB,YAAAA,cAAc,CAACsB,GAAG,CAACT,KAAK,CAACI,MAAM,EAAEJ,KAAK,CAACM,aAAa,CAAC,CAAC,CAAC,CAACC,UAAU,CAAC;AACnElB,YAAAA,eAAe,CAACoB,GAAG,CAACT,KAAK,CAACI,MAAM,EAAEJ,KAAK,CAACM,aAAa,CAAC,CAAC,CAAC,CAACE,SAAS,CAAC;AACnExB,YAAAA,aAAa,CAAC;cACbL,MAAM,EAAEqB,KAAK,CAACM,aAAa,CAAC,CAAC,CAAC,CAACE,SAAS;AACxC5B,cAAAA,KAAK,EAAEoB,KAAK,CAACM,aAAa,CAAC,CAAC,CAAC,CAACC;AAC/B,aAAC,CAAC;AACH,UAAA;AAAC,QAAA,CAAA,CAAA,OAAAG,GAAA,EAAA;UAAAhB,SAAA,CAAAiB,CAAA,CAAAD,GAAA,CAAA;AAAA,QAAA,CAAA,SAAA;AAAAhB,UAAAA,SAAA,CAAAkB,CAAA,EAAA;AAAA,QAAA;AACF,MAAA,CAAC,CAAC;AACH,IAAA,CAAC,CAAC;AAEFtB,IAAAA,QAAQ,CAACuB,OAAO,CAACtC,GAAG,CAACW,OAAO,CAAC;IAE7B,OAAO,YAAA;AAAA,MAAA,OAAMI,QAAQ,CAACwB,UAAU,EAAE;AAAA,IAAA,CAAA;AACnC;AACA;EACA,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAO/B,UAAU;AAClB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/hooks/useElementDimensions/index.ts"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Represents the dimensions of an element's border box.\n */\nexport type ElementDimensions = {\n\theight: number | null;\n\twidth: number | null;\n};\n\n/**\n * Calculates the dimensions of an element using the ResizeObserver API.\n *\n * @template T - The type of the element or HTMLElement.\n * @param ref - The ref object that references the element.\n * @returns {ElementDimensions} - The dimensions of the element.\n */\nexport function useElementDimensions<T>(\n\tref: React.RefObject<T extends HTMLElement ? T : HTMLElement>\n): ElementDimensions {\n\tconst [dimensions, setDimensions] = React.useState<ElementDimensions>(() => ({\n\t\theight: null,\n\t\twidth: null\n\t}));\n\n\tReact.useEffect(() => {\n\t\tif(!ref.current) return;\n\n\t\tconst expectedWidths = new WeakMap();\n\t\tconst expectedHeights = new WeakMap();\n\n\t\tconst observer = new ResizeObserver((entries) => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\tconst expectedWidth = expectedWidths.get(entry.target);\n\t\t\t\t\tconst expectedHeight = expectedHeights.get(entry.target);\n\t\t\t\t\tif(entry.borderBoxSize[0].inlineSize === expectedWidth &&\n\t\t\t\t\t\tentry.borderBoxSize[0].blockSize === expectedHeight) continue;\n\t\t\t\t\t\n\t\t\t\t\texpectedWidths.set(entry.target, entry.borderBoxSize[0].inlineSize);\n\t\t\t\t\texpectedHeights.set(entry.target, entry.borderBoxSize[0].blockSize);\n\t\t\t\t\tsetDimensions({\n\t\t\t\t\t\theight: entry.borderBoxSize[0].blockSize, \n\t\t\t\t\t\twidth: entry.borderBoxSize[0].inlineSize\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tobserver.observe(ref.current);\n\n\t\treturn () => observer.disconnect();\n\t// ref won't trigger a re-render, so it's safe to exclude it from the dependencies array\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n \n\treturn dimensions;\n}\n"],"names":["useElementDimensions","ref","_React$useState","React","useState","height","width","_React$useState2","_slicedToArray","dimensions","setDimensions","useEffect","current","expectedWidths","WeakMap","expectedHeights","observer","ResizeObserver","entries","requestAnimationFrame","entry","expectedWidth","get","target","expectedHeight","borderBoxSize","inlineSize","blockSize","set","observe","disconnect"],"mappings":";;;AAEA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,oBAAoBA,CACnCC,GAA6D,EACzC;AACpB,EAAA,IAAAC,eAAA,GAAoCC,KAAK,CAACC,QAAQ,CAAoB,OAAO;AAC5EC,MAAAA,MAAM,EAAE,IAAI;AACZC,MAAAA,KAAK,EAAE;AACR,KAAC,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAN,eAAA,EAAA,CAAA,CAAA;AAHIO,IAAAA,UAAU,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,gBAAA,CAAA,CAAA,CAAA;EAKhCJ,KAAK,CAACQ,SAAS,CAAC,MAAM;AACrB,IAAA,IAAG,CAACV,GAAG,CAACW,OAAO,EAAE;AAEjB,IAAA,IAAMC,cAAc,GAAG,IAAIC,OAAO,EAAE;AACpC,IAAA,IAAMC,eAAe,GAAG,IAAID,OAAO,EAAE;AAErC,IAAA,IAAME,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAAO,IAAK;AAChDC,MAAAA,qBAAqB,CAAC,MAAM;AAC3B,QAAA,KAAK,IAAMC,KAAK,IAAIF,OAAO,EAAE;UAC5B,IAAMG,aAAa,GAAGR,cAAc,CAACS,GAAG,CAACF,KAAK,CAACG,MAAM,CAAC;UACtD,IAAMC,cAAc,GAAGT,eAAe,CAACO,GAAG,CAACF,KAAK,CAACG,MAAM,CAAC;UACxD,IAAGH,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAACC,UAAU,KAAKL,aAAa,IACrDD,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAACE,SAAS,KAAKH,cAAc,EAAE;AAEtDX,UAAAA,cAAc,CAACe,GAAG,CAACR,KAAK,CAACG,MAAM,EAAEH,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAACC,UAAU,CAAC;AACnEX,UAAAA,eAAe,CAACa,GAAG,CAACR,KAAK,CAACG,MAAM,EAAEH,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAACE,SAAS,CAAC;AACnEjB,UAAAA,aAAa,CAAC;YACbL,MAAM,EAAEe,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAACE,SAAS;AACxCrB,YAAAA,KAAK,EAAEc,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAACC;AAC/B,WAAC,CAAC;AACH,QAAA;AACD,MAAA,CAAC,CAAC;AACH,IAAA,CAAC,CAAC;AAEFV,IAAAA,QAAQ,CAACa,OAAO,CAAC5B,GAAG,CAACW,OAAO,CAAC;AAE7B,IAAA,OAAO,MAAMI,QAAQ,CAACc,UAAU,EAAE;AACnC;AACA;EACA,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAOrB,UAAU;AAClB;;;;"}
@@ -28,14 +28,12 @@ function useHasFocusableDescendant(ref) {
28
28
  _React$useState2 = _slicedToArray(_React$useState, 2),
29
29
  hasFocusableDescendant = _React$useState2[0],
30
30
  setHasFocusableDescendant = _React$useState2[1];
31
- React.useLayoutEffect(function () {
31
+ React.useLayoutEffect(() => {
32
32
  var element = ref.current;
33
33
  if (!element) return;
34
- var measure = function measure() {
34
+ var measure = () => {
35
35
  var next = element.querySelector(FOCUSABLE_ELEMENTS_SELECTOR) !== null;
36
- setHasFocusableDescendant(function (prev) {
37
- return prev === next ? prev : next;
38
- });
36
+ setHasFocusableDescendant(prev => prev === next ? prev : next);
39
37
  };
40
38
  measure();
41
39
  var observer = new MutationObserver(measure);
@@ -45,7 +43,7 @@ function useHasFocusableDescendant(ref) {
45
43
  childList: true,
46
44
  subtree: true
47
45
  });
48
- return function () {
46
+ return () => {
49
47
  observer.disconnect();
50
48
  };
51
49
  }, [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,KAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAzEK,IAAAA,sBAAsB,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,yBAAyB,GAAAH,gBAAA,CAAA,CAAA,CAAA;EAExDF,KAAK,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,2BAA2B,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,KAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAzEK,IAAAA,sBAAsB,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,yBAAyB,GAAAH,gBAAA,CAAA,CAAA,CAAA;EAExDF,KAAK,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,2BAA2B,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;;;;"}
@@ -22,9 +22,9 @@ function useScrollbarInfo() {
22
22
  scrollbarInfo = _React$useState2[0],
23
23
  setScrollbarInfo = _React$useState2[1];
24
24
  var scrollableContainerRef = React.useRef(null);
25
- React.useLayoutEffect(function () {
25
+ React.useLayoutEffect(() => {
26
26
  if (!scrollableContainerRef.current) return;
27
- var observer = new ResizeObserver(function (_ref) {
27
+ var observer = new ResizeObserver(_ref => {
28
28
  var _ref2 = _slicedToArray(_ref, 1),
29
29
  entry = _ref2[0];
30
30
  if (!entry) return;
@@ -42,19 +42,19 @@ function useScrollbarInfo() {
42
42
  // Horizontal scrollbar height: difference between offsetHeight and clientHeight
43
43
  var horizontalScrollbarHeight = target.offsetHeight - target.clientHeight;
44
44
  setScrollbarInfo({
45
- hasHorizontalScrollbar: hasHorizontalScrollbar,
46
- hasVerticalScrollbar: hasVerticalScrollbar,
47
- horizontalScrollbarHeight: horizontalScrollbarHeight,
48
- verticalScrollbarWidth: verticalScrollbarWidth
45
+ hasHorizontalScrollbar,
46
+ hasVerticalScrollbar,
47
+ horizontalScrollbarHeight,
48
+ verticalScrollbarWidth
49
49
  });
50
50
  });
51
51
  observer.observe(scrollableContainerRef.current);
52
- return function () {
52
+ return () => {
53
53
  observer.disconnect();
54
54
  };
55
55
  }, []);
56
56
  return _objectSpread2(_objectSpread2({}, scrollbarInfo), {}, {
57
- scrollableContainerRef: scrollableContainerRef
57
+ scrollableContainerRef
58
58
  });
59
59
  }
60
60
 
@@ -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,KAAK,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,cAAA,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,KAAK,CAACW,MAAM,CAAW,IAAI,CAAC;EAE3DX,KAAK,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,cAAA,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,cAAA,CAAAA,cAAA,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,KAAK,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,cAAA,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,KAAK,CAACW,MAAM,CAAW,IAAI,CAAC;EAE3DX,KAAK,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,cAAA,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,cAAA,CAAAA,cAAA,CAAA,EAAA,EACIpB,aAAa,CAAA,EAAA,EAAA,EAAA;AAChBE,IAAAA;AAAsB,GAAA,CAAA;AAExB;;;;"}
@@ -35,21 +35,19 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
35
35
  setMenuPosition = _useState2[1];
36
36
 
37
37
  // Memoize alignment so it only recalculates when specific props change
38
- var alignment = useMemo(function () {
39
- return {
40
- align: menuAlign.align,
41
- customPosition: menuAlign.customPosition,
42
- position: menuAlign.position
43
- };
44
- }, [menuAlign.align, menuAlign.position, menuAlign.customPosition]);
38
+ var alignment = useMemo(() => ({
39
+ align: menuAlign.align,
40
+ customPosition: menuAlign.customPosition,
41
+ position: menuAlign.position
42
+ }), [menuAlign.align, menuAlign.position, menuAlign.customPosition]);
45
43
 
46
44
  /**
47
45
  * Calculates and updates the menu position relative to the trigger.
48
46
  * Uses requestAnimationFrame to ensure layout is stable before measuring.
49
47
  */
50
- var updatePosition = useCallback(function () {
48
+ var updatePosition = useCallback(() => {
51
49
  if (!elementRef.current || !isElementVisible) return;
52
- requestAnimationFrame(function () {
50
+ requestAnimationFrame(() => {
53
51
  var _triggerRef$current, _elementRef$current;
54
52
  var triggerRect = triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getBoundingClientRect();
55
53
  var elementRect = (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.getBoundingClientRect();
@@ -59,7 +57,7 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
59
57
  var newPosition = getPosition(alignment, offset, elementRect, triggerRect, disableFlipping);
60
58
 
61
59
  // Only update state if the position has changed
62
- setMenuPosition(function (prevPosition) {
60
+ setMenuPosition(prevPosition => {
63
61
  if (prevPosition.left !== newPosition.left || prevPosition.top !== newPosition.top) {
64
62
  return newPosition;
65
63
  }
@@ -72,10 +70,8 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
72
70
  * Debounced version of the updatePosition function used for scroll and resize events.
73
71
  * 5ms debounce gives a balance between performance and responsiveness.
74
72
  */
75
- var debouncedUpdatePosition = useMemo(function () {
76
- return debounce(updatePosition, 5);
77
- }, [updatePosition]);
78
- useEffect(function () {
73
+ var debouncedUpdatePosition = useMemo(() => debounce(updatePosition, 5), [updatePosition]);
74
+ useEffect(() => {
79
75
  if (disable) return;
80
76
  var currentElement = elementRef.current;
81
77
 
@@ -109,7 +105,7 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
109
105
  }
110
106
 
111
107
  // Cleanup observers and listeners on unmount or re-render
112
- return function () {
108
+ return () => {
113
109
  if (currentElement) {
114
110
  resizeObserver.unobserve(currentElement);
115
111
  mutationObserver.disconnect();
@@ -124,12 +120,10 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
124
120
  * but its size is not immediately available in the first frame.
125
121
  * A short timeout ensures we recalculate the position once layout stabilizes.
126
122
  */
127
- useEffect(function () {
123
+ useEffect(() => {
128
124
  if (!disable && isElementVisible) {
129
125
  var timeoutId = setTimeout(updatePosition, 10);
130
- return function () {
131
- return clearTimeout(timeoutId);
132
- };
126
+ return () => clearTimeout(timeoutId);
133
127
  }
134
128
  }, [isElementVisible, disable, updatePosition]);
135
129
 
@@ -137,7 +131,7 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
137
131
  * useLayoutEffect ensures the position is recalculated during the layout phase,
138
132
  * just after DOM mutations but before the browser paints.
139
133
  */
140
- useLayoutEffect(function () {
134
+ useLayoutEffect(() => {
141
135
  if (!disable && isElementVisible && elementRef.current && triggerRef !== null && triggerRef !== void 0 && triggerRef.current) {
142
136
  updatePosition();
143
137
  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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"}
@@ -48,7 +48,7 @@ var getPosition = function getPosition(menuAlign, offset, elementRect, triggerRe
48
48
  * @param {boolean} disableFlipping - Whether to disable flipping logic.
49
49
  * @returns {Position} The calculated position of the menu.
50
50
  */
51
- var positionHorizontal = function positionHorizontal(position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) {
51
+ var positionHorizontal = (position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) => {
52
52
  var isLeft = position === 'left';
53
53
  var flipped = false;
54
54
  var containerSide = isLeft ? triggerRect.left - elementRect.width - offset : triggerRect.right + offset;
@@ -74,9 +74,9 @@ var positionHorizontal = function positionHorizontal(position, align, offset, el
74
74
  var top = calculateVerticalPosition(triggerRect, elementRect, align);
75
75
  top = adjustForVerticalBounds(top, elementRect, screenHeight);
76
76
  return {
77
- flipped: flipped,
77
+ flipped,
78
78
  left: containerSide,
79
- top: top
79
+ top
80
80
  };
81
81
  };
82
82
 
@@ -94,7 +94,7 @@ var positionHorizontal = function positionHorizontal(position, align, offset, el
94
94
  * @param {boolean} disableFlipping - Whether to disable flipping logic.
95
95
  * @returns {Position} The calculated position of the menu.
96
96
  */
97
- var positionVertical = function positionVertical(position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) {
97
+ var positionVertical = (position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) => {
98
98
  var isTop = position === 'top';
99
99
  var flipped = false;
100
100
  var containerSide = isTop ? triggerRect.top - elementRect.height - offset : triggerRect.bottom + offset;
@@ -119,8 +119,8 @@ var positionVertical = function positionVertical(position, align, offset, elemen
119
119
  }
120
120
  var left = calculateHorizontalPosition(triggerRect, elementRect, align, screenWidth);
121
121
  return {
122
- flipped: flipped,
123
- left: left,
122
+ flipped,
123
+ left,
124
124
  top: containerSide
125
125
  };
126
126
  };
@@ -134,7 +134,7 @@ var positionVertical = function positionVertical(position, align, offset, elemen
134
134
  * @param {number} screenWidth - The width of the viewport.
135
135
  * @returns {number} The calculated horizontal position.
136
136
  */
137
- var calculateHorizontalPosition = function calculateHorizontalPosition(triggerRect, elementRect, align, screenWidth) {
137
+ var calculateHorizontalPosition = (triggerRect, elementRect, align, screenWidth) => {
138
138
  var position;
139
139
  switch (align) {
140
140
  case 'start':
@@ -164,7 +164,7 @@ var calculateHorizontalPosition = function calculateHorizontalPosition(triggerRe
164
164
  * @param {'start' | 'end' | 'center'} align - The vertical alignment.
165
165
  * @returns {number} The calculated vertical position.
166
166
  */
167
- var calculateVerticalPosition = function calculateVerticalPosition(triggerRect, elementRect, align) {
167
+ var calculateVerticalPosition = (triggerRect, elementRect, align) => {
168
168
  switch (align) {
169
169
  case 'start':
170
170
  return triggerRect.top;
@@ -182,7 +182,7 @@ var calculateVerticalPosition = function calculateVerticalPosition(triggerRect,
182
182
  * @param {Alignment} menuAlign - The alignment configuration for the menu.
183
183
  * @returns {Position} The calculated custom position of the menu.
184
184
  */
185
- var calculateCustomPosition = function calculateCustomPosition(elementRect, menuAlign) {
185
+ var calculateCustomPosition = (elementRect, menuAlign) => {
186
186
  var _menuAlign$customPosi, _menuAlign$customPosi2, _menuAlign$customPosi3, _menuAlign$customPosi4;
187
187
  var screenHeight = window.innerHeight;
188
188
  var screenWidth = window.innerWidth;
@@ -202,7 +202,7 @@ var calculateCustomPosition = function calculateCustomPosition(elementRect, menu
202
202
  * @param {number} screenHeight - The height of the viewport.
203
203
  * @returns {number} The adjusted vertical position.
204
204
  */
205
- var adjustForVerticalBounds = function adjustForVerticalBounds(top, elementRect, screenHeight) {
205
+ var adjustForVerticalBounds = (top, elementRect, screenHeight) => {
206
206
  var adjustedTop = top;
207
207
  if (isOverflowingTop(adjustedTop)) {
208
208
  adjustedTop = screenOffset;
@@ -228,7 +228,7 @@ var adjustForVerticalBounds = function adjustForVerticalBounds(top, elementRect,
228
228
  * @param {number} screenHeight - The height of the viewport.
229
229
  * @returns {Position} The adjusted position of the menu.
230
230
  */
231
- var adjustCustomScreenBounds = function adjustCustomScreenBounds(left, top, elementRect, screenWidth, screenHeight) {
231
+ var adjustCustomScreenBounds = (left, top, elementRect, screenWidth, screenHeight) => {
232
232
  var adjustedLeft = Math.min(Math.max(left, screenOffset), screenWidth - elementRect.width - screenOffset);
233
233
  var adjustedTop = Math.max(top, screenOffset);
234
234
  if (adjustedTop + elementRect.height > screenHeight - screenOffset) {
@@ -247,9 +247,7 @@ var adjustCustomScreenBounds = function adjustCustomScreenBounds(left, top, elem
247
247
  * @param {number} left - The left position of the menu.
248
248
  * @returns {boolean} True if the menu overflows the left side, false otherwise.
249
249
  */
250
- var isOverflowingLeft = function isOverflowingLeft(left) {
251
- return left < screenOffset;
252
- };
250
+ var isOverflowingLeft = left => left < screenOffset;
253
251
 
254
252
  /**
255
253
  * Checks if the menu overflows the right side of the screen.
@@ -259,9 +257,7 @@ var isOverflowingLeft = function isOverflowingLeft(left) {
259
257
  * @param {number} screenWidth - The width of the viewport.
260
258
  * @returns {boolean} True if the menu overflows the right side, false otherwise.
261
259
  */
262
- var isOverflowingRight = function isOverflowingRight(left, width, screenWidth) {
263
- return left + width > screenWidth - screenOffset;
264
- };
260
+ var isOverflowingRight = (left, width, screenWidth) => left + width > screenWidth - screenOffset;
265
261
 
266
262
  /**
267
263
  * Checks if the menu overflows the top side of the screen.
@@ -269,9 +265,7 @@ var isOverflowingRight = function isOverflowingRight(left, width, screenWidth) {
269
265
  * @param {number} top - The top position of the menu.
270
266
  * @returns {boolean} True if the menu overflows the top side, false otherwise.
271
267
  */
272
- var isOverflowingTop = function isOverflowingTop(top) {
273
- return top < screenOffset;
274
- };
268
+ var isOverflowingTop = top => top < screenOffset;
275
269
 
276
270
  /**
277
271
  * Checks if the menu overflows the bottom side of the screen.
@@ -281,9 +275,7 @@ var isOverflowingTop = function isOverflowingTop(top) {
281
275
  * @param {number} screenHeight - The height of the viewport.
282
276
  * @returns {boolean} True if the menu overflows the bottom side, false otherwise.
283
277
  */
284
- var isOverflowingBottom = function isOverflowingBottom(top, height, screenHeight) {
285
- return top + height > screenHeight - screenOffset;
286
- };
278
+ var isOverflowingBottom = (top, height, screenHeight) => top + height > screenHeight - screenOffset;
287
279
 
288
280
  export { getPosition };
289
281
  //# 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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"}
@@ -5,13 +5,11 @@ var NOT_ALLOWED = ['class', 'className', 'style'];
5
5
  *
6
6
  * @param {AttrsObject} attrs - attrs object from a component
7
7
  */
8
- var checkInvalidAttributes = function checkInvalidAttributes(attrs) {
8
+ var checkInvalidAttributes = attrs => {
9
9
  if (!attrs) return;
10
10
  var isLocal = window.location.hostname === 'localhost' || window.location.hostname.includes('localhost');
11
11
  if (isLocal) {
12
- var found = Object.keys(attrs).filter(function (prop) {
13
- return NOT_ALLOWED.includes(prop);
14
- });
12
+ var found = Object.keys(attrs).filter(prop => NOT_ALLOWED.includes(prop));
15
13
  if (found.length > 0) {
16
14
  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.");
17
15
  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;;;;"}
@@ -1,40 +1,39 @@
1
- import { createClass as _createClass, classCallCheck as _classCallCheck, defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
 
3
3
  /**
4
4
  * @description Creates a wrapper for request animation frame that helps a little with performance this helps us only animate current frame reducing in jumps/tearing on slow devices.
5
5
  */
6
- var FrameDebounce = /*#__PURE__*/_createClass(
7
- /**
8
- * constructor FrameDebounce
9
- */
10
- function FrameDebounce() {
11
- var _this = this;
12
- _classCallCheck(this, FrameDebounce);
13
- _defineProperty(this, "frame", void 0);
6
+ var FrameDebounce = class FrameDebounce {
14
7
  /**
15
- * debounce a callback wrapped in animation frame.
16
- *
17
- * @param callback callback to call after frame runs
8
+ * constructor FrameDebounce
18
9
  */
19
- _defineProperty(this, "debounce", function (callback) {
20
- if (_this.frame) _this.cancel();
10
+ constructor() {
11
+ _defineProperty(this, "frame", void 0);
12
+ /**
13
+ * debounce a callback wrapped in animation frame.
14
+ *
15
+ * @param callback callback to call after frame runs
16
+ */
17
+ _defineProperty(this, "debounce", callback => {
18
+ if (this.frame) this.cancel();
21
19
 
22
- // only animate current frame near complete reduction in jumps/tearing on slow devices.
23
- _this.frame = requestAnimationFrame(function () {
24
- _this.frame = null;
25
- callback === null || callback === void 0 ? void 0 : callback();
20
+ // only animate current frame near complete reduction in jumps/tearing on slow devices.
21
+ this.frame = requestAnimationFrame(() => {
22
+ this.frame = null;
23
+ callback === null || callback === void 0 ? void 0 : callback();
24
+ });
26
25
  });
27
- });
28
- /**
29
- * cancel our frame.
30
- */
31
- _defineProperty(this, "cancel", function () {
32
- if (_this.frame) {
33
- cancelAnimationFrame(_this.frame);
34
- }
35
- });
36
- this.frame = null;
37
- });
26
+ /**
27
+ * cancel our frame.
28
+ */
29
+ _defineProperty(this, "cancel", () => {
30
+ if (this.frame) {
31
+ cancelAnimationFrame(this.frame);
32
+ }
33
+ });
34
+ this.frame = null;
35
+ }
36
+ };
38
37
 
39
38
  export { FrameDebounce };
40
39
  //# sourceMappingURL=index.js.map