diff --git a/.changeset/lucky-walls-jog.md b/.changeset/lucky-walls-jog.md new file mode 100644 index 00000000000..ea28730a1b7 --- /dev/null +++ b/.changeset/lucky-walls-jog.md @@ -0,0 +1,6 @@ +--- +"@primer/react": minor +"@primer/styled-react": patch +--- + +feat: support custom slots diff --git a/packages/react/src/ActionList/Description.tsx b/packages/react/src/ActionList/Description.tsx index 9a9283ee567..dc21f933387 100644 --- a/packages/react/src/ActionList/Description.tsx +++ b/packages/react/src/ActionList/Description.tsx @@ -3,6 +3,7 @@ import Truncate from '../Truncate' import {ItemContext} from './shared' import classes from './ActionList.module.css' import {clsx} from 'clsx' +import type {FCWithSlotMarker} from '../utils/types/Slots' export type ActionListDescriptionProps = { /** @@ -21,7 +22,7 @@ export type ActionListDescriptionProps = { truncate?: boolean } -export const Description: React.FC> = ({ +export const Description: FCWithSlotMarker> = ({ variant = 'inline', className, truncate, @@ -70,3 +71,5 @@ export const Description: React.FC> = ({className, style}) => { +export const Divider: FCWithSlotMarker> = ({className, style}) => { return (
  • > /> ) } + +Divider.__SLOT__ = Symbol('ActionList.Divider') diff --git a/packages/react/src/ActionList/Group.tsx b/packages/react/src/ActionList/Group.tsx index 10fec9a3934..441e79302c9 100644 --- a/packages/react/src/ActionList/Group.tsx +++ b/packages/react/src/ActionList/Group.tsx @@ -7,6 +7,7 @@ import {invariant} from '../utils/invariant' import {clsx} from 'clsx' import classes from './ActionList.module.css' import groupClasses from './Group.module.css' +import type {FCWithSlotMarker} from '../utils/types/Slots' type HeadingProps = { as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' @@ -67,7 +68,7 @@ export const GroupContext = React.createContext({ selectionVariant: undefined, }) -export const Group: React.FC> = ({ +export const Group: FCWithSlotMarker> = ({ title, variant = 'subtle', auxiliaryText, @@ -138,7 +139,7 @@ export type ActionListGroupHeadingProps = Pick