diff --git a/packages/frontend/@n8n/design-system/src/v2/components/Pagination/component-pagination.md b/packages/frontend/@n8n/design-system/src/v2/components/Pagination/component-pagination.md new file mode 100644 index 00000000000..5a768e9606d --- /dev/null +++ b/packages/frontend/@n8n/design-system/src/v2/components/Pagination/component-pagination.md @@ -0,0 +1,141 @@ +# Component specification + +Displays data in paged format and provides navigation between pages. Enables users to navigate through large datasets by breaking content into manageable pages with controls for moving between them. + +- **Component Name:** N8nPagination +- **Element+ Component:** [ElPagination](https://element-plus.org/en-US/component/pagination.html) +- **Reka UI Component:** [Pagination](https://reka-ui.com/docs/components/pagination) +- **Nuxt UI Component:** [Pagination](https://ui.nuxt.com/docs/components/pagination) + + +## Public API Definition + +**Props** + +- `currentPage?: number` - Current active page number (1-indexed). Supports v-model binding via `v-model:current-page`. Default: `1` +- `pageSize?: number` - Number of items to display per page. Default: `10` +- `total?: number` - Total number of items across all pages. Used to calculate total page count. Default: `0` +- `pagerCount?: number` - Maximum number of page buttons to display in the pager. Must be an odd number. Default: `7` +- `layout?: string` - Order and elements to display in the pagination. Comma-separated values: `'prev' | 'pager' | 'next'`. Default: `'prev, pager, next'` + +**Events** + +- `@update:current-page` - Emitted when the current page changes. Payload: `(value: number) => void` + +### Template usage example + +**Simple pagination (most common):** +```typescript + + + +``` + +**With custom pager count:** +```typescript + + + +``` + +**Server-side pagination (0-indexed backend):** +```typescript + + + +``` + +**Client-side pagination in data table:** +```typescript + + + +```