UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

77 lines (74 loc) 2.73 kB
'use client'; import { jsx } from 'react/jsx-runtime'; import { forwardRef, useState } from 'react'; import { useMergedRef } from '@mantine/hooks'; import 'clsx'; import '../../../core/MantineProvider/Mantine.context.mjs'; import '../../../core/MantineProvider/default-theme.mjs'; import '../../../core/MantineProvider/MantineProvider.mjs'; import '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs'; import { useProps } from '../../../core/MantineProvider/use-props/use-props.mjs'; import '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs'; import { Box } from '../../../core/Box/Box.mjs'; import '../../../core/DirectionProvider/DirectionProvider.mjs'; import { ScrollAreaProvider } from '../ScrollArea.context.mjs'; const defaultProps = { scrollHideDelay: 1e3, type: "hover" }; const ScrollAreaRoot = forwardRef((_props, ref) => { const { type, scrollHideDelay, scrollbars, getStyles, ...others } = useProps( "ScrollAreaRoot", defaultProps, _props ); const [scrollArea, setScrollArea] = useState(null); const [viewport, setViewport] = useState(null); const [content, setContent] = useState(null); const [scrollbarX, setScrollbarX] = useState(null); const [scrollbarY, setScrollbarY] = useState(null); const [cornerWidth, setCornerWidth] = useState(0); const [cornerHeight, setCornerHeight] = useState(0); const [scrollbarXEnabled, setScrollbarXEnabled] = useState(false); const [scrollbarYEnabled, setScrollbarYEnabled] = useState(false); const rootRef = useMergedRef(ref, (node) => setScrollArea(node)); return /* @__PURE__ */ jsx( ScrollAreaProvider, { value: { type, scrollHideDelay, scrollArea, viewport, onViewportChange: setViewport, content, onContentChange: setContent, scrollbarX, onScrollbarXChange: setScrollbarX, scrollbarXEnabled, onScrollbarXEnabledChange: setScrollbarXEnabled, scrollbarY, onScrollbarYChange: setScrollbarY, scrollbarYEnabled, onScrollbarYEnabledChange: setScrollbarYEnabled, onCornerWidthChange: setCornerWidth, onCornerHeightChange: setCornerHeight, getStyles }, children: /* @__PURE__ */ jsx( Box, { ...others, ref: rootRef, __vars: { "--sa-corner-width": scrollbars !== "xy" ? "0px" : `${cornerWidth}px`, "--sa-corner-height": scrollbars !== "xy" ? "0px" : `${cornerHeight}px` } } ) } ); }); ScrollAreaRoot.displayName = "@mantine/core/ScrollAreaRoot"; export { ScrollAreaRoot }; //# sourceMappingURL=ScrollAreaRoot.mjs.map