@codefast/ui 0.3.9 → 0.3.10

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 (245) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/components/accordion.cjs +97 -1
  3. package/dist/components/accordion.d.ts +4 -4
  4. package/dist/components/accordion.js +51 -1
  5. package/dist/components/alert-dialog.cjs +155 -1
  6. package/dist/components/alert-dialog.d.ts +11 -11
  7. package/dist/components/alert-dialog.js +94 -1
  8. package/dist/components/alert.cjs +84 -1
  9. package/dist/components/alert.d.ts +5 -5
  10. package/dist/components/alert.js +41 -1
  11. package/dist/components/aspect-ratio.cjs +43 -1
  12. package/dist/components/aspect-ratio.d.ts +2 -2
  13. package/dist/components/aspect-ratio.js +9 -1
  14. package/dist/components/avatar.cjs +65 -1
  15. package/dist/components/avatar.d.ts +2 -2
  16. package/dist/components/avatar.js +25 -1
  17. package/dist/components/badge.cjs +66 -1
  18. package/dist/components/badge.d.ts +3 -3
  19. package/dist/components/badge.js +29 -1
  20. package/dist/components/breadcrumb.cjs +126 -1
  21. package/dist/components/breadcrumb.d.ts +8 -8
  22. package/dist/components/breadcrumb.js +74 -1
  23. package/dist/components/button-group.cjs +86 -1
  24. package/dist/components/button-group.d.ts +5 -5
  25. package/dist/components/button-group.js +43 -1
  26. package/dist/components/button.cjs +92 -1
  27. package/dist/components/button.d.ts +6 -6
  28. package/dist/components/button.js +55 -1
  29. package/dist/components/calendar.cjs +150 -1
  30. package/dist/components/calendar.d.ts +12 -19
  31. package/dist/components/calendar.js +113 -1
  32. package/dist/components/card.cjs +105 -1
  33. package/dist/components/card.d.ts +8 -8
  34. package/dist/components/card.js +53 -1
  35. package/dist/components/carousel.cjs +210 -1
  36. package/dist/components/carousel.d.ts +10 -10
  37. package/dist/components/carousel.js +151 -1
  38. package/dist/components/chart.cjs +250 -3
  39. package/dist/components/chart.d.ts +9 -9
  40. package/dist/components/chart.js +198 -3
  41. package/dist/components/checkbox-cards.cjs +69 -1
  42. package/dist/components/checkbox-cards.d.ts +2 -2
  43. package/dist/components/checkbox-cards.js +32 -1
  44. package/dist/components/checkbox-group.cjs +63 -1
  45. package/dist/components/checkbox-group.d.ts +2 -2
  46. package/dist/components/checkbox-group.js +26 -1
  47. package/dist/components/checkbox.cjs +53 -1
  48. package/dist/components/checkbox.d.ts +2 -2
  49. package/dist/components/checkbox.js +19 -1
  50. package/dist/components/collapsible.cjs +61 -1
  51. package/dist/components/collapsible.d.ts +2 -2
  52. package/dist/components/collapsible.js +21 -1
  53. package/dist/components/command.cjs +167 -1
  54. package/dist/components/command.d.ts +4 -4
  55. package/dist/components/command.js +106 -1
  56. package/dist/components/context-menu.cjs +218 -1
  57. package/dist/components/context-menu.d.ts +4 -4
  58. package/dist/components/context-menu.js +142 -1
  59. package/dist/components/dialog.cjs +164 -1
  60. package/dist/components/dialog.d.ts +10 -10
  61. package/dist/components/dialog.js +106 -1
  62. package/dist/components/drawer.cjs +143 -1
  63. package/dist/components/drawer.d.ts +9 -9
  64. package/dist/components/drawer.js +85 -1
  65. package/dist/components/dropdown-menu.cjs +221 -1
  66. package/dist/components/dropdown-menu.d.ts +4 -4
  67. package/dist/components/dropdown-menu.js +145 -1
  68. package/dist/components/empty.cjs +113 -1
  69. package/dist/components/empty.d.ts +9 -9
  70. package/dist/components/empty.js +61 -1
  71. package/dist/components/field.cjs +193 -1
  72. package/dist/components/field.d.ts +14 -14
  73. package/dist/components/field.js +129 -1
  74. package/dist/components/form.cjs +151 -1
  75. package/dist/components/form.d.ts +10 -10
  76. package/dist/components/form.js +96 -1
  77. package/dist/components/hover-card.cjs +77 -1
  78. package/dist/components/hover-card.d.ts +2 -2
  79. package/dist/components/hover-card.js +34 -1
  80. package/dist/components/input-group.cjs +155 -1
  81. package/dist/components/input-group.d.ts +15 -15
  82. package/dist/components/input-group.js +97 -1
  83. package/dist/components/input-number.cjs +98 -1
  84. package/dist/components/input-number.d.ts +2 -2
  85. package/dist/components/input-number.js +64 -1
  86. package/dist/components/input-otp.cjs +101 -1
  87. package/dist/components/input-otp.d.ts +6 -6
  88. package/dist/components/input-otp.js +49 -1
  89. package/dist/components/input-password.cjs +71 -1
  90. package/dist/components/input-password.d.ts +3 -3
  91. package/dist/components/input-password.js +37 -1
  92. package/dist/components/input-search.cjs +80 -1
  93. package/dist/components/input-search.d.ts +3 -3
  94. package/dist/components/input-search.js +46 -1
  95. package/dist/components/input.cjs +45 -1
  96. package/dist/components/input.d.ts +2 -2
  97. package/dist/components/input.js +11 -1
  98. package/dist/components/item.cjs +186 -1
  99. package/dist/components/item.d.ts +12 -12
  100. package/dist/components/item.js +119 -1
  101. package/dist/components/kbd.cjs +54 -1
  102. package/dist/components/kbd.d.ts +3 -3
  103. package/dist/components/kbd.js +17 -1
  104. package/dist/components/label.cjs +45 -1
  105. package/dist/components/label.d.ts +2 -2
  106. package/dist/components/label.js +11 -1
  107. package/dist/components/menubar.cjs +232 -1
  108. package/dist/components/menubar.d.ts +4 -4
  109. package/dist/components/menubar.js +153 -1
  110. package/dist/components/native-select.cjs +75 -1
  111. package/dist/components/native-select.d.ts +4 -4
  112. package/dist/components/native-select.js +35 -1
  113. package/dist/components/navigation-menu.cjs +146 -2
  114. package/dist/components/navigation-menu.d.ts +2 -2
  115. package/dist/components/navigation-menu.js +94 -2
  116. package/dist/components/pagination.cjs +138 -1
  117. package/dist/components/pagination.d.ts +10 -10
  118. package/dist/components/pagination.js +86 -1
  119. package/dist/components/popover.cjs +86 -1
  120. package/dist/components/popover.d.ts +3 -3
  121. package/dist/components/popover.js +40 -1
  122. package/dist/components/progress-circle.cjs +184 -1
  123. package/dist/components/progress-circle.d.ts +5 -5
  124. package/dist/components/progress-circle.js +147 -1
  125. package/dist/components/progress.cjs +52 -1
  126. package/dist/components/progress.d.ts +2 -2
  127. package/dist/components/progress.js +18 -1
  128. package/dist/components/radio-cards.cjs +66 -1
  129. package/dist/components/radio-cards.d.ts +2 -2
  130. package/dist/components/radio-cards.js +29 -1
  131. package/dist/components/radio-group.cjs +59 -1
  132. package/dist/components/radio-group.d.ts +2 -2
  133. package/dist/components/radio-group.js +22 -1
  134. package/dist/components/radio.cjs +47 -1
  135. package/dist/components/radio.d.ts +2 -2
  136. package/dist/components/radio.js +13 -1
  137. package/dist/components/resizable.cjs +71 -1
  138. package/dist/components/resizable.d.ts +8 -8
  139. package/dist/components/resizable.js +31 -1
  140. package/dist/components/scroll-area.cjs +140 -1
  141. package/dist/components/scroll-area.d.ts +5 -5
  142. package/dist/components/scroll-area.js +100 -1
  143. package/dist/components/select.cjs +180 -1
  144. package/dist/components/select.d.ts +5 -5
  145. package/dist/components/select.js +119 -1
  146. package/dist/components/separator.cjs +82 -1
  147. package/dist/components/separator.d.ts +5 -5
  148. package/dist/components/separator.js +42 -1
  149. package/dist/components/sheet.cjs +184 -1
  150. package/dist/components/sheet.d.ts +9 -9
  151. package/dist/components/sheet.js +123 -1
  152. package/dist/components/sidebar.cjs +506 -1
  153. package/dist/components/sidebar.d.ts +31 -31
  154. package/dist/components/sidebar.js +400 -1
  155. package/dist/components/skeleton.cjs +44 -1
  156. package/dist/components/skeleton.d.ts +2 -2
  157. package/dist/components/skeleton.js +10 -1
  158. package/dist/components/slider.cjs +79 -1
  159. package/dist/components/slider.d.ts +2 -2
  160. package/dist/components/slider.js +45 -1
  161. package/dist/components/sonner.cjs +57 -1
  162. package/dist/components/sonner.d.ts +3 -3
  163. package/dist/components/sonner.js +17 -1
  164. package/dist/components/spinner.cjs +75 -1
  165. package/dist/components/spinner.d.ts +2 -2
  166. package/dist/components/spinner.js +41 -1
  167. package/dist/components/switch.cjs +49 -1
  168. package/dist/components/switch.d.ts +2 -2
  169. package/dist/components/switch.js +15 -1
  170. package/dist/components/table.cjs +118 -1
  171. package/dist/components/table.d.ts +9 -9
  172. package/dist/components/table.js +63 -1
  173. package/dist/components/tabs.cjs +75 -1
  174. package/dist/components/tabs.d.ts +3 -3
  175. package/dist/components/tabs.js +32 -1
  176. package/dist/components/textarea.cjs +44 -1
  177. package/dist/components/textarea.d.ts +2 -2
  178. package/dist/components/textarea.js +10 -1
  179. package/dist/components/toggle-group.cjs +90 -1
  180. package/dist/components/toggle-group.d.ts +10 -12
  181. package/dist/components/toggle-group.js +53 -1
  182. package/dist/components/toggle.cjs +71 -1
  183. package/dist/components/toggle.d.ts +10 -12
  184. package/dist/components/toggle.js +34 -1
  185. package/dist/components/tooltip.cjs +90 -1
  186. package/dist/components/tooltip.d.ts +3 -3
  187. package/dist/components/tooltip.js +44 -1
  188. package/dist/css/amber.css +95 -1
  189. package/dist/css/blue.css +95 -1
  190. package/dist/css/cyan.css +95 -1
  191. package/dist/css/emerald.css +95 -1
  192. package/dist/css/fuchsia.css +95 -1
  193. package/dist/css/gray.css +95 -1
  194. package/dist/css/green.css +95 -1
  195. package/dist/css/indigo.css +95 -1
  196. package/dist/css/lime.css +95 -1
  197. package/dist/css/neutral.css +95 -1
  198. package/dist/css/orange.css +95 -1
  199. package/dist/css/pink.css +95 -1
  200. package/dist/css/preset.css +118 -1
  201. package/dist/css/purple.css +95 -1
  202. package/dist/css/red.css +95 -1
  203. package/dist/css/rose.css +95 -1
  204. package/dist/css/sky.css +95 -1
  205. package/dist/css/slate.css +95 -1
  206. package/dist/css/stone.css +95 -1
  207. package/dist/css/style.css +3 -1
  208. package/dist/css/teal.css +95 -1
  209. package/dist/css/violet.css +95 -1
  210. package/dist/css/yellow.css +95 -1
  211. package/dist/css/zinc.css +95 -1
  212. package/dist/hooks/use-animated-value.cjs +74 -1
  213. package/dist/hooks/use-animated-value.d.ts +9 -10
  214. package/dist/hooks/use-animated-value.js +40 -1
  215. package/dist/hooks/use-copy-to-clipboard.cjs +57 -1
  216. package/dist/hooks/use-copy-to-clipboard.d.ts +18 -1
  217. package/dist/hooks/use-copy-to-clipboard.js +23 -1
  218. package/dist/hooks/use-is-mobile.cjs +39 -1
  219. package/dist/hooks/use-is-mobile.d.ts +15 -6
  220. package/dist/hooks/use-is-mobile.js +5 -1
  221. package/dist/hooks/use-media-query.cjs +56 -1
  222. package/dist/hooks/use-media-query.d.ts +11 -3
  223. package/dist/hooks/use-media-query.js +22 -1
  224. package/dist/hooks/use-mutation-observer.cjs +56 -1
  225. package/dist/hooks/use-mutation-observer.d.ts +8 -12
  226. package/dist/hooks/use-mutation-observer.js +22 -1
  227. package/dist/hooks/use-pagination.cjs +92 -1
  228. package/dist/hooks/use-pagination.d.ts +12 -10
  229. package/dist/hooks/use-pagination.js +55 -1
  230. package/dist/index.cjs +1081 -1
  231. package/dist/index.d.ts +130 -131
  232. package/dist/index.js +69 -1
  233. package/dist/primitives/checkbox-group.cjs +151 -1
  234. package/dist/primitives/checkbox-group.d.ts +11 -11
  235. package/dist/primitives/checkbox-group.js +99 -1
  236. package/dist/primitives/input-number.cjs +439 -1
  237. package/dist/primitives/input-number.d.ts +8 -8
  238. package/dist/primitives/input-number.js +381 -1
  239. package/dist/primitives/input.cjs +99 -1
  240. package/dist/primitives/input.d.ts +4 -4
  241. package/dist/primitives/input.js +53 -1
  242. package/dist/primitives/progress-circle.cjs +198 -1
  243. package/dist/primitives/progress-circle.d.ts +7 -7
  244. package/dist/primitives/progress-circle.js +128 -1
  245. package/package.json +385 -38
@@ -1,2 +1,23 @@
1
1
  "use client";
2
- import{useEffect as t}from"react";let e={attributes:!0,characterData:!0,childList:!0,subtree:!0};function r(n,u,c=e){t(()=>{if(!n.current)return;let t=new MutationObserver(u);return t.observe(n.current,c),()=>{t.disconnect()}},[n,u,c])}export{r as useMutationObserver};
2
+ import { useEffect } from "react";
3
+ const defaultOptions = {
4
+ attributes: true,
5
+ characterData: true,
6
+ childList: true,
7
+ subtree: true
8
+ };
9
+ function useMutationObserver(ref, callback, options = defaultOptions) {
10
+ useEffect(()=>{
11
+ if (!ref.current) return;
12
+ const observer = new MutationObserver(callback);
13
+ observer.observe(ref.current, options);
14
+ return ()=>{
15
+ observer.disconnect();
16
+ };
17
+ }, [
18
+ ref,
19
+ callback,
20
+ options
21
+ ]);
22
+ }
23
+ export { useMutationObserver };
@@ -1,2 +1,93 @@
1
+ "use strict";
1
2
  "use client";
2
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ELLIPSIS:()=>ELLIPSIS,usePagination:()=>usePagination});const external_react_namespaceObject=require("react"),ELLIPSIS="•••",createRange=(e,_)=>Array.from({length:_-e+1},(_,r)=>e+r);function usePagination({currentPage:e,resultsPerPage:_,siblingPagesCount:r=1,totalResults:t}){return(0,external_react_namespaceObject.useMemo)(()=>{let a=Math.ceil(t/Math.floor(_));if(a<=0)return[];if(r+5>=a)return createRange(1,a);let n=Math.max(e-r,1),c=Math.min(e+r,a),o=n>2,i=c<a-2;return!o&&i?[...createRange(1,3+2*r),ELLIPSIS,a]:o&&!i?[1,ELLIPSIS,...createRange(a-(3+2*r)+1,a)]:o&&i?[1,ELLIPSIS,...createRange(n,c),ELLIPSIS,a]:[]},[t,_,r,e])}for(var __webpack_i__ in exports.ELLIPSIS=__webpack_exports__.ELLIPSIS,exports.usePagination=__webpack_exports__.usePagination,__webpack_exports__)-1===["ELLIPSIS","usePagination"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
3
+ var __webpack_require__ = {};
4
+ (()=>{
5
+ __webpack_require__.d = (exports1, definition)=>{
6
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ get: definition[key]
9
+ });
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.r = (exports1)=>{
17
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
18
+ value: 'Module'
19
+ });
20
+ Object.defineProperty(exports1, '__esModule', {
21
+ value: true
22
+ });
23
+ };
24
+ })();
25
+ var __webpack_exports__ = {};
26
+ __webpack_require__.r(__webpack_exports__);
27
+ __webpack_require__.d(__webpack_exports__, {
28
+ ELLIPSIS: ()=>ELLIPSIS,
29
+ usePagination: ()=>usePagination
30
+ });
31
+ const external_react_namespaceObject = require("react");
32
+ const ELLIPSIS = '•••';
33
+ const createRange = (start, end)=>{
34
+ const length = end - start + 1;
35
+ return Array.from({
36
+ length
37
+ }, (_, index)=>start + index);
38
+ };
39
+ function usePagination({ currentPage, resultsPerPage, siblingPagesCount = 1, totalResults }) {
40
+ return (0, external_react_namespaceObject.useMemo)(()=>{
41
+ const totalPages = Math.ceil(totalResults / Math.floor(resultsPerPage));
42
+ if (totalPages <= 0) return [];
43
+ const visiblePageNumbers = siblingPagesCount + 5;
44
+ if (visiblePageNumbers >= totalPages) return createRange(1, totalPages);
45
+ const leftSiblingIndex = Math.max(currentPage - siblingPagesCount, 1);
46
+ const rightSiblingIndex = Math.min(currentPage + siblingPagesCount, totalPages);
47
+ const shouldShowLeftEllipsis = leftSiblingIndex > 2;
48
+ const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 2;
49
+ const firstPage = 1;
50
+ const lastPage = totalPages;
51
+ if (!shouldShowLeftEllipsis && shouldShowRightEllipsis) {
52
+ const leftRange = createRange(1, 3 + 2 * siblingPagesCount);
53
+ return [
54
+ ...leftRange,
55
+ ELLIPSIS,
56
+ lastPage
57
+ ];
58
+ }
59
+ if (shouldShowLeftEllipsis && !shouldShowRightEllipsis) {
60
+ const rightRange = createRange(totalPages - (3 + 2 * siblingPagesCount) + 1, totalPages);
61
+ return [
62
+ firstPage,
63
+ ELLIPSIS,
64
+ ...rightRange
65
+ ];
66
+ }
67
+ if (shouldShowLeftEllipsis && shouldShowRightEllipsis) {
68
+ const middleRange = createRange(leftSiblingIndex, rightSiblingIndex);
69
+ return [
70
+ firstPage,
71
+ ELLIPSIS,
72
+ ...middleRange,
73
+ ELLIPSIS,
74
+ lastPage
75
+ ];
76
+ }
77
+ return [];
78
+ }, [
79
+ totalResults,
80
+ resultsPerPage,
81
+ siblingPagesCount,
82
+ currentPage
83
+ ]);
84
+ }
85
+ exports.ELLIPSIS = __webpack_exports__.ELLIPSIS;
86
+ exports.usePagination = __webpack_exports__.usePagination;
87
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
88
+ "ELLIPSIS",
89
+ "usePagination"
90
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
91
+ Object.defineProperty(exports, '__esModule', {
92
+ value: true
93
+ });
@@ -1,25 +1,27 @@
1
1
  export interface UsePaginationProps {
2
- /** The current active page number */
2
+ /** Current active page number. */
3
3
  currentPage: number;
4
- /** The number of results to display per page */
4
+ /** Number of results displayed per page. */
5
5
  resultsPerPage: number;
6
6
  /**
7
- * The number of sibling pages to display on either side of the current page.
7
+ * Number of sibling pages to show on each side of the current page.
8
8
  * Defaults to 1.
9
9
  */
10
10
  siblingPagesCount?: number;
11
- /** The total number of results across all pages */
11
+ /** Total number of results across all pages. */
12
12
  totalResults: number;
13
13
  }
14
- /** Constant representing the ellipsis ("...") used in pagination */
14
+ /** Ellipsis marker used to collapse ranges in pagination output. */
15
15
  export declare const ELLIPSIS = "\u2022\u2022\u2022";
16
16
  /**
17
- * A custom hook that calculates the pagination logic for a given set of
18
- * results.
17
+ * Compute a pagination structure for result sets.
19
18
  *
20
- * @param props - An object containing the pagination properties
21
- * @returns An array representing the pagination structure, which includes page
22
- * numbers and ellipsis indicators
19
+ * Returns a mixed array of page numbers and the `ELLIPSIS` marker representing
20
+ * collapsed ranges. The shape adapts to the total pages and the requested
21
+ * sibling window around the current page.
22
+ *
23
+ * @param props - Pagination options. See {@link UsePaginationProps}.
24
+ * @returns Array of page numbers and `ELLIPSIS` representing the pagination model.
23
25
  *
24
26
  * @example
25
27
  * ```tsx
@@ -1,2 +1,56 @@
1
1
  "use client";
2
- import{useMemo as t}from"react";let r="•••",e=(t,r)=>Array.from({length:r-t+1},(r,e)=>t+e);function n({currentPage:n,resultsPerPage:a,siblingPagesCount:i=1,totalResults:o}){return t(()=>{let t=Math.ceil(o/Math.floor(a));if(t<=0)return[];if(i+5>=t)return e(1,t);let f=Math.max(n-i,1),l=Math.min(n+i,t),u=f>2,h=l<t-2;return!u&&h?[...e(1,3+2*i),r,t]:u&&!h?[1,r,...e(t-(3+2*i)+1,t)]:u&&h?[1,r,...e(f,l),r,t]:[]},[o,a,i,n])}export{r as ELLIPSIS,n as usePagination};
2
+ import { useMemo } from "react";
3
+ const ELLIPSIS = '•••';
4
+ const createRange = (start, end)=>{
5
+ const length = end - start + 1;
6
+ return Array.from({
7
+ length
8
+ }, (_, index)=>start + index);
9
+ };
10
+ function usePagination({ currentPage, resultsPerPage, siblingPagesCount = 1, totalResults }) {
11
+ return useMemo(()=>{
12
+ const totalPages = Math.ceil(totalResults / Math.floor(resultsPerPage));
13
+ if (totalPages <= 0) return [];
14
+ const visiblePageNumbers = siblingPagesCount + 5;
15
+ if (visiblePageNumbers >= totalPages) return createRange(1, totalPages);
16
+ const leftSiblingIndex = Math.max(currentPage - siblingPagesCount, 1);
17
+ const rightSiblingIndex = Math.min(currentPage + siblingPagesCount, totalPages);
18
+ const shouldShowLeftEllipsis = leftSiblingIndex > 2;
19
+ const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 2;
20
+ const firstPage = 1;
21
+ const lastPage = totalPages;
22
+ if (!shouldShowLeftEllipsis && shouldShowRightEllipsis) {
23
+ const leftRange = createRange(1, 3 + 2 * siblingPagesCount);
24
+ return [
25
+ ...leftRange,
26
+ ELLIPSIS,
27
+ lastPage
28
+ ];
29
+ }
30
+ if (shouldShowLeftEllipsis && !shouldShowRightEllipsis) {
31
+ const rightRange = createRange(totalPages - (3 + 2 * siblingPagesCount) + 1, totalPages);
32
+ return [
33
+ firstPage,
34
+ ELLIPSIS,
35
+ ...rightRange
36
+ ];
37
+ }
38
+ if (shouldShowLeftEllipsis && shouldShowRightEllipsis) {
39
+ const middleRange = createRange(leftSiblingIndex, rightSiblingIndex);
40
+ return [
41
+ firstPage,
42
+ ELLIPSIS,
43
+ ...middleRange,
44
+ ELLIPSIS,
45
+ lastPage
46
+ ];
47
+ }
48
+ return [];
49
+ }, [
50
+ totalResults,
51
+ resultsPerPage,
52
+ siblingPagesCount,
53
+ currentPage
54
+ ]);
55
+ }
56
+ export { ELLIPSIS, usePagination };