- Name
page- Kind
- property
- Type
number- Requirement
- required
DocsAPI referenceUI machinespagination
pagination machine
The public state machine contract for @grassroot/ui-machines/pagination. The machine owns behaviour; the matching headless layer owns composition.
@grassroot/ui-machines/pagination
Package
Service example
pagination.tsts
import { createService } from "@grassroot/statechart";import { paginationMachine } from "@grassroot/ui-machines/pagination"; const service = createService(paginationMachine, { input: {} });service.start();service.send({ type: "…" });service.stop();14 of 14
Exports
PaginationChangeReasonts
type PaginationChangeReason = "pointer" | "keyboard" | "programmatic";PaginationCommand
typePaginationCommandts
type PaginationCommand = CommandObject & { readonly type: "PAGE_CHANGE_REQUEST"; readonly page: number; readonly reason: PaginationChangeReason;};Name
Kind
Type
Requirement
pageproperty
numberrequired
reasonproperty
PaginationChangeReasonrequired
typeproperty
stringrequired
- Name
reason- Kind
- property
- Type
PaginationChangeReason- Requirement
- required
- Name
type- Kind
- property
- Type
string- Requirement
- required
PaginationContext
typePaginationContextts
type PaginationContext = { readonly mode: "controlled" | "uncontrolled"; readonly page: number; readonly total: number; readonly pageSize: number; readonly siblingCount: number; readonly pageCount: number; readonly range: readonly (number | "…")[];};Name
Kind
Type
Requirement
modeproperty
"controlled" | "uncontrolled"required
pageproperty
numberrequired
pageCountproperty
numberrequired
pageSizeproperty
numberrequired
rangeproperty
readonly (number | "…")[]required
siblingCountproperty
numberrequired
totalproperty
numberrequired
- Name
mode- Kind
- property
- Type
"controlled" | "uncontrolled"- Requirement
- required
- Name
page- Kind
- property
- Type
number- Requirement
- required
- Name
pageCount- Kind
- property
- Type
number- Requirement
- required
- Name
pageSize- Kind
- property
- Type
number- Requirement
- required
- Name
range- Kind
- property
- Type
readonly (number | "…")[]- Requirement
- required
- Name
siblingCount- Kind
- property
- Type
number- Requirement
- required
- Name
total- Kind
- property
- Type
number- Requirement
- required
PaginationDiagnosticCodests
export declare const PaginationDiagnosticCodes: readonly DiagnosticCatalogueEntry[];PaginationEvent
typePaginationEventts
type PaginationEvent = { readonly type: "SET_PAGE"; readonly page: number; readonly reason: PaginationChangeReason;} | { readonly type: "PREVIOUS"; readonly reason: Exclude<PaginationChangeReason, "programmatic">;} | { readonly type: "NEXT"; readonly reason: Exclude<PaginationChangeReason, "programmatic">;} | { readonly type: "FIRST"; readonly reason: PaginationChangeReason;} | { readonly type: "LAST"; readonly reason: PaginationChangeReason;};PaginationInput
typePaginationInputts
type PaginationInput = { /** Total records/items. */ readonly total: number; /** Records/items per page. Values below one normalize to one. */ readonly pageSize: number; /** Controlled 1-based page. Defining it fixes controlled mode. */ readonly page?: number; /** Uncontrolled initial 1-based page. Defaults to one. */ readonly defaultPage?: number; /** Pages to show either side of the current page. Defaults to one. */ readonly siblingCount?: number;};Name
Kind
Type
Requirement
Description
defaultPageproperty
numberoptional
Uncontrolled initial 1-based page. Defaults to one.
pageproperty
numberoptional
Controlled 1-based page. Defining it fixes controlled mode.
pageSizeproperty
numberrequired
Records/items per page. Values below one normalize to one.
siblingCountproperty
numberoptional
Pages to show either side of the current page. Defaults to one.
totalproperty
numberrequired
Total records/items.
- Name
defaultPage- Kind
- property
- Type
number- Requirement
- optional
- Description
- Uncontrolled initial 1-based page. Defaults to one.
- Name
page- Kind
- property
- Type
number- Requirement
- optional
- Description
- Controlled 1-based page. Defining it fixes controlled mode.
- Name
pageSize- Kind
- property
- Type
number- Requirement
- required
- Description
- Records/items per page. Values below one normalize to one.
- Name
siblingCount- Kind
- property
- Type
number- Requirement
- optional
- Description
- Pages to show either side of the current page. Defaults to one.
- Name
total- Kind
- property
- Type
number- Requirement
- required
- Description
- Total records/items.
paginationMachine
valuepaginationMachinets
export declare const paginationMachine: PaginationMachine;PaginationMachine
typePaginationMachinets
type PaginationMachine = Machine<PaginationInput, PaginationStateValue, PaginationContext, PaginationEvent, PaginationCommand>;PaginationMachineStatets
type PaginationMachineState = MachineState<PaginationStateValue, PaginationContext>;paginationRange
functionExact port of the frozen ui-core oracle.
paginationRangets
declare function paginationRange(page: number, count: number, siblings?: number): (number | "…")[];Name
Kind
Type
Requirement
pageparameter
numberrequired
countparameter
numberrequired
siblingsparameter
numberoptional
returnreturn value
(number | "…")[]n/a
- Name
page- Kind
- parameter
- Type
number- Requirement
- required
- Name
count- Kind
- parameter
- Type
number- Requirement
- required
- Name
siblings- Kind
- parameter
- Type
number- Requirement
- optional
- Name
return- Kind
- return value
- Type
(number | "…")[]- Requirement
- n/a
paginationReplaySequence
valuepaginationReplaySequencets
export declare const paginationReplaySequence: readonly PaginationEvent[];paginationSelectors
valuepaginationSelectorsts
export declare const paginationSelectors: { page: (snapshot: PaginationSnapshot) => number; pageCount: (snapshot: PaginationSnapshot) => number; range: (snapshot: PaginationSnapshot) => readonly (number | "…")[]; canPrevious: (snapshot: PaginationSnapshot) => boolean; canNext: (snapshot: PaginationSnapshot) => boolean;};Name
Kind
Type
Requirement
canNextproperty
(snapshot: PaginationSnapshot) => booleanrequired
canPreviousproperty
(snapshot: PaginationSnapshot) => booleanrequired
pageproperty
(snapshot: PaginationSnapshot) => numberrequired
pageCountproperty
(snapshot: PaginationSnapshot) => numberrequired
rangeproperty
(snapshot: PaginationSnapshot) => readonly (number | "…")[]required
- Name
canNext- Kind
- property
- Type
(snapshot: PaginationSnapshot) => boolean- Requirement
- required
- Name
canPrevious- Kind
- property
- Type
(snapshot: PaginationSnapshot) => boolean- Requirement
- required
- Name
page- Kind
- property
- Type
(snapshot: PaginationSnapshot) => number- Requirement
- required
- Name
pageCount- Kind
- property
- Type
(snapshot: PaginationSnapshot) => number- Requirement
- required
- Name
range- Kind
- property
- Type
(snapshot: PaginationSnapshot) => readonly (number | "…")[]- Requirement
- required
PaginationSnapshot
typePaginationSnapshotts
type PaginationSnapshot = Snapshot<PaginationStateValue, PaginationContext>;PaginationStateValue
typePaginationStateValuets
type PaginationStateValue = "ready";