@elliemae/ds-pagination 3.57.0-next.9 → 3.57.0-rc.1

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 (390) hide show
  1. package/dist/cjs/{Pagination.js → DSPagination.js} +8 -8
  2. package/dist/cjs/DSPagination.js.map +7 -0
  3. package/dist/cjs/config/usePagination.js +51 -0
  4. package/dist/cjs/config/usePagination.js.map +7 -0
  5. package/dist/cjs/{PaginationDataTestID.js → config/useValidateProps.js} +9 -13
  6. package/dist/cjs/config/useValidateProps.js.map +7 -0
  7. package/dist/cjs/{DSPaginationDefinitions.js → constants/index.js} +22 -19
  8. package/dist/cjs/constants/index.js.map +7 -0
  9. package/dist/cjs/index.js +29 -18
  10. package/dist/cjs/index.js.map +3 -3
  11. package/dist/cjs/parts/{DSPageNextButton.js → DSPageNextButton/DSPageNextButton.js} +46 -18
  12. package/dist/cjs/parts/DSPageNextButton/DSPageNextButton.js.map +7 -0
  13. package/dist/cjs/parts/DSPageNextButton/config/usePageNextButton.js +55 -0
  14. package/dist/cjs/parts/DSPageNextButton/config/usePageNextButton.js.map +7 -0
  15. package/dist/cjs/parts/DSPageNextButton/config/useValidateProps.js +40 -0
  16. package/dist/cjs/parts/DSPageNextButton/config/useValidateProps.js.map +7 -0
  17. package/dist/cjs/parts/DSPageNextButton/constants/index.js +48 -0
  18. package/dist/cjs/parts/DSPageNextButton/constants/index.js.map +7 -0
  19. package/dist/cjs/parts/DSPageNextButton/index.js +41 -0
  20. package/dist/cjs/parts/DSPageNextButton/index.js.map +7 -0
  21. package/dist/cjs/parts/DSPageNextButton/react-desc-prop-types.js +51 -0
  22. package/dist/cjs/parts/DSPageNextButton/react-desc-prop-types.js.map +7 -0
  23. package/dist/cjs/parts/DSPageNextButton/typescript-testing/slot-props.js +32 -0
  24. package/dist/cjs/parts/DSPageNextButton/typescript-testing/slot-props.js.map +7 -0
  25. package/dist/cjs/{typescript-testing/typescript-page-next-button-valid.js → parts/DSPageNextButton/typescript-testing/typescript-testing.js} +1 -1
  26. package/dist/cjs/parts/DSPageNextButton/typescript-testing/typescript-testing.js.map +7 -0
  27. package/dist/cjs/parts/{DSPagePrevButton.js → DSPagePrevButton/DSPagePrevButton.js} +46 -18
  28. package/dist/cjs/parts/DSPagePrevButton/DSPagePrevButton.js.map +7 -0
  29. package/dist/cjs/parts/DSPagePrevButton/config/usePagePrevButton.js +55 -0
  30. package/dist/cjs/parts/DSPagePrevButton/config/usePagePrevButton.js.map +7 -0
  31. package/dist/cjs/parts/DSPagePrevButton/config/useValidateProps.js +40 -0
  32. package/dist/cjs/parts/DSPagePrevButton/config/useValidateProps.js.map +7 -0
  33. package/dist/cjs/parts/DSPagePrevButton/constants/index.js +48 -0
  34. package/dist/cjs/parts/DSPagePrevButton/constants/index.js.map +7 -0
  35. package/dist/cjs/parts/DSPagePrevButton/index.js +41 -0
  36. package/dist/cjs/parts/DSPagePrevButton/index.js.map +7 -0
  37. package/dist/cjs/parts/DSPagePrevButton/react-desc-prop-types.js +51 -0
  38. package/dist/cjs/parts/DSPagePrevButton/react-desc-prop-types.js.map +7 -0
  39. package/dist/cjs/parts/DSPagePrevButton/typescript-testing/slot-props.js +32 -0
  40. package/dist/cjs/parts/DSPagePrevButton/typescript-testing/slot-props.js.map +7 -0
  41. package/dist/cjs/{typescript-testing/typescript-page-prev-button-valid.js → parts/DSPagePrevButton/typescript-testing/typescript-testing.js} +1 -1
  42. package/dist/cjs/parts/DSPagePrevButton/typescript-testing/typescript-testing.js.map +7 -0
  43. package/dist/cjs/parts/{DSPaginationContainer.js → DSPaginationContainer/DSPaginationContainer.js} +26 -12
  44. package/dist/cjs/parts/DSPaginationContainer/DSPaginationContainer.js.map +7 -0
  45. package/dist/cjs/parts/DSPaginationContainer/config/usePaginationContainer.js +60 -0
  46. package/dist/cjs/parts/DSPaginationContainer/config/usePaginationContainer.js.map +7 -0
  47. package/dist/cjs/parts/DSPaginationContainer/config/useValidateProps.js +40 -0
  48. package/dist/cjs/parts/DSPaginationContainer/config/useValidateProps.js.map +7 -0
  49. package/dist/cjs/parts/DSPaginationContainer/constants/index.js +50 -0
  50. package/dist/cjs/parts/DSPaginationContainer/constants/index.js.map +7 -0
  51. package/dist/cjs/parts/DSPaginationContainer/index.js +41 -0
  52. package/dist/cjs/parts/DSPaginationContainer/index.js.map +7 -0
  53. package/dist/cjs/parts/DSPaginationContainer/react-desc-prop-types.js +48 -0
  54. package/dist/cjs/parts/DSPaginationContainer/react-desc-prop-types.js.map +7 -0
  55. package/dist/cjs/parts/DSPaginationContainer/typescript-testing/slot-props.js +34 -0
  56. package/dist/cjs/parts/DSPaginationContainer/typescript-testing/slot-props.js.map +7 -0
  57. package/dist/cjs/parts/DSPaginationSeparator/DSPaginationSeparator.js +68 -0
  58. package/dist/cjs/parts/DSPaginationSeparator/DSPaginationSeparator.js.map +7 -0
  59. package/dist/cjs/parts/DSPaginationSeparator/config/usePaginationSeparator.js +60 -0
  60. package/dist/cjs/parts/DSPaginationSeparator/config/usePaginationSeparator.js.map +7 -0
  61. package/dist/cjs/parts/DSPaginationSeparator/config/useValidateProps.js +40 -0
  62. package/dist/cjs/parts/DSPaginationSeparator/config/useValidateProps.js.map +7 -0
  63. package/dist/cjs/parts/DSPaginationSeparator/constants/index.js +45 -0
  64. package/dist/cjs/parts/DSPaginationSeparator/constants/index.js.map +7 -0
  65. package/dist/cjs/parts/DSPaginationSeparator/index.js +41 -0
  66. package/dist/cjs/parts/DSPaginationSeparator/index.js.map +7 -0
  67. package/dist/cjs/parts/DSPaginationSeparator/react-desc-prop-types.js +46 -0
  68. package/dist/cjs/parts/DSPaginationSeparator/react-desc-prop-types.js.map +7 -0
  69. package/dist/cjs/parts/DSPaginator/DSPaginator.js +212 -0
  70. package/dist/cjs/parts/DSPaginator/DSPaginator.js.map +7 -0
  71. package/dist/cjs/parts/DSPaginator/{createPaginatorHeader.js → config/createPaginatorHeader.js} +11 -6
  72. package/dist/cjs/parts/DSPaginator/config/createPaginatorHeader.js.map +7 -0
  73. package/dist/cjs/parts/DSPaginator/{getOptions.js → config/getOptions.js} +4 -4
  74. package/dist/cjs/parts/DSPaginator/config/getOptions.js.map +7 -0
  75. package/dist/cjs/parts/DSPaginator/{usePaginationSearch.js.map → config/usePaginationSearch.js.map} +1 -1
  76. package/dist/cjs/parts/DSPaginator/{usePaginator.js → config/usePaginator.js} +62 -38
  77. package/dist/cjs/parts/DSPaginator/config/usePaginator.js.map +7 -0
  78. package/dist/cjs/parts/DSPaginator/config/useValidateProps.js +40 -0
  79. package/dist/cjs/parts/DSPaginator/config/useValidateProps.js.map +7 -0
  80. package/dist/cjs/parts/DSPaginator/constants/index.js +45 -0
  81. package/dist/cjs/parts/DSPaginator/constants/index.js.map +7 -0
  82. package/dist/cjs/parts/DSPaginator/index.js +7 -112
  83. package/dist/cjs/parts/DSPaginator/index.js.map +3 -3
  84. package/dist/cjs/parts/DSPaginator/react-desc-prop-types.js +59 -0
  85. package/dist/cjs/parts/DSPaginator/react-desc-prop-types.js.map +7 -0
  86. package/dist/cjs/parts/DSPaginator/styled.js +135 -0
  87. package/dist/cjs/parts/DSPaginator/styled.js.map +7 -0
  88. package/dist/cjs/parts/DSPaginator/typescript-testing/slot-props.js +32 -0
  89. package/dist/cjs/parts/DSPaginator/typescript-testing/slot-props.js.map +7 -0
  90. package/dist/cjs/{typescript-testing/typescript-paginator-valid.js → parts/DSPaginator/typescript-testing/typescript-testing.js} +1 -1
  91. package/dist/cjs/parts/DSPaginator/typescript-testing/typescript-testing.js.map +7 -0
  92. package/dist/cjs/parts/DSPerPageSelector/DSPerPageSelector.js +125 -0
  93. package/dist/cjs/parts/DSPerPageSelector/DSPerPageSelector.js.map +7 -0
  94. package/dist/cjs/parts/DSPerPageSelector/{getOptions.js.map → config/getOptions.js.map} +1 -1
  95. package/dist/cjs/parts/DSPerPageSelector/{usePerPageSelector.js → config/usePerPageSelector.js} +29 -19
  96. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelector.js.map +7 -0
  97. package/dist/cjs/parts/DSPerPageSelector/config/useValidateProps.js +40 -0
  98. package/dist/cjs/parts/DSPerPageSelector/config/useValidateProps.js.map +7 -0
  99. package/dist/cjs/parts/DSPerPageSelector/constants/index.js +50 -0
  100. package/dist/cjs/parts/DSPerPageSelector/constants/index.js.map +7 -0
  101. package/dist/cjs/parts/DSPerPageSelector/index.js +7 -70
  102. package/dist/cjs/parts/DSPerPageSelector/index.js.map +3 -3
  103. package/dist/cjs/parts/DSPerPageSelector/react-desc-prop-types.js +58 -0
  104. package/dist/cjs/parts/DSPerPageSelector/react-desc-prop-types.js.map +7 -0
  105. package/dist/cjs/{styled.js → parts/DSPerPageSelector/styled.js} +36 -41
  106. package/dist/cjs/parts/DSPerPageSelector/styled.js.map +7 -0
  107. package/dist/cjs/parts/DSPerPageSelector/typescript-testing/slots-props.js +32 -0
  108. package/dist/cjs/parts/DSPerPageSelector/typescript-testing/slots-props.js.map +7 -0
  109. package/dist/cjs/{typescript-testing/typescript-per-page-selector-valid.js → parts/DSPerPageSelector/typescript-testing/typescript-testing.js} +1 -1
  110. package/dist/cjs/parts/DSPerPageSelector/typescript-testing/typescript-testing.js.map +7 -0
  111. package/dist/cjs/parts/PaginationContent.js +7 -9
  112. package/dist/cjs/parts/PaginationContent.js.map +2 -2
  113. package/dist/cjs/parts/index.js +25 -4
  114. package/dist/cjs/parts/index.js.map +2 -2
  115. package/dist/cjs/parts/{DSPaginator → shared}/useOnElementOnResize.js.map +1 -1
  116. package/dist/cjs/react-desc-prop-types.js +1 -86
  117. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  118. package/dist/esm/{Pagination.js → DSPagination.js} +6 -6
  119. package/dist/esm/DSPagination.js.map +7 -0
  120. package/dist/esm/config/usePagination.js +21 -0
  121. package/dist/esm/config/usePagination.js.map +7 -0
  122. package/dist/esm/config/useValidateProps.js +10 -0
  123. package/dist/esm/config/useValidateProps.js.map +7 -0
  124. package/dist/esm/constants/index.js +27 -0
  125. package/dist/esm/constants/index.js.map +7 -0
  126. package/dist/esm/index.js +45 -13
  127. package/dist/esm/index.js.map +3 -3
  128. package/dist/esm/parts/DSPageNextButton/DSPageNextButton.js +74 -0
  129. package/dist/esm/parts/DSPageNextButton/DSPageNextButton.js.map +7 -0
  130. package/dist/esm/parts/DSPageNextButton/config/usePageNextButton.js +30 -0
  131. package/dist/esm/parts/DSPageNextButton/config/usePageNextButton.js.map +7 -0
  132. package/dist/esm/parts/DSPageNextButton/config/useValidateProps.js +10 -0
  133. package/dist/esm/parts/DSPageNextButton/config/useValidateProps.js.map +7 -0
  134. package/dist/esm/parts/DSPageNextButton/constants/index.js +18 -0
  135. package/dist/esm/parts/DSPageNextButton/constants/index.js.map +7 -0
  136. package/dist/esm/parts/DSPageNextButton/index.js +11 -0
  137. package/dist/esm/parts/DSPageNextButton/index.js.map +7 -0
  138. package/dist/esm/parts/DSPageNextButton/react-desc-prop-types.js +26 -0
  139. package/dist/esm/parts/DSPageNextButton/react-desc-prop-types.js.map +7 -0
  140. package/dist/esm/parts/DSPageNextButton/typescript-testing/slot-props.js +9 -0
  141. package/dist/esm/parts/DSPageNextButton/typescript-testing/slot-props.js.map +7 -0
  142. package/dist/esm/{typescript-testing/typescript-page-next-button-valid.js → parts/DSPageNextButton/typescript-testing/typescript-testing.js} +1 -1
  143. package/dist/esm/parts/DSPageNextButton/typescript-testing/typescript-testing.js.map +7 -0
  144. package/dist/esm/parts/DSPagePrevButton/DSPagePrevButton.js +74 -0
  145. package/dist/esm/parts/DSPagePrevButton/DSPagePrevButton.js.map +7 -0
  146. package/dist/esm/parts/DSPagePrevButton/config/usePagePrevButton.js +30 -0
  147. package/dist/esm/parts/DSPagePrevButton/config/usePagePrevButton.js.map +7 -0
  148. package/dist/esm/parts/DSPagePrevButton/config/useValidateProps.js +10 -0
  149. package/dist/esm/parts/DSPagePrevButton/config/useValidateProps.js.map +7 -0
  150. package/dist/esm/parts/DSPagePrevButton/constants/index.js +18 -0
  151. package/dist/esm/parts/DSPagePrevButton/constants/index.js.map +7 -0
  152. package/dist/esm/parts/DSPagePrevButton/index.js +11 -0
  153. package/dist/esm/parts/DSPagePrevButton/index.js.map +7 -0
  154. package/dist/esm/parts/DSPagePrevButton/react-desc-prop-types.js +26 -0
  155. package/dist/esm/parts/DSPagePrevButton/react-desc-prop-types.js.map +7 -0
  156. package/dist/esm/parts/DSPagePrevButton/typescript-testing/slot-props.js +9 -0
  157. package/dist/esm/parts/DSPagePrevButton/typescript-testing/slot-props.js.map +7 -0
  158. package/dist/esm/{typescript-testing/typescript-page-prev-button-valid.js → parts/DSPagePrevButton/typescript-testing/typescript-testing.js} +1 -1
  159. package/dist/esm/parts/DSPagePrevButton/typescript-testing/typescript-testing.js.map +7 -0
  160. package/dist/esm/parts/DSPaginationContainer/DSPaginationContainer.js +50 -0
  161. package/dist/esm/parts/DSPaginationContainer/DSPaginationContainer.js.map +7 -0
  162. package/dist/esm/parts/DSPaginationContainer/config/usePaginationContainer.js +38 -0
  163. package/dist/esm/parts/DSPaginationContainer/config/usePaginationContainer.js.map +7 -0
  164. package/dist/esm/parts/DSPaginationContainer/config/useValidateProps.js +10 -0
  165. package/dist/esm/parts/DSPaginationContainer/config/useValidateProps.js.map +7 -0
  166. package/dist/esm/parts/DSPaginationContainer/constants/index.js +20 -0
  167. package/dist/esm/parts/DSPaginationContainer/constants/index.js.map +7 -0
  168. package/dist/esm/parts/DSPaginationContainer/index.js +15 -0
  169. package/dist/esm/parts/DSPaginationContainer/index.js.map +7 -0
  170. package/dist/esm/parts/DSPaginationContainer/react-desc-prop-types.js +18 -0
  171. package/dist/esm/parts/DSPaginationContainer/react-desc-prop-types.js.map +7 -0
  172. package/dist/esm/parts/DSPaginationContainer/typescript-testing/slot-props.js +11 -0
  173. package/dist/esm/parts/DSPaginationContainer/typescript-testing/slot-props.js.map +7 -0
  174. package/dist/esm/parts/DSPaginationSeparator/DSPaginationSeparator.js +43 -0
  175. package/dist/esm/parts/DSPaginationSeparator/DSPaginationSeparator.js.map +7 -0
  176. package/dist/esm/parts/DSPaginationSeparator/config/usePaginationSeparator.js +38 -0
  177. package/dist/esm/parts/DSPaginationSeparator/config/usePaginationSeparator.js.map +7 -0
  178. package/dist/esm/parts/DSPaginationSeparator/config/useValidateProps.js +10 -0
  179. package/dist/esm/parts/DSPaginationSeparator/config/useValidateProps.js.map +7 -0
  180. package/dist/esm/parts/DSPaginationSeparator/constants/index.js +15 -0
  181. package/dist/esm/parts/DSPaginationSeparator/constants/index.js.map +7 -0
  182. package/dist/esm/parts/DSPaginationSeparator/index.js +15 -0
  183. package/dist/esm/parts/DSPaginationSeparator/index.js.map +7 -0
  184. package/dist/esm/parts/DSPaginationSeparator/react-desc-prop-types.js +16 -0
  185. package/dist/esm/parts/DSPaginationSeparator/react-desc-prop-types.js.map +7 -0
  186. package/dist/esm/parts/DSPaginator/DSPaginator.js +182 -0
  187. package/dist/esm/parts/DSPaginator/DSPaginator.js.map +7 -0
  188. package/dist/esm/parts/DSPaginator/config/createPaginatorHeader.js +24 -0
  189. package/dist/esm/parts/DSPaginator/config/createPaginatorHeader.js.map +7 -0
  190. package/dist/esm/parts/DSPaginator/{getOptions.js → config/getOptions.js} +4 -4
  191. package/dist/esm/parts/DSPaginator/config/getOptions.js.map +7 -0
  192. package/dist/esm/parts/DSPaginator/{usePaginationSearch.js.map → config/usePaginationSearch.js.map} +1 -1
  193. package/dist/esm/parts/DSPaginator/config/usePaginator.js +88 -0
  194. package/dist/esm/parts/DSPaginator/config/usePaginator.js.map +7 -0
  195. package/dist/esm/parts/DSPaginator/config/useValidateProps.js +10 -0
  196. package/dist/esm/parts/DSPaginator/config/useValidateProps.js.map +7 -0
  197. package/dist/esm/parts/DSPaginator/constants/index.js +15 -0
  198. package/dist/esm/parts/DSPaginator/constants/index.js.map +7 -0
  199. package/dist/esm/parts/DSPaginator/index.js +6 -111
  200. package/dist/esm/parts/DSPaginator/index.js.map +3 -3
  201. package/dist/esm/parts/DSPaginator/react-desc-prop-types.js +34 -0
  202. package/dist/esm/parts/DSPaginator/react-desc-prop-types.js.map +7 -0
  203. package/dist/esm/parts/DSPaginator/styled.js +105 -0
  204. package/dist/esm/parts/DSPaginator/styled.js.map +7 -0
  205. package/dist/esm/parts/DSPaginator/typescript-testing/slot-props.js +9 -0
  206. package/dist/esm/parts/DSPaginator/typescript-testing/slot-props.js.map +7 -0
  207. package/dist/esm/{typescript-testing/typescript-paginator-valid.js → parts/DSPaginator/typescript-testing/typescript-testing.js} +1 -1
  208. package/dist/esm/parts/DSPaginator/typescript-testing/typescript-testing.js.map +7 -0
  209. package/dist/esm/parts/DSPerPageSelector/DSPerPageSelector.js +95 -0
  210. package/dist/esm/parts/DSPerPageSelector/DSPerPageSelector.js.map +7 -0
  211. package/dist/esm/parts/DSPerPageSelector/{getOptions.js.map → config/getOptions.js.map} +1 -1
  212. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelector.js +55 -0
  213. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelector.js.map +7 -0
  214. package/dist/esm/parts/DSPerPageSelector/config/useValidateProps.js +10 -0
  215. package/dist/esm/parts/DSPerPageSelector/config/useValidateProps.js.map +7 -0
  216. package/dist/esm/parts/DSPerPageSelector/constants/index.js +20 -0
  217. package/dist/esm/parts/DSPerPageSelector/constants/index.js.map +7 -0
  218. package/dist/esm/parts/DSPerPageSelector/index.js +6 -69
  219. package/dist/esm/parts/DSPerPageSelector/index.js.map +3 -3
  220. package/dist/esm/parts/DSPerPageSelector/react-desc-prop-types.js +33 -0
  221. package/dist/esm/parts/DSPerPageSelector/react-desc-prop-types.js.map +7 -0
  222. package/dist/esm/parts/DSPerPageSelector/styled.js +87 -0
  223. package/dist/esm/parts/DSPerPageSelector/styled.js.map +7 -0
  224. package/dist/esm/parts/DSPerPageSelector/typescript-testing/slots-props.js +9 -0
  225. package/dist/esm/parts/DSPerPageSelector/typescript-testing/slots-props.js.map +7 -0
  226. package/dist/esm/{typescript-testing/typescript-per-page-selector-valid.js → parts/DSPerPageSelector/typescript-testing/typescript-testing.js} +1 -1
  227. package/dist/esm/parts/DSPerPageSelector/typescript-testing/typescript-testing.js.map +7 -0
  228. package/dist/esm/parts/PaginationContent.js +7 -9
  229. package/dist/esm/parts/PaginationContent.js.map +2 -2
  230. package/dist/esm/parts/index.js +63 -6
  231. package/dist/esm/parts/index.js.map +2 -2
  232. package/dist/esm/parts/{DSPaginator → shared}/useOnElementOnResize.js.map +1 -1
  233. package/dist/esm/react-desc-prop-types.js +1 -86
  234. package/dist/esm/react-desc-prop-types.js.map +2 -2
  235. package/dist/types/config/usePagination.d.ts +5 -0
  236. package/dist/types/config/useValidateProps.d.ts +3 -0
  237. package/dist/types/constants/index.d.ts +29 -0
  238. package/dist/types/index.d.ts +3 -7
  239. package/dist/types/parts/DSPageNextButton/DSPageNextButton.d.ts +5 -0
  240. package/dist/types/parts/DSPageNextButton/config/usePageNextButton.d.ts +377 -0
  241. package/dist/types/parts/DSPageNextButton/config/useValidateProps.d.ts +3 -0
  242. package/dist/types/parts/DSPageNextButton/constants/index.d.ts +9 -0
  243. package/dist/types/parts/DSPageNextButton/index.d.ts +3 -0
  244. package/dist/types/parts/DSPageNextButton/react-desc-prop-types.d.ts +23 -0
  245. package/dist/types/parts/DSPageNextButton/tests/DSPageNextButton.get-owner-props.test.d.ts +1 -0
  246. package/dist/types/parts/DSPageNextButton/tests/DSPageNextButton.keyboard.test.d.ts +1 -0
  247. package/dist/types/parts/DSPageNextButton/tests/utils/NextButtonTestRender.d.ts +2 -0
  248. package/dist/types/parts/DSPageNextButton/typescript-testing/slot-props.d.ts +1 -0
  249. package/dist/types/parts/DSPageNextButton/typescript-testing/typescript-testing.d.ts +1 -0
  250. package/dist/types/parts/DSPagePrevButton/DSPagePrevButton.d.ts +5 -0
  251. package/dist/types/parts/DSPagePrevButton/config/usePagePrevButton.d.ts +377 -0
  252. package/dist/types/parts/DSPagePrevButton/config/useValidateProps.d.ts +3 -0
  253. package/dist/types/parts/DSPagePrevButton/constants/index.d.ts +9 -0
  254. package/dist/types/parts/DSPagePrevButton/index.d.ts +3 -0
  255. package/dist/types/parts/DSPagePrevButton/react-desc-prop-types.d.ts +23 -0
  256. package/dist/types/parts/DSPagePrevButton/tests/DSPagePrevButton.a11y.test.d.ts +1 -0
  257. package/dist/types/parts/DSPagePrevButton/tests/DSPagePrevButton.callbacks.test.d.ts +1 -0
  258. package/dist/types/parts/DSPagePrevButton/tests/DSPagePrevButton.data-testid.test.d.ts +1 -0
  259. package/dist/types/parts/DSPagePrevButton/tests/DSPagePrevButton.export.test.d.ts +1 -0
  260. package/dist/types/parts/DSPagePrevButton/tests/DSPagePrevButton.get-owner-props.test.d.ts +1 -0
  261. package/dist/types/parts/DSPagePrevButton/tests/DSPagePrevButton.keyboard.test.d.ts +1 -0
  262. package/dist/types/parts/DSPagePrevButton/tests/utils/PrevButtonTestRender.d.ts +1 -0
  263. package/dist/types/parts/DSPagePrevButton/typescript-testing/slot-props.d.ts +1 -0
  264. package/dist/types/parts/DSPagePrevButton/typescript-testing/typescript-testing.d.ts +1 -0
  265. package/dist/types/parts/DSPaginationContainer/DSPaginationContainer.d.ts +5 -0
  266. package/dist/types/parts/DSPaginationContainer/config/usePaginationContainer.d.ts +377 -0
  267. package/dist/types/parts/DSPaginationContainer/config/useValidateProps.d.ts +3 -0
  268. package/dist/types/parts/DSPaginationContainer/constants/index.d.ts +11 -0
  269. package/dist/types/parts/DSPaginationContainer/index.d.ts +3 -0
  270. package/dist/types/parts/DSPaginationContainer/react-desc-prop-types.d.ts +22 -0
  271. package/dist/types/parts/DSPaginationContainer/tests/DSPaginationContainer.data-testid.test.d.ts +1 -0
  272. package/dist/types/parts/DSPaginationContainer/tests/DSPaginationContainer.exports.test.d.ts +1 -0
  273. package/dist/types/parts/DSPaginationContainer/tests/DSPaginationContainer.get-owner-props.test.d.ts +1 -0
  274. package/dist/types/parts/DSPaginationContainer/tests/utils/PaginationContainerRender.d.ts +1 -0
  275. package/dist/types/parts/DSPaginationContainer/typescript-testing/slot-props.d.ts +1 -0
  276. package/dist/types/parts/DSPaginationSeparator/DSPaginationSeparator.d.ts +7 -0
  277. package/dist/types/parts/DSPaginationSeparator/config/usePaginationSeparator.d.ts +377 -0
  278. package/dist/types/parts/DSPaginationSeparator/config/useValidateProps.d.ts +3 -0
  279. package/dist/types/parts/DSPaginationSeparator/constants/index.d.ts +9 -0
  280. package/dist/types/parts/DSPaginationSeparator/index.d.ts +3 -0
  281. package/dist/types/parts/DSPaginationSeparator/react-desc-prop-types.d.ts +18 -0
  282. package/dist/types/parts/DSPaginationSeparator/tests/DSPaginationSeparator.data-testid.test.d.ts +1 -0
  283. package/dist/types/parts/DSPaginationSeparator/tests/DSPaginationSeparator.exports.test.d.ts +1 -0
  284. package/dist/types/parts/DSPaginationSeparator/tests/DSPaginationSeparator.get-owner-props.test.d.ts +1 -0
  285. package/dist/types/parts/DSPaginationSeparator/tests/utils/DSPaginationSeparatorTestRender.d.ts +1 -0
  286. package/dist/types/parts/DSPaginator/DSPaginator.d.ts +5 -0
  287. package/dist/types/parts/DSPaginator/config/createPaginatorHeader.d.ts +8 -0
  288. package/dist/types/parts/DSPaginator/{getOptions.d.ts → config/getOptions.d.ts} +1 -0
  289. package/dist/types/parts/DSPaginator/config/usePaginator.d.ts +390 -0
  290. package/dist/types/parts/DSPaginator/config/useValidateProps.d.ts +3 -0
  291. package/dist/types/parts/DSPaginator/constants/index.d.ts +9 -0
  292. package/dist/types/parts/DSPaginator/index.d.ts +3 -4
  293. package/dist/types/parts/DSPaginator/react-desc-prop-types.d.ts +27 -0
  294. package/dist/types/parts/DSPaginator/styled.d.ts +5 -0
  295. package/dist/types/parts/DSPaginator/tests/DSPaginator.a11y.test.d.ts +1 -0
  296. package/dist/types/parts/DSPaginator/tests/DSPaginator.data-testid.test.d.ts +1 -0
  297. package/dist/types/parts/DSPaginator/tests/DSPaginator.exports.test.d.ts +1 -0
  298. package/dist/types/parts/DSPaginator/tests/DSPaginator.get-owner-props.test.d.ts +1 -0
  299. package/dist/types/parts/DSPaginator/tests/DSPaginator.keyboard.test.d.ts +1 -0
  300. package/dist/types/parts/DSPaginator/tests/utils/DSPaginatorTestRender.d.ts +1 -0
  301. package/dist/types/parts/DSPaginator/typescript-testing/slot-props.d.ts +1 -0
  302. package/dist/types/parts/DSPaginator/typescript-testing/typescript-testing.d.ts +1 -0
  303. package/dist/types/parts/DSPerPageSelector/DSPerPageSelector.d.ts +5 -0
  304. package/dist/types/parts/DSPerPageSelector/config/usePerPageSelector.d.ts +384 -0
  305. package/dist/types/parts/DSPerPageSelector/config/useValidateProps.d.ts +3 -0
  306. package/dist/types/parts/DSPerPageSelector/constants/index.d.ts +13 -0
  307. package/dist/types/parts/DSPerPageSelector/index.d.ts +3 -4
  308. package/dist/types/parts/DSPerPageSelector/react-desc-prop-types.d.ts +28 -0
  309. package/dist/types/parts/DSPerPageSelector/styled.d.ts +3 -0
  310. package/dist/types/parts/DSPerPageSelector/tests/DSPerPageSelector.a11y.test.d.ts +1 -0
  311. package/dist/types/parts/DSPerPageSelector/tests/DSPerPageSelector.data-testid.test.d.ts +1 -0
  312. package/dist/types/parts/DSPerPageSelector/tests/DSPerPageSelector.exports.test.d.ts +1 -0
  313. package/dist/types/parts/DSPerPageSelector/tests/DSPerPageSelector.get-owner-props.test.d.ts +1 -0
  314. package/dist/types/parts/DSPerPageSelector/tests/DSPerPageSelector.keyboard.test.d.ts +1 -0
  315. package/dist/types/parts/DSPerPageSelector/tests/utils/PerPageSelectorTestRender.d.ts +1 -0
  316. package/dist/types/parts/DSPerPageSelector/typescript-testing/slots-props.d.ts +1 -0
  317. package/dist/types/parts/DSPerPageSelector/typescript-testing/typescript-testing.d.ts +1 -0
  318. package/dist/types/parts/index.d.ts +6 -5
  319. package/dist/types/react-desc-prop-types.d.ts +9 -540
  320. package/dist/types/tests/DSPagination.data-testid.test.d.ts +1 -0
  321. package/dist/types/tests/DSPagination.exports.test.d.ts +1 -0
  322. package/dist/types/tests/DSPagination.get-owner-props.test.d.ts +1 -0
  323. package/package.json +35 -31
  324. package/dist/cjs/DSPaginationDefinitions.js.map +0 -7
  325. package/dist/cjs/Pagination.js.map +0 -7
  326. package/dist/cjs/PaginationDataTestID.js.map +0 -7
  327. package/dist/cjs/parts/DSPageNextButton.js.map +0 -7
  328. package/dist/cjs/parts/DSPagePrevButton.js.map +0 -7
  329. package/dist/cjs/parts/DSPaginationContainer.js.map +0 -7
  330. package/dist/cjs/parts/DSPaginator/createPaginatorHeader.js.map +0 -7
  331. package/dist/cjs/parts/DSPaginator/getOptions.js.map +0 -7
  332. package/dist/cjs/parts/DSPaginator/usePaginator.js.map +0 -7
  333. package/dist/cjs/parts/DSPerPageSelector/usePerPageSelector.js.map +0 -7
  334. package/dist/cjs/props.js +0 -85
  335. package/dist/cjs/props.js.map +0 -7
  336. package/dist/cjs/styled.js.map +0 -7
  337. package/dist/cjs/typescript-testing/typescript-page-next-button-valid.js.map +0 -7
  338. package/dist/cjs/typescript-testing/typescript-page-prev-button-valid.js.map +0 -7
  339. package/dist/cjs/typescript-testing/typescript-paginator-valid.js.map +0 -7
  340. package/dist/cjs/typescript-testing/typescript-per-page-selector-valid.js.map +0 -7
  341. package/dist/esm/DSPaginationDefinitions.js +0 -24
  342. package/dist/esm/DSPaginationDefinitions.js.map +0 -7
  343. package/dist/esm/Pagination.js.map +0 -7
  344. package/dist/esm/PaginationDataTestID.js +0 -14
  345. package/dist/esm/PaginationDataTestID.js.map +0 -7
  346. package/dist/esm/parts/DSPageNextButton.js +0 -47
  347. package/dist/esm/parts/DSPageNextButton.js.map +0 -7
  348. package/dist/esm/parts/DSPagePrevButton.js +0 -47
  349. package/dist/esm/parts/DSPagePrevButton.js.map +0 -7
  350. package/dist/esm/parts/DSPaginationContainer.js +0 -31
  351. package/dist/esm/parts/DSPaginationContainer.js.map +0 -7
  352. package/dist/esm/parts/DSPaginator/createPaginatorHeader.js +0 -19
  353. package/dist/esm/parts/DSPaginator/createPaginatorHeader.js.map +0 -7
  354. package/dist/esm/parts/DSPaginator/getOptions.js.map +0 -7
  355. package/dist/esm/parts/DSPaginator/usePaginator.js +0 -59
  356. package/dist/esm/parts/DSPaginator/usePaginator.js.map +0 -7
  357. package/dist/esm/parts/DSPerPageSelector/usePerPageSelector.js +0 -40
  358. package/dist/esm/parts/DSPerPageSelector/usePerPageSelector.js.map +0 -7
  359. package/dist/esm/props.js +0 -55
  360. package/dist/esm/props.js.map +0 -7
  361. package/dist/esm/styled.js +0 -92
  362. package/dist/esm/styled.js.map +0 -7
  363. package/dist/esm/typescript-testing/typescript-page-next-button-valid.js.map +0 -7
  364. package/dist/esm/typescript-testing/typescript-page-prev-button-valid.js.map +0 -7
  365. package/dist/esm/typescript-testing/typescript-paginator-valid.js.map +0 -7
  366. package/dist/esm/typescript-testing/typescript-per-page-selector-valid.js.map +0 -7
  367. package/dist/types/DSPaginationDefinitions.d.ts +0 -12
  368. package/dist/types/PaginationDataTestID.d.ts +0 -9
  369. package/dist/types/parts/DSPageNextButton.d.ts +0 -4
  370. package/dist/types/parts/DSPagePrevButton.d.ts +0 -4
  371. package/dist/types/parts/DSPaginationContainer.d.ts +0 -4
  372. package/dist/types/parts/DSPaginator/createPaginatorHeader.d.ts +0 -6
  373. package/dist/types/parts/DSPaginator/usePaginator.d.ts +0 -381
  374. package/dist/types/parts/DSPerPageSelector/usePerPageSelector.d.ts +0 -377
  375. package/dist/types/props.d.ts +0 -20
  376. package/dist/types/styled.d.ts +0 -7
  377. /package/dist/cjs/parts/DSPaginator/{usePaginationSearch.js → config/usePaginationSearch.js} +0 -0
  378. /package/dist/cjs/parts/DSPerPageSelector/{getOptions.js → config/getOptions.js} +0 -0
  379. /package/dist/cjs/parts/{DSPaginator → shared}/useOnElementOnResize.js +0 -0
  380. /package/dist/esm/parts/DSPaginator/{usePaginationSearch.js → config/usePaginationSearch.js} +0 -0
  381. /package/dist/esm/parts/DSPerPageSelector/{getOptions.js → config/getOptions.js} +0 -0
  382. /package/dist/esm/parts/{DSPaginator → shared}/useOnElementOnResize.js +0 -0
  383. /package/dist/types/{Pagination.d.ts → DSPagination.d.ts} +0 -0
  384. /package/dist/types/{typescript-testing/typescript-page-next-button-valid.d.ts → parts/DSPageNextButton/tests/DSPageNextButton.a11y.test.d.ts} +0 -0
  385. /package/dist/types/{typescript-testing/typescript-page-prev-button-valid.d.ts → parts/DSPageNextButton/tests/DSPageNextButton.callbacks.test.d.ts} +0 -0
  386. /package/dist/types/{typescript-testing/typescript-paginator-valid.d.ts → parts/DSPageNextButton/tests/DSPageNextButton.data-testid.test.d.ts} +0 -0
  387. /package/dist/types/{typescript-testing/typescript-per-page-selector-valid.d.ts → parts/DSPageNextButton/tests/DSPageNextButton.export.test.d.ts} +0 -0
  388. /package/dist/types/parts/DSPaginator/{usePaginationSearch.d.ts → config/usePaginationSearch.d.ts} +0 -0
  389. /package/dist/types/parts/DSPerPageSelector/{getOptions.d.ts → config/getOptions.d.ts} +0 -0
  390. /package/dist/types/parts/{DSPaginator → shared}/useOnElementOnResize.d.ts +0 -0
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DSPerPageSelector_exports = {};
30
+ __export(DSPerPageSelector_exports, {
31
+ DSPerPageSelector: () => DSPerPageSelector,
32
+ DSPerPageSelectorWithSchema: () => DSPerPageSelectorWithSchema
33
+ });
34
+ module.exports = __toCommonJS(DSPerPageSelector_exports);
35
+ var React = __toESM(require("react"));
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_ds_dropdownmenu_v2 = require("@elliemae/ds-dropdownmenu-v2");
38
+ var import_ds_icons = require("@elliemae/ds-icons");
39
+ var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
40
+ var import_ds_typography = require("@elliemae/ds-typography");
41
+ var import_react = require("react");
42
+ var import_usePerPageSelector = require("./config/usePerPageSelector.js");
43
+ var import_constants = require("./constants/index.js");
44
+ var import_react_desc_prop_types = require("./react-desc-prop-types.js");
45
+ var import_styled = require("./styled.js");
46
+ const Header = () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledHeader, { children: "Per Page" });
47
+ const DSPerPageSelector = (props) => {
48
+ const {
49
+ propsWithDefault: { pageSize, onPageSizeChange },
50
+ xstyledProps,
51
+ globalAttributes,
52
+ ownerPropsConfig,
53
+ actionRef,
54
+ btnRef,
55
+ chevronRef,
56
+ chevronWidth,
57
+ isOpened,
58
+ options,
59
+ setIsOpened
60
+ } = (0, import_usePerPageSelector.usePerPageSelector)(props);
61
+ const buttonOnClick = (0, import_react.useMemo)(() => {
62
+ if (globalAttributes.onClick) return globalAttributes.onClick;
63
+ return () => setIsOpened((prev) => !prev);
64
+ }, [globalAttributes.onClick, setIsOpened]);
65
+ const maxOptionsLength = (0, import_react.useMemo)(() => {
66
+ const maxLength = options.reduce((acc, cur) => Math.max(acc, ("label" in cur ? cur.label : "").length), 0);
67
+ return maxLength;
68
+ }, [options]);
69
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
70
+ import_ds_dropdownmenu_v2.DSDropdownMenuV2,
71
+ {
72
+ isOpened,
73
+ options,
74
+ selectedOptions: { [pageSize.toString()]: true },
75
+ onOptionClick: (_, clickedOption) => {
76
+ onPageSizeChange(clickedOption.value);
77
+ setIsOpened(false);
78
+ btnRef.current?.focus();
79
+ },
80
+ onClickOutside: () => {
81
+ setIsOpened(false);
82
+ btnRef.current?.focus();
83
+ },
84
+ customOffset: [-(chevronWidth + 7), 2],
85
+ startPlacementPreference: "top-start",
86
+ actionRef,
87
+ minWidth: `calc(${chevronWidth + 60}px + ${maxOptionsLength}ch)`,
88
+ maxHeight: 300,
89
+ HeaderComp: Header,
90
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
91
+ import_styled.PaginationDropdownButtonPerPageSelector,
92
+ {
93
+ buttonType: "raw",
94
+ innerRef: btnRef,
95
+ "aria-pressed": isOpened,
96
+ "aria-label": `${pageSize} rows per page. Press to select rows per page`,
97
+ "data-testid": import_constants.PER_PAGE_SELECTOR_DATA_TESTID.PER_PAGE_SELECTOR,
98
+ ...globalAttributes,
99
+ ...xstyledProps,
100
+ ...ownerPropsConfig,
101
+ onClick: buttonOnClick,
102
+ children: [
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
104
+ import_ds_typography.DSTypography,
105
+ {
106
+ variant: "b1",
107
+ as: "span",
108
+ className: "typography-per-page-selector",
109
+ children: [
110
+ pageSize,
111
+ " / page"
112
+ ]
113
+ }
114
+ ),
115
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronDown, { color: ["brand-primary", "700"], innerRef: chevronRef })
116
+ ]
117
+ }
118
+ )
119
+ }
120
+ );
121
+ };
122
+ DSPerPageSelector.displayName = import_constants.DSPerPageSelectorName;
123
+ const DSPerPageSelectorWithSchema = (0, import_ds_props_helpers.describe)(DSPerPageSelector);
124
+ DSPerPageSelectorWithSchema.propTypes = import_react_desc_prop_types.DSPerPageSelectorPropTypesSchema;
125
+ //# sourceMappingURL=DSPerPageSelector.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/parts/DSPerPageSelector/DSPerPageSelector.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import type { DSButtonT } from '@elliemae/ds-button-v2';\nimport { DSDropdownMenuV2, type DSDropdownMenuT } from '@elliemae/ds-dropdownmenu-v2';\nimport { ChevronDown } from '@elliemae/ds-icons';\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { DSTypography } from '@elliemae/ds-typography';\nimport React, { useMemo } from 'react';\nimport { usePerPageSelector } from './config/usePerPageSelector.js';\nimport { DSPerPageSelectorName, PER_PAGE_SELECTOR_DATA_TESTID } from './constants/index.js';\nimport { DSPerPageSelectorPropTypesSchema, type DSPerPageSelectorT } from './react-desc-prop-types.js';\nimport { PaginationDropdownButtonPerPageSelector, StyledHeader } from './styled.js';\n\nconst Header = () => <StyledHeader>Per Page</StyledHeader>;\n\nconst DSPerPageSelector: React.ComponentType<DSPerPageSelectorT.Props> = (props) => {\n const {\n propsWithDefault: { pageSize, onPageSizeChange },\n xstyledProps,\n globalAttributes,\n ownerPropsConfig,\n actionRef,\n btnRef,\n chevronRef,\n chevronWidth,\n isOpened,\n options,\n setIsOpened,\n } = usePerPageSelector(props);\n const buttonOnClick: DSButtonT.Props['onClick'] = useMemo(() => {\n if (globalAttributes.onClick) return globalAttributes.onClick as DSButtonT.Props['onClick'];\n return () => setIsOpened((prev) => !prev);\n }, [globalAttributes.onClick, setIsOpened]);\n\n const maxOptionsLength = useMemo(() => {\n const maxLength = options.reduce((acc, cur) => Math.max(acc, ('label' in cur ? cur.label : '').length), 0);\n return maxLength;\n }, [options]);\n\n return (\n <DSDropdownMenuV2\n isOpened={isOpened}\n options={options}\n selectedOptions={{ [pageSize.toString()]: true }}\n onOptionClick={(_, clickedOption) => {\n onPageSizeChange((clickedOption as DSDropdownMenuT.ItemSingleOptions).value as number);\n setIsOpened(false);\n btnRef.current?.focus();\n }}\n onClickOutside={() => {\n setIsOpened(false);\n btnRef.current?.focus();\n }}\n customOffset={[-(chevronWidth + 7), 2]}\n startPlacementPreference=\"top-start\"\n actionRef={actionRef}\n /**\n * Calculate the dynamic minWidth for the Dropdown:\n *\n * Structure of the width:\n * 16px (left padding)\n * + chevronWidth (size of the chevron icon)\n * + 8px (spacing between chevron and text)\n * + maxOptionsLength ch (longest option label measured in characters)\n * + 16px (right padding)\n * + a small scrollbar placeholder (to avoid text wrapping when scrollbars appear)\n *\n * Why `calc()`?\n * - When using pure px values, the initial render works correctly.\n * - But when switching between different stories in Storybook \u2014 especially those\n * that modify font-size or typography scale \u2014 the measured width from the ref\n * becomes outdated and ends up returning a smaller value than it should.\n * - That incorrect (underestimated) width causes the longest option label to wrap,\n * even though there is actually enough space.\n *\n * By using `calc()` + `ch` units, the component stays responsive to font-size changes\n * without requiring an extra ref to measure the page size text width.\n */\n minWidth={`calc(${chevronWidth + 60}px + ${maxOptionsLength}ch)`}\n maxHeight={300}\n HeaderComp={Header}\n >\n <PaginationDropdownButtonPerPageSelector\n buttonType=\"raw\"\n innerRef={btnRef}\n aria-pressed={isOpened}\n aria-label={`${pageSize} rows per page. Press to select rows per page`}\n data-testid={PER_PAGE_SELECTOR_DATA_TESTID.PER_PAGE_SELECTOR}\n {...globalAttributes}\n {...xstyledProps}\n {...ownerPropsConfig}\n onClick={buttonOnClick}\n >\n <DSTypography\n variant=\"b1\"\n as=\"span\"\n /**\n * Pagination uses DSTypography internally, but each typography variant defines\n * its own font-size. When these components are placed inside a styled() wrapper,\n * trying to style them via styled(DSTypography) triggers TypeScript errors\n * because DSTypography exposes \"as\" props and variant-specific overrides.\n *\n * Instead of wrapping DSTypography directly in styled(), we target the\n * underlying rendered elements via className/id. This avoids the TS conflicts\n * while still allowing us to override their font-size reliably.\n */\n className=\"typography-per-page-selector\"\n >\n {pageSize} / page\n </DSTypography>\n\n <ChevronDown color={['brand-primary', '700']} innerRef={chevronRef} />\n </PaginationDropdownButtonPerPageSelector>\n </DSDropdownMenuV2>\n );\n};\n\nDSPerPageSelector.displayName = DSPerPageSelectorName;\nconst DSPerPageSelectorWithSchema = describe(DSPerPageSelector);\nDSPerPageSelectorWithSchema.propTypes = DSPerPageSelectorPropTypesSchema;\n\nexport { DSPerPageSelector, DSPerPageSelectorWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADWF;AAVrB,gCAAuD;AACvD,sBAA4B;AAC5B,8BAAyB;AACzB,2BAA6B;AAC7B,mBAA+B;AAC/B,gCAAmC;AACnC,uBAAqE;AACrE,mCAA0E;AAC1E,oBAAsE;AAEtE,MAAM,SAAS,MAAM,4CAAC,8BAAa,sBAAQ;AAE3C,MAAM,oBAAmE,CAAC,UAAU;AAClF,QAAM;AAAA,IACJ,kBAAkB,EAAE,UAAU,iBAAiB;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,8CAAmB,KAAK;AAC5B,QAAM,oBAA4C,sBAAQ,MAAM;AAC9D,QAAI,iBAAiB,QAAS,QAAO,iBAAiB;AACtD,WAAO,MAAM,YAAY,CAAC,SAAS,CAAC,IAAI;AAAA,EAC1C,GAAG,CAAC,iBAAiB,SAAS,WAAW,CAAC;AAE1C,QAAM,uBAAmB,sBAAQ,MAAM;AACrC,UAAM,YAAY,QAAQ,OAAO,CAAC,KAAK,QAAQ,KAAK,IAAI,MAAM,WAAW,MAAM,IAAI,QAAQ,IAAI,MAAM,GAAG,CAAC;AACzG,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,CAAC;AAEZ,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,iBAAiB,EAAE,CAAC,SAAS,SAAS,CAAC,GAAG,KAAK;AAAA,MAC/C,eAAe,CAAC,GAAG,kBAAkB;AACnC,yBAAkB,cAAoD,KAAe;AACrF,oBAAY,KAAK;AACjB,eAAO,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,gBAAgB,MAAM;AACpB,oBAAY,KAAK;AACjB,eAAO,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,cAAc,CAAC,EAAE,eAAe,IAAI,CAAC;AAAA,MACrC,0BAAyB;AAAA,MACzB;AAAA,MAuBA,UAAU,QAAQ,eAAe,EAAE,QAAQ,gBAAgB;AAAA,MAC3D,WAAW;AAAA,MACX,YAAY;AAAA,MAEZ;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX,UAAU;AAAA,UACV,gBAAc;AAAA,UACd,cAAY,GAAG,QAAQ;AAAA,UACvB,eAAa,+CAA8B;AAAA,UAC1C,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA,UACJ,SAAS;AAAA,UAET;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,IAAG;AAAA,gBAWH,WAAU;AAAA,gBAET;AAAA;AAAA,kBAAS;AAAA;AAAA;AAAA,YACZ;AAAA,YAEA,4CAAC,+BAAY,OAAO,CAAC,iBAAiB,KAAK,GAAG,UAAU,YAAY;AAAA;AAAA;AAAA,MACtE;AAAA;AAAA,EACF;AAEJ;AAEA,kBAAkB,cAAc;AAChC,MAAM,kCAA8B,kCAAS,iBAAiB;AAC9D,4BAA4B,YAAY;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/parts/DSPerPageSelector/getOptions.ts", "../../../../../../../scripts/build/transpile/react-shim.js"],
3
+ "sources": ["../../../../../src/parts/DSPerPageSelector/config/getOptions.ts", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import { range } from 'lodash-es';\nimport type { DSDropdownMenuT } from '@elliemae/ds-dropdownmenu-v2';\n\nexport const generateOption = (\n value: number | DSDropdownMenuT.ItemSingleOptions,\n): DSDropdownMenuT.ItemSingleOptions => {\n if (typeof value === 'object') {\n return value;\n }\n return {\n dsId: value.toString(),\n value,\n label: value.toString(),\n type: 'single',\n } as const;\n};\n\nexport const getOptions = (step: number, min: number, max: number) => {\n const options = range(min, max + step, step).map(generateOption);\n return min === 0 ? options.slice(1, options.length) : options;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAAsB;AAGf,MAAM,iBAAiB,CAC5B,UACsC;AACtC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,MAAM,MAAM,SAAS;AAAA,IACrB;AAAA,IACA,OAAO,MAAM,SAAS;AAAA,IACtB,MAAM;AAAA,EACR;AACF;AAEO,MAAM,aAAa,CAAC,MAAc,KAAa,QAAgB;AACpE,QAAM,cAAU,wBAAM,KAAK,MAAM,MAAM,IAAI,EAAE,IAAI,cAAc;AAC/D,SAAO,QAAQ,IAAI,QAAQ,MAAM,GAAG,QAAQ,MAAM,IAAI;AACxD;",
6
6
  "names": []
@@ -32,11 +32,19 @@ __export(usePerPageSelector_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(usePerPageSelector_exports);
34
34
  var React = __toESM(require("react"));
35
- var import_react = require("react");
36
35
  var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
36
+ var import_react = __toESM(require("react"));
37
+ var import_react_desc_prop_types = require("../react-desc-prop-types.js");
38
+ var import_useValidateProps = require("./useValidateProps.js");
37
39
  var import_getOptions = require("./getOptions.js");
38
- const usePerPageSelector = (props) => {
39
- const { pageSize, perPageOptions, perPageStep, minPerPage, maxPerPage } = props;
40
+ var import_useOnElementOnResize = require("../../shared/useOnElementOnResize.js");
41
+ const usePerPageSelector = (propsFromUser) => {
42
+ const propsWithDefault = (0, import_ds_props_helpers.useMemoMergePropsWithDefault)(propsFromUser, import_react_desc_prop_types.defaultProps);
43
+ (0, import_useValidateProps.useValidateProps)(propsWithDefault, import_react_desc_prop_types.DSPerPageSelectorPropTypesSchema);
44
+ const xstyledProps = (0, import_ds_props_helpers.useGetXstyledProps)(propsWithDefault);
45
+ const globalAttributes = (0, import_ds_props_helpers.useGetGlobalAttributes)(propsWithDefault);
46
+ const ownerPropsConfig = (0, import_ds_props_helpers.useOwnerProps)(propsWithDefault);
47
+ const { pageSize, perPageOptions, perPageStep, minPerPage, maxPerPage } = propsWithDefault;
40
48
  const [isOpened, setIsOpened] = (0, import_react.useState)(false);
41
49
  const options = (0, import_react.useMemo)(() => {
42
50
  if (perPageOptions) return perPageOptions.map(import_getOptions.generateOption);
@@ -44,27 +52,29 @@ const usePerPageSelector = (props) => {
44
52
  }, [maxPerPage, minPerPage, perPageOptions, perPageStep]);
45
53
  const actionRef = (0, import_react.useRef)({});
46
54
  const btnRef = (0, import_react.useRef)(null);
55
+ const chevronRef = (0, import_react.useRef)(null);
56
+ const { width: chevronWidth } = (0, import_useOnElementOnResize.useOnElementResize)(chevronRef);
47
57
  (0, import_react.useEffect)(() => {
48
58
  if (isOpened) {
49
59
  actionRef.current.setActiveDescendant(pageSize.toString());
50
60
  actionRef.current.scrollOptionIntoView(pageSize.toString());
51
61
  }
52
62
  }, [isOpened]);
53
- const width = (0, import_react.useMemo)(() => {
54
- const maxLength = options.reduce((acc, cur) => Math.max(acc, ("label" in cur ? cur.label : "").length), 0);
55
- return maxLength * 6 + 90;
56
- }, [options]);
57
- const globalAttributes = (0, import_ds_props_helpers.useGetGlobalAttributes)(props);
58
- const xstyledAttributes = (0, import_ds_props_helpers.useGetXstyledProps)(props);
59
- return {
60
- actionRef,
61
- btnRef,
62
- width,
63
- isOpened,
64
- setIsOpened,
65
- options,
66
- globalAttributes,
67
- xstyledAttributes
68
- };
63
+ return import_react.default.useMemo(
64
+ () => ({
65
+ propsWithDefault,
66
+ xstyledProps,
67
+ globalAttributes,
68
+ ownerPropsConfig,
69
+ actionRef,
70
+ btnRef,
71
+ chevronRef,
72
+ chevronWidth,
73
+ isOpened,
74
+ options,
75
+ setIsOpened
76
+ }),
77
+ [propsWithDefault, xstyledProps, globalAttributes, ownerPropsConfig, isOpened, options, chevronRef, chevronWidth]
78
+ );
69
79
  };
70
80
  //# sourceMappingURL=usePerPageSelector.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/parts/DSPerPageSelector/config/usePerPageSelector.ts", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import type { DSButtonV3T } from '@elliemae/ds-button-v2';\nimport {\n useGetGlobalAttributes,\n useGetXstyledProps,\n useMemoMergePropsWithDefault,\n useOwnerProps,\n} from '@elliemae/ds-props-helpers';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { type DSPerPageSelectorT, DSPerPageSelectorPropTypesSchema, defaultProps } from '../react-desc-prop-types.js';\nimport { useValidateProps } from './useValidateProps.js';\nimport { generateOption, getOptions } from './getOptions.js';\nimport { useOnElementResize } from '../../shared/useOnElementOnResize.js';\n\nexport const usePerPageSelector = (propsFromUser: DSPerPageSelectorT.Props) => {\n // =============================================================================\n // MERGE WITH DEFAULT AND VALIDATE PROPS\n // =============================================================================\n const propsWithDefault = useMemoMergePropsWithDefault<DSPerPageSelectorT.InternalProps>(propsFromUser, defaultProps);\n useValidateProps(propsWithDefault, DSPerPageSelectorPropTypesSchema);\n // =============================================================================\n // XSTYLED PROPS\n // =============================================================================\n const xstyledProps = useGetXstyledProps(propsWithDefault);\n // =============================================================================\n // GLOBAL ATTRIBUTES\n // =============================================================================\n const globalAttributes = useGetGlobalAttributes<\n DSPerPageSelectorT.InternalProps,\n HTMLButtonElement,\n DSButtonV3T.Props\n >(propsWithDefault);\n // =============================================================================\n // OWNER PROPS\n // =============================================================================\n const ownerPropsConfig = useOwnerProps(propsWithDefault);\n // AD HOC PER COMPONENT LOGIC\n // =============================================================================\n // custom code goes here, this is an example\n // const instanceUid = React.useMemo(() => `ds-per-page-selector-${uid(5)}`, []);\n\n const { pageSize, perPageOptions, perPageStep, minPerPage, maxPerPage } = propsWithDefault;\n const [isOpened, setIsOpened] = useState(false);\n const options = useMemo(() => {\n if (perPageOptions) return perPageOptions.map(generateOption);\n return getOptions(perPageStep, minPerPage, maxPerPage);\n }, [maxPerPage, minPerPage, perPageOptions, perPageStep]);\n\n const actionRef = useRef<Record<string, (dsId: string) => void>>({});\n const btnRef = useRef<HTMLButtonElement>(null);\n\n const chevronRef = useRef<HTMLElement>(null);\n const { width: chevronWidth } = useOnElementResize(chevronRef);\n\n useEffect(() => {\n if (isOpened) {\n actionRef.current.setActiveDescendant(pageSize.toString());\n actionRef.current.scrollOptionIntoView(pageSize.toString());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpened]);\n\n // =============================================================================\n // HELPERS HOOKS CONFIGS\n // =============================================================================\n // const eventHandlers = useEventHandlers({ propsWithDefault, instanceUid }); // <-- complex logic should be made atomics this way\n\n return React.useMemo(\n () => ({\n propsWithDefault,\n xstyledProps,\n globalAttributes,\n ownerPropsConfig,\n actionRef,\n btnRef,\n chevronRef,\n chevronWidth,\n isOpened,\n options,\n setIsOpened,\n }),\n [propsWithDefault, xstyledProps, globalAttributes, ownerPropsConfig, isOpened, options, chevronRef, chevronWidth],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,8BAKO;AACP,mBAA4D;AAE5D,mCAAwF;AACxF,8BAAiC;AACjC,wBAA2C;AAC3C,kCAAmC;AAE5B,MAAM,qBAAqB,CAAC,kBAA4C;AAI7E,QAAM,uBAAmB,sDAA+D,eAAe,yCAAY;AACnH,gDAAiB,kBAAkB,6DAAgC;AAInE,QAAM,mBAAe,4CAAmB,gBAAgB;AAIxD,QAAM,uBAAmB,gDAIvB,gBAAgB;AAIlB,QAAM,uBAAmB,uCAAc,gBAAgB;AAMvD,QAAM,EAAE,UAAU,gBAAgB,aAAa,YAAY,WAAW,IAAI;AAC1E,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,KAAK;AAC9C,QAAM,cAAU,sBAAQ,MAAM;AAC5B,QAAI,eAAgB,QAAO,eAAe,IAAI,gCAAc;AAC5D,eAAO,8BAAW,aAAa,YAAY,UAAU;AAAA,EACvD,GAAG,CAAC,YAAY,YAAY,gBAAgB,WAAW,CAAC;AAExD,QAAM,gBAAY,qBAA+C,CAAC,CAAC;AACnE,QAAM,aAAS,qBAA0B,IAAI;AAE7C,QAAM,iBAAa,qBAAoB,IAAI;AAC3C,QAAM,EAAE,OAAO,aAAa,QAAI,gDAAmB,UAAU;AAE7D,8BAAU,MAAM;AACd,QAAI,UAAU;AACZ,gBAAU,QAAQ,oBAAoB,SAAS,SAAS,CAAC;AACzD,gBAAU,QAAQ,qBAAqB,SAAS,SAAS,CAAC;AAAA,IAC5D;AAAA,EAEF,GAAG,CAAC,QAAQ,CAAC;AAOb,SAAO,aAAAA,QAAM;AAAA,IACX,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB,cAAc,kBAAkB,kBAAkB,UAAU,SAAS,YAAY,YAAY;AAAA,EAClH;AACF;",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var useValidateProps_exports = {};
30
+ __export(useValidateProps_exports, {
31
+ useValidateProps: () => useValidateProps
32
+ });
33
+ module.exports = __toCommonJS(useValidateProps_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
36
+ var import_constants = require("../constants/index.js");
37
+ const useValidateProps = (props, propTypes) => {
38
+ (0, import_ds_props_helpers.useValidateTypescriptPropTypes)(props, propTypes, import_constants.DSPerPageSelectorName);
39
+ };
40
+ //# sourceMappingURL=useValidateProps.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/parts/DSPerPageSelector/config/useValidateProps.ts", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import { useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport type { ValidationMap } from '@elliemae/ds-props-helpers';\nimport { type DSPerPageSelectorT } from '../react-desc-prop-types.js';\nimport { DSPerPageSelectorName } from '../constants/index.js';\n\nexport const useValidateProps = (\n props: DSPerPageSelectorT.InternalProps,\n propTypes: ValidationMap<DSPerPageSelectorT.Props>,\n): void => {\n // we validate the \"required if\" via 'isRequiredIf from our custom PropTypes\n useValidateTypescriptPropTypes(props, propTypes, DSPerPageSelectorName);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,8BAA+C;AAG/C,uBAAsC;AAE/B,MAAM,mBAAmB,CAC9B,OACA,cACS;AAET,8DAA+B,OAAO,WAAW,sCAAqB;AACxE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var constants_exports = {};
30
+ __export(constants_exports, {
31
+ DSPaginationName: () => import_constants.DSPaginationName,
32
+ DSPerPageSelectorName: () => DSPerPageSelectorName,
33
+ EXAMPLE_CONSTANTS: () => EXAMPLE_CONSTANTS,
34
+ PER_PAGE_SELECTOR_DATA_TESTID: () => PER_PAGE_SELECTOR_DATA_TESTID,
35
+ PER_PAGE_SELECTOR_SLOTS: () => PER_PAGE_SELECTOR_SLOTS
36
+ });
37
+ module.exports = __toCommonJS(constants_exports);
38
+ var React = __toESM(require("react"));
39
+ var import_ds_system = require("@elliemae/ds-system");
40
+ var import_constants = require("../../../constants/index.js");
41
+ const DSPerPageSelectorName = "DSPerPageSelector";
42
+ const EXAMPLE_CONSTANTS = {
43
+ HELLO: "WORLD",
44
+ FOO: "BAR"
45
+ };
46
+ const PER_PAGE_SELECTOR_SLOTS = {
47
+ PER_PAGE_SELECTOR: "per-page-selector"
48
+ };
49
+ const PER_PAGE_SELECTOR_DATA_TESTID = (0, import_ds_system.slotObjectToDataTestIds)(import_constants.DSPaginationName, PER_PAGE_SELECTOR_SLOTS);
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/parts/DSPerPageSelector/constants/index.ts", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import { slotObjectToDataTestIds } from '@elliemae/ds-system';\nimport { DSPaginationName } from '../../../constants/index.js';\nexport { DSPaginationName };\n\n// This should be used only for displayName, and useValidateProps.\n// For slots definition, use parent component name\nexport const DSPerPageSelectorName = 'DSPerPageSelector';\n\nexport const EXAMPLE_CONSTANTS = {\n HELLO: 'WORLD',\n FOO: 'BAR',\n} as const;\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PER_PAGE_SELECTOR_SLOTS = {\n PER_PAGE_SELECTOR: 'per-page-selector',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PER_PAGE_SELECTOR_DATA_TESTID = slotObjectToDataTestIds(DSPaginationName, PER_PAGE_SELECTOR_SLOTS);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAAwC;AACxC,uBAAiC;AAK1B,MAAM,wBAAwB;AAE9B,MAAM,oBAAoB;AAAA,EAC/B,OAAO;AAAA,EACP,KAAK;AACP;AAGO,MAAM,0BAA0B;AAAA,EACrC,mBAAmB;AACrB;AAGO,MAAM,oCAAgC,0CAAwB,mCAAkB,uBAAuB;",
6
+ "names": []
7
+ }
@@ -28,77 +28,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var DSPerPageSelector_exports = {};
30
30
  __export(DSPerPageSelector_exports, {
31
- DSPerPageSelector: () => DSPerPageSelector,
32
- DSPerPageSelectorWithSchema: () => DSPerPageSelectorWithSchema
31
+ DSPerPageSelector: () => import_DSPerPageSelector.DSPerPageSelector,
32
+ DSPerPageSelectorName: () => import_constants.DSPerPageSelectorName,
33
+ DSPerPageSelectorWithSchema: () => import_DSPerPageSelector.DSPerPageSelectorWithSchema,
34
+ PER_PAGE_SELECTOR_DATA_TESTID: () => import_constants.PER_PAGE_SELECTOR_DATA_TESTID,
35
+ PER_PAGE_SELECTOR_SLOTS: () => import_constants.PER_PAGE_SELECTOR_SLOTS
33
36
  });
34
37
  module.exports = __toCommonJS(DSPerPageSelector_exports);
35
38
  var React = __toESM(require("react"));
36
- var import_jsx_runtime = require("react/jsx-runtime");
37
- var import_react = require("react");
38
- var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
39
- var import_ds_dropdownmenu_v2 = require("@elliemae/ds-dropdownmenu-v2");
40
- var import_ds_icons = require("@elliemae/ds-icons");
41
- var import_react_desc_prop_types = require("../../react-desc-prop-types.js");
42
- var import_styled = require("../../styled.js");
43
- var import_DSPaginationDefinitions = require("../../DSPaginationDefinitions.js");
44
- var import_usePerPageSelector = require("./usePerPageSelector.js");
45
- var import_PaginationDataTestID = require("../../PaginationDataTestID.js");
46
- const Header = () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: "Per Page" });
47
- const DSPerPageSelector = (props) => {
48
- const propsWithDefault = (0, import_ds_props_helpers.useMemoMergePropsWithDefault)(
49
- props,
50
- import_react_desc_prop_types.perPageSelectorDefaultProps
51
- );
52
- (0, import_ds_props_helpers.useValidateTypescriptPropTypes)(propsWithDefault, import_react_desc_prop_types.DSPerPageSelectorPropTypesSchema, import_DSPaginationDefinitions.PerPageSelectorName);
53
- const { pageSize, onPageSizeChange } = propsWithDefault;
54
- const { actionRef, btnRef, width, isOpened, setIsOpened, options, globalAttributes, xstyledAttributes } = (0, import_usePerPageSelector.usePerPageSelector)(propsWithDefault);
55
- const buttonOnClick = (0, import_react.useMemo)(() => {
56
- if (globalAttributes.onClick) return globalAttributes.onClick;
57
- return () => setIsOpened((prev) => !prev);
58
- }, [globalAttributes.onClick, setIsOpened]);
59
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
60
- import_ds_dropdownmenu_v2.DSDropdownMenuV2,
61
- {
62
- isOpened,
63
- options,
64
- selectedOptions: { [pageSize.toString()]: true },
65
- onOptionClick: (_, clickedOption) => {
66
- onPageSizeChange(clickedOption.value);
67
- setIsOpened(false);
68
- btnRef.current?.focus();
69
- },
70
- onClickOutside: () => {
71
- setIsOpened(false);
72
- btnRef.current?.focus();
73
- },
74
- customOffset: [-23, 2],
75
- startPlacementPreference: "top-start",
76
- actionRef,
77
- minWidth: width,
78
- maxHeight: 300,
79
- HeaderComp: Header,
80
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
81
- import_styled.PaginationDropdownButton,
82
- {
83
- buttonType: "raw",
84
- innerRef: btnRef,
85
- "aria-pressed": isOpened,
86
- "aria-label": `${pageSize} rows per page. Press to select rows per page`,
87
- "data-testid": import_PaginationDataTestID.PAGINATION_DATA_TESTID.PER_PAGE_SELECTOR,
88
- ...globalAttributes,
89
- ...xstyledAttributes,
90
- onClick: buttonOnClick,
91
- children: [
92
- pageSize,
93
- " / page",
94
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronDown, { color: ["brand-primary", "700"] })
95
- ]
96
- }
97
- )
98
- }
99
- );
100
- };
101
- DSPerPageSelector.displayName = import_DSPaginationDefinitions.PerPageSelectorName;
102
- const DSPerPageSelectorWithSchema = (0, import_ds_props_helpers.describe)(DSPerPageSelector).description("Per Page Selector");
103
- DSPerPageSelectorWithSchema.propTypes = import_react_desc_prop_types.DSPerPageSelectorPropTypesSchema;
39
+ var import_DSPerPageSelector = require("./DSPerPageSelector.js");
40
+ var import_constants = require("./constants/index.js");
104
41
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/parts/DSPerPageSelector/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useMemo } from 'react';\nimport { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport type { DSDropdownMenuT } from '@elliemae/ds-dropdownmenu-v2';\nimport { DSDropdownMenuV2 } from '@elliemae/ds-dropdownmenu-v2';\nimport { ChevronDown } from '@elliemae/ds-icons';\nimport type { DSButtonT } from '@elliemae/ds-button-v2';\nimport { perPageSelectorDefaultProps, DSPerPageSelectorPropTypesSchema } from '../../react-desc-prop-types.js';\nimport { PaginationDropdownButton } from '../../styled.js';\nimport { PerPageSelectorName } from '../../DSPaginationDefinitions.js';\nimport { usePerPageSelector } from './usePerPageSelector.js';\nimport { PAGINATION_DATA_TESTID } from '../../PaginationDataTestID.js';\nimport type { DSPaginationT } from '../../react-desc-prop-types.js';\n\nconst Header = () => <>Per Page</>;\n\nexport const DSPerPageSelector: React.ComponentType<DSPaginationT.PerPageSelectorProps> = (props) => {\n const propsWithDefault = useMemoMergePropsWithDefault<DSPaginationT.PerPageSelectorInternalProps>(\n props,\n perPageSelectorDefaultProps,\n );\n useValidateTypescriptPropTypes(propsWithDefault, DSPerPageSelectorPropTypesSchema, PerPageSelectorName);\n\n const { pageSize, onPageSizeChange } = propsWithDefault;\n\n const { actionRef, btnRef, width, isOpened, setIsOpened, options, globalAttributes, xstyledAttributes } =\n usePerPageSelector(propsWithDefault);\n\n const buttonOnClick: DSButtonT.Props['onClick'] = useMemo(() => {\n if (globalAttributes.onClick) return globalAttributes.onClick as DSButtonT.Props['onClick'];\n return () => setIsOpened((prev) => !prev);\n }, [globalAttributes.onClick, setIsOpened]);\n\n return (\n <DSDropdownMenuV2\n isOpened={isOpened}\n options={options}\n selectedOptions={{ [pageSize.toString()]: true }}\n onOptionClick={(_, clickedOption) => {\n onPageSizeChange((clickedOption as DSDropdownMenuT.ItemSingleOptions).value as number);\n setIsOpened(false);\n btnRef.current?.focus();\n }}\n onClickOutside={() => {\n setIsOpened(false);\n btnRef.current?.focus();\n }}\n customOffset={[-23, 2]}\n startPlacementPreference=\"top-start\"\n actionRef={actionRef}\n minWidth={width}\n maxHeight={300}\n HeaderComp={Header}\n >\n <PaginationDropdownButton\n buttonType=\"raw\"\n innerRef={btnRef}\n aria-pressed={isOpened}\n aria-label={`${pageSize} rows per page. Press to select rows per page`}\n data-testid={PAGINATION_DATA_TESTID.PER_PAGE_SELECTOR}\n {...globalAttributes}\n {...xstyledAttributes}\n onClick={buttonOnClick}\n >\n {pageSize} / page\n <ChevronDown color={['brand-primary', '700']} />\n </PaginationDropdownButton>\n </DSDropdownMenuV2>\n );\n};\n\nDSPerPageSelector.displayName = PerPageSelectorName;\nexport const DSPerPageSelectorWithSchema = describe(DSPerPageSelector).description('Per Page Selector');\nDSPerPageSelectorWithSchema.propTypes = DSPerPageSelectorPropTypesSchema;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADaF;AAbrB,mBAA+B;AAC/B,8BAAuF;AAEvF,gCAAiC;AACjC,sBAA4B;AAE5B,mCAA8E;AAC9E,oBAAyC;AACzC,qCAAoC;AACpC,gCAAmC;AACnC,kCAAuC;AAGvC,MAAM,SAAS,MAAM,2EAAE,sBAAQ;AAExB,MAAM,oBAA6E,CAAC,UAAU;AACnG,QAAM,uBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,EACF;AACA,8DAA+B,kBAAkB,+DAAkC,kDAAmB;AAEtG,QAAM,EAAE,UAAU,iBAAiB,IAAI;AAEvC,QAAM,EAAE,WAAW,QAAQ,OAAO,UAAU,aAAa,SAAS,kBAAkB,kBAAkB,QACpG,8CAAmB,gBAAgB;AAErC,QAAM,oBAA4C,sBAAQ,MAAM;AAC9D,QAAI,iBAAiB,QAAS,QAAO,iBAAiB;AACtD,WAAO,MAAM,YAAY,CAAC,SAAS,CAAC,IAAI;AAAA,EAC1C,GAAG,CAAC,iBAAiB,SAAS,WAAW,CAAC;AAE1C,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,iBAAiB,EAAE,CAAC,SAAS,SAAS,CAAC,GAAG,KAAK;AAAA,MAC/C,eAAe,CAAC,GAAG,kBAAkB;AACnC,yBAAkB,cAAoD,KAAe;AACrF,oBAAY,KAAK;AACjB,eAAO,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,gBAAgB,MAAM;AACpB,oBAAY,KAAK;AACjB,eAAO,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,cAAc,CAAC,KAAK,CAAC;AAAA,MACrB,0BAAyB;AAAA,MACzB;AAAA,MACA,UAAU;AAAA,MACV,WAAW;AAAA,MACX,YAAY;AAAA,MAEZ;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX,UAAU;AAAA,UACV,gBAAc;AAAA,UACd,cAAY,GAAG,QAAQ;AAAA,UACvB,eAAa,mDAAuB;AAAA,UACnC,GAAG;AAAA,UACH,GAAG;AAAA,UACJ,SAAS;AAAA,UAER;AAAA;AAAA,YAAS;AAAA,YACV,4CAAC,+BAAY,OAAO,CAAC,iBAAiB,KAAK,GAAG;AAAA;AAAA;AAAA,MAChD;AAAA;AAAA,EACF;AAEJ;AAEA,kBAAkB,cAAc;AACzB,MAAM,kCAA8B,kCAAS,iBAAiB,EAAE,YAAY,mBAAmB;AACtG,4BAA4B,YAAY;",
3
+ "sources": ["../../../../src/parts/DSPerPageSelector/index.ts", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["export { DSPerPageSelector, DSPerPageSelectorWithSchema } from './DSPerPageSelector.js';\nexport { DSPerPageSelectorName, PER_PAGE_SELECTOR_DATA_TESTID, PER_PAGE_SELECTOR_SLOTS } from './constants/index.js';\nexport type { DSPerPageSelectorT } from './react-desc-prop-types.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAA+D;AAC/D,uBAA8F;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var react_desc_prop_types_exports = {};
30
+ __export(react_desc_prop_types_exports, {
31
+ DSPerPageSelectorPropTypes: () => DSPerPageSelectorPropTypes,
32
+ DSPerPageSelectorPropTypesSchema: () => DSPerPageSelectorPropTypesSchema,
33
+ defaultProps: () => defaultProps
34
+ });
35
+ module.exports = __toCommonJS(react_desc_prop_types_exports);
36
+ var React = __toESM(require("react"));
37
+ var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
38
+ var import_constants = require("./constants/index.js");
39
+ const defaultProps = {
40
+ pageSize: 10,
41
+ onPageSizeChange: () => null,
42
+ perPageStep: 5,
43
+ minPerPage: 0,
44
+ maxPerPage: 100
45
+ };
46
+ const DSPerPageSelectorPropTypes = {
47
+ ...(0, import_ds_props_helpers.getPropsPerSlotPropTypes)(import_constants.DSPaginationName, import_constants.PER_PAGE_SELECTOR_SLOTS),
48
+ ...import_ds_props_helpers.globalAttributesPropTypes,
49
+ ...import_ds_props_helpers.xstyledPropTypes,
50
+ pageSize: import_ds_props_helpers.PropTypes.number.description("The current page size").defaultValue(10),
51
+ onPageSizeChange: import_ds_props_helpers.PropTypes.func.description("Function invoked when the page size changes").defaultValue(() => null),
52
+ perPageOptions: import_ds_props_helpers.PropTypes.arrayOf(import_ds_props_helpers.PropTypes.oneOfType([import_ds_props_helpers.PropTypes.number, import_ds_props_helpers.PropTypes.object])).description("The available options for page size").defaultValue([10]),
53
+ minPerPage: import_ds_props_helpers.PropTypes.number.description("Min for the per page options").defaultValue(0),
54
+ maxPerPage: import_ds_props_helpers.PropTypes.number.description("Max for the per page options").defaultValue(100),
55
+ perPageStep: import_ds_props_helpers.PropTypes.number.description("Step for the per page options").defaultValue(5)
56
+ };
57
+ const DSPerPageSelectorPropTypesSchema = DSPerPageSelectorPropTypes;
58
+ //# sourceMappingURL=react-desc-prop-types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/parts/DSPerPageSelector/react-desc-prop-types.ts", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-empty-interface */\nimport type { DSDropdownMenuT } from '@elliemae/ds-dropdownmenu-v2';\nimport type { DSPropTypesSchema, GlobalAttributesT, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers';\nimport {\n PropTypes,\n getPropsPerSlotPropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSPaginationName, PER_PAGE_SELECTOR_SLOTS } from './constants/index.js';\n\nexport declare namespace DSPerPageSelectorT {\n export type SlotFunctionArguments = {\n dsPaginationPerPageSelector: () => object;\n };\n export interface RequiredProps {}\n\n export interface DefaultProps {\n pageSize: number;\n onPageSizeChange: (pageSize: number) => void;\n perPageStep: number;\n minPerPage: number;\n maxPerPage: number;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<typeof DSPaginationName, typeof PER_PAGE_SELECTOR_SLOTS> {\n perPageOptions?: (number | DSDropdownMenuT.ItemSingleOptions)[];\n }\n export interface Props\n extends Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSPerPageSelectorT.DefaultProps = {\n pageSize: 10,\n onPageSizeChange: () => null,\n perPageStep: 5,\n minPerPage: 0,\n maxPerPage: 100,\n};\n\nexport const DSPerPageSelectorPropTypes: DSPropTypesSchema<DSPerPageSelectorT.Props> = {\n ...getPropsPerSlotPropTypes(DSPaginationName, PER_PAGE_SELECTOR_SLOTS),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n pageSize: PropTypes.number.description('The current page size').defaultValue(10),\n onPageSizeChange: PropTypes.func.description('Function invoked when the page size changes').defaultValue(() => null),\n perPageOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.object]))\n .description('The available options for page size')\n .defaultValue([10]),\n minPerPage: PropTypes.number.description('Min for the per page options').defaultValue(0),\n maxPerPage: PropTypes.number.description('Max for the per page options').defaultValue(100),\n perPageStep: PropTypes.number.description('Step for the per page options').defaultValue(5),\n};\n\nexport const DSPerPageSelectorPropTypesSchema =\n DSPerPageSelectorPropTypes as unknown as ValidationMap<DSPerPageSelectorT.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,8BAKO;AAEP,uBAA0D;AAmCnD,MAAM,eAAgD;AAAA,EAC3D,UAAU;AAAA,EACV,kBAAkB,MAAM;AAAA,EACxB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AACd;AAEO,MAAM,6BAA0E;AAAA,EACrF,OAAG,kDAAyB,mCAAkB,wCAAuB;AAAA,EACrE,GAAG;AAAA,EACH,GAAG;AAAA,EACH,UAAU,kCAAU,OAAO,YAAY,uBAAuB,EAAE,aAAa,EAAE;AAAA,EAC/E,kBAAkB,kCAAU,KAAK,YAAY,6CAA6C,EAAE,aAAa,MAAM,IAAI;AAAA,EACnH,gBAAgB,kCAAU,QAAQ,kCAAU,UAAU,CAAC,kCAAU,QAAQ,kCAAU,MAAM,CAAC,CAAC,EACxF,YAAY,qCAAqC,EACjD,aAAa,CAAC,EAAE,CAAC;AAAA,EACpB,YAAY,kCAAU,OAAO,YAAY,8BAA8B,EAAE,aAAa,CAAC;AAAA,EACvF,YAAY,kCAAU,OAAO,YAAY,8BAA8B,EAAE,aAAa,GAAG;AAAA,EACzF,aAAa,kCAAU,OAAO,YAAY,+BAA+B,EAAE,aAAa,CAAC;AAC3F;AAEO,MAAM,mCACX;",
6
+ "names": []
7
+ }