mosaicmap/components/tiptap-ui-primitive/badge/badge.tsx
2025-08-12 21:25:52 +08:00

47 lines
1.1 KiB
TypeScript

"use client"
import * as React from "react"
import "@/components/tiptap-ui-primitive/badge/badge-colors.scss"
import "@/components/tiptap-ui-primitive/badge/badge-group.scss"
import "@/components/tiptap-ui-primitive/badge/badge.scss"
export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {
variant?: "ghost" | "white" | "gray" | "green" | "default"
size?: "default" | "small"
appearance?: "default" | "subdued" | "emphasized"
trimText?: boolean
}
export const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(
(
{
variant,
size = "default",
appearance = "default",
trimText = false,
className,
children,
...props
},
ref
) => {
return (
<div
ref={ref}
className={`tiptap-badge ${className || ""}`}
data-style={variant}
data-size={size}
data-appearance={appearance}
data-text-trim={trimText ? "on" : "off"}
{...props}
>
{children}
</div>
)
}
)
Badge.displayName = "Badge"
export default Badge