@teamsparta/stack-bottom-sheet
Version:
stack bottom sheet
71 lines (67 loc) • 1.8 kB
JavaScript
"use client";
import {
BottomSheetOverlay
} from "./chunk-O5USUAIT.mjs";
import {
useBottomSheet
} from "./chunk-VI637IBA.mjs";
import {
contentCss,
contentWrapperCss
} from "./chunk-ALWYKHLT.mjs";
import {
__objRest,
__spreadProps,
__spreadValues
} from "./chunk-FUJQIYOF.mjs";
// src/compounds/BottomSheetContent.tsx
import {
forwardRef
} from "react";
import { Drawer } from "vaul";
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
var BottomSheetContent = forwardRef(
(_a, ref) => {
var _b = _a, {
children,
onInteractOutside,
style,
overlay = /* @__PURE__ */ jsx(BottomSheetOverlay, {})
} = _b, restProps = __objRest(_b, [
"children",
"onInteractOutside",
"style",
"overlay"
]);
const {
closeOnInteractOutside: closeOnInteractOutsideFromContext,
theme,
dismissible
} = useBottomSheet("BottomSheetContent");
const hasOverlay = overlay !== null;
const closeOnInteractOutside = hasOverlay && dismissible ? closeOnInteractOutsideFromContext : false;
return /* @__PURE__ */ jsxs(Drawer.Portal, { children: [
overlay,
/* @__PURE__ */ jsx(
Drawer.Content,
__spreadProps(__spreadValues({
"data-stack-color-theme": theme,
ref,
asChild: false,
css: contentWrapperCss,
style,
onInteractOutside: closeOnInteractOutside ? onInteractOutside : (e) => {
e.preventDefault();
onInteractOutside == null ? void 0 : onInteractOutside(e);
}
}, restProps), {
children: /* @__PURE__ */ jsx("div", { css: contentCss, children })
})
)
] });
}
);
BottomSheetContent.displayName = "BottomSheetContent";
export {
BottomSheetContent
};