@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":"MrlRovingTabindex.js","sources":["../../../../../src/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.tsx"],"sourcesContent":["import * as React from 'react';\n\ntype RefType = HTMLElement | HTMLDivElement | null;\n\n/**\n * Gets tabbable elements in a given bit of the DOM, excluding disabled elements\n * @param {RefType} ref - the ref of the container\n * @param {string} selector - the selector to query (should already exclude disabled elements)\n * @returns {HTMLElement[]} - an array of tabbable HTML elements\n */\nexport const getTabbableElements = (ref: RefType, selector: string): HTMLElement[] => {\n\tconst elements = ref?.querySelectorAll(selector);\n\tif (!elements) return [];\n\treturn Array.prototype.slice.call(elements);\n};\n\nconst arraysEqual = (a: (Element | null)[], b: (Element | null)[]): boolean =>\n\ta.length === b.length && a.every((el, i) => el === b[i]);\n\nexport type FocusOnInitPosition = 'first' | 'last';\nexport interface RovingPropTypes {\n\tactiveSelector?: string;\n\t/**\n\t * If true, disabled elements (with disabled attribute or aria-disabled=\"true\")\n\t * will be included in the roving tabindex. Defaults to true (disabled elements are included).\n\t */\n\tallowDisabled?: boolean;\n\tchildren: React.ReactNode;\n\t/**\n\t * delayMount is used to apply a delay to the mounting\n\t * of the RovingTabindex component. This can be helpful in\n\t * the event that a component's children have not been fully\n\t * rendered by the time the componentDidMount function is triggered\n\t */\n\tdelayMount?: number;\n\tfocusOnInit?: FocusOnInitPosition;\n\tfocusWithShortcut?: boolean;\n\tforceUpdate?: boolean;\n\thasChildRoving?: boolean;\n\tignoreElements?: string;\n\tisFocused?: boolean;\n\tonBlur?: () => void;\n\tonRefocus?: (shouldRefocus: boolean) => void;\n\torientation?: RovingOrientation;\n\tqa?: string;\n}\n\ntype RovingOrientation = 'horizontal' | 'vertical';\ntype NavigationDirection = 'forward' | 'back';\n\n/**\n * Default value for allowDisabled prop.\n * When true, disabled elements are included in the roving tabindex navigation.\n */\nconst DEFAULT_ALLOW_DISABLED = true;\n\n/**\n * CSS selector to exclude disabled elements.\n * Excludes both native disabled attribute and ARIA-compliant disabled elements.\n */\nconst DISABLED_EXCLUSION = ':not([disabled]):not([aria-disabled=\"true\"])';\n\n/**\n * CSS selector suffix to exclude nested roving tabindex elements.\n * Prevents deeply nested elements from being included in parent roving tabindex.\n */\nconst NESTED_ROVING_EXCLUSION =\n\t':not(.helpers-roving-tabindex-container .helpers-roving-tabindex-container [data-roving])';\n\n/**\n * Builds the appropriate CSS selector based on configuration.\n * @param allowDisabled - Whether to include disabled elements in the roving tabindex\n * @param hasChildRoving - Whether nested roving tabindex containers should be excluded\n * @returns CSS selector string for querying roving elements\n */\nconst buildSelector = (allowDisabled: boolean, hasChildRoving: boolean): string => {\n\tconst disabledPart = allowDisabled ? '' : DISABLED_EXCLUSION;\n\tconst nestedPart = hasChildRoving ? NESTED_ROVING_EXCLUSION : '';\n\treturn `[data-roving]${disabledPart}${nestedPart}`;\n};\n\n/**\n * Component to create a Roving Tabindex in the DOM\n * @returns {HTMLDivElement}\n */\nclass MrlRovingTabindex extends React.Component<RovingPropTypes> {\n\telements: Array<Element | null>;\n\torientation: RovingOrientation;\n\tref!: HTMLDivElement | null;\n\tselector: string;\n\n\t/**\n\t * MrlRovingTabindex class constructor\n\t * @param props - the MrlRovingTabindex props\n\t * @returns new instance\n\t */\n\tconstructor(props: RovingPropTypes) {\n\t\tsuper(props);\n\n\t\tconst { allowDisabled = DEFAULT_ALLOW_DISABLED, hasChildRoving = false, orientation } = props;\n\n\t\tthis.elements = [];\n\t\tthis.orientation = orientation || 'horizontal';\n\t\tthis.selector = buildSelector(allowDisabled, hasChildRoving);\n\t}\n\n\t/**\n\t * Runs when the MrlRovingTabindex component mounts\n\t */\n\tcomponentDidMount(): void {\n\t\tconst { delayMount } = this.props;\n\t\tif (delayMount) {\n\t\t\tsetTimeout(() => this.mount(), delayMount);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.mount();\n\t}\n\n\t/**\n\t * Runs when the MrlRovingTabindex component unmounts\n\t */\n\tcomponentWillUnmount(): void {\n\t\t// Remove focus event listener\n\t\tif (this.ref) {\n\t\t\tthis.ref.removeEventListener('focusout', this.handleFocusOut);\n\t\t}\n\t}\n\n\t/**\n\t * Runs when the MrlRovingTabindex component updates\n\t * @param {RovingPropTypes} prevProps - the props before the component updated\n\t */\n\tcomponentDidUpdate(prevProps: RovingPropTypes): void {\n\t\tconst {\n\t\t\tallowDisabled = DEFAULT_ALLOW_DISABLED,\n\t\t\tchildren,\n\t\t\tfocusWithShortcut,\n\t\t\thasChildRoving = false,\n\t\t\tisFocused,\n\t\t\tonBlur,\n\t\t\tonRefocus\n\t\t} = this.props;\n\n\t\t/**\n\t\t * If allowDisabled or hasChildRoving prop changes, rebuild the selector\n\t\t * and re-scan for elements to reflect the new configuration.\n\t\t */\n\t\tif (prevProps.allowDisabled !== allowDisabled || prevProps.hasChildRoving !== hasChildRoving) {\n\t\t\tthis.selector = buildSelector(allowDisabled, hasChildRoving);\n\t\t\tthis.setElements();\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t}\n\n\t\t/**\n\t\t * If focus is programatically moved to the MrlRovingTabindex\n\t\t * component from outside of the MrlRovingTabindex, passing\n\t\t * the prop of `onRefocus` will cause the component to go\n\t\t * through and make sure that only the active element\n\t\t * has a tabindex set to 0.\n\t\t */\n\t\tif (onRefocus) {\n\t\t\tthis.handleRefocus();\n\t\t}\n\n\t\t/**\n\t\t * When children change, re-scan for elements and update tabindex values.\n\t\t * This ensures that dynamically added/removed buttons are properly managed.\n\t\t */\n\t\tif (prevProps.children !== children && !focusWithShortcut) {\n\t\t\tthis.setElements();\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t}\n\n\t\tif (focusWithShortcut) {\n\t\t\t/**\n\t\t\t * If the component within MrlRovingTabindex shows on the page before it should\n\t\t\t * be reached with a keyboard the prop `focusWithiShortcut` can be used to\n\t\t\t * achieve that. The conditions below handle the various states that a\n\t\t\t * component can experience under this scenario.\n\t\t\t */\n\t\t\tif (!isFocused && !prevProps.isFocused) {\n\t\t\t\t/**\n\t\t\t\t * The component was not focus before and is not ready to be focused on\n\t\t\t\t */\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t}\n\n\t\t\tif (prevProps.isFocused && !isFocused) {\n\t\t\t\t/**\n\t\t\t\t * The component was focused but is not focused anymore\n\t\t\t\t */\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t\t// Only call onBlur if focus has truly left the container\n\t\t\t\tif (this.ref && !this.ref.contains(document.activeElement)) {\n\t\t\t\t\tonBlur?.();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!prevProps.isFocused && isFocused) {\n\t\t\t\t/**\n\t\t\t\t * The component was not focused before and is ready to be focused\n\t\t\t\t */\n\t\t\t\tthis.setElements();\n\t\t\t\tthis.setElementFocus(this.getActiveElement());\n\t\t\t}\n\n\t\t\tif (prevProps.children !== children && !isFocused && !prevProps.isFocused) {\n\t\t\t\t/**\n\t\t\t\t * Children changed but component is not focused\n\t\t\t\t * Ensure all new elements have tabindex=-1 to prevent Tab key access\n\t\t\t\t */\n\t\t\t\tthis.setElements();\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tprevProps.children !== children &&\n\t\t\t\tprevProps.isFocused &&\n\t\t\t\tisFocused &&\n\t\t\t\t!this.ref?.contains(document.activeElement)\n\t\t\t) {\n\t\t\t\t/**\n\t\t\t\t * While the component was focused an action was performed that\n\t\t\t\t * changed the elements of the component and focus was moved to\n\t\t\t\t * a different element on the page\n\t\t\t\t */\n\t\t\t\tthis.setElements();\n\t\t\t\tthis.setActiveElement(this.getActiveElement());\n\n\t\t\t\tif (this.getActiveElement()) {\n\t\t\t\t\t/**\n\t\t\t\t\t * The active element is still within the roving tabindex so focus\n\t\t\t\t\t * on the element that should receive focus\n\t\t\t\t\t */\n\t\t\t\t\tthis.setElementFocus(this.getActiveElement());\n\t\t\t\t} else {\n\t\t\t\t\t/**\n\t\t\t\t\t * The active element has been moved outside of the MrlRovingTabindex\n\t\t\t\t\t * component so reset the component\n\t\t\t\t\t */\n\t\t\t\t\t// Only call onBlur if focus has truly left the container\n\t\t\t\t\tif (this.ref && !this.ref.contains(document.activeElement)) {\n\t\t\t\t\t\tonBlur?.();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\thandleRef = (ref: HTMLDivElement): HTMLDivElement => {\n\t\tthis.ref = ref;\n\t\t// Set up focus listener when ref becomes available\n\t\tif (ref) {\n\t\t\tref.addEventListener('focusout', this.handleFocusOut);\n\t\t}\n\t\treturn ref;\n\t};\n\n\t/**\n\t * Handles focus out events to detect when focus leaves the roving tabindex container\n\t * @param {FocusEvent} event - the focus out event\n\t * @returns {void}\n\t */\n\thandleFocusOut = (event: FocusEvent): void => {\n\t\tconst { onBlur } = this.props;\n\t\tconst relatedTarget = (event as FocusEvent & { relatedTarget?: HTMLElement }).relatedTarget;\n\n\t\t// Check if focus is moving to an element outside the container\n\t\tif (relatedTarget && !this.ref?.contains(relatedTarget)) {\n\t\t\t// Focus has moved from inside the container to outside\n\t\t\tonBlur?.();\n\t\t}\n\t};\n\n\t/**\n\t * Sets component array of elements\n\t * @returns {void}\n\t */\n\tsetElements = (): void => {\n\t\tif (!this.ref) return;\n\t\tthis.elements = getTabbableElements(this.ref, this.selector);\n\t};\n\n\t/**\n\t * Queries for a single element matching the selector within the container.\n\t * @param selector - CSS selector to query\n\t * @returns The matching element or null\n\t */\n\tqueryElement = (selector: string): HTMLElement | null => {\n\t\treturn this.ref?.querySelector(selector) as HTMLElement | null;\n\t};\n\n\t/**\n\t * Gets the active element based on priority order:\n\t * 1. Element matching the custom `activeSelector` prop (e.g., custom radio elements)\n\t * 2. Element with `data-roving-active` attribute (programmatically set active)\n\t * 3. First element with `data-roving` attribute (default fallback)\n\t *\n\t * Disabled elements are excluded unless `allowDisabled` is true.\n\t * @returns The active HTML element, or undefined if none found\n\t */\n\tgetActiveElement = (): HTMLElement | undefined => {\n\t\tconst { activeSelector, allowDisabled = DEFAULT_ALLOW_DISABLED } = this.props;\n\t\tconst disabledFilter = allowDisabled ? '' : DISABLED_EXCLUSION;\n\n\t\t// Priority 1: Custom active selector (e.g., for radio button groups)\n\t\t// An element with the matching activeSelector prop (example usage: custom radio elements)\n\t\tif (activeSelector) {\n\t\t\tconst customActiveElement = this.queryElement(\n\t\t\t\t`${activeSelector}[data-roving]${disabledFilter}`\n\t\t\t);\n\t\t\tif (customActiveElement) return customActiveElement;\n\t\t}\n\n\t\t// Priority 2: Programmatically marked active element\n\t\t// An element with a `data-roving-active` attribute, indicating the current active element\n\t\tconst markedActiveElement = this.queryElement(\n\t\t\t`[data-roving][data-roving-active]${disabledFilter}`\n\t\t);\n\t\tif (markedActiveElement) return markedActiveElement;\n\n\t\t// Priority 3: First roving element (uses pre-built selector with disabled handling)\n\t\t// If no active element is found, the first instance of an element with `data-roving=\"true\"`\n\t\tconst firstRovingElement = this.ref?.querySelectorAll(this.selector)[0];\n\t\treturn firstRovingElement as HTMLElement | undefined;\n\t};\n\n\t/**\n\t * Sets an element to `tabindex=0` and sets all other elements to `tabindex=-1`\n\t * @param {HTMLElement | undefined} el - the element to set as active\n\t * @returns {void}\n\t */\n\tsetActiveElement = (el: HTMLElement | undefined): void => {\n\t\tif (!el) return;\n\n\t\tthis.unsetTabbableElements();\n\t\tel.setAttribute('tabindex', '0');\n\t};\n\n\t/**\n\t * Sets focus to a specific element\n\t * @param {HTMLElement | undefined} el - the element to set in focus\n\t * @returns {void}\n\t */\n\tsetElementFocus = (el: HTMLElement | undefined): void => {\n\t\tif (!el) return;\n\n\t\t/**\n\t\t * Why data-roving-active?\n\t\t *\n\t\t * We only want to set data-roving-active when 'setElementFocus' is triggered because we don't want [tabindex=0] to be mutally exclusive with\n\t\t * [data-roving-active]. An item with [data-roving-active] can exist without having [tabindex=0] and vice versa. We only want to set [data-roving-active]\n\t\t * intentionally when a user action has occured to change it. Such as a keyboard event or moving focus manually with Javascript.\n\t\t */\n\t\tconst current = this.getActiveElement();\n\t\tif (current) current.removeAttribute('data-roving-active');\n\t\tel.setAttribute('data-roving-active', 'true');\n\n\t\tthis.setActiveElement(el);\n\t\tel.focus();\n\t};\n\n\t/**\n\t * Sets focus to an element based on a direction (`forward` or `back`)\n\t * Disabled elements are already excluded from this.elements via CSS selector\n\t * @param {NavigationDirection} direction 'forward' | 'back'\n\t * @returns {void}\n\t */\n\tsetFocusByDirection = (direction: NavigationDirection): void => {\n\t\tconst itemsLen = this.elements.length;\n\n\t\tif (itemsLen > 0) {\n\t\t\tconst currentIndex = this.elements.indexOf(document.activeElement);\n\n\t\t\tconst directionSum = direction === 'back' ? -1 : 1;\n\t\t\tlet nextIndex = currentIndex + directionSum;\n\n\t\t\tif (direction === 'back') {\n\t\t\t\tnextIndex = nextIndex < 0 ? itemsLen - 1 : nextIndex;\n\t\t\t}\n\n\t\t\tif (direction === 'forward') {\n\t\t\t\tnextIndex = nextIndex >= itemsLen ? 0 : nextIndex;\n\t\t\t}\n\n\t\t\tthis.setElementFocus(this.elements[nextIndex] as HTMLElement);\n\t\t}\n\t};\n\n\t/**\n\t * Sets all tabindex for elements of this component to -1\n\t * Also ensures disabled elements (excluded from roving tabindex) have tabindex=-1\n\t * @returns {void}\n\t */\n\tunsetTabbableElements = (): void => {\n\t\tif (!this.elements) return;\n\n\t\t// Set tabindex=-1 for all roving tabindex elements\n\t\tthis.elements.forEach((el: Element | null) => {\n\t\t\tel && el.setAttribute('tabindex', '-1');\n\t\t});\n\n\t\t// Also set tabindex=-1 for disabled elements that are excluded from roving tabindex\n\t\t// This ensures disabled elements are not tabbable even though they're not in the navigation order\n\t\tif (!this.ref || this.props.allowDisabled) return;\n\n\t\tconst disabledElements = this.ref.querySelectorAll(\n\t\t\t`[data-roving][disabled], [data-roving][aria-disabled=\"true\"]`\n\t\t);\n\t\tdisabledElements.forEach((el) => {\n\t\t\tel.setAttribute('tabindex', '-1');\n\t\t});\n\t};\n\n\t/**\n\t * Will return `false` if the orientation param matches the\n\t * orientation of the component and the actively focused element has a menu or select\n\t * @param orientation : 'horizontal' | 'vertical'\n\t * @returns boolean\n\t */\n\tcanUseArrows = (orientation: RovingOrientation): boolean => {\n\t\tconst { activeElement } = document;\n\t\tconst role = activeElement?.getAttribute('role');\n\t\tconst hasMenuOrSelect =\n\t\t\tactiveElement?.getAttribute('aria-haspopup') === 'true' ||\n\t\t\trole === 'combobox' ||\n\t\t\trole === 'option' ||\n\t\t\trole === 'listbox';\n\n\t\treturn !(this.orientation === orientation && hasMenuOrSelect);\n\t};\n\n\thandleKeyUp = (e: React.KeyboardEvent): void => {\n\t\tconst { ignoreElements } = this.props;\n\t\tconst allowKeyPress = !ignoreElements ? true : !document.activeElement?.closest(ignoreElements);\n\n\t\tconst modifierPressed = e.ctrlKey || e.metaKey || e.shiftKey;\n\n\t\tif (modifierPressed) return;\n\n\t\t/**\n\t\t * If elements within MrlRovingTabindex are added after the component mounts\n\t\t * they will not automatically be a `part of this.elements`. This checks if\n\t\t * `this.elements` contains all elements that MrlRovingTabindex should be aware\n\t\t * of and will update `this.elements` if neccessary.\n\t\t */\n\t\tconst knownTabbableElements = this.elements;\n\t\tconst allTabbableElements = getTabbableElements(this.ref, this.selector);\n\n\t\tif (\n\t\t\tknownTabbableElements.length !== allTabbableElements.length ||\n\t\t\t!arraysEqual(knownTabbableElements, allTabbableElements)\n\t\t) {\n\t\t\tthis.setElements();\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t}\n\n\t\tconst isActiveRoving = this.getActiveElement() === document.activeElement;\n\n\t\tif (allowKeyPress && isActiveRoving) {\n\t\t\te.stopPropagation();\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tif (this.canUseArrows('horizontal')) this.setFocusByDirection('forward');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tif (this.canUseArrows('horizontal')) this.setFocusByDirection('back');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\tif (this.canUseArrows('vertical')) this.setFocusByDirection('forward');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tif (this.canUseArrows('vertical')) this.setFocusByDirection('back');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tthis.handleFocusedLast();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tthis.handleFocusedFirst();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\thandleFocusedFirst = (): void => this.setElementFocus(this.elements[0] as HTMLElement);\n\n\thandleFocusedLast = (): void =>\n\t\tthis.setElementFocus(this.elements[this.elements.length - 1] as HTMLElement);\n\n\thandleRefocus = (): void => {\n\t\tthis.setActiveElement(document.activeElement as HTMLElement);\n\t\tthis.props.onRefocus?.(false);\n\t};\n\n\t/**\n\t * Mounts the MrlRovingTabindex component\n\t * @returns {void}\n\t */\n\tmount(): void {\n\t\tconst { focusOnInit, focusWithShortcut, isFocused } = this.props;\n\n\t\tif (!focusWithShortcut) {\n\t\t\t// get initial set of elements for the component\n\t\t\tthis.setElements();\n\n\t\t\t// sets the first element of the component to tabindex=0 but does not move focus\n\t\t\t// this allows users to tab to the component naturally based on tab order\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t} else {\n\t\t\t// When focusWithShortcut is true, we need to set up elements\n\t\t\t// but only set tabindex values based on isFocused state\n\t\t\tthis.setElements();\n\n\t\t\tif (!isFocused) {\n\t\t\t\t// If not focused initially, set all elements to tabindex=-1\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t} else {\n\t\t\t\t// If focused initially, set the active element properly\n\t\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t\t}\n\t\t}\n\n\t\tif (focusOnInit && this.elements.length > 0) {\n\t\t\tif (focusOnInit === 'first') {\n\t\t\t\tthis.handleFocusedFirst();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.handleFocusedLast();\n\t\t}\n\t}\n\n\t/**\n\t * Renders the MrlRovingTabindex component\n\t * @returns {HTMLDivElement} - the rendered MrlRovingTabindex component\n\t */\n\trender(): JSX.Element {\n\t\t/* eslint-disable @typescript-eslint/no-unused-vars */\n\t\t// Destructure component-specific props to prevent them from being spread to the DOM\n\t\tconst {\n\t\t\tactiveSelector,\n\t\t\tallowDisabled,\n\t\t\tchildren,\n\t\t\tdelayMount,\n\t\t\tfocusOnInit,\n\t\t\tfocusWithShortcut,\n\t\t\tforceUpdate,\n\t\t\thasChildRoving,\n\t\t\tignoreElements,\n\t\t\tisFocused,\n\t\t\tonBlur,\n\t\t\tonRefocus,\n\t\t\torientation,\n\t\t\tqa,\n\t\t\t...rest\n\t\t} = this.props;\n\t\t/* eslint-enable @typescript-eslint/no-unused-vars */\n\n\t\tconst dataQa = `${qa || 'generic'}-roving`;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName=\"helpers-roving-tabindex-container\"\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\tref={this.handleRef}\n\t\t\t\trole=\"presentation\"\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n\t\t\t\ttabIndex={-1}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport { MrlRovingTabindex };\n"],"names":["getTabbableElements","ref","selector","elements","querySelectorAll","Array","prototype","slice","call","arraysEqual","a","b","length","every","el","i","DEFAULT_ALLOW_DISABLED","DISABLED_EXCLUSION","NESTED_ROVING_EXCLUSION","buildSelector","allowDisabled","hasChildRoving","disabledPart","nestedPart","concat","MrlRovingTabindex","_React$Component","props","_this","_classCallCheck","_callSuper","_defineProperty","addEventListener","handleFocusOut","event","_this$ref","onBlur","relatedTarget","contains","_this$ref2","querySelector","_this$ref3","_this$props","activeSelector","_this$props$allowDisa","disabledFilter","customActiveElement","queryElement","markedActiveElement","firstRovingElement","unsetTabbableElements","setAttribute","current","getActiveElement","removeAttribute","setActiveElement","focus","direction","itemsLen","currentIndex","indexOf","document","activeElement","directionSum","nextIndex","setElementFocus","forEach","disabledElements","orientation","_document","role","getAttribute","hasMenuOrSelect","e","_document$activeEleme","ignoreElements","allowKeyPress","closest","modifierPressed","ctrlKey","metaKey","shiftKey","knownTabbableElements","allTabbableElements","setElements","isActiveRoving","stopPropagation","key","canUseArrows","setFocusByDirection","handleFocusedLast","handleFocusedFirst","_this$props$onRefocus","_this$props2","onRefocus","_props$allowDisabled","_props$hasChildRoving","_inherits","_createClass","value","componentDidMount","_this2","delayMount","setTimeout","mount","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","_this$props3","_this$props3$allowDis","children","focusWithShortcut","_this$props3$hasChild","isFocused","handleRefocus","_this$ref4","_this$props4","focusOnInit","render","_this$props5","forceUpdate","qa","rest","_objectWithoutProperties","_excluded","dataQa","React","createElement","_extends","className","onKeyUp","handleKeyUp","handleRef","tabIndex","Component"],"mappings":"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"}
1
+ {"version":3,"file":"MrlRovingTabindex.js","sources":["../../../../../src/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.tsx"],"sourcesContent":["import * as React from 'react';\n\ntype RefType = HTMLElement | HTMLDivElement | null;\n\n/**\n * Gets tabbable elements in a given bit of the DOM, excluding disabled elements\n * @param {RefType} ref - the ref of the container\n * @param {string} selector - the selector to query (should already exclude disabled elements)\n * @returns {HTMLElement[]} - an array of tabbable HTML elements\n */\nexport const getTabbableElements = (ref: RefType, selector: string): HTMLElement[] => {\n\tconst elements = ref?.querySelectorAll(selector);\n\tif (!elements) return [];\n\treturn Array.prototype.slice.call(elements);\n};\n\nconst arraysEqual = (a: (Element | null)[], b: (Element | null)[]): boolean =>\n\ta.length === b.length && a.every((el, i) => el === b[i]);\n\nexport type FocusOnInitPosition = 'first' | 'last';\nexport interface RovingPropTypes {\n\tactiveSelector?: string;\n\t/**\n\t * If true, disabled elements (with disabled attribute or aria-disabled=\"true\")\n\t * will be included in the roving tabindex. Defaults to true (disabled elements are included).\n\t */\n\tallowDisabled?: boolean;\n\tchildren: React.ReactNode;\n\t/**\n\t * delayMount is used to apply a delay to the mounting\n\t * of the RovingTabindex component. This can be helpful in\n\t * the event that a component's children have not been fully\n\t * rendered by the time the componentDidMount function is triggered\n\t */\n\tdelayMount?: number;\n\tfocusOnInit?: FocusOnInitPosition;\n\tfocusWithShortcut?: boolean;\n\tforceUpdate?: boolean;\n\thasChildRoving?: boolean;\n\tignoreElements?: string;\n\tisFocused?: boolean;\n\tonBlur?: () => void;\n\tonRefocus?: (shouldRefocus: boolean) => void;\n\torientation?: RovingOrientation;\n\tqa?: string;\n}\n\ntype RovingOrientation = 'horizontal' | 'vertical';\ntype NavigationDirection = 'forward' | 'back';\n\n/**\n * Default value for allowDisabled prop.\n * When true, disabled elements are included in the roving tabindex navigation.\n */\nconst DEFAULT_ALLOW_DISABLED = true;\n\n/**\n * CSS selector to exclude disabled elements.\n * Excludes both native disabled attribute and ARIA-compliant disabled elements.\n */\nconst DISABLED_EXCLUSION = ':not([disabled]):not([aria-disabled=\"true\"])';\n\n/**\n * CSS selector suffix to exclude nested roving tabindex elements.\n * Prevents deeply nested elements from being included in parent roving tabindex.\n */\nconst NESTED_ROVING_EXCLUSION =\n\t':not(.helpers-roving-tabindex-container .helpers-roving-tabindex-container [data-roving])';\n\n/**\n * Builds the appropriate CSS selector based on configuration.\n * @param allowDisabled - Whether to include disabled elements in the roving tabindex\n * @param hasChildRoving - Whether nested roving tabindex containers should be excluded\n * @returns CSS selector string for querying roving elements\n */\nconst buildSelector = (allowDisabled: boolean, hasChildRoving: boolean): string => {\n\tconst disabledPart = allowDisabled ? '' : DISABLED_EXCLUSION;\n\tconst nestedPart = hasChildRoving ? NESTED_ROVING_EXCLUSION : '';\n\treturn `[data-roving]${disabledPart}${nestedPart}`;\n};\n\n/**\n * Component to create a Roving Tabindex in the DOM\n * @returns {HTMLDivElement}\n */\nclass MrlRovingTabindex extends React.Component<RovingPropTypes> {\n\telements: Array<Element | null>;\n\torientation: RovingOrientation;\n\tref!: HTMLDivElement | null;\n\tselector: string;\n\n\t/**\n\t * MrlRovingTabindex class constructor\n\t * @param props - the MrlRovingTabindex props\n\t * @returns new instance\n\t */\n\tconstructor(props: RovingPropTypes) {\n\t\tsuper(props);\n\n\t\tconst { allowDisabled = DEFAULT_ALLOW_DISABLED, hasChildRoving = false, orientation } = props;\n\n\t\tthis.elements = [];\n\t\tthis.orientation = orientation || 'horizontal';\n\t\tthis.selector = buildSelector(allowDisabled, hasChildRoving);\n\t}\n\n\t/**\n\t * Runs when the MrlRovingTabindex component mounts\n\t */\n\tcomponentDidMount(): void {\n\t\tconst { delayMount } = this.props;\n\t\tif (delayMount) {\n\t\t\tsetTimeout(() => this.mount(), delayMount);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.mount();\n\t}\n\n\t/**\n\t * Runs when the MrlRovingTabindex component unmounts\n\t */\n\tcomponentWillUnmount(): void {\n\t\t// Remove focus event listener\n\t\tif (this.ref) {\n\t\t\tthis.ref.removeEventListener('focusout', this.handleFocusOut);\n\t\t}\n\t}\n\n\t/**\n\t * Runs when the MrlRovingTabindex component updates\n\t * @param {RovingPropTypes} prevProps - the props before the component updated\n\t */\n\tcomponentDidUpdate(prevProps: RovingPropTypes): void {\n\t\tconst {\n\t\t\tallowDisabled = DEFAULT_ALLOW_DISABLED,\n\t\t\tchildren,\n\t\t\tfocusWithShortcut,\n\t\t\thasChildRoving = false,\n\t\t\tisFocused,\n\t\t\tonBlur,\n\t\t\tonRefocus\n\t\t} = this.props;\n\n\t\t/**\n\t\t * If allowDisabled or hasChildRoving prop changes, rebuild the selector\n\t\t * and re-scan for elements to reflect the new configuration.\n\t\t */\n\t\tif (prevProps.allowDisabled !== allowDisabled || prevProps.hasChildRoving !== hasChildRoving) {\n\t\t\tthis.selector = buildSelector(allowDisabled, hasChildRoving);\n\t\t\tthis.setElements();\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t}\n\n\t\t/**\n\t\t * If focus is programatically moved to the MrlRovingTabindex\n\t\t * component from outside of the MrlRovingTabindex, passing\n\t\t * the prop of `onRefocus` will cause the component to go\n\t\t * through and make sure that only the active element\n\t\t * has a tabindex set to 0.\n\t\t */\n\t\tif (onRefocus) {\n\t\t\tthis.handleRefocus();\n\t\t}\n\n\t\t/**\n\t\t * When children change, re-scan for elements and update tabindex values.\n\t\t * This ensures that dynamically added/removed buttons are properly managed.\n\t\t */\n\t\tif (prevProps.children !== children && !focusWithShortcut) {\n\t\t\tthis.setElements();\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t}\n\n\t\tif (focusWithShortcut) {\n\t\t\t/**\n\t\t\t * If the component within MrlRovingTabindex shows on the page before it should\n\t\t\t * be reached with a keyboard the prop `focusWithiShortcut` can be used to\n\t\t\t * achieve that. The conditions below handle the various states that a\n\t\t\t * component can experience under this scenario.\n\t\t\t */\n\t\t\tif (!isFocused && !prevProps.isFocused) {\n\t\t\t\t/**\n\t\t\t\t * The component was not focus before and is not ready to be focused on\n\t\t\t\t */\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t}\n\n\t\t\tif (prevProps.isFocused && !isFocused) {\n\t\t\t\t/**\n\t\t\t\t * The component was focused but is not focused anymore\n\t\t\t\t */\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t\t// Only call onBlur if focus has truly left the container\n\t\t\t\tif (this.ref && !this.ref.contains(document.activeElement)) {\n\t\t\t\t\tonBlur?.();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!prevProps.isFocused && isFocused) {\n\t\t\t\t/**\n\t\t\t\t * The component was not focused before and is ready to be focused\n\t\t\t\t */\n\t\t\t\tthis.setElements();\n\t\t\t\tthis.setElementFocus(this.getActiveElement());\n\t\t\t}\n\n\t\t\tif (prevProps.children !== children && !isFocused && !prevProps.isFocused) {\n\t\t\t\t/**\n\t\t\t\t * Children changed but component is not focused\n\t\t\t\t * Ensure all new elements have tabindex=-1 to prevent Tab key access\n\t\t\t\t */\n\t\t\t\tthis.setElements();\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tprevProps.children !== children &&\n\t\t\t\tprevProps.isFocused &&\n\t\t\t\tisFocused &&\n\t\t\t\t!this.ref?.contains(document.activeElement)\n\t\t\t) {\n\t\t\t\t/**\n\t\t\t\t * While the component was focused an action was performed that\n\t\t\t\t * changed the elements of the component and focus was moved to\n\t\t\t\t * a different element on the page\n\t\t\t\t */\n\t\t\t\tthis.setElements();\n\t\t\t\tthis.setActiveElement(this.getActiveElement());\n\n\t\t\t\tif (this.getActiveElement()) {\n\t\t\t\t\t/**\n\t\t\t\t\t * The active element is still within the roving tabindex so focus\n\t\t\t\t\t * on the element that should receive focus\n\t\t\t\t\t */\n\t\t\t\t\tthis.setElementFocus(this.getActiveElement());\n\t\t\t\t} else {\n\t\t\t\t\t/**\n\t\t\t\t\t * The active element has been moved outside of the MrlRovingTabindex\n\t\t\t\t\t * component so reset the component\n\t\t\t\t\t */\n\t\t\t\t\t// Only call onBlur if focus has truly left the container\n\t\t\t\t\tif (this.ref && !this.ref.contains(document.activeElement)) {\n\t\t\t\t\t\tonBlur?.();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\thandleRef = (ref: HTMLDivElement): HTMLDivElement => {\n\t\tthis.ref = ref;\n\t\t// Set up focus listener when ref becomes available\n\t\tif (ref) {\n\t\t\tref.addEventListener('focusout', this.handleFocusOut);\n\t\t}\n\t\treturn ref;\n\t};\n\n\t/**\n\t * Handles focus out events to detect when focus leaves the roving tabindex container\n\t * @param {FocusEvent} event - the focus out event\n\t * @returns {void}\n\t */\n\thandleFocusOut = (event: FocusEvent): void => {\n\t\tconst { onBlur } = this.props;\n\t\tconst relatedTarget = (event as FocusEvent & { relatedTarget?: HTMLElement }).relatedTarget;\n\n\t\t// Check if focus is moving to an element outside the container\n\t\tif (relatedTarget && !this.ref?.contains(relatedTarget)) {\n\t\t\t// Focus has moved from inside the container to outside\n\t\t\tonBlur?.();\n\t\t}\n\t};\n\n\t/**\n\t * Sets component array of elements\n\t * @returns {void}\n\t */\n\tsetElements = (): void => {\n\t\tif (!this.ref) return;\n\t\tthis.elements = getTabbableElements(this.ref, this.selector);\n\t};\n\n\t/**\n\t * Queries for a single element matching the selector within the container.\n\t * @param selector - CSS selector to query\n\t * @returns The matching element or null\n\t */\n\tqueryElement = (selector: string): HTMLElement | null => {\n\t\treturn this.ref?.querySelector(selector) as HTMLElement | null;\n\t};\n\n\t/**\n\t * Gets the active element based on priority order:\n\t * 1. Element matching the custom `activeSelector` prop (e.g., custom radio elements)\n\t * 2. Element with `data-roving-active` attribute (programmatically set active)\n\t * 3. First element with `data-roving` attribute (default fallback)\n\t *\n\t * Disabled elements are excluded unless `allowDisabled` is true.\n\t * @returns The active HTML element, or undefined if none found\n\t */\n\tgetActiveElement = (): HTMLElement | undefined => {\n\t\tconst { activeSelector, allowDisabled = DEFAULT_ALLOW_DISABLED } = this.props;\n\t\tconst disabledFilter = allowDisabled ? '' : DISABLED_EXCLUSION;\n\n\t\t// Priority 1: Custom active selector (e.g., for radio button groups)\n\t\t// An element with the matching activeSelector prop (example usage: custom radio elements)\n\t\tif (activeSelector) {\n\t\t\tconst customActiveElement = this.queryElement(\n\t\t\t\t`${activeSelector}[data-roving]${disabledFilter}`\n\t\t\t);\n\t\t\tif (customActiveElement) return customActiveElement;\n\t\t}\n\n\t\t// Priority 2: Programmatically marked active element\n\t\t// An element with a `data-roving-active` attribute, indicating the current active element\n\t\tconst markedActiveElement = this.queryElement(\n\t\t\t`[data-roving][data-roving-active]${disabledFilter}`\n\t\t);\n\t\tif (markedActiveElement) return markedActiveElement;\n\n\t\t// Priority 3: First roving element (uses pre-built selector with disabled handling)\n\t\t// If no active element is found, the first instance of an element with `data-roving=\"true\"`\n\t\tconst firstRovingElement = this.ref?.querySelectorAll(this.selector)[0];\n\t\treturn firstRovingElement as HTMLElement | undefined;\n\t};\n\n\t/**\n\t * Sets an element to `tabindex=0` and sets all other elements to `tabindex=-1`\n\t * @param {HTMLElement | undefined} el - the element to set as active\n\t * @returns {void}\n\t */\n\tsetActiveElement = (el: HTMLElement | undefined): void => {\n\t\tif (!el) return;\n\n\t\tthis.unsetTabbableElements();\n\t\tel.setAttribute('tabindex', '0');\n\t};\n\n\t/**\n\t * Sets focus to a specific element\n\t * @param {HTMLElement | undefined} el - the element to set in focus\n\t * @returns {void}\n\t */\n\tsetElementFocus = (el: HTMLElement | undefined): void => {\n\t\tif (!el) return;\n\n\t\t/**\n\t\t * Why data-roving-active?\n\t\t *\n\t\t * We only want to set data-roving-active when 'setElementFocus' is triggered because we don't want [tabindex=0] to be mutally exclusive with\n\t\t * [data-roving-active]. An item with [data-roving-active] can exist without having [tabindex=0] and vice versa. We only want to set [data-roving-active]\n\t\t * intentionally when a user action has occured to change it. Such as a keyboard event or moving focus manually with Javascript.\n\t\t */\n\t\tconst current = this.getActiveElement();\n\t\tif (current) current.removeAttribute('data-roving-active');\n\t\tel.setAttribute('data-roving-active', 'true');\n\n\t\tthis.setActiveElement(el);\n\t\tel.focus();\n\t};\n\n\t/**\n\t * Sets focus to an element based on a direction (`forward` or `back`)\n\t * Disabled elements are already excluded from this.elements via CSS selector\n\t * @param {NavigationDirection} direction 'forward' | 'back'\n\t * @returns {void}\n\t */\n\tsetFocusByDirection = (direction: NavigationDirection): void => {\n\t\tconst itemsLen = this.elements.length;\n\n\t\tif (itemsLen > 0) {\n\t\t\tconst currentIndex = this.elements.indexOf(document.activeElement);\n\n\t\t\tconst directionSum = direction === 'back' ? -1 : 1;\n\t\t\tlet nextIndex = currentIndex + directionSum;\n\n\t\t\tif (direction === 'back') {\n\t\t\t\tnextIndex = nextIndex < 0 ? itemsLen - 1 : nextIndex;\n\t\t\t}\n\n\t\t\tif (direction === 'forward') {\n\t\t\t\tnextIndex = nextIndex >= itemsLen ? 0 : nextIndex;\n\t\t\t}\n\n\t\t\tthis.setElementFocus(this.elements[nextIndex] as HTMLElement);\n\t\t}\n\t};\n\n\t/**\n\t * Sets all tabindex for elements of this component to -1\n\t * Also ensures disabled elements (excluded from roving tabindex) have tabindex=-1\n\t * @returns {void}\n\t */\n\tunsetTabbableElements = (): void => {\n\t\tif (!this.elements) return;\n\n\t\t// Set tabindex=-1 for all roving tabindex elements\n\t\tthis.elements.forEach((el: Element | null) => {\n\t\t\tel && el.setAttribute('tabindex', '-1');\n\t\t});\n\n\t\t// Also set tabindex=-1 for disabled elements that are excluded from roving tabindex\n\t\t// This ensures disabled elements are not tabbable even though they're not in the navigation order\n\t\tif (!this.ref || this.props.allowDisabled) return;\n\n\t\tconst disabledElements = this.ref.querySelectorAll(\n\t\t\t`[data-roving][disabled], [data-roving][aria-disabled=\"true\"]`\n\t\t);\n\t\tdisabledElements.forEach((el) => {\n\t\t\tel.setAttribute('tabindex', '-1');\n\t\t});\n\t};\n\n\t/**\n\t * Will return `false` if the orientation param matches the\n\t * orientation of the component and the actively focused element has a menu or select\n\t * @param orientation : 'horizontal' | 'vertical'\n\t * @returns boolean\n\t */\n\tcanUseArrows = (orientation: RovingOrientation): boolean => {\n\t\tconst { activeElement } = document;\n\t\tconst role = activeElement?.getAttribute('role');\n\t\tconst hasMenuOrSelect =\n\t\t\tactiveElement?.getAttribute('aria-haspopup') === 'true' ||\n\t\t\trole === 'combobox' ||\n\t\t\trole === 'option' ||\n\t\t\trole === 'listbox';\n\n\t\treturn !(this.orientation === orientation && hasMenuOrSelect);\n\t};\n\n\thandleKeyUp = (e: React.KeyboardEvent): void => {\n\t\tconst { ignoreElements } = this.props;\n\t\tconst allowKeyPress = !ignoreElements ? true : !document.activeElement?.closest(ignoreElements);\n\n\t\tconst modifierPressed = e.ctrlKey || e.metaKey || e.shiftKey;\n\n\t\tif (modifierPressed) return;\n\n\t\t/**\n\t\t * If elements within MrlRovingTabindex are added after the component mounts\n\t\t * they will not automatically be a `part of this.elements`. This checks if\n\t\t * `this.elements` contains all elements that MrlRovingTabindex should be aware\n\t\t * of and will update `this.elements` if neccessary.\n\t\t */\n\t\tconst knownTabbableElements = this.elements;\n\t\tconst allTabbableElements = getTabbableElements(this.ref, this.selector);\n\n\t\tif (\n\t\t\tknownTabbableElements.length !== allTabbableElements.length ||\n\t\t\t!arraysEqual(knownTabbableElements, allTabbableElements)\n\t\t) {\n\t\t\tthis.setElements();\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t}\n\n\t\tconst isActiveRoving = this.getActiveElement() === document.activeElement;\n\n\t\tif (allowKeyPress && isActiveRoving) {\n\t\t\te.stopPropagation();\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tif (this.canUseArrows('horizontal')) this.setFocusByDirection('forward');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tif (this.canUseArrows('horizontal')) this.setFocusByDirection('back');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\tif (this.canUseArrows('vertical')) this.setFocusByDirection('forward');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tif (this.canUseArrows('vertical')) this.setFocusByDirection('back');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tthis.handleFocusedLast();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tthis.handleFocusedFirst();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\thandleFocusedFirst = (): void => this.setElementFocus(this.elements[0] as HTMLElement);\n\n\thandleFocusedLast = (): void =>\n\t\tthis.setElementFocus(this.elements[this.elements.length - 1] as HTMLElement);\n\n\thandleRefocus = (): void => {\n\t\tthis.setActiveElement(document.activeElement as HTMLElement);\n\t\tthis.props.onRefocus?.(false);\n\t};\n\n\t/**\n\t * Mounts the MrlRovingTabindex component\n\t * @returns {void}\n\t */\n\tmount(): void {\n\t\tconst { focusOnInit, focusWithShortcut, isFocused } = this.props;\n\n\t\tif (!focusWithShortcut) {\n\t\t\t// get initial set of elements for the component\n\t\t\tthis.setElements();\n\n\t\t\t// sets the first element of the component to tabindex=0 but does not move focus\n\t\t\t// this allows users to tab to the component naturally based on tab order\n\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t} else {\n\t\t\t// When focusWithShortcut is true, we need to set up elements\n\t\t\t// but only set tabindex values based on isFocused state\n\t\t\tthis.setElements();\n\n\t\t\tif (!isFocused) {\n\t\t\t\t// If not focused initially, set all elements to tabindex=-1\n\t\t\t\tthis.unsetTabbableElements();\n\t\t\t} else {\n\t\t\t\t// If focused initially, set the active element properly\n\t\t\t\tthis.setActiveElement(this.getActiveElement());\n\t\t\t}\n\t\t}\n\n\t\tif (focusOnInit && this.elements.length > 0) {\n\t\t\tif (focusOnInit === 'first') {\n\t\t\t\tthis.handleFocusedFirst();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.handleFocusedLast();\n\t\t}\n\t}\n\n\t/**\n\t * Renders the MrlRovingTabindex component\n\t * @returns {HTMLDivElement} - the rendered MrlRovingTabindex component\n\t */\n\trender(): JSX.Element {\n\t\t/* eslint-disable @typescript-eslint/no-unused-vars */\n\t\t// Destructure component-specific props to prevent them from being spread to the DOM\n\t\tconst {\n\t\t\tactiveSelector,\n\t\t\tallowDisabled,\n\t\t\tchildren,\n\t\t\tdelayMount,\n\t\t\tfocusOnInit,\n\t\t\tfocusWithShortcut,\n\t\t\tforceUpdate,\n\t\t\thasChildRoving,\n\t\t\tignoreElements,\n\t\t\tisFocused,\n\t\t\tonBlur,\n\t\t\tonRefocus,\n\t\t\torientation,\n\t\t\tqa,\n\t\t\t...rest\n\t\t} = this.props;\n\t\t/* eslint-enable @typescript-eslint/no-unused-vars */\n\n\t\tconst dataQa = `${qa || 'generic'}-roving`;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName=\"helpers-roving-tabindex-container\"\n\t\t\t\tdata-qa={dataQa}\n\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\tref={this.handleRef}\n\t\t\t\trole=\"presentation\"\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n\t\t\t\ttabIndex={-1}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport { MrlRovingTabindex };\n"],"names":["getTabbableElements","ref","selector","elements","querySelectorAll","Array","prototype","slice","call","arraysEqual","a","b","length","every","el","i","DEFAULT_ALLOW_DISABLED","DISABLED_EXCLUSION","NESTED_ROVING_EXCLUSION","buildSelector","allowDisabled","hasChildRoving","disabledPart","nestedPart","concat","MrlRovingTabindex","React","Component","constructor","props","_defineProperty","addEventListener","handleFocusOut","event","_this$ref","onBlur","relatedTarget","contains","_this$ref2","querySelector","_this$ref3","_this$props","activeSelector","_this$props$allowDisa","disabledFilter","customActiveElement","queryElement","markedActiveElement","firstRovingElement","unsetTabbableElements","setAttribute","current","getActiveElement","removeAttribute","setActiveElement","focus","direction","itemsLen","currentIndex","indexOf","document","activeElement","directionSum","nextIndex","setElementFocus","forEach","disabledElements","orientation","_document","role","getAttribute","hasMenuOrSelect","e","_document$activeEleme","ignoreElements","allowKeyPress","closest","modifierPressed","ctrlKey","metaKey","shiftKey","knownTabbableElements","allTabbableElements","setElements","isActiveRoving","stopPropagation","key","canUseArrows","setFocusByDirection","handleFocusedLast","handleFocusedFirst","_this$props$onRefocus","_this$props2","onRefocus","_props$allowDisabled","_props$hasChildRoving","componentDidMount","delayMount","setTimeout","mount","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","_this$props3","_this$props3$allowDis","children","focusWithShortcut","_this$props3$hasChild","isFocused","handleRefocus","_this$ref4","_this$props4","focusOnInit","render","_this$props5","forceUpdate","qa","rest","_objectWithoutProperties","_excluded","dataQa","createElement","_extends","className","onKeyUp","handleKeyUp","handleRef","tabIndex"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, objectSpread2 as _objectSpread2, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import classnames from 'classnames';
3
3
  import * as React from 'react';
4
4
  import styles from './MrlSkeleton.module.scss.js';
@@ -19,10 +19,12 @@ function MrlSkeleton(_ref) {
19
19
  width = _ref.width,
20
20
  className = _ref.className,
21
21
  rest = _objectWithoutProperties(_ref, _excluded);
22
- var classes = classnames(styles['MrlSkeleton'], _defineProperty({}, styles["MrlSkeleton-".concat(shape)], shape !== 'default'), className);
22
+ var classes = classnames(styles['MrlSkeleton'], {
23
+ [styles["MrlSkeleton-".concat(shape)]]: shape !== 'default'
24
+ }, className);
23
25
  var skeletonStyle = _objectSpread2(_objectSpread2({}, style), {}, {
24
- height: height,
25
- width: width
26
+ height,
27
+ width
26
28
  }, shape === 'circle' && {
27
29
  width: height
28
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSkeleton.js","sources":["../../../../../src/components/skeleton/MrlSkeleton/MrlSkeleton.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport * as React from 'react';\n\nimport styles from './MrlSkeleton.module.scss';\n\nexport interface MrlSkeletonProps extends React.ComponentProps<'div'> {\n\t/** An object with CSS properties */\n\tstyle?: React.CSSProperties;\n\t/** MrlSkeleton wrapper class */\n\tclassName?: string;\n\t/** The height of the MrlSkeleton component */\n\theight?: React.CSSProperties['height'];\n\t/** The width of the MrlSkeleton component */\n\twidth?: React.CSSProperties['width'];\n\t/** The shape of the Skeleton component */\n\tshape?: 'circle' | 'default';\n}\n\n/**\n * MrlSkeleton React component.\n *\n * @param props {MrlSkeletonProps} - component props\n * @returns a MrlSkeleton React component.\n */\nexport function MrlSkeleton({\n\theight = 'var(--mrl-spacing-05)',\n\tshape = 'default',\n\tstyle,\n\twidth,\n\tclassName,\n\t...rest\n}: MrlSkeletonProps): JSX.Element {\n\tconst classes = classnames(\n\t\tstyles['MrlSkeleton'],\n\t\t{\n\t\t\t[styles[`MrlSkeleton-${shape}`]]: shape !== 'default'\n\t\t},\n\t\tclassName\n\t);\n\n\tconst skeletonStyle = {\n\t\t...style,\n\t\theight,\n\t\twidth,\n\t\t...(shape === 'circle' && { width: height })\n\t};\n\n\treturn <div aria-hidden=\"true\" className={classes} style={skeletonStyle}\n\t\t{...rest} />;\n}\n"],"names":["MrlSkeleton","_ref","_ref$height","height","_ref$shape","shape","style","width","className","rest","_objectWithoutProperties","_excluded","classes","classnames","styles","_defineProperty","concat","skeletonStyle","_objectSpread","React","createElement","_extends"],"mappings":";;;;;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CAAAC,IAAA,EAOO;AAAA,EAAA,IAAAC,WAAA,GAAAD,IAAA,CANjCE,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,uBAAuB,GAAAA,WAAA;IAAAE,UAAA,GAAAH,IAAA,CAChCI,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,UAAA;IACjBE,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,SAAS,GAAAP,IAAA,CAATO,SAAS;AACNC,IAAAA,IAAI,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA;EAEP,IAAMC,OAAO,GAAGC,UAAU,CACzBC,MAAM,CAAC,aAAa,CAAC,EAAAC,eAAA,CAAA,EAAA,EAEnBD,MAAM,CAAA,cAAA,CAAAE,MAAA,CAAgBX,KAAK,CAAA,CAAG,EAAGA,KAAK,KAAK,SAAS,CAAA,EAEtDG,SACD,CAAC;AAED,EAAA,IAAMS,aAAa,GAAAC,cAAA,CAAAA,cAAA,KACfZ,KAAK,CAAA,EAAA,EAAA,EAAA;AACRH,IAAAA,MAAM,EAANA,MAAM;AACNI,IAAAA,KAAK,EAALA;GAAK,EACDF,KAAK,KAAK,QAAQ,IAAI;AAAEE,IAAAA,KAAK,EAAEJ;AAAO,GAAC,CAC3C;AAED,EAAA,oBAAOgB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AAAK,IAAA,aAAA,EAAY,MAAM;AAACb,IAAAA,SAAS,EAAEI,OAAQ;AAACN,IAAAA,KAAK,EAAEW;GAAc,EACnER,IAAI,CAAG,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"MrlSkeleton.js","sources":["../../../../../src/components/skeleton/MrlSkeleton/MrlSkeleton.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport * as React from 'react';\n\nimport styles from './MrlSkeleton.module.scss';\n\nexport interface MrlSkeletonProps extends React.ComponentProps<'div'> {\n\t/** An object with CSS properties */\n\tstyle?: React.CSSProperties;\n\t/** MrlSkeleton wrapper class */\n\tclassName?: string;\n\t/** The height of the MrlSkeleton component */\n\theight?: React.CSSProperties['height'];\n\t/** The width of the MrlSkeleton component */\n\twidth?: React.CSSProperties['width'];\n\t/** The shape of the Skeleton component */\n\tshape?: 'circle' | 'default';\n}\n\n/**\n * MrlSkeleton React component.\n *\n * @param props {MrlSkeletonProps} - component props\n * @returns a MrlSkeleton React component.\n */\nexport function MrlSkeleton({\n\theight = 'var(--mrl-spacing-05)',\n\tshape = 'default',\n\tstyle,\n\twidth,\n\tclassName,\n\t...rest\n}: MrlSkeletonProps): JSX.Element {\n\tconst classes = classnames(\n\t\tstyles['MrlSkeleton'],\n\t\t{\n\t\t\t[styles[`MrlSkeleton-${shape}`]]: shape !== 'default'\n\t\t},\n\t\tclassName\n\t);\n\n\tconst skeletonStyle = {\n\t\t...style,\n\t\theight,\n\t\twidth,\n\t\t...(shape === 'circle' && { width: height })\n\t};\n\n\treturn <div aria-hidden=\"true\" className={classes} style={skeletonStyle}\n\t\t{...rest} />;\n}\n"],"names":["MrlSkeleton","_ref","_ref$height","height","_ref$shape","shape","style","width","className","rest","_objectWithoutProperties","_excluded","classes","classnames","styles","concat","skeletonStyle","_objectSpread","React","createElement","_extends"],"mappings":";;;;;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,WAAWA,CAAAC,IAAA,EAOO;AAAA,EAAA,IAAAC,WAAA,GAAAD,IAAA,CANjCE,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,uBAAuB,GAAAA,WAAA;IAAAE,UAAA,GAAAH,IAAA,CAChCI,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAA,MAAA,GAAG,SAAS,GAAAA,UAAA;IACjBE,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,SAAS,GAAAP,IAAA,CAATO,SAAS;AACNC,IAAAA,IAAI,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA;EAEP,IAAMC,OAAO,GAAGC,UAAU,CACzBC,MAAM,CAAC,aAAa,CAAC,EACrB;IACC,CAACA,MAAM,gBAAAC,MAAA,CAAgBV,KAAK,CAAA,CAAG,GAAGA,KAAK,KAAK;GAC5C,EACDG,SACD,CAAC;AAED,EAAA,IAAMQ,aAAa,GAAAC,cAAA,CAAAA,cAAA,KACfX,KAAK,CAAA,EAAA,EAAA,EAAA;IACRH,MAAM;AACNI,IAAAA;GAAK,EACDF,KAAK,KAAK,QAAQ,IAAI;AAAEE,IAAAA,KAAK,EAAEJ;AAAO,GAAC,CAC3C;AAED,EAAA,oBAAOe,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AAAK,IAAA,aAAA,EAAY,MAAM;AAACZ,IAAAA,SAAS,EAAEI,OAAQ;AAACN,IAAAA,KAAK,EAAEU;GAAc,EACnEP,IAAI,CAAG,CAAC;AACd;;;;"}
@@ -1,4 +1,4 @@
1
- import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, objectSpread2 as _objectSpread2, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import classnames from 'classnames';
3
3
  import * as React from 'react';
4
4
  import styles from './MrlSkeletonText.module.scss.js';
@@ -21,12 +21,14 @@ function MrlSkeletonText(_ref) {
21
21
  _ref$size = _ref.size,
22
22
  size = _ref$size === void 0 ? 'medium' : _ref$size,
23
23
  rest = _objectWithoutProperties(_ref, _excluded);
24
- var classes = classnames(styles['MrlSkeletonText'], _defineProperty({}, styles["MrlSkeletonText-".concat(size)], !!size), className);
25
- var skeletonTextLines = React.useMemo(function () {
24
+ var classes = classnames(styles['MrlSkeletonText'], {
25
+ [styles["MrlSkeletonText-".concat(size)]]: !!size
26
+ }, className);
27
+ var skeletonTextLines = React.useMemo(() => {
26
28
  var skeletonStyle = _objectSpread2(_objectSpread2({}, style), {}, {
27
- width: width
29
+ width
28
30
  });
29
- return new Array(lines).fill(0).map(function () {
31
+ return new Array(lines).fill(0).map(() => {
30
32
  return /*#__PURE__*/React.createElement("div", _extends({
31
33
  "aria-hidden": "true",
32
34
  className: classes,
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSkeletonText.js","sources":["../../../../../src/components/skeleton/MrlSkeletonText/MrlSkeletonText.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport * as React from 'react';\n\nimport styles from './MrlSkeletonText.module.scss';\nimport { getUniqueId } from '../../../utils';\nimport { TextSizes } from '../../text/constants';\n\nexport interface MrlSkeletonTextProps extends React.ComponentProps<'div'> {\n\t/** An object of CSS properties */\n\tstyle?: React.CSSProperties;\n\t/** MrlSkeletonText wrapper class */\n\tclassName?: string;\n\t/** The width of the MrlSkeletonText component */\n\twidth?: React.CSSProperties['width'];\n\t/** Number of lines to render */\n\tlines?: number;\n\t/** Size of the text which is the same as MrlText component */\n\tsize?: TextSizes;\n}\n\n/**\n * MrlSkeletonText React component. Used to create skeleton elements as placeholders\n * for the MrlText component. It supports the same text sizes as the MrlText component.\n *\n * @param props {MrlSkeletonTextProps} - component props\n * @returns a MrlSkeleton React component.\n */\nexport function MrlSkeletonText({\n\tclassName,\n\tstyle,\n\twidth,\n\tlines = 1,\n\tsize = 'medium',\n\t...rest\n}: MrlSkeletonTextProps): JSX.Element {\n\tconst classes = classnames(\n\t\tstyles['MrlSkeletonText'],\n\t\t{\n\t\t\t[styles[`MrlSkeletonText-${size}`]]: !!size\n\t\t},\n\t\tclassName\n\t);\n\n\tconst skeletonTextLines = React.useMemo(() => {\n\t\tconst skeletonStyle = {\n\t\t\t...style,\n\t\t\twidth\n\t\t};\n\n\t\treturn new Array(lines).fill(0).map(() => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={classes}\n\t\t\t\t\tkey={getUniqueId('MrlSkeletonText-line')}\n\t\t\t\t\tstyle={skeletonStyle}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [lines]);\n\n\treturn <>{skeletonTextLines}</>;\n}\n"],"names":["MrlSkeletonText","_ref","className","style","width","_ref$lines","lines","_ref$size","size","rest","_objectWithoutProperties","_excluded","classes","classnames","styles","_defineProperty","concat","skeletonTextLines","React","useMemo","skeletonStyle","_objectSpread","Array","fill","map","createElement","_extends","key","getUniqueId","Fragment"],"mappings":";;;;;;;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAeA,CAAAC,IAAA,EAOO;AAAA,EAAA,IANrCC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAAC,UAAA,GAAAJ,IAAA,CACLK,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,UAAA;IAAAE,SAAA,GAAAN,IAAA,CACTO,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,SAAA;AACZE,IAAAA,IAAI,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA;EAEP,IAAMC,OAAO,GAAGC,UAAU,CACzBC,MAAM,CAAC,iBAAiB,CAAC,EAAAC,eAAA,CAAA,EAAA,EAEvBD,MAAM,CAAA,kBAAA,CAAAE,MAAA,CAAoBR,IAAI,CAAA,CAAG,EAAG,CAAC,CAACA,IAAI,CAAA,EAE5CN,SACD,CAAC;AAED,EAAA,IAAMe,iBAAiB,GAAGC,KAAK,CAACC,OAAO,CAAC,YAAM;AAC7C,IAAA,IAAMC,aAAa,GAAAC,cAAA,CAAAA,cAAA,KACflB,KAAK,CAAA,EAAA,EAAA,EAAA;AACRC,MAAAA,KAAK,EAALA;KAAK,CACL;AAED,IAAA,OAAO,IAAIkB,KAAK,CAAChB,KAAK,CAAC,CAACiB,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,YAAM;AACzC,MAAA,oBACCN,KAAA,CAAAO,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AACC,QAAA,aAAA,EAAY,MAAM;AAClBxB,QAAAA,SAAS,EAAEU,OAAQ;AACnBe,QAAAA,GAAG,EAAEC,WAAW,CAAC,sBAAsB,CAAE;AACzCzB,QAAAA,KAAK,EAAEiB;OAAc,EACjBX,IAAI,CACR,CAAC;AAEJ,IAAA,CAAC,CAAC;AACF;AACD,EAAA,CAAC,EAAE,CAACH,KAAK,CAAC,CAAC;EAEX,oBAAOY,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAW,QAAA,EAAA,IAAA,EAAGZ,iBAAoB,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"MrlSkeletonText.js","sources":["../../../../../src/components/skeleton/MrlSkeletonText/MrlSkeletonText.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport * as React from 'react';\n\nimport styles from './MrlSkeletonText.module.scss';\nimport { getUniqueId } from '../../../utils';\nimport { TextSizes } from '../../text/constants';\n\nexport interface MrlSkeletonTextProps extends React.ComponentProps<'div'> {\n\t/** An object of CSS properties */\n\tstyle?: React.CSSProperties;\n\t/** MrlSkeletonText wrapper class */\n\tclassName?: string;\n\t/** The width of the MrlSkeletonText component */\n\twidth?: React.CSSProperties['width'];\n\t/** Number of lines to render */\n\tlines?: number;\n\t/** Size of the text which is the same as MrlText component */\n\tsize?: TextSizes;\n}\n\n/**\n * MrlSkeletonText React component. Used to create skeleton elements as placeholders\n * for the MrlText component. It supports the same text sizes as the MrlText component.\n *\n * @param props {MrlSkeletonTextProps} - component props\n * @returns a MrlSkeleton React component.\n */\nexport function MrlSkeletonText({\n\tclassName,\n\tstyle,\n\twidth,\n\tlines = 1,\n\tsize = 'medium',\n\t...rest\n}: MrlSkeletonTextProps): JSX.Element {\n\tconst classes = classnames(\n\t\tstyles['MrlSkeletonText'],\n\t\t{\n\t\t\t[styles[`MrlSkeletonText-${size}`]]: !!size\n\t\t},\n\t\tclassName\n\t);\n\n\tconst skeletonTextLines = React.useMemo(() => {\n\t\tconst skeletonStyle = {\n\t\t\t...style,\n\t\t\twidth\n\t\t};\n\n\t\treturn new Array(lines).fill(0).map(() => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={classes}\n\t\t\t\t\tkey={getUniqueId('MrlSkeletonText-line')}\n\t\t\t\t\tstyle={skeletonStyle}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [lines]);\n\n\treturn <>{skeletonTextLines}</>;\n}\n"],"names":["MrlSkeletonText","_ref","className","style","width","_ref$lines","lines","_ref$size","size","rest","_objectWithoutProperties","_excluded","classes","classnames","styles","concat","skeletonTextLines","React","useMemo","skeletonStyle","_objectSpread","Array","fill","map","createElement","_extends","key","getUniqueId","Fragment"],"mappings":";;;;;;;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAeA,CAAAC,IAAA,EAOO;AAAA,EAAA,IANrCC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAAC,UAAA,GAAAJ,IAAA,CACLK,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,UAAA;IAAAE,SAAA,GAAAN,IAAA,CACTO,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,SAAA;AACZE,IAAAA,IAAI,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA;EAEP,IAAMC,OAAO,GAAGC,UAAU,CACzBC,MAAM,CAAC,iBAAiB,CAAC,EACzB;IACC,CAACA,MAAM,oBAAAC,MAAA,CAAoBP,IAAI,CAAA,CAAG,GAAG,CAAC,CAACA;GACvC,EACDN,SACD,CAAC;AAED,EAAA,IAAMc,iBAAiB,GAAGC,KAAK,CAACC,OAAO,CAAC,MAAM;AAC7C,IAAA,IAAMC,aAAa,GAAAC,cAAA,CAAAA,cAAA,KACfjB,KAAK,CAAA,EAAA,EAAA,EAAA;AACRC,MAAAA;KAAK,CACL;AAED,IAAA,OAAO,IAAIiB,KAAK,CAACf,KAAK,CAAC,CAACgB,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,MAAM;AACzC,MAAA,oBACCN,KAAA,CAAAO,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AACC,QAAA,aAAA,EAAY,MAAM;AAClBvB,QAAAA,SAAS,EAAEU,OAAQ;AACnBc,QAAAA,GAAG,EAAEC,WAAW,CAAC,sBAAsB,CAAE;AACzCxB,QAAAA,KAAK,EAAEgB;OAAc,EACjBV,IAAI,CACR,CAAC;AAEJ,IAAA,CAAC,CAAC;AACF;AACD,EAAA,CAAC,EAAE,CAACH,KAAK,CAAC,CAAC;EAEX,oBAAOW,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAW,QAAA,EAAA,IAAA,EAAGZ,iBAAoB,CAAC;AAChC;;;;"}
@@ -19,7 +19,7 @@ var _excluded = ["className", "size", "svg", "path", "attrs", "isClone", "lazyLo
19
19
  * @param {SvgPropTypes} props the props for your MrlSvg
20
20
  * @returns {React.ReactElement} a rendered SVG
21
21
  */
22
- var MrlSvg = /*#__PURE__*/React.memo(function (props) {
22
+ var MrlSvg = /*#__PURE__*/React.memo(props => {
23
23
  var className = props.className,
24
24
  _props$size = props.size,
25
25
  size = _props$size === void 0 ? 'medium' : _props$size,
@@ -39,7 +39,7 @@ var MrlSvg = /*#__PURE__*/React.memo(function (props) {
39
39
  * @param {Record<string, unknown>} svgData - the SVG code
40
40
  * @returns {boolean} - a boolean for whether or not the string is valid JSON
41
41
  */
42
- var isValidJSON = function isValidJSON(svgData) {
42
+ var isValidJSON = svgData => {
43
43
  try {
44
44
  isObject(svgData);
45
45
  } catch (err) {
@@ -76,7 +76,7 @@ var MrlSvg = /*#__PURE__*/React.memo(function (props) {
76
76
  *
77
77
  * @todo: Create react component for DS Icons and remove this code
78
78
  */
79
- Object.keys(tagAttributes).forEach(function (key) {
79
+ Object.keys(tagAttributes).forEach(key => {
80
80
  var newKey = key;
81
81
  if (key === 'class') {
82
82
  newKey = 'className';
@@ -100,15 +100,11 @@ var MrlSvg = /*#__PURE__*/React.memo(function (props) {
100
100
  }, /*#__PURE__*/React.createElement("svg", _extends({}, tagAttributes, userAttributes, remainingProps, {
101
101
  className: classnames(styles.MrlSvg, styles["MrlSvg--".concat(size)], 'mrl-svg'),
102
102
  key: getUniqueId()
103
- }), Array.isArray(svgObj.children) && svgObj.children.map(function (child) {
104
- return _parseSVG(child);
105
- })));
103
+ }), Array.isArray(svgObj.children) && svgObj.children.map(child => _parseSVG(child))));
106
104
  }
107
105
  return /*#__PURE__*/React.createElement(Tag, _extends({}, tagAttributes, {
108
106
  key: getUniqueId()
109
- }), Array.isArray(svgObj.children) && svgObj.children.map(function (child) {
110
- return _parseSVG(child);
111
- }));
107
+ }), Array.isArray(svgObj.children) && svgObj.children.map(child => _parseSVG(child)));
112
108
  };
113
109
 
114
110
  // We do not want to re-render the icon if it's a cloned version
@@ -146,8 +142,8 @@ var MrlSvg = /*#__PURE__*/React.memo(function (props) {
146
142
  }
147
143
  var slot = attrs.slot;
148
144
  delete attrs.slot;
149
- var allClasses = classnames(attrs["class"], attrs.className, className);
150
- delete attrs["class"];
145
+ var allClasses = classnames(attrs.class, attrs.className, className);
146
+ delete attrs.class;
151
147
  delete attrs.className;
152
148
  var attributes = setAttributes(attrs, svgDefaults.attrs);
153
149
  var isSvgString = typeof svg === 'string';
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSvg.js","sources":["../../../../../src/components/svg/MrlSvg/MrlSvg.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport {\n\tMrlComponentProps,\n\ttype AttrsObject,\n\tisObject,\n\tgetCamelCase,\n\tgetUniqueId,\n\tsetAttributes\n} from '../../../utils';\nimport { svgDefaults, SVGSize, SVGObject } from '../constants';\nimport styles from './MrlSvg.module.scss';\n\nexport type DSIcons = typeof import('@muraldevkit/ds-icons');\nexport type DSPictograms = typeof import('@muraldevkit/ds-pictograms');\nexport type DSIconType = DSIcons[keyof DSIcons] | DSPictograms[keyof DSPictograms];\n\n// If we dont omit style from MrlComponentProps and re-add it in SvgPropTypes, we get an error.\nexport interface SvgPropTypes\n\textends Omit<MrlComponentProps, 'style'>,\n\t\tOmit<React.ComponentProps<'svg'>, 'ref'> {\n\t/** Any additional classes to style the SVG's container */\n\tclassName?: string;\n\t/**\n\t * URL path to a static SVG file. Must provide either path or svg prop.\n\t */\n\tpath?: string;\n\t/** Enable lazy loading when a path is provided. */\n\tlazyLoad?: boolean;\n\tisClone?: boolean;\n\t/** The size of an SVG Component */\n\tsize?: SVGSize;\n\t/**\n\t * A object of CSS properties. Please use style sparingly, and only in cases where your\n\t * needs can not be met by passing a class to the component.\n\t */\n\tstyle?: Record<string, unknown>;\n\t/** The SVG object to parse into an HTML SVG element. Must provide either path or svg prop. */\n\tsvg?: DSIconType;\n}\n\n/**\n * Creating and exporting component class for Mural SVG\n *\n * Supports both static SVG objects and dynamic URL loading.\n *\n * @param {SvgPropTypes} props the props for your MrlSvg\n * @returns {React.ReactElement} a rendered SVG\n */\nexport const MrlSvg = React.memo((props: SvgPropTypes): React.ReactElement => {\n\tconst {\n\t\tclassName,\n\t\tsize = 'medium',\n\t\tsvg,\n\t\tpath,\n\t\tattrs = {},\n\t\tisClone = false,\n\t\tlazyLoad,\n\t\t...remainingProps\n\t} = props;\n\n\tconst GENERIC_WARNING_MESSAGE = 'There has been an issue rendering your SVG!';\n\n\t/**\n\t * Checks to ensure a string is valid JSON before parsing\n\t *\n\t * @param {Record<string, unknown>} svgData - the SVG code\n\t * @returns {boolean} - a boolean for whether or not the string is valid JSON\n\t */\n\tconst isValidJSON = (svgData: Record<string, unknown>): boolean => {\n\t\ttry {\n\t\t\tisObject(svgData);\n\t\t} catch (err) {\n\t\t\t// This is not valid JSON\n\t\t\tconsole.warn(`${GENERIC_WARNING_MESSAGE} Invalid SVG code:`);\n\t\t\tconsole.warn(svgData);\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\t/**\n\t * Parses a JS Object of SVG code into an SVG HTML Element\n\t *\n\t * @param {SVGObject} svgObj - a JS object of SVG code\n\t * @param {AttrsObject} userAttributes - an optional set of attributes to be applied to the SVG\n\t * @param {string} classes - an optional object of classes to be applied to the SVG\n\t * @param {string} slot - an optional slot attribute for use in web components\n\t * @returns {React.ReactElement} - an SVG HTML Element\n\t */\n\tconst parseSVG = (\n\t\tsvgObj: SVGObject,\n\t\tuserAttributes = {},\n\t\tclasses?: string,\n\t\tslot?: string\n\t): React.ReactElement => {\n\t\tif (svgObj.type === 'text') {\n\t\t\treturn svgObj.value;\n\t\t}\n\n\t\tconst Tag = svgObj.name;\n\t\tconst tagAttributes = svgObj.attributes || {};\n\n\t\t/**\n\t\t * Formats SVG attributes to from kebab case to camel case for React syntax\n\t\t * Note: this excudes `data-` attributes\n\t\t *\n\t\t * @todo: Create react component for DS Icons and remove this code\n\t\t */\n\t\tObject.keys(tagAttributes).forEach((key) => {\n\t\t\tlet newKey = key;\n\t\t\tif (key === 'class') {\n\t\t\t\tnewKey = 'className';\n\t\t\t} else if (key.slice(0, 5) !== 'data-') {\n\t\t\t\tnewKey = getCamelCase(key);\n\t\t\t}\n\n\t\t\ttagAttributes[newKey] = tagAttributes[key];\n\n\t\t\tif (key !== newKey) {\n\t\t\t\tdelete tagAttributes[key];\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * We render the `svg` element explicitly here to ensure that the user applied\n\t\t * attributes and classes only get applied to the `svg` element.\n\t\t */\n\t\tif (Tag === 'svg') {\n\t\t\treturn (\n\t\t\t\t<span\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tstyles.MrlSvgContainer,\n\t\t\t\t\t\tstyles[`MrlSvgContainer--${size}`],\n\t\t\t\t\t\t'MrlSvgContainer',\n\t\t\t\t\t\tclasses\n\t\t\t\t\t)}\n\t\t\t\t\tslot={slot}\n\t\t\t\t>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t{...tagAttributes}\n\t\t\t\t\t\t{...userAttributes}\n\t\t\t\t\t\t{...remainingProps}\n\t\t\t\t\t\tclassName={cn(styles.MrlSvg, styles[`MrlSvg--${size}`], 'mrl-svg')}\n\t\t\t\t\t\tkey={getUniqueId()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{Array.isArray(svgObj.children) &&\n\t\t\t\t\t\t\tsvgObj.children.map((child: Record<string, unknown>) => parseSVG(child))}\n\t\t\t\t\t</svg>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Tag {...tagAttributes} key={getUniqueId()}>\n\t\t\t\t{Array.isArray(svgObj.children) &&\n\t\t\t\t\tsvgObj.children.map((child: Record<string, unknown>) => parseSVG(child))}\n\t\t\t</Tag>\n\t\t);\n\t};\n\n\t// We do not want to re-render the icon if it's a cloned version\n\tif (isClone) {\n\t\treturn <span></span>;\n\t}\n\n\t// Validation: must provide either path or svg\n\tif (!path && !svg) {\n\t\tconsole.warn(`${GENERIC_WARNING_MESSAGE} Must provide either \"path\" or \"svg\" prop`);\n\t\treturn <span></span>;\n\t}\n\n\t// Validation: cannot provide both path and svg\n\tif (path && svg) {\n\t\tconsole.warn(\n\t\t\t`${GENERIC_WARNING_MESSAGE} Cannot provide both \"path\" and \"svg\" props. Using \"svg\" prop.`\n\t\t);\n\t}\n\n\t// Handle path prop with img tag (only if svg is not provided)\n\tif (path && !svg) {\n\t\treturn (\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\tstyles.MrlSvgContainer,\n\t\t\t\t\tstyles[`MrlSvgContainer--${size}`],\n\t\t\t\t\t'MrlSvgContainer',\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={path}\n\t\t\t\t\talt=\"\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={cn(styles.MrlSvg, styles[`MrlSvg--${size}`], 'mrl-svg')}\n\t\t\t\t\tloading={lazyLoad ? 'lazy' : 'eager'}\n\t\t\t\t/>\n\t\t\t</span>\n\t\t);\n\t}\n\n\t// don't render if SVG value is not defined\n\tif (!svg) {\n\t\treturn <span></span>;\n\t}\n\n\tconst slot = attrs.slot;\n\tdelete attrs.slot;\n\n\tconst allClasses = cn(attrs.class, attrs.className, className);\n\tdelete attrs.class;\n\tdelete attrs.className;\n\n\tconst attributes = setAttributes(attrs, svgDefaults.attrs);\n\n\tconst isSvgString = typeof svg === 'string';\n\n\tlet svgObject: SVGObject;\n\n\tif (isSvgString) {\n\t\ttry {\n\t\t\tconst parsedSvg = JSON.parse(svg);\n\t\t\tif (!isValidJSON(parsedSvg)) {\n\t\t\t\treturn <span></span>;\n\t\t\t}\n\t\t\tsvgObject = parsedSvg;\n\t\t} catch (err) {\n\t\t\tconsole.warn(`${GENERIC_WARNING_MESSAGE} Invalid JSON in svg prop:`, err);\n\t\t\treturn <span></span>;\n\t\t}\n\t} else {\n\t\tsvgObject = svg;\n\t}\n\n\treturn parseSVG(svgObject, attributes, allClasses, slot);\n});\n\nMrlSvg.displayName = 'MrlSvg';\n"],"names":["MrlSvg","React","memo","props","className","_props$size","size","svg","path","_props$attrs","attrs","_props$isClone","isClone","lazyLoad","remainingProps","_objectWithoutProperties","_excluded","GENERIC_WARNING_MESSAGE","isValidJSON","svgData","isObject","err","console","warn","concat","parseSVG","svgObj","userAttributes","arguments","length","undefined","classes","slot","type","value","Tag","name","tagAttributes","attributes","Object","keys","forEach","key","newKey","slice","getCamelCase","createElement","cn","styles","MrlSvgContainer","_extends","getUniqueId","Array","isArray","children","map","child","src","alt","loading","allClasses","setAttributes","svgDefaults","isSvgString","svgObject","parsedSvg","JSON","parse","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"MrlSvg.js","sources":["../../../../../src/components/svg/MrlSvg/MrlSvg.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport {\n\tMrlComponentProps,\n\ttype AttrsObject,\n\tisObject,\n\tgetCamelCase,\n\tgetUniqueId,\n\tsetAttributes\n} from '../../../utils';\nimport { svgDefaults, SVGSize, SVGObject } from '../constants';\nimport styles from './MrlSvg.module.scss';\n\nexport type DSIcons = typeof import('@muraldevkit/ds-icons');\nexport type DSPictograms = typeof import('@muraldevkit/ds-pictograms');\nexport type DSIconType = DSIcons[keyof DSIcons] | DSPictograms[keyof DSPictograms];\n\n// If we dont omit style from MrlComponentProps and re-add it in SvgPropTypes, we get an error.\nexport interface SvgPropTypes\n\textends Omit<MrlComponentProps, 'style'>,\n\t\tOmit<React.ComponentProps<'svg'>, 'ref'> {\n\t/** Any additional classes to style the SVG's container */\n\tclassName?: string;\n\t/**\n\t * URL path to a static SVG file. Must provide either path or svg prop.\n\t */\n\tpath?: string;\n\t/** Enable lazy loading when a path is provided. */\n\tlazyLoad?: boolean;\n\tisClone?: boolean;\n\t/** The size of an SVG Component */\n\tsize?: SVGSize;\n\t/**\n\t * A object of CSS properties. Please use style sparingly, and only in cases where your\n\t * needs can not be met by passing a class to the component.\n\t */\n\tstyle?: Record<string, unknown>;\n\t/** The SVG object to parse into an HTML SVG element. Must provide either path or svg prop. */\n\tsvg?: DSIconType;\n}\n\n/**\n * Creating and exporting component class for Mural SVG\n *\n * Supports both static SVG objects and dynamic URL loading.\n *\n * @param {SvgPropTypes} props the props for your MrlSvg\n * @returns {React.ReactElement} a rendered SVG\n */\nexport const MrlSvg = React.memo((props: SvgPropTypes): React.ReactElement => {\n\tconst {\n\t\tclassName,\n\t\tsize = 'medium',\n\t\tsvg,\n\t\tpath,\n\t\tattrs = {},\n\t\tisClone = false,\n\t\tlazyLoad,\n\t\t...remainingProps\n\t} = props;\n\n\tconst GENERIC_WARNING_MESSAGE = 'There has been an issue rendering your SVG!';\n\n\t/**\n\t * Checks to ensure a string is valid JSON before parsing\n\t *\n\t * @param {Record<string, unknown>} svgData - the SVG code\n\t * @returns {boolean} - a boolean for whether or not the string is valid JSON\n\t */\n\tconst isValidJSON = (svgData: Record<string, unknown>): boolean => {\n\t\ttry {\n\t\t\tisObject(svgData);\n\t\t} catch (err) {\n\t\t\t// This is not valid JSON\n\t\t\tconsole.warn(`${GENERIC_WARNING_MESSAGE} Invalid SVG code:`);\n\t\t\tconsole.warn(svgData);\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\t/**\n\t * Parses a JS Object of SVG code into an SVG HTML Element\n\t *\n\t * @param {SVGObject} svgObj - a JS object of SVG code\n\t * @param {AttrsObject} userAttributes - an optional set of attributes to be applied to the SVG\n\t * @param {string} classes - an optional object of classes to be applied to the SVG\n\t * @param {string} slot - an optional slot attribute for use in web components\n\t * @returns {React.ReactElement} - an SVG HTML Element\n\t */\n\tconst parseSVG = (\n\t\tsvgObj: SVGObject,\n\t\tuserAttributes = {},\n\t\tclasses?: string,\n\t\tslot?: string\n\t): React.ReactElement => {\n\t\tif (svgObj.type === 'text') {\n\t\t\treturn svgObj.value;\n\t\t}\n\n\t\tconst Tag = svgObj.name;\n\t\tconst tagAttributes = svgObj.attributes || {};\n\n\t\t/**\n\t\t * Formats SVG attributes to from kebab case to camel case for React syntax\n\t\t * Note: this excudes `data-` attributes\n\t\t *\n\t\t * @todo: Create react component for DS Icons and remove this code\n\t\t */\n\t\tObject.keys(tagAttributes).forEach((key) => {\n\t\t\tlet newKey = key;\n\t\t\tif (key === 'class') {\n\t\t\t\tnewKey = 'className';\n\t\t\t} else if (key.slice(0, 5) !== 'data-') {\n\t\t\t\tnewKey = getCamelCase(key);\n\t\t\t}\n\n\t\t\ttagAttributes[newKey] = tagAttributes[key];\n\n\t\t\tif (key !== newKey) {\n\t\t\t\tdelete tagAttributes[key];\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * We render the `svg` element explicitly here to ensure that the user applied\n\t\t * attributes and classes only get applied to the `svg` element.\n\t\t */\n\t\tif (Tag === 'svg') {\n\t\t\treturn (\n\t\t\t\t<span\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tstyles.MrlSvgContainer,\n\t\t\t\t\t\tstyles[`MrlSvgContainer--${size}`],\n\t\t\t\t\t\t'MrlSvgContainer',\n\t\t\t\t\t\tclasses\n\t\t\t\t\t)}\n\t\t\t\t\tslot={slot}\n\t\t\t\t>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t{...tagAttributes}\n\t\t\t\t\t\t{...userAttributes}\n\t\t\t\t\t\t{...remainingProps}\n\t\t\t\t\t\tclassName={cn(styles.MrlSvg, styles[`MrlSvg--${size}`], 'mrl-svg')}\n\t\t\t\t\t\tkey={getUniqueId()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{Array.isArray(svgObj.children) &&\n\t\t\t\t\t\t\tsvgObj.children.map((child: Record<string, unknown>) => parseSVG(child))}\n\t\t\t\t\t</svg>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Tag {...tagAttributes} key={getUniqueId()}>\n\t\t\t\t{Array.isArray(svgObj.children) &&\n\t\t\t\t\tsvgObj.children.map((child: Record<string, unknown>) => parseSVG(child))}\n\t\t\t</Tag>\n\t\t);\n\t};\n\n\t// We do not want to re-render the icon if it's a cloned version\n\tif (isClone) {\n\t\treturn <span></span>;\n\t}\n\n\t// Validation: must provide either path or svg\n\tif (!path && !svg) {\n\t\tconsole.warn(`${GENERIC_WARNING_MESSAGE} Must provide either \"path\" or \"svg\" prop`);\n\t\treturn <span></span>;\n\t}\n\n\t// Validation: cannot provide both path and svg\n\tif (path && svg) {\n\t\tconsole.warn(\n\t\t\t`${GENERIC_WARNING_MESSAGE} Cannot provide both \"path\" and \"svg\" props. Using \"svg\" prop.`\n\t\t);\n\t}\n\n\t// Handle path prop with img tag (only if svg is not provided)\n\tif (path && !svg) {\n\t\treturn (\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\tstyles.MrlSvgContainer,\n\t\t\t\t\tstyles[`MrlSvgContainer--${size}`],\n\t\t\t\t\t'MrlSvgContainer',\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={path}\n\t\t\t\t\talt=\"\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={cn(styles.MrlSvg, styles[`MrlSvg--${size}`], 'mrl-svg')}\n\t\t\t\t\tloading={lazyLoad ? 'lazy' : 'eager'}\n\t\t\t\t/>\n\t\t\t</span>\n\t\t);\n\t}\n\n\t// don't render if SVG value is not defined\n\tif (!svg) {\n\t\treturn <span></span>;\n\t}\n\n\tconst slot = attrs.slot;\n\tdelete attrs.slot;\n\n\tconst allClasses = cn(attrs.class, attrs.className, className);\n\tdelete attrs.class;\n\tdelete attrs.className;\n\n\tconst attributes = setAttributes(attrs, svgDefaults.attrs);\n\n\tconst isSvgString = typeof svg === 'string';\n\n\tlet svgObject: SVGObject;\n\n\tif (isSvgString) {\n\t\ttry {\n\t\t\tconst parsedSvg = JSON.parse(svg);\n\t\t\tif (!isValidJSON(parsedSvg)) {\n\t\t\t\treturn <span></span>;\n\t\t\t}\n\t\t\tsvgObject = parsedSvg;\n\t\t} catch (err) {\n\t\t\tconsole.warn(`${GENERIC_WARNING_MESSAGE} Invalid JSON in svg prop:`, err);\n\t\t\treturn <span></span>;\n\t\t}\n\t} else {\n\t\tsvgObject = svg;\n\t}\n\n\treturn parseSVG(svgObject, attributes, allClasses, slot);\n});\n\nMrlSvg.displayName = 'MrlSvg';\n"],"names":["MrlSvg","React","memo","props","className","_props$size","size","svg","path","_props$attrs","attrs","_props$isClone","isClone","lazyLoad","remainingProps","_objectWithoutProperties","_excluded","GENERIC_WARNING_MESSAGE","isValidJSON","svgData","isObject","err","console","warn","concat","parseSVG","svgObj","userAttributes","arguments","length","undefined","classes","slot","type","value","Tag","name","tagAttributes","attributes","Object","keys","forEach","key","newKey","slice","getCamelCase","createElement","cn","styles","MrlSvgContainer","_extends","getUniqueId","Array","isArray","children","map","child","src","alt","loading","allClasses","class","setAttributes","svgDefaults","isSvgString","svgObject","parsedSvg","JSON","parse","displayName"],"mappings":"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"}
@@ -18,7 +18,7 @@ var _excluded = ["cdnFile", "className", "config", "delay", "fullPath", "state",
18
18
  * @param {MrlSvgAnimateProps} props - The properties for the MrlSvgAnimate component.
19
19
  * @returns {React.ReactElement} - The rendered MrlSvgAnimate component.
20
20
  */
21
- var MrlSvgAnimate = function MrlSvgAnimate(_ref) {
21
+ var MrlSvgAnimate = _ref => {
22
22
  var cdnFile = _ref.cdnFile,
23
23
  className = _ref.className,
24
24
  config = _ref.config,
@@ -41,7 +41,7 @@ var MrlSvgAnimate = function MrlSvgAnimate(_ref) {
41
41
  * Construct Lottie options object to pass to loadAnimations method
42
42
  * @returns {AnimationConfigWithData<'svg'>} - Lottie options object
43
43
  */
44
- var getConfig = React.useCallback(function () {
44
+ var getConfig = React.useCallback(() => {
45
45
  var fullConfig = _objectSpread2(_objectSpread2(_objectSpread2({}, baseLottieConfig), config && JSON.parse(config)), {}, {
46
46
  animationData: svgData && JSON.parse(svgData),
47
47
  container: animateRef.current,
@@ -60,11 +60,11 @@ var MrlSvgAnimate = function MrlSvgAnimate(_ref) {
60
60
  /**
61
61
  * Initialize Lottie animation
62
62
  */
63
- React.useEffect(function () {
63
+ React.useEffect(() => {
64
64
  if (animateRef.current) {
65
65
  lottie.loadAnimation(getConfig());
66
66
  }
67
- return function () {
67
+ return () => {
68
68
  lottie.destroy(animationId);
69
69
  };
70
70
  }, [getConfig, animationId, svgData]);
@@ -72,23 +72,23 @@ var MrlSvgAnimate = function MrlSvgAnimate(_ref) {
72
72
  /**
73
73
  * Control animation based on operating system reduced motion preference.
74
74
  */
75
- React.useEffect(function () {
75
+ React.useEffect(() => {
76
76
  setHasReducedMotion(window.matchMedia('(prefers-reduced-motion: reduce)').matches);
77
77
  }, []);
78
78
 
79
79
  /**
80
80
  * Delay start of animation
81
81
  */
82
- React.useEffect(function () {
82
+ React.useEffect(() => {
83
83
  var timer;
84
84
  if (state === 'play' && !hasReducedMotion) {
85
- timer = setTimeout(function () {
85
+ timer = setTimeout(() => {
86
86
  lottie.play(animationId);
87
87
  }, delay);
88
88
  } else {
89
89
  lottie.stop(animationId);
90
90
  }
91
- return function () {
91
+ return () => {
92
92
  clearTimeout(timer);
93
93
  };
94
94
  }, [delay, hasReducedMotion, state, animationId, svgData]);
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSvgAnimate.js","sources":["../../../../../src/components/svg/MrlSvgAnimate/MrlSvgAnimate.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport lottie from 'lottie-web/build/player/lottie_light';\nimport { AnimatedState, baseLottieConfig } from '../constants';\nimport { AnimationConfigWithData } from 'lottie-web';\nimport { getUniqueId } from '../../../utils';\n\n/**\n * Props for MrlSvgAnimate component\n */\nexport interface MrlSvgAnimateProps {\n\t/** Any additional classes to style the SVG's container */\n\tclassName?: string;\n\t/**\n\t * JSON file contents used by Lottie to generate an animated SVG to render.\n\t * This attribute is mutually exclusive with fullPath and cdnFile.\n\t * Note: When dynamically changing the svgData, if a configuration change\n\t * is required be sure to set any new values before changing the svgData.\n\t */\n\tsvgData?: string;\n\n\t/**\n\t * Path to a JSON file used by Lottie to generate an animated SVG to render.\n\t * This attribute is mutually exclusive with svgData and cdnFile.\n\t * Note: When dynamically changing the fullPath, if a configuration change\n\t * is required be sure to set any new values before changing the fullPath.\n\t */\n\tfullPath?: string;\n\n\t/**\n\t * File name of an animation hosted on Mural's CDN used by Lottie to generate\n\t * an animated SVG to render. This is the preferred usage of this component\n\t * in terms of performance. It supports any file located at `static/animations`.\n\t * This attribute is mutually exclusive with fullPath and svgData.\n\t * Note: When dynamically changing the cdnFile, if a configuration change\n\t * is required be sure to set any new values before changing the cdnFile.\n\t */\n\tcdnFile?: string;\n\n\t/** Icon animation state. */\n\tstate?: AnimatedState;\n\n\t/** Delay (in ms) before animation begins. */\n\tdelay?: number;\n\n\t/**\n\t * Optional [Lottie configuration object](http://airbnb.io/lottie/#/web) for the\n\t * loadAnimation method\n\t */\n\tconfig?: string;\n}\n\n/**\n * MrlSvgAnimate\n *\n * This is a React functional component used for SVGs with robust After Effects animations.\n * @param {MrlSvgAnimateProps} props - The properties for the MrlSvgAnimate component.\n * @returns {React.ReactElement} - The rendered MrlSvgAnimate component.\n */\nexport const MrlSvgAnimate: React.FC<MrlSvgAnimateProps> = ({\n\tcdnFile,\n\tclassName,\n\tconfig,\n\tdelay = 0,\n\tfullPath,\n\tstate = 'stop',\n\tsvgData,\n\t...rest\n}) => {\n\tconst [hasReducedMotion, setHasReducedMotion] = React.useState<boolean>(false);\n\n\tconst animateRef = React.useRef<HTMLDivElement>(null);\n\tconst { current: animationId } = React.useRef<string>(getUniqueId('lottie-animation'));\n\n\t/**\n\t * Construct Lottie options object to pass to loadAnimations method\n\t * @returns {AnimationConfigWithData<'svg'>} - Lottie options object\n\t */\n\tconst getConfig = React.useCallback((): AnimationConfigWithData<'svg'> => {\n\t\tconst fullConfig = {\n\t\t\t...baseLottieConfig,\n\t\t\t...(config && JSON.parse(config)),\n\t\t\tanimationData: svgData && JSON.parse(svgData),\n\t\t\tcontainer: animateRef.current,\n\t\t\tname: animationId,\n\t\t\tpath:\n\t\t\t\t(fullPath && fullPath) ||\n\t\t\t\t(cdnFile && `https://static.muralcdn.com/static/animations/${cdnFile}.json`)\n\t\t};\n\n\t\t// This setting is not configurable due to security\n\t\tif (typeof fullConfig.rendererSettings === 'undefined') {\n\t\t\tfullConfig.rendererSettings = {};\n\t\t}\n\n\t\tfullConfig.rendererSettings.runExpressions = false;\n\n\t\treturn fullConfig;\n\t}, [cdnFile, config, fullPath, svgData, animationId]);\n\n\t/**\n\t * Initialize Lottie animation\n\t */\n\tReact.useEffect(() => {\n\t\tif (animateRef.current) {\n\t\t\tlottie.loadAnimation(getConfig());\n\t\t}\n\n\t\treturn () => {\n\t\t\tlottie.destroy(animationId);\n\t\t};\n\t}, [getConfig, animationId, svgData]);\n\n\t/**\n\t * Control animation based on operating system reduced motion preference.\n\t */\n\tReact.useEffect(() => {\n\t\tsetHasReducedMotion(window.matchMedia('(prefers-reduced-motion: reduce)').matches);\n\t}, []);\n\n\t/**\n\t * Delay start of animation\n\t */\n\tReact.useEffect(() => {\n\t\tlet timer: ReturnType<typeof setTimeout>;\n\n\t\tif (state === 'play' && !hasReducedMotion) {\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlottie.play(animationId);\n\t\t\t}, delay);\n\t\t} else {\n\t\t\tlottie.stop(animationId);\n\t\t}\n\n\t\treturn () => {\n\t\t\tclearTimeout(timer);\n\t\t};\n\t}, [delay, hasReducedMotion, state, animationId, svgData]);\n\n\treturn (\n\t\t<div\n\t\t\t{...rest}\n\t\t\tclassName={classnames(className, 'MrlSvgAnimate-container')}\n\t\t\tref={animateRef}\n\t\t></div>\n\t);\n};\n\nexport default MrlSvgAnimate;\n"],"names":["MrlSvgAnimate","_ref","cdnFile","className","config","_ref$delay","delay","fullPath","_ref$state","state","svgData","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","hasReducedMotion","setHasReducedMotion","animateRef","useRef","_React$useRef","getUniqueId","animationId","current","getConfig","useCallback","fullConfig","_objectSpread","baseLottieConfig","JSON","parse","animationData","container","name","path","concat","rendererSettings","runExpressions","useEffect","lottie","loadAnimation","destroy","window","matchMedia","matches","timer","setTimeout","play","stop","clearTimeout","createElement","_extends","classnames","ref"],"mappings":"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"}
1
+ {"version":3,"file":"MrlSvgAnimate.js","sources":["../../../../../src/components/svg/MrlSvgAnimate/MrlSvgAnimate.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport lottie from 'lottie-web/build/player/lottie_light';\nimport { AnimatedState, baseLottieConfig } from '../constants';\nimport { AnimationConfigWithData } from 'lottie-web';\nimport { getUniqueId } from '../../../utils';\n\n/**\n * Props for MrlSvgAnimate component\n */\nexport interface MrlSvgAnimateProps {\n\t/** Any additional classes to style the SVG's container */\n\tclassName?: string;\n\t/**\n\t * JSON file contents used by Lottie to generate an animated SVG to render.\n\t * This attribute is mutually exclusive with fullPath and cdnFile.\n\t * Note: When dynamically changing the svgData, if a configuration change\n\t * is required be sure to set any new values before changing the svgData.\n\t */\n\tsvgData?: string;\n\n\t/**\n\t * Path to a JSON file used by Lottie to generate an animated SVG to render.\n\t * This attribute is mutually exclusive with svgData and cdnFile.\n\t * Note: When dynamically changing the fullPath, if a configuration change\n\t * is required be sure to set any new values before changing the fullPath.\n\t */\n\tfullPath?: string;\n\n\t/**\n\t * File name of an animation hosted on Mural's CDN used by Lottie to generate\n\t * an animated SVG to render. This is the preferred usage of this component\n\t * in terms of performance. It supports any file located at `static/animations`.\n\t * This attribute is mutually exclusive with fullPath and svgData.\n\t * Note: When dynamically changing the cdnFile, if a configuration change\n\t * is required be sure to set any new values before changing the cdnFile.\n\t */\n\tcdnFile?: string;\n\n\t/** Icon animation state. */\n\tstate?: AnimatedState;\n\n\t/** Delay (in ms) before animation begins. */\n\tdelay?: number;\n\n\t/**\n\t * Optional [Lottie configuration object](http://airbnb.io/lottie/#/web) for the\n\t * loadAnimation method\n\t */\n\tconfig?: string;\n}\n\n/**\n * MrlSvgAnimate\n *\n * This is a React functional component used for SVGs with robust After Effects animations.\n * @param {MrlSvgAnimateProps} props - The properties for the MrlSvgAnimate component.\n * @returns {React.ReactElement} - The rendered MrlSvgAnimate component.\n */\nexport const MrlSvgAnimate: React.FC<MrlSvgAnimateProps> = ({\n\tcdnFile,\n\tclassName,\n\tconfig,\n\tdelay = 0,\n\tfullPath,\n\tstate = 'stop',\n\tsvgData,\n\t...rest\n}) => {\n\tconst [hasReducedMotion, setHasReducedMotion] = React.useState<boolean>(false);\n\n\tconst animateRef = React.useRef<HTMLDivElement>(null);\n\tconst { current: animationId } = React.useRef<string>(getUniqueId('lottie-animation'));\n\n\t/**\n\t * Construct Lottie options object to pass to loadAnimations method\n\t * @returns {AnimationConfigWithData<'svg'>} - Lottie options object\n\t */\n\tconst getConfig = React.useCallback((): AnimationConfigWithData<'svg'> => {\n\t\tconst fullConfig = {\n\t\t\t...baseLottieConfig,\n\t\t\t...(config && JSON.parse(config)),\n\t\t\tanimationData: svgData && JSON.parse(svgData),\n\t\t\tcontainer: animateRef.current,\n\t\t\tname: animationId,\n\t\t\tpath:\n\t\t\t\t(fullPath && fullPath) ||\n\t\t\t\t(cdnFile && `https://static.muralcdn.com/static/animations/${cdnFile}.json`)\n\t\t};\n\n\t\t// This setting is not configurable due to security\n\t\tif (typeof fullConfig.rendererSettings === 'undefined') {\n\t\t\tfullConfig.rendererSettings = {};\n\t\t}\n\n\t\tfullConfig.rendererSettings.runExpressions = false;\n\n\t\treturn fullConfig;\n\t}, [cdnFile, config, fullPath, svgData, animationId]);\n\n\t/**\n\t * Initialize Lottie animation\n\t */\n\tReact.useEffect(() => {\n\t\tif (animateRef.current) {\n\t\t\tlottie.loadAnimation(getConfig());\n\t\t}\n\n\t\treturn () => {\n\t\t\tlottie.destroy(animationId);\n\t\t};\n\t}, [getConfig, animationId, svgData]);\n\n\t/**\n\t * Control animation based on operating system reduced motion preference.\n\t */\n\tReact.useEffect(() => {\n\t\tsetHasReducedMotion(window.matchMedia('(prefers-reduced-motion: reduce)').matches);\n\t}, []);\n\n\t/**\n\t * Delay start of animation\n\t */\n\tReact.useEffect(() => {\n\t\tlet timer: ReturnType<typeof setTimeout>;\n\n\t\tif (state === 'play' && !hasReducedMotion) {\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlottie.play(animationId);\n\t\t\t}, delay);\n\t\t} else {\n\t\t\tlottie.stop(animationId);\n\t\t}\n\n\t\treturn () => {\n\t\t\tclearTimeout(timer);\n\t\t};\n\t}, [delay, hasReducedMotion, state, animationId, svgData]);\n\n\treturn (\n\t\t<div\n\t\t\t{...rest}\n\t\t\tclassName={classnames(className, 'MrlSvgAnimate-container')}\n\t\t\tref={animateRef}\n\t\t></div>\n\t);\n};\n\nexport default MrlSvgAnimate;\n"],"names":["MrlSvgAnimate","_ref","cdnFile","className","config","_ref$delay","delay","fullPath","_ref$state","state","svgData","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","hasReducedMotion","setHasReducedMotion","animateRef","useRef","_React$useRef","getUniqueId","animationId","current","getConfig","useCallback","fullConfig","_objectSpread","baseLottieConfig","JSON","parse","animationData","container","name","path","concat","rendererSettings","runExpressions","useEffect","lottie","loadAnimation","destroy","window","matchMedia","matches","timer","setTimeout","play","stop","clearTimeout","createElement","_extends","classnames","ref"],"mappings":"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"}