@mantine/core 9.6.3 → 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 (373) 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/Dialog/Dialog.cjs +0 -1
  54. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  55. package/cjs/components/Dialog/Dialog.module.cjs.map +1 -1
  56. package/cjs/components/HoverCard/HoverCard.cjs +34 -5
  57. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  58. package/cjs/components/HoverCard/HoverCard.context.cjs.map +1 -1
  59. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs +13 -18
  60. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  61. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs +6 -23
  62. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  63. package/cjs/components/HoverCard/use-hover-card.cjs +26 -12
  64. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  65. package/cjs/components/Radio/Radio.cjs +10 -2
  66. package/cjs/components/Radio/Radio.cjs.map +1 -1
  67. package/cjs/components/Radio/Radio.module.cjs +1 -0
  68. package/cjs/components/Radio/Radio.module.cjs.map +1 -1
  69. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs +10 -2
  70. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  71. package/cjs/components/Radio/RadioIndicator/RadioIndicator.module.cjs +1 -0
  72. package/cjs/components/Radio/RadioIndicator/RadioIndicator.module.cjs.map +1 -1
  73. package/cjs/components/Toggle/Toggle.cjs +80 -0
  74. package/cjs/components/Toggle/Toggle.cjs.map +1 -0
  75. package/cjs/components/Toggle/Toggle.module.cjs +7 -0
  76. package/cjs/components/Toggle/Toggle.module.cjs.map +1 -0
  77. package/cjs/components/Toolbar/Toolbar.cjs +107 -0
  78. package/cjs/components/Toolbar/Toolbar.cjs.map +1 -0
  79. package/cjs/components/Toolbar/Toolbar.context.cjs +8 -0
  80. package/cjs/components/Toolbar/Toolbar.context.cjs.map +1 -0
  81. package/cjs/components/Toolbar/Toolbar.module.cjs +12 -0
  82. package/cjs/components/Toolbar/Toolbar.module.cjs.map +1 -0
  83. package/cjs/components/Toolbar/ToolbarDivider/ToolbarDivider.cjs +31 -0
  84. package/cjs/components/Toolbar/ToolbarDivider/ToolbarDivider.cjs.map +1 -0
  85. package/cjs/components/Toolbar/ToolbarGroup/ToolbarGroup.cjs +31 -0
  86. package/cjs/components/Toolbar/ToolbarGroup/ToolbarGroup.cjs.map +1 -0
  87. package/cjs/components/Toolbar/ToolbarToggle/ToolbarToggle.cjs +47 -0
  88. package/cjs/components/Toolbar/ToolbarToggle/ToolbarToggle.cjs.map +1 -0
  89. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.cjs +61 -0
  90. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.cjs.map +1 -0
  91. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.cjs +8 -0
  92. package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.cjs.map +1 -0
  93. package/cjs/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.cjs +51 -0
  94. package/cjs/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.cjs.map +1 -0
  95. package/cjs/components/Toolbar/use-toolbar-navigation.cjs +76 -0
  96. package/cjs/components/Toolbar/use-toolbar-navigation.cjs.map +1 -0
  97. package/cjs/components/Tooltip/Tooltip.cjs +9 -5
  98. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  99. package/cjs/components/Tooltip/use-tooltip.cjs +6 -3
  100. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  101. package/cjs/components/Tour/Tour.cjs +283 -0
  102. package/cjs/components/Tour/Tour.cjs.map +1 -0
  103. package/cjs/components/Tour/Tour.context.cjs +25 -0
  104. package/cjs/components/Tour/Tour.context.cjs.map +1 -0
  105. package/cjs/components/Tour/Tour.module.cjs +19 -0
  106. package/cjs/components/Tour/Tour.module.cjs.map +1 -0
  107. package/cjs/components/Tour/TourBeacon/TourBeacon.cjs +54 -0
  108. package/cjs/components/Tour/TourBeacon/TourBeacon.cjs.map +1 -0
  109. package/cjs/components/Tour/TourBeaconPositioned.cjs +46 -0
  110. package/cjs/components/Tour/TourBeaconPositioned.cjs.map +1 -0
  111. package/cjs/components/Tour/TourBody/TourBody.cjs +37 -0
  112. package/cjs/components/Tour/TourBody/TourBody.cjs.map +1 -0
  113. package/cjs/components/Tour/TourCloseButton/TourCloseButton.cjs +26 -0
  114. package/cjs/components/Tour/TourCloseButton/TourCloseButton.cjs.map +1 -0
  115. package/cjs/components/Tour/TourNavigation/TourNavigation.cjs +63 -0
  116. package/cjs/components/Tour/TourNavigation/TourNavigation.cjs.map +1 -0
  117. package/cjs/components/Tour/TourOverlay/TourOverlay.cjs +70 -0
  118. package/cjs/components/Tour/TourOverlay/TourOverlay.cjs.map +1 -0
  119. package/cjs/components/Tour/TourRoot/TourRoot.cjs +125 -0
  120. package/cjs/components/Tour/TourRoot/TourRoot.cjs.map +1 -0
  121. package/cjs/components/Tour/TourStep/TourStep.cjs +10 -0
  122. package/cjs/components/Tour/TourStep/TourStep.cjs.map +1 -0
  123. package/cjs/components/Tour/TourTitle/TourTitle.cjs +38 -0
  124. package/cjs/components/Tour/TourTitle/TourTitle.cjs.map +1 -0
  125. package/cjs/components/Tour/TourTooltip/TourTooltip.cjs +87 -0
  126. package/cjs/components/Tour/TourTooltip/TourTooltip.cjs.map +1 -0
  127. package/cjs/components/Tour/get-overlay-hit-path.cjs +17 -0
  128. package/cjs/components/Tour/get-overlay-hit-path.cjs.map +1 -0
  129. package/cjs/components/Tour/is-element-in-view.cjs +30 -0
  130. package/cjs/components/Tour/is-element-in-view.cjs.map +1 -0
  131. package/cjs/components/Tour/press-aware-auto-update.cjs +38 -0
  132. package/cjs/components/Tour/press-aware-auto-update.cjs.map +1 -0
  133. package/cjs/components/Tour/use-target-rect.cjs +61 -0
  134. package/cjs/components/Tour/use-target-rect.cjs.map +1 -0
  135. package/cjs/components/Tour/use-tooltip-auto-focus.cjs +34 -0
  136. package/cjs/components/Tour/use-tooltip-auto-focus.cjs.map +1 -0
  137. package/cjs/components/Tour/use-tour-state.cjs +102 -0
  138. package/cjs/components/Tour/use-tour-state.cjs.map +1 -0
  139. package/cjs/components/Tour/use-tour.cjs +155 -0
  140. package/cjs/components/Tour/use-tour.cjs.map +1 -0
  141. package/cjs/components/TreeSelect/TreeSelect.cjs +29 -16
  142. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
  143. package/cjs/index.cjs +41 -1
  144. package/esm/components/ActionBar/ActionBar.mjs +0 -3
  145. package/esm/components/ActionBar/ActionBar.mjs.map +1 -1
  146. package/esm/components/ActionBar/ActionBar.module.mjs.map +1 -1
  147. package/esm/components/AppShell/AppShell.context.mjs.map +1 -1
  148. package/esm/components/AppShell/AppShell.mjs +35 -8
  149. package/esm/components/AppShell/AppShell.mjs.map +1 -1
  150. package/esm/components/AppShell/AppShell.module.mjs +2 -1
  151. package/esm/components/AppShell/AppShell.module.mjs.map +1 -1
  152. package/esm/components/AppShell/AppShellAside/AppShellAside.mjs +29 -8
  153. package/esm/components/AppShell/AppShellAside/AppShellAside.mjs.map +1 -1
  154. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs +29 -8
  155. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs.map +1 -1
  156. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs +29 -8
  157. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs.map +1 -1
  158. package/esm/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.mjs +3 -2
  159. package/esm/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.mjs.map +1 -1
  160. package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs +27 -16
  161. package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs.map +1 -1
  162. package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs +24 -16
  163. package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs.map +1 -1
  164. package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs +24 -16
  165. package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs.map +1 -1
  166. package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs +30 -19
  167. package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs.map +1 -1
  168. package/esm/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.mjs +26 -0
  169. package/esm/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.mjs.map +1 -0
  170. package/esm/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.mjs +10 -0
  171. package/esm/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.mjs.map +1 -0
  172. package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs +13 -5
  173. package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs.map +1 -1
  174. package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs +29 -8
  175. package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs.map +1 -1
  176. package/esm/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.mjs +270 -0
  177. package/esm/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.mjs.map +1 -0
  178. package/esm/components/AppShell/use-app-shell-resize/clamp-resize-size.mjs +14 -0
  179. package/esm/components/AppShell/use-app-shell-resize/clamp-resize-size.mjs.map +1 -0
  180. package/esm/components/AppShell/use-app-shell-resize/resize-section-config.mjs +49 -0
  181. package/esm/components/AppShell/use-app-shell-resize/resize-section-config.mjs.map +1 -0
  182. package/esm/components/AppShell/use-app-shell-resize/safe-area-inset.mjs +12 -0
  183. package/esm/components/AppShell/use-app-shell-resize/safe-area-inset.mjs.map +1 -0
  184. package/esm/components/AppShell/use-app-shell-resize/use-app-shell-resize.mjs +127 -0
  185. package/esm/components/AppShell/use-app-shell-resize/use-app-shell-resize.mjs.map +1 -0
  186. package/esm/components/AppShell/use-resizing/use-resizing.mjs +21 -3
  187. package/esm/components/AppShell/use-resizing/use-resizing.mjs.map +1 -1
  188. package/esm/components/Checkbox/Checkbox.mjs +10 -2
  189. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  190. package/esm/components/Checkbox/Checkbox.module.mjs +1 -0
  191. package/esm/components/Checkbox/Checkbox.module.mjs.map +1 -1
  192. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs +10 -2
  193. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
  194. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.mjs +1 -0
  195. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.mjs.map +1 -1
  196. package/esm/components/Dialog/Dialog.mjs +0 -1
  197. package/esm/components/Dialog/Dialog.mjs.map +1 -1
  198. package/esm/components/Dialog/Dialog.module.mjs.map +1 -1
  199. package/esm/components/HoverCard/HoverCard.context.mjs.map +1 -1
  200. package/esm/components/HoverCard/HoverCard.mjs +34 -5
  201. package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
  202. package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs +13 -18
  203. package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs.map +1 -1
  204. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs +7 -24
  205. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs.map +1 -1
  206. package/esm/components/HoverCard/use-hover-card.mjs +27 -13
  207. package/esm/components/HoverCard/use-hover-card.mjs.map +1 -1
  208. package/esm/components/Radio/Radio.mjs +10 -2
  209. package/esm/components/Radio/Radio.mjs.map +1 -1
  210. package/esm/components/Radio/Radio.module.mjs +1 -0
  211. package/esm/components/Radio/Radio.module.mjs.map +1 -1
  212. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs +10 -2
  213. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
  214. package/esm/components/Radio/RadioIndicator/RadioIndicator.module.mjs +1 -0
  215. package/esm/components/Radio/RadioIndicator/RadioIndicator.module.mjs.map +1 -1
  216. package/esm/components/Toggle/Toggle.mjs +80 -0
  217. package/esm/components/Toggle/Toggle.mjs.map +1 -0
  218. package/esm/components/Toggle/Toggle.module.mjs +7 -0
  219. package/esm/components/Toggle/Toggle.module.mjs.map +1 -0
  220. package/esm/components/Toolbar/Toolbar.context.mjs +8 -0
  221. package/esm/components/Toolbar/Toolbar.context.mjs.map +1 -0
  222. package/esm/components/Toolbar/Toolbar.mjs +107 -0
  223. package/esm/components/Toolbar/Toolbar.mjs.map +1 -0
  224. package/esm/components/Toolbar/Toolbar.module.mjs +12 -0
  225. package/esm/components/Toolbar/Toolbar.module.mjs.map +1 -0
  226. package/esm/components/Toolbar/ToolbarDivider/ToolbarDivider.mjs +31 -0
  227. package/esm/components/Toolbar/ToolbarDivider/ToolbarDivider.mjs.map +1 -0
  228. package/esm/components/Toolbar/ToolbarGroup/ToolbarGroup.mjs +31 -0
  229. package/esm/components/Toolbar/ToolbarGroup/ToolbarGroup.mjs.map +1 -0
  230. package/esm/components/Toolbar/ToolbarToggle/ToolbarToggle.mjs +47 -0
  231. package/esm/components/Toolbar/ToolbarToggle/ToolbarToggle.mjs.map +1 -0
  232. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.mjs +8 -0
  233. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.mjs.map +1 -0
  234. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.mjs +61 -0
  235. package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.mjs.map +1 -0
  236. package/esm/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.mjs +51 -0
  237. package/esm/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.mjs.map +1 -0
  238. package/esm/components/Toolbar/use-toolbar-navigation.mjs +76 -0
  239. package/esm/components/Toolbar/use-toolbar-navigation.mjs.map +1 -0
  240. package/esm/components/Tooltip/Tooltip.mjs +9 -5
  241. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  242. package/esm/components/Tooltip/use-tooltip.mjs +7 -4
  243. package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
  244. package/esm/components/Tour/Tour.context.mjs +22 -0
  245. package/esm/components/Tour/Tour.context.mjs.map +1 -0
  246. package/esm/components/Tour/Tour.mjs +283 -0
  247. package/esm/components/Tour/Tour.mjs.map +1 -0
  248. package/esm/components/Tour/Tour.module.mjs +19 -0
  249. package/esm/components/Tour/Tour.module.mjs.map +1 -0
  250. package/esm/components/Tour/TourBeacon/TourBeacon.mjs +54 -0
  251. package/esm/components/Tour/TourBeacon/TourBeacon.mjs.map +1 -0
  252. package/esm/components/Tour/TourBeaconPositioned.mjs +46 -0
  253. package/esm/components/Tour/TourBeaconPositioned.mjs.map +1 -0
  254. package/esm/components/Tour/TourBody/TourBody.mjs +37 -0
  255. package/esm/components/Tour/TourBody/TourBody.mjs.map +1 -0
  256. package/esm/components/Tour/TourCloseButton/TourCloseButton.mjs +26 -0
  257. package/esm/components/Tour/TourCloseButton/TourCloseButton.mjs.map +1 -0
  258. package/esm/components/Tour/TourNavigation/TourNavigation.mjs +63 -0
  259. package/esm/components/Tour/TourNavigation/TourNavigation.mjs.map +1 -0
  260. package/esm/components/Tour/TourOverlay/TourOverlay.mjs +70 -0
  261. package/esm/components/Tour/TourOverlay/TourOverlay.mjs.map +1 -0
  262. package/esm/components/Tour/TourRoot/TourRoot.mjs +125 -0
  263. package/esm/components/Tour/TourRoot/TourRoot.mjs.map +1 -0
  264. package/esm/components/Tour/TourStep/TourStep.mjs +10 -0
  265. package/esm/components/Tour/TourStep/TourStep.mjs.map +1 -0
  266. package/esm/components/Tour/TourTitle/TourTitle.mjs +38 -0
  267. package/esm/components/Tour/TourTitle/TourTitle.mjs.map +1 -0
  268. package/esm/components/Tour/TourTooltip/TourTooltip.mjs +87 -0
  269. package/esm/components/Tour/TourTooltip/TourTooltip.mjs.map +1 -0
  270. package/esm/components/Tour/get-overlay-hit-path.mjs +17 -0
  271. package/esm/components/Tour/get-overlay-hit-path.mjs.map +1 -0
  272. package/esm/components/Tour/is-element-in-view.mjs +30 -0
  273. package/esm/components/Tour/is-element-in-view.mjs.map +1 -0
  274. package/esm/components/Tour/press-aware-auto-update.mjs +38 -0
  275. package/esm/components/Tour/press-aware-auto-update.mjs.map +1 -0
  276. package/esm/components/Tour/use-target-rect.mjs +59 -0
  277. package/esm/components/Tour/use-target-rect.mjs.map +1 -0
  278. package/esm/components/Tour/use-tooltip-auto-focus.mjs +34 -0
  279. package/esm/components/Tour/use-tooltip-auto-focus.mjs.map +1 -0
  280. package/esm/components/Tour/use-tour-state.mjs +102 -0
  281. package/esm/components/Tour/use-tour-state.mjs.map +1 -0
  282. package/esm/components/Tour/use-tour.mjs +155 -0
  283. package/esm/components/Tour/use-tour.mjs.map +1 -0
  284. package/esm/components/TreeSelect/TreeSelect.mjs +30 -17
  285. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -1
  286. package/esm/index.mjs +21 -2
  287. package/lib/components/ActionBar/ActionBar.d.ts +1 -1
  288. package/lib/components/AppShell/AppShell.context.d.ts +4 -0
  289. package/lib/components/AppShell/AppShell.d.ts +5 -3
  290. package/lib/components/AppShell/AppShell.types.d.ts +70 -0
  291. package/lib/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.d.ts +6 -1
  292. package/lib/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.d.ts +3 -1
  293. package/lib/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.d.ts +3 -1
  294. package/lib/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.d.ts +3 -1
  295. package/lib/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.d.ts +3 -1
  296. package/lib/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.d.ts +2 -0
  297. package/lib/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.d.ts +1 -0
  298. package/lib/components/AppShell/AppShellMediaStyles/get-variables/get-variables.d.ts +6 -1
  299. package/lib/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.d.ts +10 -0
  300. package/lib/components/AppShell/index.d.ts +3 -2
  301. package/lib/components/AppShell/use-app-shell-resize/clamp-resize-size.d.ts +9 -0
  302. package/lib/components/AppShell/use-app-shell-resize/resize-section-config.d.ts +29 -0
  303. package/lib/components/AppShell/use-app-shell-resize/safe-area-inset.d.ts +1 -0
  304. package/lib/components/AppShell/use-app-shell-resize/use-app-shell-resize.d.ts +2 -0
  305. package/lib/components/AppShell/use-resizing/use-resizing.d.ts +2 -1
  306. package/lib/components/Checkbox/Checkbox.d.ts +2 -2
  307. package/lib/components/Checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +2 -2
  308. package/lib/components/HoverCard/HoverCard.context.d.ts +8 -4
  309. package/lib/components/HoverCard/HoverCard.d.ts +41 -0
  310. package/lib/components/HoverCard/index.d.ts +1 -1
  311. package/lib/components/HoverCard/use-hover-card.d.ts +11 -0
  312. package/lib/components/Radio/Radio.d.ts +2 -2
  313. package/lib/components/Radio/RadioIndicator/RadioIndicator.d.ts +2 -2
  314. package/lib/components/Toggle/Toggle.d.ts +73 -0
  315. package/lib/components/Toggle/index.d.ts +7 -0
  316. package/lib/components/Toolbar/Toolbar.context.d.ts +7 -0
  317. package/lib/components/Toolbar/Toolbar.d.ts +58 -0
  318. package/lib/components/Toolbar/ToolbarDivider/ToolbarDivider.d.ts +16 -0
  319. package/lib/components/Toolbar/ToolbarGroup/ToolbarGroup.d.ts +16 -0
  320. package/lib/components/Toolbar/ToolbarToggle/ToolbarToggle.d.ts +44 -0
  321. package/lib/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.d.ts +7 -0
  322. package/lib/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.d.ts +42 -0
  323. package/lib/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.d.ts +22 -0
  324. package/lib/components/Toolbar/index.d.ts +32 -0
  325. package/lib/components/Toolbar/use-toolbar-navigation.d.ts +11 -0
  326. package/lib/components/Tooltip/Tooltip.d.ts +2 -0
  327. package/lib/components/Tooltip/use-tooltip.d.ts +2 -0
  328. package/lib/components/Tour/Tour.context.d.ts +66 -0
  329. package/lib/components/Tour/Tour.d.ts +144 -0
  330. package/lib/components/Tour/TourBeacon/TourBeacon.d.ts +23 -0
  331. package/lib/components/Tour/TourBeaconPositioned.d.ts +13 -0
  332. package/lib/components/Tour/TourBody/TourBody.d.ts +19 -0
  333. package/lib/components/Tour/TourCloseButton/TourCloseButton.d.ts +12 -0
  334. package/lib/components/Tour/TourNavigation/TourNavigation.d.ts +11 -0
  335. package/lib/components/Tour/TourOverlay/TourOverlay.d.ts +22 -0
  336. package/lib/components/Tour/TourRoot/TourRoot.d.ts +72 -0
  337. package/lib/components/Tour/TourStep/TourStep.d.ts +30 -0
  338. package/lib/components/Tour/TourTitle/TourTitle.d.ts +19 -0
  339. package/lib/components/Tour/TourTooltip/TourTooltip.d.ts +29 -0
  340. package/lib/components/Tour/get-overlay-hit-path.d.ts +2 -0
  341. package/lib/components/Tour/index.d.ts +23 -0
  342. package/lib/components/Tour/is-element-in-view.d.ts +1 -0
  343. package/lib/components/Tour/press-aware-auto-update.d.ts +2 -0
  344. package/lib/components/Tour/use-target-rect.d.ts +13 -0
  345. package/lib/components/Tour/use-tooltip-auto-focus.d.ts +7 -0
  346. package/lib/components/Tour/use-tour-state.d.ts +23 -0
  347. package/lib/components/Tour/use-tour.d.ts +40 -0
  348. package/lib/components/TreeSelect/TreeSelect.d.ts +14 -0
  349. package/lib/components/TreeSelect/index.d.ts +2 -2
  350. package/lib/components/index.d.ts +3 -0
  351. package/package.json +5 -5
  352. package/styles/ActionBar.css +1 -0
  353. package/styles/ActionBar.layer.css +1 -0
  354. package/styles/AppShell.css +68 -0
  355. package/styles/AppShell.layer.css +68 -0
  356. package/styles/Checkbox.css +20 -0
  357. package/styles/Checkbox.layer.css +20 -0
  358. package/styles/CheckboxIndicator.css +16 -0
  359. package/styles/CheckboxIndicator.layer.css +16 -0
  360. package/styles/Dialog.css +1 -0
  361. package/styles/Dialog.layer.css +1 -0
  362. package/styles/Radio.css +10 -0
  363. package/styles/Radio.layer.css +10 -0
  364. package/styles/RadioIndicator.css +11 -0
  365. package/styles/RadioIndicator.layer.css +11 -0
  366. package/styles/Toggle.css +98 -0
  367. package/styles/Toggle.layer.css +99 -0
  368. package/styles/Toolbar.css +220 -0
  369. package/styles/Toolbar.layer.css +221 -0
  370. package/styles/Tour.css +127 -0
  371. package/styles/Tour.layer.css +128 -0
  372. package/styles.css +575 -0
  373. package/styles.layer.css +575 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSelect.cjs","names":["genericFactory","useProps","useId","useCombobox","useMemo","getTreeExpandedState","useCallback","useUncontrolled","findTreeNode","expandToLeafChecked","filterTreeData","flattenTreeSelectData","useRef","useStyles","useResolvedStylesApi","extractStyleProps","isNodeChecked","getChildrenNodesValues","checkedToValue","Combobox","Pill","isNodeIndeterminate","TreeSelectOption","classes","ScrollArea","PillsInput","isExternalInputChange","InputBase"],"sources":["../../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n ElementProps,\n extractStyleProps,\n Factory,\n genericFactory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Combobox, ComboboxLikeStylesNames, useCombobox } from '../Combobox';\nimport { isExternalInputChange } from '../Combobox/is-external-input-change/is-external-input-change';\nimport {\n __BaseInputProps,\n __InputStylesNames,\n ClearSectionMode,\n InputClearButtonProps,\n InputVariant,\n} from '../Input';\nimport { InputBase } from '../InputBase';\nimport { Pill } from '../Pill';\nimport { PillsInput } from '../PillsInput';\nimport { ScrollArea, ScrollAreaProps } from '../ScrollArea';\nimport type { TreeNodeData } from '../Tree';\nimport { filterTreeData } from '../Tree/filter-tree-data/filter-tree-data';\nimport {\n findTreeNode,\n getChildrenNodesValues,\n} from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\nimport { isNodeIndeterminate } from '../Tree/is-node-indeterminate/is-node-indeterminate';\nimport { getTreeExpandedState, TreeExpandedState } from '../Tree/use-tree';\nimport { flattenTreeSelectData } from './flatten-tree-select-data';\nimport {\n CheckedStrategy,\n checkedToValue,\n expandToLeafChecked,\n} from './get-checked-values-by-strategy';\nimport {\n TreeSelectChevronAriaLabels,\n TreeSelectOption,\n TreeSelectRenderNodePayload,\n} from './TreeSelectOption';\nimport classes from './TreeSelect.module.css';\n\nexport type TreeSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport type TreeSelectMode = 'single' | 'multiple' | 'checkbox';\n\nexport type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single'\n ? string | null\n : string[];\n\nexport interface TreeSelectProps<Mode extends TreeSelectMode = 'single'>\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<TreeSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Tree data */\n data: TreeNodeData[];\n\n /** Selection mode: 'single', 'multiple', or 'checkbox' (with cascade) @default 'single' */\n mode?: Mode;\n\n /** Controlled value */\n value?: TreeSelectValue<Mode>;\n\n /** Default value */\n defaultValue?: TreeSelectValue<Mode>;\n\n /** Called when value changes */\n onChange?: (value: TreeSelectValue<Mode>) => void;\n\n /** Disables parent-child cascade in checkbox mode @default false */\n checkStrictly?: boolean;\n\n /** Controls which checked nodes appear in value/pills in checkbox mode @default 'child' */\n checkedStrategy?: CheckedStrategy;\n\n /** Default expanded node values */\n defaultExpandedValues?: string[];\n\n /** Expand all nodes by default @default false */\n defaultExpandAll?: boolean;\n\n /** Controlled expanded state */\n expandedValues?: string[];\n\n /** Called when expanded state changes */\n onExpandedChange?: (values: string[]) => void;\n\n /** Also toggle expand when clicking a parent node (not just the chevron). In `single` and `multiple` modes, parent clicks only expand; only leaves can be selected. In `checkbox` mode, parent clicks both check and expand. @default false */\n expandOnClick?: boolean;\n\n /** Enables search filtering @default false */\n searchable?: boolean;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?: (value: string) => void;\n\n /** Custom filter function */\n filter?: (query: string, node: TreeNodeData) => boolean;\n\n /** Message when no nodes match search */\n nothingFoundMessage?: React.ReactNode;\n\n /** Allows deselecting in single mode @default true */\n allowDeselect?: boolean;\n\n /** Shows clear button @default false */\n clearable?: boolean;\n\n /** Determines how the clear button and rightSection are rendered @default 'both' */\n clearSectionMode?: ClearSectionMode;\n\n /** Props for the clear button */\n clearButtonProps?: InputClearButtonProps;\n\n /** Maximum selectable values (multiple/checkbox mode) */\n maxValues?: number;\n\n /** Maximum displayed pills before \"+N more\" */\n maxDisplayedValues?: number;\n\n /** Content shown when values overflow maxDisplayedValues */\n maxDisplayedValuesContent?: React.ReactNode | ((overflow: number) => React.ReactNode);\n\n /** Called with removed value in multiple/checkbox mode */\n onRemove?: (value: string) => void;\n\n /** Called when clear button is clicked */\n onClear?: () => void;\n\n /** Custom node rendering in the dropdown */\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n\n /** Show tree connection lines between parent and child nodes @default true */\n withLines?: boolean;\n\n /** Props for the hidden input */\n hiddenInputProps?: Omit<React.ComponentProps<'input'>, 'value'>;\n\n /** Divider for hidden input values @default ',' */\n hiddenInputValuesDivider?: string;\n\n /** Props for the ScrollArea in the dropdown */\n scrollAreaProps?: ScrollAreaProps;\n\n /** Controls the default chevron color */\n chevronColor?: MantineColor;\n\n /** Max dropdown height @default 220 */\n maxDropdownHeight?: number | string;\n\n /** Controlled dropdown state */\n dropdownOpened?: boolean;\n\n /** Default dropdown state */\n defaultDropdownOpened?: boolean;\n\n /** Called when dropdown opens */\n onDropdownOpen?: () => void;\n\n /** Called when dropdown closes */\n onDropdownClose?: () => void;\n\n /** Props passed to the underlying Combobox */\n comboboxProps?: Record<string, any>;\n\n /** Clear search on selection change @default true */\n clearSearchOnChange?: boolean;\n\n /** Opens dropdown on focus (searchable mode) @default true */\n openOnFocus?: boolean;\n\n /** aria-label values for the expand/collapse chevron button */\n chevronAriaLabels?: TreeSelectChevronAriaLabels;\n}\n\nexport type TreeSelectFactory = Factory<{\n props: TreeSelectProps;\n ref: HTMLInputElement;\n stylesNames: TreeSelectStylesNames;\n variant: InputVariant;\n signature: <Mode extends TreeSelectMode = 'single'>(\n props: TreeSelectProps<Mode>\n ) => React.JSX.Element;\n}>;\n\nconst defaultProps = {\n mode: 'single',\n allowDeselect: true,\n checkedStrategy: 'child',\n maxValues: Infinity,\n hiddenInputValuesDivider: ',',\n clearSearchOnChange: true,\n openOnFocus: true,\n size: 'sm',\n withLines: true,\n} satisfies Partial<TreeSelectProps<TreeSelectMode>>;\n\nconst clearSectionOffset: Record<string, number> = {\n xs: 41,\n sm: 50,\n md: 60,\n lg: 72,\n xl: 89,\n};\n\nfunction getAncestorsToNode(value: string, nodes: TreeNodeData[]): string[] | null {\n for (const node of nodes) {\n if (node.value === value) {\n return [];\n }\n if (Array.isArray(node.children)) {\n const path = getAncestorsToNode(value, node.children);\n if (path !== null) {\n return [node.value, ...path];\n }\n }\n }\n return null;\n}\n\nexport const TreeSelect = genericFactory<TreeSelectFactory>((_props) => {\n const props = useProps(['Input', 'InputWrapper', 'TreeSelect'], defaultProps as any, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n data,\n mode,\n value,\n defaultValue,\n onChange,\n checkStrictly,\n checkedStrategy,\n defaultExpandedValues,\n defaultExpandAll,\n expandedValues,\n onExpandedChange,\n expandOnClick,\n searchable,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n filter,\n nothingFoundMessage,\n allowDeselect,\n clearable,\n clearSectionMode,\n clearButtonProps,\n maxValues,\n maxDisplayedValues,\n maxDisplayedValuesContent,\n onRemove,\n onClear,\n renderNode,\n withLines,\n hiddenInputProps,\n hiddenInputValuesDivider,\n scrollAreaProps,\n chevronColor,\n maxDropdownHeight,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n comboboxProps,\n clearSearchOnChange,\n openOnFocus,\n chevronAriaLabels,\n variant,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n disabled,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n successProps,\n wrapperProps,\n description,\n label,\n error,\n success,\n withErrorStyles,\n withSuccessStyles,\n name,\n form,\n id,\n placeholder,\n required,\n mod,\n attributes,\n ...others\n } = props;\n\n const isMulti = mode === 'multiple' || mode === 'checkbox';\n const isCheckbox = mode === 'checkbox';\n const _id = useId(id);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen: () => {\n onDropdownOpen?.();\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n },\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const initialExpanded = useMemo(() => {\n if (defaultExpandAll) {\n return getTreeExpandedState(data, '*');\n }\n if (defaultExpandedValues) {\n return getTreeExpandedState(data, defaultExpandedValues);\n }\n return getTreeExpandedState(data, []);\n }, []);\n\n const expandedToRecord = useCallback(\n (values: string[] | undefined): TreeExpandedState | undefined => {\n if (!values) {\n return undefined;\n }\n return getTreeExpandedState(data, values);\n },\n [data]\n );\n\n const [_expandedState, setExpandedState] = useUncontrolled<TreeExpandedState>({\n value: expandedToRecord(expandedValues),\n defaultValue: initialExpanded,\n finalValue: {},\n onChange: (val) => {\n if (onExpandedChange) {\n onExpandedChange(\n Object.entries(val)\n .filter(([, v]) => v)\n .map(([k]) => k)\n );\n }\n },\n });\n\n const toggleExpand = useCallback(\n (nodeValue: string) => {\n setExpandedState({ ..._expandedState, [nodeValue]: !_expandedState[nodeValue] });\n },\n [_expandedState]\n );\n\n const initialSearchValue = useMemo(() => {\n if (mode !== 'single' || !defaultValue) {\n return '';\n }\n const node = findTreeNode(defaultValue as string, data);\n return node ? (typeof node.label === 'string' ? node.label : '') : '';\n }, []);\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: initialSearchValue,\n onChange: onSearchChange,\n });\n\n const handleSearchChange = (val: string) => {\n setSearchValue(val);\n combobox.resetSelectedOption();\n };\n\n const [_value, setValue] = useUncontrolled({\n value: value as any,\n defaultValue: defaultValue as any,\n finalValue: isMulti ? [] : null,\n onChange,\n });\n\n const internalChecked = useMemo(() => {\n if (!isCheckbox || !_value || !Array.isArray(_value)) {\n return [];\n }\n if (checkStrictly) {\n return _value;\n }\n return expandToLeafChecked(_value, data);\n }, [isCheckbox, _value, data, checkStrictly]);\n\n const filteredData = useMemo(() => {\n if (!searchable || !_searchValue) {\n return data;\n }\n if (mode === 'single' && _value) {\n const node = findTreeNode(_value as string, data);\n if (node && _searchValue === (typeof node.label === 'string' ? node.label : '')) {\n return data;\n }\n }\n return filterTreeData(data, _searchValue, filter);\n }, [data, _searchValue, filter, searchable, mode, _value]);\n\n const expandedForRender = useMemo(() => {\n if (_searchValue && filteredData !== data) {\n const expanded = { ..._expandedState };\n const expandFilteredParents = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n expanded[node.value] = true;\n expandFilteredParents(node.children);\n }\n }\n };\n expandFilteredParents(filteredData);\n return expanded;\n }\n return _expandedState;\n }, [filteredData, _expandedState, _searchValue, data]);\n\n const flatNodes = useMemo(\n () => flattenTreeSelectData(filteredData, expandedForRender),\n [filteredData, expandedForRender]\n );\n\n const flatNodesRef = useRef(flatNodes);\n flatNodesRef.current = flatNodes;\n\n const nodeLookup = useMemo(() => {\n const lookup: Record<string, TreeNodeData> = {};\n const walk = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n lookup[node.value] = node;\n if (Array.isArray(node.children)) {\n walk(node.children);\n }\n }\n };\n walk(data);\n return lookup;\n }, [data]);\n\n const getNodeLabel = (nodeValue: string): string => {\n const node = nodeLookup[nodeValue];\n if (!node) {\n return nodeValue;\n }\n return typeof node.label === 'string' ? node.label : nodeValue;\n };\n\n const getStyles = useStyles<TreeSelectFactory>({\n name: 'TreeSelect',\n classes: {} as any,\n props: props as any,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<TreeSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const {\n styleProps,\n rest: { type, autoComplete, ...rest },\n } = extractStyleProps(others);\n\n const handleOptionSubmit = (val: string) => {\n if (mode === 'single') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const nextValue = allowDeselect && val === _value ? null : val;\n setValue(nextValue);\n combobox.closeDropdown();\n if (clearSearchOnChange) {\n handleSearchChange(nextValue ? getNodeLabel(nextValue) : '');\n }\n } else if (mode === 'multiple') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const arr = (_value as string[]) || [];\n if (arr.includes(val)) {\n setValue(arr.filter((v: string) => v !== val));\n onRemove?.(val);\n } else if (arr.length < (maxValues ?? Infinity)) {\n setValue([...arr, val]);\n } else {\n return;\n }\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n } else if (mode === 'checkbox') {\n const nodeChecked = checkStrictly\n ? internalChecked.includes(val)\n : isNodeChecked(val, data, internalChecked);\n\n let newInternalChecked: string[];\n if (checkStrictly) {\n newInternalChecked = nodeChecked\n ? internalChecked.filter((v) => v !== val)\n : [...internalChecked, val];\n } else {\n const childLeaves = getChildrenNodesValues(val, data);\n if (nodeChecked) {\n newInternalChecked = internalChecked.filter((v) => !childLeaves.includes(v));\n } else {\n newInternalChecked = [...new Set([...internalChecked, ...childLeaves])];\n }\n }\n\n const newValue = checkedToValue(newInternalChecked, data, checkedStrategy!);\n if (!nodeChecked && newValue.length > (maxValues ?? Infinity)) {\n return;\n }\n setValue(newValue);\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n if (!_expandedState[val]) {\n toggleExpand(val);\n }\n }\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === ' ' && !searchable && isMulti) {\n event.preventDefault();\n combobox.toggleDropdown();\n }\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && isMulti) {\n const arr = (_value as string[]) || [];\n if (arr.length > 0) {\n const removed = arr[arr.length - 1];\n onRemove?.(removed);\n setValue(arr.slice(0, -1));\n }\n }\n\n if (!combobox.dropdownOpened) {\n return;\n }\n\n const index = combobox.getSelectedOptionIndex();\n if (index < 0 || index >= flatNodesRef.current.length) {\n return;\n }\n\n const currentNode = flatNodesRef.current[index];\n\n if (event.key === 'ArrowRight') {\n if (currentNode.hasChildren && !currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n }\n }\n\n if (event.key === 'ArrowLeft') {\n if (currentNode.hasChildren && currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n } else if (currentNode.parent) {\n event.preventDefault();\n const parentIndex = flatNodesRef.current.findIndex(\n (n) => n.node.value === currentNode.parent\n );\n if (parentIndex >= 0) {\n combobox.selectOption(parentIndex);\n }\n }\n }\n };\n\n useEffect(() => {\n if (mode !== 'single' || !searchable) {\n return;\n }\n if (value === null) {\n handleSearchChange('');\n } else if (typeof value === 'string') {\n handleSearchChange(getNodeLabel(value));\n }\n }, [value]);\n\n const prevDropdownOpenedRef = useRef(false);\n useEffect(() => {\n if (combobox.dropdownOpened && !prevDropdownOpenedRef.current && searchable && _value) {\n const targets = Array.isArray(_value) ? _value : [_value];\n const newExpanded = { ..._expandedState };\n let changed = false;\n for (const target of targets) {\n const ancestors = getAncestorsToNode(target as string, data);\n if (ancestors) {\n for (const a of ancestors) {\n if (!newExpanded[a]) {\n newExpanded[a] = true;\n changed = true;\n }\n }\n }\n }\n if (changed) {\n setExpandedState(newExpanded);\n requestAnimationFrame(() => {\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n });\n }\n }\n prevDropdownOpenedRef.current = combobox.dropdownOpened;\n });\n\n const clearButton = (\n <Combobox.ClearButton\n {...clearButtonProps}\n onClear={() => {\n onClear?.();\n setValue(isMulti ? [] : null);\n handleSearchChange('');\n combobox.focusTarget();\n }}\n />\n );\n\n const hasValue = isMulti\n ? Array.isArray(_value) && _value.length > 0\n : _value != null && _value !== '';\n const _clearable = clearable && hasValue && !disabled && !readOnly;\n\n const singleDisplayLabel = useMemo(() => {\n if (mode !== 'single' || !_value) {\n return '';\n }\n return getNodeLabel(_value as string);\n }, [mode, _value, nodeLookup]);\n\n const displayValues = useMemo(() => {\n if (!isMulti || !Array.isArray(_value)) {\n return [];\n }\n return _value as string[];\n }, [isMulti, _value]);\n\n const pillsListStyle =\n _clearable && isMulti\n ? { paddingInlineEnd: clearSectionOffset[size as string] ?? clearSectionOffset.sm }\n : undefined;\n\n const visiblePills =\n maxDisplayedValues != null ? displayValues.slice(0, maxDisplayedValues) : displayValues;\n\n const overflowCount =\n maxDisplayedValues != null ? Math.max(0, displayValues.length - maxDisplayedValues) : 0;\n\n const pills = visiblePills.map((item, index) => (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => {\n if (isCheckbox) {\n const childLeaves = checkStrictly ? [item] : getChildrenNodesValues(item, data);\n const newInternal = internalChecked.filter((v) => !childLeaves.includes(v));\n setValue(checkedToValue(newInternal, data, checkedStrategy!));\n } else {\n setValue((_value as string[]).filter((v: string) => v !== item));\n }\n onRemove?.(item);\n }}\n unstyled={unstyled}\n disabled={disabled}\n {...getStyles('pill')}\n >\n {getNodeLabel(item)}\n </Pill>\n ));\n\n if (overflowCount > 0) {\n const overflowContent =\n typeof maxDisplayedValuesContent === 'function'\n ? maxDisplayedValuesContent(overflowCount)\n : maxDisplayedValuesContent || `+${overflowCount} more`;\n pills.push(\n <Pill key=\"__overflow\" unstyled={unstyled} disabled={disabled} {...getStyles('pill')}>\n {overflowContent}\n </Pill>\n );\n }\n\n const isEmpty = flatNodes.length === 0;\n\n const options = flatNodes.map((flatNode) => {\n const isSelected =\n mode === 'single'\n ? _value === flatNode.node.value\n : mode === 'multiple'\n ? ((_value as string[]) || []).includes(flatNode.node.value)\n : false;\n\n const nodeChecked = isCheckbox\n ? checkStrictly\n ? internalChecked.includes(flatNode.node.value)\n : isNodeChecked(flatNode.node.value, data, internalChecked)\n : false;\n\n const nodeIndeterminate =\n isCheckbox && !checkStrictly\n ? isNodeIndeterminate(flatNode.node.value, data, internalChecked)\n : false;\n\n return (\n <TreeSelectOption\n key={flatNode.node.value}\n node={flatNode.node}\n level={flatNode.level}\n expanded={flatNode.expanded}\n hasChildren={flatNode.hasChildren}\n selected={isSelected}\n checked={nodeChecked}\n indeterminate={nodeIndeterminate}\n showCheckbox={isCheckbox}\n isLastChild={flatNode.isLastChild}\n lineGuides={flatNode.lineGuides}\n withLines={!!withLines}\n onToggleExpand={toggleExpand}\n renderNode={renderNode}\n chevronAriaLabels={chevronAriaLabels}\n />\n );\n });\n\n const dropdown = (\n <Combobox.Dropdown hidden={readOnly || disabled}>\n <Combobox.Options\n className={classes.optionsWrapper}\n aria-multiselectable={isMulti || undefined}\n >\n <ScrollArea.Autosize\n mah={maxDropdownHeight ?? 220}\n type=\"scroll\"\n scrollbarSize=\"var(--combobox-padding)\"\n offsetScrollbars=\"y\"\n {...scrollAreaProps}\n >\n {options}\n </ScrollArea.Autosize>\n {isEmpty && nothingFoundMessage && <Combobox.Empty>{nothingFoundMessage}</Combobox.Empty>}\n </Combobox.Options>\n </Combobox.Dropdown>\n );\n\n if (isMulti) {\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"TreeSelect\"\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n success={success}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n __stylesApiProps={{\n ...props,\n rightSectionPointerEvents: rightSectionPointerEvents || 'none',\n multiline: true,\n }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n data-expanded={combobox.dropdownOpened || undefined}\n id={_id}\n required={required}\n mod={mod}\n attributes={attributes}\n >\n <Pill.Group\n attributes={attributes}\n disabled={disabled}\n unstyled={unstyled}\n {...getStyles('pillsList', { style: pillsListStyle })}\n >\n {pills}\n <Combobox.EventsTarget autoComplete={autoComplete}>\n <PillsInput.Field\n {...rest}\n id={_id}\n placeholder={placeholder}\n type={!searchable && !placeholder ? 'hidden' : 'visible'}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n handleSearchChange('');\n }}\n onKeyDown={handleKeyDown}\n value={_searchValue}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n if (searchable) {\n combobox.openDropdown();\n }\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n name={name}\n valuesDivider={hiddenInputValuesDivider}\n value={_value}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n }\n\n return (\n <>\n <Combobox\n store={combobox}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.Target targetType={searchable ? 'input' : 'button'} autoComplete={autoComplete}>\n <InputBase\n id={_id}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n {...rest}\n {...styleProps}\n size={size}\n __staticSelector=\"TreeSelect\"\n disabled={disabled}\n readOnly={readOnly || !searchable}\n value={searchable ? _searchValue : singleDisplayLabel}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n combobox.openDropdown();\n }}\n onFocus={(event) => {\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n onFocus?.(event);\n }}\n onBlur={(event) => {\n if (searchable) {\n combobox.closeDropdown();\n }\n handleSearchChange(_value ? getNodeLabel(_value as string) : '');\n onBlur?.(event);\n }}\n onClick={(event) => {\n searchable ? combobox.openDropdown() : combobox.toggleDropdown();\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n pointer={!searchable}\n error={error}\n success={success}\n attributes={attributes}\n className={className}\n style={style}\n variant={variant}\n radius={radius}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n placeholder={placeholder}\n required={required}\n mod={mod}\n />\n </Combobox.Target>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n value={_value}\n name={name}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nTreeSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nTreeSelect.displayName = '@mantine/core/TreeSelect';\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeSelect.cjs","names":["genericFactory","useProps","useId","useCombobox","useMemo","getTreeExpandedState","useCallback","useUncontrolled","findTreeNode","expandToLeafChecked","filterTreeData","flattenTreeSelectData","useRef","useStyles","useResolvedStylesApi","extractStyleProps","isNodeChecked","getChildrenNodesValues","checkedToValue","Combobox","Fragment","Pill","isNodeIndeterminate","TreeSelectOption","classes","ScrollArea","PillsInput","isExternalInputChange","InputBase"],"sources":["../../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import { Fragment, useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n ElementProps,\n extractStyleProps,\n Factory,\n genericFactory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Combobox, ComboboxLikeStylesNames, useCombobox } from '../Combobox';\nimport { isExternalInputChange } from '../Combobox/is-external-input-change/is-external-input-change';\nimport {\n __BaseInputProps,\n __InputStylesNames,\n ClearSectionMode,\n InputClearButtonProps,\n InputVariant,\n} from '../Input';\nimport { InputBase } from '../InputBase';\nimport { Pill } from '../Pill';\nimport { PillsInput } from '../PillsInput';\nimport { ScrollArea, ScrollAreaProps } from '../ScrollArea';\nimport type { TreeNodeData } from '../Tree';\nimport { filterTreeData } from '../Tree/filter-tree-data/filter-tree-data';\nimport {\n findTreeNode,\n getChildrenNodesValues,\n} from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\nimport { isNodeIndeterminate } from '../Tree/is-node-indeterminate/is-node-indeterminate';\nimport { getTreeExpandedState, TreeExpandedState } from '../Tree/use-tree';\nimport { flattenTreeSelectData } from './flatten-tree-select-data';\nimport {\n CheckedStrategy,\n checkedToValue,\n expandToLeafChecked,\n} from './get-checked-values-by-strategy';\nimport {\n TreeSelectChevronAriaLabels,\n TreeSelectOption,\n TreeSelectRenderNodePayload,\n} from './TreeSelectOption';\nimport classes from './TreeSelect.module.css';\n\nexport type TreeSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport type TreeSelectMode = 'single' | 'multiple' | 'checkbox';\n\nexport type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single'\n ? string | null\n : string[];\n\nexport interface TreeSelectRenderPillPayload {\n /** Node associated with the pill. If the value is not present in `data`, a placeholder node with `label` equal to the value is passed. */\n node: TreeNodeData;\n\n /** Selected value that the pill represents */\n value: string;\n\n /** Removes the value from the selection. In `checkbox` mode unchecks the node and, unless `checkStrictly` is set, all its children, same as the default pill remove button. */\n onRemove: () => void;\n\n /** Value of the `disabled` prop passed to the component */\n disabled?: boolean;\n\n /** Value of the `readOnly` prop passed to the component */\n readOnly?: boolean;\n}\n\nexport interface TreeSelectProps<Mode extends TreeSelectMode = 'single'>\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<TreeSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Tree data */\n data: TreeNodeData[];\n\n /** Selection mode: 'single', 'multiple', or 'checkbox' (with cascade) @default 'single' */\n mode?: Mode;\n\n /** Controlled value */\n value?: TreeSelectValue<Mode>;\n\n /** Default value */\n defaultValue?: TreeSelectValue<Mode>;\n\n /** Called when value changes */\n onChange?: (value: TreeSelectValue<Mode>) => void;\n\n /** Disables parent-child cascade in checkbox mode @default false */\n checkStrictly?: boolean;\n\n /** Controls which checked nodes appear in value/pills in checkbox mode @default 'child' */\n checkedStrategy?: CheckedStrategy;\n\n /** Default expanded node values */\n defaultExpandedValues?: string[];\n\n /** Expand all nodes by default @default false */\n defaultExpandAll?: boolean;\n\n /** Controlled expanded state */\n expandedValues?: string[];\n\n /** Called when expanded state changes */\n onExpandedChange?: (values: string[]) => void;\n\n /** Also toggle expand when clicking a parent node (not just the chevron). In `single` and `multiple` modes, parent clicks only expand; only leaves can be selected. In `checkbox` mode, parent clicks both check and expand. @default false */\n expandOnClick?: boolean;\n\n /** Enables search filtering @default false */\n searchable?: boolean;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?: (value: string) => void;\n\n /** Custom filter function */\n filter?: (query: string, node: TreeNodeData) => boolean;\n\n /** Message when no nodes match search */\n nothingFoundMessage?: React.ReactNode;\n\n /** Allows deselecting in single mode @default true */\n allowDeselect?: boolean;\n\n /** Shows clear button @default false */\n clearable?: boolean;\n\n /** Determines how the clear button and rightSection are rendered @default 'both' */\n clearSectionMode?: ClearSectionMode;\n\n /** Props for the clear button */\n clearButtonProps?: InputClearButtonProps;\n\n /** Maximum selectable values (multiple/checkbox mode) */\n maxValues?: number;\n\n /** Maximum displayed pills before \"+N more\" */\n maxDisplayedValues?: number;\n\n /** Content shown when values overflow maxDisplayedValues */\n maxDisplayedValuesContent?: React.ReactNode | ((overflow: number) => React.ReactNode);\n\n /** Called with removed value in multiple/checkbox mode */\n onRemove?: (value: string) => void;\n\n /** Called when clear button is clicked */\n onClear?: () => void;\n\n /** Custom node rendering in the dropdown */\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n\n /** Custom pill rendering in `multiple` and `checkbox` modes. Not called for the overflow pill displayed when `maxDisplayedValues` is exceeded. */\n renderPill?: (payload: TreeSelectRenderPillPayload) => React.ReactNode;\n\n /** Show tree connection lines between parent and child nodes @default true */\n withLines?: boolean;\n\n /** Props for the hidden input */\n hiddenInputProps?: Omit<React.ComponentProps<'input'>, 'value'>;\n\n /** Divider for hidden input values @default ',' */\n hiddenInputValuesDivider?: string;\n\n /** Props for the ScrollArea in the dropdown */\n scrollAreaProps?: ScrollAreaProps;\n\n /** Controls the default chevron color */\n chevronColor?: MantineColor;\n\n /** Max dropdown height @default 220 */\n maxDropdownHeight?: number | string;\n\n /** Controlled dropdown state */\n dropdownOpened?: boolean;\n\n /** Default dropdown state */\n defaultDropdownOpened?: boolean;\n\n /** Called when dropdown opens */\n onDropdownOpen?: () => void;\n\n /** Called when dropdown closes */\n onDropdownClose?: () => void;\n\n /** Props passed to the underlying Combobox */\n comboboxProps?: Record<string, any>;\n\n /** Clear search on selection change @default true */\n clearSearchOnChange?: boolean;\n\n /** Opens dropdown on focus (searchable mode) @default true */\n openOnFocus?: boolean;\n\n /** aria-label values for the expand/collapse chevron button */\n chevronAriaLabels?: TreeSelectChevronAriaLabels;\n}\n\nexport type TreeSelectFactory = Factory<{\n props: TreeSelectProps;\n ref: HTMLInputElement;\n stylesNames: TreeSelectStylesNames;\n variant: InputVariant;\n signature: <Mode extends TreeSelectMode = 'single'>(\n props: TreeSelectProps<Mode>\n ) => React.JSX.Element;\n}>;\n\nconst defaultProps = {\n mode: 'single',\n allowDeselect: true,\n checkedStrategy: 'child',\n maxValues: Infinity,\n hiddenInputValuesDivider: ',',\n clearSearchOnChange: true,\n openOnFocus: true,\n size: 'sm',\n withLines: true,\n} satisfies Partial<TreeSelectProps<TreeSelectMode>>;\n\nconst clearSectionOffset: Record<string, number> = {\n xs: 41,\n sm: 50,\n md: 60,\n lg: 72,\n xl: 89,\n};\n\nfunction getAncestorsToNode(value: string, nodes: TreeNodeData[]): string[] | null {\n for (const node of nodes) {\n if (node.value === value) {\n return [];\n }\n if (Array.isArray(node.children)) {\n const path = getAncestorsToNode(value, node.children);\n if (path !== null) {\n return [node.value, ...path];\n }\n }\n }\n return null;\n}\n\nexport const TreeSelect = genericFactory<TreeSelectFactory>((_props) => {\n const props = useProps(['Input', 'InputWrapper', 'TreeSelect'], defaultProps as any, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n data,\n mode,\n value,\n defaultValue,\n onChange,\n checkStrictly,\n checkedStrategy,\n defaultExpandedValues,\n defaultExpandAll,\n expandedValues,\n onExpandedChange,\n expandOnClick,\n searchable,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n filter,\n nothingFoundMessage,\n allowDeselect,\n clearable,\n clearSectionMode,\n clearButtonProps,\n maxValues,\n maxDisplayedValues,\n maxDisplayedValuesContent,\n onRemove,\n onClear,\n renderNode,\n renderPill,\n withLines,\n hiddenInputProps,\n hiddenInputValuesDivider,\n scrollAreaProps,\n chevronColor,\n maxDropdownHeight,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n comboboxProps,\n clearSearchOnChange,\n openOnFocus,\n chevronAriaLabels,\n variant,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n disabled,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n successProps,\n wrapperProps,\n description,\n label,\n error,\n success,\n withErrorStyles,\n withSuccessStyles,\n name,\n form,\n id,\n placeholder,\n required,\n mod,\n attributes,\n ...others\n } = props;\n\n const isMulti = mode === 'multiple' || mode === 'checkbox';\n const isCheckbox = mode === 'checkbox';\n const _id = useId(id);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen: () => {\n onDropdownOpen?.();\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n },\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const initialExpanded = useMemo(() => {\n if (defaultExpandAll) {\n return getTreeExpandedState(data, '*');\n }\n if (defaultExpandedValues) {\n return getTreeExpandedState(data, defaultExpandedValues);\n }\n return getTreeExpandedState(data, []);\n }, []);\n\n const expandedToRecord = useCallback(\n (values: string[] | undefined): TreeExpandedState | undefined => {\n if (!values) {\n return undefined;\n }\n return getTreeExpandedState(data, values);\n },\n [data]\n );\n\n const [_expandedState, setExpandedState] = useUncontrolled<TreeExpandedState>({\n value: expandedToRecord(expandedValues),\n defaultValue: initialExpanded,\n finalValue: {},\n onChange: (val) => {\n if (onExpandedChange) {\n onExpandedChange(\n Object.entries(val)\n .filter(([, v]) => v)\n .map(([k]) => k)\n );\n }\n },\n });\n\n const toggleExpand = useCallback(\n (nodeValue: string) => {\n setExpandedState({ ..._expandedState, [nodeValue]: !_expandedState[nodeValue] });\n },\n [_expandedState]\n );\n\n const initialSearchValue = useMemo(() => {\n if (mode !== 'single' || !defaultValue) {\n return '';\n }\n const node = findTreeNode(defaultValue as string, data);\n return node ? (typeof node.label === 'string' ? node.label : '') : '';\n }, []);\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: initialSearchValue,\n onChange: onSearchChange,\n });\n\n const handleSearchChange = (val: string) => {\n setSearchValue(val);\n combobox.resetSelectedOption();\n };\n\n const [_value, setValue] = useUncontrolled({\n value: value as any,\n defaultValue: defaultValue as any,\n finalValue: isMulti ? [] : null,\n onChange,\n });\n\n const internalChecked = useMemo(() => {\n if (!isCheckbox || !_value || !Array.isArray(_value)) {\n return [];\n }\n if (checkStrictly) {\n return _value;\n }\n return expandToLeafChecked(_value, data);\n }, [isCheckbox, _value, data, checkStrictly]);\n\n const filteredData = useMemo(() => {\n if (!searchable || !_searchValue) {\n return data;\n }\n if (mode === 'single' && _value) {\n const node = findTreeNode(_value as string, data);\n if (node && _searchValue === (typeof node.label === 'string' ? node.label : '')) {\n return data;\n }\n }\n return filterTreeData(data, _searchValue, filter);\n }, [data, _searchValue, filter, searchable, mode, _value]);\n\n const expandedForRender = useMemo(() => {\n if (_searchValue && filteredData !== data) {\n const expanded = { ..._expandedState };\n const expandFilteredParents = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n expanded[node.value] = true;\n expandFilteredParents(node.children);\n }\n }\n };\n expandFilteredParents(filteredData);\n return expanded;\n }\n return _expandedState;\n }, [filteredData, _expandedState, _searchValue, data]);\n\n const flatNodes = useMemo(\n () => flattenTreeSelectData(filteredData, expandedForRender),\n [filteredData, expandedForRender]\n );\n\n const flatNodesRef = useRef(flatNodes);\n flatNodesRef.current = flatNodes;\n\n const nodeLookup = useMemo(() => {\n const lookup: Record<string, TreeNodeData> = {};\n const walk = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n lookup[node.value] = node;\n if (Array.isArray(node.children)) {\n walk(node.children);\n }\n }\n };\n walk(data);\n return lookup;\n }, [data]);\n\n const getNodeLabel = (nodeValue: string): string => {\n const node = nodeLookup[nodeValue];\n if (!node) {\n return nodeValue;\n }\n return typeof node.label === 'string' ? node.label : nodeValue;\n };\n\n const getStyles = useStyles<TreeSelectFactory>({\n name: 'TreeSelect',\n classes: {} as any,\n props: props as any,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<TreeSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const {\n styleProps,\n rest: { type, autoComplete, ...rest },\n } = extractStyleProps(others);\n\n const handleOptionSubmit = (val: string) => {\n if (mode === 'single') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const nextValue = allowDeselect && val === _value ? null : val;\n setValue(nextValue);\n combobox.closeDropdown();\n if (clearSearchOnChange) {\n handleSearchChange(nextValue ? getNodeLabel(nextValue) : '');\n }\n } else if (mode === 'multiple') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const arr = (_value as string[]) || [];\n if (arr.includes(val)) {\n setValue(arr.filter((v: string) => v !== val));\n onRemove?.(val);\n } else if (arr.length < (maxValues ?? Infinity)) {\n setValue([...arr, val]);\n } else {\n return;\n }\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n } else if (mode === 'checkbox') {\n const nodeChecked = checkStrictly\n ? internalChecked.includes(val)\n : isNodeChecked(val, data, internalChecked);\n\n let newInternalChecked: string[];\n if (checkStrictly) {\n newInternalChecked = nodeChecked\n ? internalChecked.filter((v) => v !== val)\n : [...internalChecked, val];\n } else {\n const childLeaves = getChildrenNodesValues(val, data);\n if (nodeChecked) {\n newInternalChecked = internalChecked.filter((v) => !childLeaves.includes(v));\n } else {\n newInternalChecked = [...new Set([...internalChecked, ...childLeaves])];\n }\n }\n\n const newValue = checkedToValue(newInternalChecked, data, checkedStrategy!);\n if (!nodeChecked && newValue.length > (maxValues ?? Infinity)) {\n return;\n }\n setValue(newValue);\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n if (!_expandedState[val]) {\n toggleExpand(val);\n }\n }\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === ' ' && !searchable && isMulti) {\n event.preventDefault();\n combobox.toggleDropdown();\n }\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && isMulti) {\n const arr = (_value as string[]) || [];\n if (arr.length > 0) {\n const removed = arr[arr.length - 1];\n onRemove?.(removed);\n setValue(arr.slice(0, -1));\n }\n }\n\n if (!combobox.dropdownOpened) {\n return;\n }\n\n const index = combobox.getSelectedOptionIndex();\n if (index < 0 || index >= flatNodesRef.current.length) {\n return;\n }\n\n const currentNode = flatNodesRef.current[index];\n\n if (event.key === 'ArrowRight') {\n if (currentNode.hasChildren && !currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n }\n }\n\n if (event.key === 'ArrowLeft') {\n if (currentNode.hasChildren && currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n } else if (currentNode.parent) {\n event.preventDefault();\n const parentIndex = flatNodesRef.current.findIndex(\n (n) => n.node.value === currentNode.parent\n );\n if (parentIndex >= 0) {\n combobox.selectOption(parentIndex);\n }\n }\n }\n };\n\n useEffect(() => {\n if (mode !== 'single' || !searchable) {\n return;\n }\n if (value === null) {\n handleSearchChange('');\n } else if (typeof value === 'string') {\n handleSearchChange(getNodeLabel(value));\n }\n }, [value]);\n\n const prevDropdownOpenedRef = useRef(false);\n useEffect(() => {\n if (combobox.dropdownOpened && !prevDropdownOpenedRef.current && searchable && _value) {\n const targets = Array.isArray(_value) ? _value : [_value];\n const newExpanded = { ..._expandedState };\n let changed = false;\n for (const target of targets) {\n const ancestors = getAncestorsToNode(target as string, data);\n if (ancestors) {\n for (const a of ancestors) {\n if (!newExpanded[a]) {\n newExpanded[a] = true;\n changed = true;\n }\n }\n }\n }\n if (changed) {\n setExpandedState(newExpanded);\n requestAnimationFrame(() => {\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n });\n }\n }\n prevDropdownOpenedRef.current = combobox.dropdownOpened;\n });\n\n const clearButton = (\n <Combobox.ClearButton\n {...clearButtonProps}\n onClear={() => {\n onClear?.();\n setValue(isMulti ? [] : null);\n handleSearchChange('');\n combobox.focusTarget();\n }}\n />\n );\n\n const hasValue = isMulti\n ? Array.isArray(_value) && _value.length > 0\n : _value != null && _value !== '';\n const _clearable = clearable && hasValue && !disabled && !readOnly;\n\n const singleDisplayLabel = useMemo(() => {\n if (mode !== 'single' || !_value) {\n return '';\n }\n return getNodeLabel(_value as string);\n }, [mode, _value, nodeLookup]);\n\n const displayValues = useMemo(() => {\n if (!isMulti || !Array.isArray(_value)) {\n return [];\n }\n return _value as string[];\n }, [isMulti, _value]);\n\n const pillsListStyle =\n _clearable && isMulti\n ? { paddingInlineEnd: clearSectionOffset[size as string] ?? clearSectionOffset.sm }\n : undefined;\n\n const visiblePills =\n maxDisplayedValues != null ? displayValues.slice(0, maxDisplayedValues) : displayValues;\n\n const overflowCount =\n maxDisplayedValues != null ? Math.max(0, displayValues.length - maxDisplayedValues) : 0;\n\n const removePillValue = (item: string) => {\n if (isCheckbox) {\n const childLeaves = checkStrictly ? [item] : getChildrenNodesValues(item, data);\n const newInternal = internalChecked.filter((v) => !childLeaves.includes(v));\n setValue(checkedToValue(newInternal, data, checkedStrategy!));\n } else {\n setValue((_value as string[]).filter((v: string) => v !== item));\n }\n onRemove?.(item);\n };\n\n const pills = visiblePills.map((item, index) => {\n if (renderPill) {\n return (\n <Fragment key={`${item}-${index}`}>\n {renderPill({\n node: nodeLookup[item] ?? { value: item, label: item },\n value: item,\n onRemove: () => removePillValue(item),\n disabled,\n readOnly,\n })}\n </Fragment>\n );\n }\n\n return (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => removePillValue(item)}\n unstyled={unstyled}\n disabled={disabled}\n {...getStyles('pill')}\n >\n {getNodeLabel(item)}\n </Pill>\n );\n });\n\n if (overflowCount > 0) {\n const overflowContent =\n typeof maxDisplayedValuesContent === 'function'\n ? maxDisplayedValuesContent(overflowCount)\n : maxDisplayedValuesContent || `+${overflowCount} more`;\n pills.push(\n <Pill key=\"__overflow\" unstyled={unstyled} disabled={disabled} {...getStyles('pill')}>\n {overflowContent}\n </Pill>\n );\n }\n\n const isEmpty = flatNodes.length === 0;\n\n const options = flatNodes.map((flatNode) => {\n const isSelected =\n mode === 'single'\n ? _value === flatNode.node.value\n : mode === 'multiple'\n ? ((_value as string[]) || []).includes(flatNode.node.value)\n : false;\n\n const nodeChecked = isCheckbox\n ? checkStrictly\n ? internalChecked.includes(flatNode.node.value)\n : isNodeChecked(flatNode.node.value, data, internalChecked)\n : false;\n\n const nodeIndeterminate =\n isCheckbox && !checkStrictly\n ? isNodeIndeterminate(flatNode.node.value, data, internalChecked)\n : false;\n\n return (\n <TreeSelectOption\n key={flatNode.node.value}\n node={flatNode.node}\n level={flatNode.level}\n expanded={flatNode.expanded}\n hasChildren={flatNode.hasChildren}\n selected={isSelected}\n checked={nodeChecked}\n indeterminate={nodeIndeterminate}\n showCheckbox={isCheckbox}\n isLastChild={flatNode.isLastChild}\n lineGuides={flatNode.lineGuides}\n withLines={!!withLines}\n onToggleExpand={toggleExpand}\n renderNode={renderNode}\n chevronAriaLabels={chevronAriaLabels}\n />\n );\n });\n\n const dropdown = (\n <Combobox.Dropdown hidden={readOnly || disabled}>\n <Combobox.Options\n className={classes.optionsWrapper}\n aria-multiselectable={isMulti || undefined}\n >\n <ScrollArea.Autosize\n mah={maxDropdownHeight ?? 220}\n type=\"scroll\"\n scrollbarSize=\"var(--combobox-padding)\"\n offsetScrollbars=\"y\"\n {...scrollAreaProps}\n >\n {options}\n </ScrollArea.Autosize>\n {isEmpty && nothingFoundMessage && <Combobox.Empty>{nothingFoundMessage}</Combobox.Empty>}\n </Combobox.Options>\n </Combobox.Dropdown>\n );\n\n if (isMulti) {\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"TreeSelect\"\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n success={success}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n __stylesApiProps={{\n ...props,\n rightSectionPointerEvents: rightSectionPointerEvents || 'none',\n multiline: true,\n }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n data-expanded={combobox.dropdownOpened || undefined}\n id={_id}\n required={required}\n mod={mod}\n attributes={attributes}\n >\n <Pill.Group\n attributes={attributes}\n disabled={disabled}\n unstyled={unstyled}\n {...getStyles('pillsList', { style: pillsListStyle })}\n >\n {pills}\n <Combobox.EventsTarget autoComplete={autoComplete}>\n <PillsInput.Field\n {...rest}\n id={_id}\n placeholder={placeholder}\n type={!searchable && !placeholder ? 'hidden' : 'visible'}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n handleSearchChange('');\n }}\n onKeyDown={handleKeyDown}\n value={_searchValue}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n if (searchable) {\n combobox.openDropdown();\n }\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n name={name}\n valuesDivider={hiddenInputValuesDivider}\n value={_value}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n }\n\n return (\n <>\n <Combobox\n store={combobox}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.Target targetType={searchable ? 'input' : 'button'} autoComplete={autoComplete}>\n <InputBase\n id={_id}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n {...rest}\n {...styleProps}\n size={size}\n __staticSelector=\"TreeSelect\"\n disabled={disabled}\n readOnly={readOnly || !searchable}\n value={searchable ? _searchValue : singleDisplayLabel}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n combobox.openDropdown();\n }}\n onFocus={(event) => {\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n onFocus?.(event);\n }}\n onBlur={(event) => {\n if (searchable) {\n combobox.closeDropdown();\n }\n handleSearchChange(_value ? getNodeLabel(_value as string) : '');\n onBlur?.(event);\n }}\n onClick={(event) => {\n searchable ? combobox.openDropdown() : combobox.toggleDropdown();\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n pointer={!searchable}\n error={error}\n success={success}\n attributes={attributes}\n className={className}\n style={style}\n variant={variant}\n radius={radius}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n placeholder={placeholder}\n required={required}\n mod={mod}\n />\n </Combobox.Target>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n value={_value}\n name={name}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nTreeSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nTreeSelect.displayName = '@mantine/core/TreeSelect';\n"],"mappings":"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"}
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");
@@ -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":""}