@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
331 lines (304 loc) • 10.8 kB
JSX
import {
PresenceProvider,
splitPresenceProps,
usePresenceContext
} from "./NEU4F4NG.jsx";
import {
usePresence
} from "./OEGORBLT.jsx";
import {
composeRefs
} from "./PT2CJE3O.jsx";
import {
RenderStrategyProvider,
splitRenderStrategyProps,
useRenderStrategyContext
} from "./VNMGX67M.jsx";
import {
createSplitProps
} from "./6WEDGJKQ.jsx";
import {
useEnvironmentContext
} from "./HDGILMRT.jsx";
import {
useLocaleContext
} from "./HOPBYFHD.jsx";
import {
runIfFn
} from "./KGOB2IMX.jsx";
import {
ark
} from "./UFYZ7HLU.jsx";
import {
createContext
} from "./UZJJWJQM.jsx";
import {
__export
} from "./7IUG3E2V.jsx";
// src/components/drawer/drawer-backdrop.tsx
import { mergeProps } from "@zag-js/solid";
import { Show } from "solid-js";
// src/components/drawer/use-drawer-context.ts
var [DrawerProvider, useDrawerContext] = createContext({
hookName: "useDrawerContext",
providerName: "<DrawerProvider />"
});
// src/components/drawer/drawer-backdrop.tsx
var DrawerBackdrop = (props) => {
const drawer3 = useDrawerContext();
const renderStrategyProps = useRenderStrategyContext();
const presence = usePresence(mergeProps(renderStrategyProps, () => ({ present: drawer3().open })));
const mergedProps = mergeProps(
() => drawer3().getBackdropProps(),
() => presence().presenceProps,
props
);
return <Show when={!presence().unmounted}>
<ark.div {...mergedProps} ref={composeRefs(presence().ref, props.ref)} />
</Show>;
};
// src/components/drawer/drawer-close-trigger.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
var DrawerCloseTrigger = (props) => {
const context = useDrawerContext();
const mergedProps = mergeProps2(() => context().getCloseTriggerProps(), props);
return <ark.button {...mergedProps} />;
};
// src/components/drawer/drawer-content.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
import { Show as Show2 } from "solid-js";
var DrawerContent = (props) => {
const [contentProps, localProps] = createSplitProps()(props, ["draggable"]);
const drawer3 = useDrawerContext();
const presence = usePresenceContext();
const mergedProps = mergeProps3(
() => drawer3().getContentProps({ draggable: true, ...contentProps }),
() => presence().presenceProps,
localProps
);
return <Show2 when={!presence().unmounted}>
<ark.div {...mergedProps} ref={composeRefs(presence().ref, localProps.ref)} />
</Show2>;
};
// src/components/drawer/drawer-description.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
var DrawerDescription = (props) => {
const drawer3 = useDrawerContext();
const mergedProps = mergeProps4(() => drawer3().getDescriptionProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/drawer/drawer-context.tsx
var DrawerContext = (props) => props.children(useDrawerContext());
// src/components/drawer/drawer-positioner.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
import { Show as Show3 } from "solid-js";
var DrawerPositioner = (props) => {
const drawer3 = useDrawerContext();
const presence = usePresenceContext();
const mergedProps = mergeProps5(() => drawer3().getPositionerProps(), props);
return <Show3 when={!presence().unmounted}>
<ark.div {...mergedProps} />
</Show3>;
};
// src/components/drawer/drawer-grabber.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
var DrawerGrabber = (props) => {
const drawer3 = useDrawerContext();
const mergedProps = mergeProps6(() => drawer3().getGrabberProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/drawer/drawer-grabber-indicator.tsx
import { mergeProps as mergeProps7 } from "@zag-js/solid";
var DrawerGrabberIndicator = (props) => {
const drawer3 = useDrawerContext();
const mergedProps = mergeProps7(() => drawer3().getGrabberIndicatorProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/drawer/drawer-root.tsx
import { mergeProps as mergeProps8 } from "@zag-js/solid";
// src/components/drawer/use-drawer.ts
import * as drawer from "@zag-js/drawer";
import { normalizeProps, useMachine } from "@zag-js/solid";
import { createMemo, createUniqueId } from "solid-js";
// src/components/drawer/use-drawer-stack-store.ts
import { createContext as createSolidContext, useContext } from "solid-js";
var DrawerStackStoreContext = createSolidContext();
var DrawerStackStoreProvider = DrawerStackStoreContext.Provider;
var useDrawerStackStore = () => useContext(DrawerStackStoreContext);
// src/components/drawer/use-drawer.ts
var useDrawer = (props) => {
const locale = useLocaleContext();
const environment = useEnvironmentContext();
const id = createUniqueId();
const stack = useDrawerStackStore();
const machineProps = createMemo(() => ({
id,
dir: locale().dir,
getRootNode: environment().getRootNode,
stack,
...runIfFn(props)
}));
const service = useMachine(drawer.machine, machineProps);
return createMemo(() => drawer.connect(service, normalizeProps));
};
// src/components/drawer/drawer-root.tsx
var DrawerRoot = (props) => {
const [presenceProps, drawerProps] = splitPresenceProps(props);
const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);
const [useDrawerProps, localProps] = createSplitProps()(drawerProps, [
"id",
"ids",
"open",
"defaultOpen",
"onOpenChange",
"closeOnInteractOutside",
"closeOnEscape",
"snapPoints",
"swipeDirection",
"snapToSequentialPoints",
"swipeVelocityThreshold",
"closeThreshold",
"preventDragOnScroll",
"stack",
"snapPoint",
"defaultSnapPoint",
"onSnapPointChange",
"modal",
"trapFocus",
"restoreFocus",
"preventScroll",
"initialFocusEl",
"finalFocusEl",
"role",
"onInteractOutside",
"onEscapeKeyDown",
"onPointerDownOutside",
"onFocusOutside",
"onRequestDismiss",
"triggerValue",
"defaultTriggerValue",
"onTriggerValueChange"
]);
const drawer3 = useDrawer(useDrawerProps);
const presence = usePresence(mergeProps8(presenceProps, () => ({ present: drawer3().open })));
return <DrawerProvider value={drawer3}>
<RenderStrategyProvider value={renderStrategyProps}>
<PresenceProvider value={presence}>{localProps.children}</PresenceProvider>
</RenderStrategyProvider>
</DrawerProvider>;
};
// src/components/drawer/drawer-root-provider.tsx
import { mergeProps as mergeProps9 } from "@zag-js/solid";
var DrawerRootProvider = (props) => {
const [presenceProps, drawerProps] = splitPresenceProps(props);
const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);
const presence = usePresence(mergeProps9(() => ({ present: drawerProps.value().open }), presenceProps));
return <DrawerProvider value={drawerProps.value}>
<RenderStrategyProvider value={renderStrategyProps}>
<PresenceProvider value={presence}>{drawerProps.children}</PresenceProvider>
</RenderStrategyProvider>
</DrawerProvider>;
};
// src/components/drawer/drawer-title.tsx
import { mergeProps as mergeProps10 } from "@zag-js/solid";
var DrawerTitle = (props) => {
const drawer3 = useDrawerContext();
const mergedProps = mergeProps10(() => drawer3().getTitleProps(), props);
return <ark.h2 {...mergedProps} />;
};
// src/components/drawer/drawer-trigger.tsx
import { mergeProps as mergeProps11 } from "@zag-js/solid";
var DrawerTrigger = (props) => {
const [triggerProps, localProps] = createSplitProps()(props, ["value"]);
const drawer3 = useDrawerContext();
const presence = usePresenceContext();
const mergedProps = mergeProps11(
() => drawer3().getTriggerProps(triggerProps),
() => ({ "aria-controls": presence().unmounted && null }),
localProps
);
return <ark.button {...mergedProps} />;
};
// src/components/drawer/drawer-indent.tsx
import { mergeProps as mergeProps12 } from "@zag-js/solid";
// src/components/drawer/use-drawer-stack-context.ts
var [DrawerStackProvider, useDrawerStackContext] = createContext({
hookName: "useDrawerStackContext",
providerName: "<DrawerStackProvider />"
});
// src/components/drawer/drawer-indent.tsx
var DrawerIndent = (props) => {
const stackApi = useDrawerStackContext();
const mergedProps = mergeProps12(() => stackApi().getIndentProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/drawer/drawer-indent-background.tsx
import { mergeProps as mergeProps13 } from "@zag-js/solid";
var DrawerIndentBackground = (props) => {
const stackApi = useDrawerStackContext();
const mergedProps = mergeProps13(() => stackApi().getIndentBackgroundProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/drawer/drawer-stack.tsx
import * as drawer2 from "@zag-js/drawer";
import { normalizeProps as normalizeProps2 } from "@zag-js/solid";
import { createMemo as createMemo2 } from "solid-js";
import { createStore, reconcile } from "solid-js/store";
var DrawerStack = (props) => {
const stack = drawer2.createStack();
const [snapshot, setSnapshot] = createStore(stack.getSnapshot());
stack.subscribe(() => setSnapshot(reconcile(stack.getSnapshot())));
const stackApi = createMemo2(() => drawer2.connectStack(snapshot, normalizeProps2));
return <DrawerStackStoreProvider value={stack}>
<DrawerStackProvider value={stackApi}>{props.children}</DrawerStackProvider>
</DrawerStackStoreProvider>;
};
// src/components/drawer/drawer-swipe-area.tsx
import { mergeProps as mergeProps14 } from "@zag-js/solid";
var DrawerSwipeArea = (props) => {
const drawer3 = useDrawerContext();
const mergedProps = mergeProps14(() => drawer3().getSwipeAreaProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/drawer/drawer.ts
var drawer_exports = {};
__export(drawer_exports, {
Backdrop: () => DrawerBackdrop,
CloseTrigger: () => DrawerCloseTrigger,
Content: () => DrawerContent,
Context: () => DrawerContext,
Description: () => DrawerDescription,
Grabber: () => DrawerGrabber,
GrabberIndicator: () => DrawerGrabberIndicator,
Indent: () => DrawerIndent,
IndentBackground: () => DrawerIndentBackground,
Positioner: () => DrawerPositioner,
Root: () => DrawerRoot,
RootProvider: () => DrawerRootProvider,
Stack: () => DrawerStack,
SwipeArea: () => DrawerSwipeArea,
Title: () => DrawerTitle,
Trigger: () => DrawerTrigger
});
export {
useDrawerContext,
DrawerBackdrop,
DrawerCloseTrigger,
DrawerContent,
DrawerDescription,
DrawerContext,
DrawerPositioner,
DrawerGrabber,
DrawerGrabberIndicator,
useDrawer,
DrawerRoot,
DrawerRootProvider,
DrawerTitle,
DrawerTrigger,
useDrawerStackContext,
DrawerIndent,
DrawerIndentBackground,
DrawerStack,
DrawerSwipeArea,
drawer_exports
};