@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
166 lines (151 loc) • 5.3 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/pagination/use-pagination-context.ts
var [PaginationProvider, usePaginationContext] = createContext({
hookName: "usePaginationContext",
providerName: "<PaginationProvider />"
});
// src/components/pagination/pagination-context.tsx
var PaginationContext = (props) => props.children(usePaginationContext());
// src/components/pagination/pagination-ellipsis.tsx
import { mergeProps } from "@zag-js/solid";
var PaginationEllipsis = (props) => {
const [ellipsisProps, localProps] = createSplitProps()(props, ["index"]);
const api = usePaginationContext();
const mergedProps = mergeProps(() => api().getEllipsisProps(ellipsisProps), localProps);
return <ark.div {...mergedProps} />;
};
// src/components/pagination/pagination-first-trigger.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
var PaginationFirstTrigger = (props) => {
const api = usePaginationContext();
const mergedProps = mergeProps2(() => api().getFirstTriggerProps(), props);
return <ark.button {...mergedProps} />;
};
// src/components/pagination/pagination-item.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
var PaginationItem = (props) => {
const [itemProps, localProps] = createSplitProps()(props, ["value", "type"]);
const api = usePaginationContext();
const mergedProps = mergeProps3(() => api().getItemProps(itemProps), localProps);
return <ark.button {...mergedProps} />;
};
// src/components/pagination/pagination-last-trigger.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
var PaginationLastTrigger = (props) => {
const api = usePaginationContext();
const mergedProps = mergeProps4(() => api().getLastTriggerProps(), props);
return <ark.button {...mergedProps} />;
};
// src/components/pagination/pagination-next-trigger.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
var PaginationNextTrigger = (props) => {
const api = usePaginationContext();
const mergedProps = mergeProps5(() => api().getNextTriggerProps(), props);
return <ark.button {...mergedProps} />;
};
// src/components/pagination/pagination-prev-trigger.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
var PaginationPrevTrigger = (props) => {
const api = usePaginationContext();
const mergedProps = mergeProps6(() => api().getPrevTriggerProps(), props);
return <ark.button {...mergedProps} />;
};
// src/components/pagination/pagination-root.tsx
import { mergeProps as mergeProps7 } from "@zag-js/solid";
// src/components/pagination/use-pagination.ts
import * as pagination from "@zag-js/pagination";
import { normalizeProps, useMachine } from "@zag-js/solid";
import { createMemo, createUniqueId } from "solid-js";
var usePagination = (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(pagination.machine, machineProps);
return createMemo(() => pagination.connect(service, normalizeProps));
};
// src/components/pagination/pagination-root.tsx
var PaginationRoot = (props) => {
const [usePaginationProps, localProps] = createSplitProps()(props, [
"boundaryCount",
"count",
"defaultPage",
"defaultPageSize",
"getPageUrl",
"id",
"ids",
"onPageChange",
"onPageSizeChange",
"page",
"pageSize",
"siblingCount",
"translations",
"type"
]);
const api = usePagination(usePaginationProps);
const mergedProps = mergeProps7(() => api().getRootProps(), localProps);
return <PaginationProvider value={api}>
<ark.nav {...mergedProps} />
</PaginationProvider>;
};
// src/components/pagination/pagination-root-provider.tsx
import { mergeProps as mergeProps8 } from "@zag-js/solid";
var PaginationRootProvider = (props) => {
const [{ value: pagination2 }, localProps] = createSplitProps()(props, ["value"]);
const mergedProps = mergeProps8(() => pagination2().getRootProps(), localProps);
return <PaginationProvider value={pagination2}>
<ark.nav {...mergedProps} />
</PaginationProvider>;
};
// src/components/pagination/pagination.ts
var pagination_exports = {};
__export(pagination_exports, {
Context: () => PaginationContext,
Ellipsis: () => PaginationEllipsis,
FirstTrigger: () => PaginationFirstTrigger,
Item: () => PaginationItem,
LastTrigger: () => PaginationLastTrigger,
NextTrigger: () => PaginationNextTrigger,
PrevTrigger: () => PaginationPrevTrigger,
Root: () => PaginationRoot,
RootProvider: () => PaginationRootProvider
});
export {
usePaginationContext,
PaginationContext,
PaginationEllipsis,
PaginationFirstTrigger,
PaginationItem,
PaginationLastTrigger,
PaginationNextTrigger,
PaginationPrevTrigger,
usePagination,
PaginationRoot,
PaginationRootProvider,
pagination_exports
};