@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
148 lines (132 loc) • 4.92 kB
JSX
import {
createSplitProps
} from "./6WEDGJKQ.jsx";
import {
ark
} from "./UFYZ7HLU.jsx";
import {
useEnvironmentContext
} from "./CGW54HAQ.jsx";
import {
useLocaleContext
} from "./JFOWNFC7.jsx";
import {
createContext
} from "./UZJJWJQM.jsx";
import {
__export
} from "./7IUG3E2V.jsx";
// src/components/scroll-area/use-scroll-area-context.ts
var [ScrollAreaProvider, useScrollAreaContext] = createContext({
hookName: "useScrollAreaContext",
providerName: "<ScrollAreaProvider />"
});
// src/components/scroll-area/scroll-area-context.tsx
function ScrollAreaContext(props) {
return props.children(useScrollAreaContext());
}
// src/components/scroll-area/scroll-area-content.tsx
import { mergeProps } from "@zag-js/solid";
var ScrollAreaContent = (props) => {
const scrollArea2 = useScrollAreaContext();
const mergedProps = mergeProps(() => scrollArea2().getContentProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/scroll-area/scroll-area-corner.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
var ScrollAreaCorner = (props) => {
const scrollArea2 = useScrollAreaContext();
const mergedProps = mergeProps2(() => scrollArea2().getCornerProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/scroll-area/scroll-area-root.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
// src/components/scroll-area/use-scroll-area.ts
import * as scrollArea from "@zag-js/scroll-area";
import { normalizeProps, useMachine } from "@zag-js/solid";
import { createMemo, createUniqueId } from "solid-js";
var useScrollArea = (props = {}) => {
const id = createUniqueId();
const locale = useLocaleContext();
const environment = useEnvironmentContext();
const machineProps = createMemo(() => ({
id,
dir: locale().dir,
getRootNode: environment().getRootNode,
...props
}));
const service = useMachine(scrollArea.machine, machineProps);
return createMemo(() => scrollArea.connect(service, normalizeProps));
};
// src/components/scroll-area/scroll-area-root.tsx
var ScrollAreaRoot = (props) => {
const [useScrollAreaProps, localProps] = createSplitProps()(props, ["id", "ids"]);
const scrollArea2 = useScrollArea(useScrollAreaProps);
const mergedProps = mergeProps3(() => scrollArea2().getRootProps(), localProps);
return <ScrollAreaProvider value={scrollArea2}>
<ark.div {...mergedProps} />
</ScrollAreaProvider>;
};
// src/components/scroll-area/scroll-area-root-provider.tsx
var ScrollAreaRootProvider = (props) => {
const { value, children, ...localProps } = props;
return <ScrollAreaProvider value={value}>
<ark.div {...localProps}>{children}</ark.div>
</ScrollAreaProvider>;
};
// src/components/scroll-area/scroll-area-scrollbar.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
// src/components/scroll-area/use-scroll-area-scrollbar-context.ts
var [ScrollAreaScrollbarProvider, useScrollAreaScrollbarContext] = createContext({
hookName: "useScrollAreaScrollbarContext",
providerName: "<ScrollAreaScrollbarProvider />"
});
// src/components/scroll-area/scroll-area-scrollbar.tsx
var ScrollAreaScrollbar = (props) => {
const [scrollbarProps, localProps] = createSplitProps()(props, ["orientation"]);
const scrollArea2 = useScrollAreaContext();
const mergedProps = mergeProps4(() => scrollArea2().getScrollbarProps(scrollbarProps), localProps);
return <ScrollAreaScrollbarProvider value={scrollbarProps}>
<ark.div {...mergedProps} />
</ScrollAreaScrollbarProvider>;
};
// src/components/scroll-area/scroll-area-thumb.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
var ScrollAreaThumb = (props) => {
const scrollAreaApi = useScrollAreaContext();
const scrollbarProps = useScrollAreaScrollbarContext();
const mergedProps = mergeProps5(() => scrollAreaApi().getThumbProps(scrollbarProps), props);
return <ark.div {...mergedProps} />;
};
// src/components/scroll-area/scroll-area-viewport.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
var ScrollAreaViewport = (props) => {
const scrollArea2 = useScrollAreaContext();
const mergedProps = mergeProps6(() => scrollArea2().getViewportProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/scroll-area/scroll-area.ts
var scroll_area_exports = {};
__export(scroll_area_exports, {
Content: () => ScrollAreaContent,
Context: () => ScrollAreaContext,
Corner: () => ScrollAreaCorner,
Root: () => ScrollAreaRoot,
RootProvider: () => ScrollAreaRootProvider,
Scrollbar: () => ScrollAreaScrollbar,
Thumb: () => ScrollAreaThumb,
Viewport: () => ScrollAreaViewport
});
export {
useScrollAreaContext,
ScrollAreaContext,
ScrollAreaContent,
ScrollAreaCorner,
useScrollArea,
ScrollAreaRoot,
ScrollAreaRootProvider,
ScrollAreaScrollbar,
ScrollAreaThumb,
ScrollAreaViewport,
scroll_area_exports
};