@mantine/core 9.6.2 → 9.7.0

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 (436) hide show
  1. package/cjs/components/ActionBar/ActionBar.cjs +0 -3
  2. package/cjs/components/ActionBar/ActionBar.cjs.map +1 -1
  3. package/cjs/components/ActionBar/ActionBar.module.cjs.map +1 -1
  4. package/cjs/components/AppShell/AppShell.cjs +33 -6
  5. package/cjs/components/AppShell/AppShell.cjs.map +1 -1
  6. package/cjs/components/AppShell/AppShell.context.cjs.map +1 -1
  7. package/cjs/components/AppShell/AppShell.module.cjs +2 -1
  8. package/cjs/components/AppShell/AppShell.module.cjs.map +1 -1
  9. package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs +28 -7
  10. package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs.map +1 -1
  11. package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs +28 -7
  12. package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs.map +1 -1
  13. package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs +28 -7
  14. package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs.map +1 -1
  15. package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs +3 -2
  16. package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs.map +1 -1
  17. package/cjs/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.cjs +27 -16
  18. package/cjs/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.cjs.map +1 -1
  19. package/cjs/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.cjs +24 -16
  20. package/cjs/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.cjs.map +1 -1
  21. package/cjs/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.cjs +24 -16
  22. package/cjs/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.cjs.map +1 -1
  23. package/cjs/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.cjs +30 -19
  24. package/cjs/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.cjs.map +1 -1
  25. package/cjs/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.cjs +26 -0
  26. package/cjs/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.cjs.map +1 -0
  27. package/cjs/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.cjs +10 -0
  28. package/cjs/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.cjs.map +1 -0
  29. package/cjs/components/AppShell/AppShellMediaStyles/get-variables/get-variables.cjs +13 -5
  30. package/cjs/components/AppShell/AppShellMediaStyles/get-variables/get-variables.cjs.map +1 -1
  31. package/cjs/components/AppShell/AppShellNavbar/AppShellNavbar.cjs +28 -7
  32. package/cjs/components/AppShell/AppShellNavbar/AppShellNavbar.cjs.map +1 -1
  33. package/cjs/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.cjs +270 -0
  34. package/cjs/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.cjs.map +1 -0
  35. package/cjs/components/AppShell/use-app-shell-resize/clamp-resize-size.cjs +15 -0
  36. package/cjs/components/AppShell/use-app-shell-resize/clamp-resize-size.cjs.map +1 -0
  37. package/cjs/components/AppShell/use-app-shell-resize/resize-section-config.cjs +51 -0
  38. package/cjs/components/AppShell/use-app-shell-resize/resize-section-config.cjs.map +1 -0
  39. package/cjs/components/AppShell/use-app-shell-resize/safe-area-inset.cjs +12 -0
  40. package/cjs/components/AppShell/use-app-shell-resize/safe-area-inset.cjs.map +1 -0
  41. package/cjs/components/AppShell/use-app-shell-resize/use-app-shell-resize.cjs +127 -0
  42. package/cjs/components/AppShell/use-app-shell-resize/use-app-shell-resize.cjs.map +1 -0
  43. package/cjs/components/AppShell/use-resizing/use-resizing.cjs +20 -2
  44. package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
  45. package/cjs/components/Checkbox/Checkbox.cjs +10 -2
  46. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  47. package/cjs/components/Checkbox/Checkbox.module.cjs +1 -0
  48. package/cjs/components/Checkbox/Checkbox.module.cjs.map +1 -1
  49. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs +10 -2
  50. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  51. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.cjs +1 -0
  52. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.cjs.map +1 -1
  53. package/cjs/components/ComboboxPopover/ComboboxPopover.cjs.map +1 -1
  54. package/cjs/components/Dialog/Dialog.cjs +0 -1
  55. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  56. package/cjs/components/Dialog/Dialog.module.cjs.map +1 -1
  57. package/cjs/components/HoverCard/HoverCard.cjs +34 -5
  58. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  59. package/cjs/components/HoverCard/HoverCard.context.cjs.map +1 -1
  60. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs +13 -18
  61. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  62. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs +6 -23
  63. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  64. package/cjs/components/HoverCard/use-hover-card.cjs +26 -12
  65. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  66. package/cjs/components/Input/InputWrapper/InputWrapper.cjs +1 -1
  67. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  68. package/cjs/components/Marquee/Marquee.cjs.map +1 -1
  69. package/cjs/components/Marquee/Marquee.module.cjs.map +1 -1
  70. package/cjs/components/PasswordInput/PasswordInput.cjs +10 -5
  71. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  72. package/cjs/components/PinInput/PinInput.cjs.map +1 -1
  73. package/cjs/components/Portal/Portal.cjs +10 -1
  74. package/cjs/components/Portal/Portal.cjs.map +1 -1
  75. package/cjs/components/Radio/Radio.cjs +10 -2
  76. package/cjs/components/Radio/Radio.cjs.map +1 -1
  77. package/cjs/components/Radio/Radio.module.cjs +1 -0
  78. package/cjs/components/Radio/Radio.module.cjs.map +1 -1
  79. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs +10 -2
  80. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  81. package/cjs/components/Radio/RadioIndicator/RadioIndicator.module.cjs +1 -0
  82. package/cjs/components/Radio/RadioIndicator/RadioIndicator.module.cjs.map +1 -1
  83. package/cjs/components/Rating/Rating.cjs +35 -12
  84. package/cjs/components/Rating/Rating.cjs.map +1 -1
  85. package/cjs/components/Select/Select.cjs +1 -1
  86. package/cjs/components/Select/Select.cjs.map +1 -1
  87. package/cjs/components/Slider/Thumb/Thumb.cjs +7 -2
  88. package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
  89. package/cjs/components/Table/Table.cjs +23 -10
  90. package/cjs/components/Table/Table.cjs.map +1 -1
  91. package/cjs/components/Toggle/Toggle.cjs +80 -0
  92. package/cjs/components/Toggle/Toggle.cjs.map +1 -0
  93. package/cjs/components/Toggle/Toggle.module.cjs +7 -0
  94. package/cjs/components/Toggle/Toggle.module.cjs.map +1 -0
  95. package/cjs/components/Toolbar/Toolbar.cjs +107 -0
  96. package/cjs/components/Toolbar/Toolbar.cjs.map +1 -0
  97. package/cjs/components/Toolbar/Toolbar.context.cjs +8 -0
  98. package/cjs/components/Toolbar/Toolbar.context.cjs.map +1 -0
  99. package/cjs/components/Toolbar/Toolbar.module.cjs +12 -0
  100. package/cjs/components/Toolbar/Toolbar.module.cjs.map +1 -0
  101. package/cjs/components/Toolbar/ToolbarDivider/ToolbarDivider.cjs +31 -0
  102. package/cjs/components/Toolbar/ToolbarDivider/ToolbarDivider.cjs.map +1 -0
  103. package/cjs/components/Toolbar/ToolbarGroup/ToolbarGroup.cjs +31 -0
  104. package/cjs/components/Toolbar/ToolbarGroup/ToolbarGroup.cjs.map +1 -0
  105. package/cjs/components/Toolbar/ToolbarToggle/ToolbarToggle.cjs +47 -0
  106. package/cjs/components/Toolbar/ToolbarToggle/ToolbarToggle.cjs.map +1 -0
  107. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.cjs +61 -0
  108. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.cjs.map +1 -0
  109. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.cjs +8 -0
  110. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.cjs.map +1 -0
  111. package/cjs/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.cjs +51 -0
  112. package/cjs/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.cjs.map +1 -0
  113. package/cjs/components/Toolbar/use-toolbar-navigation.cjs +76 -0
  114. package/cjs/components/Toolbar/use-toolbar-navigation.cjs.map +1 -0
  115. package/cjs/components/Tooltip/Tooltip.cjs +9 -5
  116. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  117. package/cjs/components/Tooltip/use-tooltip.cjs +6 -3
  118. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  119. package/cjs/components/Tour/Tour.cjs +283 -0
  120. package/cjs/components/Tour/Tour.cjs.map +1 -0
  121. package/cjs/components/Tour/Tour.context.cjs +25 -0
  122. package/cjs/components/Tour/Tour.context.cjs.map +1 -0
  123. package/cjs/components/Tour/Tour.module.cjs +19 -0
  124. package/cjs/components/Tour/Tour.module.cjs.map +1 -0
  125. package/cjs/components/Tour/TourBeacon/TourBeacon.cjs +54 -0
  126. package/cjs/components/Tour/TourBeacon/TourBeacon.cjs.map +1 -0
  127. package/cjs/components/Tour/TourBeaconPositioned.cjs +46 -0
  128. package/cjs/components/Tour/TourBeaconPositioned.cjs.map +1 -0
  129. package/cjs/components/Tour/TourBody/TourBody.cjs +37 -0
  130. package/cjs/components/Tour/TourBody/TourBody.cjs.map +1 -0
  131. package/cjs/components/Tour/TourCloseButton/TourCloseButton.cjs +26 -0
  132. package/cjs/components/Tour/TourCloseButton/TourCloseButton.cjs.map +1 -0
  133. package/cjs/components/Tour/TourNavigation/TourNavigation.cjs +63 -0
  134. package/cjs/components/Tour/TourNavigation/TourNavigation.cjs.map +1 -0
  135. package/cjs/components/Tour/TourOverlay/TourOverlay.cjs +70 -0
  136. package/cjs/components/Tour/TourOverlay/TourOverlay.cjs.map +1 -0
  137. package/cjs/components/Tour/TourRoot/TourRoot.cjs +125 -0
  138. package/cjs/components/Tour/TourRoot/TourRoot.cjs.map +1 -0
  139. package/cjs/components/Tour/TourStep/TourStep.cjs +10 -0
  140. package/cjs/components/Tour/TourStep/TourStep.cjs.map +1 -0
  141. package/cjs/components/Tour/TourTitle/TourTitle.cjs +38 -0
  142. package/cjs/components/Tour/TourTitle/TourTitle.cjs.map +1 -0
  143. package/cjs/components/Tour/TourTooltip/TourTooltip.cjs +87 -0
  144. package/cjs/components/Tour/TourTooltip/TourTooltip.cjs.map +1 -0
  145. package/cjs/components/Tour/get-overlay-hit-path.cjs +17 -0
  146. package/cjs/components/Tour/get-overlay-hit-path.cjs.map +1 -0
  147. package/cjs/components/Tour/is-element-in-view.cjs +30 -0
  148. package/cjs/components/Tour/is-element-in-view.cjs.map +1 -0
  149. package/cjs/components/Tour/press-aware-auto-update.cjs +38 -0
  150. package/cjs/components/Tour/press-aware-auto-update.cjs.map +1 -0
  151. package/cjs/components/Tour/use-target-rect.cjs +61 -0
  152. package/cjs/components/Tour/use-target-rect.cjs.map +1 -0
  153. package/cjs/components/Tour/use-tooltip-auto-focus.cjs +34 -0
  154. package/cjs/components/Tour/use-tooltip-auto-focus.cjs.map +1 -0
  155. package/cjs/components/Tour/use-tour-state.cjs +102 -0
  156. package/cjs/components/Tour/use-tour-state.cjs.map +1 -0
  157. package/cjs/components/Tour/use-tour.cjs +155 -0
  158. package/cjs/components/Tour/use-tour.cjs.map +1 -0
  159. package/cjs/components/TreeSelect/TreeSelect.cjs +29 -16
  160. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
  161. package/cjs/core/Box/Box.cjs +1 -1
  162. package/cjs/core/Box/Box.cjs.map +1 -1
  163. package/cjs/core/Box/style-props/style-props-data.cjs +2 -2
  164. package/cjs/core/Box/style-props/style-props-data.cjs.map +1 -1
  165. package/cjs/core/styles-api/use-styles/use-styles.cjs +32 -2
  166. package/cjs/core/styles-api/use-styles/use-styles.cjs.map +1 -1
  167. package/cjs/core/utils/shallow-equal/shallow-equal.cjs +19 -0
  168. package/cjs/core/utils/shallow-equal/shallow-equal.cjs.map +1 -0
  169. package/cjs/index.cjs +42 -2
  170. package/esm/components/ActionBar/ActionBar.mjs +0 -3
  171. package/esm/components/ActionBar/ActionBar.mjs.map +1 -1
  172. package/esm/components/ActionBar/ActionBar.module.mjs.map +1 -1
  173. package/esm/components/AppShell/AppShell.context.mjs.map +1 -1
  174. package/esm/components/AppShell/AppShell.mjs +35 -8
  175. package/esm/components/AppShell/AppShell.mjs.map +1 -1
  176. package/esm/components/AppShell/AppShell.module.mjs +2 -1
  177. package/esm/components/AppShell/AppShell.module.mjs.map +1 -1
  178. package/esm/components/AppShell/AppShellAside/AppShellAside.mjs +29 -8
  179. package/esm/components/AppShell/AppShellAside/AppShellAside.mjs.map +1 -1
  180. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs +29 -8
  181. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs.map +1 -1
  182. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs +29 -8
  183. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs.map +1 -1
  184. package/esm/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.mjs +3 -2
  185. package/esm/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.mjs.map +1 -1
  186. package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs +27 -16
  187. package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs.map +1 -1
  188. package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs +24 -16
  189. package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs.map +1 -1
  190. package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs +24 -16
  191. package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs.map +1 -1
  192. package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs +30 -19
  193. package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs.map +1 -1
  194. package/esm/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.mjs +26 -0
  195. package/esm/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.mjs.map +1 -0
  196. package/esm/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.mjs +10 -0
  197. package/esm/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.mjs.map +1 -0
  198. package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs +13 -5
  199. package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs.map +1 -1
  200. package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs +29 -8
  201. package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs.map +1 -1
  202. package/esm/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.mjs +270 -0
  203. package/esm/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.mjs.map +1 -0
  204. package/esm/components/AppShell/use-app-shell-resize/clamp-resize-size.mjs +14 -0
  205. package/esm/components/AppShell/use-app-shell-resize/clamp-resize-size.mjs.map +1 -0
  206. package/esm/components/AppShell/use-app-shell-resize/resize-section-config.mjs +49 -0
  207. package/esm/components/AppShell/use-app-shell-resize/resize-section-config.mjs.map +1 -0
  208. package/esm/components/AppShell/use-app-shell-resize/safe-area-inset.mjs +12 -0
  209. package/esm/components/AppShell/use-app-shell-resize/safe-area-inset.mjs.map +1 -0
  210. package/esm/components/AppShell/use-app-shell-resize/use-app-shell-resize.mjs +127 -0
  211. package/esm/components/AppShell/use-app-shell-resize/use-app-shell-resize.mjs.map +1 -0
  212. package/esm/components/AppShell/use-resizing/use-resizing.mjs +21 -3
  213. package/esm/components/AppShell/use-resizing/use-resizing.mjs.map +1 -1
  214. package/esm/components/Checkbox/Checkbox.mjs +10 -2
  215. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  216. package/esm/components/Checkbox/Checkbox.module.mjs +1 -0
  217. package/esm/components/Checkbox/Checkbox.module.mjs.map +1 -1
  218. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs +10 -2
  219. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
  220. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.mjs +1 -0
  221. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.mjs.map +1 -1
  222. package/esm/components/ComboboxPopover/ComboboxPopover.mjs.map +1 -1
  223. package/esm/components/Dialog/Dialog.mjs +0 -1
  224. package/esm/components/Dialog/Dialog.mjs.map +1 -1
  225. package/esm/components/Dialog/Dialog.module.mjs.map +1 -1
  226. package/esm/components/HoverCard/HoverCard.context.mjs.map +1 -1
  227. package/esm/components/HoverCard/HoverCard.mjs +34 -5
  228. package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
  229. package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs +13 -18
  230. package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs.map +1 -1
  231. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs +7 -24
  232. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs.map +1 -1
  233. package/esm/components/HoverCard/use-hover-card.mjs +27 -13
  234. package/esm/components/HoverCard/use-hover-card.mjs.map +1 -1
  235. package/esm/components/Input/InputWrapper/InputWrapper.mjs +1 -1
  236. package/esm/components/Input/InputWrapper/InputWrapper.mjs.map +1 -1
  237. package/esm/components/Marquee/Marquee.mjs.map +1 -1
  238. package/esm/components/Marquee/Marquee.module.mjs.map +1 -1
  239. package/esm/components/PasswordInput/PasswordInput.mjs +12 -7
  240. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  241. package/esm/components/PinInput/PinInput.mjs.map +1 -1
  242. package/esm/components/Portal/Portal.mjs +10 -1
  243. package/esm/components/Portal/Portal.mjs.map +1 -1
  244. package/esm/components/Radio/Radio.mjs +10 -2
  245. package/esm/components/Radio/Radio.mjs.map +1 -1
  246. package/esm/components/Radio/Radio.module.mjs +1 -0
  247. package/esm/components/Radio/Radio.module.mjs.map +1 -1
  248. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs +10 -2
  249. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
  250. package/esm/components/Radio/RadioIndicator/RadioIndicator.module.mjs +1 -0
  251. package/esm/components/Radio/RadioIndicator/RadioIndicator.module.mjs.map +1 -1
  252. package/esm/components/Rating/Rating.mjs +35 -12
  253. package/esm/components/Rating/Rating.mjs.map +1 -1
  254. package/esm/components/Select/Select.mjs +1 -1
  255. package/esm/components/Select/Select.mjs.map +1 -1
  256. package/esm/components/Slider/Thumb/Thumb.mjs +7 -2
  257. package/esm/components/Slider/Thumb/Thumb.mjs.map +1 -1
  258. package/esm/components/Table/Table.mjs +23 -10
  259. package/esm/components/Table/Table.mjs.map +1 -1
  260. package/esm/components/Toggle/Toggle.mjs +80 -0
  261. package/esm/components/Toggle/Toggle.mjs.map +1 -0
  262. package/esm/components/Toggle/Toggle.module.mjs +7 -0
  263. package/esm/components/Toggle/Toggle.module.mjs.map +1 -0
  264. package/esm/components/Toolbar/Toolbar.context.mjs +8 -0
  265. package/esm/components/Toolbar/Toolbar.context.mjs.map +1 -0
  266. package/esm/components/Toolbar/Toolbar.mjs +107 -0
  267. package/esm/components/Toolbar/Toolbar.mjs.map +1 -0
  268. package/esm/components/Toolbar/Toolbar.module.mjs +12 -0
  269. package/esm/components/Toolbar/Toolbar.module.mjs.map +1 -0
  270. package/esm/components/Toolbar/ToolbarDivider/ToolbarDivider.mjs +31 -0
  271. package/esm/components/Toolbar/ToolbarDivider/ToolbarDivider.mjs.map +1 -0
  272. package/esm/components/Toolbar/ToolbarGroup/ToolbarGroup.mjs +31 -0
  273. package/esm/components/Toolbar/ToolbarGroup/ToolbarGroup.mjs.map +1 -0
  274. package/esm/components/Toolbar/ToolbarToggle/ToolbarToggle.mjs +47 -0
  275. package/esm/components/Toolbar/ToolbarToggle/ToolbarToggle.mjs.map +1 -0
  276. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.mjs +8 -0
  277. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.mjs.map +1 -0
  278. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.mjs +61 -0
  279. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.mjs.map +1 -0
  280. package/esm/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.mjs +51 -0
  281. package/esm/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.mjs.map +1 -0
  282. package/esm/components/Toolbar/use-toolbar-navigation.mjs +76 -0
  283. package/esm/components/Toolbar/use-toolbar-navigation.mjs.map +1 -0
  284. package/esm/components/Tooltip/Tooltip.mjs +9 -5
  285. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  286. package/esm/components/Tooltip/use-tooltip.mjs +7 -4
  287. package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
  288. package/esm/components/Tour/Tour.context.mjs +22 -0
  289. package/esm/components/Tour/Tour.context.mjs.map +1 -0
  290. package/esm/components/Tour/Tour.mjs +283 -0
  291. package/esm/components/Tour/Tour.mjs.map +1 -0
  292. package/esm/components/Tour/Tour.module.mjs +19 -0
  293. package/esm/components/Tour/Tour.module.mjs.map +1 -0
  294. package/esm/components/Tour/TourBeacon/TourBeacon.mjs +54 -0
  295. package/esm/components/Tour/TourBeacon/TourBeacon.mjs.map +1 -0
  296. package/esm/components/Tour/TourBeaconPositioned.mjs +46 -0
  297. package/esm/components/Tour/TourBeaconPositioned.mjs.map +1 -0
  298. package/esm/components/Tour/TourBody/TourBody.mjs +37 -0
  299. package/esm/components/Tour/TourBody/TourBody.mjs.map +1 -0
  300. package/esm/components/Tour/TourCloseButton/TourCloseButton.mjs +26 -0
  301. package/esm/components/Tour/TourCloseButton/TourCloseButton.mjs.map +1 -0
  302. package/esm/components/Tour/TourNavigation/TourNavigation.mjs +63 -0
  303. package/esm/components/Tour/TourNavigation/TourNavigation.mjs.map +1 -0
  304. package/esm/components/Tour/TourOverlay/TourOverlay.mjs +70 -0
  305. package/esm/components/Tour/TourOverlay/TourOverlay.mjs.map +1 -0
  306. package/esm/components/Tour/TourRoot/TourRoot.mjs +125 -0
  307. package/esm/components/Tour/TourRoot/TourRoot.mjs.map +1 -0
  308. package/esm/components/Tour/TourStep/TourStep.mjs +10 -0
  309. package/esm/components/Tour/TourStep/TourStep.mjs.map +1 -0
  310. package/esm/components/Tour/TourTitle/TourTitle.mjs +38 -0
  311. package/esm/components/Tour/TourTitle/TourTitle.mjs.map +1 -0
  312. package/esm/components/Tour/TourTooltip/TourTooltip.mjs +87 -0
  313. package/esm/components/Tour/TourTooltip/TourTooltip.mjs.map +1 -0
  314. package/esm/components/Tour/get-overlay-hit-path.mjs +17 -0
  315. package/esm/components/Tour/get-overlay-hit-path.mjs.map +1 -0
  316. package/esm/components/Tour/is-element-in-view.mjs +30 -0
  317. package/esm/components/Tour/is-element-in-view.mjs.map +1 -0
  318. package/esm/components/Tour/press-aware-auto-update.mjs +38 -0
  319. package/esm/components/Tour/press-aware-auto-update.mjs.map +1 -0
  320. package/esm/components/Tour/use-target-rect.mjs +59 -0
  321. package/esm/components/Tour/use-target-rect.mjs.map +1 -0
  322. package/esm/components/Tour/use-tooltip-auto-focus.mjs +34 -0
  323. package/esm/components/Tour/use-tooltip-auto-focus.mjs.map +1 -0
  324. package/esm/components/Tour/use-tour-state.mjs +102 -0
  325. package/esm/components/Tour/use-tour-state.mjs.map +1 -0
  326. package/esm/components/Tour/use-tour.mjs +155 -0
  327. package/esm/components/Tour/use-tour.mjs.map +1 -0
  328. package/esm/components/TreeSelect/TreeSelect.mjs +30 -17
  329. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -1
  330. package/esm/core/Box/Box.mjs +2 -2
  331. package/esm/core/Box/Box.mjs.map +1 -1
  332. package/esm/core/Box/style-props/style-props-data.mjs +2 -2
  333. package/esm/core/Box/style-props/style-props-data.mjs.map +1 -1
  334. package/esm/core/styles-api/use-styles/use-styles.mjs +32 -2
  335. package/esm/core/styles-api/use-styles/use-styles.mjs.map +1 -1
  336. package/esm/core/utils/shallow-equal/shallow-equal.mjs +19 -0
  337. package/esm/core/utils/shallow-equal/shallow-equal.mjs.map +1 -0
  338. package/esm/index.mjs +22 -3
  339. package/lib/components/ActionBar/ActionBar.d.ts +1 -1
  340. package/lib/components/AppShell/AppShell.context.d.ts +4 -0
  341. package/lib/components/AppShell/AppShell.d.ts +5 -3
  342. package/lib/components/AppShell/AppShell.types.d.ts +70 -0
  343. package/lib/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.d.ts +6 -1
  344. package/lib/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.d.ts +3 -1
  345. package/lib/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.d.ts +3 -1
  346. package/lib/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.d.ts +3 -1
  347. package/lib/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.d.ts +3 -1
  348. package/lib/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.d.ts +2 -0
  349. package/lib/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.d.ts +1 -0
  350. package/lib/components/AppShell/AppShellMediaStyles/get-variables/get-variables.d.ts +6 -1
  351. package/lib/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.d.ts +10 -0
  352. package/lib/components/AppShell/index.d.ts +3 -2
  353. package/lib/components/AppShell/use-app-shell-resize/clamp-resize-size.d.ts +9 -0
  354. package/lib/components/AppShell/use-app-shell-resize/resize-section-config.d.ts +29 -0
  355. package/lib/components/AppShell/use-app-shell-resize/safe-area-inset.d.ts +1 -0
  356. package/lib/components/AppShell/use-app-shell-resize/use-app-shell-resize.d.ts +2 -0
  357. package/lib/components/AppShell/use-resizing/use-resizing.d.ts +2 -1
  358. package/lib/components/Checkbox/Checkbox.d.ts +2 -2
  359. package/lib/components/Checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +2 -2
  360. package/lib/components/Combobox/Combobox.types.d.ts +1 -1
  361. package/lib/components/ComboboxPopover/ComboboxPopover.d.ts +1 -1
  362. package/lib/components/HoverCard/HoverCard.context.d.ts +8 -4
  363. package/lib/components/HoverCard/HoverCard.d.ts +41 -0
  364. package/lib/components/HoverCard/index.d.ts +1 -1
  365. package/lib/components/HoverCard/use-hover-card.d.ts +11 -0
  366. package/lib/components/Marquee/Marquee.d.ts +1 -1
  367. package/lib/components/PinInput/PinInput.d.ts +1 -1
  368. package/lib/components/Radio/Radio.d.ts +2 -2
  369. package/lib/components/Radio/RadioIndicator/RadioIndicator.d.ts +2 -2
  370. package/lib/components/Slider/Thumb/Thumb.d.ts +1 -1
  371. package/lib/components/Toggle/Toggle.d.ts +73 -0
  372. package/lib/components/Toggle/index.d.ts +7 -0
  373. package/lib/components/Toolbar/Toolbar.context.d.ts +7 -0
  374. package/lib/components/Toolbar/Toolbar.d.ts +58 -0
  375. package/lib/components/Toolbar/ToolbarDivider/ToolbarDivider.d.ts +16 -0
  376. package/lib/components/Toolbar/ToolbarGroup/ToolbarGroup.d.ts +16 -0
  377. package/lib/components/Toolbar/ToolbarToggle/ToolbarToggle.d.ts +44 -0
  378. package/lib/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.d.ts +7 -0
  379. package/lib/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.d.ts +42 -0
  380. package/lib/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.d.ts +22 -0
  381. package/lib/components/Toolbar/index.d.ts +32 -0
  382. package/lib/components/Toolbar/use-toolbar-navigation.d.ts +11 -0
  383. package/lib/components/Tooltip/Tooltip.d.ts +3 -1
  384. package/lib/components/Tooltip/use-tooltip.d.ts +2 -0
  385. package/lib/components/Tour/Tour.context.d.ts +66 -0
  386. package/lib/components/Tour/Tour.d.ts +144 -0
  387. package/lib/components/Tour/TourBeacon/TourBeacon.d.ts +23 -0
  388. package/lib/components/Tour/TourBeaconPositioned.d.ts +13 -0
  389. package/lib/components/Tour/TourBody/TourBody.d.ts +19 -0
  390. package/lib/components/Tour/TourCloseButton/TourCloseButton.d.ts +12 -0
  391. package/lib/components/Tour/TourNavigation/TourNavigation.d.ts +11 -0
  392. package/lib/components/Tour/TourOverlay/TourOverlay.d.ts +22 -0
  393. package/lib/components/Tour/TourRoot/TourRoot.d.ts +72 -0
  394. package/lib/components/Tour/TourStep/TourStep.d.ts +30 -0
  395. package/lib/components/Tour/TourTitle/TourTitle.d.ts +19 -0
  396. package/lib/components/Tour/TourTooltip/TourTooltip.d.ts +29 -0
  397. package/lib/components/Tour/get-overlay-hit-path.d.ts +2 -0
  398. package/lib/components/Tour/index.d.ts +23 -0
  399. package/lib/components/Tour/is-element-in-view.d.ts +1 -0
  400. package/lib/components/Tour/press-aware-auto-update.d.ts +2 -0
  401. package/lib/components/Tour/use-target-rect.d.ts +13 -0
  402. package/lib/components/Tour/use-tooltip-auto-focus.d.ts +7 -0
  403. package/lib/components/Tour/use-tour-state.d.ts +23 -0
  404. package/lib/components/Tour/use-tour.d.ts +40 -0
  405. package/lib/components/TreeSelect/TreeSelect.d.ts +14 -0
  406. package/lib/components/TreeSelect/index.d.ts +2 -2
  407. package/lib/components/index.d.ts +3 -0
  408. package/lib/core/Box/style-props/index.d.ts +1 -1
  409. package/lib/core/Box/style-props/style-props-data.d.ts +1 -1
  410. package/lib/core/styles-api/use-styles/use-styles.d.ts +2 -1
  411. package/lib/core/utils/shallow-equal/shallow-equal.d.ts +1 -0
  412. package/package.json +5 -5
  413. package/styles/ActionBar.css +1 -0
  414. package/styles/ActionBar.layer.css +1 -0
  415. package/styles/AppShell.css +68 -0
  416. package/styles/AppShell.layer.css +68 -0
  417. package/styles/Checkbox.css +20 -0
  418. package/styles/Checkbox.layer.css +20 -0
  419. package/styles/CheckboxIndicator.css +16 -0
  420. package/styles/CheckboxIndicator.layer.css +16 -0
  421. package/styles/Dialog.css +1 -0
  422. package/styles/Dialog.layer.css +1 -0
  423. package/styles/Marquee.css +1 -1
  424. package/styles/Marquee.layer.css +1 -1
  425. package/styles/Radio.css +10 -0
  426. package/styles/Radio.layer.css +10 -0
  427. package/styles/RadioIndicator.css +11 -0
  428. package/styles/RadioIndicator.layer.css +11 -0
  429. package/styles/Toggle.css +98 -0
  430. package/styles/Toggle.layer.css +99 -0
  431. package/styles/Toolbar.css +220 -0
  432. package/styles/Toolbar.layer.css +221 -0
  433. package/styles/Tour.css +127 -0
  434. package/styles/Tour.layer.css +128 -0
  435. package/styles.css +576 -1
  436. package/styles.layer.css +576 -1
@@ -0,0 +1,76 @@
1
+ "use client";
2
+ let react = require("react");
3
+ //#region packages/@mantine/core/src/components/Toolbar/use-toolbar-navigation.ts
4
+ function useToolbarNavigation({ orientation, loop, dir }) {
5
+ const toolbarRef = (0, react.useRef)(null);
6
+ const activeItemRef = (0, react.useRef)(null);
7
+ const getFocusableItems = (0, react.useCallback)(() => {
8
+ if (!toolbarRef.current) return [];
9
+ return Array.from(toolbarRef.current.querySelectorAll("[data-toolbar-toggle]:not([data-disabled])"));
10
+ }, []);
11
+ const syncTabIndex = (0, react.useCallback)(() => {
12
+ const items = getFocusableItems();
13
+ const tabStop = activeItemRef.current && items.includes(activeItemRef.current) ? activeItemRef.current : items[0];
14
+ items.forEach((item) => {
15
+ item.setAttribute("tabindex", item === tabStop ? "0" : "-1");
16
+ });
17
+ }, [getFocusableItems]);
18
+ (0, react.useEffect)(() => {
19
+ syncTabIndex();
20
+ const node = toolbarRef.current;
21
+ if (!node) return;
22
+ const observer = new MutationObserver(syncTabIndex);
23
+ observer.observe(node, {
24
+ childList: true,
25
+ subtree: true,
26
+ attributeFilter: ["data-disabled"]
27
+ });
28
+ return () => observer.disconnect();
29
+ }, [syncTabIndex]);
30
+ return {
31
+ toolbarRef,
32
+ handleKeyDown: (0, react.useCallback)((event) => {
33
+ const items = getFocusableItems();
34
+ if (items.length === 0) return;
35
+ const currentIndex = items.findIndex((item) => item === document.activeElement);
36
+ if (currentIndex === -1) return;
37
+ let nextIndex = null;
38
+ const forwardKey = dir === "rtl" ? "ArrowLeft" : "ArrowRight";
39
+ const backwardKey = dir === "rtl" ? "ArrowRight" : "ArrowLeft";
40
+ const isForward = orientation === "horizontal" && event.key === forwardKey || orientation === "vertical" && event.key === "ArrowDown";
41
+ const isBackward = orientation === "horizontal" && event.key === backwardKey || orientation === "vertical" && event.key === "ArrowUp";
42
+ if (isForward) {
43
+ event.preventDefault();
44
+ if (currentIndex < items.length - 1) nextIndex = currentIndex + 1;
45
+ else if (loop) nextIndex = 0;
46
+ } else if (isBackward) {
47
+ event.preventDefault();
48
+ if (currentIndex > 0) nextIndex = currentIndex - 1;
49
+ else if (loop) nextIndex = items.length - 1;
50
+ } else if (event.key === "Home") {
51
+ event.preventDefault();
52
+ nextIndex = 0;
53
+ } else if (event.key === "End") {
54
+ event.preventDefault();
55
+ nextIndex = items.length - 1;
56
+ }
57
+ if (nextIndex !== null) items[nextIndex].focus();
58
+ }, [
59
+ orientation,
60
+ loop,
61
+ dir,
62
+ getFocusableItems
63
+ ]),
64
+ handleItemFocus: (0, react.useCallback)((event) => {
65
+ const target = event.target;
66
+ if (getFocusableItems().includes(target)) {
67
+ activeItemRef.current = target;
68
+ syncTabIndex();
69
+ }
70
+ }, [getFocusableItems, syncTabIndex])
71
+ };
72
+ }
73
+ //#endregion
74
+ exports.useToolbarNavigation = useToolbarNavigation;
75
+
76
+ //# sourceMappingURL=use-toolbar-navigation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-toolbar-navigation.cjs","names":["useRef","useCallback"],"sources":["../../../src/components/Toolbar/use-toolbar-navigation.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\ninterface UseToolbarNavigationOptions {\n orientation: 'horizontal' | 'vertical';\n loop: boolean;\n dir: 'ltr' | 'rtl';\n}\n\nexport function useToolbarNavigation({ orientation, loop, dir }: UseToolbarNavigationOptions) {\n const toolbarRef = useRef<HTMLDivElement>(null);\n const activeItemRef = useRef<HTMLElement | null>(null);\n\n const getFocusableItems = useCallback((): HTMLElement[] => {\n if (!toolbarRef.current) {\n return [];\n }\n return Array.from(\n toolbarRef.current.querySelectorAll<HTMLElement>('[data-toolbar-toggle]:not([data-disabled])')\n );\n }, []);\n\n const syncTabIndex = useCallback(() => {\n const items = getFocusableItems();\n const tabStop =\n activeItemRef.current && items.includes(activeItemRef.current)\n ? activeItemRef.current\n : items[0];\n\n items.forEach((item) => {\n item.setAttribute('tabindex', item === tabStop ? '0' : '-1');\n });\n }, [getFocusableItems]);\n\n useEffect(() => {\n syncTabIndex();\n\n const node = toolbarRef.current;\n if (!node) {\n return undefined;\n }\n\n const observer = new MutationObserver(syncTabIndex);\n observer.observe(node, { childList: true, subtree: true, attributeFilter: ['data-disabled'] });\n\n return () => observer.disconnect();\n }, [syncTabIndex]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const items = getFocusableItems();\n if (items.length === 0) {\n return;\n }\n\n const currentIndex = items.findIndex((item) => item === document.activeElement);\n if (currentIndex === -1) {\n return;\n }\n\n let nextIndex: number | null = null;\n\n const forwardKey = dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const backwardKey = dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n\n const isForward =\n (orientation === 'horizontal' && event.key === forwardKey) ||\n (orientation === 'vertical' && event.key === 'ArrowDown');\n\n const isBackward =\n (orientation === 'horizontal' && event.key === backwardKey) ||\n (orientation === 'vertical' && event.key === 'ArrowUp');\n\n if (isForward) {\n event.preventDefault();\n if (currentIndex < items.length - 1) {\n nextIndex = currentIndex + 1;\n } else if (loop) {\n nextIndex = 0;\n }\n } else if (isBackward) {\n event.preventDefault();\n if (currentIndex > 0) {\n nextIndex = currentIndex - 1;\n } else if (loop) {\n nextIndex = items.length - 1;\n }\n } else if (event.key === 'Home') {\n event.preventDefault();\n nextIndex = 0;\n } else if (event.key === 'End') {\n event.preventDefault();\n nextIndex = items.length - 1;\n }\n\n if (nextIndex !== null) {\n items[nextIndex].focus();\n }\n },\n [orientation, loop, dir, getFocusableItems]\n );\n\n const handleItemFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n if (getFocusableItems().includes(target)) {\n activeItemRef.current = target;\n syncTabIndex();\n }\n },\n [getFocusableItems, syncTabIndex]\n );\n\n return { toolbarRef, handleKeyDown, handleItemFocus };\n}\n"],"mappings":";;;AAQA,SAAgB,qBAAqB,EAAE,aAAa,MAAM,OAAoC;CAC5F,MAAM,cAAA,GAAaA,MAAAA,OAAAA,CAAuB,IAAI;CAC9C,MAAM,iBAAA,GAAgBA,MAAAA,OAAAA,CAA2B,IAAI;CAErD,MAAM,qBAAA,GAAoBC,MAAAA,YAAAA,OAAiC;EACzD,IAAI,CAAC,WAAW,SACd,OAAO,CAAC;EAEV,OAAO,MAAM,KACX,WAAW,QAAQ,iBAA8B,4CAA4C,CAC/F;CACF,GAAG,CAAC,CAAC;CAEL,MAAM,gBAAA,GAAeA,MAAAA,YAAAA,OAAkB;EACrC,MAAM,QAAQ,kBAAkB;EAChC,MAAM,UACJ,cAAc,WAAW,MAAM,SAAS,cAAc,OAAO,IACzD,cAAc,UACd,MAAM;EAEZ,MAAM,SAAS,SAAS;GACtB,KAAK,aAAa,YAAY,SAAS,UAAU,MAAM,IAAI;EAC7D,CAAC;CACH,GAAG,CAAC,iBAAiB,CAAC;CAEtB,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,aAAa;EAEb,MAAM,OAAO,WAAW;EACxB,IAAI,CAAC,MACH;EAGF,MAAM,WAAW,IAAI,iBAAiB,YAAY;EAClD,SAAS,QAAQ,MAAM;GAAE,WAAW;GAAM,SAAS;GAAM,iBAAiB,CAAC,eAAe;EAAE,CAAC;EAE7F,aAAa,SAAS,WAAW;CACnC,GAAG,CAAC,YAAY,CAAC;CAmEjB,OAAO;EAAE;EAAY,gBAAA,GAjECA,MAAAA,YAAAA,EACnB,UAA+C;GAC9C,MAAM,QAAQ,kBAAkB;GAChC,IAAI,MAAM,WAAW,GACnB;GAGF,MAAM,eAAe,MAAM,WAAW,SAAS,SAAS,SAAS,aAAa;GAC9E,IAAI,iBAAiB,IACnB;GAGF,IAAI,YAA2B;GAE/B,MAAM,aAAa,QAAQ,QAAQ,cAAc;GACjD,MAAM,cAAc,QAAQ,QAAQ,eAAe;GAEnD,MAAM,YACH,gBAAgB,gBAAgB,MAAM,QAAQ,cAC9C,gBAAgB,cAAc,MAAM,QAAQ;GAE/C,MAAM,aACH,gBAAgB,gBAAgB,MAAM,QAAQ,eAC9C,gBAAgB,cAAc,MAAM,QAAQ;GAE/C,IAAI,WAAW;IACb,MAAM,eAAe;IACrB,IAAI,eAAe,MAAM,SAAS,GAChC,YAAY,eAAe;SACtB,IAAI,MACT,YAAY;GAEhB,OAAO,IAAI,YAAY;IACrB,MAAM,eAAe;IACrB,IAAI,eAAe,GACjB,YAAY,eAAe;SACtB,IAAI,MACT,YAAY,MAAM,SAAS;GAE/B,OAAO,IAAI,MAAM,QAAQ,QAAQ;IAC/B,MAAM,eAAe;IACrB,YAAY;GACd,OAAO,IAAI,MAAM,QAAQ,OAAO;IAC9B,MAAM,eAAe;IACrB,YAAY,MAAM,SAAS;GAC7B;GAEA,IAAI,cAAc,MAChB,MAAM,UAAU,CAAC,MAAM;EAE3B,GACA;GAAC;GAAa;GAAM;GAAK;EAAiB,CAcX;EAAG,kBAAA,GAXZA,MAAAA,YAAAA,EACrB,UAA4C;GAC3C,MAAM,SAAS,MAAM;GACrB,IAAI,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG;IACxC,cAAc,UAAU;IACxB,aAAa;GACf;EACF,GACA,CAAC,mBAAmB,YAAY,CAGgB;CAAE;AACtD"}
@@ -49,7 +49,8 @@ const defaultProps = {
49
49
  flip: true,
50
50
  shift: true,
51
51
  inline: false
52
- }
52
+ },
53
+ hideDetached: true
53
54
  };
54
55
  const varsResolver = require_create_vars_resolver.createVarsResolver((theme, { radius, color, variant, autoContrast }) => {
55
56
  const colors = theme.variantColorResolver({
@@ -66,7 +67,7 @@ const varsResolver = require_create_vars_resolver.createVarsResolver((theme, { r
66
67
  });
67
68
  const Tooltip = require_factory.factory((_props) => {
68
69
  const props = require_use_props.useProps("Tooltip", defaultProps, _props);
69
- const { children, position, refProp, label, openDelay, closeDelay, onPositionChange, opened, defaultOpened, withinPortal, radius, color, classNames, styles, unstyled, style, className, withArrow, arrowSize, arrowOffset, arrowRadius, arrowPosition, offset, transitionProps, multiline, events, interactive, zIndex, disabled, onClick, onMouseEnter, onMouseLeave, inline, variant, keepMounted, vars, portalProps, mod, floatingStrategy, middlewares, autoContrast, attributes, target, ref, ...others } = props;
70
+ const { children, position, refProp, label, openDelay, closeDelay, onPositionChange, opened, defaultOpened, withinPortal, radius, color, classNames, styles, unstyled, style, className, withArrow, arrowSize, arrowOffset, arrowRadius, arrowPosition, offset, transitionProps, multiline, events, interactive, zIndex, disabled, onClick, onMouseEnter, onMouseLeave, inline, variant, keepMounted, vars, portalProps, mod, floatingStrategy, middlewares, autoContrast, attributes, target, hideDetached, ref, ...others } = props;
70
71
  const { dir } = require_DirectionProvider.useDirection();
71
72
  const arrowRef = (0, react.useRef)(null);
72
73
  const tooltip = require_use_tooltip.useTooltip({
@@ -83,7 +84,8 @@ const Tooltip = require_factory.factory((_props) => {
83
84
  offset: typeof offset === "number" ? offset + (withArrow ? arrowSize / 2 : 0) : offset,
84
85
  inline,
85
86
  strategy: floatingStrategy,
86
- middlewares
87
+ middlewares,
88
+ hideDetached
87
89
  });
88
90
  (0, react.useEffect)(() => {
89
91
  const targetNode = target instanceof HTMLElement ? target : typeof target === "string" ? document.querySelector(target) : target?.current || null;
@@ -142,7 +144,8 @@ const Tooltip = require_factory.factory((_props) => {
142
144
  ...mergeStyles,
143
145
  zIndex,
144
146
  top: tooltip.y ?? 0,
145
- left: tooltip.x ?? 0
147
+ left: tooltip.x ?? 0,
148
+ ...tooltip.referenceHidden ? { display: "none" } : null
146
149
  }
147
150
  }),
148
151
  children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FloatingArrow.FloatingArrow, {
@@ -192,7 +195,8 @@ const Tooltip = require_factory.factory((_props) => {
192
195
  ...mergeStyles,
193
196
  zIndex,
194
197
  top: tooltip.y ?? 0,
195
- left: tooltip.x ?? 0
198
+ left: tooltip.x ?? 0,
199
+ ...tooltip.referenceHidden ? { display: "none" } : null
196
200
  }
197
201
  }),
198
202
  children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FloatingArrow.FloatingArrow, {
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.cjs","names":["getDefaultZIndex","createVarsResolver","getRadius","factory","useProps","useDirection","useRef","useTooltip","getFloatingPosition","useStyles","getSingleElementChild","getArrowMergeDropdownStyles","getTransitionProps","OptionalPortal","Transition","Box","FloatingArrow","useMergedRef","getRefProp","cloneElement","cx","classes","TooltipFloating","TooltipGroup"],"sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import { cloneElement, useEffect, useRef } from 'react';\nimport cx from 'clsx';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n createVarsResolver,\n factory,\n Factory,\n getDefaultZIndex,\n getRadius,\n getRefProp,\n getSingleElementChild,\n useDirection,\n useProps,\n useStyles,\n} from '../../core';\nimport {\n ArrowPosition,\n FloatingArrow,\n FloatingAxesOffsets,\n FloatingPosition,\n FloatingStrategy,\n getArrowMergeDropdownStyles,\n getFloatingPosition,\n} from '../../utils/Floating';\nimport { OptionalPortal } from '../Portal';\nimport { getTransitionProps, Transition, TransitionOverride } from '../Transition';\nimport { TooltipBaseProps, TooltipCssVariables, TooltipStylesNames } from './Tooltip.types';\nimport { TooltipFloating, type TooltipFloatingProps } from './TooltipFloating/TooltipFloating';\nimport {\n TooltipGroup,\n type TooltipGroupProps,\n type TooltipGroupContextValue,\n} from './TooltipGroup/TooltipGroup';\nimport { useTooltip } from './use-tooltip';\nimport classes from './Tooltip.module.css';\nexport interface TooltipProps extends TooltipBaseProps {\n /** Called when tooltip position changes */\n onPositionChange?: (position: FloatingPosition) => void;\n\n /** Open delay in ms */\n openDelay?: number;\n\n /** Close delay in ms @default 0 */\n closeDelay?: number;\n\n /** Controlled opened state */\n opened?: boolean;\n\n /** Uncontrolled tooltip initial opened state */\n defaultOpened?: boolean;\n\n /** Space between target element and tooltip in px @default 5 */\n offset?: number | FloatingAxesOffsets;\n\n /** If set, the tooltip has an arrow @default false */\n withArrow?: boolean;\n\n /** Arrow size in px @default 4 */\n arrowSize?: number;\n\n /** Arrow offset in px @default 5 */\n arrowOffset?: number;\n\n /** Arrow `border-radius` in px @default 0 */\n arrowRadius?: number;\n\n /** Arrow position relative to the tooltip @default side */\n arrowPosition?: ArrowPosition;\n\n /** Props passed down to the `Transition` component that used to animate tooltip presence, use to configure duration and animation type @default { duration: 100, transition: 'fade' } */\n transitionProps?: TransitionOverride;\n\n /** Determines which events will be used to show tooltip @default { hover: true, focus: false, touch: false } */\n events?: { hover: boolean; focus: boolean; touch: boolean };\n\n /** If set, the tooltip stays open while the pointer moves from the target to the tooltip and remains over it. Required by [WCAG 1.4.13](https://www.w3.org/WAI/WCAG21/Understanding/content-on-hover-or-focus.html) if the tooltip contains interactive content. Note that an interactive tooltip intercepts pointer events of the content it overlaps @default false */\n interactive?: boolean;\n\n /** Must be set if the tooltip target is an inline element */\n inline?: boolean;\n\n /** If set, the tooltip is not unmounted from the DOM when hidden, `display: none` styles are applied instead */\n keepMounted?: boolean;\n\n /** Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy) @default 'absolute' */\n floatingStrategy?: FloatingStrategy;\n\n /** If set, adjusts text color based on background color for `filled` variant */\n autoContrast?: boolean;\n\n /** Selector, ref of an element or element itself that should be used for positioning */\n target?: React.RefObject<HTMLElement | null> | HTMLElement | null | string;\n}\n\nexport type TooltipFactory = Factory<{\n props: TooltipProps;\n ref: HTMLDivElement;\n stylesNames: TooltipStylesNames;\n vars: TooltipCssVariables;\n staticComponents: {\n Floating: typeof TooltipFloating;\n Group: typeof TooltipGroup;\n };\n}>;\n\nconst defaultProps = {\n position: 'top',\n refProp: 'ref',\n withinPortal: true,\n arrowSize: 4,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n offset: 5,\n transitionProps: { duration: 100, transition: 'fade' },\n events: { hover: true, focus: false, touch: false },\n zIndex: getDefaultZIndex('popover'),\n middlewares: { flip: true, shift: true, inline: false },\n} satisfies Partial<TooltipProps>;\n\nconst varsResolver = createVarsResolver<TooltipFactory>(\n (theme, { radius, color, variant, autoContrast }) => {\n const colors = theme.variantColorResolver({\n theme,\n color: color || theme.primaryColor,\n autoContrast,\n variant: variant || 'filled',\n });\n\n return {\n tooltip: {\n '--tooltip-radius': radius === undefined ? undefined : getRadius(radius),\n '--tooltip-bg': color ? colors.background : undefined,\n '--tooltip-color': color ? colors.color : undefined,\n },\n };\n }\n);\n\nexport const Tooltip = factory<TooltipFactory>((_props) => {\n const props = useProps('Tooltip', defaultProps, _props);\n const {\n children,\n position,\n refProp,\n label,\n openDelay,\n closeDelay,\n onPositionChange,\n opened,\n defaultOpened,\n withinPortal,\n radius,\n color,\n classNames,\n styles,\n unstyled,\n style,\n className,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n offset,\n transitionProps,\n multiline,\n events,\n interactive,\n zIndex,\n disabled,\n onClick,\n onMouseEnter,\n onMouseLeave,\n inline,\n variant,\n keepMounted,\n vars,\n portalProps,\n mod,\n floatingStrategy,\n middlewares,\n autoContrast,\n attributes,\n target,\n ref,\n ...others\n } = props;\n\n const { dir } = useDirection();\n const arrowRef = useRef<HTMLDivElement>(null);\n\n const tooltip = useTooltip({\n position: getFloatingPosition(dir, position),\n closeDelay,\n openDelay,\n onPositionChange,\n opened,\n defaultOpened,\n events,\n interactive,\n arrowRef,\n arrowOffset,\n offset: typeof offset === 'number' ? offset + (withArrow ? arrowSize / 2 : 0) : offset,\n inline,\n strategy: floatingStrategy,\n middlewares,\n });\n\n useEffect(() => {\n const targetNode =\n target instanceof HTMLElement\n ? target\n : typeof target === 'string'\n ? document.querySelector(target)\n : target?.current || null;\n\n if (targetNode) {\n tooltip.reference(targetNode);\n }\n }, [target, tooltip]);\n\n const getStyles = useStyles<TooltipFactory>({\n name: 'Tooltip',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'tooltip',\n vars,\n varsResolver,\n });\n\n const child = getSingleElementChild(children);\n if (!target && !child) {\n throw new Error(\n '[@mantine/core] Tooltip component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n const tooltipStyles = getStyles('tooltip');\n const interactiveMod = interactive && !disabled && !!tooltip.opened;\n const mergeStyles =\n arrowPosition === 'merge' && withArrow\n ? getArrowMergeDropdownStyles({ position: tooltip.placement, dir })\n : undefined;\n\n if (target) {\n const transition = getTransitionProps(transitionProps, { duration: 100, transition: 'fade' });\n return (\n <>\n <OptionalPortal {...portalProps} withinPortal={withinPortal}>\n <Transition\n {...transition}\n keepMounted={keepMounted}\n mounted={!disabled && !!tooltip.opened}\n duration={tooltip.isGroupPhase ? 10 : transition.duration}\n >\n {(transitionStyles) => (\n <Box\n {...others}\n data-fixed={floatingStrategy === 'fixed' || undefined}\n variant={variant}\n mod={[{ multiline, interactive: interactiveMod }, mod]}\n {...tooltipStyles}\n {...tooltip.getFloatingProps({\n ref: tooltip.floating,\n className: tooltipStyles.className,\n style: {\n ...tooltipStyles.style,\n ...transitionStyles,\n ...mergeStyles,\n zIndex: zIndex as React.CSSProperties['zIndex'],\n top: tooltip.y ?? 0,\n left: tooltip.x ?? 0,\n },\n })}\n >\n {label}\n <FloatingArrow\n ref={arrowRef}\n arrowX={tooltip.arrowX}\n arrowY={tooltip.arrowY}\n visible={withArrow}\n position={tooltip.placement}\n arrowSize={arrowSize!}\n arrowOffset={arrowOffset!}\n arrowRadius={arrowRadius!}\n arrowPosition={arrowPosition!}\n {...getStyles('arrow')}\n />\n </Box>\n )}\n </Transition>\n </OptionalPortal>\n </>\n );\n }\n\n // fallback to children-based approach\n const childProps = child!.props as any;\n const targetRef = useMergedRef(tooltip.reference, getRefProp(child), ref);\n const transition = getTransitionProps(transitionProps, { duration: 100, transition: 'fade' });\n\n return (\n <>\n <OptionalPortal {...portalProps} withinPortal={withinPortal}>\n <Transition\n {...transition}\n keepMounted={keepMounted}\n mounted={!disabled && !!tooltip.opened}\n duration={tooltip.isGroupPhase ? 10 : transition.duration}\n >\n {(transitionStyles) => (\n <Box\n {...others}\n data-fixed={floatingStrategy === 'fixed' || undefined}\n variant={variant}\n mod={[{ multiline, interactive: interactiveMod }, mod]}\n {...tooltip.getFloatingProps({\n ref: tooltip.floating,\n className: getStyles('tooltip').className,\n style: {\n ...getStyles('tooltip').style,\n ...transitionStyles,\n ...mergeStyles,\n zIndex: zIndex as React.CSSProperties['zIndex'],\n top: tooltip.y ?? 0,\n left: tooltip.x ?? 0,\n },\n })}\n >\n {label}\n <FloatingArrow\n ref={arrowRef}\n arrowX={tooltip.arrowX}\n arrowY={tooltip.arrowY}\n visible={withArrow}\n position={tooltip.placement}\n arrowSize={arrowSize}\n arrowOffset={arrowOffset}\n arrowRadius={arrowRadius}\n arrowPosition={arrowPosition}\n {...getStyles('arrow')}\n />\n </Box>\n )}\n </Transition>\n </OptionalPortal>\n\n {cloneElement(\n child!,\n tooltip.getReferenceProps({\n onClick,\n onMouseEnter,\n onMouseLeave,\n onMouseMove: props.onMouseMove,\n onPointerDown: props.onPointerDown,\n onPointerEnter: props.onPointerEnter,\n ...childProps,\n className: cx(className, childProps.className),\n [refProp]: targetRef,\n })\n )}\n </>\n );\n});\n\nTooltip.classes = classes;\nTooltip.varsResolver = varsResolver;\nTooltip.displayName = '@mantine/core/Tooltip';\nTooltip.Floating = TooltipFloating;\nTooltip.Group = TooltipGroup;\n\nexport namespace Tooltip {\n export type Props = TooltipProps;\n export type Factory = TooltipFactory;\n export type CssVariables = TooltipCssVariables;\n export type StylesNames = TooltipStylesNames;\n\n export namespace Group {\n export type Props = TooltipGroupProps;\n export type ContextValue = TooltipGroupContextValue;\n }\n\n export namespace Floating {\n export type Props = TooltipFloatingProps;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.cjs","names":["getDefaultZIndex","createVarsResolver","getRadius","factory","useProps","useDirection","useRef","useTooltip","getFloatingPosition","useStyles","getSingleElementChild","getArrowMergeDropdownStyles","getTransitionProps","OptionalPortal","Transition","Box","FloatingArrow","useMergedRef","getRefProp","cloneElement","cx","classes","TooltipFloating","TooltipGroup"],"sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import { cloneElement, useEffect, useRef } from 'react';\nimport cx from 'clsx';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n createVarsResolver,\n factory,\n Factory,\n getDefaultZIndex,\n getRadius,\n getRefProp,\n getSingleElementChild,\n useDirection,\n useProps,\n useStyles,\n} from '../../core';\nimport {\n ArrowPosition,\n FloatingArrow,\n FloatingAxesOffsets,\n FloatingPosition,\n FloatingStrategy,\n getArrowMergeDropdownStyles,\n getFloatingPosition,\n} from '../../utils/Floating';\nimport { OptionalPortal } from '../Portal';\nimport { getTransitionProps, Transition, TransitionOverride } from '../Transition';\nimport { TooltipBaseProps, TooltipCssVariables, TooltipStylesNames } from './Tooltip.types';\nimport { TooltipFloating, type TooltipFloatingProps } from './TooltipFloating/TooltipFloating';\nimport {\n TooltipGroup,\n type TooltipGroupProps,\n type TooltipGroupContextValue,\n} from './TooltipGroup/TooltipGroup';\nimport { useTooltip } from './use-tooltip';\nimport classes from './Tooltip.module.css';\nexport interface TooltipProps extends TooltipBaseProps {\n /** Called when tooltip position changes */\n onPositionChange?: (position: FloatingPosition) => void;\n\n /** Open delay in ms */\n openDelay?: number;\n\n /** Close delay in ms @default 0 */\n closeDelay?: number;\n\n /** Controlled opened state */\n opened?: boolean;\n\n /** Uncontrolled tooltip initial opened state */\n defaultOpened?: boolean;\n\n /** Space between target element and tooltip in px @default 5 */\n offset?: number | FloatingAxesOffsets;\n\n /** If set, the tooltip has an arrow @default false */\n withArrow?: boolean;\n\n /** Arrow size in px @default 4 */\n arrowSize?: number;\n\n /** Arrow offset in px @default 5 */\n arrowOffset?: number;\n\n /** Arrow `border-radius` in px @default 0 */\n arrowRadius?: number;\n\n /** Arrow position relative to the tooltip @default side */\n arrowPosition?: ArrowPosition;\n\n /** Props passed down to the `Transition` component that used to animate tooltip presence, use to configure duration and animation type @default { duration: 100, transition: 'fade' } */\n transitionProps?: TransitionOverride;\n\n /** Determines which events will be used to show tooltip @default { hover: true, focus: false, touch: false } */\n events?: { hover: boolean; focus: boolean; touch: boolean };\n\n /** If set, the tooltip stays open while the pointer is over it @default false */\n interactive?: boolean;\n\n /** Must be set if the tooltip target is an inline element */\n inline?: boolean;\n\n /** If set, the tooltip is not unmounted from the DOM when hidden, `display: none` styles are applied instead */\n keepMounted?: boolean;\n\n /** Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy) @default 'absolute' */\n floatingStrategy?: FloatingStrategy;\n\n /** If set, adjusts text color based on background color for `filled` variant */\n autoContrast?: boolean;\n\n /** Selector, ref of an element or element itself that should be used for positioning */\n target?: React.RefObject<HTMLElement | null> | HTMLElement | null | string;\n\n /** If set, the tooltip is hidden when the target element is removed from the DOM, hidden with `display: none` or scrolled out of the visible area. Has no effect on `Tooltip.Floating` @default true */\n hideDetached?: boolean;\n}\n\nexport type TooltipFactory = Factory<{\n props: TooltipProps;\n ref: HTMLDivElement;\n stylesNames: TooltipStylesNames;\n vars: TooltipCssVariables;\n staticComponents: {\n Floating: typeof TooltipFloating;\n Group: typeof TooltipGroup;\n };\n}>;\n\nconst defaultProps = {\n position: 'top',\n refProp: 'ref',\n withinPortal: true,\n arrowSize: 4,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n offset: 5,\n transitionProps: { duration: 100, transition: 'fade' },\n events: { hover: true, focus: false, touch: false },\n zIndex: getDefaultZIndex('popover'),\n middlewares: { flip: true, shift: true, inline: false },\n hideDetached: true,\n} satisfies Partial<TooltipProps>;\n\nconst varsResolver = createVarsResolver<TooltipFactory>(\n (theme, { radius, color, variant, autoContrast }) => {\n const colors = theme.variantColorResolver({\n theme,\n color: color || theme.primaryColor,\n autoContrast,\n variant: variant || 'filled',\n });\n\n return {\n tooltip: {\n '--tooltip-radius': radius === undefined ? undefined : getRadius(radius),\n '--tooltip-bg': color ? colors.background : undefined,\n '--tooltip-color': color ? colors.color : undefined,\n },\n };\n }\n);\n\nexport const Tooltip = factory<TooltipFactory>((_props) => {\n const props = useProps('Tooltip', defaultProps, _props);\n const {\n children,\n position,\n refProp,\n label,\n openDelay,\n closeDelay,\n onPositionChange,\n opened,\n defaultOpened,\n withinPortal,\n radius,\n color,\n classNames,\n styles,\n unstyled,\n style,\n className,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n offset,\n transitionProps,\n multiline,\n events,\n interactive,\n zIndex,\n disabled,\n onClick,\n onMouseEnter,\n onMouseLeave,\n inline,\n variant,\n keepMounted,\n vars,\n portalProps,\n mod,\n floatingStrategy,\n middlewares,\n autoContrast,\n attributes,\n target,\n hideDetached,\n ref,\n ...others\n } = props;\n\n const { dir } = useDirection();\n const arrowRef = useRef<HTMLDivElement>(null);\n\n const tooltip = useTooltip({\n position: getFloatingPosition(dir, position),\n closeDelay,\n openDelay,\n onPositionChange,\n opened,\n defaultOpened,\n events,\n interactive,\n arrowRef,\n arrowOffset,\n offset: typeof offset === 'number' ? offset + (withArrow ? arrowSize / 2 : 0) : offset,\n inline,\n strategy: floatingStrategy,\n middlewares,\n hideDetached,\n });\n\n useEffect(() => {\n const targetNode =\n target instanceof HTMLElement\n ? target\n : typeof target === 'string'\n ? document.querySelector(target)\n : target?.current || null;\n\n if (targetNode) {\n tooltip.reference(targetNode);\n }\n }, [target, tooltip]);\n\n const getStyles = useStyles<TooltipFactory>({\n name: 'Tooltip',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'tooltip',\n vars,\n varsResolver,\n });\n\n const child = getSingleElementChild(children);\n if (!target && !child) {\n throw new Error(\n '[@mantine/core] Tooltip component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n const tooltipStyles = getStyles('tooltip');\n const interactiveMod = interactive && !disabled && !!tooltip.opened;\n const mergeStyles =\n arrowPosition === 'merge' && withArrow\n ? getArrowMergeDropdownStyles({ position: tooltip.placement, dir })\n : undefined;\n\n if (target) {\n const transition = getTransitionProps(transitionProps, { duration: 100, transition: 'fade' });\n return (\n <>\n <OptionalPortal {...portalProps} withinPortal={withinPortal}>\n <Transition\n {...transition}\n keepMounted={keepMounted}\n mounted={!disabled && !!tooltip.opened}\n duration={tooltip.isGroupPhase ? 10 : transition.duration}\n >\n {(transitionStyles) => (\n <Box\n {...others}\n data-fixed={floatingStrategy === 'fixed' || undefined}\n variant={variant}\n mod={[{ multiline, interactive: interactiveMod }, mod]}\n {...tooltipStyles}\n {...tooltip.getFloatingProps({\n ref: tooltip.floating,\n className: tooltipStyles.className,\n style: {\n ...tooltipStyles.style,\n ...transitionStyles,\n ...mergeStyles,\n zIndex: zIndex as React.CSSProperties['zIndex'],\n top: tooltip.y ?? 0,\n left: tooltip.x ?? 0,\n ...(tooltip.referenceHidden ? { display: 'none' } : null),\n },\n })}\n >\n {label}\n <FloatingArrow\n ref={arrowRef}\n arrowX={tooltip.arrowX}\n arrowY={tooltip.arrowY}\n visible={withArrow}\n position={tooltip.placement}\n arrowSize={arrowSize!}\n arrowOffset={arrowOffset!}\n arrowRadius={arrowRadius!}\n arrowPosition={arrowPosition!}\n {...getStyles('arrow')}\n />\n </Box>\n )}\n </Transition>\n </OptionalPortal>\n </>\n );\n }\n\n // fallback to children-based approach\n const childProps = child!.props as any;\n const targetRef = useMergedRef(tooltip.reference, getRefProp(child), ref);\n const transition = getTransitionProps(transitionProps, { duration: 100, transition: 'fade' });\n\n return (\n <>\n <OptionalPortal {...portalProps} withinPortal={withinPortal}>\n <Transition\n {...transition}\n keepMounted={keepMounted}\n mounted={!disabled && !!tooltip.opened}\n duration={tooltip.isGroupPhase ? 10 : transition.duration}\n >\n {(transitionStyles) => (\n <Box\n {...others}\n data-fixed={floatingStrategy === 'fixed' || undefined}\n variant={variant}\n mod={[{ multiline, interactive: interactiveMod }, mod]}\n {...tooltip.getFloatingProps({\n ref: tooltip.floating,\n className: getStyles('tooltip').className,\n style: {\n ...getStyles('tooltip').style,\n ...transitionStyles,\n ...mergeStyles,\n zIndex: zIndex as React.CSSProperties['zIndex'],\n top: tooltip.y ?? 0,\n left: tooltip.x ?? 0,\n ...(tooltip.referenceHidden ? { display: 'none' } : null),\n },\n })}\n >\n {label}\n <FloatingArrow\n ref={arrowRef}\n arrowX={tooltip.arrowX}\n arrowY={tooltip.arrowY}\n visible={withArrow}\n position={tooltip.placement}\n arrowSize={arrowSize}\n arrowOffset={arrowOffset}\n arrowRadius={arrowRadius}\n arrowPosition={arrowPosition}\n {...getStyles('arrow')}\n />\n </Box>\n )}\n </Transition>\n </OptionalPortal>\n\n {cloneElement(\n child!,\n tooltip.getReferenceProps({\n onClick,\n onMouseEnter,\n onMouseLeave,\n onMouseMove: props.onMouseMove,\n onPointerDown: props.onPointerDown,\n onPointerEnter: props.onPointerEnter,\n ...childProps,\n className: cx(className, childProps.className),\n [refProp]: targetRef,\n })\n )}\n </>\n );\n});\n\nTooltip.classes = classes;\nTooltip.varsResolver = varsResolver;\nTooltip.displayName = '@mantine/core/Tooltip';\nTooltip.Floating = TooltipFloating;\nTooltip.Group = TooltipGroup;\n\nexport namespace Tooltip {\n export type Props = TooltipProps;\n export type Factory = TooltipFactory;\n export type CssVariables = TooltipCssVariables;\n export type StylesNames = TooltipStylesNames;\n\n export namespace Group {\n export type Props = TooltipGroupProps;\n export type ContextValue = TooltipGroupContextValue;\n }\n\n export namespace Floating {\n export type Props = TooltipFloatingProps;\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ const require_Mantine_context = require("../../core/MantineProvider/Mantine.context.cjs");
2
3
  const require_TooltipGroup = require("./TooltipGroup/TooltipGroup.cjs");
3
4
  let react = require("react");
4
5
  let _mantine_hooks = require("@mantine/hooks");
@@ -16,7 +17,7 @@ function getDefaultMiddlewares(middlewares) {
16
17
  }
17
18
  function getTooltipMiddlewares(settings) {
18
19
  const middlewaresOptions = getDefaultMiddlewares(settings.middlewares);
19
- const middlewares = [(0, _floating_ui_react.offset)(settings.offset)];
20
+ const middlewares = [(0, _floating_ui_react.offset)(settings.offset), (0, _floating_ui_react.hide)()];
20
21
  if (middlewaresOptions.shift) middlewares.push((0, _floating_ui_react.shift)(typeof middlewaresOptions.shift === "boolean" ? { padding: 8 } : {
21
22
  padding: 8,
22
23
  ...middlewaresOptions.shift
@@ -35,11 +36,12 @@ function useTooltip(settings) {
35
36
  const opened = typeof settings.opened === "boolean" ? settings.opened : uncontrolledOpened;
36
37
  const withinGroup = (0, react.use)(require_TooltipGroup.TooltipGroupContext).withinGroup;
37
38
  const uid = (0, _mantine_hooks.useId)();
39
+ const env = require_Mantine_context.useMantineEnv();
38
40
  const onChange = (0, react.useCallback)((_opened) => {
39
41
  setUncontrolledOpened(_opened);
40
42
  if (_opened) setCurrentId(uid);
41
43
  }, [uid]);
42
- const { x, y, context, refs, placement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {} } } = (0, _floating_ui_react.useFloating)({
44
+ const { x, y, context, refs, placement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {}, hide: hideData } } = (0, _floating_ui_react.useFloating)({
43
45
  strategy: settings.strategy,
44
46
  placement: settings.position,
45
47
  open: opened,
@@ -84,7 +86,8 @@ function useTooltip(settings) {
84
86
  getReferenceProps,
85
87
  isGroupPhase,
86
88
  opened,
87
- placement
89
+ placement,
90
+ referenceHidden: settings.hideDetached && env !== "test" ? hideData?.referenceHidden : false
88
91
  };
89
92
  }
90
93
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"use-tooltip.cjs","names":["offset","shift","flip","arrow","inline","useState","use","TooltipGroupContext","useId","useCallback","useFloating","autoUpdate","useDelayGroup","useInteractions","useHover","safePolygon","useFocus","useRole","useDismiss","useRef"],"sources":["../../../src/components/Tooltip/use-tooltip.ts"],"sourcesContent":["import { use, useCallback, useRef, useState } from 'react';\nimport {\n arrow,\n autoUpdate,\n flip,\n inline,\n offset,\n safePolygon,\n shift,\n useDelayGroup,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n type Middleware,\n} from '@floating-ui/react';\nimport { useId, useIsomorphicEffect } from '@mantine/hooks';\nimport { FloatingAxesOffsets, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { type TooltipMiddlewares } from './Tooltip.types';\nimport { TooltipGroupContext } from './TooltipGroup/TooltipGroup';\n\ninterface UseTooltip {\n position: FloatingPosition;\n closeDelay?: number;\n openDelay?: number;\n onPositionChange?: (position: FloatingPosition) => void;\n opened?: boolean;\n defaultOpened?: boolean;\n offset: number | FloatingAxesOffsets;\n arrowRef?: React.RefObject<HTMLDivElement | null>;\n arrowOffset?: number;\n events?: { hover: boolean; focus: boolean; touch: boolean };\n interactive?: boolean;\n inline?: boolean;\n strategy?: FloatingStrategy;\n middlewares?: TooltipMiddlewares;\n}\n\nfunction getDefaultMiddlewares(middlewares: TooltipMiddlewares | undefined): TooltipMiddlewares {\n if (middlewares === undefined) {\n return { shift: true, flip: true };\n }\n\n const result = { ...middlewares };\n if (middlewares.shift === undefined) {\n result.shift = true;\n }\n\n if (middlewares.flip === undefined) {\n result.flip = true;\n }\n\n return result;\n}\n\nfunction getTooltipMiddlewares(settings: UseTooltip) {\n const middlewaresOptions = getDefaultMiddlewares(settings.middlewares);\n const middlewares: Middleware[] = [offset(settings.offset)];\n\n if (middlewaresOptions.shift) {\n middlewares.push(\n shift(\n typeof middlewaresOptions.shift === 'boolean'\n ? { padding: 8 }\n : { padding: 8, ...middlewaresOptions.shift }\n )\n );\n }\n\n if (middlewaresOptions.flip) {\n middlewares.push(\n typeof middlewaresOptions.flip === 'boolean' ? flip() : flip(middlewaresOptions.flip)\n );\n }\n\n middlewares.push(arrow({ element: settings.arrowRef!, padding: settings.arrowOffset }));\n\n if (middlewaresOptions.inline) {\n middlewares.push(\n typeof middlewaresOptions.inline === 'boolean' ? inline() : inline(middlewaresOptions.inline)\n );\n } else if (settings.inline) {\n middlewares.push(inline());\n }\n\n return middlewares;\n}\n\nexport function useTooltip(settings: UseTooltip) {\n const [uncontrolledOpened, setUncontrolledOpened] = useState(settings.defaultOpened);\n const controlled = typeof settings.opened === 'boolean';\n const opened = controlled ? settings.opened : uncontrolledOpened;\n const withinGroup = use(TooltipGroupContext).withinGroup;\n const uid = useId();\n\n const onChange = useCallback(\n (_opened: boolean) => {\n setUncontrolledOpened(_opened);\n\n if (_opened) {\n setCurrentId(uid);\n }\n },\n [uid]\n );\n\n const {\n x,\n y,\n context,\n refs,\n placement,\n middlewareData: { arrow: { x: arrowX, y: arrowY } = {} },\n } = useFloating({\n strategy: settings.strategy,\n placement: settings.position,\n open: opened,\n onOpenChange: onChange,\n middleware: getTooltipMiddlewares(settings),\n whileElementsMounted: autoUpdate,\n });\n\n const { delay: groupDelay, currentId, setCurrentId } = useDelayGroup(context, { id: uid });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(context, {\n enabled: settings.events?.hover,\n delay: withinGroup ? groupDelay : { open: settings.openDelay, close: settings.closeDelay },\n mouseOnly: !settings.events?.touch,\n handleClose: settings.interactive ? safePolygon() : null,\n }),\n useFocus(context, { enabled: settings.events?.focus, visibleOnly: true }),\n useRole(context, { role: 'tooltip' }),\n // Cannot be used with controlled tooltip, page jumps\n useDismiss(context, { enabled: typeof settings.opened === 'undefined' }),\n ]);\n\n const previousPlacementRef = useRef(placement);\n useIsomorphicEffect(() => {\n if (previousPlacementRef.current !== placement) {\n previousPlacementRef.current = placement;\n settings.onPositionChange?.(placement);\n }\n }, [placement]);\n\n const isGroupPhase = opened && currentId && currentId !== uid;\n\n return {\n x,\n y,\n arrowX,\n arrowY,\n reference: refs.setReference,\n floating: refs.setFloating,\n getFloatingProps,\n getReferenceProps,\n isGroupPhase,\n opened,\n placement,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-tooltip.cjs","names":["offset","hide","shift","flip","arrow","inline","useState","use","TooltipGroupContext","useId","useMantineEnv","useCallback","useFloating","autoUpdate","useDelayGroup","useInteractions","useHover","safePolygon","useFocus","useRole","useDismiss","useRef"],"sources":["../../../src/components/Tooltip/use-tooltip.ts"],"sourcesContent":["import { use, useCallback, useRef, useState } from 'react';\nimport {\n arrow,\n autoUpdate,\n flip,\n hide,\n inline,\n offset,\n safePolygon,\n shift,\n useDelayGroup,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n type Middleware,\n} from '@floating-ui/react';\nimport { useId, useIsomorphicEffect } from '@mantine/hooks';\nimport { useMantineEnv } from '../../core';\nimport { FloatingAxesOffsets, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { type TooltipMiddlewares } from './Tooltip.types';\nimport { TooltipGroupContext } from './TooltipGroup/TooltipGroup';\n\ninterface UseTooltip {\n position: FloatingPosition;\n closeDelay?: number;\n openDelay?: number;\n onPositionChange?: (position: FloatingPosition) => void;\n opened?: boolean;\n defaultOpened?: boolean;\n offset: number | FloatingAxesOffsets;\n arrowRef?: React.RefObject<HTMLDivElement | null>;\n arrowOffset?: number;\n events?: { hover: boolean; focus: boolean; touch: boolean };\n interactive?: boolean;\n inline?: boolean;\n strategy?: FloatingStrategy;\n middlewares?: TooltipMiddlewares;\n hideDetached?: boolean;\n}\n\nfunction getDefaultMiddlewares(middlewares: TooltipMiddlewares | undefined): TooltipMiddlewares {\n if (middlewares === undefined) {\n return { shift: true, flip: true };\n }\n\n const result = { ...middlewares };\n if (middlewares.shift === undefined) {\n result.shift = true;\n }\n\n if (middlewares.flip === undefined) {\n result.flip = true;\n }\n\n return result;\n}\n\nfunction getTooltipMiddlewares(settings: UseTooltip) {\n const middlewaresOptions = getDefaultMiddlewares(settings.middlewares);\n const middlewares: Middleware[] = [offset(settings.offset), hide()];\n\n if (middlewaresOptions.shift) {\n middlewares.push(\n shift(\n typeof middlewaresOptions.shift === 'boolean'\n ? { padding: 8 }\n : { padding: 8, ...middlewaresOptions.shift }\n )\n );\n }\n\n if (middlewaresOptions.flip) {\n middlewares.push(\n typeof middlewaresOptions.flip === 'boolean' ? flip() : flip(middlewaresOptions.flip)\n );\n }\n\n middlewares.push(arrow({ element: settings.arrowRef!, padding: settings.arrowOffset }));\n\n if (middlewaresOptions.inline) {\n middlewares.push(\n typeof middlewaresOptions.inline === 'boolean' ? inline() : inline(middlewaresOptions.inline)\n );\n } else if (settings.inline) {\n middlewares.push(inline());\n }\n\n return middlewares;\n}\n\nexport function useTooltip(settings: UseTooltip) {\n const [uncontrolledOpened, setUncontrolledOpened] = useState(settings.defaultOpened);\n const controlled = typeof settings.opened === 'boolean';\n const opened = controlled ? settings.opened : uncontrolledOpened;\n const withinGroup = use(TooltipGroupContext).withinGroup;\n const uid = useId();\n const env = useMantineEnv();\n\n const onChange = useCallback(\n (_opened: boolean) => {\n setUncontrolledOpened(_opened);\n\n if (_opened) {\n setCurrentId(uid);\n }\n },\n [uid]\n );\n\n const {\n x,\n y,\n context,\n refs,\n placement,\n middlewareData: { arrow: { x: arrowX, y: arrowY } = {}, hide: hideData },\n } = useFloating({\n strategy: settings.strategy,\n placement: settings.position,\n open: opened,\n onOpenChange: onChange,\n middleware: getTooltipMiddlewares(settings),\n whileElementsMounted: autoUpdate,\n });\n\n const { delay: groupDelay, currentId, setCurrentId } = useDelayGroup(context, { id: uid });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(context, {\n enabled: settings.events?.hover,\n delay: withinGroup ? groupDelay : { open: settings.openDelay, close: settings.closeDelay },\n mouseOnly: !settings.events?.touch,\n handleClose: settings.interactive ? safePolygon() : null,\n }),\n useFocus(context, { enabled: settings.events?.focus, visibleOnly: true }),\n useRole(context, { role: 'tooltip' }),\n // Cannot be used with controlled tooltip, page jumps\n useDismiss(context, { enabled: typeof settings.opened === 'undefined' }),\n ]);\n\n const previousPlacementRef = useRef(placement);\n useIsomorphicEffect(() => {\n if (previousPlacementRef.current !== placement) {\n previousPlacementRef.current = placement;\n settings.onPositionChange?.(placement);\n }\n }, [placement]);\n\n const isGroupPhase = opened && currentId && currentId !== uid;\n\n return {\n x,\n y,\n arrowX,\n arrowY,\n reference: refs.setReference,\n floating: refs.setFloating,\n getFloatingProps,\n getReferenceProps,\n isGroupPhase,\n opened,\n placement,\n referenceHidden: settings.hideDetached && env !== 'test' ? hideData?.referenceHidden : false,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ "use client";
2
+ const require_get_size = require("../../core/utils/get-size/get-size.cjs");
3
+ const require_create_vars_resolver = require("../../core/styles-api/create-vars-resolver/create-vars-resolver.cjs");
4
+ const require_get_theme_color = require("../../core/MantineProvider/color-functions/get-theme-color/get-theme-color.cjs");
5
+ const require_use_props = require("../../core/MantineProvider/use-props/use-props.cjs");
6
+ const require_use_styles = require("../../core/styles-api/use-styles/use-styles.cjs");
7
+ const require_factory = require("../../core/factory/factory.cjs");
8
+ const require_Box = require("../../core/Box/Box.cjs");
9
+ const require_OptionalPortal = require("../Portal/OptionalPortal.cjs");
10
+ const require_Transition = require("../Transition/Transition.cjs");
11
+ const require_FocusTrap = require("../FocusTrap/FocusTrap.cjs");
12
+ const require_get_overlay_hit_path = require("./get-overlay-hit-path.cjs");
13
+ const require_Tour_context = require("./Tour.context.cjs");
14
+ const require_Tour_module = require("./Tour.module.cjs");
15
+ const require_TourBeacon = require("./TourBeacon/TourBeacon.cjs");
16
+ const require_TourBeaconPositioned = require("./TourBeaconPositioned.cjs");
17
+ const require_TourBody = require("./TourBody/TourBody.cjs");
18
+ const require_TourCloseButton = require("./TourCloseButton/TourCloseButton.cjs");
19
+ const require_TourNavigation = require("./TourNavigation/TourNavigation.cjs");
20
+ const require_TourOverlay = require("./TourOverlay/TourOverlay.cjs");
21
+ const require_TourRoot = require("./TourRoot/TourRoot.cjs");
22
+ const require_TourStep = require("./TourStep/TourStep.cjs");
23
+ const require_TourTitle = require("./TourTitle/TourTitle.cjs");
24
+ const require_use_tooltip_auto_focus = require("./use-tooltip-auto-focus.cjs");
25
+ const require_TourTooltip = require("./TourTooltip/TourTooltip.cjs");
26
+ const require_use_tour = require("./use-tour.cjs");
27
+ let react = require("react");
28
+ let _mantine_hooks = require("@mantine/hooks");
29
+ let react_jsx_runtime = require("react/jsx-runtime");
30
+ //#region packages/@mantine/core/src/components/Tour/Tour.tsx
31
+ const defaultProps = {
32
+ active: false,
33
+ mode: "guided",
34
+ withOverlay: true,
35
+ withOverlayInteraction: false,
36
+ withCloseButton: true,
37
+ withKeyboardNavigation: true,
38
+ withScrollIntoView: true,
39
+ spotlightPadding: 8,
40
+ closeOnEscape: true,
41
+ closeOnOverlayClick: false,
42
+ withinPortal: true,
43
+ zIndex: 1e4,
44
+ transitionProps: {
45
+ duration: 200,
46
+ transition: "pop"
47
+ },
48
+ maxWidth: 360,
49
+ stepTransitionDuration: 300,
50
+ overlayColor: "rgba(0, 0, 0, 0.5)"
51
+ };
52
+ const varsResolver = require_create_vars_resolver.createVarsResolver((theme, { zIndex, overlayColor, tooltipShadow, color }) => ({ root: {
53
+ "--tour-color": color ? require_get_theme_color.getThemeColor(color, theme) : void 0,
54
+ "--tour-z-index": zIndex?.toString(),
55
+ "--tour-overlay-color": overlayColor,
56
+ "--tour-tooltip-radius": void 0,
57
+ "--tour-tooltip-shadow": require_get_size.getShadow(tooltipShadow),
58
+ "--tour-beacon-size": void 0,
59
+ "--tour-beacon-color": void 0
60
+ } }));
61
+ const noop = () => {};
62
+ function getBeaconLabel(label, title) {
63
+ return typeof title === "string" || typeof title === "number" ? `${label}: ${title}` : label;
64
+ }
65
+ const Tour = require_factory.factory((_props) => {
66
+ const props = require_use_props.useProps("Tour", defaultProps, _props);
67
+ const { classNames, className, style, styles, unstyled, vars, active, onClose, step: stepProp, defaultStep, onStepChange, onStepOpen, onStepClose, mode, withOverlay, withOverlayInteraction, withCloseButton, withKeyboardNavigation, withScrollIntoView, scrollToHandler, spotlightPadding, spotlightRadius, closeOnEscape, closeOnOverlayClick, labels: labelsProp, withinPortal, portalProps, zIndex, transitionProps, stepTransitionDuration, maxWidth, overlayColor, tooltipShadow, color, children, attributes, ...others } = props;
68
+ const labels = {
69
+ ...require_Tour_context.defaultLabels,
70
+ ...labelsProp
71
+ };
72
+ const spotlightPaddingValue = spotlightPadding;
73
+ const id = (0, react.useId)();
74
+ const maskId = `${id}-mask`;
75
+ const [registeredTitleId, registerTitle] = (0, react.useState)(null);
76
+ const [registeredBodyId, registerBody] = (0, react.useState)(null);
77
+ const titleId = registeredTitleId ?? `${id}-title`;
78
+ const bodyId = registeredBodyId ?? `${id}-body`;
79
+ const titleMounted = registeredTitleId !== null;
80
+ const bodyMounted = registeredBodyId !== null;
81
+ const beaconToFocusRef = (0, react.useRef)(null);
82
+ const { steps, setStep, beaconOpenStep, openBeaconStep, close, displayStep, displayStepIndex, targetRect, floatingStyles, floatingRefs, isCentered, constrainedWidth, stepMoving, showTooltip, clearExitedTarget } = require_use_tour.useTour({
83
+ active,
84
+ onClose,
85
+ step: stepProp,
86
+ defaultStep,
87
+ onStepChange,
88
+ onStepOpen,
89
+ onStepClose,
90
+ mode,
91
+ withKeyboardNavigation,
92
+ withScrollIntoView,
93
+ scrollToHandler,
94
+ closeOnEscape,
95
+ maxWidth,
96
+ stepTransitionDuration,
97
+ children,
98
+ stepComponent: require_TourStep.TourStep
99
+ });
100
+ (0, react.useEffect)(() => {
101
+ if (!active) beaconToFocusRef.current = null;
102
+ }, [active]);
103
+ const resolvedSpotlightPadding = displayStep?.spotlightPadding ?? spotlightPaddingValue;
104
+ const resolvedSpotlightRadius = displayStep?.spotlightRadius ?? spotlightRadius ?? 4;
105
+ const resolvedWithOverlay = displayStep?.withOverlay ?? withOverlay;
106
+ const focusTrapActive = showTooltip && mode === "guided" && !!resolvedWithOverlay && !withOverlayInteraction;
107
+ const autoFocusRef = require_use_tooltip_auto_focus.useTooltipAutoFocus({
108
+ autoFocus: showTooltip && !focusTrapActive,
109
+ opened: showTooltip,
110
+ step: displayStepIndex
111
+ });
112
+ const tooltipMergedRef = (0, _mantine_hooks.useMergedRef)(floatingRefs.setFloating, autoFocusRef);
113
+ const getStyles = require_use_styles.useStyles({
114
+ name: "Tour",
115
+ classes: require_Tour_module.default,
116
+ props,
117
+ className,
118
+ style,
119
+ classNames,
120
+ styles,
121
+ unstyled,
122
+ attributes,
123
+ vars,
124
+ varsResolver
125
+ });
126
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tour_context.TourProvider, {
127
+ value: {
128
+ getStyles,
129
+ step: displayStepIndex,
130
+ setStep,
131
+ stepsCount: steps.length,
132
+ close,
133
+ withOverlay: !!resolvedWithOverlay,
134
+ withOverlayInteraction,
135
+ withCloseButton,
136
+ spotlightPadding: resolvedSpotlightPadding,
137
+ spotlightRadius: resolvedSpotlightRadius,
138
+ closeOnOverlayClick,
139
+ transitionProps,
140
+ color,
141
+ labels,
142
+ titleId,
143
+ bodyId,
144
+ titleMounted,
145
+ bodyMounted,
146
+ registerTitle,
147
+ registerBody,
148
+ setTargetElement: noop
149
+ },
150
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_OptionalPortal.OptionalPortal, {
151
+ ...portalProps,
152
+ withinPortal,
153
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Box.Box, {
154
+ ...getStyles("root"),
155
+ ...others,
156
+ children: [
157
+ resolvedWithOverlay && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Transition.Transition, {
158
+ mounted: showTooltip,
159
+ duration: transitionProps?.duration ?? 200,
160
+ transition: "fade",
161
+ children: (overlayStyles) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
162
+ ...getStyles("overlay"),
163
+ role: "presentation",
164
+ width: "100%",
165
+ height: "100%",
166
+ style: overlayStyles,
167
+ "data-with-overlay-interaction": withOverlayInteraction || void 0,
168
+ onMouseDown: (event) => event.preventDefault(),
169
+ onClick: () => {
170
+ if (closeOnOverlayClick) close();
171
+ },
172
+ children: [
173
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("mask", {
174
+ id: maskId,
175
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
176
+ x: "0",
177
+ y: "0",
178
+ width: "100%",
179
+ height: "100%",
180
+ fill: "white"
181
+ }), targetRect && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
182
+ x: targetRect.left - resolvedSpotlightPadding,
183
+ y: targetRect.top - resolvedSpotlightPadding,
184
+ width: targetRect.width + resolvedSpotlightPadding * 2,
185
+ height: targetRect.height + resolvedSpotlightPadding * 2,
186
+ rx: resolvedSpotlightRadius,
187
+ ry: resolvedSpotlightRadius,
188
+ fill: "black",
189
+ ...getStyles("spotlight", { style: stepMoving ? { transition: "all 150ms ease" } : void 0 })
190
+ })]
191
+ }) }),
192
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
193
+ x: "0",
194
+ y: "0",
195
+ width: "100%",
196
+ height: "100%",
197
+ style: { fill: "var(--tour-overlay-color)" },
198
+ mask: `url(#${maskId})`
199
+ }),
200
+ withOverlayInteraction && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
201
+ d: require_get_overlay_hit_path.getOverlayHitPath(targetRect, resolvedSpotlightPadding, resolvedSpotlightRadius),
202
+ fillRule: "evenodd",
203
+ fill: "transparent",
204
+ style: { pointerEvents: "auto" }
205
+ })
206
+ ]
207
+ })
208
+ }),
209
+ active && mode === "beacon" && beaconOpenStep === null && steps.map((stepData, index) => {
210
+ if (stepData.withBeacon === false) return null;
211
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourBeaconPositioned.TourBeaconPositioned, {
212
+ target: stepData.target,
213
+ onClick: () => {
214
+ beaconToFocusRef.current = index;
215
+ openBeaconStep(index);
216
+ },
217
+ ariaLabel: getBeaconLabel(labels.beacon, stepData.title),
218
+ withInitialFocus: beaconToFocusRef.current === index,
219
+ onInitialFocus: () => {
220
+ beaconToFocusRef.current = null;
221
+ },
222
+ pulseStyles: getStyles("beaconPulse"),
223
+ ...getStyles("beacon")
224
+ }, index);
225
+ }),
226
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Transition.Transition, {
227
+ mounted: showTooltip && !!displayStep,
228
+ duration: transitionProps?.duration ?? 200,
229
+ transition: transitionProps?.transition ?? "pop",
230
+ onExited: clearExitedTarget,
231
+ timingFunction: transitionProps?.timingFunction,
232
+ children: ({ transitionProperty, transitionDuration, transitionTimingFunction, ...transitionStyles }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FocusTrap.FocusTrap, {
233
+ active: focusTrapActive,
234
+ innerRef: tooltipMergedRef,
235
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Box.Box, {
236
+ ...getStyles("tooltip"),
237
+ role: "dialog",
238
+ tabIndex: -1,
239
+ "aria-labelledby": titleMounted ? titleId : void 0,
240
+ "aria-label": titleMounted ? void 0 : labels.stepCounter(displayStepIndex + 1, steps.length),
241
+ "aria-describedby": bodyMounted ? bodyId : void 0,
242
+ "data-centered": isCentered || void 0,
243
+ style: {
244
+ ...getStyles("tooltip").style,
245
+ ...isCentered ? {} : floatingStyles,
246
+ ...transitionStyles,
247
+ width: isCentered ? maxWidth : constrainedWidth,
248
+ transition: [...transitionProperty ? transitionProperty.split(",").map((prop) => `${prop.trim()} ${transitionDuration} ${transitionTimingFunction || "ease"}`) : [], ...stepMoving ? [
249
+ "top",
250
+ "left",
251
+ "translate"
252
+ ].map((prop) => `${prop} ${stepTransitionDuration}ms cubic-bezier(0.16, 1, 0.3, 1)`) : []].join(", ")
253
+ },
254
+ children: [
255
+ focusTrapActive && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FocusTrap.FocusTrap.InitialFocus, {}),
256
+ withCloseButton && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourCloseButton.TourCloseButton, {}),
257
+ displayStep?.title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourTitle.TourTitle, { children: displayStep.title }),
258
+ displayStep?.children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourBody.TourBody, { children: displayStep.children }),
259
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourNavigation.TourNavigation, {})
260
+ ]
261
+ })
262
+ })
263
+ })
264
+ ]
265
+ })
266
+ })
267
+ });
268
+ });
269
+ Tour.classes = require_Tour_module.default;
270
+ Tour.displayName = "@mantine/core/Tour";
271
+ Tour.Root = require_TourRoot.TourRoot;
272
+ Tour.Step = require_TourStep.TourStep;
273
+ Tour.Overlay = require_TourOverlay.TourOverlay;
274
+ Tour.Tooltip = require_TourTooltip.TourTooltip;
275
+ Tour.Title = require_TourTitle.TourTitle;
276
+ Tour.Body = require_TourBody.TourBody;
277
+ Tour.CloseButton = require_TourCloseButton.TourCloseButton;
278
+ Tour.Navigation = require_TourNavigation.TourNavigation;
279
+ Tour.Beacon = require_TourBeacon.TourBeacon;
280
+ //#endregion
281
+ exports.Tour = Tour;
282
+
283
+ //# sourceMappingURL=Tour.cjs.map