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

34 lines
946 B
TypeScript

"use client"
import * as React from "react"
import "@/components/tiptap-ui-primitive/separator/separator.scss"
import { cn } from "@/lib/tiptap-utils"
export type Orientation = "horizontal" | "vertical"
export interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
orientation?: Orientation
decorative?: boolean
}
export const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(
({ decorative, orientation = "vertical", className, ...divProps }, ref) => {
const ariaOrientation = orientation === "vertical" ? orientation : undefined
const semanticProps = decorative
? { role: "none" }
: { "aria-orientation": ariaOrientation, role: "separator" }
return (
<div
className={cn("tiptap-separator", className)}
data-orientation={orientation}
{...semanticProps}
{...divProps}
ref={ref}
/>
)
}
)
Separator.displayName = "Separator"