import { PointerEvent, RefObject } from "react"; //#region src/components/overlays/dropdown-menu/use-safe-triangle.d.ts /** * ポインタ位置とサブメニューの手前側 2 角を結ぶ「safe triangle」を * トリガーの ::after に clip-path で描くための CSS 変数を更新する。 * * 三角形の内側はトリガーの当たり判定として扱われるため、サブメニューへ * 斜めに移動しても途中の兄弟項目で mouseleave が発火しない。 * ポインタが動くたびに頂点を追従させ、離れる方向に動けば三角形は狭まる。 * * getBoundingClientRect(強制同期レイアウト)を pointermove の生の頻度で * 呼ばないよう、更新は requestAnimationFrame で 1 フレーム 1 回に間引く。 * * 参考: https://ics.media/entry/260803/ */ declare const useSafeTriangle: (panelRef: RefObject, enabled: boolean) => ((event: PointerEvent) => void); //#endregion export { useSafeTriangle };