@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
232 lines (215 loc) • 7.73 kB
JSX
import {
PresenceProvider,
splitPresenceProps,
usePresence,
usePresenceContext
} from "./2P5Y3YCK.jsx";
import {
composeRefs
} from "./PT2CJE3O.jsx";
import {
RenderStrategyProvider,
splitRenderStrategyProps,
useRenderStrategyContext
} from "./VNMGX67M.jsx";
import {
createSplitProps
} from "./6WEDGJKQ.jsx";
import {
ark
} from "./UFYZ7HLU.jsx";
import {
useEnvironmentContext
} from "./CGW54HAQ.jsx";
import {
useLocaleContext
} from "./JFOWNFC7.jsx";
import {
runIfFn
} from "./KGOB2IMX.jsx";
import {
createContext
} from "./UZJJWJQM.jsx";
import {
__export
} from "./7IUG3E2V.jsx";
// src/components/bottom-sheet/bottom-sheet-backdrop.tsx
import { mergeProps } from "@zag-js/solid";
import { Show } from "solid-js";
// 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 <Show when={!presence().unmounted}>
<ark.div {...mergedProps} ref={composeRefs(presence().ref, props.ref)} />
</Show>;
};
// src/components/bottom-sheet/bottom-sheet-close-trigger.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
var BottomSheetCloseTrigger = (props) => {
const context = useBottomSheetContext();
const mergedProps = mergeProps2(() => context().getCloseTriggerProps(), props);
return <ark.button {...mergedProps} />;
};
// src/components/bottom-sheet/bottom-sheet-content.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
import { Show as Show2 } from "solid-js";
var BottomSheetContent = (props) => {
const [contentProps, localProps] = createSplitProps()(props, ["draggable"]);
const bottomSheet2 = useBottomSheetContext();
const presence = usePresenceContext();
const mergedProps = mergeProps3(
() => bottomSheet2().getContentProps({ draggable: true, ...contentProps }),
() => presence().presenceProps,
localProps
);
return <Show2 when={!presence().unmounted}>
<ark.div {...mergedProps} ref={composeRefs(presence().ref, localProps.ref)} />
</Show2>;
};
// src/components/bottom-sheet/bottom-sheet-context.tsx
var BottomSheetContext = (props) => props.children(useBottomSheetContext());
// src/components/bottom-sheet/bottom-sheet-grabber.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
var BottomSheetGrabber = (props) => {
const bottomSheet2 = useBottomSheetContext();
const mergedProps = mergeProps4(() => bottomSheet2().getGrabberProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/bottom-sheet/bottom-sheet-grabber-indicator.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
var BottomSheetGrabberIndicator = (props) => {
const bottomSheet2 = useBottomSheetContext();
const mergedProps = mergeProps5(() => bottomSheet2().getGrabberIndicatorProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/bottom-sheet/bottom-sheet-root.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
// src/components/bottom-sheet/use-bottom-sheet.ts
import * as bottomSheet from "@zag-js/bottom-sheet";
import { normalizeProps, useMachine } from "@zag-js/solid";
import { createMemo, createUniqueId } from "solid-js";
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(mergeProps6(presenceProps, () => ({ present: bottomSheet2().open })));
return <BottomSheetProvider value={bottomSheet2}>
<RenderStrategyProvider value={renderStrategyProps}>
<PresenceProvider value={presence}>{localProps.children}</PresenceProvider>
</RenderStrategyProvider>
</BottomSheetProvider>;
};
// src/components/bottom-sheet/bottom-sheet-root-provider.tsx
import { mergeProps as mergeProps7 } from "@zag-js/solid";
var BottomSheetRootProvider = (props) => {
const [presenceProps, bottomSheetProps] = splitPresenceProps(props);
const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);
const presence = usePresence(mergeProps7(() => ({ present: bottomSheetProps.value().open }), presenceProps));
return <BottomSheetProvider value={bottomSheetProps.value}>
<RenderStrategyProvider value={renderStrategyProps}>
<PresenceProvider value={presence}>{bottomSheetProps.children}</PresenceProvider>
</RenderStrategyProvider>
</BottomSheetProvider>;
};
// src/components/bottom-sheet/bottom-sheet-title.tsx
import { mergeProps as mergeProps8 } from "@zag-js/solid";
var BottomSheetTitle = (props) => {
const bottomSheet2 = useBottomSheetContext();
const mergedProps = mergeProps8(() => bottomSheet2().getTitleProps(), props);
return <ark.h2 {...mergedProps} />;
};
// src/components/bottom-sheet/bottom-sheet-trigger.tsx
import { mergeProps as mergeProps9 } from "@zag-js/solid";
var BottomSheetTrigger = (props) => {
const bottomSheet2 = useBottomSheetContext();
const presence = usePresenceContext();
const mergedProps = mergeProps9(
() => bottomSheet2().getTriggerProps(),
() => ({ "aria-controls": presence().unmounted && null }),
props
);
return <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 {
useBottomSheetContext,
BottomSheetBackdrop,
BottomSheetCloseTrigger,
BottomSheetContent,
BottomSheetContext,
BottomSheetGrabber,
BottomSheetGrabberIndicator,
useBottomSheet,
BottomSheetRoot,
BottomSheetRootProvider,
BottomSheetTitle,
BottomSheetTrigger,
bottom_sheet_exports
};