@primer/react
Version:
An implementation of GitHub's Primer Design System using React
55 lines (52 loc) • 1.67 kB
JavaScript
import React from 'react';
import Box from '../Box/Box.js';
import { get } from '../constants.js';
import '@styled-system/css';
import merge from 'deepmerge';
import { clsx } from 'clsx';
import '../FeatureFlags/FeatureFlags.js';
import { useFeatureFlag } from '../FeatureFlags/useFeatureFlag.js';
import '../FeatureFlags/DefaultFeatureFlags.js';
import classes from './ActionList.module.css.js';
import { defaultSxProp } from '../utils/defaultSxProp.js';
import { actionListCssModulesFlag } from './featureflag.js';
/**
* Visually separates `Item`s or `Group`s in an `ActionList`.
*/
const Divider = ({
sx = defaultSxProp,
className
}) => {
const enabled = useFeatureFlag(actionListCssModulesFlag);
if (enabled) {
if (sx !== defaultSxProp) {
return /*#__PURE__*/React.createElement(Box, {
className: clsx(className, classes.Divider),
as: "li",
"aria-hidden": "true",
sx: sx,
"data-component": "ActionList.Divider"
});
}
return /*#__PURE__*/React.createElement("li", {
className: clsx(className, classes.Divider),
"aria-hidden": "true",
"data-component": "ActionList.Divider"
});
}
return /*#__PURE__*/React.createElement(Box, {
as: "li",
"aria-hidden": "true",
sx: merge({
height: 1,
backgroundColor: 'actionListItem.inlineDivider',
marginTop: theme => `calc(${get('space.2')(theme)} - 1px)`,
marginBottom: 2,
listStyle: 'none' // hide the ::marker inserted by browser's stylesheet
}, sx),
className: className,
"data-component": "ActionList.Divider"
});
};
Divider.displayName = "Divider";
export { Divider };