UNPKG

@ark-ui/solid

Version:

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

129 lines (117 loc) 3.74 kB
import { createSplitProps } from "./6WEDGJKQ.jsx"; import { ark } from "./UFYZ7HLU.jsx"; import { useLocaleContext } from "./YUC6JE7K.jsx"; import { useEnvironmentContext } from "./E2L62MKC.jsx"; import { createContext } from "./TVCIHLER.jsx"; import { runIfFn } from "./KGOB2IMX.jsx"; import { __export } from "./7IUG3E2V.jsx"; // src/components/splitter/use-splitter-context.ts var [SplitterProvider, useSplitterContext] = createContext({ hookName: "useSplitterContext", providerName: "<SplitterProvider />" }); // src/components/splitter/splitter-context.tsx var SplitterContext = (props) => props.children(useSplitterContext()); // src/components/splitter/splitter-panel.tsx import { mergeProps } from "@zag-js/solid"; var SplitterPanel = (props) => { const [panelProps, restProps] = createSplitProps()(props, ["id"]); const api = useSplitterContext(); const mergedProps = mergeProps(() => api().getPanelProps(panelProps), restProps); return <ark.div {...mergedProps} />; }; // src/components/splitter/splitter-resize-trigger.tsx import { mergeProps as mergeProps2 } from "@zag-js/solid"; var SplitterResizeTrigger = (props) => { const [resizeTriggerProps, restProps] = createSplitProps()(props, ["disabled", "id"]); const api = useSplitterContext(); const mergedProps = mergeProps2(() => api().getResizeTriggerProps(resizeTriggerProps), restProps); return <ark.button {...mergedProps} />; }; // src/components/splitter/splitter-root.tsx import { mergeProps as mergeProps3 } from "@zag-js/solid"; // src/components/splitter/use-splitter.ts import { normalizeProps, useMachine } from "@zag-js/solid"; import * as splitter from "@zag-js/splitter"; import { createMemo, createUniqueId } from "solid-js"; var useSplitter = (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(splitter.machine, machineProps); return createMemo(() => splitter.connect(service, normalizeProps)); }; // src/components/splitter/splitter-root.tsx var SplitterRoot = (props) => { const [useSplitterProps, localProps] = createSplitProps()(props, [ "defaultSize", "id", "ids", "keyboardResizeBy", "nonce", "onCollapse", "onExpand", "onResize", "onResizeEnd", "onResizeStart", "orientation", "panels", "size" ]); const api = useSplitter(useSplitterProps); const mergedProps = mergeProps3(() => api().getRootProps(), localProps); return <SplitterProvider value={api}> <ark.div {...mergedProps} /> </SplitterProvider>; }; // src/components/splitter/splitter-root-provider.tsx import { mergeProps as mergeProps4 } from "@zag-js/solid"; var SplitterRootProvider = (props) => { const [{ value: splitter2 }, localProps] = createSplitProps()(props, ["value"]); const mergedProps = mergeProps4(() => splitter2().getRootProps(), localProps); return <SplitterProvider value={splitter2}> <ark.div {...mergedProps} /> </SplitterProvider>; }; // src/components/splitter/splitter.anatomy.ts import { anatomy } from "@zag-js/splitter"; // src/components/splitter/splitter.ts var splitter_exports = {}; __export(splitter_exports, { Context: () => SplitterContext, Panel: () => SplitterPanel, ResizeTrigger: () => SplitterResizeTrigger, Root: () => SplitterRoot, RootProvider: () => SplitterRootProvider }); export { useSplitterContext, SplitterContext, SplitterPanel, SplitterResizeTrigger, useSplitter, SplitterRoot, SplitterRootProvider, anatomy, splitter_exports };