@veracity/vui
Version:
Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.
43 lines (41 loc) • 1.68 kB
JavaScript
import { isNumber, isString } from "../utils/assertion.js";
import { cs } from "../utils/styles.js";
import { useStyleConfig } from "../core/theme.js";
import vui from "../core/vui.js";
import { Box } from "../box/box.js";
import { usePaginationContext } from "./context.js";
import { PaginationButton, PaginationEllipsis, PaginationPrevNext } from "./paginationButtons.js";
import { Fragment } from "react";
import { jsx, jsxs } from "react/jsx-runtime";
//#region src/pagination/paginationNavigation.tsx
/** Displays a set of page navigation buttons. */
const PaginationNavigation = vui((props, ref) => {
const { children, className, ...rest } = props;
const { items } = usePaginationContext();
const styles = useStyleConfig("Pagination", usePaginationContext());
return /* @__PURE__ */ jsx(Box, {
className: cs("vui-paginationNavigation", className),
gap: 1,
ref,
wrap: true,
...styles.navigation,
...rest,
children: children ?? items.map((item) => /* @__PURE__ */ jsxs(Fragment, { children: [
item === "previous" && /* @__PURE__ */ jsx(PaginationPrevNext, {
"aria-label": "previous",
direction: "previous"
}),
isNumber(item) && /* @__PURE__ */ jsx(PaginationButton, { page: item }),
isString(item) && item.includes("ellipsis") && /* @__PURE__ */ jsx(PaginationEllipsis, {}),
item === "next" && /* @__PURE__ */ jsx(PaginationPrevNext, {
"aria-label": "next",
direction: "next"
})
] }, item))
});
});
PaginationNavigation.displayName = "PaginationNavigation";
//#endregion
export { PaginationNavigation, PaginationNavigation as default };
globalThis.__vuiVersion__ = "5.3.1"
//# sourceMappingURL=paginationNavigation.js.map