UNPKG

@ark-ui/solid

Version:

A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.

179 lines (172 loc) 7.27 kB
import { usePresenceContext, splitPresenceProps, usePresence, PresenceProvider } from './FW6EZLZL.js'; import { composeRefs } from './ROP6QZQ7.js'; import { splitRenderStrategyProps, RenderStrategyProvider, useRenderStrategyContext } from './GUFIKGZ6.js'; import { createSplitProps } from './ZMHI4GDJ.js'; import { ark } from './EPLBB4QN.js'; import { useEnvironmentContext } from './5QLLQM7E.js'; import { useLocaleContext } from './RVOPDSQY.js'; import { runIfFn } from './DT73WLR4.js'; import { createContext } from './THN5C4U6.js'; import { __export } from './ESLJRKWD.js'; import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web'; import { mergeProps, useMachine, normalizeProps } from '@zag-js/solid'; import { Show, createUniqueId, createMemo } from 'solid-js'; import * as bottomSheet from '@zag-js/bottom-sheet'; // src/components/bottom-sheet/use-bottom-sheet-context.ts var [BottomSheetProvider, useBottomSheetContext] = createContext({ hookName: "useBottomSheetContext", providerName: "<BottomSheetProvider />" }); // src/components/bottom-sheet/bottom-sheet-backdrop.tsx var BottomSheetBackdrop = (props) => { const bottomSheet2 = useBottomSheetContext(); const renderStrategyProps = useRenderStrategyContext(); const presence = usePresence(mergeProps(renderStrategyProps, () => ({ present: bottomSheet2().open }))); const mergedProps = mergeProps(() => bottomSheet2().getBackdropProps(), () => presence().presenceProps, props); return createComponent(Show, { get when() { return !presence().unmounted; }, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { ref(r$) { var _ref$ = composeRefs(presence().ref, props.ref); typeof _ref$ === "function" && _ref$(r$); } })); } }); }; var BottomSheetCloseTrigger = (props) => { const context = useBottomSheetContext(); const mergedProps = mergeProps(() => context().getCloseTriggerProps(), props); return createComponent(ark.button, mergedProps); }; var BottomSheetContent = (props) => { const [contentProps, localProps] = createSplitProps()(props, ["draggable"]); const bottomSheet2 = useBottomSheetContext(); const presence = usePresenceContext(); const mergedProps = mergeProps(() => bottomSheet2().getContentProps({ draggable: true, ...contentProps }), () => presence().presenceProps, localProps); return createComponent(Show, { get when() { return !presence().unmounted; }, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { ref(r$) { var _ref$ = composeRefs(presence().ref, localProps.ref); typeof _ref$ === "function" && _ref$(r$); } })); } }); }; // src/components/bottom-sheet/bottom-sheet-context.tsx var BottomSheetContext = (props) => props.children(useBottomSheetContext()); var BottomSheetGrabber = (props) => { const bottomSheet2 = useBottomSheetContext(); const mergedProps = mergeProps(() => bottomSheet2().getGrabberProps(), props); return createComponent(ark.div, mergedProps); }; var BottomSheetGrabberIndicator = (props) => { const bottomSheet2 = useBottomSheetContext(); const mergedProps = mergeProps(() => bottomSheet2().getGrabberIndicatorProps(), props); return createComponent(ark.div, mergedProps); }; var useBottomSheet = (props) => { const locale = useLocaleContext(); const environment = useEnvironmentContext(); const id = createUniqueId(); const machineProps = createMemo(() => ({ id, dir: locale().dir, getRootNode: environment().getRootNode, ...runIfFn(props) })); const service = useMachine(bottomSheet.machine, machineProps); return createMemo(() => bottomSheet.connect(service, normalizeProps)); }; // src/components/bottom-sheet/bottom-sheet-root.tsx var BottomSheetRoot = (props) => { const [presenceProps, bottomSheetProps] = splitPresenceProps(props); const [renderStrategyProps] = splitRenderStrategyProps(presenceProps); const [useBottomSheetProps, localProps] = createSplitProps()(bottomSheetProps, ["id", "ids", "open", "defaultOpen", "onOpenChange", "closeOnInteractOutside", "closeOnEscape", "snapPoints", "swipeVelocityThreshold", "closeThreshold", "preventDragOnScroll", "activeSnapPoint", "defaultActiveSnapPoint", "onActiveSnapPointChange", "modal", "trapFocus", "restoreFocus", "preventScroll", "initialFocusEl", "finalFocusEl", "role", "onInteractOutside", "onEscapeKeyDown", "onPointerDownOutside", "onFocusOutside", "onRequestDismiss"]); const bottomSheet2 = useBottomSheet(useBottomSheetProps); const presence = usePresence(mergeProps(presenceProps, () => ({ present: bottomSheet2().open }))); return createComponent(BottomSheetProvider, { value: bottomSheet2, get children() { return createComponent(RenderStrategyProvider, { value: renderStrategyProps, get children() { return createComponent(PresenceProvider, { value: presence, get children() { return localProps.children; } }); } }); } }); }; var BottomSheetRootProvider = (props) => { const [presenceProps, bottomSheetProps] = splitPresenceProps(props); const [renderStrategyProps] = splitRenderStrategyProps(presenceProps); const presence = usePresence(mergeProps(() => ({ present: bottomSheetProps.value().open }), presenceProps)); return createComponent(BottomSheetProvider, { get value() { return bottomSheetProps.value; }, get children() { return createComponent(RenderStrategyProvider, { value: renderStrategyProps, get children() { return createComponent(PresenceProvider, { value: presence, get children() { return bottomSheetProps.children; } }); } }); } }); }; var BottomSheetTitle = (props) => { const bottomSheet2 = useBottomSheetContext(); const mergedProps = mergeProps(() => bottomSheet2().getTitleProps(), props); return createComponent(ark.h2, mergedProps); }; var BottomSheetTrigger = (props) => { const bottomSheet2 = useBottomSheetContext(); const presence = usePresenceContext(); const mergedProps = mergeProps(() => bottomSheet2().getTriggerProps(), () => ({ "aria-controls": presence().unmounted && null }), props); return createComponent(ark.button, mergedProps); }; // src/components/bottom-sheet/bottom-sheet.ts var bottom_sheet_exports = {}; __export(bottom_sheet_exports, { Backdrop: () => BottomSheetBackdrop, CloseTrigger: () => BottomSheetCloseTrigger, Content: () => BottomSheetContent, Context: () => BottomSheetContext, Grabber: () => BottomSheetGrabber, GrabberIndicator: () => BottomSheetGrabberIndicator, Root: () => BottomSheetRoot, RootProvider: () => BottomSheetRootProvider, Title: () => BottomSheetTitle, Trigger: () => BottomSheetTrigger }); export { BottomSheetBackdrop, BottomSheetCloseTrigger, BottomSheetContent, BottomSheetContext, BottomSheetGrabber, BottomSheetGrabberIndicator, BottomSheetRoot, BottomSheetRootProvider, BottomSheetTitle, BottomSheetTrigger, bottom_sheet_exports, useBottomSheet, useBottomSheetContext };