@elliemae/ds-pagination 3.80.0-next.51 → 3.80.0-next.53

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 (202) hide show
  1. package/dist/cjs/parts/DSPaginator/DSPaginator.js +10 -166
  2. package/dist/cjs/parts/DSPaginator/DSPaginator.js.map +2 -2
  3. package/dist/cjs/parts/DSPaginator/{config/usePaginationSearch.js → DSPaginatorCTX.js} +7 -32
  4. package/dist/cjs/parts/DSPaginator/DSPaginatorCTX.js.map +7 -0
  5. package/dist/cjs/parts/DSPaginator/config/{createPaginatorHeader.js → getAmountOfPages.js} +8 -23
  6. package/dist/cjs/parts/DSPaginator/config/getAmountOfPages.js.map +7 -0
  7. package/dist/cjs/parts/DSPaginator/config/getInstanceIds.js +40 -0
  8. package/dist/cjs/parts/DSPaginator/config/getInstanceIds.js.map +7 -0
  9. package/dist/cjs/parts/DSPaginator/config/navigationKeys.js +44 -0
  10. package/dist/cjs/parts/DSPaginator/config/navigationKeys.js.map +7 -0
  11. package/dist/cjs/parts/DSPaginator/config/useFocusTracker.js +77 -0
  12. package/dist/cjs/parts/DSPaginator/config/useFocusTracker.js.map +7 -0
  13. package/dist/cjs/parts/DSPaginator/config/usePaginator.js +73 -49
  14. package/dist/cjs/parts/DSPaginator/config/usePaginator.js.map +2 -2
  15. package/dist/cjs/parts/DSPaginator/config/usePaginatorFloatingContext.js +86 -0
  16. package/dist/cjs/parts/DSPaginator/config/usePaginatorFloatingContext.js.map +7 -0
  17. package/dist/cjs/parts/DSPaginator/config/usePaginatorInteractions.js +170 -0
  18. package/dist/cjs/parts/DSPaginator/config/usePaginatorInteractions.js.map +7 -0
  19. package/dist/cjs/parts/DSPaginator/config/usePaginatorSizing.js +80 -0
  20. package/dist/cjs/parts/DSPaginator/config/usePaginatorSizing.js.map +7 -0
  21. package/dist/cjs/parts/DSPaginator/config/useValidateProps.js.map +2 -2
  22. package/dist/cjs/parts/DSPaginator/constants/index.js +49 -3
  23. package/dist/cjs/parts/DSPaginator/constants/index.js.map +2 -2
  24. package/dist/cjs/parts/DSPaginator/parts/OptionRenderer.js +98 -0
  25. package/dist/cjs/parts/DSPaginator/parts/OptionRenderer.js.map +7 -0
  26. package/dist/cjs/parts/DSPaginator/parts/Panel.js +131 -0
  27. package/dist/cjs/parts/DSPaginator/parts/Panel.js.map +7 -0
  28. package/dist/cjs/parts/DSPaginator/parts/Trigger.js +124 -0
  29. package/dist/cjs/parts/DSPaginator/parts/Trigger.js.map +7 -0
  30. package/dist/cjs/parts/DSPaginator/react-desc-prop-types.js +6 -1
  31. package/dist/cjs/parts/DSPaginator/react-desc-prop-types.js.map +2 -2
  32. package/dist/cjs/parts/DSPaginator/styled.js +113 -38
  33. package/dist/cjs/parts/DSPaginator/styled.js.map +3 -3
  34. package/dist/cjs/parts/DSPaginator/typescript-testing/slot-props.js +12 -1
  35. package/dist/cjs/parts/DSPaginator/typescript-testing/slot-props.js.map +2 -2
  36. package/dist/cjs/parts/DSPaginator/typescript-testing/typescript-testing.js +2 -1
  37. package/dist/cjs/parts/DSPaginator/typescript-testing/typescript-testing.js.map +2 -2
  38. package/dist/cjs/parts/DSPerPageSelector/DSPerPageSelector.js +10 -79
  39. package/dist/cjs/parts/DSPerPageSelector/DSPerPageSelector.js.map +3 -3
  40. package/dist/cjs/parts/DSPerPageSelector/DSPerPageSelectorCTX.js +38 -0
  41. package/dist/cjs/parts/DSPerPageSelector/DSPerPageSelectorCTX.js.map +7 -0
  42. package/dist/cjs/parts/DSPerPageSelector/config/getInstanceIds.js +40 -0
  43. package/dist/cjs/parts/DSPerPageSelector/config/getInstanceIds.js.map +7 -0
  44. package/dist/cjs/parts/DSPerPageSelector/config/getOptions.js.map +2 -2
  45. package/dist/cjs/parts/DSPerPageSelector/config/getSelectedOptionIndex.js +36 -0
  46. package/dist/cjs/parts/DSPerPageSelector/config/getSelectedOptionIndex.js.map +7 -0
  47. package/dist/cjs/parts/DSPerPageSelector/config/navigationKeys.js +44 -0
  48. package/dist/cjs/parts/DSPerPageSelector/config/navigationKeys.js.map +7 -0
  49. package/dist/cjs/parts/DSPerPageSelector/config/useFocusTracker.js +83 -0
  50. package/dist/cjs/parts/DSPerPageSelector/config/useFocusTracker.js.map +7 -0
  51. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelector.js +68 -20
  52. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelector.js.map +2 -2
  53. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelectorFloatingContext.js +82 -0
  54. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelectorFloatingContext.js.map +7 -0
  55. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelectorInteractions.js +175 -0
  56. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelectorInteractions.js.map +7 -0
  57. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelectorSizing.js +66 -0
  58. package/dist/cjs/parts/DSPerPageSelector/config/usePerPageSelectorSizing.js.map +7 -0
  59. package/dist/cjs/parts/DSPerPageSelector/constants/index.js +47 -8
  60. package/dist/cjs/parts/DSPerPageSelector/constants/index.js.map +2 -2
  61. package/dist/cjs/parts/DSPerPageSelector/parts/OptionRenderer.js +94 -0
  62. package/dist/cjs/parts/DSPerPageSelector/parts/OptionRenderer.js.map +7 -0
  63. package/dist/cjs/parts/DSPerPageSelector/parts/Panel.js +120 -0
  64. package/dist/cjs/parts/DSPerPageSelector/parts/Panel.js.map +7 -0
  65. package/dist/cjs/parts/DSPerPageSelector/parts/Trigger.js +95 -0
  66. package/dist/cjs/parts/DSPerPageSelector/parts/Trigger.js.map +7 -0
  67. package/dist/cjs/parts/DSPerPageSelector/react-desc-prop-types.js +19 -2
  68. package/dist/cjs/parts/DSPerPageSelector/react-desc-prop-types.js.map +2 -2
  69. package/dist/cjs/parts/DSPerPageSelector/styled.js +104 -32
  70. package/dist/cjs/parts/DSPerPageSelector/styled.js.map +2 -2
  71. package/dist/cjs/parts/DSPerPageSelector/typescript-testing/slots-props.js +10 -1
  72. package/dist/cjs/parts/DSPerPageSelector/typescript-testing/slots-props.js.map +2 -2
  73. package/dist/cjs/parts/DSPerPageSelector/typescript-testing/typescript-testing.js +60 -1
  74. package/dist/cjs/parts/DSPerPageSelector/typescript-testing/typescript-testing.js.map +2 -2
  75. package/dist/cjs/react-desc-prop-types.js.map +1 -1
  76. package/dist/esm/parts/DSPaginator/DSPaginator.js +12 -168
  77. package/dist/esm/parts/DSPaginator/DSPaginator.js.map +2 -2
  78. package/dist/esm/parts/DSPaginator/DSPaginatorCTX.js +8 -0
  79. package/dist/esm/parts/DSPaginator/DSPaginatorCTX.js.map +7 -0
  80. package/dist/esm/parts/DSPaginator/config/getAmountOfPages.js +9 -0
  81. package/dist/esm/parts/DSPaginator/config/getAmountOfPages.js.map +7 -0
  82. package/dist/esm/parts/DSPaginator/config/getInstanceIds.js +10 -0
  83. package/dist/esm/parts/DSPaginator/config/getInstanceIds.js.map +7 -0
  84. package/dist/esm/parts/DSPaginator/config/navigationKeys.js +14 -0
  85. package/dist/esm/parts/DSPaginator/config/navigationKeys.js.map +7 -0
  86. package/dist/esm/parts/DSPaginator/config/useFocusTracker.js +47 -0
  87. package/dist/esm/parts/DSPaginator/config/useFocusTracker.js.map +7 -0
  88. package/dist/esm/parts/DSPaginator/config/usePaginator.js +74 -50
  89. package/dist/esm/parts/DSPaginator/config/usePaginator.js.map +2 -2
  90. package/dist/esm/parts/DSPaginator/config/usePaginatorFloatingContext.js +56 -0
  91. package/dist/esm/parts/DSPaginator/config/usePaginatorFloatingContext.js.map +7 -0
  92. package/dist/esm/parts/DSPaginator/config/usePaginatorInteractions.js +140 -0
  93. package/dist/esm/parts/DSPaginator/config/usePaginatorInteractions.js.map +7 -0
  94. package/dist/esm/parts/DSPaginator/config/usePaginatorSizing.js +56 -0
  95. package/dist/esm/parts/DSPaginator/config/usePaginatorSizing.js.map +7 -0
  96. package/dist/esm/parts/DSPaginator/config/useValidateProps.js.map +2 -2
  97. package/dist/esm/parts/DSPaginator/constants/index.js +49 -3
  98. package/dist/esm/parts/DSPaginator/constants/index.js.map +2 -2
  99. package/dist/esm/parts/DSPaginator/parts/OptionRenderer.js +68 -0
  100. package/dist/esm/parts/DSPaginator/parts/OptionRenderer.js.map +7 -0
  101. package/dist/esm/parts/DSPaginator/parts/Panel.js +101 -0
  102. package/dist/esm/parts/DSPaginator/parts/Panel.js.map +7 -0
  103. package/dist/esm/parts/DSPaginator/parts/Trigger.js +94 -0
  104. package/dist/esm/parts/DSPaginator/parts/Trigger.js.map +7 -0
  105. package/dist/esm/parts/DSPaginator/react-desc-prop-types.js +6 -1
  106. package/dist/esm/parts/DSPaginator/react-desc-prop-types.js.map +2 -2
  107. package/dist/esm/parts/DSPaginator/styled.js +120 -39
  108. package/dist/esm/parts/DSPaginator/styled.js.map +2 -2
  109. package/dist/esm/parts/DSPaginator/typescript-testing/slot-props.js +12 -1
  110. package/dist/esm/parts/DSPaginator/typescript-testing/slot-props.js.map +2 -2
  111. package/dist/esm/parts/DSPaginator/typescript-testing/typescript-testing.js +2 -1
  112. package/dist/esm/parts/DSPaginator/typescript-testing/typescript-testing.js.map +2 -2
  113. package/dist/esm/parts/DSPerPageSelector/DSPerPageSelector.js +11 -80
  114. package/dist/esm/parts/DSPerPageSelector/DSPerPageSelector.js.map +3 -3
  115. package/dist/esm/parts/DSPerPageSelector/DSPerPageSelectorCTX.js +8 -0
  116. package/dist/esm/parts/DSPerPageSelector/DSPerPageSelectorCTX.js.map +7 -0
  117. package/dist/esm/parts/DSPerPageSelector/config/getInstanceIds.js +10 -0
  118. package/dist/esm/parts/DSPerPageSelector/config/getInstanceIds.js.map +7 -0
  119. package/dist/esm/parts/DSPerPageSelector/config/getOptions.js.map +2 -2
  120. package/dist/esm/parts/DSPerPageSelector/config/getSelectedOptionIndex.js +6 -0
  121. package/dist/esm/parts/DSPerPageSelector/config/getSelectedOptionIndex.js.map +7 -0
  122. package/dist/esm/parts/DSPerPageSelector/config/navigationKeys.js +14 -0
  123. package/dist/esm/parts/DSPerPageSelector/config/navigationKeys.js.map +7 -0
  124. package/dist/esm/parts/DSPerPageSelector/config/useFocusTracker.js +53 -0
  125. package/dist/esm/parts/DSPerPageSelector/config/useFocusTracker.js.map +7 -0
  126. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelector.js +69 -21
  127. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelector.js.map +2 -2
  128. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelectorFloatingContext.js +52 -0
  129. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelectorFloatingContext.js.map +7 -0
  130. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelectorInteractions.js +145 -0
  131. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelectorInteractions.js.map +7 -0
  132. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelectorSizing.js +42 -0
  133. package/dist/esm/parts/DSPerPageSelector/config/usePerPageSelectorSizing.js.map +7 -0
  134. package/dist/esm/parts/DSPerPageSelector/constants/index.js +47 -8
  135. package/dist/esm/parts/DSPerPageSelector/constants/index.js.map +2 -2
  136. package/dist/esm/parts/DSPerPageSelector/parts/OptionRenderer.js +64 -0
  137. package/dist/esm/parts/DSPerPageSelector/parts/OptionRenderer.js.map +7 -0
  138. package/dist/esm/parts/DSPerPageSelector/parts/Panel.js +90 -0
  139. package/dist/esm/parts/DSPerPageSelector/parts/Panel.js.map +7 -0
  140. package/dist/esm/parts/DSPerPageSelector/parts/Trigger.js +65 -0
  141. package/dist/esm/parts/DSPerPageSelector/parts/Trigger.js.map +7 -0
  142. package/dist/esm/parts/DSPerPageSelector/react-desc-prop-types.js +19 -2
  143. package/dist/esm/parts/DSPerPageSelector/react-desc-prop-types.js.map +2 -2
  144. package/dist/esm/parts/DSPerPageSelector/styled.js +111 -33
  145. package/dist/esm/parts/DSPerPageSelector/styled.js.map +2 -2
  146. package/dist/esm/parts/DSPerPageSelector/typescript-testing/slots-props.js +10 -1
  147. package/dist/esm/parts/DSPerPageSelector/typescript-testing/slots-props.js.map +2 -2
  148. package/dist/esm/parts/DSPerPageSelector/typescript-testing/typescript-testing.js +60 -1
  149. package/dist/esm/parts/DSPerPageSelector/typescript-testing/typescript-testing.js.map +2 -2
  150. package/dist/esm/react-desc-prop-types.js.map +1 -1
  151. package/dist/types/parts/DSPageNextButton/config/usePageNextButton.d.ts +4 -4
  152. package/dist/types/parts/DSPagePrevButton/config/usePagePrevButton.d.ts +4 -4
  153. package/dist/types/parts/DSPaginationContainer/config/usePaginationContainer.d.ts +4 -4
  154. package/dist/types/parts/DSPaginationSeparator/config/usePaginationSeparator.d.ts +4 -4
  155. package/dist/types/parts/DSPaginator/DSPaginator.d.ts +5 -0
  156. package/dist/types/parts/DSPaginator/DSPaginatorCTX.d.ts +5 -0
  157. package/dist/types/parts/DSPaginator/config/getAmountOfPages.d.ts +1 -0
  158. package/dist/types/parts/DSPaginator/config/getInstanceIds.d.ts +3 -0
  159. package/dist/types/parts/DSPaginator/config/navigationKeys.d.ts +3 -0
  160. package/dist/types/parts/DSPaginator/config/useFocusTracker.d.ts +20 -0
  161. package/dist/types/parts/DSPaginator/config/usePaginator.d.ts +52 -18
  162. package/dist/types/parts/DSPaginator/config/usePaginatorFloatingContext.d.ts +31 -0
  163. package/dist/types/parts/DSPaginator/config/usePaginatorInteractions.d.ts +37 -0
  164. package/dist/types/parts/DSPaginator/config/usePaginatorSizing.d.ts +37 -0
  165. package/dist/types/parts/DSPaginator/constants/index.d.ts +36 -1
  166. package/dist/types/parts/DSPaginator/parts/OptionRenderer.d.ts +11 -0
  167. package/dist/types/parts/DSPaginator/parts/Panel.d.ts +5 -0
  168. package/dist/types/parts/DSPaginator/parts/Trigger.d.ts +5 -0
  169. package/dist/types/parts/DSPaginator/react-desc-prop-types.d.ts +17 -0
  170. package/dist/types/parts/DSPaginator/styled.d.ts +17 -4
  171. package/dist/types/parts/DSPerPageSelector/DSPerPageSelector.d.ts +5 -0
  172. package/dist/types/parts/DSPerPageSelector/DSPerPageSelectorCTX.d.ts +5 -0
  173. package/dist/types/parts/DSPerPageSelector/config/getInstanceIds.d.ts +3 -0
  174. package/dist/types/parts/DSPerPageSelector/config/getOptions.d.ts +3 -3
  175. package/dist/types/parts/DSPerPageSelector/config/getSelectedOptionIndex.d.ts +2 -0
  176. package/dist/types/parts/DSPerPageSelector/config/navigationKeys.d.ts +3 -0
  177. package/dist/types/parts/DSPerPageSelector/config/useFocusTracker.d.ts +22 -0
  178. package/dist/types/parts/DSPerPageSelector/config/usePerPageSelector.d.ts +43 -10
  179. package/dist/types/parts/DSPerPageSelector/config/usePerPageSelectorFloatingContext.d.ts +31 -0
  180. package/dist/types/parts/DSPerPageSelector/config/usePerPageSelectorInteractions.d.ts +38 -0
  181. package/dist/types/parts/DSPerPageSelector/config/usePerPageSelectorSizing.d.ts +25 -0
  182. package/dist/types/parts/DSPerPageSelector/constants/index.d.ts +32 -5
  183. package/dist/types/parts/DSPerPageSelector/parts/OptionRenderer.d.ts +11 -0
  184. package/dist/types/parts/DSPerPageSelector/parts/Panel.d.ts +5 -0
  185. package/dist/types/parts/DSPerPageSelector/parts/Trigger.d.ts +5 -0
  186. package/dist/types/parts/DSPerPageSelector/react-desc-prop-types.d.ts +27 -2
  187. package/dist/types/parts/DSPerPageSelector/styled.d.ts +15 -2
  188. package/dist/types/react-desc-prop-types.d.ts +2 -2
  189. package/package.json +15 -13
  190. package/dist/cjs/parts/DSPaginator/config/createPaginatorHeader.js.map +0 -7
  191. package/dist/cjs/parts/DSPaginator/config/getOptions.js +0 -76
  192. package/dist/cjs/parts/DSPaginator/config/getOptions.js.map +0 -7
  193. package/dist/cjs/parts/DSPaginator/config/usePaginationSearch.js.map +0 -7
  194. package/dist/esm/parts/DSPaginator/config/createPaginatorHeader.js +0 -24
  195. package/dist/esm/parts/DSPaginator/config/createPaginatorHeader.js.map +0 -7
  196. package/dist/esm/parts/DSPaginator/config/getOptions.js +0 -46
  197. package/dist/esm/parts/DSPaginator/config/getOptions.js.map +0 -7
  198. package/dist/esm/parts/DSPaginator/config/usePaginationSearch.js +0 -33
  199. package/dist/esm/parts/DSPaginator/config/usePaginationSearch.js.map +0 -7
  200. package/dist/types/parts/DSPaginator/config/createPaginatorHeader.d.ts +0 -9
  201. package/dist/types/parts/DSPaginator/config/getOptions.d.ts +0 -8
  202. package/dist/types/parts/DSPaginator/config/usePaginationSearch.d.ts +0 -1
@@ -31,7 +31,16 @@ __export(constants_exports, {
31
31
  DSPaginationName: () => import_constants.DSPaginationName,
32
32
  DSPaginatorName: () => DSPaginatorName,
33
33
  PAGINATOR_DATA_TESTID: () => PAGINATOR_DATA_TESTID,
34
- PAGINATOR_SLOTS: () => PAGINATOR_SLOTS
34
+ PAGINATOR_DEFAULT_LIST_WIDTH: () => PAGINATOR_DEFAULT_LIST_WIDTH,
35
+ PAGINATOR_HEADER_HEIGHT: () => PAGINATOR_HEADER_HEIGHT,
36
+ PAGINATOR_OPTION_HEIGHT: () => PAGINATOR_OPTION_HEIGHT,
37
+ PAGINATOR_PAGE_JUMP: () => PAGINATOR_PAGE_JUMP,
38
+ PAGINATOR_PANEL_MAX_HEIGHT: () => PAGINATOR_PANEL_MAX_HEIGHT,
39
+ PAGINATOR_PANEL_PADDING_BOTTOM: () => PAGINATOR_PANEL_PADDING_BOTTOM,
40
+ PAGINATOR_REGION_FOCUSES: () => PAGINATOR_REGION_FOCUSES,
41
+ PAGINATOR_SLOTS: () => PAGINATOR_SLOTS,
42
+ PAGINATOR_TYPEAHEAD_RESET_MS: () => PAGINATOR_TYPEAHEAD_RESET_MS,
43
+ PAGINATOR_VIEWPORT_MARGIN: () => PAGINATOR_VIEWPORT_MARGIN
35
44
  });
36
45
  module.exports = __toCommonJS(constants_exports);
37
46
  var React = __toESM(require("react"));
@@ -39,7 +48,44 @@ var import_ds_system = require("@elliemae/ds-system");
39
48
  var import_constants = require("../../../constants/index.js");
40
49
  const DSPaginatorName = "DSPaginator";
41
50
  const PAGINATOR_SLOTS = {
42
- PAGINATOR: "paginator"
51
+ PAGINATOR: "paginator",
52
+ // legacy ones...
53
+ TRIGGER_WRAPPER: "paginator-trigger-wrapper",
54
+ PAGE_INFO: "paginator-page-info",
55
+ FLOATING_WRAPPER: "paginator-floating-wrapper",
56
+ PANEL: "paginator-panel",
57
+ HEADER: "paginator-header",
58
+ LIST_WRAPPER: "paginator-list-wrapper",
59
+ LIST: "paginator-list",
60
+ OPTION: "paginator-option",
61
+ OPTION_CHECKMARK: "paginator-option-checkmark",
62
+ OPTION_PAGE: "paginator-option-page",
63
+ OPTION_DETAIL: "paginator-option-detail"
43
64
  };
44
- const PAGINATOR_DATA_TESTID = (0, import_ds_system.slotObjectToDataTestIds)(import_constants.DSPaginationName, PAGINATOR_SLOTS);
65
+ const PAGINATOR_DATA_TESTID = {
66
+ ...(0, import_ds_system.slotObjectToDataTestIds)(import_constants.DSPaginationName, PAGINATOR_SLOTS),
67
+ // legacy values of the DSDropdownMenuV2 the paginator used to render: the paginator is now its own widget but QA and
68
+ // consumers select on these, so they stay on the equivalent element — breaking change if removed
69
+ TRIGGER_WRAPPER: "dropdown-menu-trigger-wrapper",
70
+ // wraps the trigger
71
+ PANEL: "dropdown-menu-wrapper",
72
+ // wraps the header and the list (it used to be the focus holder of the open menu)
73
+ HEADER: "ds-dropdownmenu-header-wrapper",
74
+ LIST: "dropdown-menu-listbox",
75
+ OPTION: "ds-menu-item"
76
+ // one per page
77
+ };
78
+ const PAGINATOR_REGION_FOCUSES = {
79
+ RESET: "",
80
+ TRIGGER: "trigger",
81
+ OPTION_PREFIX: "option-"
82
+ };
83
+ const PAGINATOR_OPTION_HEIGHT = 32;
84
+ const PAGINATOR_PANEL_MAX_HEIGHT = 300;
85
+ const PAGINATOR_HEADER_HEIGHT = 17;
86
+ const PAGINATOR_PANEL_PADDING_BOTTOM = 4;
87
+ const PAGINATOR_DEFAULT_LIST_WIDTH = 280;
88
+ const PAGINATOR_VIEWPORT_MARGIN = 16;
89
+ const PAGINATOR_PAGE_JUMP = 10;
90
+ const PAGINATOR_TYPEAHEAD_RESET_MS = 1e3;
45
91
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/DSPaginator/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\nexport const DSPaginatorName = 'DSPaginator';\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PAGINATOR_SLOTS = {\n PAGINATOR: 'paginator',\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 PAGINATOR_DATA_TESTID = slotObjectToDataTestIds(DSPaginationName, PAGINATOR_SLOTS);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAAwC;AACxC,uBAAiC;AAG1B,MAAM,kBAAkB;AAGxB,MAAM,kBAAkB;AAAA,EAC7B,WAAW;AACb;AAGO,MAAM,4BAAwB,0CAAwB,mCAAkB,eAAe;",
4
+ "sourcesContent": ["import { slotObjectToDataTestIds } from '@elliemae/ds-system';\nimport { DSPaginationName } from '../../../constants/index.js';\nexport { DSPaginationName };\n\nexport const DSPaginatorName = 'DSPaginator';\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\n// the slots are owned by DSPagination (DSPaginationName): `paginator` is the legacy one (the trigger), the rest are new\nexport const PAGINATOR_SLOTS = {\n PAGINATOR: 'paginator', // legacy ones...\n TRIGGER_WRAPPER: 'paginator-trigger-wrapper',\n PAGE_INFO: 'paginator-page-info',\n FLOATING_WRAPPER: 'paginator-floating-wrapper',\n PANEL: 'paginator-panel',\n HEADER: 'paginator-header',\n LIST_WRAPPER: 'paginator-list-wrapper',\n LIST: 'paginator-list',\n OPTION: 'paginator-option',\n OPTION_CHECKMARK: 'paginator-option-checkmark',\n OPTION_PAGE: 'paginator-option-page',\n OPTION_DETAIL: 'paginator-option-detail',\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 PAGINATOR_DATA_TESTID = {\n ...slotObjectToDataTestIds(DSPaginationName, PAGINATOR_SLOTS),\n // legacy values of the DSDropdownMenuV2 the paginator used to render: the paginator is now its own widget but QA and\n // consumers select on these, so they stay on the equivalent element \u2014 breaking change if removed\n TRIGGER_WRAPPER: 'dropdown-menu-trigger-wrapper', // wraps the trigger\n PANEL: 'dropdown-menu-wrapper', // wraps the header and the list (it used to be the focus holder of the open menu)\n HEADER: 'ds-dropdownmenu-header-wrapper',\n LIST: 'dropdown-menu-listbox',\n OPTION: 'ds-menu-item', // one per page\n};\n\n// we are naming this with the ${component_name}_region_focuses convention to namespace & avoid errors on duplicate exports variables in aggregators\n// semantic identities of the focus tracker: never positional, an option is identified by the page it represents\nexport const PAGINATOR_REGION_FOCUSES = {\n RESET: '',\n TRIGGER: 'trigger',\n OPTION_PREFIX: 'option-',\n} as const;\n\n// the rows of the list are fixed height, the virtual list estimate and the panel height are derived from it\nexport const PAGINATOR_OPTION_HEIGHT = 32;\n// the max height of the whole panel (header + list), same as the existing DSPaginator (measured: header ~17px)\nexport const PAGINATOR_PANEL_MAX_HEIGHT = 300;\nexport const PAGINATOR_HEADER_HEIGHT = 17;\n// the previous DSDropdownMenuV2 wrapper always kept 4px of padding below the list, inside the same max height\nexport const PAGINATOR_PANEL_PADDING_BOTTOM = 4;\n// the width of the open list when there are page details: details wrap inside it instead of the list growing to the widest\n// one (that would need every detail rendered and measured up front). Overridable with the `listWidth` prop.\nexport const PAGINATOR_DEFAULT_LIST_WIDTH = 280;\n// the list never gets wider than the viewport minus this margin (reflow at high zoom levels)\nexport const PAGINATOR_VIEWPORT_MARGIN = 16;\n// APG listbox / select-only combobox: PageUp / PageDown move 10 options\nexport const PAGINATOR_PAGE_JUMP = 10;\n// digits typed within this window build a single page number (same value as the existing DSPaginator search)\nexport const PAGINATOR_TYPEAHEAD_RESET_MS = 1000;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAAwC;AACxC,uBAAiC;AAG1B,MAAM,kBAAkB;AAIxB,MAAM,kBAAkB;AAAA,EAC7B,WAAW;AAAA;AAAA,EACX,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,eAAe;AACjB;AAGO,MAAM,wBAAwB;AAAA,EACnC,OAAG,0CAAwB,mCAAkB,eAAe;AAAA;AAAA;AAAA,EAG5D,iBAAiB;AAAA;AAAA,EACjB,OAAO;AAAA;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA;AACV;AAIO,MAAM,2BAA2B;AAAA,EACtC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,eAAe;AACjB;AAGO,MAAM,0BAA0B;AAEhC,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAEhC,MAAM,iCAAiC;AAGvC,MAAM,+BAA+B;AAErC,MAAM,4BAA4B;AAElC,MAAM,sBAAsB;AAE5B,MAAM,+BAA+B;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,98 @@
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 OptionRenderer_exports = {};
30
+ __export(OptionRenderer_exports, {
31
+ OptionRenderer: () => OptionRenderer
32
+ });
33
+ module.exports = __toCommonJS(OptionRenderer_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_ds_icons = require("@elliemae/ds-icons");
37
+ var import_react = require("react");
38
+ var import_useFocusTracker = require("../config/useFocusTracker.js");
39
+ var import_constants = require("../constants/index.js");
40
+ var import_DSPaginatorCTX = require("../DSPaginatorCTX.js");
41
+ var import_styled = require("../styled.js");
42
+ const OptionRenderer = ({ index }) => {
43
+ const {
44
+ propsWithDefault: { pageIndex, pageDetails },
45
+ ownerPropsConfig: { getOwnerProps },
46
+ amountOfPages,
47
+ hasDetails,
48
+ chevronWidth,
49
+ pageInfoWidth,
50
+ focusTrackers: { focusRegion, trackFocusOption },
51
+ commitPage
52
+ } = (0, import_react.useContext)(import_DSPaginatorCTX.DSPaginatorContext);
53
+ const page = index + 1;
54
+ const isSelected = page === pageIndex;
55
+ const isFocusTarget = focusRegion === (0, import_useFocusTracker.getOptionRegionId)(page);
56
+ const handleRef = (0, import_react.useCallback)(
57
+ (node) => {
58
+ if (node && isFocusTarget) node.focus();
59
+ },
60
+ [isFocusTarget]
61
+ );
62
+ const handleFocus = (0, import_react.useCallback)(() => trackFocusOption(page), [page, trackFocusOption]);
63
+ const handleClick = (0, import_react.useCallback)(() => commitPage(page), [commitPage, page]);
64
+ const getOwnerPropsArguments = (0, import_react.useCallback)(() => ({ page, isSelected }), [page, isSelected]);
65
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
66
+ import_styled.StyledOption,
67
+ {
68
+ "data-testid": import_constants.PAGINATOR_DATA_TESTID.OPTION,
69
+ role: "option",
70
+ "aria-selected": isSelected,
71
+ "aria-setsize": amountOfPages,
72
+ "aria-posinset": page,
73
+ tabIndex: isFocusTarget ? 0 : -1,
74
+ innerRef: handleRef,
75
+ onFocus: handleFocus,
76
+ onClick: handleClick,
77
+ style: {
78
+ gridTemplateColumns: hasDetails ? `${chevronWidth}px ${pageInfoWidth + 16}px auto` : `${chevronWidth}px auto`
79
+ },
80
+ getOwnerProps,
81
+ getOwnerPropsArguments,
82
+ children: [
83
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
+ import_styled.StyledOptionCheckmark,
85
+ {
86
+ "aria-hidden": "true",
87
+ getOwnerProps,
88
+ getOwnerPropsArguments,
89
+ children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.Checkmark, { size: "s", color: ["brand-primary", "600"] }) : null
90
+ }
91
+ ),
92
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledOptionPage, { getOwnerProps, getOwnerPropsArguments, children: page }),
93
+ hasDetails ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledOptionDetail, { getOwnerProps, getOwnerPropsArguments, children: pageDetails[index] }) : null
94
+ ]
95
+ }
96
+ );
97
+ };
98
+ //# sourceMappingURL=OptionRenderer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/parts/DSPaginator/parts/OptionRenderer.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import { Checkmark } from '@elliemae/ds-icons';\nimport React, { useCallback, useContext } from 'react';\nimport { getOptionRegionId } from '../config/useFocusTracker.js';\nimport { PAGINATOR_DATA_TESTID } from '../constants/index.js';\nimport { DSPaginatorContext } from '../DSPaginatorCTX.js';\nimport { StyledOption, StyledOptionCheckmark, StyledOptionDetail, StyledOptionPage } from '../styled.js';\n\ntype OptionRendererPropsT = { index: number };\n\n/**\n * One page of the list. Rendered by the virtual list, so only the options near the viewport are mounted:\n * every position-dependent a11y fact (`aria-posinset`, `aria-setsize`) is explicit, and the focus lands on an option by\n * its page identity from the ref callback (see useFocusTracker), not by its place in the DOM.\n */\nexport const OptionRenderer = ({ index }: OptionRendererPropsT) => {\n const {\n propsWithDefault: { pageIndex, pageDetails },\n ownerPropsConfig: { getOwnerProps },\n amountOfPages,\n hasDetails,\n chevronWidth,\n pageInfoWidth,\n focusTrackers: { focusRegion, trackFocusOption },\n commitPage,\n } = useContext(DSPaginatorContext);\n\n const page = index + 1;\n const isSelected = page === pageIndex;\n const isFocusTarget = focusRegion === getOptionRegionId(page);\n\n const handleRef = useCallback(\n (node: HTMLDivElement | null) => {\n if (node && isFocusTarget) node.focus();\n },\n [isFocusTarget],\n );\n // the tracker follows the real focus, so a mouse or pointer interaction can't leave it pointing somewhere else\n const handleFocus = useCallback(() => trackFocusOption(page), [page, trackFocusOption]);\n const handleClick = useCallback(() => commitPage(page), [commitPage, page]);\n const getOwnerPropsArguments = useCallback(() => ({ page, isSelected }), [page, isSelected]);\n\n return (\n <StyledOption\n // legacy data-testid \u2014 preserved for QA/consumer compatibility, breaking change if removed\n data-testid={PAGINATOR_DATA_TESTID.OPTION}\n role=\"option\"\n aria-selected={isSelected}\n aria-setsize={amountOfPages}\n aria-posinset={page}\n // roving tabindex: the option that holds the focus is the single tab stop of the list\n tabIndex={isFocusTarget ? 0 : -1}\n innerRef={handleRef}\n onFocus={handleFocus}\n onClick={handleClick}\n // same columns as the header: [checkmark] [page] [detail]\n style={{\n gridTemplateColumns: hasDetails ? `${chevronWidth}px ${pageInfoWidth + 16}px auto` : `${chevronWidth}px auto`,\n }}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n {/* the selected state is conveyed by aria-selected, the icon is only visual */}\n <StyledOptionCheckmark\n aria-hidden=\"true\"\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n {isSelected ? <Checkmark size=\"s\" color={['brand-primary', '600']} /> : null}\n </StyledOptionCheckmark>\n <StyledOptionPage getOwnerProps={getOwnerProps} getOwnerPropsArguments={getOwnerPropsArguments}>\n {page}\n </StyledOptionPage>\n {hasDetails ? (\n <StyledOptionDetail getOwnerProps={getOwnerProps} getOwnerPropsArguments={getOwnerPropsArguments}>\n {pageDetails[index]}\n </StyledOptionDetail>\n ) : null}\n </StyledOption>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD0CnB;AA1CJ,sBAA0B;AAC1B,mBAA+C;AAC/C,6BAAkC;AAClC,uBAAsC;AACtC,4BAAmC;AACnC,oBAA0F;AASnF,MAAM,iBAAiB,CAAC,EAAE,MAAM,MAA4B;AACjE,QAAM;AAAA,IACJ,kBAAkB,EAAE,WAAW,YAAY;AAAA,IAC3C,kBAAkB,EAAE,cAAc;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,EAAE,aAAa,iBAAiB;AAAA,IAC/C;AAAA,EACF,QAAI,yBAAW,wCAAkB;AAEjC,QAAM,OAAO,QAAQ;AACrB,QAAM,aAAa,SAAS;AAC5B,QAAM,gBAAgB,oBAAgB,0CAAkB,IAAI;AAE5D,QAAM,gBAAY;AAAA,IAChB,CAAC,SAAgC;AAC/B,UAAI,QAAQ,cAAe,MAAK,MAAM;AAAA,IACxC;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,QAAM,kBAAc,0BAAY,MAAM,iBAAiB,IAAI,GAAG,CAAC,MAAM,gBAAgB,CAAC;AACtF,QAAM,kBAAc,0BAAY,MAAM,WAAW,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC;AAC1E,QAAM,6BAAyB,0BAAY,OAAO,EAAE,MAAM,WAAW,IAAI,CAAC,MAAM,UAAU,CAAC;AAE3F,SACE;AAAA,IAAC;AAAA;AAAA,MAEC,eAAa,uCAAsB;AAAA,MACnC,MAAK;AAAA,MACL,iBAAe;AAAA,MACf,gBAAc;AAAA,MACd,iBAAe;AAAA,MAEf,UAAU,gBAAgB,IAAI;AAAA,MAC9B,UAAU;AAAA,MACV,SAAS;AAAA,MACT,SAAS;AAAA,MAET,OAAO;AAAA,QACL,qBAAqB,aAAa,GAAG,YAAY,MAAM,gBAAgB,EAAE,YAAY,GAAG,YAAY;AAAA,MACtG;AAAA,MACA;AAAA,MACA;AAAA,MAGA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,eAAY;AAAA,YACZ;AAAA,YACA;AAAA,YAEC,uBAAa,4CAAC,6BAAU,MAAK,KAAI,OAAO,CAAC,iBAAiB,KAAK,GAAG,IAAK;AAAA;AAAA,QAC1E;AAAA,QACA,4CAAC,kCAAiB,eAA8B,wBAC7C,gBACH;AAAA,QACC,aACC,4CAAC,oCAAmB,eAA8B,wBAC/C,sBAAY,KAAK,GACpB,IACE;AAAA;AAAA;AAAA,EACN;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,131 @@
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 Panel_exports = {};
30
+ __export(Panel_exports, {
31
+ Panel: () => Panel
32
+ });
33
+ module.exports = __toCommonJS(Panel_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = require("react");
37
+ var import_DSPaginationSeparator = require("../../DSPaginationSeparator/index.js");
38
+ var import_constants = require("../constants/index.js");
39
+ var import_DSPaginatorCTX = require("../DSPaginatorCTX.js");
40
+ var import_styled = require("../styled.js");
41
+ var import_OptionRenderer = require("./OptionRenderer.js");
42
+ const getOptionId = (index) => index + 1;
43
+ const getEstimatedSize = () => import_constants.PAGINATOR_OPTION_HEIGHT;
44
+ const Panel = () => {
45
+ const {
46
+ propsWithDefault: { pageDetailsTitle },
47
+ ownerPropsConfig,
48
+ isOpen,
49
+ amountOfPages,
50
+ hasDetails,
51
+ chevronWidth,
52
+ pageInfoWidth,
53
+ panelStyle,
54
+ listMaxHeight,
55
+ floatingStyles,
56
+ floatingContext,
57
+ floatingInnerRef,
58
+ listActionRef,
59
+ handleListWrapperRef,
60
+ handlePanelKeyDown,
61
+ handlePanelKeyDownCapture,
62
+ handleBlurOutOfWidget,
63
+ headerId,
64
+ listId,
65
+ dialogId
66
+ } = (0, import_react.useContext)(import_DSPaginatorCTX.DSPaginatorContext);
67
+ const hasDetailsTitle = hasDetails && pageDetailsTitle !== "";
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
69
+ import_styled.StyledFloatingWrapper,
70
+ {
71
+ innerRef: floatingInnerRef,
72
+ isOpen,
73
+ floatingStyles,
74
+ context: floatingContext,
75
+ id: dialogId,
76
+ role: "dialog",
77
+ "aria-labelledby": headerId,
78
+ ...ownerPropsConfig,
79
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
80
+ import_styled.StyledPanel,
81
+ {
82
+ "data-testid": import_constants.PAGINATOR_DATA_TESTID.PANEL,
83
+ style: panelStyle,
84
+ onKeyDownCapture: handlePanelKeyDownCapture,
85
+ onKeyDown: handlePanelKeyDown,
86
+ onBlur: handleBlurOutOfWidget,
87
+ ...ownerPropsConfig,
88
+ children: [
89
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
90
+ import_styled.StyledHeader,
91
+ {
92
+ id: headerId,
93
+ "data-testid": import_constants.PAGINATOR_DATA_TESTID.HEADER,
94
+ cols: hasDetailsTitle ? [`${pageInfoWidth + chevronWidth + 34}px`, "8px", "auto"] : void 0,
95
+ ...ownerPropsConfig,
96
+ children: hasDetailsTitle ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
97
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { marginLeft: "8px" }, children: "Page" }),
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DSPaginationSeparator.DSPaginationSeparator, { height: "100%", ...ownerPropsConfig }),
99
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: pageDetailsTitle })
100
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "Page" })
101
+ }
102
+ ),
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledListWrapper, { innerRef: handleListWrapperRef, ...ownerPropsConfig, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
104
+ import_styled.StyledList,
105
+ {
106
+ dsFastlistWrapperList: {
107
+ role: "listbox",
108
+ id: listId,
109
+ "aria-labelledby": headerId,
110
+ // legacy data-testid — preserved for QA/consumer compatibility, breaking change if removed
111
+ "data-testid": import_constants.PAGINATOR_DATA_TESTID.LIST
112
+ },
113
+ dsFastlistItem: { role: "none" },
114
+ dsFastlistContainer: { style: { height: "auto", maxHeight: listMaxHeight } },
115
+ actionRef: listActionRef,
116
+ count: amountOfPages,
117
+ ItemRenderer: import_OptionRenderer.OptionRenderer,
118
+ getId: getOptionId,
119
+ estimateSize: getEstimatedSize,
120
+ remountOnCountChange: false,
121
+ ...ownerPropsConfig
122
+ }
123
+ ) })
124
+ ]
125
+ }
126
+ )
127
+ }
128
+ );
129
+ };
130
+ Panel.displayName = "DSPaginator.Panel";
131
+ //# sourceMappingURL=Panel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/parts/DSPaginator/parts/Panel.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React, { useContext } from 'react';\nimport { DSPaginationSeparator } from '../../DSPaginationSeparator/index.js';\nimport { PAGINATOR_DATA_TESTID, PAGINATOR_OPTION_HEIGHT } from '../constants/index.js';\nimport { DSPaginatorContext } from '../DSPaginatorCTX.js';\nimport { StyledFloatingWrapper, StyledHeader, StyledList, StyledListWrapper, StyledPanel } from '../styled.js';\nimport { OptionRenderer } from './OptionRenderer.js';\n\n// stable references: the virtual list reads them on every render\nconst getOptionId = (index: number) => index + 1;\nconst getEstimatedSize = () => PAGINATOR_OPTION_HEIGHT;\n\nexport const Panel = () => {\n const {\n propsWithDefault: { pageDetailsTitle },\n ownerPropsConfig,\n isOpen,\n amountOfPages,\n hasDetails,\n chevronWidth,\n pageInfoWidth,\n panelStyle,\n listMaxHeight,\n floatingStyles,\n floatingContext,\n floatingInnerRef,\n listActionRef,\n handleListWrapperRef,\n handlePanelKeyDown,\n handlePanelKeyDownCapture,\n handleBlurOutOfWidget,\n headerId,\n listId,\n dialogId,\n } = useContext(DSPaginatorContext);\n\n // same rule as the existing DSPaginator: the two column header only exists when there is a details title\n const hasDetailsTitle = hasDetails && pageDetailsTitle !== '';\n\n // the dialog (non-modal) and the list are named by the visible header, so what is announced is what is displayed\n return (\n <StyledFloatingWrapper\n innerRef={floatingInnerRef}\n isOpen={isOpen}\n floatingStyles={floatingStyles}\n context={floatingContext}\n id={dialogId}\n role=\"dialog\"\n aria-labelledby={headerId}\n {...ownerPropsConfig}\n >\n <StyledPanel\n // legacy data-testid \u2014 preserved for QA/consumer compatibility, breaking change if removed\n data-testid={PAGINATOR_DATA_TESTID.PANEL}\n style={panelStyle}\n onKeyDownCapture={handlePanelKeyDownCapture}\n onKeyDown={handlePanelKeyDown}\n onBlur={handleBlurOutOfWidget}\n {...ownerPropsConfig}\n >\n <StyledHeader\n id={headerId}\n // legacy data-testid \u2014 preserved for QA/consumer compatibility, breaking change if removed\n data-testid={PAGINATOR_DATA_TESTID.HEADER}\n cols={hasDetailsTitle ? [`${pageInfoWidth + chevronWidth + 34}px`, '8px', 'auto'] : undefined}\n {...ownerPropsConfig}\n >\n {hasDetailsTitle ? (\n <>\n <span style={{ marginLeft: '8px' }}>Page</span>\n <DSPaginationSeparator height=\"100%\" {...ownerPropsConfig} />\n <span>{pageDetailsTitle}</span>\n </>\n ) : (\n <span>Page</span>\n )}\n </StyledHeader>\n <StyledListWrapper innerRef={handleListWrapperRef} {...ownerPropsConfig}>\n <StyledList\n dsFastlistWrapperList={{\n role: 'listbox',\n id: listId,\n 'aria-labelledby': headerId,\n // legacy data-testid \u2014 preserved for QA/consumer compatibility, breaking change if removed\n 'data-testid': PAGINATOR_DATA_TESTID.LIST,\n }}\n // the rows are the options themselves (they carry role=\"option\"), the wrapper of the virtual list is inert\n dsFastlistItem={{ role: 'none' }}\n // rows can wrap, so the list is as tall as its rows up to a maximum (its own default is height: 100%)\n dsFastlistContainer={{ style: { height: 'auto', maxHeight: listMaxHeight } }}\n actionRef={listActionRef}\n count={amountOfPages}\n ItemRenderer={OptionRenderer}\n getId={getOptionId}\n estimateSize={getEstimatedSize}\n remountOnCountChange={false}\n {...ownerPropsConfig}\n />\n </StyledListWrapper>\n </StyledPanel>\n </StyledFloatingWrapper>\n );\n};\n\nPanel.displayName = 'DSPaginator.Panel';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADmEX;AAnEZ,mBAAkC;AAClC,mCAAsC;AACtC,uBAA+D;AAC/D,4BAAmC;AACnC,oBAAgG;AAChG,4BAA+B;AAG/B,MAAM,cAAc,CAAC,UAAkB,QAAQ;AAC/C,MAAM,mBAAmB,MAAM;AAExB,MAAM,QAAQ,MAAM;AACzB,QAAM;AAAA,IACJ,kBAAkB,EAAE,iBAAiB;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,wCAAkB;AAGjC,QAAM,kBAAkB,cAAc,qBAAqB;AAG3D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,mBAAiB;AAAA,MAChB,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UAEC,eAAa,uCAAsB;AAAA,UACnC,OAAO;AAAA,UACP,kBAAkB;AAAA,UAClB,WAAW;AAAA,UACX,QAAQ;AAAA,UACP,GAAG;AAAA,UAEJ;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,IAAI;AAAA,gBAEJ,eAAa,uCAAsB;AAAA,gBACnC,MAAM,kBAAkB,CAAC,GAAG,gBAAgB,eAAe,EAAE,MAAM,OAAO,MAAM,IAAI;AAAA,gBACnF,GAAG;AAAA,gBAEH,4BACC,4EACE;AAAA,8DAAC,UAAK,OAAO,EAAE,YAAY,MAAM,GAAG,kBAAI;AAAA,kBACxC,4CAAC,sDAAsB,QAAO,QAAQ,GAAG,kBAAkB;AAAA,kBAC3D,4CAAC,UAAM,4BAAiB;AAAA,mBAC1B,IAEA,4CAAC,UAAK,kBAAI;AAAA;AAAA,YAEd;AAAA,YACA,4CAAC,mCAAkB,UAAU,sBAAuB,GAAG,kBACrD;AAAA,cAAC;AAAA;AAAA,gBACC,uBAAuB;AAAA,kBACrB,MAAM;AAAA,kBACN,IAAI;AAAA,kBACJ,mBAAmB;AAAA;AAAA,kBAEnB,eAAe,uCAAsB;AAAA,gBACvC;AAAA,gBAEA,gBAAgB,EAAE,MAAM,OAAO;AAAA,gBAE/B,qBAAqB,EAAE,OAAO,EAAE,QAAQ,QAAQ,WAAW,cAAc,EAAE;AAAA,gBAC3E,WAAW;AAAA,gBACX,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd,sBAAsB;AAAA,gBACrB,GAAG;AAAA;AAAA,YACN,GACF;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAEA,MAAM,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,124 @@
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 Trigger_exports = {};
30
+ __export(Trigger_exports, {
31
+ Trigger: () => Trigger
32
+ });
33
+ module.exports = __toCommonJS(Trigger_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_ds_circular_progress_indicator = require("@elliemae/ds-circular-progress-indicator");
37
+ var import_ds_grid = require("@elliemae/ds-grid");
38
+ var import_ds_icons = require("@elliemae/ds-icons");
39
+ var import_ds_typography = require("@elliemae/ds-typography");
40
+ var import_react = require("react");
41
+ var import_DSPaginationSeparator = require("../../DSPaginationSeparator/index.js");
42
+ var import_constants = require("../constants/index.js");
43
+ var import_DSPaginatorCTX = require("../DSPaginatorCTX.js");
44
+ var import_styled = require("../styled.js");
45
+ const Trigger = () => {
46
+ const {
47
+ propsWithDefault: { pageIndex, pageCount, isLoadingPageCount, pageDetails },
48
+ xstyledProps,
49
+ globalAttributes,
50
+ ownerPropsConfig,
51
+ isOpen,
52
+ hasDetails,
53
+ focusTrackers: { focusRegion },
54
+ chevronRef,
55
+ pageInfoRef,
56
+ detailMaxWidth,
57
+ handleTriggerRef,
58
+ handleTriggerClick,
59
+ handleTriggerKeyDown,
60
+ handleBlurOutOfWidget,
61
+ dialogId
62
+ } = (0, import_react.useContext)(import_DSPaginatorCTX.DSPaginatorContext);
63
+ const isFocusTarget = focusRegion === import_constants.PAGINATOR_REGION_FOCUSES.TRIGGER;
64
+ const handleRef = (0, import_react.useCallback)(
65
+ (node) => {
66
+ handleTriggerRef(node);
67
+ if (node && isFocusTarget) node.focus();
68
+ },
69
+ [handleTriggerRef, isFocusTarget]
70
+ );
71
+ const currentDetail = hasDetails ? pageDetails[pageIndex - 1] : "";
72
+ const accessibleName = `Page ${pageIndex} out of ${pageCount}${currentDetail ? `, ${currentDetail}` : ""}`;
73
+ return (
74
+ // legacy data-testid (the wrapper of the DSDropdownMenuV2 trigger) — preserved for QA/consumer compatibility, breaking change if removed
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledTriggerWrapper, { "data-testid": import_constants.PAGINATOR_DATA_TESTID.TRIGGER_WRAPPER, ...ownerPropsConfig, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
+ import_styled.StyledTrigger,
77
+ {
78
+ buttonType: "raw",
79
+ disabled: isLoadingPageCount,
80
+ innerRef: handleRef,
81
+ "aria-haspopup": "dialog",
82
+ "aria-expanded": isOpen,
83
+ "aria-controls": isOpen ? dialogId : void 0,
84
+ "aria-label": accessibleName,
85
+ "data-testid": import_constants.PAGINATOR_DATA_TESTID.PAGINATOR,
86
+ ...globalAttributes,
87
+ ...xstyledProps,
88
+ ...ownerPropsConfig,
89
+ onClick: handleTriggerClick,
90
+ onKeyDown: handleTriggerKeyDown,
91
+ onBlur: handleBlurOutOfWidget,
92
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ds_grid.Grid, { gutter: "xxxs", alignItems: "center", style: { gridAutoFlow: "column" }, children: [
93
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_styled.StyledPageInfo, { innerRef: pageInfoRef, ...ownerPropsConfig, children: [
94
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_typography.DSTypography, { id: "typography-page-index", variant: "b1", as: "span", fontWeight: "semibold", textAlign: "start", children: pageIndex }),
95
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ds_typography.DSTypography, { className: "typography-page-info-and-detail", variant: "b1", as: "span", children: [
96
+ "/ ",
97
+ pageCount
98
+ ] })
99
+ ] }),
100
+ isLoadingPageCount && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_circular_progress_indicator.DSCircularIndeterminateIndicator, { ml: "xxxs", mr: "xxxs", size: "xs" }),
101
+ hasDetails && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
102
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DSPaginationSeparator.DSPaginationSeparator, { height: "12px", ml: "12px", mr: "xxxs", ...ownerPropsConfig }),
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
104
+ import_ds_typography.DSTypography,
105
+ {
106
+ className: "typography-page-info-and-detail typography-paginator-detail",
107
+ style: { maxWidth: detailMaxWidth },
108
+ mr: "xxs",
109
+ variant: "b1",
110
+ as: "span",
111
+ fontWeight: "semibold",
112
+ textAlign: "start",
113
+ children: currentDetail
114
+ }
115
+ )
116
+ ] }),
117
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronDown, { ml: "xxxs", color: ["brand-primary", "700"], innerRef: chevronRef })
118
+ ] })
119
+ }
120
+ ) })
121
+ );
122
+ };
123
+ Trigger.displayName = "DSPaginator.Trigger";
124
+ //# sourceMappingURL=Trigger.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/parts/DSPaginator/parts/Trigger.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import { DSCircularIndeterminateIndicator } from '@elliemae/ds-circular-progress-indicator';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ChevronDown } from '@elliemae/ds-icons';\nimport { DSTypography } from '@elliemae/ds-typography';\nimport React, { useCallback, useContext } from 'react';\nimport { DSPaginationSeparator } from '../../DSPaginationSeparator/index.js';\nimport { PAGINATOR_DATA_TESTID, PAGINATOR_REGION_FOCUSES } from '../constants/index.js';\nimport { DSPaginatorContext } from '../DSPaginatorCTX.js';\nimport { StyledPageInfo, StyledTrigger, StyledTriggerWrapper } from '../styled.js';\n\nexport const Trigger = () => {\n const {\n propsWithDefault: { pageIndex, pageCount, isLoadingPageCount, pageDetails },\n xstyledProps,\n globalAttributes,\n ownerPropsConfig,\n isOpen,\n hasDetails,\n focusTrackers: { focusRegion },\n chevronRef,\n pageInfoRef,\n detailMaxWidth,\n handleTriggerRef,\n handleTriggerClick,\n handleTriggerKeyDown,\n handleBlurOutOfWidget,\n dialogId,\n } = useContext(DSPaginatorContext);\n\n // focus tracker: the trigger focuses itself when it is the declared target (e.g. after an option was activated)\n const isFocusTarget = focusRegion === PAGINATOR_REGION_FOCUSES.TRIGGER;\n const handleRef = useCallback(\n (node: HTMLButtonElement | null) => {\n handleTriggerRef(node);\n if (node && isFocusTarget) node.focus();\n },\n [handleTriggerRef, isFocusTarget],\n );\n\n const currentDetail = hasDetails ? pageDetails[pageIndex - 1] : '';\n const accessibleName = `Page ${pageIndex} out of ${pageCount}${currentDetail ? `, ${currentDetail}` : ''}`;\n\n return (\n // legacy data-testid (the wrapper of the DSDropdownMenuV2 trigger) \u2014 preserved for QA/consumer compatibility, breaking change if removed\n <StyledTriggerWrapper data-testid={PAGINATOR_DATA_TESTID.TRIGGER_WRAPPER} {...ownerPropsConfig}>\n <StyledTrigger\n buttonType=\"raw\"\n disabled={isLoadingPageCount}\n innerRef={handleRef}\n // the trigger owns a non-modal dialog (that hosts the list of pages): it is not a toggle button, so no aria-pressed\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? dialogId : undefined}\n aria-label={accessibleName}\n // legacy data-testid \u2014 preserved for QA/consumer compatibility, breaking change if removed\n data-testid={PAGINATOR_DATA_TESTID.PAGINATOR}\n {...globalAttributes}\n {...xstyledProps}\n {...ownerPropsConfig}\n onClick={handleTriggerClick}\n onKeyDown={handleTriggerKeyDown}\n onBlur={handleBlurOutOfWidget}\n >\n <Grid gutter=\"xxxs\" alignItems=\"center\" style={{ gridAutoFlow: 'column' }}>\n <StyledPageInfo innerRef={pageInfoRef} {...ownerPropsConfig}>\n <DSTypography id=\"typography-page-index\" variant=\"b1\" as=\"span\" fontWeight=\"semibold\" textAlign=\"start\">\n {pageIndex}\n </DSTypography>\n <DSTypography className=\"typography-page-info-and-detail\" variant=\"b1\" as=\"span\">\n / {pageCount}\n </DSTypography>\n </StyledPageInfo>\n {isLoadingPageCount && <DSCircularIndeterminateIndicator ml=\"xxxs\" mr=\"xxxs\" size=\"xs\" />}\n {hasDetails && (\n <>\n <DSPaginationSeparator height=\"12px\" ml=\"12px\" mr=\"xxxs\" {...ownerPropsConfig} />\n <DSTypography\n className=\"typography-page-info-and-detail typography-paginator-detail\"\n // the detail wraps when it reaches the list width; the trigger follows the detail of the current page\n style={{ maxWidth: detailMaxWidth }}\n mr=\"xxs\"\n variant=\"b1\"\n as=\"span\"\n fontWeight=\"semibold\"\n textAlign=\"start\"\n >\n {currentDetail}\n </DSTypography>\n </>\n )}\n <ChevronDown ml=\"xxxs\" color={['brand-primary', '700']} innerRef={chevronRef} />\n </Grid>\n </StyledTrigger>\n </StyledTriggerWrapper>\n );\n};\n\nTrigger.displayName = 'DSPaginator.Trigger';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADiEX;AAjEZ,4CAAiD;AACjD,qBAAqB;AACrB,sBAA4B;AAC5B,2BAA6B;AAC7B,mBAA+C;AAC/C,mCAAsC;AACtC,uBAAgE;AAChE,4BAAmC;AACnC,oBAAoE;AAE7D,MAAM,UAAU,MAAM;AAC3B,QAAM;AAAA,IACJ,kBAAkB,EAAE,WAAW,WAAW,oBAAoB,YAAY;AAAA,IAC1E;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,EAAE,YAAY;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,wCAAkB;AAGjC,QAAM,gBAAgB,gBAAgB,0CAAyB;AAC/D,QAAM,gBAAY;AAAA,IAChB,CAAC,SAAmC;AAClC,uBAAiB,IAAI;AACrB,UAAI,QAAQ,cAAe,MAAK,MAAM;AAAA,IACxC;AAAA,IACA,CAAC,kBAAkB,aAAa;AAAA,EAClC;AAEA,QAAM,gBAAgB,aAAa,YAAY,YAAY,CAAC,IAAI;AAChE,QAAM,iBAAiB,QAAQ,SAAS,WAAW,SAAS,GAAG,gBAAgB,KAAK,aAAa,KAAK,EAAE;AAExG;AAAA;AAAA,IAEE,4CAAC,sCAAqB,eAAa,uCAAsB,iBAAkB,GAAG,kBAC5E;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,UAAU;AAAA,QACV,UAAU;AAAA,QAEV,iBAAc;AAAA,QACd,iBAAe;AAAA,QACf,iBAAe,SAAS,WAAW;AAAA,QACnC,cAAY;AAAA,QAEZ,eAAa,uCAAsB;AAAA,QAClC,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,WAAW;AAAA,QACX,QAAQ;AAAA,QAER,uDAAC,uBAAK,QAAO,QAAO,YAAW,UAAS,OAAO,EAAE,cAAc,SAAS,GACtE;AAAA,uDAAC,gCAAe,UAAU,aAAc,GAAG,kBACzC;AAAA,wDAAC,qCAAa,IAAG,yBAAwB,SAAQ,MAAK,IAAG,QAAO,YAAW,YAAW,WAAU,SAC7F,qBACH;AAAA,YACA,6CAAC,qCAAa,WAAU,mCAAkC,SAAQ,MAAK,IAAG,QAAO;AAAA;AAAA,cAC5E;AAAA,eACL;AAAA,aACF;AAAA,UACC,sBAAsB,4CAAC,0EAAiC,IAAG,QAAO,IAAG,QAAO,MAAK,MAAK;AAAA,UACtF,cACC,4EACE;AAAA,wDAAC,sDAAsB,QAAO,QAAO,IAAG,QAAO,IAAG,QAAQ,GAAG,kBAAkB;AAAA,YAC/E;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBAEV,OAAO,EAAE,UAAU,eAAe;AAAA,gBAClC,IAAG;AAAA,gBACH,SAAQ;AAAA,gBACR,IAAG;AAAA,gBACH,YAAW;AAAA,gBACX,WAAU;AAAA,gBAET;AAAA;AAAA,YACH;AAAA,aACF;AAAA,UAEF,4CAAC,+BAAY,IAAG,QAAO,OAAO,CAAC,iBAAiB,KAAK,GAAG,UAAU,YAAY;AAAA,WAChF;AAAA;AAAA,IACF,GACF;AAAA;AAEJ;AAEA,QAAQ,cAAc;",
6
+ "names": []
7
+ }
@@ -50,9 +50,14 @@ const DSPaginatorPropTypes = {
50
50
  ...import_ds_props_helpers.xstyledPropTypes,
51
51
  pageIndex: import_ds_props_helpers.PropTypes.number.description("Index of the current page, starting from 1").defaultValue(1),
52
52
  pageCount: import_ds_props_helpers.PropTypes.oneOfType([import_ds_props_helpers.PropTypes.string, import_ds_props_helpers.PropTypes.number]).description("How many pages are there"),
53
- onPageChange: import_ds_props_helpers.PropTypes.func.description("Function invoked when the page changes").defaultValue(() => null),
53
+ onPageChange: import_ds_props_helpers.PropTypes.func.description(
54
+ "Function invoked when the user commits a different page (Enter, Space, click, or Tab out of the list). Moving through the options with the arrow keys does NOT invoke it"
55
+ ).defaultValue(() => null),
54
56
  isLoadingPageCount: import_ds_props_helpers.PropTypes.bool.description("Whether the page count is loading or not").defaultValue(false),
55
57
  pageDetails: import_ds_props_helpers.PropTypes.arrayOf(import_ds_props_helpers.PropTypes.string).description("Details to provide for each page").defaultValue([]),
58
+ listWidth: import_ds_props_helpers.PropTypes.oneOfType([import_ds_props_helpers.PropTypes.number, import_ds_props_helpers.PropTypes.string]).description(
59
+ "Width of the open list (a number is px, a string is any CSS length). Details wrap inside it; it is never wider than the viewport. Default: 280px with pageDetails; without them the list is as wide as its page numbers need"
60
+ ),
56
61
  pageDetailsTitle: import_ds_props_helpers.PropTypes.string.description("The title of the details (usually a column of your dataset)").defaultValue("")
57
62
  };
58
63
  const DSPaginatorPropTypesSchema = DSPaginatorPropTypes;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/DSPaginator/react-desc-prop-types.ts", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import 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, PAGINATOR_SLOTS } from './constants/index.js';\n\nexport declare namespace DSPaginatorT {\n export type SlotFunctionArguments = {\n dsPaginationPaginator: () => object;\n };\n export interface RequiredProps {}\n\n export interface DefaultProps {\n pageCount: number | string;\n isLoadingPageCount: boolean;\n pageIndex: number;\n onPageChange: (page: number) => void;\n pageDetails: string[] | readonly string[];\n pageDetailsTitle: string;\n }\n\n export interface OptionalProps extends TypescriptHelpersT.PropsForGlobalOnSlots<\n typeof DSPaginationName,\n typeof PAGINATOR_SLOTS\n > {}\n export interface Props\n extends\n Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends\n DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSPaginatorT.DefaultProps = {\n pageCount: 0,\n isLoadingPageCount: false,\n pageIndex: 1,\n onPageChange: () => null,\n pageDetails: [],\n pageDetailsTitle: '',\n};\n\nexport const DSPaginatorPropTypes: DSPropTypesSchema<DSPaginatorT.Props> = {\n ...getPropsPerSlotPropTypes(DSPaginationName, PAGINATOR_SLOTS),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n pageIndex: PropTypes.number.description('Index of the current page, starting from 1').defaultValue(1),\n pageCount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('How many pages are there'),\n onPageChange: PropTypes.func.description('Function invoked when the page changes').defaultValue(() => null),\n isLoadingPageCount: PropTypes.bool.description('Whether the page count is loading or not').defaultValue(false),\n pageDetails: PropTypes.arrayOf(PropTypes.string).description('Details to provide for each page').defaultValue([]),\n pageDetailsTitle: PropTypes.string\n .description('The title of the details (usually a column of your dataset)')\n .defaultValue(''),\n};\n\nexport const DSPaginatorPropTypesSchema = DSPaginatorPropTypes as unknown as ValidationMap<DSPaginatorT.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,8BAKO;AAEP,uBAAkD;AAsC3C,MAAM,eAA0C;AAAA,EACrD,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX,cAAc,MAAM;AAAA,EACpB,aAAa,CAAC;AAAA,EACd,kBAAkB;AACpB;AAEO,MAAM,uBAA8D;AAAA,EACzE,OAAG,kDAAyB,mCAAkB,gCAAe;AAAA,EAC7D,GAAG;AAAA,EACH,GAAG;AAAA,EACH,WAAW,kCAAU,OAAO,YAAY,4CAA4C,EAAE,aAAa,CAAC;AAAA,EACpG,WAAW,kCAAU,UAAU,CAAC,kCAAU,QAAQ,kCAAU,MAAM,CAAC,EAAE,YAAY,0BAA0B;AAAA,EAC3G,cAAc,kCAAU,KAAK,YAAY,wCAAwC,EAAE,aAAa,MAAM,IAAI;AAAA,EAC1G,oBAAoB,kCAAU,KAAK,YAAY,0CAA0C,EAAE,aAAa,KAAK;AAAA,EAC7G,aAAa,kCAAU,QAAQ,kCAAU,MAAM,EAAE,YAAY,kCAAkC,EAAE,aAAa,CAAC,CAAC;AAAA,EAChH,kBAAkB,kCAAU,OACzB,YAAY,6DAA6D,EACzE,aAAa,EAAE;AACpB;AAEO,MAAM,6BAA6B;",
4
+ "sourcesContent": ["import 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, PAGINATOR_SLOTS } from './constants/index.js';\n\nexport declare namespace DSPaginatorT {\n export type SlotFunctionArguments = {\n dsPaginationPaginator: () => object;\n dsPaginationPaginatorTriggerWrapper: () => object;\n dsPaginationPaginatorPageInfo: () => object;\n dsPaginationPaginatorFloatingWrapper: () => object;\n dsPaginationPaginatorPanel: () => object;\n dsPaginationPaginatorHeader: () => object;\n dsPaginationPaginatorListWrapper: () => object;\n dsPaginationPaginatorList: () => object;\n dsPaginationPaginatorOption: () => object;\n dsPaginationPaginatorOptionCheckmark: () => object;\n dsPaginationPaginatorOptionPage: () => object;\n dsPaginationPaginatorOptionDetail: () => object;\n };\n export interface RequiredProps {}\n\n export interface DefaultProps {\n pageCount: number | string;\n isLoadingPageCount: boolean;\n pageIndex: number;\n onPageChange: (page: number) => void;\n pageDetails: string[] | readonly string[];\n pageDetailsTitle: string;\n }\n\n export interface OptionalProps extends TypescriptHelpersT.PropsForGlobalOnSlots<\n typeof DSPaginationName,\n typeof PAGINATOR_SLOTS\n > {\n /**\n * Width of the open list (a number is px, a string is any CSS length) when the paginator has `pageDetails`: the details\n * wrap inside it. The list is never wider than the viewport. Default: 280px. Without `pageDetails` the list is as wide\n * as its page numbers need, unless this is passed.\n */\n listWidth?: number | string;\n }\n export interface Props\n extends\n Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends\n DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSPaginatorT.DefaultProps = {\n pageCount: 0,\n isLoadingPageCount: false,\n pageIndex: 1,\n onPageChange: () => null,\n pageDetails: [],\n pageDetailsTitle: '',\n};\n\nexport const DSPaginatorPropTypes: DSPropTypesSchema<DSPaginatorT.Props> = {\n ...getPropsPerSlotPropTypes(DSPaginationName, PAGINATOR_SLOTS),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n pageIndex: PropTypes.number.description('Index of the current page, starting from 1').defaultValue(1),\n pageCount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('How many pages are there'),\n onPageChange: PropTypes.func\n .description(\n 'Function invoked when the user commits a different page (Enter, Space, click, or Tab out of the list). Moving through the options with the arrow keys does NOT invoke it',\n )\n .defaultValue(() => null),\n isLoadingPageCount: PropTypes.bool.description('Whether the page count is loading or not').defaultValue(false),\n pageDetails: PropTypes.arrayOf(PropTypes.string).description('Details to provide for each page').defaultValue([]),\n listWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).description(\n 'Width of the open list (a number is px, a string is any CSS length). Details wrap inside it; it is never wider than the viewport. Default: 280px with pageDetails; without them the list is as wide as its page numbers need',\n ),\n pageDetailsTitle: PropTypes.string\n .description('The title of the details (usually a column of your dataset)')\n .defaultValue(''),\n};\n\nexport const DSPaginatorPropTypesSchema = DSPaginatorPropTypes as unknown as ValidationMap<DSPaginatorT.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,8BAKO;AAEP,uBAAkD;AAwD3C,MAAM,eAA0C;AAAA,EACrD,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX,cAAc,MAAM;AAAA,EACpB,aAAa,CAAC;AAAA,EACd,kBAAkB;AACpB;AAEO,MAAM,uBAA8D;AAAA,EACzE,OAAG,kDAAyB,mCAAkB,gCAAe;AAAA,EAC7D,GAAG;AAAA,EACH,GAAG;AAAA,EACH,WAAW,kCAAU,OAAO,YAAY,4CAA4C,EAAE,aAAa,CAAC;AAAA,EACpG,WAAW,kCAAU,UAAU,CAAC,kCAAU,QAAQ,kCAAU,MAAM,CAAC,EAAE,YAAY,0BAA0B;AAAA,EAC3G,cAAc,kCAAU,KACrB;AAAA,IACC;AAAA,EACF,EACC,aAAa,MAAM,IAAI;AAAA,EAC1B,oBAAoB,kCAAU,KAAK,YAAY,0CAA0C,EAAE,aAAa,KAAK;AAAA,EAC7G,aAAa,kCAAU,QAAQ,kCAAU,MAAM,EAAE,YAAY,kCAAkC,EAAE,aAAa,CAAC,CAAC;AAAA,EAChH,WAAW,kCAAU,UAAU,CAAC,kCAAU,QAAQ,kCAAU,MAAM,CAAC,EAAE;AAAA,IACnE;AAAA,EACF;AAAA,EACA,kBAAkB,kCAAU,OACzB,YAAY,6DAA6D,EACzE,aAAa,EAAE;AACpB;AAEO,MAAM,6BAA6B;",
6
6
  "names": []
7
7
  }