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 ff7e94a8..aa036dfe 100644 --- a/src/index.js +++ b/src/index.js @@ -64,6 +64,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,