import { makeStyles } from '@mui/styles'; import React from 'react'; import Card from '../../containers/Card.js'; import type { AccessorReferenceNode, PropertyReferenceNode } from '../../reference/index.js'; import { getTag, hasTag, isLiteral } from '../../tools/CodeTools.js'; import MarkdownParser from '../../tools/markdown/MarkdownParser.js'; import { getAnchorName } from '../../tools/NodeTools.js'; import Badge from '../Badge.js'; import BetaNotice from '../BetaNotice.js'; import Type from '../codeBuilders/Type.js'; import DeprecationNotice from '../DeprecationNotice.js'; import CardToolbar from './CardToolbar.js'; interface PropertyCardProps { name?: string; definition: PropertyReferenceNode | AccessorReferenceNode; } const useStyles = makeStyles( { root: {}, name: { display: 'inline-block' }, toolbar: { opacity: 0, transition: 'opacity .5s ease-in-out', '$root:hover &': { opacity: 1 } } }, { name: 'PropertyCard' } ); const PropertyCard: React.FC = ({ name, definition }) => { const classes = useStyles(); const sig = definition.kind === 'accessor' ? definition.getSignature : definition; if (!sig) { return null; } const { type } = sig; return (

{name ?? definition.name}

{definition.flags?.isStatic && static} {

{isLiteral(type) ? 'Value' : 'Type'}:

} {hasTag(sig, 'deprecated') && ( )} {hasTag(sig, 'beta') && } {sig.comment?.shortText ? : null} {sig.comment?.text ? : null}
); }; export default PropertyCard;