import "./row_focus_entry.css"; import type * as React from "react"; import { Button as Base } from "@base-ui/react/button"; import { type CurrentToken } from "./aria_current"; import { type StyleProps } from "./style_props"; export interface RowFocusEntryProps extends StyleProps { /** The same handler the surface presses. */ onPress: () => void; /** Required: the door is empty, so name the destination ("Open ORD-1042"). */ accessibilityLabel: string; /** Only when the press toggles a disclosure the door owns (`TableRow`'s `detail`), never when it * navigates: it emits `aria-expanded`. */ expanded?: boolean; /** The current row in a set of navigation rows: `"page"` where its destination is the screen, * `"location"` for the containing group. Selection is `selected`; this is where you are. */ current?: CurrentToken; /** Match the surface the door spans; default 10, the register wash. */ radius?: number; testID?: string; ref?: React.Ref; render?: Base.Props["render"]; } /** * The row's keyboard entry: an empty, absolutely positioned button carrying the tab stop, name and focus * ring for a pressable surface whose content holds its own controls. A button may not contain controls * (and nesting breaks their press and tab stop), so the door is a sibling beneath the content, never its * ancestor. The role-less `PressableRow` takes the wash, the door the pointer and the keyboard: * ```tsx * * *
…cells, CTAs, overflow menus…
*
* ``` * The parent establishes positioning and stacking contexts (`PressableRow` does), and each control-holding * box lifts over the door with `position: relative; z-index: var(--lotics-z-row-content)`, since an * absolute sibling hit-tests above in-flow content — and lets the pointer through (`pointer-events: none`) * to the door, only its controls taking it back; unlifted text (a register's ordinal) stays under it. A * negative z on the door would escape the row and bury the ring. The door follows the row's left chrome, * so a checkbox is reached first. Wrap content in the pressable itself only when it is non-interactive by * construction. `TableRow` is the in-kit consumer. */ export declare function RowFocusEntry({ onPress, accessibilityLabel, expanded, current, radius, testID, render, ref, ...props }: RowFocusEntryProps): React.JSX.Element;