diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
index 9b94e28..e88c494 100644
--- a/docs/.vitepress/config.mts
+++ b/docs/.vitepress/config.mts
@@ -62,6 +62,10 @@ const components = [
text: 'Breadcrumb 面包屑',
link: '/components/Breadcrumb'
},
+ {
+ text: 'Pagination 分页',
+ link: '/components/Pagination'
+ },
]
},
]
diff --git a/docs/components/Pagination.md b/docs/components/Pagination.md
new file mode 100644
index 0000000..f725685
--- /dev/null
+++ b/docs/components/Pagination.md
@@ -0,0 +1,74 @@
+---
+title: Pagination 分页
+lang: zh-CN
+---
+
+# Pagination 分页
+
+采用分页的形式分隔长列表,每次只加载一个页面。
+
+## 基本使用
+
+基本分页。
+
+
+
+## 更多
+
+更多分页。
+
+
+
+
+## 改变
+
+改变每页显示条目数。
+
+
+
+## 跳转
+
+快速跳转到某一页。
+
+
+
+## 总计
+
+使用`total`插槽展示总计。
+
+
+
+## 全部展示
+
+展示所有配置选项。
+
+
+
+## Props 属性
+
+| 属性 | 说明 | 类型 | 默认值 | 版本 |
+| ---------------- | --------------------------------------------------------- | ---------- | ------------------- | ---- |
+| current | 当前页数 | `number` | - | |
+| defaultCurrent | 默认的当前页数 | `number` | `1` | |
+| defaultPageSize | 默认的每页条数 | `number` | `10` |
+| disabled | 禁用分页 | `boolean` | - | |
+| hideOnSinglePage | 只有一页时是否隐藏分页器 | `boolean` | `false` | |
+| pageSize | 每页条数 | `number` | - | |
+| pageSizeOptions | 指定每页可以显示多少条 | `number[]` | `[10, 20, 50, 100]` | |
+| showQuickJumper | 是否可以快速跳转至某页 | `boolean` | `false` | |
+| showSizeChanger | 是否展示 pageSize 切换器,当`total`大于`50`时默认为`true` | `boolean` | `false` | |
+| showTitle | 是否显示原生 tooltip 页码提示 | `boolean` | `true` | |
+| total | 数据总数 | `number` | `0` | |
+
+## Events 事件
+
+| 事件 | 说明 | 类型 |
+| -------------- | -------------------------------------------------------- | ----------------------------------- |
+| change | 页码或 pageSize 改变的回调,参数是改变后的页码及每页条数 | `(value: {page, pageSize}) => void` |
+| showSizeChange | pageSize 变化的回调 | `(value: {current, size}) => void` |
+
+## Slots 插槽
+
+| 插槽名 | 说明 |
+| ------ | -------------- |
+| total | 自定义总计内容 |
\ No newline at end of file
diff --git a/docs/example/pagination/all.svelte b/docs/example/pagination/all.svelte
new file mode 100644
index 0000000..d6126e9
--- /dev/null
+++ b/docs/example/pagination/all.svelte
@@ -0,0 +1,13 @@
+
+
+
+ 总共{total}记录
+
diff --git a/docs/example/pagination/basic.svelte b/docs/example/pagination/basic.svelte
new file mode 100644
index 0000000..498c6cc
--- /dev/null
+++ b/docs/example/pagination/basic.svelte
@@ -0,0 +1,5 @@
+
+
+
diff --git a/docs/example/pagination/more-page.svelte b/docs/example/pagination/more-page.svelte
new file mode 100644
index 0000000..041d49e
--- /dev/null
+++ b/docs/example/pagination/more-page.svelte
@@ -0,0 +1,5 @@
+
+
+
diff --git a/docs/example/pagination/quick-jumper.svelte b/docs/example/pagination/quick-jumper.svelte
new file mode 100644
index 0000000..7a1373d
--- /dev/null
+++ b/docs/example/pagination/quick-jumper.svelte
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/docs/example/pagination/size-options.svelte b/docs/example/pagination/size-options.svelte
new file mode 100644
index 0000000..3dad35b
--- /dev/null
+++ b/docs/example/pagination/size-options.svelte
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/docs/example/pagination/total.svelte b/docs/example/pagination/total.svelte
new file mode 100644
index 0000000..74c1067
--- /dev/null
+++ b/docs/example/pagination/total.svelte
@@ -0,0 +1,7 @@
+
+
+
+ 总共{total}记录
+
diff --git a/packages/adorn-ui/src/Pagination/index.svelte b/packages/adorn-ui/src/Pagination/index.svelte
new file mode 100644
index 0000000..d7850b6
--- /dev/null
+++ b/packages/adorn-ui/src/Pagination/index.svelte
@@ -0,0 +1,300 @@
+
+
+{#if !hidden}
+
+ {#if $$slots.total}
+
+ {/if}
+
+ {#each showPages as page, index}
+ {#if page < 0}
+
+
+
+ {:else}
+
+
+
+ {/if}
+ {/each}
+
+ {#if showSizeChanger}
+
+ {/if}
+ {#if showQuickJumper}
+
+ {/if}
+
+{/if}
+
+
diff --git a/packages/adorn-ui/src/index.js b/packages/adorn-ui/src/index.js
index 5de222f..44975e7 100644
--- a/packages/adorn-ui/src/index.js
+++ b/packages/adorn-ui/src/index.js
@@ -8,5 +8,6 @@ export { FloatButton } from './FloatButton'
export { Row, Col } from './Grid'
export { default as Icon } from './Icon/index.svelte'
export { Layout } from './Layout'
+export { default as Pagination } from './Pagination/index.svelte'
export { default as Space } from './Space/index.svelte'
export { Typography } from './Typography'