UNPKG

@better-auth-ui/core

Version:

Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.

72 lines (71 loc) 3.5 kB
export type TableSortingEntry = { desc: boolean; id: string; }; export type TableColumnVisibility = Record<string, boolean>; export type TableFilterValue = boolean | number | string | null | readonly (boolean | number | string | null)[]; export type TableUrlState = { columnFilters: { id: string; value: TableFilterValue; }[]; globalFilter: string; pagination: { pageIndex: number; pageSize: number; }; sorting: TableSortingEntry[]; }; export type TableSearchParamsAdapter = { read: () => URLSearchParams; replace: (params: URLSearchParams) => void; subscribe: (listener: () => void) => () => void; }; export type TableStorageAdapter = { read: (key: string) => string | null; write: (key: string, value: string) => void; }; export type TablePersistenceAdapters = { search: TableSearchParamsAdapter; storage?: TableStorageAdapter; }; export declare const DEFAULT_TABLE_SEARCH_DEBOUNCE_MS = 300; /** * Create a search adapter from a router's search and navigation primitives. * * TanStack Router consumers can pass `router.state.location.searchStr` from * `read`, use `router.navigate({ replace: true, search })` from `replace`, and * subscribe to router state changes from `subscribe`. Other routers can expose * the same three operations without coupling the table package to that router. */ export declare function createTableSearchParamsAdapter(adapter: TableSearchParamsAdapter): TableSearchParamsAdapter; /** Create browser-backed persistence for tables outside a router context. */ export declare function createBrowserTablePersistenceAdapters(): TablePersistenceAdapters; export declare function parseTablePage(value: string | null, fallback: number, maximum?: number): number; export declare function parseTablePageSize(value: string | null, fallback: number, allowedPageSizes: readonly number[]): number; export declare function parseTableSorting(value: string | null, allowedColumnIds?: readonly string[], maximumEntries?: number): TableSortingEntry[]; export declare function parseTableColumnVisibility(value: string | null, allowedColumnIds?: readonly string[]): TableColumnVisibility; export declare function serializeTableColumnVisibility(columns: TableColumnVisibility): string; export declare function parseTableFilterValue(value: string): TableFilterValue; export declare function serializeTableFilterValue(value: unknown): string | undefined; /** Parse one namespaced table state from URL search parameters. */ export declare function parseTableUrlState(params: URLSearchParams, stateKey: string, defaultPageSize: number, allowedPageSizes: readonly number[], allowedColumnIds?: readonly string[]): TableUrlState; /** Write one namespaced table state without changing unrelated parameters. */ export declare function serializeTableUrlState(source: URLSearchParams, stateKey: string, defaultPageSize: number, state: { columnFilters: readonly { id: string; value: unknown; }[]; globalFilter: string; pagination: { pageIndex: number; pageSize: number; }; sorting: readonly TableSortingEntry[]; }): URLSearchParams; export declare function getLookaheadPage<T>(items: readonly T[], pageSize: number): { hasNextPage: boolean; rows: T[]; }; /** Returns the nearest valid zero-based page index for a result count. */ export declare function getClampedTablePageIndex(pageIndex: number, pageSize: number, rowCount: number): number;