UNPKG

@1771technologies/lytenyte-pro

Version:

Blazingly fast headless React data grid with 100s of features.

76 lines (75 loc) 2.47 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useId, useMemo, useState } from "react"; import { context } from "./context.js"; import { useControlled } from "@1771technologies/lytenyte-core/internal"; export const DialogRoot = ({ open: openProp, onOpenChange: onOpenChangeProp, onOpenChangeComplete, openInitial, id: idProvided, descriptionId: descIdProvider, titleId: titleIdProvided, children, focusCanReturn, focusCanTrap, focusFallback, focusInitial, focusPreventScroll, focusReturn, focusTrap, lightDismiss, modal, hide, lockScroll = modal ?? true, anchor = null, placement = "bottom", shiftPadding = 8, inline = false, sideOffset = 8, alignOffset = 0, }) => { const [open, onOpenChange] = useControlled({ controlled: openProp, default: openInitial }); const [arrow, setArrow] = useState(null); const id = useId(); const descriptionId = useId(); const titleId = useId(); const value = useMemo(() => { return { open, onOpenChange: (b) => { onOpenChange(b); onOpenChangeProp?.(b); }, onOpenChangeComplete: (b) => { onOpenChangeComplete?.(b); }, id: idProvided ?? id, descriptionId: descIdProvider ?? descriptionId, titleId: titleIdProvided ?? titleId, hide, lightDismiss, focusCanReturn, focusCanTrap, focusFallback, focusInitial, focusPreventScroll, focusReturn, focusTrap, lockScroll, modal, anchor, placement, shiftPadding, inline, sideOffset, alignOffset, arrow, setArrow, }; }, [ alignOffset, anchor, arrow, descIdProvider, descriptionId, focusCanReturn, focusCanTrap, focusFallback, focusInitial, focusPreventScroll, focusReturn, focusTrap, hide, id, idProvided, inline, lightDismiss, lockScroll, modal, onOpenChange, onOpenChangeComplete, onOpenChangeProp, open, placement, shiftPadding, sideOffset, titleId, titleIdProvided, ]); return _jsx(context.Provider, { value: value, children: children }); };