@aquera/nile-elements 0.1.39 → 0.1.40-beta-1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +2 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/nile-pagination/index.cjs.js +2 -0
  5. package/dist/nile-pagination/index.cjs.js.map +1 -0
  6. package/dist/nile-pagination/index.esm.js +1 -0
  7. package/dist/nile-pagination/nile-pagination-utils.cjs.js +2 -0
  8. package/dist/nile-pagination/nile-pagination-utils.cjs.js.map +1 -0
  9. package/dist/nile-pagination/nile-pagination-utils.esm.js +1 -0
  10. package/dist/nile-pagination/nile-pagination.cjs.js +2 -0
  11. package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -0
  12. package/dist/nile-pagination/nile-pagination.css.cjs.js +2 -0
  13. package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -0
  14. package/dist/nile-pagination/nile-pagination.css.esm.js +101 -0
  15. package/dist/nile-pagination/nile-pagination.esm.js +89 -0
  16. package/dist/src/index.d.ts +1 -0
  17. package/dist/src/index.js +1 -0
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/nile-pagination/index.d.ts +1 -0
  20. package/dist/src/nile-pagination/index.js +2 -0
  21. package/dist/src/nile-pagination/index.js.map +1 -0
  22. package/dist/src/nile-pagination/nile-pagination-utils.d.ts +4 -0
  23. package/dist/src/nile-pagination/nile-pagination-utils.js +41 -0
  24. package/dist/src/nile-pagination/nile-pagination-utils.js.map +1 -0
  25. package/dist/src/nile-pagination/nile-pagination.css.d.ts +12 -0
  26. package/dist/src/nile-pagination/nile-pagination.css.js +113 -0
  27. package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -0
  28. package/dist/src/nile-pagination/nile-pagination.d.ts +33 -0
  29. package/dist/src/nile-pagination/nile-pagination.js +187 -0
  30. package/dist/src/nile-pagination/nile-pagination.js.map +1 -0
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +4 -3
  33. package/src/index.ts +2 -1
  34. package/src/nile-pagination/index.ts +1 -0
  35. package/src/nile-pagination/nile-pagination-utils.ts +63 -0
  36. package/src/nile-pagination/nile-pagination.css.ts +115 -0
  37. package/src/nile-pagination/nile-pagination.ts +184 -0
  38. package/vscode-html-custom-data.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-pagination-utils.cjs.js","sources":["../../../src/nile-pagination/nile-pagination-utils.ts"],"sourcesContent":["export function calculateTotalPages(\n totalItems: number,\n pageSize: number\n): number {\n return Math.ceil(totalItems / pageSize);\n}\n\nexport function getPaginationItems(\n totalPages: number,\n currentPage: number\n): (number | string)[] {\n if (totalPages <= 7) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: (number | string)[] = [1];\n if (currentPage <= 4) {\n pages.push(2, 3, 4, 5, '…');\n } else if (currentPage >= totalPages - 3) {\n pages.push(\n '…',\n totalPages - 4,\n totalPages - 3,\n totalPages - 2,\n totalPages - 1\n );\n } else {\n pages.push('…', currentPage - 1, currentPage, currentPage + 1, '…');\n }\n pages.push(totalPages);\n return pages;\n}\n\nexport function getHiddenPages(\n totalPages: number,\n items: (number | string)[],\n currentPage: number,\n position: 'left' | 'right'\n): number[] {\n if (totalPages <= 7) return [];\n\n const all = Array.from({ length: totalPages }, (_, i) => i + 1);\n const visible = items.filter(x => typeof x === 'number') as number[];\n const hidden = all.filter(p => !visible.includes(p));\n\n if (position === 'left') {\n const firstAfterEllipsis = visible[1] as number;\n return hidden.filter(p => p < firstAfterEllipsis);\n } else {\n const lastBeforeEllipsis = visible[visible.length - 2] as number;\n return hidden.filter(p => p > lastBeforeEllipsis);\n }\n}\n\nexport function getRangeText(\n totalItems: number,\n pageSize: number,\n currentPage: number\n): string {\n const start = (currentPage - 1) * pageSize + 1;\n const end = Math.min(currentPage * pageSize, totalItems);\n return `Showing ${start}–${end} of ${totalItems}`;\n}\n"],"names":["calculateTotalPages","totalItems","pageSize","Math","ceil","getPaginationItems","totalPages","currentPage","Array","from","length","_","i","pages","push","getHiddenPages","items","position","all","visible","filter","x","hidden","p","includes","firstAfterEllipsis","lastBeforeEllipsis","getRangeText","concat","min"],"mappings":"2DAAgB,QAAAA,CAAAA,CACdC,CAAAA,CAAAA,CACAC,CAEA,CAAA,CAAA,MAAOC,CAAAA,KAAKC,IAAKH,CAAAA,CAAAA,CAAaC,CAChC,CAAA,EAEgB,QAAAG,CAAAA,CACdC,CAAAA,CAAAA,CACAC,CAEA,CAAA,CAAA,GAAID,GAAc,CAChB,CAAA,MAAOE,CAAAA,KAAMC,CAAAA,IAAAA,CAAK,CAAEC,MAAQJ,CAAAA,CAAAA,CAAAA,CAAc,SAACK,CAAAA,CAAGC,SAAMA,CAAAA,CAAI,CAAA,CAAA,EAAA,CAAA,CAG1D,GAAMC,CAAAA,CAAAA,CAA6B,CAAC,CAepC,CAAA,CAAA,MAdIN,CAAAA,CAAe,EAAA,CAAA,CACjBM,EAAMC,IAAK,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAG,EAAG,GACdP,CAAAA,CAAAA,CAAAA,EAAeD,CAAa,CAAA,CAAA,CACrCO,EAAMC,IACJ,CAAA,GAAA,CACAR,CAAa,CAAA,CAAA,CACbA,EAAa,CACbA,CAAAA,CAAAA,CAAa,CACbA,CAAAA,CAAAA,CAAa,GAGfO,CAAMC,CAAAA,IAAAA,CAAK,GAAKP,CAAAA,CAAAA,CAAc,EAAGA,CAAaA,CAAAA,CAAAA,CAAc,CAAG,CAAA,GAAA,CAAA,CAEjEM,EAAMC,IAAKR,CAAAA,CAAAA,CAAAA,CACJO,CACT,EAEM,QAAUE,CAAAA,CACdT,CAAAA,CAAAA,CACAU,CACAT,CAAAA,CAAAA,CACAU,GAEA,GAAIX,CAAAA,EAAc,CAAG,CAAA,MAAO,GAE5B,GAAMY,CAAAA,CAAAA,CAAMV,KAAMC,CAAAA,IAAAA,CAAK,CAAEC,MAAQJ,CAAAA,CAAAA,CAAAA,CAAc,SAACK,CAAAA,CAAGC,SAAMA,CAAAA,CAAI,CAAA,CAAA,EAAA,CAAA,CACvDO,CAAUH,CAAAA,CAAAA,CAAMI,OAAOC,SAAAA,CAAkB,QAAA,QAAA,EAAA,MAANA,CAAAA,CACnCC,EAAAA,CAAAA,CAAAA,CAAAA,CAASJ,EAAIE,MAAOG,CAAAA,SAAAA,CAAAA,QAAAA,CAAMJ,CAAQK,CAAAA,QAAAA,CAASD,MAEjD,GAAiB,MAAA,GAAbN,CAAqB,CAAA,CACvB,GAAMQ,CAAAA,EAAqBN,CAAAA,CAAAA,CAAQ,CACnC,CAAA,CAAA,MAAOG,CAAAA,EAAOF,MAAOG,CAAAA,SAAAA,CAAAA,QAAKA,CAAAA,CAAIE,CAAAA,EAAAA,EAAAA,CAC/B,EAAM,CACL,GAAMC,CAAAA,GAAqBP,CAAAA,CAAAA,CAAQA,EAAQT,MAAS,CAAA,CAAA,CAAA,CACpD,MAAOY,CAAAA,CAAAA,CAAOF,OAAOG,SAAAA,CAAKA,QAAAA,CAAAA,CAAAA,CAAIG,GAC/B,EAAA,CAAA,EACH,SAEgBC,CAAAA,CAAAA,CACd1B,CACAC,CAAAA,CAAAA,CACAK,GAIA,iBAAAqB,MAAA,CAAO,CAFQrB,CAAc,CAAA,CAAA,EAAKL,EAAW,CACjCC,WAAAA,MAAAA,CAAAA,IAAAA,CAAK0B,GAAItB,CAAAA,CAAAA,CAAcL,EAAUD,CACRA,CAAAA,SAAAA,MAAAA,CAAAA,CAAAA,EACvC"}
@@ -0,0 +1 @@
1
+ function n(n,t){return Math.ceil(n/t)}function t(n,t){if(n<=7)return Array.from({length:n},((n,t)=>t+1));const r=[1];return t<=4?r.push(2,3,4,5,"…"):t>=n-3?r.push("…",n-4,n-3,n-2,n-1):r.push("…",t-1,t,t+1,"…"),r.push(n),r}function r(n,t,r,e){if(n<=7)return[];const o=Array.from({length:n},((n,t)=>t+1)),u=t.filter((n=>"number"==typeof n)),f=o.filter((n=>!u.includes(n)));if("left"===e){const n=u[1];return f.filter((t=>t<n))}{const n=u[u.length-2];return f.filter((t=>t>n))}}function e(n,t,r){return`Showing ${(r-1)*t+1}–${Math.min(r*t,n)} of ${n}`}export{r as a,t as b,n as c,e as g};
@@ -0,0 +1,2 @@
1
+ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","./nile-pagination.css.cjs.js","../internal/nile-element.cjs.js","./nile-pagination-utils.cjs.js"],function(_export,_context){"use strict";var i,t,e,s,n,a,l,r,o,h,_templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5,_templateObject6,_templateObject7,_templateObject8,_templateObject9,_templateObject10,d;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){i=_tslib.__decorate;},function(_lit){t=_lit.html;},function(_litDecoratorsJs){e=_litDecoratorsJs.property;s=_litDecoratorsJs.customElement;},function(_nilePaginationCssCjsJs){n=_nilePaginationCssCjsJs.s;},function(_internalNileElementCjsJs){a=_internalNileElementCjsJs.N;},function(_nilePaginationUtilsCjsJs){l=_nilePaginationUtilsCjsJs.c;r=_nilePaginationUtilsCjsJs.g;o=_nilePaginationUtilsCjsJs.a;h=_nilePaginationUtilsCjsJs.b;}],execute:function execute(){_export("N",d=/*#__PURE__*/function(_a){function d(){var _this;_classCallCheck(this,d);_this=_callSuper(this,d,arguments),_this.totalItems=0,_this.pageSize=50,_this.currentPage=1,_this.variant="v1",_this.disabled=!1,_this.showTitle=!0,_this.pageSizeOptions=[10,25,50,100];return _this;}_inherits(d,_a);return _createClass(d,[{key:"totalPages",get:function get(){return l(this.totalItems,this.pageSize);}},{key:"goToPage",value:function goToPage(i){if(this.disabled)return;var t=Math.max(1,Math.min(i,this.totalPages));this.currentPage=t,this.emit("nile-change",{page:t,pageSize:this.pageSize});}},{key:"onPageSizeSelect",value:function onPageSizeSelect(i){this.disabled||this.pageSize===i||(this.pageSize=i,this.currentPage=1,this.emit("nile-change",{page:1,pageSize:i}));}},{key:"renderRangeText",value:function renderRangeText(){return t(_templateObject||(_templateObject=_taggedTemplateLiteral(["<div class=\"range-text\">\n ","\n </div>"])),r(this.totalItems,this.pageSize,this.currentPage));}},{key:"renderPageSizeSelect",value:function renderPageSizeSelect(){var _this2=this;return"v1"!==this.variant?null:t(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["\n <div class=\"page-size-select\">\n <nile-dropdown class=\"page-size-dropdown\" ?disabled=",">\n <nile-button slot=\"trigger\" variant=\"tertiary\" ?disabled=",">\n ","\n <nile-icon name=\"chevrondown\" size=\"14\" class=\"chevron\"></nile-icon>\n </nile-button>\n <nile-menu class=\"page-size-menu\">\n ","\n </nile-menu>\n </nile-dropdown>\n <span class=\"page-size-label\">Items per page</span>\n </div>\n "])),this.disabled,this.disabled,this.pageSize,this.pageSizeOptions.map(function(i){return t(_templateObject3||(_templateObject3=_taggedTemplateLiteral(["\n <nile-menu-item\n ?disabled=","\n @click=","\n >\n ","\n </nile-menu-item>\n "])),_this2.disabled,function(){return _this2.onPageSizeSelect(i);},i);}));}},{key:"renderPrevButton",value:function renderPrevButton(){var _this3=this;return t(_templateObject4||(_templateObject4=_taggedTemplateLiteral(["\n <li>\n <nile-button\n variant=\"tertiary\"\n ?disabled=","\n @click=","\n >\n <nile-icon name=\"arrowleft\" size=\"14\"></nile-icon>\n </nile-button>\n </li>\n "])),1===this.currentPage||this.disabled,function(){return _this3.goToPage(_this3.currentPage-1);});}},{key:"renderNextButton",value:function renderNextButton(){var _this4=this;var i=this.totalPages;return t(_templateObject5||(_templateObject5=_taggedTemplateLiteral(["\n <li>\n <nile-button\n variant=\"tertiary\"\n ?disabled=","\n @click=","\n >\n <nile-icon name=\"arrowright\" size=\"14\"></nile-icon>\n </nile-button>\n </li>\n "])),this.currentPage===i||this.disabled,function(){return _this4.goToPage(_this4.currentPage+1);});}},{key:"renderPageItem",value:function renderPageItem(i,e,s){var _this5=this;return"…"===i?t(_templateObject6||(_templateObject6=_taggedTemplateLiteral(["\n <li>\n <nile-dropdown class=\"ellipsis-dropdown\" ?disabled=",">\n <nile-button slot=\"trigger\" variant=\"ghost\" class=\"ellipsis-button\" ?disabled=",">\n \u2026\n </nile-button>\n <nile-menu>\n <div class=\"ellipsis-scroll-wrapper\">\n ","\n </div>\n </nile-menu>\n </nile-dropdown>\n </li>\n "])),this.disabled,this.disabled,o(this.totalPages,s,this.currentPage,e<s.indexOf(this.currentPage)?"left":"right").map(function(i){return t(_templateObject7||(_templateObject7=_taggedTemplateLiteral(["\n <nile-menu-item\n ?disabled=","\n @click=","\n >\n ","\n </nile-menu-item>\n "])),_this5.disabled,function(){return _this5.goToPage(i);},i);})):t(_templateObject8||(_templateObject8=_taggedTemplateLiteral(["\n <li>\n <nile-button\n variant=","\n ?disabled=","\n @click=","\n >\n ","\n </nile-button>\n </li>\n "])),i===this.currentPage?"primary":"ghost",this.disabled,function(){return _this5.goToPage(i);},i);}},{key:"renderPageList",value:function renderPageList(){var _this6=this;var i=this.totalPages,e=h(i,this.currentPage);return t(_templateObject9||(_templateObject9=_taggedTemplateLiteral(["\n <nav aria-label=\"Pagination\">\n <ul class=\"pagination\">\n ","\n ","\n ","\n </ul>\n </nav>\n "])),this.renderPrevButton(),e.map(function(i,t){return _this6.renderPageItem(i,t,e);}),this.renderNextButton());}},{key:"render",value:function render(){return t(_templateObject10||(_templateObject10=_taggedTemplateLiteral(["\n <div class=\"pagination-wrapper ","\">\n <div class=\"pager-container\">\n ","\n ","\n </div>\n ","\n </div>\n "])),this.variant,this.showTitle?this.renderRangeText():null,this.renderPageSizeSelect(),this.renderPageList());}}],[{key:"styles",get:function get(){return[n];}}]);}(a));i([e({type:Number})],d.prototype,"totalItems",void 0),i([e({type:Number})],d.prototype,"pageSize",void 0),i([e({type:Number})],d.prototype,"currentPage",void 0),i([e({type:String})],d.prototype,"variant",void 0),i([e({type:Boolean})],d.prototype,"disabled",void 0),i([e({type:Boolean})],d.prototype,"showTitle",void 0),i([e({type:Array})],d.prototype,"pageSizeOptions",void 0),_export("N",d=i([s("nile-pagination")],d));}};});
2
+ //# sourceMappingURL=nile-pagination.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-pagination.cjs.js","sources":["../../../src/nile-pagination/nile-pagination.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { LitElement, html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-pagination.css';\nimport NileElement from '../internal/nile-element';\nimport {\n calculateTotalPages,\n getPaginationItems,\n getHiddenPages,\n getRangeText,\n} from './nile-pagination-utils';\n\n@customElement('nile-pagination')\nexport class NilePagination extends NileElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: Number }) totalItems = 0;\n @property({ type: Number }) pageSize = 50;\n @property({ type: Number }) currentPage = 1;\n @property({ type: String }) variant: 'v1' | 'v2' = 'v1';\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) showTitle = true;\n @property({ type: Array }) pageSizeOptions: number[] = [10, 25, 50, 100];\n\n private get totalPages(): number {\n return calculateTotalPages(this.totalItems, this.pageSize);\n }\n\n private goToPage(page: number) {\n if (this.disabled) return;\n const safe = Math.max(1, Math.min(page, this.totalPages));\n this.currentPage = safe;\n this.emit('nile-change', { page: safe, pageSize: this.pageSize });\n }\n\n private onPageSizeSelect(size: number) {\n if (this.disabled || this.pageSize === size) return;\n this.pageSize = size;\n this.currentPage = 1;\n this.emit('nile-change', { page: 1, pageSize: size });\n }\n\n private renderRangeText(): TemplateResult {\n return html`<div class=\"range-text\">\n ${getRangeText(this.totalItems, this.pageSize, this.currentPage)}\n </div>`;\n }\n\n private renderPageSizeSelect(): TemplateResult | null {\n if (this.variant !== 'v1') return null;\n return html`\n <div class=\"page-size-select\">\n <nile-dropdown class=\"page-size-dropdown\" ?disabled=${this.disabled}>\n <nile-button slot=\"trigger\" variant=\"tertiary\" ?disabled=${this.disabled}>\n ${this.pageSize}\n <nile-icon name=\"chevrondown\" size=\"14\" class=\"chevron\"></nile-icon>\n </nile-button>\n <nile-menu class=\"page-size-menu\">\n ${this.pageSizeOptions.map(size => html`\n <nile-menu-item\n ?disabled=${this.disabled}\n @click=${() => this.onPageSizeSelect(size)}\n >\n ${size}\n </nile-menu-item>\n `)}\n </nile-menu>\n </nile-dropdown>\n <span class=\"page-size-label\">Items per page</span>\n </div>\n `;\n }\n\n private renderPrevButton(): TemplateResult {\n return html`\n <li>\n <nile-button\n variant=\"tertiary\"\n ?disabled=${this.currentPage === 1 || this.disabled}\n @click=${() => this.goToPage(this.currentPage - 1)}\n >\n <nile-icon name=\"arrowleft\" size=\"14\"></nile-icon>\n </nile-button>\n </li>\n `;\n }\n\n private renderNextButton(): TemplateResult {\n const total = this.totalPages;\n return html`\n <li>\n <nile-button\n variant=\"tertiary\"\n ?disabled=${this.currentPage === total || this.disabled}\n @click=${() => this.goToPage(this.currentPage + 1)}\n >\n <nile-icon name=\"arrowright\" size=\"14\"></nile-icon>\n </nile-button>\n </li>\n `;\n }\n\n private renderPageItem(item: number | string, idx: number, items: (number | string)[]): TemplateResult {\n if (item === '…') {\n return html`\n <li>\n <nile-dropdown class=\"ellipsis-dropdown\" ?disabled=${this.disabled}>\n <nile-button slot=\"trigger\" variant=\"ghost\" class=\"ellipsis-button\" ?disabled=${this.disabled}>\n …\n </nile-button>\n <nile-menu>\n <div class=\"ellipsis-scroll-wrapper\">\n ${getHiddenPages(\n this.totalPages,\n items,\n this.currentPage,\n idx < items.indexOf(this.currentPage) ? 'left' : 'right'\n ).map(page => html`\n <nile-menu-item\n ?disabled=${this.disabled}\n @click=${() => this.goToPage(page)}\n >\n ${page}\n </nile-menu-item>\n `)}\n </div>\n </nile-menu>\n </nile-dropdown>\n </li>\n `;\n }\n\n return html`\n <li>\n <nile-button\n variant=${item === this.currentPage ? 'primary' : 'ghost'}\n ?disabled=${this.disabled}\n @click=${() => this.goToPage(item as number)}\n >\n ${item}\n </nile-button>\n </li>\n `;\n }\n\n private renderPageList(): TemplateResult {\n const total = this.totalPages;\n const items = getPaginationItems(total, this.currentPage);\n return html`\n <nav aria-label=\"Pagination\">\n <ul class=\"pagination\">\n ${this.renderPrevButton()}\n ${items.map((item, idx) => this.renderPageItem(item, idx, items))}\n ${this.renderNextButton()}\n </ul>\n </nav>\n `;\n }\n\n public render(): TemplateResult {\n return html`\n <div class=\"pagination-wrapper ${this.variant}\">\n <div class=\"pager-container\">\n ${this.showTitle ? this.renderRangeText() : null}\n ${this.renderPageSizeSelect()}\n </div>\n ${this.renderPageList()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-pagination': NilePagination;\n }\n}\n"],"names":["NilePagination","d","constructor","this","totalItems","pageSize","currentPage","variant","disabled","showTitle","pageSizeOptions","_this","_inherits","_a","_createClass","key","get","calculateTotalPages","value","goToPage","page","safe","Math","max","min","totalPages","emit","onPageSizeSelect","size","renderRangeText","html","_templateObject","_taggedTemplateLiteral","getRangeText","renderPageSizeSelect","_this2","_templateObject2","map","_templateObject3","renderPrevButton","_this3","_templateObject4","renderNextButton","_this4","total","_templateObject5","renderPageItem","item","idx","items","_templateObject6","getHiddenPages","indexOf","_templateObject7","_templateObject8","renderPageList","getPaginationItems","_templateObject9","render","_templateObject10","styles","NileElement","__decorate","property","type","Number","prototype","String","Boolean","Array","customElement"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ System.register(["lit"],function(_export,_context){"use strict";var i,_templateObject,n;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){i=_lit.css;}],execute:function execute(){_export("s",n=i(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n }\n\n .pagination-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--nile-spacing-spacing-md) var(--nile-spacing-spacing-lg);\n }\n\n .pagination-wrapper.v2 {\n justify-content: flex-start;\n gap: var(--nile-spacing-spacing-lg);\n }\n\n .pagination-wrapper.v2 .pager-container {\n flex-direction: row;\n align-items: center;\n gap: var(--nile-spacing-spacing-md);\n margin-right: var(--nile-spacing-spacing-xl);\n }\n\n .pagination-wrapper.v2 .range-text {\n margin-right: var(--nile-spacing-spacing-md);\n font-size: var(--nile-font-size-small);\n color: var(--nile-colors-dark-900);\n font-feature-settings: 'liga' off, 'clig' off;\n font-weight: var(--nile-font-weight-regular);\n }\n\n .pager-container {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-spacing-3xl);\n }\n\n .range-text {\n font-size: var(--nile-font-size-small);\n color: var(--nile-colors-dark-900);\n white-space: nowrap;\n }\n\n .page-size-select {\n display: inline-flex;\n align-items: center;\n }\n\n ul.pagination {\n display: flex;\n list-style: none;\n padding: var(--nile-spacing-spacing-none);\n margin: var(--nile-spacing-spacing-none);\n gap: var(--nile-radius-radius-xxs);\n }\n\n ul.pagination li {\n margin: var(--nile-spacing-spacing-none);\n }\n\n .ellipsis-scroll-wrapper {\n max-height: 194px;\n overflow-y: auto;\n width: 66px;\n }\n\n .ellipsis-dropdown nile-menu {\n overflow-y: auto;\n padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);\n box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);\n }\n\n .ellipsis-dropdown nile-menu-item {\n padding: var(--nile-spacing-spacing-sm) var(--nile-spacing-spacing-lg);\n text-align: center;\n }\n\n .page-size-menu {\n max-height: 144px;\n overflow-y: auto;\n }\n\n ul.pagination li:first-child {\n margin-right: var(--nile-spacing-spacing-xs);\n }\n ul.pagination li:last-child {\n margin-left: var(--nile-spacing-spacing-md);\n }\n\n .page-size-label {\n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-dark-500);\n margin-left: var(--nile-spacing-spacing-md);\n font-feature-settings: 'liga' off, 'clig' off;\n font-weight: var(--nile-font-weight-regular);\n }\n\n .nile-button::part(base) {\n min-width: 32px;\n }\n"]))));}};});
2
+ //# sourceMappingURL=nile-pagination.css.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-pagination.css.cjs.js","sources":["../../../src/nile-pagination/nile-pagination.css.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Pagination CSS\n */\nexport const styles = css`\n :host {\n }\n\n .pagination-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--nile-spacing-spacing-md) var(--nile-spacing-spacing-lg);\n }\n\n .pagination-wrapper.v2 {\n justify-content: flex-start;\n gap: var(--nile-spacing-spacing-lg);\n }\n\n .pagination-wrapper.v2 .pager-container {\n flex-direction: row;\n align-items: center;\n gap: var(--nile-spacing-spacing-md);\n margin-right: var(--nile-spacing-spacing-xl);\n }\n\n .pagination-wrapper.v2 .range-text {\n margin-right: var(--nile-spacing-spacing-md);\n font-size: var(--nile-font-size-small);\n color: var(--nile-colors-dark-900);\n font-feature-settings: 'liga' off, 'clig' off;\n font-weight: var(--nile-font-weight-regular);\n }\n\n .pager-container {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-spacing-3xl);\n }\n\n .range-text {\n font-size: var(--nile-font-size-small);\n color: var(--nile-colors-dark-900);\n white-space: nowrap;\n }\n\n .page-size-select {\n display: inline-flex;\n align-items: center;\n }\n\n ul.pagination {\n display: flex;\n list-style: none;\n padding: var(--nile-spacing-spacing-none);\n margin: var(--nile-spacing-spacing-none);\n gap: var(--nile-radius-radius-xxs);\n }\n\n ul.pagination li {\n margin: var(--nile-spacing-spacing-none);\n }\n\n .ellipsis-scroll-wrapper {\n max-height: 194px;\n overflow-y: auto;\n width: 66px;\n }\n\n .ellipsis-dropdown nile-menu {\n overflow-y: auto;\n padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);\n box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);\n }\n\n .ellipsis-dropdown nile-menu-item {\n padding: var(--nile-spacing-spacing-sm) var(--nile-spacing-spacing-lg);\n text-align: center;\n }\n\n .page-size-menu {\n max-height: 144px;\n overflow-y: auto;\n }\n\n ul.pagination li:first-child {\n margin-right: var(--nile-spacing-spacing-xs);\n }\n ul.pagination li:last-child {\n margin-left: var(--nile-spacing-spacing-md);\n }\n\n .page-size-label {\n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-dark-500);\n margin-left: var(--nile-spacing-spacing-md);\n font-feature-settings: 'liga' off, 'clig' off;\n font-weight: var(--nile-font-weight-regular);\n }\n\n .nile-button::part(base) {\n min-width: 32px;\n }\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
@@ -0,0 +1,101 @@
1
+ import{css as i}from"lit";const n=i`
2
+ :host {
3
+ }
4
+
5
+ .pagination-wrapper {
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: space-between;
9
+ padding: var(--nile-spacing-spacing-md) var(--nile-spacing-spacing-lg);
10
+ }
11
+
12
+ .pagination-wrapper.v2 {
13
+ justify-content: flex-start;
14
+ gap: var(--nile-spacing-spacing-lg);
15
+ }
16
+
17
+ .pagination-wrapper.v2 .pager-container {
18
+ flex-direction: row;
19
+ align-items: center;
20
+ gap: var(--nile-spacing-spacing-md);
21
+ margin-right: var(--nile-spacing-spacing-xl);
22
+ }
23
+
24
+ .pagination-wrapper.v2 .range-text {
25
+ margin-right: var(--nile-spacing-spacing-md);
26
+ font-size: var(--nile-font-size-small);
27
+ color: var(--nile-colors-dark-900);
28
+ font-feature-settings: 'liga' off, 'clig' off;
29
+ font-weight: var(--nile-font-weight-regular);
30
+ }
31
+
32
+ .pager-container {
33
+ display: flex;
34
+ align-items: center;
35
+ gap: var(--nile-spacing-spacing-3xl);
36
+ }
37
+
38
+ .range-text {
39
+ font-size: var(--nile-font-size-small);
40
+ color: var(--nile-colors-dark-900);
41
+ white-space: nowrap;
42
+ }
43
+
44
+ .page-size-select {
45
+ display: inline-flex;
46
+ align-items: center;
47
+ }
48
+
49
+ ul.pagination {
50
+ display: flex;
51
+ list-style: none;
52
+ padding: var(--nile-spacing-spacing-none);
53
+ margin: var(--nile-spacing-spacing-none);
54
+ gap: var(--nile-radius-radius-xxs);
55
+ }
56
+
57
+ ul.pagination li {
58
+ margin: var(--nile-spacing-spacing-none);
59
+ }
60
+
61
+ .ellipsis-scroll-wrapper {
62
+ max-height: 194px;
63
+ overflow-y: auto;
64
+ width: 66px;
65
+ }
66
+
67
+ .ellipsis-dropdown nile-menu {
68
+ overflow-y: auto;
69
+ padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);
70
+ box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);
71
+ }
72
+
73
+ .ellipsis-dropdown nile-menu-item {
74
+ padding: var(--nile-spacing-spacing-sm) var(--nile-spacing-spacing-lg);
75
+ text-align: center;
76
+ }
77
+
78
+ .page-size-menu {
79
+ max-height: 144px;
80
+ overflow-y: auto;
81
+ }
82
+
83
+ ul.pagination li:first-child {
84
+ margin-right: var(--nile-spacing-spacing-xs);
85
+ }
86
+ ul.pagination li:last-child {
87
+ margin-left: var(--nile-spacing-spacing-md);
88
+ }
89
+
90
+ .page-size-label {
91
+ font-size: var(--nile-type-scale-3);
92
+ color: var(--nile-colors-dark-500);
93
+ margin-left: var(--nile-spacing-spacing-md);
94
+ font-feature-settings: 'liga' off, 'clig' off;
95
+ font-weight: var(--nile-font-weight-regular);
96
+ }
97
+
98
+ .nile-button::part(base) {
99
+ min-width: 32px;
100
+ }
101
+ `;export{n as s};
@@ -0,0 +1,89 @@
1
+ import{__decorate as i}from"tslib";import{html as e}from"lit";import{property as t,customElement as s}from"lit/decorators.js";import{s as n}from"./nile-pagination.css.esm.js";import{N as a}from"../internal/nile-element.esm.js";import{c as l,g as r,a as o,b as h}from"./nile-pagination-utils.esm.js";let d=class extends a{constructor(){super(...arguments),this.totalItems=0,this.pageSize=50,this.currentPage=1,this.variant="v1",this.disabled=!1,this.showTitle=!0,this.pageSizeOptions=[10,25,50,100]}static get styles(){return[n]}get totalPages(){return l(this.totalItems,this.pageSize)}goToPage(i){if(this.disabled)return;const e=Math.max(1,Math.min(i,this.totalPages));this.currentPage=e,this.emit("nile-change",{page:e,pageSize:this.pageSize})}onPageSizeSelect(i){this.disabled||this.pageSize===i||(this.pageSize=i,this.currentPage=1,this.emit("nile-change",{page:1,pageSize:i}))}renderRangeText(){return e`<div class="range-text">
2
+ ${r(this.totalItems,this.pageSize,this.currentPage)}
3
+ </div>`}renderPageSizeSelect(){return"v1"!==this.variant?null:e`
4
+ <div class="page-size-select">
5
+ <nile-dropdown class="page-size-dropdown" ?disabled=${this.disabled}>
6
+ <nile-button slot="trigger" variant="tertiary" ?disabled=${this.disabled}>
7
+ ${this.pageSize}
8
+ <nile-icon name="chevrondown" size="14" class="chevron"></nile-icon>
9
+ </nile-button>
10
+ <nile-menu class="page-size-menu">
11
+ ${this.pageSizeOptions.map((i=>e`
12
+ <nile-menu-item
13
+ ?disabled=${this.disabled}
14
+ @click=${()=>this.onPageSizeSelect(i)}
15
+ >
16
+ ${i}
17
+ </nile-menu-item>
18
+ `))}
19
+ </nile-menu>
20
+ </nile-dropdown>
21
+ <span class="page-size-label">Items per page</span>
22
+ </div>
23
+ `}renderPrevButton(){return e`
24
+ <li>
25
+ <nile-button
26
+ variant="tertiary"
27
+ ?disabled=${1===this.currentPage||this.disabled}
28
+ @click=${()=>this.goToPage(this.currentPage-1)}
29
+ >
30
+ <nile-icon name="arrowleft" size="14"></nile-icon>
31
+ </nile-button>
32
+ </li>
33
+ `}renderNextButton(){const i=this.totalPages;return e`
34
+ <li>
35
+ <nile-button
36
+ variant="tertiary"
37
+ ?disabled=${this.currentPage===i||this.disabled}
38
+ @click=${()=>this.goToPage(this.currentPage+1)}
39
+ >
40
+ <nile-icon name="arrowright" size="14"></nile-icon>
41
+ </nile-button>
42
+ </li>
43
+ `}renderPageItem(i,t,s){return"…"===i?e`
44
+ <li>
45
+ <nile-dropdown class="ellipsis-dropdown" ?disabled=${this.disabled}>
46
+ <nile-button slot="trigger" variant="ghost" class="ellipsis-button" ?disabled=${this.disabled}>
47
+
48
+ </nile-button>
49
+ <nile-menu>
50
+ <div class="ellipsis-scroll-wrapper">
51
+ ${o(this.totalPages,s,this.currentPage,t<s.indexOf(this.currentPage)?"left":"right").map((i=>e`
52
+ <nile-menu-item
53
+ ?disabled=${this.disabled}
54
+ @click=${()=>this.goToPage(i)}
55
+ >
56
+ ${i}
57
+ </nile-menu-item>
58
+ `))}
59
+ </div>
60
+ </nile-menu>
61
+ </nile-dropdown>
62
+ </li>
63
+ `:e`
64
+ <li>
65
+ <nile-button
66
+ variant=${i===this.currentPage?"primary":"ghost"}
67
+ ?disabled=${this.disabled}
68
+ @click=${()=>this.goToPage(i)}
69
+ >
70
+ ${i}
71
+ </nile-button>
72
+ </li>
73
+ `}renderPageList(){const i=this.totalPages,t=h(i,this.currentPage);return e`
74
+ <nav aria-label="Pagination">
75
+ <ul class="pagination">
76
+ ${this.renderPrevButton()}
77
+ ${t.map(((i,e)=>this.renderPageItem(i,e,t)))}
78
+ ${this.renderNextButton()}
79
+ </ul>
80
+ </nav>
81
+ `}render(){return e`
82
+ <div class="pagination-wrapper ${this.variant}">
83
+ <div class="pager-container">
84
+ ${this.showTitle?this.renderRangeText():null}
85
+ ${this.renderPageSizeSelect()}
86
+ </div>
87
+ ${this.renderPageList()}
88
+ </div>
89
+ `}};i([t({type:Number})],d.prototype,"totalItems",void 0),i([t({type:Number})],d.prototype,"pageSize",void 0),i([t({type:Number})],d.prototype,"currentPage",void 0),i([t({type:String})],d.prototype,"variant",void 0),i([t({type:Boolean})],d.prototype,"disabled",void 0),i([t({type:Boolean})],d.prototype,"showTitle",void 0),i([t({type:Array})],d.prototype,"pageSizeOptions",void 0),d=i([s("nile-pagination")],d);export{d as N};
@@ -77,3 +77,4 @@ export { NileToolbar } from './nile-toolbar';
77
77
  export { NileInlineEdit } from './nile-inline-edit';
78
78
  export { NileTable } from './nile-table';
79
79
  export { NileFilterChip } from './nile-filter-chip';
80
+ export { NilePagination } from './nile-pagination';
package/dist/src/index.js CHANGED
@@ -77,4 +77,5 @@ export { NileToolbar } from './nile-toolbar';
77
77
  export { NileInlineEdit } from './nile-inline-edit';
78
78
  export { NileTable } from './nile-table';
79
79
  export { NileFilterChip } from './nile-filter-chip';
80
+ export { NilePagination } from './nile-pagination';
80
81
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { NileButton } from './nile-button';\nexport { NileHeading } from './nile-heading';\nexport { NileIcon } from './nile-icon';\nexport { NileInput } from './nile-input';\nexport { NileSidebar } from './nile-sidebar';\nexport { NileMenu } from './nile-menu';\nexport { NileBadge } from './nile-badge';\nexport { NileDrawer } from './nile-drawer';\nexport { NileCheckbox } from './nile-checkbox';\nexport { NileRadio } from './nile-radio';\nexport { NileRadioGroup } from './nile-radio-group';\nexport { NilePopup } from './nile-popup';\nexport { NileTooltip } from './nile-tooltip';\nexport { NileSlideToggle } from './nile-slide-toggle';\nexport { NileLoader } from './nile-loader';\nexport { NileProgressBar } from './nile-progress-bar';\nexport { NileSpinner } from './nile-spinner';\nexport { NileSelect } from './nile-select';\nexport { NileOption } from './nile-option';\nexport { NileTag } from './nile-tag';\nexport { NileIconButton } from './nile-icon-button';\nexport { NileMenuItem } from './nile-menu-item';\nexport { NileDropdown } from './nile-dropdown';\nexport { NileAutoComplete } from './nile-auto-complete';\nexport { NileChip } from './nile-chip';\nexport { NileTextarea } from './nile-textarea';\nexport { NileDatePicker } from './nile-date-picker';\nexport { NileErrorMessage } from './nile-error-message';\nexport { NileFormErrorMessage } from './nile-form-error-message';\nexport { NileFormHelpText } from './nile-form-help-text';\nexport { NileCalendar } from './nile-calendar';\nexport { NileLink } from './nile-link';\nexport { NileButtonToggleGroup } from './nile-button-toggle-group';\nexport { NileButtonToggle } from './nile-button-toggle';\nexport { NileSwitcher } from './nile-switcher';\nexport { NileContentEditor } from './nile-content-editor';\nexport { NileDialog } from './nile-dialog';\nexport { NileErrorNotification } from './nile-error-notification';\nexport { NileTabGroup } from './nile-tab-group';\nexport { NileTab } from './nile-tab';\nexport { NileTabPanel } from './nile-tab-panel';\nexport { NileCodeEditor } from './nile-code-editor';\nexport { NileToast } from './nile-toast';\nexport { NileBreadcrumb } from './nile-breadcrumb';\nexport { NileBreadcrumbItem } from './nile-breadcrumb-item';\nexport { NileFormGroup } from './nile-form-group';\nexport { NileCard } from './nile-card';\nexport { NilePopover } from './nile-popover';\nexport { NileButtonFilter } from './nile-button-filter';\nexport { NileCircularProgressbar } from './nile-circular-progressbar';\nexport { NileSidebarMenu } from './nile-sidebar-menu';\nexport { NileSidebarMenuItems } from './nile-sidebar-menu-items';\nexport { NileSidebarWrapper } from './nile-sidebar-wrapper';\nexport { NileTableCellItem } from './nile-table-cell-item';\nexport { NileTableRow } from './nile-table-row';\nexport { NileTableBody } from './nile-table-body';\nexport { NileTableHeaderItem } from './nile-table-header-item';\nexport { NileAvatar } from './nile-avatar';\nexport { NilePageHeader } from './nile-page-header';\nexport { NileEmptyState } from './nile-empty-state';\nexport { NileHero } from './nile-hero';\nexport { NileStepperItem } from './nile-stepper-item';\nexport { NileStepper } from './nile-stepper';\nexport { NileHeroHeader } from './nile-hero-header';\nexport { NileVerticalStepperItem } from './nile-vertical-stepper-item';\nexport { NileFormatDate } from './nile-format-date';\nexport { NileSplitPanel } from './nile-split-panel';\nexport { NileTree } from './nile-tree';\nexport { NileTreeItem } from './nile-tree-item';\nexport { NileListItem } from './nile-list-item';\nexport { NileList } from './nile-list';\nexport { NileAccordion } from './nile-accordion';\nexport { NileDivider } from './nile-divider';\nexport { NileTitle } from './nile-title';\nexport { NileSectionMessage } from './nile-section-message';\nexport { NileToolbar } from './nile-toolbar';\nexport { NileInlineEdit } from './nile-inline-edit';\nexport { NileTable } from './nile-table';\nexport { NileFilterChip } from './nile-filter-chip'"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { NileButton } from './nile-button';\nexport { NileHeading } from './nile-heading';\nexport { NileIcon } from './nile-icon';\nexport { NileInput } from './nile-input';\nexport { NileSidebar } from './nile-sidebar';\nexport { NileMenu } from './nile-menu';\nexport { NileBadge } from './nile-badge';\nexport { NileDrawer } from './nile-drawer';\nexport { NileCheckbox } from './nile-checkbox';\nexport { NileRadio } from './nile-radio';\nexport { NileRadioGroup } from './nile-radio-group';\nexport { NilePopup } from './nile-popup';\nexport { NileTooltip } from './nile-tooltip';\nexport { NileSlideToggle } from './nile-slide-toggle';\nexport { NileLoader } from './nile-loader';\nexport { NileProgressBar } from './nile-progress-bar';\nexport { NileSpinner } from './nile-spinner';\nexport { NileSelect } from './nile-select';\nexport { NileOption } from './nile-option';\nexport { NileTag } from './nile-tag';\nexport { NileIconButton } from './nile-icon-button';\nexport { NileMenuItem } from './nile-menu-item';\nexport { NileDropdown } from './nile-dropdown';\nexport { NileAutoComplete } from './nile-auto-complete';\nexport { NileChip } from './nile-chip';\nexport { NileTextarea } from './nile-textarea';\nexport { NileDatePicker } from './nile-date-picker';\nexport { NileErrorMessage } from './nile-error-message';\nexport { NileFormErrorMessage } from './nile-form-error-message';\nexport { NileFormHelpText } from './nile-form-help-text';\nexport { NileCalendar } from './nile-calendar';\nexport { NileLink } from './nile-link';\nexport { NileButtonToggleGroup } from './nile-button-toggle-group';\nexport { NileButtonToggle } from './nile-button-toggle';\nexport { NileSwitcher } from './nile-switcher';\nexport { NileContentEditor } from './nile-content-editor';\nexport { NileDialog } from './nile-dialog';\nexport { NileErrorNotification } from './nile-error-notification';\nexport { NileTabGroup } from './nile-tab-group';\nexport { NileTab } from './nile-tab';\nexport { NileTabPanel } from './nile-tab-panel';\nexport { NileCodeEditor } from './nile-code-editor';\nexport { NileToast } from './nile-toast';\nexport { NileBreadcrumb } from './nile-breadcrumb';\nexport { NileBreadcrumbItem } from './nile-breadcrumb-item';\nexport { NileFormGroup } from './nile-form-group';\nexport { NileCard } from './nile-card';\nexport { NilePopover } from './nile-popover';\nexport { NileButtonFilter } from './nile-button-filter';\nexport { NileCircularProgressbar } from './nile-circular-progressbar';\nexport { NileSidebarMenu } from './nile-sidebar-menu';\nexport { NileSidebarMenuItems } from './nile-sidebar-menu-items';\nexport { NileSidebarWrapper } from './nile-sidebar-wrapper';\nexport { NileTableCellItem } from './nile-table-cell-item';\nexport { NileTableRow } from './nile-table-row';\nexport { NileTableBody } from './nile-table-body';\nexport { NileTableHeaderItem } from './nile-table-header-item';\nexport { NileAvatar } from './nile-avatar';\nexport { NilePageHeader } from './nile-page-header';\nexport { NileEmptyState } from './nile-empty-state';\nexport { NileHero } from './nile-hero';\nexport { NileStepperItem } from './nile-stepper-item';\nexport { NileStepper } from './nile-stepper';\nexport { NileHeroHeader } from './nile-hero-header';\nexport { NileVerticalStepperItem } from './nile-vertical-stepper-item';\nexport { NileFormatDate } from './nile-format-date';\nexport { NileSplitPanel } from './nile-split-panel';\nexport { NileTree } from './nile-tree';\nexport { NileTreeItem } from './nile-tree-item';\nexport { NileListItem } from './nile-list-item';\nexport { NileList } from './nile-list';\nexport { NileAccordion } from './nile-accordion';\nexport { NileDivider } from './nile-divider';\nexport { NileTitle } from './nile-title';\nexport { NileSectionMessage } from './nile-section-message';\nexport { NileToolbar } from './nile-toolbar';\nexport { NileInlineEdit } from './nile-inline-edit';\nexport { NileTable } from './nile-table';\nexport { NileFilterChip } from './nile-filter-chip'\nexport { NilePagination } from './nile-pagination';"]}
@@ -0,0 +1 @@
1
+ export { NilePagination } from './nile-pagination';
@@ -0,0 +1,2 @@
1
+ export { NilePagination } from './nile-pagination';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nile-pagination/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["export { NilePagination } from './nile-pagination';"]}
@@ -0,0 +1,4 @@
1
+ export declare function calculateTotalPages(totalItems: number, pageSize: number): number;
2
+ export declare function getPaginationItems(totalPages: number, currentPage: number): (number | string)[];
3
+ export declare function getHiddenPages(totalPages: number, items: (number | string)[], currentPage: number, position: 'left' | 'right'): number[];
4
+ export declare function getRangeText(totalItems: number, pageSize: number, currentPage: number): string;
@@ -0,0 +1,41 @@
1
+ export function calculateTotalPages(totalItems, pageSize) {
2
+ return Math.ceil(totalItems / pageSize);
3
+ }
4
+ export function getPaginationItems(totalPages, currentPage) {
5
+ if (totalPages <= 7) {
6
+ return Array.from({ length: totalPages }, (_, i) => i + 1);
7
+ }
8
+ const pages = [1];
9
+ if (currentPage <= 4) {
10
+ pages.push(2, 3, 4, 5, '…');
11
+ }
12
+ else if (currentPage >= totalPages - 3) {
13
+ pages.push('…', totalPages - 4, totalPages - 3, totalPages - 2, totalPages - 1);
14
+ }
15
+ else {
16
+ pages.push('…', currentPage - 1, currentPage, currentPage + 1, '…');
17
+ }
18
+ pages.push(totalPages);
19
+ return pages;
20
+ }
21
+ export function getHiddenPages(totalPages, items, currentPage, position) {
22
+ if (totalPages <= 7)
23
+ return [];
24
+ const all = Array.from({ length: totalPages }, (_, i) => i + 1);
25
+ const visible = items.filter(x => typeof x === 'number');
26
+ const hidden = all.filter(p => !visible.includes(p));
27
+ if (position === 'left') {
28
+ const firstAfterEllipsis = visible[1];
29
+ return hidden.filter(p => p < firstAfterEllipsis);
30
+ }
31
+ else {
32
+ const lastBeforeEllipsis = visible[visible.length - 2];
33
+ return hidden.filter(p => p > lastBeforeEllipsis);
34
+ }
35
+ }
36
+ export function getRangeText(totalItems, pageSize, currentPage) {
37
+ const start = (currentPage - 1) * pageSize + 1;
38
+ const end = Math.min(currentPage * pageSize, totalItems);
39
+ return `Showing ${start}–${end} of ${totalItems}`;
40
+ }
41
+ //# sourceMappingURL=nile-pagination-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-pagination-utils.js","sourceRoot":"","sources":["../../../src/nile-pagination/nile-pagination-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,QAAgB;IAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,WAAmB;IAEnB,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAwB,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,WAAW,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CACR,GAAG,EACH,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,CAAC,CACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,KAA0B,EAC1B,WAAmB,EACnB,QAA0B;IAE1B,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAa,CAAC;IACrE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAW,CAAC;QAChD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAW,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,QAAgB,EAChB,WAAmB;IAEnB,MAAM,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,OAAO,WAAW,KAAK,IAAI,GAAG,OAAO,UAAU,EAAE,CAAC;AACpD,CAAC","sourcesContent":["export function calculateTotalPages(\n totalItems: number,\n pageSize: number\n): number {\n return Math.ceil(totalItems / pageSize);\n}\n\nexport function getPaginationItems(\n totalPages: number,\n currentPage: number\n): (number | string)[] {\n if (totalPages <= 7) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: (number | string)[] = [1];\n if (currentPage <= 4) {\n pages.push(2, 3, 4, 5, '…');\n } else if (currentPage >= totalPages - 3) {\n pages.push(\n '…',\n totalPages - 4,\n totalPages - 3,\n totalPages - 2,\n totalPages - 1\n );\n } else {\n pages.push('…', currentPage - 1, currentPage, currentPage + 1, '…');\n }\n pages.push(totalPages);\n return pages;\n}\n\nexport function getHiddenPages(\n totalPages: number,\n items: (number | string)[],\n currentPage: number,\n position: 'left' | 'right'\n): number[] {\n if (totalPages <= 7) return [];\n\n const all = Array.from({ length: totalPages }, (_, i) => i + 1);\n const visible = items.filter(x => typeof x === 'number') as number[];\n const hidden = all.filter(p => !visible.includes(p));\n\n if (position === 'left') {\n const firstAfterEllipsis = visible[1] as number;\n return hidden.filter(p => p < firstAfterEllipsis);\n } else {\n const lastBeforeEllipsis = visible[visible.length - 2] as number;\n return hidden.filter(p => p > lastBeforeEllipsis);\n }\n}\n\nexport function getRangeText(\n totalItems: number,\n pageSize: number,\n currentPage: number\n): string {\n const start = (currentPage - 1) * pageSize + 1;\n const end = Math.min(currentPage * pageSize, totalItems);\n return `Showing ${start}–${end} of ${totalItems}`;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright Aquera Inc 2025
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ /**
8
+ * Pagination CSS
9
+ */
10
+ export declare const styles: import("lit").CSSResult;
11
+ declare const _default: import("lit").CSSResult[];
12
+ export default _default;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Copyright Aquera Inc 2025
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { css } from 'lit';
8
+ /**
9
+ * Pagination CSS
10
+ */
11
+ export const styles = css `
12
+ :host {
13
+ }
14
+
15
+ .pagination-wrapper {
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: space-between;
19
+ padding: var(--nile-spacing-spacing-md) var(--nile-spacing-spacing-lg);
20
+ }
21
+
22
+ .pagination-wrapper.v2 {
23
+ justify-content: flex-start;
24
+ gap: var(--nile-spacing-spacing-lg);
25
+ }
26
+
27
+ .pagination-wrapper.v2 .pager-container {
28
+ flex-direction: row;
29
+ align-items: center;
30
+ gap: var(--nile-spacing-spacing-md);
31
+ margin-right: var(--nile-spacing-spacing-xl);
32
+ }
33
+
34
+ .pagination-wrapper.v2 .range-text {
35
+ margin-right: var(--nile-spacing-spacing-md);
36
+ font-size: var(--nile-font-size-small);
37
+ color: var(--nile-colors-dark-900);
38
+ font-feature-settings: 'liga' off, 'clig' off;
39
+ font-weight: var(--nile-font-weight-regular);
40
+ }
41
+
42
+ .pager-container {
43
+ display: flex;
44
+ align-items: center;
45
+ gap: var(--nile-spacing-spacing-3xl);
46
+ }
47
+
48
+ .range-text {
49
+ font-size: var(--nile-font-size-small);
50
+ color: var(--nile-colors-dark-900);
51
+ white-space: nowrap;
52
+ }
53
+
54
+ .page-size-select {
55
+ display: inline-flex;
56
+ align-items: center;
57
+ }
58
+
59
+ ul.pagination {
60
+ display: flex;
61
+ list-style: none;
62
+ padding: var(--nile-spacing-spacing-none);
63
+ margin: var(--nile-spacing-spacing-none);
64
+ gap: var(--nile-radius-radius-xxs);
65
+ }
66
+
67
+ ul.pagination li {
68
+ margin: var(--nile-spacing-spacing-none);
69
+ }
70
+
71
+ .ellipsis-scroll-wrapper {
72
+ max-height: 194px;
73
+ overflow-y: auto;
74
+ width: 66px;
75
+ }
76
+
77
+ .ellipsis-dropdown nile-menu {
78
+ overflow-y: auto;
79
+ padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);
80
+ box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);
81
+ }
82
+
83
+ .ellipsis-dropdown nile-menu-item {
84
+ padding: var(--nile-spacing-spacing-sm) var(--nile-spacing-spacing-lg);
85
+ text-align: center;
86
+ }
87
+
88
+ .page-size-menu {
89
+ max-height: 144px;
90
+ overflow-y: auto;
91
+ }
92
+
93
+ ul.pagination li:first-child {
94
+ margin-right: var(--nile-spacing-spacing-xs);
95
+ }
96
+ ul.pagination li:last-child {
97
+ margin-left: var(--nile-spacing-spacing-md);
98
+ }
99
+
100
+ .page-size-label {
101
+ font-size: var(--nile-type-scale-3);
102
+ color: var(--nile-colors-dark-500);
103
+ margin-left: var(--nile-spacing-spacing-md);
104
+ font-feature-settings: 'liga' off, 'clig' off;
105
+ font-weight: var(--nile-font-weight-regular);
106
+ }
107
+
108
+ .nile-button::part(base) {
109
+ min-width: 32px;
110
+ }
111
+ `;
112
+ export default [styles];
113
+ //# sourceMappingURL=nile-pagination.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-pagination.css.js","sourceRoot":"","sources":["../../../src/nile-pagination/nile-pagination.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoGxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Pagination CSS\n */\nexport const styles = css`\n :host {\n }\n\n .pagination-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--nile-spacing-spacing-md) var(--nile-spacing-spacing-lg);\n }\n\n .pagination-wrapper.v2 {\n justify-content: flex-start;\n gap: var(--nile-spacing-spacing-lg);\n }\n\n .pagination-wrapper.v2 .pager-container {\n flex-direction: row;\n align-items: center;\n gap: var(--nile-spacing-spacing-md);\n margin-right: var(--nile-spacing-spacing-xl);\n }\n\n .pagination-wrapper.v2 .range-text {\n margin-right: var(--nile-spacing-spacing-md);\n font-size: var(--nile-font-size-small);\n color: var(--nile-colors-dark-900);\n font-feature-settings: 'liga' off, 'clig' off;\n font-weight: var(--nile-font-weight-regular);\n }\n\n .pager-container {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-spacing-3xl);\n }\n\n .range-text {\n font-size: var(--nile-font-size-small);\n color: var(--nile-colors-dark-900);\n white-space: nowrap;\n }\n\n .page-size-select {\n display: inline-flex;\n align-items: center;\n }\n\n ul.pagination {\n display: flex;\n list-style: none;\n padding: var(--nile-spacing-spacing-none);\n margin: var(--nile-spacing-spacing-none);\n gap: var(--nile-radius-radius-xxs);\n }\n\n ul.pagination li {\n margin: var(--nile-spacing-spacing-none);\n }\n\n .ellipsis-scroll-wrapper {\n max-height: 194px;\n overflow-y: auto;\n width: 66px;\n }\n\n .ellipsis-dropdown nile-menu {\n overflow-y: auto;\n padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);\n box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);\n }\n\n .ellipsis-dropdown nile-menu-item {\n padding: var(--nile-spacing-spacing-sm) var(--nile-spacing-spacing-lg);\n text-align: center;\n }\n\n .page-size-menu {\n max-height: 144px;\n overflow-y: auto;\n }\n\n ul.pagination li:first-child {\n margin-right: var(--nile-spacing-spacing-xs);\n }\n ul.pagination li:last-child {\n margin-left: var(--nile-spacing-spacing-md);\n }\n\n .page-size-label {\n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-dark-500);\n margin-left: var(--nile-spacing-spacing-md);\n font-feature-settings: 'liga' off, 'clig' off;\n font-weight: var(--nile-font-weight-regular);\n }\n\n .nile-button::part(base) {\n min-width: 32px;\n }\n`;\n\nexport default [styles];\n"]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright Aquera Inc 2025
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { CSSResultArray, TemplateResult } from 'lit';
8
+ import NileElement from '../internal/nile-element';
9
+ export declare class NilePagination extends NileElement {
10
+ static get styles(): CSSResultArray;
11
+ totalItems: number;
12
+ pageSize: number;
13
+ currentPage: number;
14
+ variant: 'v1' | 'v2';
15
+ disabled: boolean;
16
+ showTitle: boolean;
17
+ pageSizeOptions: number[];
18
+ private get totalPages();
19
+ private goToPage;
20
+ private onPageSizeSelect;
21
+ private renderRangeText;
22
+ private renderPageSizeSelect;
23
+ private renderPrevButton;
24
+ private renderNextButton;
25
+ private renderPageItem;
26
+ private renderPageList;
27
+ render(): TemplateResult;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'nile-pagination': NilePagination;
32
+ }
33
+ }