@wealthx/shadcn 1.2.2 → 1.3.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 (230) hide show
  1. package/.turbo/turbo-build.log +193 -149
  2. package/CHANGELOG.md +28 -0
  3. package/dist/{chunk-4Y6R4WEC.mjs → chunk-2A5RRQGG.mjs} +9 -22
  4. package/dist/{chunk-TS2ZX2VS.mjs → chunk-2UM72RJ7.mjs} +11 -15
  5. package/dist/{chunk-A56YQQHG.mjs → chunk-3NCUZIFP.mjs} +2 -2
  6. package/dist/chunk-3OYFOX3X.mjs +79 -0
  7. package/dist/{chunk-RP3SQYA3.mjs → chunk-3TTACBDP.mjs} +9 -4
  8. package/dist/chunk-4GAWMKMI.mjs +710 -0
  9. package/dist/{chunk-VGSESELX.mjs → chunk-5FQIKDKP.mjs} +5 -5
  10. package/dist/{chunk-K3JYD4IU.mjs → chunk-5IS7G74I.mjs} +11 -4
  11. package/dist/chunk-6AW4KJHE.mjs +235 -0
  12. package/dist/chunk-6CR5N2JW.mjs +302 -0
  13. package/dist/{chunk-XIRTEFKH.mjs → chunk-6DZEXFNB.mjs} +36 -8
  14. package/dist/chunk-6O6KD7CE.mjs +271 -0
  15. package/dist/chunk-7PV3IWCN.mjs +33 -0
  16. package/dist/{chunk-SPJ5KXW7.mjs → chunk-7S5AESZO.mjs} +5 -5
  17. package/dist/{chunk-RYCLWMZ7.mjs → chunk-ABFDMHOR.mjs} +9 -7
  18. package/dist/{chunk-SWGT756Z.mjs → chunk-AMQZRHEZ.mjs} +10 -4
  19. package/dist/{chunk-WAZD7NFU.mjs → chunk-BKNFWEH2.mjs} +6 -6
  20. package/dist/{chunk-CLIN5525.mjs → chunk-C7CQJNMR.mjs} +1 -1
  21. package/dist/{chunk-D4ILTPOG.mjs → chunk-CFMQP5QS.mjs} +5 -4
  22. package/dist/{chunk-VPBN3WOO.mjs → chunk-DGHAXJBN.mjs} +9 -7
  23. package/dist/chunk-DOEO3CDL.mjs +27 -0
  24. package/dist/{chunk-5MEWU56Z.mjs → chunk-DUJTAXMH.mjs} +11 -6
  25. package/dist/{chunk-GGM2UYGG.mjs → chunk-EBXQWIYG.mjs} +10 -4
  26. package/dist/chunk-EWRB4PAD.mjs +468 -0
  27. package/dist/{chunk-ZSHYDDRB.mjs → chunk-FAKPBKLT.mjs} +6 -2
  28. package/dist/{chunk-A6AAWBPF.mjs → chunk-GHC7LLUX.mjs} +13 -4
  29. package/dist/chunk-HBZLGDIN.mjs +507 -0
  30. package/dist/{chunk-SIZMLSRU.mjs → chunk-HISNT2MG.mjs} +8 -6
  31. package/dist/{chunk-CGH4DRNG.mjs → chunk-HVY6KCCF.mjs} +10 -7
  32. package/dist/chunk-I3RZS7V2.mjs +136 -0
  33. package/dist/chunk-IAE3F7DR.mjs +1962 -0
  34. package/dist/{chunk-UT4KJR7V.mjs → chunk-IHMFS7NZ.mjs} +35 -74
  35. package/dist/{chunk-PCPLO5HT.mjs → chunk-IOJRDS6V.mjs} +96 -14
  36. package/dist/{chunk-LHYCMLVA.mjs → chunk-JKGDCQTZ.mjs} +11 -4
  37. package/dist/{chunk-H45TKD34.mjs → chunk-JMHR3YGZ.mjs} +1 -1
  38. package/dist/{chunk-4MN6UQHG.mjs → chunk-K5A5L6T2.mjs} +17 -39
  39. package/dist/chunk-LV35NGVG.mjs +272 -0
  40. package/dist/{chunk-FZIXGLMV.mjs → chunk-M3FV7LOK.mjs} +5 -12
  41. package/dist/{chunk-FMAXJ2SI.mjs → chunk-MBON7YRJ.mjs} +1 -1
  42. package/dist/chunk-MIZQHHUO.mjs +441 -0
  43. package/dist/chunk-MLNEWRWV.mjs +449 -0
  44. package/dist/chunk-MN5NYQCL.mjs +29 -0
  45. package/dist/chunk-NL3ZO62D.mjs +31 -0
  46. package/dist/{chunk-Q76O3RIQ.mjs → chunk-NMOI6CQD.mjs} +1 -1
  47. package/dist/{chunk-P6AM5V7O.mjs → chunk-OODBHKG7.mjs} +1 -1
  48. package/dist/chunk-PBL4OQV2.mjs +283 -0
  49. package/dist/{chunk-Y4QFWRNR.mjs → chunk-PU4YZQXV.mjs} +17 -18
  50. package/dist/chunk-Q2BGOAMG.mjs +202 -0
  51. package/dist/chunk-QMY3AZJH.mjs +80 -0
  52. package/dist/{chunk-BL3DXM2X.mjs → chunk-QZ4RE6NA.mjs} +11 -4
  53. package/dist/{chunk-VACKZOMY.mjs → chunk-R3VSPKNP.mjs} +3 -3
  54. package/dist/{chunk-OPNQAVVH.mjs → chunk-RJI6GKVF.mjs} +8 -6
  55. package/dist/{chunk-WG6JGJXB.mjs → chunk-T4BJLT57.mjs} +1 -1
  56. package/dist/chunk-UMTOX62O.mjs +415 -0
  57. package/dist/{chunk-7MMXNK3C.mjs → chunk-VLARHE5V.mjs} +8 -6
  58. package/dist/{chunk-2I5S2AMY.mjs → chunk-XREGSKX3.mjs} +2 -2
  59. package/dist/{chunk-JNQORUPP.mjs → chunk-YJG55G2H.mjs} +14 -11
  60. package/dist/components/ui/add-column-modal.js +42 -14
  61. package/dist/components/ui/add-column-modal.mjs +5 -5
  62. package/dist/components/ui/add-lead-modal.js +42 -11
  63. package/dist/components/ui/add-lead-modal.mjs +3 -3
  64. package/dist/components/ui/advisor-card.js +530 -0
  65. package/dist/components/ui/advisor-card.mjs +15 -0
  66. package/dist/components/ui/ai-assistant-drawer.js +11 -10
  67. package/dist/components/ui/ai-assistant-drawer.mjs +3 -3
  68. package/dist/components/ui/alert-dialog.js +2 -2
  69. package/dist/components/ui/alert-dialog.mjs +2 -2
  70. package/dist/components/ui/appointment-action-dialogs.js +1160 -0
  71. package/dist/components/ui/appointment-action-dialogs.mjs +23 -0
  72. package/dist/components/ui/appointment-availability-settings.js +1590 -0
  73. package/dist/components/ui/appointment-availability-settings.mjs +23 -0
  74. package/dist/components/ui/appointment-book-dialog.js +1744 -0
  75. package/dist/components/ui/appointment-book-dialog.mjs +27 -0
  76. package/dist/components/ui/appointment-calendar-view.js +833 -0
  77. package/dist/components/ui/appointment-calendar-view.mjs +14 -0
  78. package/dist/components/ui/appointment-detail-sheet.js +1517 -0
  79. package/dist/components/ui/appointment-detail-sheet.mjs +24 -0
  80. package/dist/components/ui/appointment-gmail-connect.js +467 -0
  81. package/dist/components/ui/appointment-gmail-connect.mjs +14 -0
  82. package/dist/components/ui/appointment-mini-card.js +345 -0
  83. package/dist/components/ui/appointment-mini-card.mjs +11 -0
  84. package/dist/components/ui/appointment-time-slot-picker.js +311 -0
  85. package/dist/components/ui/appointment-time-slot-picker.mjs +13 -0
  86. package/dist/components/ui/appointment-upcoming-card.js +1268 -0
  87. package/dist/components/ui/appointment-upcoming-card.mjs +21 -0
  88. package/dist/components/ui/backoffice-alert-history-chart.js +11 -5
  89. package/dist/components/ui/backoffice-alert-history-chart.mjs +5 -4
  90. package/dist/components/ui/backoffice-alerts-chart.js +786 -0
  91. package/dist/components/ui/backoffice-alerts-chart.mjs +19 -0
  92. package/dist/components/ui/backoffice-connections-chart.js +817 -0
  93. package/dist/components/ui/backoffice-connections-chart.mjs +19 -0
  94. package/dist/components/ui/backoffice-contact-history-chart.js +11 -5
  95. package/dist/components/ui/backoffice-contact-history-chart.mjs +5 -4
  96. package/dist/components/ui/badge.js +6 -6
  97. package/dist/components/ui/badge.mjs +1 -1
  98. package/dist/components/ui/borrowing-capacity-line-chart.js +30 -21
  99. package/dist/components/ui/borrowing-capacity-line-chart.mjs +5 -4
  100. package/dist/components/ui/button.js +2 -2
  101. package/dist/components/ui/button.mjs +1 -1
  102. package/dist/components/ui/calendar.js +2 -2
  103. package/dist/components/ui/calendar.mjs +2 -2
  104. package/dist/components/ui/card.js +1 -1
  105. package/dist/components/ui/card.mjs +1 -1
  106. package/dist/components/ui/cash-balance-line-chart.js +31 -23
  107. package/dist/components/ui/cash-balance-line-chart.mjs +5 -4
  108. package/dist/components/ui/cashflow-bar-chart.js +12 -5
  109. package/dist/components/ui/cashflow-bar-chart.mjs +5 -4
  110. package/dist/components/ui/chip.js +97 -18
  111. package/dist/components/ui/chip.mjs +3 -2
  112. package/dist/components/ui/color-picker.js +158 -28
  113. package/dist/components/ui/color-picker.mjs +3 -1
  114. package/dist/components/ui/data-table.js +140 -119
  115. package/dist/components/ui/data-table.mjs +3 -2
  116. package/dist/components/ui/date-picker.js +48 -27
  117. package/dist/components/ui/date-picker.mjs +4 -3
  118. package/dist/components/ui/dialog.js +37 -9
  119. package/dist/components/ui/dialog.mjs +2 -2
  120. package/dist/components/ui/expense-bar-chart.js +12 -5
  121. package/dist/components/ui/expense-bar-chart.mjs +5 -4
  122. package/dist/components/ui/field.mjs +2 -2
  123. package/dist/components/ui/financial-cards.js +322 -155
  124. package/dist/components/ui/financial-cards.mjs +5 -3
  125. package/dist/components/ui/financial-drawers.js +2 -2
  126. package/dist/components/ui/financial-drawers.mjs +3 -3
  127. package/dist/components/ui/financial-sections.js +14 -10
  128. package/dist/components/ui/financial-sections.mjs +6 -5
  129. package/dist/components/ui/income-bar-chart.js +12 -5
  130. package/dist/components/ui/income-bar-chart.mjs +5 -4
  131. package/dist/components/ui/input-group.js +2 -2
  132. package/dist/components/ui/input-group.mjs +2 -2
  133. package/dist/components/ui/kanban-column.js +52 -44
  134. package/dist/components/ui/kanban-column.mjs +7 -5
  135. package/dist/components/ui/opportunity-card.js +52 -44
  136. package/dist/components/ui/opportunity-card.mjs +6 -4
  137. package/dist/components/ui/opportunity-edit-modals.js +1367 -1263
  138. package/dist/components/ui/opportunity-edit-modals.mjs +8 -8
  139. package/dist/components/ui/opportunity-summary-tab.js +2744 -2157
  140. package/dist/components/ui/opportunity-summary-tab.mjs +14 -14
  141. package/dist/components/ui/page-header.js +92 -0
  142. package/dist/components/ui/page-header.mjs +8 -0
  143. package/dist/components/ui/page-top-bar.js +88 -0
  144. package/dist/components/ui/page-top-bar.mjs +8 -0
  145. package/dist/components/ui/pagination.js +303 -19
  146. package/dist/components/ui/pagination.mjs +11 -4
  147. package/dist/components/ui/pipeline-board.js +205 -191
  148. package/dist/components/ui/pipeline-board.mjs +9 -7
  149. package/dist/components/ui/pipeline-dialogs.js +114 -65
  150. package/dist/components/ui/pipeline-dialogs.mjs +7 -6
  151. package/dist/components/ui/pipeline-primitives.js +6 -6
  152. package/dist/components/ui/pipeline-primitives.mjs +2 -2
  153. package/dist/components/ui/property-cashflow-doughnut-chart.js +14 -12
  154. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +5 -4
  155. package/dist/components/ui/property-debt-equity-doughnut-chart.js +14 -12
  156. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +5 -4
  157. package/dist/components/ui/property-mobile-estimate-line-chart.js +16 -14
  158. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +5 -4
  159. package/dist/components/ui/sidebar-nav.js +426 -191
  160. package/dist/components/ui/sidebar-nav.mjs +5 -1
  161. package/dist/components/ui/stage-timeline.js +6 -6
  162. package/dist/components/ui/stage-timeline.mjs +3 -3
  163. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +18 -16
  164. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +5 -4
  165. package/dist/components/ui/transactions-income-expense-bar-chart.js +28 -12
  166. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +5 -4
  167. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +18 -16
  168. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +5 -4
  169. package/dist/index.js +12258 -8611
  170. package/dist/index.mjs +258 -190
  171. package/dist/styles.css +1 -1
  172. package/package.json +71 -1
  173. package/src/components/index.tsx +115 -9
  174. package/src/components/ui/add-column-modal.tsx +7 -7
  175. package/src/components/ui/add-lead-modal.tsx +6 -3
  176. package/src/components/ui/advisor-card.tsx +284 -0
  177. package/src/components/ui/ai-assistant-drawer.tsx +4 -3
  178. package/src/components/ui/appointment-action-dialogs.tsx +297 -0
  179. package/src/components/ui/appointment-availability-settings.tsx +645 -0
  180. package/src/components/ui/appointment-book-dialog.tsx +618 -0
  181. package/src/components/ui/appointment-calendar-view.tsx +510 -0
  182. package/src/components/ui/appointment-detail-sheet.tsx +415 -0
  183. package/src/components/ui/appointment-gmail-connect.tsx +188 -0
  184. package/src/components/ui/appointment-mini-card.tsx +104 -0
  185. package/src/components/ui/appointment-time-slot-picker.tsx +123 -0
  186. package/src/components/ui/appointment-upcoming-card.tsx +635 -0
  187. package/src/components/ui/backoffice-alert-history-chart.tsx +10 -2
  188. package/src/components/ui/backoffice-alerts-chart.tsx +312 -0
  189. package/src/components/ui/backoffice-connections-chart.tsx +339 -0
  190. package/src/components/ui/backoffice-contact-history-chart.tsx +10 -2
  191. package/src/components/ui/badge.tsx +12 -6
  192. package/src/components/ui/borrowing-capacity-line-chart.tsx +4 -11
  193. package/src/components/ui/button.tsx +2 -2
  194. package/src/components/ui/card.tsx +1 -1
  195. package/src/components/ui/cash-balance-line-chart.tsx +4 -23
  196. package/src/components/ui/cashflow-bar-chart.tsx +9 -2
  197. package/src/components/ui/chart-shared.tsx +4 -11
  198. package/src/components/ui/chip.tsx +23 -19
  199. package/src/components/ui/color-picker.tsx +4 -2
  200. package/src/components/ui/data-table.tsx +28 -74
  201. package/src/components/ui/date-picker.tsx +42 -37
  202. package/src/components/ui/dialog.tsx +72 -6
  203. package/src/components/ui/expense-bar-chart.tsx +11 -2
  204. package/src/components/ui/financial-cards.tsx +99 -10
  205. package/src/components/ui/income-bar-chart.tsx +11 -2
  206. package/src/components/ui/opportunity-card.tsx +10 -39
  207. package/src/components/ui/opportunity-edit-modals.tsx +98 -36
  208. package/src/components/ui/opportunity-summary-tab.tsx +548 -232
  209. package/src/components/ui/page-header.tsx +57 -0
  210. package/src/components/ui/page-top-bar.tsx +48 -0
  211. package/src/components/ui/pagination.tsx +171 -22
  212. package/src/components/ui/pipeline-board.tsx +12 -5
  213. package/src/components/ui/property-cashflow-doughnut-chart.tsx +3 -1
  214. package/src/components/ui/property-debt-equity-doughnut-chart.tsx +3 -1
  215. package/src/components/ui/property-mobile-estimate-line-chart.tsx +3 -1
  216. package/src/components/ui/sidebar-nav.tsx +213 -157
  217. package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +3 -1
  218. package/src/components/ui/transactions-income-expense-bar-chart.tsx +12 -9
  219. package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +3 -1
  220. package/src/lib/format-currency.ts +44 -0
  221. package/src/lib/format-date.ts +50 -0
  222. package/src/lib/opportunity-constants.ts +12 -0
  223. package/src/styles/globals.css +17 -15
  224. package/src/styles/styles-css.ts +1 -1
  225. package/tsup.config.ts +14 -0
  226. package/dist/chunk-S4QRUQNW.mjs +0 -475
  227. package/dist/chunk-URGMJAE3.mjs +0 -1885
  228. package/dist/chunk-WNGWBVLV.mjs +0 -148
  229. package/dist/chunk-ZRSDX6OW.mjs +0 -385
  230. package/dist/{chunk-LLVQKSU3.mjs → chunk-GD4BJDJR.mjs} +3 -3
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  OpportunitySummaryTab
3
- } from "../../chunk-S4QRUQNW.mjs";
4
- import "../../chunk-URGMJAE3.mjs";
5
- import "../../chunk-JHJHG4GO.mjs";
6
- import "../../chunk-A56YQQHG.mjs";
7
- import "../../chunk-PCPLO5HT.mjs";
8
- import "../../chunk-7XJHLGUV.mjs";
3
+ } from "../../chunk-4GAWMKMI.mjs";
4
+ import "../../chunk-IAE3F7DR.mjs";
5
+ import "../../chunk-IOJRDS6V.mjs";
9
6
  import "../../chunk-OGOYQ7BG.mjs";
7
+ import "../../chunk-MN5NYQCL.mjs";
8
+ import "../../chunk-7PV3IWCN.mjs";
9
+ import "../../chunk-DUJTAXMH.mjs";
10
+ import "../../chunk-3GF7OVTP.mjs";
10
11
  import "../../chunk-U5X52X37.mjs";
11
12
  import "../../chunk-Y6DWJSKZ.mjs";
13
+ import "../../chunk-7XJHLGUV.mjs";
12
14
  import "../../chunk-EI5F6FMT.mjs";
13
15
  import "../../chunk-BDYZCBRT.mjs";
14
- import "../../chunk-5MEWU56Z.mjs";
15
- import "../../chunk-P6AM5V7O.mjs";
16
- import "../../chunk-3GF7OVTP.mjs";
17
16
  import "../../chunk-34NWQURD.mjs";
18
- import "../../chunk-WAZD7NFU.mjs";
17
+ import "../../chunk-OODBHKG7.mjs";
18
+ import "../../chunk-JHJHG4GO.mjs";
19
+ import "../../chunk-BKNFWEH2.mjs";
19
20
  import "../../chunk-MARPPFOJ.mjs";
20
- import "../../chunk-FH6QVUVZ.mjs";
21
- import "../../chunk-NSLMILBT.mjs";
22
21
  import "../../chunk-7PYJD5JI.mjs";
22
+ import "../../chunk-NSLMILBT.mjs";
23
23
  import "../../chunk-RGVKLTLH.mjs";
24
- import "../../chunk-XIRTEFKH.mjs";
25
24
  import "../../chunk-GYMYRIZP.mjs";
26
- import "../../chunk-2I5S2AMY.mjs";
25
+ import "../../chunk-6DZEXFNB.mjs";
26
+ import "../../chunk-XREGSKX3.mjs";
27
27
  import "../../chunk-DBHJ5KC3.mjs";
28
28
  import "../../chunk-FEZKMUCF.mjs";
29
29
  import "../../chunk-QOJ2DQD6.mjs";
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/page-header.tsx
21
+ var page_header_exports = {};
22
+ __export(page_header_exports, {
23
+ PageHeader: () => PageHeader
24
+ });
25
+ module.exports = __toCommonJS(page_header_exports);
26
+
27
+ // src/lib/utils.ts
28
+ var import_clsx = require("clsx");
29
+ var import_tailwind_merge = require("tailwind-merge");
30
+ var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
31
+ extend: {
32
+ classGroups: {
33
+ "font-size": [
34
+ {
35
+ text: [
36
+ "display-large",
37
+ "display-medium",
38
+ "display-small",
39
+ "h1",
40
+ "h2",
41
+ "h3",
42
+ "h4",
43
+ "h5",
44
+ "h6",
45
+ "body-large",
46
+ "body-medium",
47
+ "body-small",
48
+ "label-large",
49
+ "label-medium",
50
+ "label-small",
51
+ "button",
52
+ "button-xs",
53
+ "caption",
54
+ "overline",
55
+ "code"
56
+ ]
57
+ }
58
+ ]
59
+ }
60
+ }
61
+ });
62
+ function cn(...inputs) {
63
+ return twMerge((0, import_clsx.clsx)(inputs));
64
+ }
65
+
66
+ // src/components/ui/page-header.tsx
67
+ var import_jsx_runtime = require("react/jsx-runtime");
68
+ function PageHeader({
69
+ title,
70
+ description,
71
+ actions,
72
+ className
73
+ }) {
74
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
75
+ "div",
76
+ {
77
+ "data-slot": "page-header",
78
+ className: cn("flex items-start justify-between gap-4", className),
79
+ children: [
80
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
81
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", { className: "text-xl font-bold leading-tight", children: title }),
82
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-muted-foreground", children: description })
83
+ ] }),
84
+ actions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex shrink-0 items-center gap-2", children: actions })
85
+ ]
86
+ }
87
+ );
88
+ }
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ PageHeader
92
+ });
@@ -0,0 +1,8 @@
1
+ import {
2
+ PageHeader
3
+ } from "../../chunk-NL3ZO62D.mjs";
4
+ import "../../chunk-VLQZANBF.mjs";
5
+ import "../../chunk-FWCSY2DS.mjs";
6
+ export {
7
+ PageHeader
8
+ };
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/ui/page-top-bar.tsx
21
+ var page_top_bar_exports = {};
22
+ __export(page_top_bar_exports, {
23
+ PageTopBar: () => PageTopBar
24
+ });
25
+ module.exports = __toCommonJS(page_top_bar_exports);
26
+
27
+ // src/lib/utils.ts
28
+ var import_clsx = require("clsx");
29
+ var import_tailwind_merge = require("tailwind-merge");
30
+ var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
31
+ extend: {
32
+ classGroups: {
33
+ "font-size": [
34
+ {
35
+ text: [
36
+ "display-large",
37
+ "display-medium",
38
+ "display-small",
39
+ "h1",
40
+ "h2",
41
+ "h3",
42
+ "h4",
43
+ "h5",
44
+ "h6",
45
+ "body-large",
46
+ "body-medium",
47
+ "body-small",
48
+ "label-large",
49
+ "label-medium",
50
+ "label-small",
51
+ "button",
52
+ "button-xs",
53
+ "caption",
54
+ "overline",
55
+ "code"
56
+ ]
57
+ }
58
+ ]
59
+ }
60
+ }
61
+ });
62
+ function cn(...inputs) {
63
+ return twMerge((0, import_clsx.clsx)(inputs));
64
+ }
65
+
66
+ // src/components/ui/page-top-bar.tsx
67
+ var import_jsx_runtime = require("react/jsx-runtime");
68
+ function PageTopBar({ title, actions, className }) {
69
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
70
+ "div",
71
+ {
72
+ "data-slot": "page-top-bar",
73
+ className: cn(
74
+ "flex shrink-0 items-center justify-between gap-4",
75
+ "border-b border-border bg-background px-6 py-3",
76
+ className
77
+ ),
78
+ children: [
79
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", { className: "text-lg font-semibold leading-tight", children: title }),
80
+ actions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex items-center gap-2", children: actions })
81
+ ]
82
+ }
83
+ );
84
+ }
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ PageTopBar
88
+ });
@@ -0,0 +1,8 @@
1
+ import {
2
+ PageTopBar
3
+ } from "../../chunk-DOEO3CDL.mjs";
4
+ import "../../chunk-VLQZANBF.mjs";
5
+ import "../../chunk-FWCSY2DS.mjs";
6
+ export {
7
+ PageTopBar
8
+ };
@@ -64,11 +64,13 @@ __export(pagination_exports, {
64
64
  PaginationEllipsis: () => PaginationEllipsis,
65
65
  PaginationItem: () => PaginationItem,
66
66
  PaginationLink: () => PaginationLink,
67
+ PaginationNavButtons: () => PaginationNavButtons,
67
68
  PaginationNext: () => PaginationNext,
68
- PaginationPrevious: () => PaginationPrevious
69
+ PaginationPrevious: () => PaginationPrevious,
70
+ TablePagination: () => TablePagination
69
71
  });
70
72
  module.exports = __toCommonJS(pagination_exports);
71
- var import_lucide_react2 = require("lucide-react");
73
+ var import_lucide_react3 = require("lucide-react");
72
74
 
73
75
  // src/lib/utils.ts
74
76
  var import_clsx = require("clsx");
@@ -171,10 +173,10 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
171
173
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
172
174
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
173
175
  destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
174
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
176
+ outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
175
177
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
176
178
  "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
177
- ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
179
+ ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
178
180
  link: "text-primary underline-offset-4 hover:underline"
179
181
  },
180
182
  size: {
@@ -235,11 +237,168 @@ var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
235
237
  );
236
238
  });
237
239
 
238
- // src/components/ui/pagination.tsx
240
+ // src/components/ui/select.tsx
241
+ var import_lucide_react2 = require("lucide-react");
242
+ var import_select = require("@base-ui/react/select");
243
+
244
+ // src/lib/theme-provider.tsx
245
+ var import_react2 = require("react");
239
246
  var import_jsx_runtime2 = require("react/jsx-runtime");
247
+ var ThemeVarsContext = (0, import_react2.createContext)({});
248
+ function useThemeVars() {
249
+ return (0, import_react2.useContext)(ThemeVarsContext);
250
+ }
251
+
252
+ // src/components/ui/select.tsx
253
+ var import_jsx_runtime3 = require("react/jsx-runtime");
254
+ function Select(_a) {
255
+ var props = __objRest(_a, []);
256
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_select.Select.Root, __spreadValues({ "data-slot": "select" }, props));
257
+ }
258
+ function SelectValue(_a) {
259
+ var props = __objRest(_a, []);
260
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_select.Select.Value, __spreadValues({ "data-slot": "select-value" }, props));
261
+ }
262
+ function SelectTrigger(_a) {
263
+ var _b = _a, {
264
+ className,
265
+ size = "default",
266
+ children
267
+ } = _b, props = __objRest(_b, [
268
+ "className",
269
+ "size",
270
+ "children"
271
+ ]);
272
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
273
+ import_select.Select.Trigger,
274
+ __spreadProps(__spreadValues({
275
+ className: cn(
276
+ "flex w-fit items-center justify-between gap-2 border border-input bg-transparent px-3 py-2 text-body-medium whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-primary/20 data-popup-open:border-primary data-popup-open:ring-[3px] data-popup-open:ring-primary/20 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-placeholder:font-normal data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
277
+ className
278
+ ),
279
+ "data-size": size,
280
+ "data-slot": "select-trigger"
281
+ }, props), {
282
+ children: [
283
+ children,
284
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_select.Select.Icon, { className: "transition-transform duration-200 data-popup-open:rotate-180", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.ChevronDownIcon, { className: "size-4 opacity-50" }) })
285
+ ]
286
+ })
287
+ );
288
+ }
289
+ function SelectContent(_a) {
290
+ var _b = _a, {
291
+ className,
292
+ children,
293
+ style
294
+ } = _b, props = __objRest(_b, [
295
+ "className",
296
+ "children",
297
+ "style"
298
+ ]);
299
+ const themeVars = useThemeVars();
300
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
301
+ import_select.Select.Positioner,
302
+ {
303
+ className: "z-[200]",
304
+ align: "start",
305
+ alignItemWithTrigger: false,
306
+ sideOffset: 4,
307
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
308
+ import_select.Select.Popup,
309
+ __spreadProps(__spreadValues({
310
+ className: cn(
311
+ "relative max-h-[var(--available-height)] min-w-[var(--anchor-width,8rem)] overflow-x-hidden overflow-y-auto border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
312
+ className
313
+ ),
314
+ "data-slot": "select-content",
315
+ style: __spreadValues(__spreadValues({}, themeVars), style)
316
+ }, props), {
317
+ children: [
318
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SelectScrollUpButton, {}),
319
+ children,
320
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SelectScrollDownButton, {})
321
+ ]
322
+ })
323
+ )
324
+ }
325
+ ) });
326
+ }
327
+ function SelectItem(_a) {
328
+ var _b = _a, {
329
+ className,
330
+ children
331
+ } = _b, props = __objRest(_b, [
332
+ "className",
333
+ "children"
334
+ ]);
335
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
336
+ import_select.Select.Item,
337
+ __spreadProps(__spreadValues({
338
+ className: cn(
339
+ "relative flex w-full cursor-default items-center gap-2 py-1.5 pr-8 pl-2 text-body-small outline-hidden select-none data-highlighted:bg-primary/5 data-highlighted:text-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
340
+ className
341
+ ),
342
+ "data-slot": "select-item"
343
+ }, props), {
344
+ children: [
345
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
346
+ "span",
347
+ {
348
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
349
+ "data-slot": "select-item-indicator",
350
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.CheckIcon, { className: "size-4" }) })
351
+ }
352
+ ),
353
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_select.Select.ItemText, { children })
354
+ ]
355
+ })
356
+ );
357
+ }
358
+ function SelectScrollUpButton(_a) {
359
+ var _b = _a, {
360
+ className
361
+ } = _b, props = __objRest(_b, [
362
+ "className"
363
+ ]);
364
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
365
+ import_select.Select.ScrollUpArrow,
366
+ __spreadProps(__spreadValues({
367
+ className: cn(
368
+ "flex cursor-default items-center justify-center py-1",
369
+ className
370
+ ),
371
+ "data-slot": "select-scroll-up-button"
372
+ }, props), {
373
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.ChevronUpIcon, { className: "size-4" })
374
+ })
375
+ );
376
+ }
377
+ function SelectScrollDownButton(_a) {
378
+ var _b = _a, {
379
+ className
380
+ } = _b, props = __objRest(_b, [
381
+ "className"
382
+ ]);
383
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
384
+ import_select.Select.ScrollDownArrow,
385
+ __spreadProps(__spreadValues({
386
+ className: cn(
387
+ "flex cursor-default items-center justify-center py-1",
388
+ className
389
+ ),
390
+ "data-slot": "select-scroll-down-button"
391
+ }, props), {
392
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react2.ChevronDownIcon, { className: "size-4" })
393
+ })
394
+ );
395
+ }
396
+
397
+ // src/components/ui/pagination.tsx
398
+ var import_jsx_runtime4 = require("react/jsx-runtime");
240
399
  function Pagination(_a) {
241
400
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
242
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
401
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
243
402
  "nav",
244
403
  __spreadValues({
245
404
  "aria-label": "pagination",
@@ -255,7 +414,7 @@ function PaginationContent(_a) {
255
414
  } = _b, props = __objRest(_b, [
256
415
  "className"
257
416
  ]);
258
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
417
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
259
418
  "ul",
260
419
  __spreadValues({
261
420
  className: cn("flex flex-row items-center gap-1", className),
@@ -265,7 +424,7 @@ function PaginationContent(_a) {
265
424
  }
266
425
  function PaginationItem(_a) {
267
426
  var props = __objRest(_a, []);
268
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", __spreadValues({ "data-slot": "pagination-item" }, props));
427
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("li", __spreadValues({ "data-slot": "pagination-item" }, props));
269
428
  }
270
429
  function PaginationLink(_a) {
271
430
  var _b = _a, {
@@ -279,7 +438,7 @@ function PaginationLink(_a) {
279
438
  ]);
280
439
  return (
281
440
  // eslint-disable-next-line jsx-a11y/anchor-has-content -- children passed via props spread
282
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
441
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
283
442
  "a",
284
443
  __spreadValues({
285
444
  "aria-current": isActive ? "page" : void 0,
@@ -302,7 +461,7 @@ function PaginationPrevious(_a) {
302
461
  } = _b, props = __objRest(_b, [
303
462
  "className"
304
463
  ]);
305
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
464
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
306
465
  PaginationLink,
307
466
  __spreadProps(__spreadValues({
308
467
  "aria-label": "Go to previous page",
@@ -310,8 +469,8 @@ function PaginationPrevious(_a) {
310
469
  size: "default"
311
470
  }, props), {
312
471
  children: [
313
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.ChevronLeftIcon, {}),
314
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "hidden sm:block", children: "Previous" })
472
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.ChevronLeftIcon, {}),
473
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "hidden sm:block", children: "Previous" })
315
474
  ]
316
475
  })
317
476
  );
@@ -322,7 +481,7 @@ function PaginationNext(_a) {
322
481
  } = _b, props = __objRest(_b, [
323
482
  "className"
324
483
  ]);
325
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
484
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
326
485
  PaginationLink,
327
486
  __spreadProps(__spreadValues({
328
487
  "aria-label": "Go to next page",
@@ -330,8 +489,8 @@ function PaginationNext(_a) {
330
489
  size: "default"
331
490
  }, props), {
332
491
  children: [
333
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "hidden sm:block", children: "Next" }),
334
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.ChevronRightIcon, {})
492
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "hidden sm:block", children: "Next" }),
493
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.ChevronRightIcon, {})
335
494
  ]
336
495
  })
337
496
  );
@@ -342,7 +501,7 @@ function PaginationEllipsis(_a) {
342
501
  } = _b, props = __objRest(_b, [
343
502
  "className"
344
503
  ]);
345
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
504
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
346
505
  "span",
347
506
  __spreadProps(__spreadValues({
348
507
  "aria-hidden": true,
@@ -350,12 +509,135 @@ function PaginationEllipsis(_a) {
350
509
  "data-slot": "pagination-ellipsis"
351
510
  }, props), {
352
511
  children: [
353
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.MoreHorizontalIcon, { className: "size-4" }),
354
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "sr-only", children: "More pages" })
512
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.MoreHorizontalIcon, { className: "size-4" }),
513
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "sr-only", children: "More pages" })
355
514
  ]
356
515
  })
357
516
  );
358
517
  }
518
+ function PaginationNavButtons({
519
+ hasPrev,
520
+ hasNext,
521
+ onFirst,
522
+ onPrev,
523
+ onNext,
524
+ onLast
525
+ }) {
526
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center gap-1", children: [
527
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
528
+ Button,
529
+ {
530
+ "aria-label": "Go to first page",
531
+ disabled: !hasPrev,
532
+ onClick: onFirst,
533
+ size: "icon-sm",
534
+ variant: "outline",
535
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.ChevronsLeftIcon, { className: "size-4" })
536
+ }
537
+ ),
538
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
539
+ Button,
540
+ {
541
+ "aria-label": "Go to previous page",
542
+ disabled: !hasPrev,
543
+ onClick: onPrev,
544
+ size: "icon-sm",
545
+ variant: "outline",
546
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.ChevronLeftIcon, { className: "size-4" })
547
+ }
548
+ ),
549
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
550
+ Button,
551
+ {
552
+ "aria-label": "Go to next page",
553
+ disabled: !hasNext,
554
+ onClick: onNext,
555
+ size: "icon-sm",
556
+ variant: "outline",
557
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.ChevronRightIcon, { className: "size-4" })
558
+ }
559
+ ),
560
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
561
+ Button,
562
+ {
563
+ "aria-label": "Go to last page",
564
+ disabled: !hasNext,
565
+ onClick: onLast,
566
+ size: "icon-sm",
567
+ variant: "outline",
568
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.ChevronsRightIcon, { className: "size-4" })
569
+ }
570
+ )
571
+ ] });
572
+ }
573
+ function TablePagination({
574
+ page,
575
+ pageCount,
576
+ pageSize,
577
+ pageSizeOptions = [10, 20, 30, 50],
578
+ onPageChange,
579
+ onPageSizeChange,
580
+ selectedCount,
581
+ totalCount,
582
+ className
583
+ }) {
584
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
585
+ "div",
586
+ {
587
+ className: cn("flex items-center gap-4 py-4", className),
588
+ "data-slot": "table-pagination",
589
+ children: [
590
+ selectedCount != null && selectedCount > 0 && totalCount != null && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: "text-body-small text-muted-foreground", children: [
591
+ selectedCount,
592
+ " of ",
593
+ totalCount,
594
+ " row(s) selected."
595
+ ] }),
596
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "ml-auto flex items-center gap-6", children: [
597
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center gap-2", children: [
598
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: "Rows per page" }),
599
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
600
+ Select,
601
+ {
602
+ onValueChange: (value) => onPageSizeChange(Number(value)),
603
+ value: `${pageSize}`,
604
+ children: [
605
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
606
+ SelectTrigger,
607
+ {
608
+ "aria-label": "Rows per page",
609
+ className: "w-[70px]",
610
+ size: "sm",
611
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectValue, {})
612
+ }
613
+ ),
614
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectContent, { children: pageSizeOptions.map((size) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectItem, { value: `${size}`, children: size }, size)) })
615
+ ]
616
+ }
617
+ )
618
+ ] }),
619
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: [
620
+ "Page ",
621
+ page,
622
+ " of ",
623
+ pageCount
624
+ ] }),
625
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
626
+ PaginationNavButtons,
627
+ {
628
+ hasNext: page < pageCount,
629
+ hasPrev: page > 1,
630
+ onFirst: () => onPageChange(1),
631
+ onLast: () => onPageChange(pageCount),
632
+ onNext: () => onPageChange(page + 1),
633
+ onPrev: () => onPageChange(page - 1)
634
+ }
635
+ )
636
+ ] })
637
+ ]
638
+ }
639
+ );
640
+ }
359
641
  // Annotate the CommonJS export names for ESM import in node:
360
642
  0 && (module.exports = {
361
643
  Pagination,
@@ -363,6 +645,8 @@ function PaginationEllipsis(_a) {
363
645
  PaginationEllipsis,
364
646
  PaginationItem,
365
647
  PaginationLink,
648
+ PaginationNavButtons,
366
649
  PaginationNext,
367
- PaginationPrevious
650
+ PaginationPrevious,
651
+ TablePagination
368
652
  });