Files
wr.do/components/shared/tiptap/tiptap-ui-primitive/separator/separator.tsx
2025-10-20 11:34:05 +08:00

37 lines
981 B
TypeScript

"use client";
import * as React from "react";
import "@/components/shared/tiptap/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";