UNPKG

@atlaskit/page-layout

Version:

A collection of components which let you compose an application's page layout.

48 lines (46 loc) 1.37 kB
/** * @jsxRuntime classic * @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766 import { css, jsx } from '@emotion/react'; import { easeOut } from '@atlaskit/motion'; import { useIsSidebarDragging } from '../../common/hooks'; const colorStops = ` rgba(0, 0, 0, 0.2) 0px, rgba(0, 0, 0, 0.2) 1px, rgba(0, 0, 0, 0.1) 1px, rgba(0, 0, 0, 0) 100% `; const direction = 'to left'; const transitionDuration = '0.22s'; const shadowStyles = css({ width: 3, position: 'absolute', background: `var(--ds-border, ${`linear-gradient(${direction}, ${colorStops})`})`, insetBlockEnd: 0, insetBlockStart: 0, insetInlineStart: -1, opacity: 0.5, pointerEvents: 'none', transitionDuration: transitionDuration, transitionProperty: 'left, opacity, width', transitionTimingFunction: easeOut }); const draggingStyles = css({ width: 6, background: `var(--ds-background-neutral-subtle, ${`linear-gradient(${direction}, ${colorStops})`})`, insetInlineStart: "var(--ds-space-negative-075, -6px)", opacity: 0.8 }); const Shadow = ({ testId }) => { const isDragging = useIsSidebarDragging(); return jsx("div", { "data-testid": testId, css: [shadowStyles, isDragging && draggingStyles] }); }; // eslint-disable-next-line @repo/internal/react/require-jsdoc export default Shadow;