@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
@@ -3,13 +3,15 @@ const require_resolve_class_names = require("./get-class-name/resolve-class-name
3
3
  const require_resolve_styles = require("./get-style/resolve-styles/resolve-styles.cjs");
4
4
  const require_Mantine_context = require("../../MantineProvider/Mantine.context.cjs");
5
5
  const require_MantineThemeProvider = require("../../MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs");
6
+ const require_shallow_equal = require("../../utils/shallow-equal/shallow-equal.cjs");
6
7
  const require_get_class_name = require("./get-class-name/get-class-name.cjs");
7
8
  const require_resolve_style = require("./get-style/resolve-style/resolve-style.cjs");
8
9
  const require_get_style = require("./get-style/get-style.cjs");
9
10
  const require_merge_vars = require("./get-style/resolve-vars/merge-vars.cjs");
10
11
  const require_use_transformed_styles = require("./use-transformed-styles.cjs");
12
+ let react = require("react");
11
13
  //#region packages/@mantine/core/src/core/styles-api/use-styles/use-styles.ts
12
- function useStyles({ name, classes, props, stylesCtx, className, style, rootSelector = "root", unstyled, classNames, styles, vars, varsResolver, attributes }) {
14
+ function useStyles({ name, classes, props, stylesCtx, className, style, rootSelector = "root", unstyled, classNames, styles, vars, varsResolver, attributes, stable }) {
13
15
  const theme = require_MantineThemeProvider.useMantineTheme();
14
16
  const classNamesPrefix = require_Mantine_context.useMantineClassNamesPrefix();
15
17
  const withStaticClasses = require_Mantine_context.useMantineWithStaticClasses();
@@ -61,7 +63,7 @@ function useStyles({ name, classes, props, stylesCtx, className, style, rootSele
61
63
  style,
62
64
  theme
63
65
  });
64
- return (selector, options) => ({
66
+ const getStyles = (selector, options) => ({
65
67
  ...attributes?.[selector],
66
68
  className: require_get_class_name.getClassName({
67
69
  theme,
@@ -95,6 +97,34 @@ function useStyles({ name, classes, props, stylesCtx, className, style, rootSele
95
97
  resolvedRootStyle
96
98
  })
97
99
  });
100
+ return useStableGetStyles(getStyles, !!stable, [
101
+ theme,
102
+ classNamesPrefix,
103
+ withStaticClasses,
104
+ headless,
105
+ withStylesTransform ? props : null,
106
+ classes,
107
+ unstyled,
108
+ className,
109
+ rootSelector,
110
+ attributes,
111
+ stylesCtx,
112
+ resolvedClassNames,
113
+ resolvedThemeClassNames,
114
+ resolvedComponentStyles,
115
+ resolvedThemeStyles,
116
+ resolvedVars,
117
+ resolvedRootStyle
118
+ ]);
119
+ }
120
+ function useStableGetStyles(getStyles, stable, deps) {
121
+ const cache = (0, react.useRef)(null);
122
+ if (!stable) return getStyles;
123
+ if (!cache.current || !require_shallow_equal.shallowEqual(cache.current.deps, deps, 3)) cache.current = {
124
+ deps,
125
+ getStyles
126
+ };
127
+ return cache.current.getStyles;
98
128
  }
99
129
  //#endregion
100
130
  exports.useStyles = useStyles;
@@ -1 +1 @@
1
- {"version":3,"file":"use-styles.cjs","names":["useMantineTheme","useMantineClassNamesPrefix","useMantineWithStaticClasses","useMantineIsHeadless","useStylesTransform","resolveClassNames","resolveStyles","mergeVars","resolveStyle","getClassName","getStyle"],"sources":["../../../../src/core/styles-api/use-styles/use-styles.ts"],"sourcesContent":["import { CSSProperties } from 'react';\nimport type { MantineStyleProp } from '../../Box';\nimport { FactoryPayload } from '../../factory';\nimport {\n useMantineClassNamesPrefix,\n useMantineIsHeadless,\n useMantineTheme,\n useMantineWithStaticClasses,\n} from '../../MantineProvider';\nimport { PartialVarsResolver, VarsResolver } from '../create-vars-resolver/create-vars-resolver';\nimport {\n Attributes,\n ClassNames,\n ClassNamesArray,\n GetStylesApiOptions,\n Styles,\n} from '../styles-api.types';\nimport { getClassName } from './get-class-name/get-class-name';\nimport { resolveClassNames } from './get-class-name/resolve-class-names/resolve-class-names';\nimport { getStyle } from './get-style/get-style';\nimport { resolveStyle } from './get-style/resolve-style/resolve-style';\nimport { resolveStyles } from './get-style/resolve-styles/resolve-styles';\nimport { mergeVars } from './get-style/resolve-vars/merge-vars';\nimport { useStylesTransform } from './use-transformed-styles';\n\nexport interface UseStylesInput<Payload extends FactoryPayload> {\n name: string | (string | undefined)[];\n classes: Payload['stylesNames'] extends string ? Record<string, string> : never;\n props: Payload['props'];\n stylesCtx?: Payload['ctx'];\n className?: string | undefined;\n style?: MantineStyleProp;\n rootSelector?: Payload['stylesNames'];\n unstyled?: boolean;\n classNames?: ClassNames<Payload> | ClassNamesArray<Payload>;\n styles?: Styles<Payload>;\n vars?: PartialVarsResolver<Payload>;\n varsResolver?: VarsResolver<Payload>;\n attributes?: Attributes<Payload>;\n}\n\nexport type GetStylesApi<Payload extends FactoryPayload> = (\n selector: NonNullable<Payload['stylesNames']>,\n options?: GetStylesApiOptions\n) => {\n className: string;\n style: CSSProperties;\n};\n\nexport function useStyles<Payload extends FactoryPayload>({\n name,\n classes,\n props,\n stylesCtx,\n className,\n style,\n rootSelector = 'root' as NonNullable<Payload['stylesNames']>,\n unstyled,\n classNames,\n styles,\n vars,\n varsResolver,\n attributes,\n}: UseStylesInput<Payload>): GetStylesApi<Payload> {\n const theme = useMantineTheme();\n const classNamesPrefix = useMantineClassNamesPrefix();\n const withStaticClasses = useMantineWithStaticClasses();\n const headless = useMantineIsHeadless();\n const themeName = (Array.isArray(name) ? name : [name]).filter((n) => n) as string[];\n const { withStylesTransform, getTransformedStyles } = useStylesTransform({\n props,\n stylesCtx,\n themeName,\n theme,\n });\n\n const resolvedClassNames = resolveClassNames({ theme, classNames, props, stylesCtx });\n const resolvedThemeClassNames = themeName.map((n) =>\n resolveClassNames({ theme, classNames: theme.components[n]?.classNames, props, stylesCtx })\n );\n\n const resolvedComponentStyles = withStylesTransform\n ? {}\n : resolveStyles({ theme, styles, props, stylesCtx });\n\n const resolvedThemeStyles: Record<string, any> = {};\n\n if (!withStylesTransform) {\n for (const n of themeName) {\n const resolved = resolveStyles({\n theme,\n styles: theme.components[n]?.styles,\n props,\n stylesCtx,\n });\n\n for (const key of Object.keys(resolved)) {\n resolvedThemeStyles[key] = { ...resolvedThemeStyles[key], ...resolved[key] };\n }\n }\n }\n\n const resolvedVars = mergeVars([\n headless ? {} : varsResolver?.(theme, props, stylesCtx),\n ...themeName.map((n) => theme.components?.[n]?.vars?.(theme, props, stylesCtx)),\n vars?.(theme, props, stylesCtx),\n ]);\n\n const resolvedRootStyle = resolveStyle({ style, theme });\n\n return (selector, options) => ({\n ...attributes?.[selector],\n\n className: getClassName({\n theme,\n options,\n themeName,\n selector,\n classNamesPrefix,\n resolvedClassNames,\n resolvedThemeClassNames,\n classes,\n unstyled,\n className,\n rootSelector,\n props,\n stylesCtx,\n withStaticClasses,\n headless,\n transformedStyles: getTransformedStyles([options?.styles, styles]),\n }),\n\n style: getStyle({\n theme,\n selector,\n options,\n props,\n stylesCtx,\n rootSelector,\n withStylesTransform,\n resolvedStyles: resolvedComponentStyles,\n resolvedThemeStyles,\n resolvedVars,\n resolvedRootStyle,\n }),\n });\n}\n"],"mappings":";;;;;;;;;;;AAiDA,SAAgB,UAA0C,EACxD,MACA,SACA,OACA,WACA,WACA,OACA,eAAe,QACf,UACA,YACA,QACA,MACA,cACA,cACiD;CACjD,MAAM,QAAQA,6BAAAA,gBAAgB;CAC9B,MAAM,mBAAmBC,wBAAAA,2BAA2B;CACpD,MAAM,oBAAoBC,wBAAAA,4BAA4B;CACtD,MAAM,WAAWC,wBAAAA,qBAAqB;CACtC,MAAM,aAAa,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAA,CAAG,QAAQ,MAAM,CAAC;CACvE,MAAM,EAAE,qBAAqB,yBAAyBC,+BAAAA,mBAAmB;EACvE;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,qBAAqBC,4BAAAA,kBAAkB;EAAE;EAAO;EAAY;EAAO;CAAU,CAAC;CACpF,MAAM,0BAA0B,UAAU,KAAK,MAC7CA,4BAAAA,kBAAkB;EAAE;EAAO,YAAY,MAAM,WAAW,EAAE,EAAE;EAAY;EAAO;CAAU,CAAC,CAC5F;CAEA,MAAM,0BAA0B,sBAC5B,CAAC,IACDC,uBAAAA,cAAc;EAAE;EAAO;EAAQ;EAAO;CAAU,CAAC;CAErD,MAAM,sBAA2C,CAAC;CAElD,IAAI,CAAC,qBACH,KAAK,MAAM,KAAK,WAAW;EACzB,MAAM,WAAWA,uBAAAA,cAAc;GAC7B;GACA,QAAQ,MAAM,WAAW,EAAE,EAAE;GAC7B;GACA;EACF,CAAC;EAED,KAAK,MAAM,OAAO,OAAO,KAAK,QAAQ,GACpC,oBAAoB,OAAO;GAAE,GAAG,oBAAoB;GAAM,GAAG,SAAS;EAAK;CAE/E;CAGF,MAAM,eAAeC,mBAAAA,UAAU;EAC7B,WAAW,CAAC,IAAI,eAAe,OAAO,OAAO,SAAS;EACtD,GAAG,UAAU,KAAK,MAAM,MAAM,aAAa,EAAE,EAAE,OAAO,OAAO,OAAO,SAAS,CAAC;EAC9E,OAAO,OAAO,OAAO,SAAS;CAChC,CAAC;CAED,MAAM,oBAAoBC,sBAAAA,aAAa;EAAE;EAAO;CAAM,CAAC;CAEvD,QAAQ,UAAU,aAAa;EAC7B,GAAG,aAAa;EAEhB,WAAWC,uBAAAA,aAAa;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,mBAAmB,qBAAqB,CAAC,SAAS,QAAQ,MAAM,CAAC;EACnE,CAAC;EAED,OAAOC,kBAAAA,SAAS;GACd;GACA;GACA;GACA;GACA;GACA;GACA;GACA,gBAAgB;GAChB;GACA;GACA;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"use-styles.cjs","names":["useMantineTheme","useMantineClassNamesPrefix","useMantineWithStaticClasses","useMantineIsHeadless","useStylesTransform","resolveClassNames","resolveStyles","mergeVars","resolveStyle","getClassName","getStyle","useRef","shallowEqual"],"sources":["../../../../src/core/styles-api/use-styles/use-styles.ts"],"sourcesContent":["import { CSSProperties, useRef } from 'react';\nimport type { MantineStyleProp } from '../../Box';\nimport { FactoryPayload } from '../../factory';\nimport {\n useMantineClassNamesPrefix,\n useMantineIsHeadless,\n useMantineTheme,\n useMantineWithStaticClasses,\n} from '../../MantineProvider';\nimport { shallowEqual } from '../../utils/shallow-equal/shallow-equal';\nimport { PartialVarsResolver, VarsResolver } from '../create-vars-resolver/create-vars-resolver';\nimport {\n Attributes,\n ClassNames,\n ClassNamesArray,\n GetStylesApiOptions,\n Styles,\n} from '../styles-api.types';\nimport { getClassName } from './get-class-name/get-class-name';\nimport { resolveClassNames } from './get-class-name/resolve-class-names/resolve-class-names';\nimport { getStyle } from './get-style/get-style';\nimport { resolveStyle } from './get-style/resolve-style/resolve-style';\nimport { resolveStyles } from './get-style/resolve-styles/resolve-styles';\nimport { mergeVars } from './get-style/resolve-vars/merge-vars';\nimport { useStylesTransform } from './use-transformed-styles';\n\nexport interface UseStylesInput<Payload extends FactoryPayload> {\n name: string | (string | undefined)[];\n classes: Payload['stylesNames'] extends string ? Record<string, string> : never;\n props: Payload['props'];\n stylesCtx?: Payload['ctx'];\n className?: string | undefined;\n style?: MantineStyleProp;\n rootSelector?: Payload['stylesNames'];\n unstyled?: boolean;\n classNames?: ClassNames<Payload> | ClassNamesArray<Payload>;\n styles?: Styles<Payload>;\n vars?: PartialVarsResolver<Payload>;\n varsResolver?: VarsResolver<Payload>;\n attributes?: Attributes<Payload>;\n stable?: boolean;\n}\n\nexport type GetStylesApi<Payload extends FactoryPayload> = (\n selector: NonNullable<Payload['stylesNames']>,\n options?: GetStylesApiOptions\n) => {\n className: string;\n style: CSSProperties;\n};\n\nexport function useStyles<Payload extends FactoryPayload>({\n name,\n classes,\n props,\n stylesCtx,\n className,\n style,\n rootSelector = 'root' as NonNullable<Payload['stylesNames']>,\n unstyled,\n classNames,\n styles,\n vars,\n varsResolver,\n attributes,\n stable,\n}: UseStylesInput<Payload>): GetStylesApi<Payload> {\n const theme = useMantineTheme();\n const classNamesPrefix = useMantineClassNamesPrefix();\n const withStaticClasses = useMantineWithStaticClasses();\n const headless = useMantineIsHeadless();\n const themeName = (Array.isArray(name) ? name : [name]).filter((n) => n) as string[];\n const { withStylesTransform, getTransformedStyles } = useStylesTransform({\n props,\n stylesCtx,\n themeName,\n theme,\n });\n\n const resolvedClassNames = resolveClassNames({ theme, classNames, props, stylesCtx });\n const resolvedThemeClassNames = themeName.map((n) =>\n resolveClassNames({ theme, classNames: theme.components[n]?.classNames, props, stylesCtx })\n );\n\n const resolvedComponentStyles = withStylesTransform\n ? {}\n : resolveStyles({ theme, styles, props, stylesCtx });\n\n const resolvedThemeStyles: Record<string, any> = {};\n\n if (!withStylesTransform) {\n for (const n of themeName) {\n const resolved = resolveStyles({\n theme,\n styles: theme.components[n]?.styles,\n props,\n stylesCtx,\n });\n\n for (const key of Object.keys(resolved)) {\n resolvedThemeStyles[key] = { ...resolvedThemeStyles[key], ...resolved[key] };\n }\n }\n }\n\n const resolvedVars = mergeVars([\n headless ? {} : varsResolver?.(theme, props, stylesCtx),\n ...themeName.map((n) => theme.components?.[n]?.vars?.(theme, props, stylesCtx)),\n vars?.(theme, props, stylesCtx),\n ]);\n\n const resolvedRootStyle = resolveStyle({ style, theme });\n\n const getStyles: GetStylesApi<Payload> = (selector, options) => ({\n ...attributes?.[selector],\n\n className: getClassName({\n theme,\n options,\n themeName,\n selector,\n classNamesPrefix,\n resolvedClassNames,\n resolvedThemeClassNames,\n classes,\n unstyled,\n className,\n rootSelector,\n props,\n stylesCtx,\n withStaticClasses,\n headless,\n transformedStyles: getTransformedStyles([options?.styles, styles]),\n }),\n\n style: getStyle({\n theme,\n selector,\n options,\n props,\n stylesCtx,\n rootSelector,\n withStylesTransform,\n resolvedStyles: resolvedComponentStyles,\n resolvedThemeStyles,\n resolvedVars,\n resolvedRootStyle,\n }),\n });\n\n return useStableGetStyles(getStyles, !!stable, [\n theme,\n classNamesPrefix,\n withStaticClasses,\n headless,\n withStylesTransform ? props : null,\n classes,\n unstyled,\n className,\n rootSelector,\n attributes,\n stylesCtx,\n resolvedClassNames,\n resolvedThemeClassNames,\n resolvedComponentStyles,\n resolvedThemeStyles,\n resolvedVars,\n resolvedRootStyle,\n ]);\n}\n\nfunction useStableGetStyles<Payload extends FactoryPayload>(\n getStyles: GetStylesApi<Payload>,\n stable: boolean,\n deps: unknown[]\n): GetStylesApi<Payload> {\n const cache = useRef<{ deps: unknown[]; getStyles: GetStylesApi<Payload> }>(null);\n\n if (!stable) {\n return getStyles;\n }\n\n if (!cache.current || !shallowEqual(cache.current.deps, deps, 3)) {\n cache.current = { deps, getStyles };\n }\n\n return cache.current.getStyles;\n}\n"],"mappings":";;;;;;;;;;;;;AAmDA,SAAgB,UAA0C,EACxD,MACA,SACA,OACA,WACA,WACA,OACA,eAAe,QACf,UACA,YACA,QACA,MACA,cACA,YACA,UACiD;CACjD,MAAM,QAAQA,6BAAAA,gBAAgB;CAC9B,MAAM,mBAAmBC,wBAAAA,2BAA2B;CACpD,MAAM,oBAAoBC,wBAAAA,4BAA4B;CACtD,MAAM,WAAWC,wBAAAA,qBAAqB;CACtC,MAAM,aAAa,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAA,CAAG,QAAQ,MAAM,CAAC;CACvE,MAAM,EAAE,qBAAqB,yBAAyBC,+BAAAA,mBAAmB;EACvE;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,qBAAqBC,4BAAAA,kBAAkB;EAAE;EAAO;EAAY;EAAO;CAAU,CAAC;CACpF,MAAM,0BAA0B,UAAU,KAAK,MAC7CA,4BAAAA,kBAAkB;EAAE;EAAO,YAAY,MAAM,WAAW,EAAE,EAAE;EAAY;EAAO;CAAU,CAAC,CAC5F;CAEA,MAAM,0BAA0B,sBAC5B,CAAC,IACDC,uBAAAA,cAAc;EAAE;EAAO;EAAQ;EAAO;CAAU,CAAC;CAErD,MAAM,sBAA2C,CAAC;CAElD,IAAI,CAAC,qBACH,KAAK,MAAM,KAAK,WAAW;EACzB,MAAM,WAAWA,uBAAAA,cAAc;GAC7B;GACA,QAAQ,MAAM,WAAW,EAAE,EAAE;GAC7B;GACA;EACF,CAAC;EAED,KAAK,MAAM,OAAO,OAAO,KAAK,QAAQ,GACpC,oBAAoB,OAAO;GAAE,GAAG,oBAAoB;GAAM,GAAG,SAAS;EAAK;CAE/E;CAGF,MAAM,eAAeC,mBAAAA,UAAU;EAC7B,WAAW,CAAC,IAAI,eAAe,OAAO,OAAO,SAAS;EACtD,GAAG,UAAU,KAAK,MAAM,MAAM,aAAa,EAAE,EAAE,OAAO,OAAO,OAAO,SAAS,CAAC;EAC9E,OAAO,OAAO,OAAO,SAAS;CAChC,CAAC;CAED,MAAM,oBAAoBC,sBAAAA,aAAa;EAAE;EAAO;CAAM,CAAC;CAEvD,MAAM,aAAoC,UAAU,aAAa;EAC/D,GAAG,aAAa;EAEhB,WAAWC,uBAAAA,aAAa;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,mBAAmB,qBAAqB,CAAC,SAAS,QAAQ,MAAM,CAAC;EACnE,CAAC;EAED,OAAOC,kBAAAA,SAAS;GACd;GACA;GACA;GACA;GACA;GACA;GACA;GACA,gBAAgB;GAChB;GACA;GACA;EACF,CAAC;CACH;CAEA,OAAO,mBAAmB,WAAW,CAAC,CAAC,QAAQ;EAC7C;EACA;EACA;EACA;EACA,sBAAsB,QAAQ;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH;AAEA,SAAS,mBACP,WACA,QACA,MACuB;CACvB,MAAM,SAAA,GAAQC,MAAAA,OAAAA,CAA8D,IAAI;CAEhF,IAAI,CAAC,QACH,OAAO;CAGT,IAAI,CAAC,MAAM,WAAW,CAACC,sBAAAA,aAAa,MAAM,QAAQ,MAAM,MAAM,CAAC,GAC7D,MAAM,UAAU;EAAE;EAAM;CAAU;CAGpC,OAAO,MAAM,QAAQ;AACvB"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ //#region packages/@mantine/core/src/core/utils/shallow-equal/shallow-equal.ts
3
+ function shallowEqual(a, b, depth = 1) {
4
+ if (Object.is(a, b)) return true;
5
+ if (depth === 0 || typeof a !== "object" || typeof b !== "object" || a === null || b === null) return false;
6
+ if (Array.isArray(a) || Array.isArray(b)) {
7
+ if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false;
8
+ for (let i = 0; i < a.length; i += 1) if (!shallowEqual(a[i], b[i], depth - 1)) return false;
9
+ return true;
10
+ }
11
+ const aKeys = Object.keys(a);
12
+ if (aKeys.length !== Object.keys(b).length) return false;
13
+ for (const key of aKeys) if (!Object.hasOwn(b, key) || !shallowEqual(a[key], b[key], depth - 1)) return false;
14
+ return true;
15
+ }
16
+ //#endregion
17
+ exports.shallowEqual = shallowEqual;
18
+
19
+ //# sourceMappingURL=shallow-equal.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shallow-equal.cjs","names":[],"sources":["../../../../src/core/utils/shallow-equal/shallow-equal.ts"],"sourcesContent":["export function shallowEqual(a: unknown, b: unknown, depth = 1): boolean {\n if (Object.is(a, b)) {\n return true;\n }\n\n if (depth === 0 || typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) {\n return false;\n }\n\n if (Array.isArray(a) || Array.isArray(b)) {\n if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i += 1) {\n if (!shallowEqual(a[i], b[i], depth - 1)) {\n return false;\n }\n }\n\n return true;\n }\n\n const aKeys = Object.keys(a);\n\n if (aKeys.length !== Object.keys(b).length) {\n return false;\n }\n\n for (const key of aKeys) {\n if (!Object.hasOwn(b, key) || !shallowEqual((a as any)[key], (b as any)[key], depth - 1)) {\n return false;\n }\n }\n\n return true;\n}\n"],"mappings":";;AAAA,SAAgB,aAAa,GAAY,GAAY,QAAQ,GAAY;CACvE,IAAI,OAAO,GAAG,GAAG,CAAC,GAChB,OAAO;CAGT,IAAI,UAAU,KAAK,OAAO,MAAM,YAAY,OAAO,MAAM,YAAY,MAAM,QAAQ,MAAM,MACvF,OAAO;CAGT,IAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,GAAG;EACxC,IAAI,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,QAC3D,OAAO;EAGT,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,GACjC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,GACrC,OAAO;EAIX,OAAO;CACT;CAEA,MAAM,QAAQ,OAAO,KAAK,CAAC;CAE3B,IAAI,MAAM,WAAW,OAAO,KAAK,CAAC,CAAC,CAAC,QAClC,OAAO;CAGT,KAAK,MAAM,OAAO,OAChB,IAAI,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK,CAAC,aAAc,EAAU,MAAO,EAAU,MAAM,QAAQ,CAAC,GACrF,OAAO;CAIX,OAAO;AACT"}
package/cjs/index.cjs CHANGED
@@ -157,6 +157,7 @@ const require_AppShellMain = require("./components/AppShell/AppShellMain/AppShel
157
157
  const require_AppShellNavbar = require("./components/AppShell/AppShellNavbar/AppShellNavbar.cjs");
158
158
  const require_AppShellSection = require("./components/AppShell/AppShellSection/AppShellSection.cjs");
159
159
  const require_AppShell = require("./components/AppShell/AppShell.cjs");
160
+ const require_use_app_shell_resize = require("./components/AppShell/use-app-shell-resize/use-app-shell-resize.cjs");
160
161
  const require_AspectRatio = require("./components/AspectRatio/AspectRatio.cjs");
161
162
  const require_get_parsed_combobox_data = require("./components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.cjs");
162
163
  const require_get_options_lockup = require("./components/Combobox/get-options-lockup/get-options-lockup.cjs");
@@ -252,8 +253,8 @@ const require_Grid = require("./components/Grid/Grid.cjs");
252
253
  const require_Mark = require("./components/Mark/Mark.cjs");
253
254
  const require_Highlight = require("./components/Highlight/Highlight.cjs");
254
255
  const require_HoverCard_context = require("./components/HoverCard/HoverCard.context.cjs");
255
- const require_HoverCardGroup = require("./components/HoverCard/HoverCardGroup/HoverCardGroup.cjs");
256
256
  const require_HoverCardDropdown = require("./components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs");
257
+ const require_HoverCardGroup = require("./components/HoverCard/HoverCardGroup/HoverCardGroup.cjs");
257
258
  const require_HoverCardTarget = require("./components/HoverCard/HoverCardTarget/HoverCardTarget.cjs");
258
259
  const require_HoverCard = require("./components/HoverCard/HoverCard.cjs");
259
260
  const require_Image = require("./components/Image/Image.cjs");
@@ -374,6 +375,24 @@ const require_ThemeIcon = require("./components/ThemeIcon/ThemeIcon.cjs");
374
375
  const require_TimelineItem = require("./components/Timeline/TimelineItem/TimelineItem.cjs");
375
376
  const require_Timeline = require("./components/Timeline/Timeline.cjs");
376
377
  const require_Title = require("./components/Title/Title.cjs");
378
+ const require_Toggle = require("./components/Toggle/Toggle.cjs");
379
+ const require_ToolbarDivider = require("./components/Toolbar/ToolbarDivider/ToolbarDivider.cjs");
380
+ const require_ToolbarGroup = require("./components/Toolbar/ToolbarGroup/ToolbarGroup.cjs");
381
+ const require_ToolbarToggle = require("./components/Toolbar/ToolbarToggle/ToolbarToggle.cjs");
382
+ const require_ToolbarToggleGroup = require("./components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.cjs");
383
+ const require_ToolbarToggleItem = require("./components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.cjs");
384
+ const require_Toolbar = require("./components/Toolbar/Toolbar.cjs");
385
+ const require_Tour_context = require("./components/Tour/Tour.context.cjs");
386
+ const require_TourBeacon = require("./components/Tour/TourBeacon/TourBeacon.cjs");
387
+ const require_TourBody = require("./components/Tour/TourBody/TourBody.cjs");
388
+ const require_TourCloseButton = require("./components/Tour/TourCloseButton/TourCloseButton.cjs");
389
+ const require_TourNavigation = require("./components/Tour/TourNavigation/TourNavigation.cjs");
390
+ const require_TourOverlay = require("./components/Tour/TourOverlay/TourOverlay.cjs");
391
+ const require_TourRoot = require("./components/Tour/TourRoot/TourRoot.cjs");
392
+ const require_TourStep = require("./components/Tour/TourStep/TourStep.cjs");
393
+ const require_TourTitle = require("./components/Tour/TourTitle/TourTitle.cjs");
394
+ const require_TourTooltip = require("./components/Tour/TourTooltip/TourTooltip.cjs");
395
+ const require_Tour = require("./components/Tour/Tour.cjs");
377
396
  const require_use_tree = require("./components/Tree/use-tree.cjs");
378
397
  const require_Tree = require("./components/Tree/Tree.cjs");
379
398
  const require_merge_async_children = require("./components/Tree/merge-async-children/merge-async-children.cjs");
@@ -630,7 +649,7 @@ Object.defineProperty(exports, "RemoveScroll", {
630
649
  });
631
650
  exports.RingProgress = require_RingProgress.RingProgress;
632
651
  exports.RollingNumber = require_RollingNumber.RollingNumber;
633
- exports.STYlE_PROPS_DATA = require_style_props_data.STYlE_PROPS_DATA;
652
+ exports.STYLE_PROPS_DATA = require_style_props_data.STYLE_PROPS_DATA;
634
653
  exports.ScrollArea = require_ScrollArea.ScrollArea;
635
654
  exports.ScrollAreaAutosize = require_ScrollArea.ScrollAreaAutosize;
636
655
  exports.Scroller = require_Scroller.Scroller;
@@ -673,10 +692,28 @@ exports.ThemeIcon = require_ThemeIcon.ThemeIcon;
673
692
  exports.Timeline = require_Timeline.Timeline;
674
693
  exports.TimelineItem = require_TimelineItem.TimelineItem;
675
694
  exports.Title = require_Title.Title;
695
+ exports.Toggle = require_Toggle.Toggle;
696
+ exports.Toolbar = require_Toolbar.Toolbar;
697
+ exports.ToolbarDivider = require_ToolbarDivider.ToolbarDivider;
698
+ exports.ToolbarGroup = require_ToolbarGroup.ToolbarGroup;
699
+ exports.ToolbarToggle = require_ToolbarToggle.ToolbarToggle;
700
+ exports.ToolbarToggleGroup = require_ToolbarToggleGroup.ToolbarToggleGroup;
701
+ exports.ToolbarToggleItem = require_ToolbarToggleItem.ToolbarToggleItem;
676
702
  exports.Tooltip = require_Tooltip.Tooltip;
677
703
  exports.TooltipFloating = require_TooltipFloating.TooltipFloating;
678
704
  exports.TooltipGroup = require_TooltipGroup.TooltipGroup;
679
705
  exports.TooltipGroupContext = require_TooltipGroup.TooltipGroupContext;
706
+ exports.Tour = require_Tour.Tour;
707
+ exports.TourBeacon = require_TourBeacon.TourBeacon;
708
+ exports.TourBody = require_TourBody.TourBody;
709
+ exports.TourCloseButton = require_TourCloseButton.TourCloseButton;
710
+ exports.TourNavigation = require_TourNavigation.TourNavigation;
711
+ exports.TourOverlay = require_TourOverlay.TourOverlay;
712
+ exports.TourProvider = require_Tour_context.TourProvider;
713
+ exports.TourRoot = require_TourRoot.TourRoot;
714
+ exports.TourStep = require_TourStep.TourStep;
715
+ exports.TourTitle = require_TourTitle.TourTitle;
716
+ exports.TourTooltip = require_TourTooltip.TourTooltip;
680
717
  exports.Transition = require_Transition.Transition;
681
718
  exports.Tree = require_Tree.Tree;
682
719
  exports.TreeSelect = require_TreeSelect.TreeSelect;
@@ -700,6 +737,7 @@ exports.createVarsResolver = require_create_vars_resolver.createVarsResolver;
700
737
  exports.darken = require_darken.darken;
701
738
  exports.deepMerge = require_deep_merge.deepMerge;
702
739
  exports.defaultCssVariablesResolver = require_default_css_variables_resolver.defaultCssVariablesResolver;
740
+ exports.defaultLabels = require_Tour_context.defaultLabels;
703
741
  exports.defaultLoaders = require_Loader.defaultLoaders;
704
742
  exports.defaultOptionsFilter = require_default_options_filter.defaultOptionsFilter;
705
743
  exports.defaultTreeNodeFilter = require_filter_tree_data.defaultTreeNodeFilter;
@@ -783,6 +821,7 @@ exports.toRgba = require_to_rgba.toRgba;
783
821
  exports.useAccordionContext = require_Accordion_context.useAccordionContext;
784
822
  exports.useAccordionItemContext = require_AccordionItem_context.useAccordionItemContext;
785
823
  exports.useAppShellContext = require_AppShell_context.useAppShellContext;
824
+ exports.useAppShellResize = require_use_app_shell_resize.useAppShellResize;
786
825
  exports.useCombobox = require_use_combobox.useCombobox;
787
826
  exports.useComboboxContext = require_Combobox_context.useComboboxContext;
788
827
  exports.useComboboxTargetProps = require_use_combobox_target_props.useComboboxTargetProps;
@@ -831,6 +870,7 @@ exports.useStepperContext = require_Stepper_context.useStepperContext;
831
870
  exports.useStyles = require_use_styles.useStyles;
832
871
  exports.useTableContext = require_Table_context.useTableContext;
833
872
  exports.useTabsContext = require_Tabs_context.useTabsContext;
873
+ exports.useTourContext = require_Tour_context.useTourContext;
834
874
  exports.useTree = require_use_tree.useTree;
835
875
  exports.useVirtualizedCombobox = require_use_virtualized_combobox.useVirtualizedCombobox;
836
876
  exports.v8CssVariablesResolver = require_v8_css_variables_resolver.v8CssVariablesResolver;
@@ -16,8 +16,6 @@ import { jsx } from "react/jsx-runtime";
16
16
  //#region packages/@mantine/core/src/components/ActionBar/ActionBar.tsx
17
17
  const defaultProps = {
18
18
  withBorder: true,
19
- py: "xs",
20
- px: "sm",
21
19
  position: {
22
20
  bottom: 30,
23
21
  left: 0,
@@ -64,7 +62,6 @@ const ActionBar = factory((_props) => {
64
62
  className: RemoveScroll.classNames.fullWidth,
65
63
  children: /* @__PURE__ */ jsx(Transition, {
66
64
  keepMounted,
67
- keepMountedMode: "display-none",
68
65
  mounted: opened,
69
66
  ...transitionProps,
70
67
  children: (transitionStyles) => /* @__PURE__ */ jsx(ActionBarProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.mjs","names":["classes"],"sources":["../../../src/components/ActionBar/ActionBar.tsx"],"sourcesContent":["import { useEffect, useEffectEvent } from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport {\n BoxProps,\n ElementProps,\n factory,\n Factory,\n getDefaultZIndex,\n MantineRadius,\n MantineShadow,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { Affix, AffixBaseProps } from '../Affix';\nimport { Paper, PaperBaseProps } from '../Paper';\nimport { Transition, TransitionOverride } from '../Transition';\nimport { ActionBarProvider } from './ActionBar.context';\nimport {\n ActionBarCloseButton,\n ActionBarCloseButtonStylesNames,\n} from './ActionBarCloseButton/ActionBarCloseButton';\nimport { ActionBarDivider, ActionBarDividerStylesNames } from './ActionBarDivider/ActionBarDivider';\nimport classes from './ActionBar.module.css';\n\nexport type ActionBarStylesNames =\n | 'root'\n | ActionBarDividerStylesNames\n | ActionBarCloseButtonStylesNames;\n\nexport interface ActionBarProps\n extends\n BoxProps,\n AffixBaseProps,\n PaperBaseProps,\n StylesApiProps<ActionBarFactory>,\n ElementProps<'div'> {\n /** Controls visibility */\n opened: boolean;\n\n /** Called when close button is clicked or Escape is pressed */\n onClose?: () => void;\n\n /** Props passed down to the `Transition` component, `{ transition: 'pop', duration: 200 }` by default */\n transitionProps?: TransitionOverride;\n\n /** Key of `theme.shadows` or any valid CSS `box-shadow` value */\n shadow?: MantineShadow;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` */\n radius?: MantineRadius;\n\n /** Determines whether the action bar should be closed when `Escape` key is pressed, `false` by default */\n closeOnEscape?: boolean;\n\n /** `aria-label` of the actions group, `'Actions'` by default */\n 'aria-label'?: string;\n\n /** If set, the component uses `display: none` to hide the root element instead of removing the DOM node, `false` by default */\n keepMounted?: boolean;\n\n children: React.ReactNode;\n}\n\nexport type ActionBarFactory = Factory<{\n props: ActionBarProps;\n ref: HTMLDivElement;\n stylesNames: ActionBarStylesNames;\n staticComponents: {\n Divider: typeof ActionBarDivider;\n CloseButton: typeof ActionBarCloseButton;\n };\n}>;\n\nconst defaultProps = {\n withBorder: true,\n py: 'xs',\n px: 'sm',\n position: { bottom: 30, left: 0, right: 0 },\n transitionProps: { transition: 'pop', duration: 200 },\n closeOnEscape: false,\n withinPortal: true,\n 'aria-label': 'Actions',\n zIndex: getDefaultZIndex('modal'),\n} satisfies Partial<ActionBarProps>;\n\nexport const ActionBar = factory<ActionBarFactory>((_props) => {\n const props = useProps('ActionBar', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n zIndex,\n position,\n keepMounted,\n opened,\n transitionProps,\n withinPortal,\n children,\n onClose,\n portalProps,\n closeOnEscape,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<ActionBarFactory>({\n name: 'ActionBar',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n });\n\n const handleEscape = useEffectEvent((event: KeyboardEvent) => {\n if (event.key === 'Escape' && !event.isComposing) {\n onClose?.();\n }\n });\n\n useEffect(() => {\n if (!closeOnEscape || !opened) {\n return undefined;\n }\n\n window.addEventListener('keydown', handleEscape, { passive: true });\n return () => window.removeEventListener('keydown', handleEscape);\n }, [closeOnEscape, opened]);\n\n return (\n <Affix\n zIndex={zIndex}\n position={position}\n withinPortal={withinPortal}\n portalProps={portalProps}\n unstyled={unstyled}\n // The default position is anchored to both edges, so the bar is a full width fixed\n // element. Without this it shifts by the scrollbar width whenever a Modal or Drawer\n // locks scrolling – which is exactly the flow ActionBar exists for (select rows, run a\n // bulk action, confirm it in a modal).\n className={RemoveScroll.classNames.fullWidth}\n >\n {/* `keepMountedMode` is pinned to `display-none`: the documented contract is that the\n bar stays in the DOM and is merely hidden, and `Transition`'s default `activity`\n mode tears down the effects of everything inside it instead. */}\n <Transition\n keepMounted={keepMounted}\n keepMountedMode=\"display-none\"\n mounted={opened}\n {...transitionProps}\n >\n {(transitionStyles) => (\n <ActionBarProvider value={{ onClose, getStyles, unstyled }}>\n <Paper\n unstyled={unstyled}\n {...getStyles('root', { style: transitionStyles })}\n role=\"group\"\n {...others}\n >\n {children}\n </Paper>\n </ActionBarProvider>\n )}\n </Transition>\n </Affix>\n );\n});\n\nActionBar.classes = classes;\nActionBar.displayName = '@mantine/core/ActionBar';\nActionBar.Divider = ActionBarDivider;\nActionBar.CloseButton = ActionBarCloseButton;\n"],"mappings":";;;;;;;;;;;;;;;;AA0EA,MAAM,eAAe;CACnB,YAAY;CACZ,IAAI;CACJ,IAAI;CACJ,UAAU;EAAE,QAAQ;EAAI,MAAM;EAAG,OAAO;CAAE;CAC1C,iBAAiB;EAAE,YAAY;EAAO,UAAU;CAAI;CACpD,eAAe;CACf,cAAc;CACd,cAAc;CACd,QAAQ,iBAAiB,OAAO;AAClC;AAEA,MAAa,YAAY,SAA2B,WAAW;CAC7D,MAAM,QAAQ,SAAS,aAAa,cAAc,MAAM;CACxD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,QACA,UACA,aACA,QACA,iBACA,cACA,UACA,SACA,aACA,eACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA4B;EAC5C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,eAAe,gBAAgB,UAAyB;EAC5D,IAAI,MAAM,QAAQ,YAAY,CAAC,MAAM,aACnC,UAAU;CAEd,CAAC;CAED,gBAAgB;EACd,IAAI,CAAC,iBAAiB,CAAC,QACrB;EAGF,OAAO,iBAAiB,WAAW,cAAc,EAAE,SAAS,KAAK,CAAC;EAClE,aAAa,OAAO,oBAAoB,WAAW,YAAY;CACjE,GAAG,CAAC,eAAe,MAAM,CAAC;CAE1B,OACE,oBAAC,OAAD;EACU;EACE;EACI;EACD;EACH;EAKV,WAAW,aAAa,WAAW;EAKnC,UAAA,oBAAC,YAAD;GACe;GACb,iBAAgB;GAChB,SAAS;GACT,GAAI;GAEF,WAAA,qBACA,oBAAC,mBAAD;IAAmB,OAAO;KAAE;KAAS;KAAW;IAAS;IACvD,UAAA,oBAAC,OAAD;KACY;KACV,GAAI,UAAU,QAAQ,EAAE,OAAO,iBAAiB,CAAC;KACjD,MAAK;KACL,GAAI;KAEH;IACI,CAAA;GACU,CAAA;EAEX,CAAA;CACP,CAAA;AAEX,CAAC;AAED,UAAU,UAAUA;AACpB,UAAU,cAAc;AACxB,UAAU,UAAU;AACpB,UAAU,cAAc"}
1
+ {"version":3,"file":"ActionBar.mjs","names":["classes"],"sources":["../../../src/components/ActionBar/ActionBar.tsx"],"sourcesContent":["import { useEffect, useEffectEvent } from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport {\n BoxProps,\n ElementProps,\n factory,\n Factory,\n getDefaultZIndex,\n MantineRadius,\n MantineShadow,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { Affix, AffixBaseProps } from '../Affix';\nimport { Paper, PaperBaseProps } from '../Paper';\nimport { Transition, TransitionOverride } from '../Transition';\nimport { ActionBarProvider } from './ActionBar.context';\nimport {\n ActionBarCloseButton,\n ActionBarCloseButtonStylesNames,\n} from './ActionBarCloseButton/ActionBarCloseButton';\nimport { ActionBarDivider, ActionBarDividerStylesNames } from './ActionBarDivider/ActionBarDivider';\nimport classes from './ActionBar.module.css';\n\nexport type ActionBarStylesNames =\n | 'root'\n | ActionBarDividerStylesNames\n | ActionBarCloseButtonStylesNames;\n\nexport interface ActionBarProps\n extends\n BoxProps,\n AffixBaseProps,\n PaperBaseProps,\n StylesApiProps<ActionBarFactory>,\n ElementProps<'div'> {\n /** Controls visibility */\n opened: boolean;\n\n /** Called when close button is clicked or Escape is pressed */\n onClose?: () => void;\n\n /** Props passed down to the `Transition` component, `{ transition: 'pop', duration: 200 }` by default */\n transitionProps?: TransitionOverride;\n\n /** Key of `theme.shadows` or any valid CSS `box-shadow` value */\n shadow?: MantineShadow;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` */\n radius?: MantineRadius;\n\n /** Determines whether the action bar should be closed when `Escape` key is pressed, `false` by default */\n closeOnEscape?: boolean;\n\n /** `aria-label` of the actions group, `'Actions'` by default */\n 'aria-label'?: string;\n\n /** If set, the action bar is kept in the DOM when closed. React `Activity` is used to preserve its state while it is hidden, `false` by default */\n keepMounted?: boolean;\n\n children: React.ReactNode;\n}\n\nexport type ActionBarFactory = Factory<{\n props: ActionBarProps;\n ref: HTMLDivElement;\n stylesNames: ActionBarStylesNames;\n staticComponents: {\n Divider: typeof ActionBarDivider;\n CloseButton: typeof ActionBarCloseButton;\n };\n}>;\n\nconst defaultProps = {\n withBorder: true,\n position: { bottom: 30, left: 0, right: 0 },\n transitionProps: { transition: 'pop', duration: 200 },\n closeOnEscape: false,\n withinPortal: true,\n 'aria-label': 'Actions',\n zIndex: getDefaultZIndex('modal'),\n} satisfies Partial<ActionBarProps>;\n\nexport const ActionBar = factory<ActionBarFactory>((_props) => {\n const props = useProps('ActionBar', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n zIndex,\n position,\n keepMounted,\n opened,\n transitionProps,\n withinPortal,\n children,\n onClose,\n portalProps,\n closeOnEscape,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<ActionBarFactory>({\n name: 'ActionBar',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n });\n\n const handleEscape = useEffectEvent((event: KeyboardEvent) => {\n if (event.key === 'Escape' && !event.isComposing) {\n onClose?.();\n }\n });\n\n useEffect(() => {\n if (!closeOnEscape || !opened) {\n return undefined;\n }\n\n window.addEventListener('keydown', handleEscape, { passive: true });\n return () => window.removeEventListener('keydown', handleEscape);\n }, [closeOnEscape, opened]);\n\n return (\n <Affix\n zIndex={zIndex}\n position={position}\n withinPortal={withinPortal}\n portalProps={portalProps}\n unstyled={unstyled}\n className={RemoveScroll.classNames.fullWidth}\n >\n <Transition keepMounted={keepMounted} mounted={opened} {...transitionProps}>\n {(transitionStyles) => (\n <ActionBarProvider value={{ onClose, getStyles, unstyled }}>\n <Paper\n unstyled={unstyled}\n {...getStyles('root', { style: transitionStyles })}\n role=\"group\"\n {...others}\n >\n {children}\n </Paper>\n </ActionBarProvider>\n )}\n </Transition>\n </Affix>\n );\n});\n\nActionBar.classes = classes;\nActionBar.displayName = '@mantine/core/ActionBar';\nActionBar.Divider = ActionBarDivider;\nActionBar.CloseButton = ActionBarCloseButton;\n"],"mappings":";;;;;;;;;;;;;;;;AA0EA,MAAM,eAAe;CACnB,YAAY;CACZ,UAAU;EAAE,QAAQ;EAAI,MAAM;EAAG,OAAO;CAAE;CAC1C,iBAAiB;EAAE,YAAY;EAAO,UAAU;CAAI;CACpD,eAAe;CACf,cAAc;CACd,cAAc;CACd,QAAQ,iBAAiB,OAAO;AAClC;AAEA,MAAa,YAAY,SAA2B,WAAW;CAC7D,MAAM,QAAQ,SAAS,aAAa,cAAc,MAAM;CACxD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,QACA,UACA,aACA,QACA,iBACA,cACA,UACA,SACA,aACA,eACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA4B;EAC5C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,eAAe,gBAAgB,UAAyB;EAC5D,IAAI,MAAM,QAAQ,YAAY,CAAC,MAAM,aACnC,UAAU;CAEd,CAAC;CAED,gBAAgB;EACd,IAAI,CAAC,iBAAiB,CAAC,QACrB;EAGF,OAAO,iBAAiB,WAAW,cAAc,EAAE,SAAS,KAAK,CAAC;EAClE,aAAa,OAAO,oBAAoB,WAAW,YAAY;CACjE,GAAG,CAAC,eAAe,MAAM,CAAC;CAE1B,OACE,oBAAC,OAAD;EACU;EACE;EACI;EACD;EACH;EACV,WAAW,aAAa,WAAW;EAEnC,UAAA,oBAAC,YAAD;GAAyB;GAAa,SAAS;GAAQ,GAAI;GACvD,WAAA,qBACA,oBAAC,mBAAD;IAAmB,OAAO;KAAE;KAAS;KAAW;IAAS;IACvD,UAAA,oBAAC,OAAD;KACY;KACV,GAAI,UAAU,QAAQ,EAAE,OAAO,iBAAiB,CAAC;KACjD,MAAK;KACL,GAAI;KAEH;IACI,CAAA;GACU,CAAA;EAEX,CAAA;CACP,CAAA;AAEX,CAAC;AAED,UAAU,UAAUA;AACpB,UAAU,cAAc;AACxB,UAAU,UAAU;AACpB,UAAU,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.module.mjs","names":[],"sources":["../../../src/components/ActionBar/ActionBar.module.css"],"sourcesContent":[".root {\n display: flex;\n align-items: center;\n gap: var(--mantine-spacing-sm);\n width: fit-content;\n margin-inline: auto;\n}\n\n.divider {\n width: 1px;\n align-self: stretch;\n background-color: var(--mantine-color-default-border);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ActionBar.module.mjs","names":[],"sources":["../../../src/components/ActionBar/ActionBar.module.css"],"sourcesContent":[".root {\n display: flex;\n align-items: center;\n gap: var(--mantine-spacing-sm);\n width: fit-content;\n margin-inline: auto;\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);\n}\n\n.divider {\n width: 1px;\n align-self: stretch;\n background-color: var(--mantine-color-default-border);\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.context.mjs","names":[],"sources":["../../../src/components/AppShell/AppShell.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { AppShellFactory } from './AppShell';\n\nexport interface AppShellContextValue {\n getStyles: GetStylesApi<AppShellFactory>;\n withBorder: boolean | undefined;\n zIndex: string | number | undefined;\n disabled: boolean | undefined;\n offsetScrollbars: boolean | undefined;\n mode: 'fixed' | 'static';\n}\n\nexport const [AppShellProvider, useAppShellContext] = createSafeContext<AppShellContextValue>(\n 'AppShell was not found in tree'\n);\n"],"mappings":";;;AAYA,MAAa,CAAC,kBAAkB,sBAAsB,kBACpD,gCACF"}
1
+ {"version":3,"file":"AppShell.context.mjs","names":[],"sources":["../../../src/components/AppShell/AppShell.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { AppShellFactory } from './AppShell';\nimport type { AppShellResizeController, AppShellResizeSection } from './AppShell.types';\n\nexport interface AppShellContextValue {\n getStyles: GetStylesApi<AppShellFactory>;\n withBorder: boolean | undefined;\n zIndex: string | number | undefined;\n disabled: boolean | undefined;\n offsetScrollbars: boolean | undefined;\n mode: 'fixed' | 'static';\n resize: AppShellResizeController | undefined;\n rootRef: React.RefObject<HTMLDivElement | null>;\n resizeOffsets: Partial<Record<AppShellResizeSection, boolean>>;\n}\n\nexport const [AppShellProvider, useAppShellContext] = createSafeContext<AppShellContextValue>(\n 'AppShell was not found in tree'\n);\n"],"mappings":";;;AAgBA,MAAa,CAAC,kBAAkB,sBAAsB,kBACpD,gCACF"}
@@ -6,16 +6,19 @@ import { useStyles } from "../../core/styles-api/use-styles/use-styles.mjs";
6
6
  import { factory } from "../../core/factory/factory.mjs";
7
7
  import { Box } from "../../core/Box/Box.mjs";
8
8
  import { AppShellProvider } from "./AppShell.context.mjs";
9
+ import { RESIZE_SECTION_NAMES } from "./use-app-shell-resize/resize-section-config.mjs";
9
10
  import AppShell_module_default from "./AppShell.module.mjs";
10
11
  import { AppShellAside } from "./AppShellAside/AppShellAside.mjs";
11
12
  import { AppShellFooter } from "./AppShellFooter/AppShellFooter.mjs";
12
13
  import { AppShellHeader } from "./AppShellHeader/AppShellHeader.mjs";
13
14
  import { AppShellMain } from "./AppShellMain/AppShellMain.mjs";
14
15
  import { AppShellMediaStyles } from "./AppShellMediaStyles/AppShellMediaStyles.mjs";
16
+ import { escapeCssId } from "./AppShellMediaStyles/escape-css-id/escape-css-id.mjs";
15
17
  import { AppShellNavbar } from "./AppShellNavbar/AppShellNavbar.mjs";
16
18
  import { AppShellSection } from "./AppShellSection/AppShellSection.mjs";
17
19
  import { useResizing } from "./use-resizing/use-resizing.mjs";
18
- import { useId } from "@mantine/hooks";
20
+ import { useRef } from "react";
21
+ import { useId as useId$1, useMergedRef } from "@mantine/hooks";
19
22
  import { jsx, jsxs } from "react/jsx-runtime";
20
23
  //#region packages/@mantine/core/src/components/AppShell/AppShell.tsx
21
24
  const defaultProps = {
@@ -28,11 +31,12 @@ const defaultProps = {
28
31
  };
29
32
  const varsResolver = createVarsResolver((_, { transitionDuration, transitionTimingFunction }) => ({ root: {
30
33
  "--app-shell-transition-duration": `${transitionDuration}ms`,
31
- "--app-shell-transition-timing-function": transitionTimingFunction
34
+ "--app-shell-transition-timing-function": transitionTimingFunction,
35
+ "--app-shell-resize-handle-size": void 0
32
36
  } }));
33
37
  const AppShell = factory((_props) => {
34
38
  const props = useProps("AppShell", defaultProps, _props);
35
- const { classNames, className, style, styles, unstyled, vars, navbar, withBorder, padding, transitionDuration, transitionTimingFunction, header, zIndex, layout, disabled, aside, footer, offsetScrollbars = true, mode, mod, attributes, id, ...others } = props;
39
+ const { classNames, className, style, styles, unstyled, vars, navbar, withBorder, padding, transitionDuration, transitionTimingFunction, header, zIndex, layout, disabled, aside, footer, offsetScrollbars = true, mode, mod, attributes, id, resize, ref, ...others } = props;
36
40
  const getStyles = useStyles({
37
41
  name: "AppShell",
38
42
  classes: AppShell_module_default,
@@ -46,11 +50,29 @@ const AppShell = factory((_props) => {
46
50
  vars,
47
51
  varsResolver
48
52
  });
53
+ const resizeKey = resize ? RESIZE_SECTION_NAMES.map((section) => resize.sizes[section]).join("|") : void 0;
49
54
  const resizing = useResizing({
50
55
  disabled,
51
- transitionDuration
56
+ transitionDuration,
57
+ resizeKey
52
58
  });
53
- const _id = useId(id);
59
+ const _id = useId$1(id);
60
+ const rootRef = useRef(null);
61
+ const resizeVariables = resize ? {
62
+ sizes: resize.sizes,
63
+ enabled: {
64
+ navbar: resize.navbar.enabled,
65
+ aside: resize.aside.enabled,
66
+ header: resize.header.enabled,
67
+ footer: resize.footer.enabled
68
+ }
69
+ } : void 0;
70
+ const resizeOffsets = {
71
+ navbar: true,
72
+ aside: true,
73
+ header: mode === "static" ? true : header?.offset ?? true,
74
+ footer: mode === "static" ? true : footer?.offset ?? true
75
+ };
54
76
  return /* @__PURE__ */ jsxs(AppShellProvider, {
55
77
  value: {
56
78
  getStyles,
@@ -58,7 +80,10 @@ const AppShell = factory((_props) => {
58
80
  zIndex,
59
81
  disabled,
60
82
  offsetScrollbars,
61
- mode
83
+ mode,
84
+ resize,
85
+ rootRef,
86
+ resizeOffsets
62
87
  },
63
88
  children: [/* @__PURE__ */ jsx(AppShellMediaStyles, {
64
89
  navbar,
@@ -67,12 +92,14 @@ const AppShell = factory((_props) => {
67
92
  footer,
68
93
  padding,
69
94
  mode,
70
- selector: mode === "static" ? `#${_id}` : void 0
95
+ resize: resizeVariables,
96
+ selector: resize || mode === "static" ? `#${escapeCssId(_id)}` : void 0
71
97
  }), /* @__PURE__ */ jsx(Box, {
72
98
  ...getStyles("root"),
73
99
  id: _id,
100
+ ref: useMergedRef(ref, rootRef),
74
101
  mod: [{
75
- resizing,
102
+ resizing: resizing || resize?.activeSection != null,
76
103
  layout,
77
104
  disabled,
78
105
  mode
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.mjs","names":["classes"],"sources":["../../../src/components/AppShell/AppShell.tsx"],"sourcesContent":["import { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getDefaultZIndex,\n MantineSpacing,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { AppShellProvider } from './AppShell.context';\nimport {\n AppShellAsideConfiguration,\n AppShellFooterConfiguration,\n AppShellHeaderConfiguration,\n AppShellNavbarConfiguration,\n AppShellResponsiveSize,\n} from './AppShell.types';\nimport { AppShellAside, type AppShellAsideProps } from './AppShellAside/AppShellAside';\nimport { AppShellFooter, type AppShellFooterProps } from './AppShellFooter/AppShellFooter';\nimport { AppShellHeader, type AppShellHeaderProps } from './AppShellHeader/AppShellHeader';\nimport { AppShellMain, type AppShellMainProps } from './AppShellMain/AppShellMain';\nimport { AppShellMediaStyles } from './AppShellMediaStyles/AppShellMediaStyles';\nimport { AppShellNavbar, type AppShellNavbarProps } from './AppShellNavbar/AppShellNavbar';\nimport { AppShellSection, type AppShellSectionProps } from './AppShellSection/AppShellSection';\nimport { useResizing } from './use-resizing/use-resizing';\nimport classes from './AppShell.module.css';\nexport type AppShellStylesNames =\n | 'root'\n | 'navbar'\n | 'main'\n | 'header'\n | 'footer'\n | 'aside'\n | 'section';\n\nexport type AppShellCssVariables = {\n root: '--app-shell-transition-duration' | '--app-shell-transition-timing-function';\n};\n\nexport interface AppShellProps\n extends BoxProps, StylesApiProps<AppShellFactory>, ElementProps<'div'> {\n /** If set, the associated components have a border @default true */\n withBorder?: boolean;\n\n /** Padding of the main section. Important: use `padding` prop instead of `p`. @default 0 */\n padding?: MantineSpacing | AppShellResponsiveSize;\n\n /** `Navbar` configuration, controls width, breakpoints and collapsed state. Required if you use `Navbar` component. */\n navbar?: AppShellNavbarConfiguration;\n\n /** `Aside` configuration, controls width, breakpoints and collapsed state. Required if you use `Aside` component. */\n aside?: AppShellAsideConfiguration;\n\n /** `Header` configuration, controls height, offset and collapsed state. Required if you use `Header` component. */\n header?: AppShellHeaderConfiguration;\n\n /** `Footer` configuration, controls height, offset and collapsed state. Required if you use `Footer` component. */\n footer?: AppShellFooterConfiguration;\n\n /** Duration of all transitions in ms @default 200 */\n transitionDuration?: number;\n\n /** Timing function of all transitions @default ease */\n transitionTimingFunction?: React.CSSProperties['transitionTimingFunction'];\n\n /** `z-index` of all associated elements @default 100 */\n zIndex?: string | number;\n\n /** Determines how `Navbar`/`Aside` are arranged relative to `Header`/`Footer` */\n layout?: 'default' | 'alt';\n\n /** If set, `Navbar`, `Aside`, `Header` and `Footer` components are hidden */\n disabled?: boolean;\n\n /** If set, `Header` and `Footer` components include styles to offset scrollbars. Based on `react-remove-scroll`. @default true */\n offsetScrollbars?: boolean;\n\n /** Determines positioning mode of all sections @default 'fixed' */\n mode?: 'fixed' | 'static';\n}\n\nexport type AppShellFactory = Factory<{\n props: AppShellProps;\n ref: HTMLDivElement;\n stylesNames: AppShellStylesNames;\n vars: AppShellCssVariables;\n staticComponents: {\n Navbar: typeof AppShellNavbar;\n Header: typeof AppShellHeader;\n Main: typeof AppShellMain;\n Aside: typeof AppShellAside;\n Footer: typeof AppShellFooter;\n Section: typeof AppShellSection;\n };\n}>;\n\nconst defaultProps = {\n withBorder: true,\n padding: 0,\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n zIndex: getDefaultZIndex('app'),\n mode: 'fixed',\n} satisfies Partial<AppShellProps>;\n\nconst varsResolver = createVarsResolver<AppShellFactory>(\n (_, { transitionDuration, transitionTimingFunction }) => ({\n root: {\n '--app-shell-transition-duration': `${transitionDuration}ms`,\n '--app-shell-transition-timing-function': transitionTimingFunction,\n },\n })\n);\n\nexport const AppShell = factory<AppShellFactory>((_props) => {\n const props = useProps('AppShell', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n navbar,\n withBorder,\n padding,\n transitionDuration,\n transitionTimingFunction,\n header,\n zIndex,\n layout,\n disabled,\n aside,\n footer,\n offsetScrollbars = true,\n mode,\n mod,\n attributes,\n id,\n ...others\n } = props;\n\n const getStyles = useStyles<AppShellFactory>({\n name: 'AppShell',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const resizing = useResizing({ disabled, transitionDuration });\n const _id = useId(id);\n\n return (\n <AppShellProvider value={{ getStyles, withBorder, zIndex, disabled, offsetScrollbars, mode }}>\n <AppShellMediaStyles\n navbar={navbar}\n header={header}\n aside={aside}\n footer={footer}\n padding={padding}\n mode={mode}\n selector={mode === 'static' ? `#${_id}` : undefined}\n />\n <Box\n {...getStyles('root')}\n id={_id}\n mod={[{ resizing, layout, disabled, mode }, mod]}\n {...others}\n />\n </AppShellProvider>\n );\n});\n\nAppShell.classes = classes;\nAppShell.varsResolver = varsResolver;\nAppShell.displayName = '@mantine/core/AppShell';\nAppShell.Navbar = AppShellNavbar;\nAppShell.Header = AppShellHeader;\nAppShell.Main = AppShellMain;\nAppShell.Aside = AppShellAside;\nAppShell.Footer = AppShellFooter;\nAppShell.Section = AppShellSection;\n\nexport namespace AppShell {\n export type Props = AppShellProps;\n export type StylesNames = AppShellStylesNames;\n export type CssVariables = AppShellCssVariables;\n export type Factory = AppShellFactory;\n\n export namespace Section {\n export type Props = AppShellSectionProps;\n }\n\n export namespace Header {\n export type Props = AppShellHeaderProps;\n }\n\n export namespace Footer {\n export type Props = AppShellFooterProps;\n }\n\n export namespace Navbar {\n export type Props = AppShellNavbarProps;\n }\n\n export namespace Aside {\n export type Props = AppShellAsideProps;\n }\n\n export namespace Main {\n export type Props = AppShellMainProps;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqGA,MAAM,eAAe;CACnB,YAAY;CACZ,SAAS;CACT,oBAAoB;CACpB,0BAA0B;CAC1B,QAAQ,iBAAiB,KAAK;CAC9B,MAAM;AACR;AAEA,MAAM,eAAe,oBAClB,GAAG,EAAE,oBAAoB,gCAAgC,EACxD,MAAM;CACJ,mCAAmC,GAAG,mBAAmB;CACzD,0CAA0C;AAC5C,EACF,EACF;AAEA,MAAa,WAAW,SAA0B,WAAW;CAC3D,MAAM,QAAQ,SAAS,YAAY,cAAc,MAAM;CACvD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,QACA,YACA,SACA,oBACA,0BACA,QACA,QACA,QACA,UACA,OACA,QACA,mBAAmB,MACnB,MACA,KACA,YACA,IACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA2B;EAC3C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,WAAW,YAAY;EAAE;EAAU;CAAmB,CAAC;CAC7D,MAAM,MAAM,MAAM,EAAE;CAEpB,OACE,qBAAC,kBAAD;EAAkB,OAAO;GAAE;GAAW;GAAY;GAAQ;GAAU;GAAkB;EAAK;EAA3F,UAAA,CACE,oBAAC,qBAAD;GACU;GACA;GACD;GACC;GACC;GACH;GACN,UAAU,SAAS,WAAW,IAAI,QAAQ,KAAA;EAC3C,CAAA,GACD,oBAAC,KAAD;GACE,GAAI,UAAU,MAAM;GACpB,IAAI;GACJ,KAAK,CAAC;IAAE;IAAU;IAAQ;IAAU;GAAK,GAAG,GAAG;GAC/C,GAAI;EACL,CAAA,CACe;;AAEtB,CAAC;AAED,SAAS,UAAUA;AACnB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,SAAS;AAClB,SAAS,SAAS;AAClB,SAAS,OAAO;AAChB,SAAS,QAAQ;AACjB,SAAS,SAAS;AAClB,SAAS,UAAU"}
1
+ {"version":3,"file":"AppShell.mjs","names":["useId","classes"],"sources":["../../../src/components/AppShell/AppShell.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { useId, useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getDefaultZIndex,\n MantineSpacing,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { AppShellProvider } from './AppShell.context';\nimport {\n AppShellAsideConfiguration,\n AppShellFooterConfiguration,\n AppShellHeaderConfiguration,\n AppShellNavbarConfiguration,\n AppShellResizeController,\n AppShellResponsiveSize,\n} from './AppShell.types';\nimport { AppShellAside, type AppShellAsideProps } from './AppShellAside/AppShellAside';\nimport { AppShellFooter, type AppShellFooterProps } from './AppShellFooter/AppShellFooter';\nimport { AppShellHeader, type AppShellHeaderProps } from './AppShellHeader/AppShellHeader';\nimport { AppShellMain, type AppShellMainProps } from './AppShellMain/AppShellMain';\nimport { AppShellMediaStyles } from './AppShellMediaStyles/AppShellMediaStyles';\nimport { escapeCssId } from './AppShellMediaStyles/escape-css-id/escape-css-id';\nimport { AppShellNavbar, type AppShellNavbarProps } from './AppShellNavbar/AppShellNavbar';\nimport { AppShellSection, type AppShellSectionProps } from './AppShellSection/AppShellSection';\nimport { RESIZE_SECTION_NAMES } from './use-app-shell-resize/resize-section-config';\nimport { useResizing } from './use-resizing/use-resizing';\nimport classes from './AppShell.module.css';\nexport type AppShellStylesNames =\n | 'root'\n | 'navbar'\n | 'main'\n | 'header'\n | 'footer'\n | 'aside'\n | 'section'\n | 'resizeHandle';\n\nexport type AppShellCssVariables = {\n root:\n | '--app-shell-transition-duration'\n | '--app-shell-transition-timing-function'\n | '--app-shell-resize-handle-size';\n};\n\nexport interface AppShellProps\n extends BoxProps, StylesApiProps<AppShellFactory>, ElementProps<'div'> {\n /** If set, the associated components have a border @default true */\n withBorder?: boolean;\n\n /** Padding of the main section. Important: use `padding` prop instead of `p`. @default 0 */\n padding?: MantineSpacing | AppShellResponsiveSize;\n\n /** `Navbar` configuration, controls width, breakpoints and collapsed state. Required if you use `Navbar` component. */\n navbar?: AppShellNavbarConfiguration;\n\n /** `Aside` configuration, controls width, breakpoints and collapsed state. Required if you use `Aside` component. */\n aside?: AppShellAsideConfiguration;\n\n /** `Header` configuration, controls height, offset and collapsed state. Required if you use `Header` component. */\n header?: AppShellHeaderConfiguration;\n\n /** `Footer` configuration, controls height, offset and collapsed state. Required if you use `Footer` component. */\n footer?: AppShellFooterConfiguration;\n\n /** Duration of all transitions in ms @default 200 */\n transitionDuration?: number;\n\n /** Timing function of all transitions @default ease */\n transitionTimingFunction?: React.CSSProperties['transitionTimingFunction'];\n\n /** `z-index` of all associated elements @default 100 */\n zIndex?: string | number;\n\n /** Determines how `Navbar`/`Aside` are arranged relative to `Header`/`Footer` */\n layout?: 'default' | 'alt';\n\n /** If set, `Navbar`, `Aside`, `Header` and `Footer` components are hidden */\n disabled?: boolean;\n\n /** If set, `Header` and `Footer` components include styles to offset scrollbars. Based on `react-remove-scroll`. @default true */\n offsetScrollbars?: boolean;\n\n /** Determines positioning mode of all sections @default 'fixed' */\n mode?: 'fixed' | 'static';\n\n /** `useAppShellResize` hook instance, enables resizing of the sections configured in the hook */\n resize?: AppShellResizeController;\n}\n\nexport type AppShellFactory = Factory<{\n props: AppShellProps;\n ref: HTMLDivElement;\n stylesNames: AppShellStylesNames;\n vars: AppShellCssVariables;\n staticComponents: {\n Navbar: typeof AppShellNavbar;\n Header: typeof AppShellHeader;\n Main: typeof AppShellMain;\n Aside: typeof AppShellAside;\n Footer: typeof AppShellFooter;\n Section: typeof AppShellSection;\n };\n}>;\n\nconst defaultProps = {\n withBorder: true,\n padding: 0,\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n zIndex: getDefaultZIndex('app'),\n mode: 'fixed',\n} satisfies Partial<AppShellProps>;\n\nconst varsResolver = createVarsResolver<AppShellFactory>(\n (_, { transitionDuration, transitionTimingFunction }) => ({\n root: {\n '--app-shell-transition-duration': `${transitionDuration}ms`,\n '--app-shell-transition-timing-function': transitionTimingFunction,\n '--app-shell-resize-handle-size': undefined,\n },\n })\n);\n\nexport const AppShell = factory<AppShellFactory>((_props) => {\n const props = useProps('AppShell', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n navbar,\n withBorder,\n padding,\n transitionDuration,\n transitionTimingFunction,\n header,\n zIndex,\n layout,\n disabled,\n aside,\n footer,\n offsetScrollbars = true,\n mode,\n mod,\n attributes,\n id,\n resize,\n ref,\n ...others\n } = props;\n\n const getStyles = useStyles<AppShellFactory>({\n name: 'AppShell',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const resizeKey = resize\n ? RESIZE_SECTION_NAMES.map((section) => resize.sizes[section]).join('|')\n : undefined;\n const resizing = useResizing({ disabled, transitionDuration, resizeKey });\n const _id = useId(id);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const resizeVariables = resize\n ? {\n sizes: resize.sizes,\n enabled: {\n navbar: resize.navbar.enabled,\n aside: resize.aside.enabled,\n header: resize.header.enabled,\n footer: resize.footer.enabled,\n },\n }\n : undefined;\n\n const resizeOffsets = {\n navbar: true,\n aside: true,\n header: mode === 'static' ? true : (header?.offset ?? true),\n footer: mode === 'static' ? true : (footer?.offset ?? true),\n };\n\n return (\n <AppShellProvider\n value={{\n getStyles,\n withBorder,\n zIndex,\n disabled,\n offsetScrollbars,\n mode,\n resize,\n rootRef,\n resizeOffsets,\n }}\n >\n <AppShellMediaStyles\n navbar={navbar}\n header={header}\n aside={aside}\n footer={footer}\n padding={padding}\n mode={mode}\n resize={resizeVariables}\n selector={resize || mode === 'static' ? `#${escapeCssId(_id)}` : undefined}\n />\n <Box\n {...getStyles('root')}\n id={_id}\n ref={useMergedRef(ref, rootRef)}\n mod={[{ resizing: resizing || resize?.activeSection != null, layout, disabled, mode }, mod]}\n {...others}\n />\n </AppShellProvider>\n );\n});\n\nAppShell.classes = classes;\nAppShell.varsResolver = varsResolver;\nAppShell.displayName = '@mantine/core/AppShell';\nAppShell.Navbar = AppShellNavbar;\nAppShell.Header = AppShellHeader;\nAppShell.Main = AppShellMain;\nAppShell.Aside = AppShellAside;\nAppShell.Footer = AppShellFooter;\nAppShell.Section = AppShellSection;\n\nexport namespace AppShell {\n export type Props = AppShellProps;\n export type StylesNames = AppShellStylesNames;\n export type CssVariables = AppShellCssVariables;\n export type Factory = AppShellFactory;\n\n export namespace Section {\n export type Props = AppShellSectionProps;\n }\n\n export namespace Header {\n export type Props = AppShellHeaderProps;\n }\n\n export namespace Footer {\n export type Props = AppShellFooterProps;\n }\n\n export namespace Navbar {\n export type Props = AppShellNavbarProps;\n }\n\n export namespace Aside {\n export type Props = AppShellAsideProps;\n }\n\n export namespace Main {\n export type Props = AppShellMainProps;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgHA,MAAM,eAAe;CACnB,YAAY;CACZ,SAAS;CACT,oBAAoB;CACpB,0BAA0B;CAC1B,QAAQ,iBAAiB,KAAK;CAC9B,MAAM;AACR;AAEA,MAAM,eAAe,oBAClB,GAAG,EAAE,oBAAoB,gCAAgC,EACxD,MAAM;CACJ,mCAAmC,GAAG,mBAAmB;CACzD,0CAA0C;CAC1C,kCAAkC,KAAA;AACpC,EACF,EACF;AAEA,MAAa,WAAW,SAA0B,WAAW;CAC3D,MAAM,QAAQ,SAAS,YAAY,cAAc,MAAM;CACvD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,QACA,YACA,SACA,oBACA,0BACA,QACA,QACA,QACA,UACA,OACA,QACA,mBAAmB,MACnB,MACA,KACA,YACA,IACA,QACA,KACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA2B;EAC3C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,YAAY,SACd,qBAAqB,KAAK,YAAY,OAAO,MAAM,QAAQ,CAAC,CAAC,KAAK,GAAG,IACrE,KAAA;CACJ,MAAM,WAAW,YAAY;EAAE;EAAU;EAAoB;CAAU,CAAC;CACxE,MAAM,MAAMA,QAAM,EAAE;CACpB,MAAM,UAAU,OAAuB,IAAI;CAE3C,MAAM,kBAAkB,SACpB;EACE,OAAO,OAAO;EACd,SAAS;GACP,QAAQ,OAAO,OAAO;GACtB,OAAO,OAAO,MAAM;GACpB,QAAQ,OAAO,OAAO;GACtB,QAAQ,OAAO,OAAO;EACxB;CACF,IACA,KAAA;CAEJ,MAAM,gBAAgB;EACpB,QAAQ;EACR,OAAO;EACP,QAAQ,SAAS,WAAW,OAAQ,QAAQ,UAAU;EACtD,QAAQ,SAAS,WAAW,OAAQ,QAAQ,UAAU;CACxD;CAEA,OACE,qBAAC,kBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EAXF,UAAA,CAaE,oBAAC,qBAAD;GACU;GACA;GACD;GACC;GACC;GACH;GACN,QAAQ;GACR,UAAU,UAAU,SAAS,WAAW,IAAI,YAAY,GAAG,MAAM,KAAA;EAClE,CAAA,GACD,oBAAC,KAAD;GACE,GAAI,UAAU,MAAM;GACpB,IAAI;GACJ,KAAK,aAAa,KAAK,OAAO;GAC9B,KAAK,CAAC;IAAE,UAAU,YAAY,QAAQ,iBAAiB;IAAM;IAAQ;IAAU;GAAK,GAAG,GAAG;GAC1F,GAAI;EACL,CAAA,CACe;;AAEtB,CAAC;AAED,SAAS,UAAUC;AACnB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,SAAS;AAClB,SAAS,SAAS;AAClB,SAAS,OAAO;AAChB,SAAS,QAAQ;AACjB,SAAS,SAAS;AAClB,SAAS,UAAU"}
@@ -7,7 +7,8 @@ var AppShell_module_default = {
7
7
  "header": "m_3b16f56b",
8
8
  "main": "m_8983817",
9
9
  "footer": "m_3840c879",
10
- "section": "m_6dcfc7c7"
10
+ "section": "m_6dcfc7c7",
11
+ "resizeHandle": "m_3b25945a"
11
12
  };
12
13
  //#endregion
13
14
  export { AppShell_module_default as default };
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.module.mjs","names":[],"sources":["../../../src/components/AppShell/AppShell.module.css"],"sourcesContent":[".root {\n &[data-resizing] {\n --app-shell-transition-duration: 0ms !important;\n }\n\n &[data-disabled] {\n --app-shell-header-offset: 0rem !important;\n --app-shell-navbar-offset: 0rem !important;\n --app-shell-aside-offset: 0rem !important;\n --app-shell-footer-offset: 0rem !important;\n }\n\n &[data-mode='static'] {\n display: grid;\n grid-template-columns: var(--app-shell-navbar-width, 0) 1fr var(--app-shell-aside-width, 0);\n grid-template-rows: auto 1fr auto;\n position: relative;\n height: 100%;\n overflow: auto;\n }\n\n @mixin light {\n --app-shell-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin dark {\n --app-shell-border-color: var(--mantine-color-dark-4);\n }\n}\n\n.navbar,\n.aside,\n.header,\n.main,\n.footer {\n transition-duration: var(--app-shell-transition-duration);\n transition-timing-function: var(--app-shell-transition-timing-function);\n}\n\n.navbar,\n.aside {\n position: fixed;\n display: flex;\n flex-direction: column;\n top: var(--app-shell-header-offset, 0rem);\n height: calc(\n 100dvh - var(--app-shell-header-offset, 0rem) - var(--app-shell-footer-offset, 0rem)\n );\n background-color: var(--mantine-color-body);\n transition-property: transform, top, height;\n\n :where([data-mode='static']) & {\n position: var(--app-shell-navbar-position, fixed);\n grid-row: var(--app-shell-navbar-grid-row, auto);\n height: 100%;\n }\n\n :where([data-layout='alt']) & {\n top: 0rem;\n height: 100dvh;\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-row: 1 / -1;\n height: 100%;\n }\n}\n\n.navbar {\n inset-inline-start: 0;\n width: var(--app-shell-navbar-width);\n transition-property: transform, top, height;\n transform: var(--app-shell-navbar-transform);\n z-index: var(--app-shell-navbar-z-index);\n\n :where([data-mode='static']) & {\n grid-column: var(--app-shell-navbar-grid-column, auto);\n display: var(--app-shell-navbar-display, flex);\n }\n\n @mixin where-rtl {\n transform: var(--app-shell-navbar-transform-rtl);\n }\n\n &:where([data-with-border]) {\n border-inline-end: 1px solid var(--app-shell-border-color);\n }\n}\n\n.aside {\n inset-inline-end: 0;\n width: var(--app-shell-aside-width);\n transform: var(--app-shell-aside-transform);\n z-index: var(--app-shell-aside-z-index);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-aside-position, fixed);\n grid-column: var(--app-shell-aside-grid-column, auto);\n grid-row: var(--app-shell-aside-grid-row, auto);\n display: var(--app-shell-aside-display, flex);\n }\n\n @mixin where-rtl {\n transform: var(--app-shell-aside-transform-rtl);\n }\n\n &:where([data-with-border]) {\n border-inline-start: 1px solid var(--app-shell-border-color);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-row: 1 / -1;\n }\n\n :where([data-scroll-locked]) & {\n visibility: var(--app-shell-aside-scroll-locked-visibility);\n }\n}\n\n.main {\n padding-inline-start: calc(var(--app-shell-navbar-offset, 0rem) + var(--app-shell-padding));\n padding-inline-end: calc(var(--app-shell-aside-offset, 0rem) + var(--app-shell-padding));\n padding-top: calc(var(--app-shell-header-offset, 0rem) + var(--app-shell-padding));\n padding-bottom: calc(var(--app-shell-footer-offset, 0rem) + var(--app-shell-padding));\n min-height: 100dvh;\n transition-property: padding;\n\n :where([data-mode='static']) & {\n padding-inline-start: var(--app-shell-padding);\n padding-inline-end: var(--app-shell-padding);\n padding-top: var(--app-shell-padding);\n padding-bottom: var(--app-shell-padding);\n min-height: auto;\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n grid-row: var(--app-shell-main-grid-row, 2);\n }\n}\n\n.header,\n.footer {\n position: fixed;\n inset-inline: 0;\n transition-property: transform, margin-inline-start, margin-inline-end;\n background-color: var(--mantine-color-body);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-header-position, fixed);\n grid-column: var(--app-shell-header-grid-column, auto);\n }\n\n :where([data-layout='alt']) & {\n margin-inline-start: var(--app-shell-navbar-offset, 0rem);\n margin-inline-end: var(--app-shell-aside-offset, 0rem);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n margin-inline-start: 0rem;\n margin-inline-end: 0rem;\n }\n}\n\n.header {\n top: 0;\n height: var(--app-shell-header-height);\n background-color: var(--mantine-color-body);\n transform: var(--app-shell-header-transform);\n z-index: var(--app-shell-header-z-index);\n\n :where([data-mode='static']) & {\n grid-row: var(--app-shell-header-grid-row, auto);\n }\n\n &:where([data-with-border]) {\n border-bottom: 1px solid var(--app-shell-border-color);\n }\n}\n\n.footer {\n bottom: 0;\n height: calc(var(--app-shell-footer-height) + env(safe-area-inset-bottom));\n padding-bottom: env(safe-area-inset-bottom);\n transform: var(--app-shell-footer-transform);\n z-index: var(--app-shell-footer-z-index);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-footer-position, fixed);\n grid-column: var(--app-shell-footer-grid-column, auto);\n grid-row: var(--app-shell-footer-grid-row, auto);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n }\n\n &:where([data-with-border]) {\n border-top: 1px solid var(--app-shell-border-color);\n }\n}\n\n.section {\n flex-grow: 0;\n\n &:where([data-grow]) {\n flex-grow: 1;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"AppShell.module.mjs","names":[],"sources":["../../../src/components/AppShell/AppShell.module.css"],"sourcesContent":[".root {\n &[data-resizing] {\n --app-shell-transition-duration: 0ms !important;\n }\n\n &[data-disabled] {\n --app-shell-header-offset: 0rem !important;\n --app-shell-navbar-offset: 0rem !important;\n --app-shell-aside-offset: 0rem !important;\n --app-shell-footer-offset: 0rem !important;\n }\n\n &[data-mode='static'] {\n display: grid;\n grid-template-columns: var(--app-shell-navbar-width, 0) 1fr var(--app-shell-aside-width, 0);\n grid-template-rows: auto 1fr auto;\n position: relative;\n height: 100%;\n overflow: auto;\n }\n\n @mixin light {\n --app-shell-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin dark {\n --app-shell-border-color: var(--mantine-color-dark-4);\n }\n}\n\n.navbar,\n.aside,\n.header,\n.main,\n.footer {\n transition-duration: var(--app-shell-transition-duration);\n transition-timing-function: var(--app-shell-transition-timing-function);\n}\n\n.navbar,\n.aside {\n position: fixed;\n display: flex;\n flex-direction: column;\n top: var(--app-shell-header-offset, 0rem);\n height: calc(\n 100dvh - var(--app-shell-header-offset, 0rem) - var(--app-shell-footer-offset, 0rem)\n );\n background-color: var(--mantine-color-body);\n transition-property: transform, top, height;\n\n :where([data-mode='static']) & {\n position: var(--app-shell-navbar-position, fixed);\n grid-row: var(--app-shell-navbar-grid-row, auto);\n height: 100%;\n }\n\n :where([data-layout='alt']) & {\n top: 0rem;\n height: 100dvh;\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-row: 1 / -1;\n height: 100%;\n }\n}\n\n.navbar {\n inset-inline-start: 0;\n width: var(--app-shell-navbar-width);\n transition-property: transform, top, height;\n transform: var(--app-shell-navbar-transform);\n z-index: var(--app-shell-navbar-z-index);\n\n :where([data-mode='static']) & {\n grid-column: var(--app-shell-navbar-grid-column, auto);\n display: var(--app-shell-navbar-display, flex);\n }\n\n @mixin where-rtl {\n transform: var(--app-shell-navbar-transform-rtl);\n }\n\n &:where([data-with-border]) {\n border-inline-end: 1px solid var(--app-shell-border-color);\n }\n}\n\n.aside {\n inset-inline-end: 0;\n width: var(--app-shell-aside-width);\n transform: var(--app-shell-aside-transform);\n z-index: var(--app-shell-aside-z-index);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-aside-position, fixed);\n grid-column: var(--app-shell-aside-grid-column, auto);\n grid-row: var(--app-shell-aside-grid-row, auto);\n display: var(--app-shell-aside-display, flex);\n }\n\n @mixin where-rtl {\n transform: var(--app-shell-aside-transform-rtl);\n }\n\n &:where([data-with-border]) {\n border-inline-start: 1px solid var(--app-shell-border-color);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-row: 1 / -1;\n }\n\n :where([data-scroll-locked]) & {\n visibility: var(--app-shell-aside-scroll-locked-visibility);\n }\n}\n\n.main {\n padding-inline-start: calc(var(--app-shell-navbar-offset, 0rem) + var(--app-shell-padding));\n padding-inline-end: calc(var(--app-shell-aside-offset, 0rem) + var(--app-shell-padding));\n padding-top: calc(var(--app-shell-header-offset, 0rem) + var(--app-shell-padding));\n padding-bottom: calc(var(--app-shell-footer-offset, 0rem) + var(--app-shell-padding));\n min-height: 100dvh;\n transition-property: padding;\n\n :where([data-mode='static']) & {\n padding-inline-start: var(--app-shell-padding);\n padding-inline-end: var(--app-shell-padding);\n padding-top: var(--app-shell-padding);\n padding-bottom: var(--app-shell-padding);\n min-height: auto;\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n grid-row: var(--app-shell-main-grid-row, 2);\n }\n}\n\n.header,\n.footer {\n position: fixed;\n inset-inline: 0;\n transition-property: transform, margin-inline-start, margin-inline-end;\n background-color: var(--mantine-color-body);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-header-position, fixed);\n grid-column: var(--app-shell-header-grid-column, auto);\n }\n\n :where([data-layout='alt']) & {\n margin-inline-start: var(--app-shell-navbar-offset, 0rem);\n margin-inline-end: var(--app-shell-aside-offset, 0rem);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n margin-inline-start: 0rem;\n margin-inline-end: 0rem;\n }\n}\n\n.header {\n top: 0;\n height: var(--app-shell-header-height);\n background-color: var(--mantine-color-body);\n transform: var(--app-shell-header-transform);\n z-index: var(--app-shell-header-z-index);\n\n :where([data-mode='static']) & {\n grid-row: var(--app-shell-header-grid-row, auto);\n }\n\n &:where([data-with-border]) {\n border-bottom: 1px solid var(--app-shell-border-color);\n }\n}\n\n.footer {\n bottom: 0;\n height: calc(var(--app-shell-footer-height) + env(safe-area-inset-bottom));\n padding-bottom: env(safe-area-inset-bottom);\n transform: var(--app-shell-footer-transform);\n z-index: var(--app-shell-footer-z-index);\n --app-shell-footer-safe-area: env(safe-area-inset-bottom);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-footer-position, fixed);\n grid-column: var(--app-shell-footer-grid-column, auto);\n grid-row: var(--app-shell-footer-grid-row, auto);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n }\n\n &:where([data-with-border]) {\n border-top: 1px solid var(--app-shell-border-color);\n }\n}\n\n.section {\n flex-grow: 0;\n\n &:where([data-grow]) {\n flex-grow: 1;\n }\n}\n\n.resizeHandle {\n position: absolute;\n z-index: 1;\n outline: none;\n touch-action: none;\n background-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n background-color: transparent;\n transition: background-color 100ms ease;\n }\n\n &:where(:hover, [data-active])::after,\n &:where(:focus-visible)::after {\n background-color: var(--mantine-primary-color-filled);\n }\n\n &:where([data-orientation='vertical']) {\n top: 0;\n bottom: 0;\n width: var(--app-shell-resize-handle-size, rem(6px));\n cursor: col-resize;\n\n &::after {\n top: 0;\n bottom: 0;\n left: 50%;\n width: rem(2px);\n transform: translateX(-50%);\n }\n }\n\n &:where([data-orientation='horizontal']) {\n inset-inline: 0;\n height: var(--app-shell-resize-handle-size, rem(6px));\n cursor: row-resize;\n\n &::after {\n inset-inline: 0;\n top: 50%;\n height: rem(2px);\n transform: translateY(-50%);\n }\n }\n\n &:where([data-section='navbar']) {\n inset-inline-end: calc(var(--app-shell-resize-handle-size, rem(6px)) / -2);\n display: var(--app-shell-navbar-resize-handle-display, block);\n }\n\n &:where([data-section='aside']) {\n inset-inline-start: calc(var(--app-shell-resize-handle-size, rem(6px)) / -2);\n display: var(--app-shell-aside-resize-handle-display, block);\n }\n\n &:where([data-section='header']) {\n bottom: calc(var(--app-shell-resize-handle-size, rem(6px)) / -2);\n display: var(--app-shell-header-resize-handle-display, block);\n }\n\n &:where([data-section='footer']) {\n top: calc(var(--app-shell-resize-handle-size, rem(6px)) / -2);\n display: var(--app-shell-footer-resize-handle-display, block);\n }\n}\n"],"mappings":""}
@@ -3,27 +3,48 @@ import { useProps } from "../../../core/MantineProvider/use-props/use-props.mjs"
3
3
  import { factory } from "../../../core/factory/factory.mjs";
4
4
  import { Box } from "../../../core/Box/Box.mjs";
5
5
  import { useAppShellContext } from "../AppShell.context.mjs";
6
+ import { AppShellResizeHandle } from "../AppShellResizeHandle/AppShellResizeHandle.mjs";
6
7
  import AppShell_module_default from "../AppShell.module.mjs";
7
8
  import { RemoveScroll } from "react-remove-scroll";
9
+ import { useId } from "@mantine/hooks";
8
10
  import cx from "clsx";
9
- import { jsx } from "react/jsx-runtime";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
10
12
  //#region packages/@mantine/core/src/components/AppShell/AppShellAside/AppShellAside.tsx
11
13
  const AppShellAside = factory((_props) => {
12
14
  const { classNames, className, style, styles, unstyled, vars, withBorder, zIndex, mod, ...others } = useProps("AppShellAside", null, _props);
13
15
  const ctx = useAppShellContext();
16
+ const sectionId = useId(others.id);
14
17
  if (ctx.disabled) return null;
15
- return /* @__PURE__ */ jsx(Box, {
18
+ const isResizable = ctx.resize?.aside.enabled ?? false;
19
+ const boxProps = ctx.getStyles("aside", {
20
+ className: cx({ [RemoveScroll.classNames.zeroRight]: ctx.offsetScrollbars }, className),
21
+ classNames,
22
+ styles,
23
+ style
24
+ });
25
+ if (!isResizable) return /* @__PURE__ */ jsx(Box, {
16
26
  component: "aside",
17
27
  mod: [{ "with-border": withBorder ?? ctx.withBorder }, mod],
18
- ...ctx.getStyles("aside", {
19
- className: cx({ [RemoveScroll.classNames.zeroRight]: ctx.offsetScrollbars }, className),
20
- classNames,
21
- styles,
22
- style
23
- }),
28
+ ...boxProps,
24
29
  ...others,
25
30
  __vars: { "--app-shell-aside-z-index": `calc(${zIndex ?? ctx.zIndex} + 1)` }
26
31
  });
32
+ const { children, dangerouslySetInnerHTML, ...rest } = others;
33
+ return /* @__PURE__ */ jsxs(Box, {
34
+ component: "aside",
35
+ mod: [{ "with-border": withBorder ?? ctx.withBorder }, mod],
36
+ ...boxProps,
37
+ ...rest,
38
+ __vars: { "--app-shell-aside-z-index": `calc(${zIndex ?? ctx.zIndex} + 1)` },
39
+ id: sectionId,
40
+ children: [dangerouslySetInnerHTML ? /* @__PURE__ */ jsx("div", {
41
+ style: { display: "contents" },
42
+ dangerouslySetInnerHTML
43
+ }) : children, /* @__PURE__ */ jsx(AppShellResizeHandle, {
44
+ section: "aside",
45
+ sectionId
46
+ })]
47
+ });
27
48
  });
28
49
  AppShellAside.classes = AppShell_module_default;
29
50
  AppShellAside.displayName = "@mantine/core/AppShellAside";
@@ -1 +1 @@
1
- {"version":3,"file":"AppShellAside.mjs","names":["classes"],"sources":["../../../../src/components/AppShell/AppShellAside/AppShellAside.tsx"],"sourcesContent":["import cx from 'clsx';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n} from '../../../core';\nimport { useAppShellContext } from '../AppShell.context';\nimport { AppShellCompoundProps } from '../AppShell.types';\nimport classes from '../AppShell.module.css';\n\nexport type AppShellAsideStylesNames = 'aside';\n\nexport interface AppShellAsideProps\n extends\n BoxProps,\n AppShellCompoundProps,\n StylesApiProps<AppShellAsideFactory>,\n ElementProps<'aside'> {}\n\nexport type AppShellAsideFactory = Factory<{\n props: AppShellAsideProps;\n ref: HTMLElement;\n stylesNames: AppShellAsideStylesNames;\n}>;\n\nexport const AppShellAside = factory<AppShellAsideFactory>((_props) => {\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n withBorder,\n zIndex,\n mod,\n ...others\n } = useProps('AppShellAside', null, _props);\n\n const ctx = useAppShellContext();\n\n if (ctx.disabled) {\n return null;\n }\n\n return (\n <Box\n component=\"aside\"\n mod={[{ 'with-border': withBorder ?? ctx.withBorder }, mod]}\n {...ctx.getStyles('aside', {\n className: cx({ [RemoveScroll.classNames.zeroRight]: ctx.offsetScrollbars }, className),\n classNames,\n styles,\n style,\n })}\n {...others}\n __vars={{ '--app-shell-aside-z-index': `calc(${zIndex ?? ctx.zIndex} + 1)` }}\n />\n );\n});\n\nAppShellAside.classes = classes;\nAppShellAside.displayName = '@mantine/core/AppShellAside';\n"],"mappings":";;;;;;;;;;AA8BA,MAAa,gBAAgB,SAA+B,WAAW;CACrE,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,YACA,QACA,KACA,GAAG,WACD,SAAS,iBAAiB,MAAM,MAAM;CAE1C,MAAM,MAAM,mBAAmB;CAE/B,IAAI,IAAI,UACN,OAAO;CAGT,OACE,oBAAC,KAAD;EACE,WAAU;EACV,KAAK,CAAC,EAAE,eAAe,cAAc,IAAI,WAAW,GAAG,GAAG;EAC1D,GAAI,IAAI,UAAU,SAAS;GACzB,WAAW,GAAG,GAAG,aAAa,WAAW,YAAY,IAAI,iBAAiB,GAAG,SAAS;GACtF;GACA;GACA;EACF,CAAC;EACD,GAAI;EACJ,QAAQ,EAAE,6BAA6B,QAAQ,UAAU,IAAI,OAAO,OAAO;CAC5E,CAAA;AAEL,CAAC;AAED,cAAc,UAAUA;AACxB,cAAc,cAAc"}
1
+ {"version":3,"file":"AppShellAside.mjs","names":["classes"],"sources":["../../../../src/components/AppShell/AppShellAside/AppShellAside.tsx"],"sourcesContent":["import cx from 'clsx';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n} from '../../../core';\nimport { useAppShellContext } from '../AppShell.context';\nimport { AppShellCompoundProps } from '../AppShell.types';\nimport { AppShellResizeHandle } from '../AppShellResizeHandle/AppShellResizeHandle';\nimport classes from '../AppShell.module.css';\n\nexport type AppShellAsideStylesNames = 'aside';\n\nexport interface AppShellAsideProps\n extends\n BoxProps,\n AppShellCompoundProps,\n StylesApiProps<AppShellAsideFactory>,\n ElementProps<'aside'> {}\n\nexport type AppShellAsideFactory = Factory<{\n props: AppShellAsideProps;\n ref: HTMLElement;\n stylesNames: AppShellAsideStylesNames;\n}>;\n\nexport const AppShellAside = factory<AppShellAsideFactory>((_props) => {\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n withBorder,\n zIndex,\n mod,\n ...others\n } = useProps('AppShellAside', null, _props);\n\n const ctx = useAppShellContext();\n const sectionId = useId(others.id);\n\n if (ctx.disabled) {\n return null;\n }\n\n const isResizable = ctx.resize?.aside.enabled ?? false;\n const boxProps = ctx.getStyles('aside', {\n className: cx({ [RemoveScroll.classNames.zeroRight]: ctx.offsetScrollbars }, className),\n classNames,\n styles,\n style,\n });\n\n if (!isResizable) {\n return (\n <Box\n component=\"aside\"\n mod={[{ 'with-border': withBorder ?? ctx.withBorder }, mod]}\n {...boxProps}\n {...others}\n __vars={{ '--app-shell-aside-z-index': `calc(${zIndex ?? ctx.zIndex} + 1)` }}\n />\n );\n }\n\n const { children, dangerouslySetInnerHTML, ...rest } = others;\n\n return (\n <Box\n component=\"aside\"\n mod={[{ 'with-border': withBorder ?? ctx.withBorder }, mod]}\n {...boxProps}\n {...rest}\n __vars={{ '--app-shell-aside-z-index': `calc(${zIndex ?? ctx.zIndex} + 1)` }}\n id={sectionId}\n >\n {dangerouslySetInnerHTML ? (\n <div style={{ display: 'contents' }} dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n ) : (\n children\n )}\n <AppShellResizeHandle section=\"aside\" sectionId={sectionId} />\n </Box>\n );\n});\n\nAppShellAside.classes = classes;\nAppShellAside.displayName = '@mantine/core/AppShellAside';\n"],"mappings":";;;;;;;;;;;;AAgCA,MAAa,gBAAgB,SAA+B,WAAW;CACrE,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,YACA,QACA,KACA,GAAG,WACD,SAAS,iBAAiB,MAAM,MAAM;CAE1C,MAAM,MAAM,mBAAmB;CAC/B,MAAM,YAAY,MAAM,OAAO,EAAE;CAEjC,IAAI,IAAI,UACN,OAAO;CAGT,MAAM,cAAc,IAAI,QAAQ,MAAM,WAAW;CACjD,MAAM,WAAW,IAAI,UAAU,SAAS;EACtC,WAAW,GAAG,GAAG,aAAa,WAAW,YAAY,IAAI,iBAAiB,GAAG,SAAS;EACtF;EACA;EACA;CACF,CAAC;CAED,IAAI,CAAC,aACH,OACE,oBAAC,KAAD;EACE,WAAU;EACV,KAAK,CAAC,EAAE,eAAe,cAAc,IAAI,WAAW,GAAG,GAAG;EAC1D,GAAI;EACJ,GAAI;EACJ,QAAQ,EAAE,6BAA6B,QAAQ,UAAU,IAAI,OAAO,OAAO;CAC5E,CAAA;CAIL,MAAM,EAAE,UAAU,yBAAyB,GAAG,SAAS;CAEvD,OACE,qBAAC,KAAD;EACE,WAAU;EACV,KAAK,CAAC,EAAE,eAAe,cAAc,IAAI,WAAW,GAAG,GAAG;EAC1D,GAAI;EACJ,GAAI;EACJ,QAAQ,EAAE,6BAA6B,QAAQ,UAAU,IAAI,OAAO,OAAO;EAC3E,IAAI;EANN,UAAA,CAQG,0BACC,oBAAC,OAAD;GAAK,OAAO,EAAE,SAAS,WAAW;GAA4B;EAA0B,CAAA,IAExF,UAEF,oBAAC,sBAAD;GAAsB,SAAQ;GAAmB;EAAY,CAAA,CAC1D;;AAET,CAAC;AAED,cAAc,UAAUA;AACxB,cAAc,cAAc"}