diff --git a/src/PaginationNav/PaginationItem.svelte b/src/PaginationNav/PaginationItem.svelte
new file mode 100644
index 00000000..9463440d
--- /dev/null
+++ b/src/PaginationNav/PaginationItem.svelte
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/src/PaginationNav/PaginationNav.Story.svelte b/src/PaginationNav/PaginationNav.Story.svelte
new file mode 100644
index 00000000..e5a034a4
--- /dev/null
+++ b/src/PaginationNav/PaginationNav.Story.svelte
@@ -0,0 +1,31 @@
+
+
+
+
{
+ console.log('on:change', detail);
+ }}
+ on:click:button--previous={({ detail }) => {
+ console.log('button--previous', detail);
+ }}
+ on:click:button--next={({ detail }) => {
+ console.log('button--next', detail);
+ }} />
+ Bound page index: {page}
+
+
diff --git a/src/PaginationNav/PaginationNav.stories.js b/src/PaginationNav/PaginationNav.stories.js
new file mode 100644
index 00000000..3078e824
--- /dev/null
+++ b/src/PaginationNav/PaginationNav.stories.js
@@ -0,0 +1,17 @@
+import { withKnobs, number, boolean } from "@storybook/addon-knobs";
+import Component from "./PaginationNav.Story.svelte";
+
+export default { title: "PaginationNav", decorators: [withKnobs] };
+
+export const Default = () => ({
+ Component,
+ props: {
+ page: number("Current page index (page)", 0),
+ total: number("Total number of items (total)", 10),
+ shown: number("Number of items to be shown (minimum 4) (shown)", 10),
+ loop: boolean(
+ "Allow user to loop through the items when reaching first / last (loop)",
+ false
+ ),
+ },
+});
diff --git a/src/PaginationNav/PaginationNav.svelte b/src/PaginationNav/PaginationNav.svelte
new file mode 100644
index 00000000..9c0e8eb0
--- /dev/null
+++ b/src/PaginationNav/PaginationNav.svelte
@@ -0,0 +1,129 @@
+
+
+
diff --git a/src/PaginationNav/PaginationOverflow.svelte b/src/PaginationNav/PaginationOverflow.svelte
new file mode 100644
index 00000000..97f59323
--- /dev/null
+++ b/src/PaginationNav/PaginationOverflow.svelte
@@ -0,0 +1,47 @@
+
+
+{#if count > 1}
+
+
+
+
+
+
+
+
+
+{:else if count === 1}
+ {
+ dispatch('select', { index: fromIndex });
+ }}>
+ Page
+
+{/if}
diff --git a/src/PaginationNav/index.js b/src/PaginationNav/index.js
new file mode 100644
index 00000000..2e72aacf
--- /dev/null
+++ b/src/PaginationNav/index.js
@@ -0,0 +1 @@
+export { default as PaginationNav } from "./PaginationNav.svelte";
diff --git a/src/index.js b/src/index.js
index 0c92f76a..5c0bc09f 100644
--- a/src/index.js
+++ b/src/index.js
@@ -65,6 +65,7 @@ export { NumberInput, NumberInputSkeleton } from "./NumberInput";
export { OrderedList } from "./OrderedList";
export { OverflowMenu, OverflowMenuItem } from "./OverflowMenu";
export { Pagination, PaginationSkeleton } from "./Pagination";
+export { PaginationNav } from "./PaginationNav";
export {
ProgressIndicator,
ProgressIndicatorSkeleton,