"use client" import type { RefObject } from "react" import { ListTree } from "lucide-react" import { DocsHorizontalRuler } from "@/components/drive/richtext/docs-horizontal-ruler" import { DocsVerticalRuler } from "@/components/drive/richtext/docs-vertical-ruler" import type { DocPageLayout } from "@/lib/drive/doc-page-setup" import type { DocsRulerMarginSide } from "@/lib/drive/docs-ruler-margin-math" import { DOCS_HORIZONTAL_RULER_HEIGHT_PX, DOCS_VERTICAL_RULER_WIDTH_PX, } from "@/lib/drive/docs-page-layout-constants" import { docsPageLengthToScreen } from "@/lib/drive/docs-ruler-scale" import type { DocsRulerSyncState } from "@/lib/drive/use-docs-ruler-sync" import { cn } from "@/lib/utils" export function DocsRulerToolbarRow({ pageLayout, scale, rulerSync, rulerTrackRef, contentInsetRight = 0, outlineExpanded, onToggleOutline, editable, onMarginDragStart, onMarginDrag, onMarginDragEnd, }: { pageLayout: DocPageLayout scale: number rulerSync: DocsRulerSyncState rulerTrackRef: RefObject /** Right gutter matching panels beside the canvas (e.g. graphic options sidebar). */ contentInsetRight?: number outlineExpanded?: boolean onToggleOutline?: () => void editable?: boolean onMarginDragStart?: (side: DocsRulerMarginSide) => void onMarginDrag?: (side: DocsRulerMarginSide, pagePx: number, clientX: number, clientY: number) => void onMarginDragEnd?: () => void }) { const scaledPageWidth = docsPageLengthToScreen(pageLayout.widthPx, scale) return (
) } export function DocsRulersLeftRail({ pageLayout, scale, rulerSync, editable, onMarginDragStart, onMarginDrag, onMarginDragEnd, }: { pageLayout: DocPageLayout scale: number rulerSync: DocsRulerSyncState editable?: boolean onMarginDragStart?: (side: DocsRulerMarginSide) => void onMarginDrag?: (side: DocsRulerMarginSide, pagePx: number, clientX: number, clientY: number) => void onMarginDragEnd?: () => void }) { return (
) }