/** * `useDrawerSnapPoints` — resolves the configured snap points against the * measured popup / viewport geometry, derives offsets, and picks the * currently-active snap point. * * 1:1 port of Base UI React's * `packages/react/src/drawer/root/useDrawerSnapPoints.ts`. Solid deviations: * * - React's `useStableCallback` inside `measureViewportHeight` becomes a * plain function — Solid has no render cycle, callbacks close over the * current signals directly. * - `useIsoLayoutEffect` uses the split compute/apply form. * - Under happy-dom (test env), `offsetHeight` / `ResizeObserver` return 0 * / are absent, so `resolvedSnapPoints` is always `[]` and * `activeSnapPointOffset` is `null`. The test suite exercises the * structural contract; a real-browser pass is required for geometry * correctness. */ import { type Accessor } from "solid-js"; import { type DrawerRootSnapPointChangeEventDetails, type DrawerSnapPoint } from "./drawer-root-context.js"; export interface ResolvedDrawerSnapPoint { value: DrawerSnapPoint; height: number; offset: number; } export interface UseDrawerSnapPointsReturn { snapPoints: Accessor; activeSnapPoint: Accessor; setActiveSnapPoint: (snapPoint: DrawerSnapPoint | null, details?: DrawerRootSnapPointChangeEventDetails) => void; popupHeight: Accessor; viewportHeight: Accessor; resolvedSnapPoints: Accessor; activeSnapPointOffset: Accessor; } export declare function useDrawerSnapPoints(): UseDrawerSnapPointsReturn; //# sourceMappingURL=use-drawer-snap-points.d.ts.map