@aquera/nile-elements 0.1.50-beta-1.0 → 0.1.50

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 (209) hide show
  1. package/README.md +4 -4
  2. package/demo/index.html +33 -150
  3. package/dist/axe.min-2720cd56.esm.js +1 -0
  4. package/dist/axe.min-69d47269.cjs.js +2 -0
  5. package/dist/axe.min-69d47269.cjs.js.map +1 -0
  6. package/dist/{fixture-372df3b0.esm.js → fixture-e7023246.esm.js} +1 -1
  7. package/dist/{fixture-161dee0b.cjs.js → fixture-fe6c932e.cjs.js} +2 -2
  8. package/dist/fixture-fe6c932e.cjs.js.map +1 -0
  9. package/dist/index.cjs.js +1 -1
  10. package/dist/index.esm.js +1 -1
  11. package/dist/index.js +10339 -0
  12. package/dist/internal/form.cjs.js +1 -1
  13. package/dist/internal/form.cjs.js.map +1 -1
  14. package/dist/internal/form.esm.js +1 -1
  15. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  16. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  17. package/dist/nile-auto-complete/index.cjs.js +1 -1
  18. package/dist/nile-auto-complete/index.esm.js +1 -1
  19. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +17 -1
  20. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  21. package/dist/nile-auto-complete/nile-auto-complete.esm.js +29 -8
  22. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  23. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
  24. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  25. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  26. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  27. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  28. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  29. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  30. package/dist/nile-button/nile-button.test.esm.js +1 -1
  31. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  32. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  33. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  34. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  35. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  36. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  37. package/dist/nile-card/nile-card.test.esm.js +1 -1
  38. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  39. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  40. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  41. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  42. package/dist/nile-chip/nile-chip.esm.js +1 -0
  43. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  44. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  45. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  46. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  47. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  48. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  49. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  50. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  51. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  52. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  53. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  54. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  55. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  56. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  57. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  58. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  59. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  60. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  61. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  62. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  63. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  64. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  65. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  66. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  67. package/dist/nile-input/nile-input.test.esm.js +1 -1
  68. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  69. package/dist/nile-link/nile-link.test.esm.js +1 -1
  70. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  71. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  72. package/dist/nile-option/nile-option.cjs.js +1 -1
  73. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  74. package/dist/nile-option/nile-option.css.cjs.js +1 -1
  75. package/dist/nile-option/nile-option.css.cjs.js.map +1 -1
  76. package/dist/nile-option/nile-option.css.esm.js +1 -1
  77. package/dist/nile-option/nile-option.esm.js +2 -2
  78. package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
  79. package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
  80. package/dist/nile-pagination/nile-pagination.css.cjs.js +1 -1
  81. package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -1
  82. package/dist/nile-pagination/nile-pagination.css.esm.js +152 -39
  83. package/dist/nile-pagination/nile-pagination.esm.js +118 -29
  84. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  85. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  86. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  87. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  88. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  89. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  90. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  91. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  92. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  93. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  94. package/dist/nile-select/index.cjs.js +1 -1
  95. package/dist/nile-select/index.esm.js +1 -1
  96. package/dist/nile-select/nile-select.cjs.js +1 -1
  97. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  98. package/dist/nile-select/nile-select.esm.js +2 -2
  99. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  100. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  101. package/dist/nile-select/nile-select.test.esm.js +2 -2
  102. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  103. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  104. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  105. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  106. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  107. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  108. package/dist/src/index.d.ts +0 -1
  109. package/dist/src/index.js +0 -1
  110. package/dist/src/index.js.map +1 -1
  111. package/dist/src/internal/form.js +2 -2
  112. package/dist/src/internal/form.js.map +1 -1
  113. package/dist/src/nile-chip/nile-chip.js +1 -0
  114. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  115. package/dist/src/nile-option/nile-option.css.js +1 -1
  116. package/dist/src/nile-option/nile-option.css.js.map +1 -1
  117. package/dist/src/nile-option/nile-option.d.ts +1 -5
  118. package/dist/src/nile-option/nile-option.js +6 -21
  119. package/dist/src/nile-option/nile-option.js.map +1 -1
  120. package/dist/src/nile-pagination/nile-pagination.css.js +151 -38
  121. package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -1
  122. package/dist/src/nile-pagination/nile-pagination.d.ts +3 -0
  123. package/dist/src/nile-pagination/nile-pagination.js +167 -40
  124. package/dist/src/nile-pagination/nile-pagination.js.map +1 -1
  125. package/dist/src/nile-select/nile-select.d.ts +2 -11
  126. package/dist/src/nile-select/nile-select.js +18 -37
  127. package/dist/src/nile-select/nile-select.js.map +1 -1
  128. package/dist/tsconfig.tsbuildinfo +1 -1
  129. package/package.json +2 -1
  130. package/rollup.config.js +27 -39
  131. package/src/index.ts +1 -3
  132. package/src/internal/form.ts +2 -2
  133. package/src/nile-chip/nile-chip.ts +1 -0
  134. package/src/nile-option/nile-option.css.ts +1 -1
  135. package/src/nile-option/nile-option.ts +3 -17
  136. package/src/nile-pagination/nile-pagination.css.ts +151 -38
  137. package/src/nile-pagination/nile-pagination.ts +188 -46
  138. package/src/nile-select/nile-select.ts +9 -35
  139. package/vscode-html-custom-data.json +3 -230
  140. package/dist/axe.min-2b379f29.cjs.js +0 -12
  141. package/dist/axe.min-2b379f29.cjs.js.map +0 -1
  142. package/dist/axe.min-c2cd8733.esm.js +0 -12
  143. package/dist/fixture-161dee0b.cjs.js.map +0 -1
  144. package/dist/nile-select/virtual-scroll-helper.cjs.js +0 -2
  145. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +0 -1
  146. package/dist/nile-select/virtual-scroll-helper.esm.js +0 -38
  147. package/dist/nile-virtual-select/index.cjs.js +0 -2
  148. package/dist/nile-virtual-select/index.cjs.js.map +0 -1
  149. package/dist/nile-virtual-select/index.esm.js +0 -1
  150. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +0 -2
  151. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +0 -1
  152. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +0 -2
  153. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +0 -1
  154. package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +0 -467
  155. package/dist/nile-virtual-select/nile-virtual-select.esm.js +0 -227
  156. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +0 -2
  157. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +0 -1
  158. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +0 -49
  159. package/dist/nile-virtual-select/renderer.cjs.js +0 -2
  160. package/dist/nile-virtual-select/renderer.cjs.js.map +0 -1
  161. package/dist/nile-virtual-select/renderer.esm.js +0 -18
  162. package/dist/nile-virtual-select/search-manager.cjs.js +0 -2
  163. package/dist/nile-virtual-select/search-manager.cjs.js.map +0 -1
  164. package/dist/nile-virtual-select/search-manager.esm.js +0 -1
  165. package/dist/nile-virtual-select/selection-manager.cjs.js +0 -2
  166. package/dist/nile-virtual-select/selection-manager.cjs.js.map +0 -1
  167. package/dist/nile-virtual-select/selection-manager.esm.js +0 -1
  168. package/dist/nile-virtual-select/types.cjs.js +0 -2
  169. package/dist/nile-virtual-select/types.cjs.js.map +0 -1
  170. package/dist/nile-virtual-select/types.esm.js +0 -1
  171. package/dist/src/nile-select/virtual-scroll-helper.d.ts +0 -9
  172. package/dist/src/nile-select/virtual-scroll-helper.js +0 -51
  173. package/dist/src/nile-select/virtual-scroll-helper.js.map +0 -1
  174. package/dist/src/nile-virtual-select/index.d.ts +0 -1
  175. package/dist/src/nile-virtual-select/index.js +0 -2
  176. package/dist/src/nile-virtual-select/index.js.map +0 -1
  177. package/dist/src/nile-virtual-select/nile-virtual-select.css.d.ts +0 -12
  178. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +0 -479
  179. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +0 -1
  180. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +0 -263
  181. package/dist/src/nile-virtual-select/nile-virtual-select.js +0 -1183
  182. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +0 -1
  183. package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +0 -7
  184. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +0 -341
  185. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +0 -1
  186. package/dist/src/nile-virtual-select/renderer.d.ts +0 -11
  187. package/dist/src/nile-virtual-select/renderer.js +0 -51
  188. package/dist/src/nile-virtual-select/renderer.js.map +0 -1
  189. package/dist/src/nile-virtual-select/search-manager.d.ts +0 -12
  190. package/dist/src/nile-virtual-select/search-manager.js +0 -40
  191. package/dist/src/nile-virtual-select/search-manager.js.map +0 -1
  192. package/dist/src/nile-virtual-select/selection-manager.d.ts +0 -12
  193. package/dist/src/nile-virtual-select/selection-manager.js +0 -64
  194. package/dist/src/nile-virtual-select/selection-manager.js.map +0 -1
  195. package/dist/src/nile-virtual-select/types.d.ts +0 -50
  196. package/dist/src/nile-virtual-select/types.js +0 -8
  197. package/dist/src/nile-virtual-select/types.js.map +0 -1
  198. package/dist/virtualize-a4a40d96.esm.js +0 -22
  199. package/dist/virtualize-b6a2fbe0.cjs.js +0 -18
  200. package/dist/virtualize-b6a2fbe0.cjs.js.map +0 -1
  201. package/src/nile-select/virtual-scroll-helper.ts +0 -56
  202. package/src/nile-virtual-select/index.ts +0 -1
  203. package/src/nile-virtual-select/nile-virtual-select.css.ts +0 -481
  204. package/src/nile-virtual-select/nile-virtual-select.test.ts +0 -414
  205. package/src/nile-virtual-select/nile-virtual-select.ts +0 -1268
  206. package/src/nile-virtual-select/renderer.ts +0 -73
  207. package/src/nile-virtual-select/search-manager.ts +0 -50
  208. package/src/nile-virtual-select/selection-manager.ts +0 -75
  209. package/src/nile-virtual-select/types.ts +0 -54
@@ -1 +1 @@
1
- {"version":3,"file":"nile-option.js","sourceRoot":"","sources":["../../../src/nile-option/nile-option.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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 { LitElement, CSSResultArray, TemplateResult } from 'lit';\nimport { styles } from './nile-option.css';\nimport '../nile-icon';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport NileElement from '../internal/nile-element';\nimport '../nile-checkbox';\n\n/**\n * Nile icon component.\n *\n * @tag nile-option\n *\n */\n\n/**\n * @summary Options define the selectable items within various form controls such as [select](/components/select).\n * @status stable\n *\n * @dependency nile-icon\n *\n * @slot - The option's label.\n * @slot prefix - Used to prepend an icon or similar element to the menu item.\n * @slot suffix - Used to append an icon or similar element to the menu item.\n *\n * @csspart checked-icon - The checked icon, an `<nile-icon>` element.\n * @csspart base - The component's base wrapper.\n * @csspart label - The option's label.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n */\n\n@customElement('nile-option')\nexport class NileOption extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private cachedTextLabel: string;\n\n @query('.option__label') defaultSlot: HTMLSlotElement;\n\n @state() current = false; // the user has keyed into the option, but hasn't selected it yet (shows a highlight)\n @state() hasHover = false; // we need this because Safari doesn't honor :hover styles while dragging\n @state() hidden = false; // the option is hidden\n @state() isMultipleSelect = false;\n\n /**\n * The option's value. When selected, the containing form control will receive this value. The value must be unique\n * from other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\n * multiple values.\n */\n @property({ reflect: true }) value = '';\n\n @property({ type: Boolean }) showCheckbox: boolean = false;\n\n /** Draws the option in a disabled state, preventing selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Forces the option to display in multiple select mode with checkboxes. */\n @property({ type: Boolean, reflect: true }) multiple = false;\n\n /** Indicates whether the option is selected. */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'option');\n this.setAttribute('aria-selected', 'false');\n\n // Find the closest parent 'nile-select' or 'nile-virtual-select' element\n const parentSelect = this.closest('nile-select') || this.closest('nile-virtual-select');\n\n // Check if the parent has the 'multiple' attribute\n if (parentSelect && parentSelect.hasAttribute('multiple')) {\n let multipleValue = parentSelect.getAttribute('multiple');\n if (multipleValue !== 'false') {\n if(multipleValue === ''){\n multipleValue = 'true';\n }\n this.isMultipleSelect = Boolean(multipleValue);\n }\n }\n\n if (this.multiple) {\n this.isMultipleSelect = true;\n }\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n if(_changedProperties.has('showCheckbox')) {\n this.isMultipleSelect = this.showCheckbox;\n }\n }\n\n private handleDefaultSlotChange() {\n const textLabel = this.getTextLabel();\n\n // Ignore the first time the label is set\n if (typeof this.cachedTextLabel === 'undefined') {\n this.cachedTextLabel = textLabel;\n return;\n }\n\n // When the label changes, emit a slotchange event so parent controls see it\n if (textLabel !== this.cachedTextLabel) {\n this.cachedTextLabel = textLabel;\n this.emit('slotchange');\n }\n }\n\n private handleMouseEnter() {\n this.hasHover = true;\n }\n\n private handleMouseLeave() {\n this.hasHover = false;\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n @watch('selected')\n handleSelectedChange() {\n this.setAttribute('aria-selected', this.selected ? 'true' : 'false');\n }\n\n @watch('multiple')\n handleMultipleChange() {\n this.isMultipleSelect = this.multiple;\n }\n\n @watch('value')\n handleValueChange() {\n // Ensure the value is a string. This ensures the next line doesn't error and allows framework users to pass numbers\n // instead of requiring them to cast the value to a string.\n if (typeof this.value !== 'string') {\n this.value = String(this.value);\n }\n\n // if (this.value.includes(' ')) {\n // console.error(\n // `Option values cannot include a space. All spaces have been replaced with underscores.`,\n // this\n // );\n // this.value = this.value.replace(/ /g, '_');\n // }\n }\n\n /** Returns a plain text label based on the option's content. */\n getTextLabel() {\n // Search for a label element inside the component\n const labelElement = this.querySelector('label');\n\n // If a label element is found, return its text content\n if (labelElement) {\n return labelElement.textContent?.trim() ?? '';\n }\n\n // If no label element is found, return the existing behavior\n return (this.textContent ?? '').trim();\n }\n\n render() {\n return html`\n ${!this.hidden\n ? html` <div\n part=\"base\"\n class=${classMap({\n option: true,\n 'option--single-select': !this.isMultipleSelect,\n 'option--current': this.selected && !this.isMultipleSelect,\n 'option--disabled': this.disabled,\n 'option--selected': this.selected && !this.isMultipleSelect,\n 'option--hover': this.hasHover,\n })}\n @mouseenter=${this.handleMouseEnter}\n @mouseleave=${this.handleMouseLeave}\n >\n\n ${this.isMultipleSelect ? html`<nile-checkbox class=\"option--checkbox\" .checked=${this.selected}></nile-checkbox>` : ''}\n\n <slot part=\"prefix\" name=\"prefix\" class=\"option__prefix\"></slot>\n <slot\n part=\"label\"\n class=\"option__label\"\n @slotchange=${this.handleDefaultSlotChange}\n ></slot>\n <slot part=\"suffix\" name=\"suffix\" class=\"option__suffix\"></slot>\n </div>`\n : ''}\n `;\n }\n}\n\nexport default NileOption;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-option': NileOption;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-option.js","sourceRoot":"","sources":["../../../src/nile-option/nile-option.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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 { LitElement, CSSResultArray, TemplateResult } from 'lit';\nimport { styles } from './nile-option.css';\nimport '../nile-icon';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport NileElement from '../internal/nile-element';\nimport '../nile-checkbox';\n\n/**\n * Nile icon component.\n *\n * @tag nile-option\n *\n */\n\n/**\n * @summary Options define the selectable items within various form controls such as [select](/components/select).\n * @status stable\n *\n * @dependency nile-icon\n *\n * @slot - The option's label.\n * @slot prefix - Used to prepend an icon or similar element to the menu item.\n * @slot suffix - Used to append an icon or similar element to the menu item.\n *\n * @csspart checked-icon - The checked icon, an `<nile-icon>` element.\n * @csspart base - The component's base wrapper.\n * @csspart label - The option's label.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n */\n\n@customElement('nile-option')\nexport class NileOption extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private cachedTextLabel: string;\n\n @query('.option__label') defaultSlot: HTMLSlotElement;\n\n @state() current = false; // the user has keyed into the option, but hasn't selected it yet (shows a highlight)\n @state() selected = false; // the option is selected and has aria-selected=\"true\"\n @state() hasHover = false; // we need this because Safari doesn't honor :hover styles while dragging\n @state() hidden = false; // the option is hidden\n @state() isMultipleSelect = false;\n\n /**\n * The option's value. When selected, the containing form control will receive this value. The value must be unique\n * from other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\n * multiple values.\n */\n @property({ reflect: true }) value = '';\n\n @property({ type: Boolean }) showCheckbox: boolean = false;\n\n /** Draws the option in a disabled state, preventing selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'option');\n this.setAttribute('aria-selected', 'false');\n\n // Find the closest parent 'nile-select' element\n const parentSelect = this.closest('nile-select');\n\n // Check if the parent has the 'multiple' attribute\n if (parentSelect && parentSelect.hasAttribute('multiple')) {\n let multipleValue = parentSelect.getAttribute('multiple');\n if (multipleValue !== 'false') {\n if(multipleValue === ''){\n multipleValue = 'true';\n }\n this.isMultipleSelect = Boolean(multipleValue);\n }\n }\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n if(_changedProperties.has('showCheckbox')) {\n this.isMultipleSelect = this.showCheckbox;\n }\n }\n\n private handleDefaultSlotChange() {\n const textLabel = this.getTextLabel();\n\n // Ignore the first time the label is set\n if (typeof this.cachedTextLabel === 'undefined') {\n this.cachedTextLabel = textLabel;\n return;\n }\n\n // When the label changes, emit a slotchange event so parent controls see it\n if (textLabel !== this.cachedTextLabel) {\n this.cachedTextLabel = textLabel;\n this.emit('slotchange');\n }\n }\n\n private handleMouseEnter() {\n this.hasHover = true;\n }\n\n private handleMouseLeave() {\n this.hasHover = false;\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n @watch('selected')\n handleSelectedChange() {\n this.setAttribute('aria-selected', this.selected ? 'true' : 'false');\n }\n\n @watch('value')\n handleValueChange() {\n // Ensure the value is a string. This ensures the next line doesn't error and allows framework users to pass numbers\n // instead of requiring them to cast the value to a string.\n if (typeof this.value !== 'string') {\n this.value = String(this.value);\n }\n\n // if (this.value.includes(' ')) {\n // console.error(\n // `Option values cannot include a space. All spaces have been replaced with underscores.`,\n // this\n // );\n // this.value = this.value.replace(/ /g, '_');\n // }\n }\n\n /** Returns a plain text label based on the option's content. */\n getTextLabel() {\n // Search for a label element inside the component\n const labelElement = this.querySelector('label');\n\n // If a label element is found, return its text content\n if (labelElement) {\n return labelElement.textContent?.trim() ?? '';\n }\n\n // If no label element is found, return the existing behavior\n return (this.textContent ?? '').trim();\n }\n\n render() {\n return html`\n ${!this.hidden\n ? html` <div\n part=\"base\"\n class=${classMap({\n option: true,\n 'option--single-select': !this.isMultipleSelect,\n 'option--current': this.selected && !this.isMultipleSelect,\n 'option--disabled': this.disabled,\n 'option--selected': this.selected && !this.isMultipleSelect,\n 'option--hover': this.hasHover,\n })}\n @mouseenter=${this.handleMouseEnter}\n @mouseleave=${this.handleMouseLeave}\n >\n\n ${this.isMultipleSelect ? html`<nile-checkbox class=\"option--checkbox\" .checked=${this.selected}></nile-checkbox>` : ''}\n\n <slot part=\"prefix\" name=\"prefix\" class=\"option__prefix\"></slot>\n <slot\n part=\"label\"\n class=\"option__label\"\n @slotchange=${this.handleDefaultSlotChange}\n ></slot>\n <slot part=\"suffix\" name=\"suffix\" class=\"option__suffix\"></slot>\n </div>`\n : ''}\n `;\n }\n}\n\nexport default NileOption;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-option': NileOption;\n }\n}\n"]}
@@ -16,14 +16,10 @@ export const styles = css `
16
16
  display: flex;
17
17
  align-items: center;
18
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);
19
+ padding: var(--nile-spacing-spacing-md) var(--nile-spacing-spacing-lg) ;
25
20
  }
26
21
 
22
+
27
23
  .pagination-wrapper.v2 .pager-container {
28
24
  flex-direction: row;
29
25
  align-items: center;
@@ -39,12 +35,79 @@ export const styles = css `
39
35
  font-weight: var(--nile-font-weight-regular);
40
36
  }
41
37
 
38
+
39
+ .pagination-wrapper.compact {
40
+ min-width: 324px;
41
+ justify-content: space-between;
42
+ }
43
+
44
+
45
+
46
+ .pagination-wrapper.compact .range-text {
47
+ margin-right: var(--nile-spacing-spacing-md);
48
+ white-space: nowrap;
49
+ }
50
+
51
+
52
+ .pagination-wrapper.compact .pager-container {
53
+ gap: var(--nile-spacing-spacing-md);
54
+ }
55
+
56
+
57
+ .pagination-wrapper.compact .pager-container {
58
+ display: flex;
59
+ align-items: center;
60
+ gap: var(--nile-spacing-spacing-md);
61
+ }
62
+
63
+ .pagination-wrapper.compact .page-size-dropdown ::part(base) {
64
+ min-width: 32px;
65
+ height: 32px;
66
+ padding: 0 6px;
67
+ }
68
+
69
+ .pagination-wrapper.compact .page-size-dropdown .chevron {
70
+ transition: transform 0.2s;
71
+ }
72
+ .pagination-wrapper.compact .page-size-dropdown .open .chevron {
73
+ transform: rotate(180deg);
74
+ }
75
+
76
+ .pagination-wrapper.compact ul.pagination:not(.compact-pagination) {
77
+ display: none;
78
+ }
79
+
80
+ .compact-pagination {
81
+ display: flex;
82
+ align-items: center;
83
+ gap: var(--nile-spacing-spacing-xs);
84
+ list-style: none;
85
+ margin: 0;
86
+ padding: 0;
87
+ }
88
+ .page-dropdown .current-page-btn {
89
+ padding: 2px;
90
+ font-size: var(--nile-font-size-small);
91
+ }
92
+
93
+ nile-button.current-page-btn::part(base){
94
+ min-width: 51px;
95
+ }
96
+
97
+ nile-button.current-page-btn::part(base):active {
98
+ min-width: 51px;
99
+ }
100
+
42
101
  .pager-container {
43
102
  display: flex;
44
103
  align-items: center;
45
104
  gap: var(--nile-spacing-spacing-3xl);
46
105
  }
47
106
 
107
+ .pagination-wrapper.compact .pager-container {
108
+ gap: var(--nile-spacing-xxs) !important;
109
+ }
110
+
48
111
  .range-text {
49
112
  font-size: var(--nile-font-size-small);
50
113
  color: var(--nile-colors-dark-900);
@@ -73,63 +136,113 @@ export const styles = css `
73
136
  overflow-y: auto;
74
137
  width: 66px;
75
138
  }
139
+ .down-scroll-wrapper {
140
+ max-height: 150px;
141
+ overflow-y: auto;
142
+ width: 60px;
143
+ }
76
144
 
77
- .ellipsis-dropdown nile-menu {
145
+
146
+ .compact-scroll-wrapper {
147
+ max-height: 160px;
148
+ overflow-y: auto;
149
+ width: 60px;
150
+ }
151
+ .compact-dropdown nile-menu {
152
+ overflow-y: auto;
153
+ padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);
154
+ box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);
155
+ }
156
+
157
+ .page-size-dropdown nile-menu {
78
158
  overflow-y: auto;
79
159
  padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);
80
160
  box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);
81
161
  }
82
162
 
83
-
163
+ .compact-scroll-wrapper1 {
164
+ max-height: 164px;
165
+ overflow-y: auto;
166
+ width: 60px;
167
+ }
84
168
 
85
- .page-size-menu {
86
- max-height: 144px;
169
+ .compact-dropdown1 nile-menu {
87
170
  overflow-y: auto;
171
+ padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);
172
+ box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);
173
+ }
174
+
175
+ .compact-dropdown1 nile-menu {
176
+ overflow-y: auto;
177
+ padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);
178
+ box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);
88
179
  }
89
180
 
90
- ul.pagination li:first-child {
91
- margin-right: var(--nile-spacing-spacing-xs);
181
+
182
+ .ellipsis-dropdown nile-menu {
183
+ overflow-y: auto;
184
+ padding: var(--nile-spacing-spacing-lg) var(--nile-spacing-spacing-none);
185
+ box-shadow: 0px 4px 8px 0px rgba(119, 125, 130, 0.15);
92
186
  }
93
- ul.pagination li:last-child {
94
- margin-left: var(--nile-spacing-spacing-md);
187
+
188
+ .page-size-menu {
189
+ max-height: 144px;
190
+ overflow-y: auto;
95
191
  }
96
192
 
193
+ .pagination-wrapper.fluid ul.pagination li:first-child {
194
+ margin-right: var(--nile-spacing-spacing-xs);
195
+ }
196
+ .pagination-wrapper.fluid ul.pagination li:last-child {
197
+ margin-left: var(--nile-spacing-spacing-md);
198
+ }
199
+
200
+
97
201
  .page-size-label {
98
202
  font-size: var(--nile-type-scale-3);
99
203
  color: var(--nile-colors-dark-500);
100
204
  margin-left: var(--nile-spacing-spacing-md);
101
205
  font-feature-settings: 'liga' off, 'clig' off;
102
- font-weight: var(--nile-font-weight-regular);
206
+ font-weight: var(--nile-font-weight-regular);
103
207
  }
104
208
 
105
209
  nile-button::part(base) {
106
- min-width: 32px;
107
- height: 32px;
108
- padding: 0px 6px;
109
- box-shadow: none;
110
- }
210
+ min-width: 32px;
211
+ height: 32px;
212
+ padding: 0px 6px;
213
+ box-shadow: none;
214
+ }
111
215
 
112
216
  nile-button::part(base):active {
113
- min-width: 32px;
114
- height: 32px;
115
- padding: 0px 6px;
116
- box-shadow: none;
117
- border:none;
118
- }
119
-
120
- nile-button.down::part(base){
121
- min-width: 62px;
122
-
123
- }
124
- .page-size-dropdown .chevron {
125
- transition: transform 0.2s;
126
- }
127
- .page-size-dropdown .open .chevron {
128
- transform: rotate(180deg);
129
- }
130
-
217
+ min-width: 32px;
218
+ height: 32px;
219
+ padding: 0px 6px;
220
+ box-shadow: none;
221
+ border: none;
222
+ }
131
223
 
224
+ nile-button.down::part(base) {
225
+ min-width: 62px;
226
+ }
132
227
 
228
+ nile-button.compactbtn:part(base){
229
+ background-color: red;
230
+ }
231
+ .page-size-dropdown .chevron {
232
+ transition: transform 0.2s;
233
+ }
234
+ .page-size-dropdown .open .chevron {
235
+ transform: rotate(180deg);
236
+ }
237
+
238
+ .pagination-wrapper.compact .compact-dropdown .chevron,
239
+ .pagination-wrapper.compact .compact-dropdown1 .chevron {
240
+ transition: transform 0.2s;
241
+ }
242
+ .pagination-wrapper.compact .compact-dropdown .down.open .chevron,
243
+ .pagination-wrapper.compact .compact-dropdown1 .current-page-btn.open .chevron {
244
+ transform: rotate(180deg);
245
+ }
133
246
 
134
247
 
135
248
  `;
@@ -1 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HxB,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 \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 height: 32px;\n padding: 0px 6px;\n box-shadow: none;\n}\n\n nile-button::part(base):active {\n min-width: 32px;\n height: 32px;\n padding: 0px 6px;\n box-shadow: none;\n border:none;\n}\n \n nile-button.down::part(base){\n min-width: 62px;\n\n }\n.page-size-dropdown .chevron {\n transition: transform 0.2s;\n}\n.page-size-dropdown .open .chevron {\n transform: rotate(180deg);\n}\n\n\n\n\n\n`;\n\nexport default [styles];\n"]}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6OxB,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 \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 \n .pagination-wrapper.compact {\n min-width: 324px;\n justify-content: space-between;\n }\n\n\n\n.pagination-wrapper.compact .range-text {\n margin-right: var(--nile-spacing-spacing-md);\n white-space: nowrap;\n}\n\n\n.pagination-wrapper.compact .pager-container {\n gap: var(--nile-spacing-spacing-md);\n}\n\n\n .pagination-wrapper.compact .pager-container {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-spacing-md);\n }\n\n .pagination-wrapper.compact .page-size-dropdown ::part(base) {\n min-width: 32px;\n height: 32px;\n padding: 0 6px;\n }\n\n .pagination-wrapper.compact .page-size-dropdown .chevron {\n transition: transform 0.2s;\n }\n .pagination-wrapper.compact .page-size-dropdown .open .chevron {\n transform: rotate(180deg);\n }\n\n .pagination-wrapper.compact ul.pagination:not(.compact-pagination) {\n display: none;\n }\n\n .compact-pagination {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-spacing-xs);\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .page-dropdown .current-page-btn {\n padding: 2px;\n font-size: var(--nile-font-size-small);\n }\n\n nile-button.current-page-btn::part(base){\n min-width: 51px;\n }\n\n nile-button.current-page-btn::part(base):active {\n min-width: 51px;\n}\n\n .pager-container {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-spacing-3xl);\n }\n\n.pagination-wrapper.compact .pager-container {\n gap: var(--nile-spacing-xxs) !important;\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 .down-scroll-wrapper {\n max-height: 150px;\n overflow-y: auto;\n width: 60px;\n }\n\n\n .compact-scroll-wrapper {\n max-height: 160px;\n overflow-y: auto;\n width: 60px;\n }\n .compact-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 .page-size-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 .compact-scroll-wrapper1 {\n max-height: 164px;\n overflow-y: auto;\n width: 60px;\n }\n\n .compact-dropdown1 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 .compact-dropdown1 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\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 .page-size-menu {\n max-height: 144px;\n overflow-y: auto;\n }\n\n.pagination-wrapper.fluid ul.pagination li:first-child {\n margin-right: var(--nile-spacing-spacing-xs);\n}\n.pagination-wrapper.fluid ul.pagination li:last-child {\n margin-left: var(--nile-spacing-spacing-md);\n}\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 height: 32px;\n padding: 0px 6px;\n box-shadow: none;\n }\n\n nile-button::part(base):active {\n min-width: 32px;\n height: 32px;\n padding: 0px 6px;\n box-shadow: none;\n border: none;\n }\n\n nile-button.down::part(base) {\n min-width: 62px;\n }\n\n nile-button.compactbtn:part(base){\n background-color: red;\n }\n .page-size-dropdown .chevron {\n transition: transform 0.2s;\n }\n .page-size-dropdown .open .chevron {\n transform: rotate(180deg);\n }\n \n .pagination-wrapper.compact .compact-dropdown .chevron,\n .pagination-wrapper.compact .compact-dropdown1 .chevron {\n transition: transform 0.2s;\n }\n .pagination-wrapper.compact .compact-dropdown .down.open .chevron,\n .pagination-wrapper.compact .compact-dropdown1 .current-page-btn.open .chevron {\n transform: rotate(180deg);\n }\n\n\n`;\n\nexport default [styles];\n"]}
@@ -16,13 +16,16 @@ export declare class NilePagination extends NileElement {
16
16
  disabled: boolean;
17
17
  showTitle: boolean;
18
18
  private _pageSizeOpen;
19
+ private _pageOpen;
19
20
  private _pageSizeDropdown;
20
21
  firstUpdated(): void;
21
22
  private get totalPages();
22
23
  private goToPage;
23
24
  private onPageSizeSelect;
25
+ private renderCompactRangeText;
24
26
  private renderRangeText;
25
27
  private renderPageSizeSelect;
28
+ private renderCompactPageSize;
26
29
  private renderPrevButton;
27
30
  private renderNextButton;
28
31
  private renderPageItem;
@@ -1,10 +1,10 @@
1
- import { __decorate } from "tslib";
2
1
  /**
3
2
  * Copyright Aquera Inc 2025
4
3
  *
5
4
  * This source code is licensed under the BSD-3-Clause license found in the
6
5
  * LICENSE file in the root directory of this source tree.
7
6
  */
7
+ import { __decorate } from "tslib";
8
8
  import { html } from 'lit';
9
9
  import { customElement, property, query, state } from 'lit/decorators.js';
10
10
  import { styles } from './nile-pagination.css';
@@ -21,41 +21,57 @@ let NilePagination = class NilePagination extends NileElement {
21
21
  this.disabled = false;
22
22
  this.showTitle = true;
23
23
  this._pageSizeOpen = false;
24
+ this._pageOpen = false;
24
25
  }
25
26
  static get styles() {
26
27
  return [styles];
27
28
  }
28
29
  firstUpdated() {
29
- this._pageSizeDropdown.addEventListener('nile-show', () => {
30
- this._pageSizeOpen = true;
31
- });
32
- this._pageSizeDropdown.addEventListener('nile-after-hide', () => {
33
- this._pageSizeOpen = false;
34
- });
30
+ if (this._pageSizeDropdown) {
31
+ this._pageSizeDropdown.addEventListener('nile-show', () => {
32
+ this._pageSizeOpen = true;
33
+ });
34
+ this._pageSizeDropdown.addEventListener('nile-after-hide', () => {
35
+ this._pageSizeOpen = false;
36
+ });
37
+ }
35
38
  }
36
39
  get totalPages() {
37
40
  return Math.max(1, calculateTotalPages(this.totalItems, this.pageSize));
38
41
  }
39
- goToPage(page) {
42
+ goToPage(newPage) {
40
43
  if (this.disabled)
41
44
  return;
42
- this.currentPage = page;
43
- this.emit('nile-change', { page: this.currentPage, pageSize: this.pageSize });
45
+ const previousPage = this.currentPage;
46
+ this.currentPage = newPage;
47
+ this.emit('nile-change', { page: newPage, previousPage, pageSize: this.pageSize });
44
48
  }
45
- onPageSizeSelect(size) {
46
- if (this.disabled || this.pageSize === size)
49
+ onPageSizeSelect(newSize) {
50
+ if (this.disabled || this.pageSize === newSize)
47
51
  return;
48
- this.pageSize = size;
52
+ const previousPage = this.currentPage;
53
+ this.pageSize = newSize;
49
54
  this.currentPage = 1;
50
- this.emit('nile-change', { page: 1, pageSize: size });
55
+ this.emit('nile-change', {
56
+ page: 1,
57
+ previousPage,
58
+ pageSize: newSize
59
+ });
60
+ }
61
+ renderCompactRangeText() {
62
+ const full = getRangeText(this.totalItems, this.pageSize, this.currentPage);
63
+ const trimmed = full.replace(/^Showing\s*/, '');
64
+ return html `<div class="range-text">${trimmed}</div>`;
51
65
  }
52
66
  renderRangeText() {
53
67
  if (this.totalItems === 0) {
54
68
  return html `<div class="range-text">Showing 0 of 0</div>`;
55
69
  }
56
- return html `<div class="range-text">
57
- ${getRangeText(this.totalItems, this.pageSize, this.currentPage)}
58
- </div>`;
70
+ return html `
71
+ <div part="range-text" class="range-text">
72
+ ${getRangeText(this.totalItems, this.pageSize, this.currentPage)}
73
+ </div>
74
+ `;
59
75
  }
60
76
  renderPageSizeSelect() {
61
77
  if (this.variant !== 'fluid')
@@ -63,24 +79,72 @@ let NilePagination = class NilePagination extends NileElement {
63
79
  return html `
64
80
  <div class="page-size-select">
65
81
  <nile-dropdown class="page-size-dropdown" ?disabled=${this.disabled}>
66
- <nile-button slot="trigger" variant="tertiary" class="down ${this._pageSizeOpen ? 'open' : ''}"
82
+ <nile-button
83
+ slot="trigger"
84
+ variant="tertiary"
85
+ class="down ${this._pageSizeOpen ? 'open' : ''}"
67
86
  ?disabled=${this.disabled}
68
87
  >
69
88
  ${this.pageSize}
70
- <nile-icon name="chevrondown" size="14" color="var(--nile-colors-dark-500)" class="chevron"></nile-icon>
89
+ <nile-icon
90
+ name="chevrondown"
91
+ size="14"
92
+ color="var(--nile-colors-dark-500)"
93
+ class="chevron"
94
+ ></nile-icon>
71
95
  </nile-button>
72
- <nile-menu class="page-size-menu">
96
+ <nile-menu>
97
+ <div class="down-scroll-wrapper">
98
+ ${this.pageSizeOptions.map(size => html `
99
+ <nile-menu-item
100
+ ?disabled=${this.disabled}
101
+ @click=${() => this.onPageSizeSelect(size)}
102
+ >
103
+ ${size}
104
+ </nile-menu-item>
105
+ `)}
106
+ </div>
107
+ </nile-menu>
108
+ </nile-dropdown>
109
+ <span part="pagesize-label" class="page-size-label">Items per page</span>
110
+ </div>
111
+ `;
112
+ }
113
+ renderCompactPageSize() {
114
+ return html `
115
+ <nile-dropdown
116
+ class="compact-dropdown"
117
+ ?disabled=${this.disabled}
118
+ @nile-show=${() => (this._pageSizeOpen = true)}
119
+ @nile-after-hide=${() => (this._pageSizeOpen = false)}
120
+ >
121
+ <nile-button
122
+ slot="trigger"
123
+ variant="tertiary"
124
+ class="down ${this._pageSizeOpen ? 'open' : ''}"
125
+ ?disabled=${this.disabled}
126
+ >
127
+ ${this.pageSize}
128
+ <nile-icon
129
+ name="chevrondown"
130
+ size="14"
131
+ color="var(--nile-colors-dark-500)"
132
+ class="chevron"
133
+ ></nile-icon>
134
+ </nile-button>
135
+ <nile-menu>
136
+ <div class="compact-scroll-wrapper">
73
137
  ${this.pageSizeOptions.map(size => html `
74
138
  <nile-menu-item
75
139
  ?disabled=${this.disabled}
76
140
  @click=${() => this.onPageSizeSelect(size)}
77
141
  >
78
142
  ${size}
79
- </nile-menu-item>`)}
80
- </nile-menu>
81
- </nile-dropdown>
82
- <span class="page-size-label">Items per page</span>
83
- </div>
143
+ </nile-menu-item>
144
+ `)}
145
+ </div>
146
+ </nile-menu>
147
+ </nile-dropdown>
84
148
  `;
85
149
  }
86
150
  renderPrevButton() {
@@ -125,7 +189,8 @@ let NilePagination = class NilePagination extends NileElement {
125
189
  @click=${() => this.goToPage(page)}
126
190
  >
127
191
  ${page}
128
- </nile-menu-item>`)}
192
+ </nile-menu-item>
193
+ `)}
129
194
  </div>
130
195
  </nile-menu>
131
196
  </nile-dropdown>
@@ -145,10 +210,54 @@ let NilePagination = class NilePagination extends NileElement {
145
210
  `;
146
211
  }
147
212
  renderPageList() {
213
+ if (this.variant === 'compact') {
214
+ return html `
215
+ <nav aria-label="Pagination">
216
+ <ul class="pagination compact-pagination">
217
+ ${this.renderPrevButton()}
218
+ <li>
219
+ <nile-dropdown
220
+ class="compact-dropdown1"
221
+ ?disabled=${this.disabled}
222
+ @nile-show=${() => (this._pageOpen = true)}
223
+ @nile-after-hide=${() => (this._pageOpen = false)}
224
+ >
225
+ <nile-button
226
+ slot="trigger"
227
+ variant="tertiary"
228
+ class="current-page-btn ${this._pageOpen ? 'open' : ''}"
229
+ ?disabled=${this.disabled}
230
+ >
231
+ ${this.currentPage}
232
+ <nile-icon
233
+ name="chevrondown"
234
+ size="14"
235
+ class="chevron"
236
+ ></nile-icon>
237
+ </nile-button>
238
+ <nile-menu>
239
+ <div class="compact-scroll-wrapper1">
240
+ ${Array.from({ length: this.totalPages }, (_, i) => i + 1).map(p => html `
241
+ <nile-menu-item
242
+ ?disabled=${this.disabled}
243
+ @click=${() => this.goToPage(p)}
244
+ >
245
+ ${p}
246
+ </nile-menu-item>
247
+ `)}
248
+ </div>
249
+ </nile-menu>
250
+ </nile-dropdown>
251
+ </li>
252
+ ${this.renderNextButton()}
253
+ </ul>
254
+ </nav>
255
+ `;
256
+ }
148
257
  const items = getPaginationItems(this.totalPages, this.currentPage);
149
258
  return html `
150
259
  <nav aria-label="Pagination">
151
- <ul class="pagination">
260
+ <ul part="page-list" class="pagination">
152
261
  ${this.renderPrevButton()}
153
262
  ${items.map((item, idx) => this.renderPageItem(item, idx, items))}
154
263
  ${this.renderNextButton()}
@@ -158,33 +267,48 @@ let NilePagination = class NilePagination extends NileElement {
158
267
  }
159
268
  render() {
160
269
  return html `
161
- <div class="pagination-wrapper ${this.variant}">
162
- <div class="pager-container">
163
- ${this.showTitle ? this.renderRangeText() : null}
164
- ${this.renderPageSizeSelect()}
165
- </div>
166
- ${this.renderPageList()}
270
+ <div part="wrapper" class="pagination-wrapper ${this.variant}">
271
+ <div part="pager-container" class="pager-container">
272
+ ${this.variant === 'fluid' && this.showTitle
273
+ ? this.renderRangeText()
274
+ : this.variant === 'compact'
275
+ ? this.renderCompactRangeText()
276
+ : null}
277
+ ${this.variant === 'fluid'
278
+ ? this.renderPageSizeSelect()
279
+ : this.renderCompactPageSize()}
167
280
  </div>
168
- `;
281
+ ${this.renderPageList()}
282
+ </div>
283
+ `;
169
284
  }
170
285
  };
171
286
  __decorate([
172
- property({ attribute: 'totalitems', reflect: true, converter: { fromAttribute: (v) => {
287
+ property({ attribute: 'totalitems', reflect: true, converter: {
288
+ fromAttribute: (v) => {
173
289
  const n = Number(v);
174
290
  return Number.isFinite(n) && n >= 0 ? Math.floor(n) : 0;
175
- } } })
291
+ },
292
+ },
293
+ })
176
294
  ], NilePagination.prototype, "totalItems", void 0);
177
295
  __decorate([
178
- property({ attribute: 'currentpage', reflect: true, converter: { fromAttribute: (v) => {
296
+ property({ attribute: 'currentpage', reflect: true, converter: {
297
+ fromAttribute: (v) => {
179
298
  const n = Number(v);
180
299
  return Number.isFinite(n) && n >= 1 ? Math.floor(n) : 1;
181
- } } })
300
+ },
301
+ },
302
+ })
182
303
  ], NilePagination.prototype, "currentPage", void 0);
183
304
  __decorate([
184
- property({ attribute: 'pagesize', reflect: true, converter: { fromAttribute: (v) => {
305
+ property({ attribute: 'pagesize', reflect: true, converter: {
306
+ fromAttribute: (v) => {
185
307
  const n = Number(v);
186
308
  return Number.isFinite(n) && n >= 1 ? Math.floor(n) : 50;
187
- } } })
309
+ },
310
+ },
311
+ })
188
312
  ], NilePagination.prototype, "pageSize", void 0);
189
313
  __decorate([
190
314
  property({ attribute: 'pagesizeoptions', reflect: false, converter: { fromAttribute: (v) => {
@@ -210,6 +334,9 @@ __decorate([
210
334
  __decorate([
211
335
  state()
212
336
  ], NilePagination.prototype, "_pageSizeOpen", void 0);
337
+ __decorate([
338
+ state()
339
+ ], NilePagination.prototype, "_pageOpen", void 0);
213
340
  __decorate([
214
341
  query('.page-size-dropdown')
215
342
  ], NilePagination.prototype, "_pageSizeDropdown", void 0);