@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
152 lines (137 loc) • 4.79 kB
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/splitter/index.tsx
import { layout as layout2 } from "@zag-js/splitter";
// 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";
// src/components/splitter/use-splitter-resize-trigger-props-context.ts
var [SplitterResizeTriggerPropsProvider, useSplitterResizeTriggerPropsContext] = createContext({
hookName: "useSplitterResizeTriggerPropsContext",
providerName: "<SplitterResizeTriggerPropsProvider />"
});
// src/components/splitter/splitter-resize-trigger.tsx
var SplitterResizeTrigger = (props) => {
const [resizeTriggerProps, restProps] = createSplitProps()(props, ["disabled", "id"]);
const api = useSplitterContext();
const mergedProps = mergeProps2(() => api().getResizeTriggerProps(resizeTriggerProps), restProps);
return <SplitterResizeTriggerPropsProvider value={resizeTriggerProps}>
<ark.button {...mergedProps} />
</SplitterResizeTriggerPropsProvider>;
};
// src/components/splitter/splitter-resize-trigger-indicator.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
var SplitterResizeTriggerIndicator = (props) => {
const splitter2 = useSplitterContext();
const triggerProps = useSplitterResizeTriggerPropsContext();
const mergedProps = mergeProps3(() => splitter2().getResizeTriggerIndicator(triggerProps), props);
return <ark.div {...mergedProps} />;
};
// src/components/splitter/splitter-root.tsx
import { mergeProps as mergeProps4 } 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 = mergeProps4(() => api().getRootProps(), localProps);
return <SplitterProvider value={api}>
<ark.div {...mergedProps} />
</SplitterProvider>;
};
// src/components/splitter/splitter-root-provider.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
var SplitterRootProvider = (props) => {
const [{ value: splitter2 }, localProps] = createSplitProps()(props, ["value"]);
const mergedProps = mergeProps5(() => splitter2().getRootProps(), localProps);
return <SplitterProvider value={splitter2}>
<ark.div {...mergedProps} />
</SplitterProvider>;
};
// src/components/splitter/splitter.ts
var splitter_exports = {};
__export(splitter_exports, {
Context: () => SplitterContext,
Panel: () => SplitterPanel,
ResizeTrigger: () => SplitterResizeTrigger,
ResizeTriggerIndicator: () => SplitterResizeTriggerIndicator,
Root: () => SplitterRoot,
RootProvider: () => SplitterRootProvider,
getLayout: () => layout
});
import { layout } from "@zag-js/splitter";
export {
useSplitterContext,
SplitterContext,
SplitterPanel,
SplitterResizeTrigger,
SplitterResizeTriggerIndicator,
useSplitter,
SplitterRoot,
SplitterRootProvider,
splitter_exports,
layout2 as layout
};