@wealthx/shadcn 1.2.2 → 1.3.0
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.
- package/.turbo/turbo-build.log +200 -156
- package/CHANGELOG.md +22 -0
- package/dist/{chunk-4Y6R4WEC.mjs → chunk-2A5RRQGG.mjs} +9 -22
- package/dist/{chunk-TS2ZX2VS.mjs → chunk-2UM72RJ7.mjs} +11 -15
- package/dist/{chunk-A56YQQHG.mjs → chunk-3NCUZIFP.mjs} +2 -2
- package/dist/chunk-3OYFOX3X.mjs +79 -0
- package/dist/{chunk-RP3SQYA3.mjs → chunk-3TTACBDP.mjs} +9 -4
- package/dist/chunk-4GAWMKMI.mjs +710 -0
- package/dist/{chunk-VGSESELX.mjs → chunk-5FQIKDKP.mjs} +5 -5
- package/dist/{chunk-K3JYD4IU.mjs → chunk-5IS7G74I.mjs} +11 -4
- package/dist/chunk-6AW4KJHE.mjs +235 -0
- package/dist/chunk-6CR5N2JW.mjs +302 -0
- package/dist/{chunk-XIRTEFKH.mjs → chunk-6DZEXFNB.mjs} +36 -8
- package/dist/chunk-6O6KD7CE.mjs +271 -0
- package/dist/chunk-7PV3IWCN.mjs +33 -0
- package/dist/{chunk-SPJ5KXW7.mjs → chunk-7S5AESZO.mjs} +5 -5
- package/dist/{chunk-RYCLWMZ7.mjs → chunk-ABFDMHOR.mjs} +9 -7
- package/dist/{chunk-SWGT756Z.mjs → chunk-AMQZRHEZ.mjs} +10 -4
- package/dist/{chunk-WAZD7NFU.mjs → chunk-BKNFWEH2.mjs} +6 -6
- package/dist/{chunk-CLIN5525.mjs → chunk-C7CQJNMR.mjs} +1 -1
- package/dist/{chunk-D4ILTPOG.mjs → chunk-CFMQP5QS.mjs} +5 -4
- package/dist/{chunk-VPBN3WOO.mjs → chunk-DGHAXJBN.mjs} +9 -7
- package/dist/chunk-DOEO3CDL.mjs +27 -0
- package/dist/{chunk-5MEWU56Z.mjs → chunk-DUJTAXMH.mjs} +11 -6
- package/dist/{chunk-GGM2UYGG.mjs → chunk-EBXQWIYG.mjs} +10 -4
- package/dist/chunk-EWRB4PAD.mjs +468 -0
- package/dist/{chunk-ZSHYDDRB.mjs → chunk-FAKPBKLT.mjs} +6 -2
- package/dist/chunk-FNQXOAYJ.mjs +169 -0
- package/dist/{chunk-A6AAWBPF.mjs → chunk-GHC7LLUX.mjs} +13 -4
- package/dist/chunk-HBZLGDIN.mjs +507 -0
- package/dist/{chunk-SIZMLSRU.mjs → chunk-HISNT2MG.mjs} +8 -6
- package/dist/{chunk-CGH4DRNG.mjs → chunk-HVY6KCCF.mjs} +10 -7
- package/dist/chunk-I3RZS7V2.mjs +136 -0
- package/dist/chunk-IAE3F7DR.mjs +1962 -0
- package/dist/{chunk-UT4KJR7V.mjs → chunk-IHMFS7NZ.mjs} +35 -74
- package/dist/{chunk-PCPLO5HT.mjs → chunk-IOJRDS6V.mjs} +96 -14
- package/dist/{chunk-LHYCMLVA.mjs → chunk-JKGDCQTZ.mjs} +11 -4
- package/dist/{chunk-H45TKD34.mjs → chunk-JMHR3YGZ.mjs} +1 -1
- package/dist/{chunk-4MN6UQHG.mjs → chunk-K5A5L6T2.mjs} +17 -39
- package/dist/chunk-LV35NGVG.mjs +272 -0
- package/dist/{chunk-FZIXGLMV.mjs → chunk-M3FV7LOK.mjs} +5 -12
- package/dist/{chunk-FMAXJ2SI.mjs → chunk-MBON7YRJ.mjs} +1 -1
- package/dist/chunk-MIZQHHUO.mjs +441 -0
- package/dist/chunk-MN5NYQCL.mjs +29 -0
- package/dist/chunk-NL3ZO62D.mjs +31 -0
- package/dist/{chunk-Q76O3RIQ.mjs → chunk-NMOI6CQD.mjs} +1 -1
- package/dist/{chunk-P6AM5V7O.mjs → chunk-OODBHKG7.mjs} +1 -1
- package/dist/chunk-PBL4OQV2.mjs +283 -0
- package/dist/{chunk-Y4QFWRNR.mjs → chunk-PU4YZQXV.mjs} +17 -18
- package/dist/chunk-QMY3AZJH.mjs +80 -0
- package/dist/{chunk-BL3DXM2X.mjs → chunk-QZ4RE6NA.mjs} +11 -4
- package/dist/{chunk-VACKZOMY.mjs → chunk-R3VSPKNP.mjs} +3 -3
- package/dist/{chunk-OPNQAVVH.mjs → chunk-RJI6GKVF.mjs} +8 -6
- package/dist/{chunk-WG6JGJXB.mjs → chunk-T4BJLT57.mjs} +1 -1
- package/dist/chunk-UMTOX62O.mjs +415 -0
- package/dist/{chunk-7MMXNK3C.mjs → chunk-VLARHE5V.mjs} +8 -6
- package/dist/{chunk-2I5S2AMY.mjs → chunk-XREGSKX3.mjs} +2 -2
- package/dist/{chunk-JNQORUPP.mjs → chunk-YJG55G2H.mjs} +14 -11
- package/dist/{chunk-ZRSDX6OW.mjs → chunk-ZC45IGZO.mjs} +33 -30
- package/dist/components/ui/add-column-modal.js +42 -14
- package/dist/components/ui/add-column-modal.mjs +5 -5
- package/dist/components/ui/add-lead-modal.js +42 -11
- package/dist/components/ui/add-lead-modal.mjs +3 -3
- package/dist/components/ui/advisor-card.js +497 -0
- package/dist/components/ui/advisor-card.mjs +13 -0
- package/dist/components/ui/ai-assistant-drawer.js +11 -10
- package/dist/components/ui/ai-assistant-drawer.mjs +3 -3
- package/dist/components/ui/alert-dialog.js +2 -2
- package/dist/components/ui/alert-dialog.mjs +2 -2
- package/dist/components/ui/appointment-action-dialogs.js +1160 -0
- package/dist/components/ui/appointment-action-dialogs.mjs +23 -0
- package/dist/components/ui/appointment-availability-settings.js +1590 -0
- package/dist/components/ui/appointment-availability-settings.mjs +23 -0
- package/dist/components/ui/appointment-book-dialog.js +1744 -0
- package/dist/components/ui/appointment-book-dialog.mjs +27 -0
- package/dist/components/ui/appointment-calendar-view.js +833 -0
- package/dist/components/ui/appointment-calendar-view.mjs +14 -0
- package/dist/components/ui/appointment-detail-sheet.js +1517 -0
- package/dist/components/ui/appointment-detail-sheet.mjs +24 -0
- package/dist/components/ui/appointment-gmail-connect.js +467 -0
- package/dist/components/ui/appointment-gmail-connect.mjs +14 -0
- package/dist/components/ui/appointment-mini-card.js +345 -0
- package/dist/components/ui/appointment-mini-card.mjs +11 -0
- package/dist/components/ui/appointment-time-slot-picker.js +311 -0
- package/dist/components/ui/appointment-time-slot-picker.mjs +13 -0
- package/dist/components/ui/appointment-upcoming-card.js +1268 -0
- package/dist/components/ui/appointment-upcoming-card.mjs +21 -0
- package/dist/components/ui/backoffice-alert-history-chart.js +11 -5
- package/dist/components/ui/backoffice-alert-history-chart.mjs +5 -4
- package/dist/components/ui/backoffice-alerts-chart.js +786 -0
- package/dist/components/ui/backoffice-alerts-chart.mjs +19 -0
- package/dist/components/ui/backoffice-connections-chart.js +817 -0
- package/dist/components/ui/backoffice-connections-chart.mjs +19 -0
- package/dist/components/ui/backoffice-contact-history-chart.js +11 -5
- package/dist/components/ui/backoffice-contact-history-chart.mjs +5 -4
- package/dist/components/ui/badge.js +6 -6
- package/dist/components/ui/badge.mjs +1 -1
- package/dist/components/ui/borrowing-capacity-line-chart.js +30 -21
- package/dist/components/ui/borrowing-capacity-line-chart.mjs +5 -4
- package/dist/components/ui/button.js +2 -2
- package/dist/components/ui/button.mjs +1 -1
- package/dist/components/ui/calendar.js +2 -2
- package/dist/components/ui/calendar.mjs +2 -2
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/card.mjs +1 -1
- package/dist/components/ui/cash-balance-line-chart.js +31 -23
- package/dist/components/ui/cash-balance-line-chart.mjs +5 -4
- package/dist/components/ui/cashflow-bar-chart.js +12 -5
- package/dist/components/ui/cashflow-bar-chart.mjs +5 -4
- package/dist/components/ui/chip.js +97 -18
- package/dist/components/ui/chip.mjs +3 -2
- package/dist/components/ui/color-picker.js +158 -28
- package/dist/components/ui/color-picker.mjs +3 -1
- package/dist/components/ui/data-table.js +140 -119
- package/dist/components/ui/data-table.mjs +3 -2
- package/dist/components/ui/date-picker.js +48 -27
- package/dist/components/ui/date-picker.mjs +4 -3
- package/dist/components/ui/dialog.js +37 -9
- package/dist/components/ui/dialog.mjs +2 -2
- package/dist/components/ui/expense-bar-chart.js +12 -5
- package/dist/components/ui/expense-bar-chart.mjs +5 -4
- package/dist/components/ui/field.mjs +2 -2
- package/dist/components/ui/financial-cards.js +322 -155
- package/dist/components/ui/financial-cards.mjs +5 -3
- package/dist/components/ui/financial-drawers.js +2 -2
- package/dist/components/ui/financial-drawers.mjs +3 -3
- package/dist/components/ui/financial-sections.js +14 -10
- package/dist/components/ui/financial-sections.mjs +6 -5
- package/dist/components/ui/income-bar-chart.js +12 -5
- package/dist/components/ui/income-bar-chart.mjs +5 -4
- package/dist/components/ui/input-group.js +2 -2
- package/dist/components/ui/input-group.mjs +2 -2
- package/dist/components/ui/kanban-column.js +52 -44
- package/dist/components/ui/kanban-column.mjs +7 -5
- package/dist/components/ui/opportunity-card.js +52 -44
- package/dist/components/ui/opportunity-card.mjs +6 -4
- package/dist/components/ui/opportunity-edit-modals.js +1367 -1263
- package/dist/components/ui/opportunity-edit-modals.mjs +8 -8
- package/dist/components/ui/opportunity-summary-tab.js +2744 -2157
- package/dist/components/ui/opportunity-summary-tab.mjs +14 -14
- package/dist/components/ui/page-header.js +92 -0
- package/dist/components/ui/page-header.mjs +8 -0
- package/dist/components/ui/page-top-bar.js +88 -0
- package/dist/components/ui/page-top-bar.mjs +8 -0
- package/dist/components/ui/pagination.js +303 -19
- package/dist/components/ui/pagination.mjs +11 -4
- package/dist/components/ui/pipeline-board.js +205 -191
- package/dist/components/ui/pipeline-board.mjs +9 -7
- package/dist/components/ui/pipeline-dialogs.js +114 -65
- package/dist/components/ui/pipeline-dialogs.mjs +7 -6
- package/dist/components/ui/pipeline-primitives.js +6 -6
- package/dist/components/ui/pipeline-primitives.mjs +2 -2
- package/dist/components/ui/property-cashflow-doughnut-chart.js +14 -12
- package/dist/components/ui/property-cashflow-doughnut-chart.mjs +5 -4
- package/dist/components/ui/property-debt-equity-doughnut-chart.js +14 -12
- package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +5 -4
- package/dist/components/ui/property-mobile-estimate-line-chart.js +16 -14
- package/dist/components/ui/property-mobile-estimate-line-chart.mjs +5 -4
- package/dist/components/ui/sidebar-nav.js +234 -95
- package/dist/components/ui/sidebar-nav.mjs +4 -1
- package/dist/components/ui/stage-timeline.js +6 -6
- package/dist/components/ui/stage-timeline.mjs +3 -3
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +18 -16
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +5 -4
- package/dist/components/ui/transactions-income-expense-bar-chart.js +28 -12
- package/dist/components/ui/transactions-income-expense-bar-chart.mjs +5 -4
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +18 -16
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +5 -4
- package/dist/index.js +12899 -9343
- package/dist/index.mjs +256 -190
- package/dist/styles.css +1 -1
- package/package.json +71 -1
- package/src/components/index.tsx +114 -9
- package/src/components/ui/add-column-modal.tsx +7 -7
- package/src/components/ui/add-lead-modal.tsx +6 -3
- package/src/components/ui/advisor-card.tsx +227 -0
- package/src/components/ui/ai-assistant-drawer.tsx +4 -3
- package/src/components/ui/appointment-action-dialogs.tsx +297 -0
- package/src/components/ui/appointment-availability-settings.tsx +645 -0
- package/src/components/ui/appointment-book-dialog.tsx +618 -0
- package/src/components/ui/appointment-calendar-view.tsx +510 -0
- package/src/components/ui/appointment-detail-sheet.tsx +415 -0
- package/src/components/ui/appointment-gmail-connect.tsx +188 -0
- package/src/components/ui/appointment-mini-card.tsx +104 -0
- package/src/components/ui/appointment-time-slot-picker.tsx +123 -0
- package/src/components/ui/appointment-upcoming-card.tsx +635 -0
- package/src/components/ui/backoffice-alert-history-chart.tsx +10 -2
- package/src/components/ui/backoffice-alerts-chart.tsx +312 -0
- package/src/components/ui/backoffice-connections-chart.tsx +339 -0
- package/src/components/ui/backoffice-contact-history-chart.tsx +10 -2
- package/src/components/ui/badge.tsx +12 -6
- package/src/components/ui/borrowing-capacity-line-chart.tsx +4 -11
- package/src/components/ui/button.tsx +2 -2
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/cash-balance-line-chart.tsx +4 -23
- package/src/components/ui/cashflow-bar-chart.tsx +9 -2
- package/src/components/ui/chart-shared.tsx +4 -11
- package/src/components/ui/chip.tsx +23 -19
- package/src/components/ui/color-picker.tsx +4 -2
- package/src/components/ui/data-table.tsx +28 -74
- package/src/components/ui/date-picker.tsx +42 -37
- package/src/components/ui/dialog.tsx +72 -6
- package/src/components/ui/expense-bar-chart.tsx +11 -2
- package/src/components/ui/financial-cards.tsx +99 -10
- package/src/components/ui/income-bar-chart.tsx +11 -2
- package/src/components/ui/opportunity-card.tsx +10 -39
- package/src/components/ui/opportunity-edit-modals.tsx +98 -36
- package/src/components/ui/opportunity-summary-tab.tsx +548 -232
- package/src/components/ui/page-header.tsx +57 -0
- package/src/components/ui/page-top-bar.tsx +48 -0
- package/src/components/ui/pagination.tsx +171 -22
- package/src/components/ui/pipeline-board.tsx +12 -5
- package/src/components/ui/property-cashflow-doughnut-chart.tsx +3 -1
- package/src/components/ui/property-debt-equity-doughnut-chart.tsx +3 -1
- package/src/components/ui/property-mobile-estimate-line-chart.tsx +3 -1
- package/src/components/ui/sidebar-nav.tsx +36 -37
- package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +3 -1
- package/src/components/ui/transactions-income-expense-bar-chart.tsx +12 -9
- package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +3 -1
- package/src/lib/format-currency.ts +44 -0
- package/src/lib/format-date.ts +50 -0
- package/src/lib/opportunity-constants.ts +12 -0
- package/src/styles/globals.css +17 -15
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +14 -0
- package/dist/chunk-S4QRUQNW.mjs +0 -475
- package/dist/chunk-URGMJAE3.mjs +0 -1885
- package/dist/chunk-WNGWBVLV.mjs +0 -148
- package/dist/{chunk-LLVQKSU3.mjs → chunk-GD4BJDJR.mjs} +3 -3
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OpportunitySummaryTab
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
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-
|
|
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-
|
|
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,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
|
+
});
|
|
@@ -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
|
|
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/
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
314
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
334
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
354
|
-
/* @__PURE__ */ (0,
|
|
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
|
});
|