@wealthx/shadcn 1.1.0 → 1.2.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.
- package/.turbo/turbo-build.log +235 -154
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-6OJF6XRN.mjs → chunk-24FUO7TD.mjs} +4 -8
- package/dist/{chunk-4AJ5HWHD.mjs → chunk-2I5S2AMY.mjs} +3 -3
- package/dist/{chunk-GPRJQ24C.mjs → chunk-34NWQURD.mjs} +2 -2
- package/dist/{chunk-MQ72DIBH.mjs → chunk-3GF7OVTP.mjs} +14 -5
- package/dist/chunk-3WMX6KWS.mjs +245 -0
- package/dist/{chunk-PMKODV6M.mjs → chunk-462HMNO4.mjs} +6 -10
- package/dist/chunk-4CX4SBRO.mjs +153 -0
- package/dist/chunk-4MN6UQHG.mjs +443 -0
- package/dist/chunk-4Y6R4WEC.mjs +250 -0
- package/dist/{chunk-BGP2N52Z.mjs → chunk-66MI7Q4B.mjs} +5 -5
- package/dist/{chunk-CGOKTPXU.mjs → chunk-6JQFUE5I.mjs} +20 -23
- package/dist/{chunk-Z3MK2KKZ.mjs → chunk-7DHU4VGG.mjs} +7 -3
- package/dist/chunk-7MMXNK3C.mjs +317 -0
- package/dist/{chunk-VZ2NR7L3.mjs → chunk-7PYJD5JI.mjs} +35 -27
- package/dist/{chunk-JU2RUWHF.mjs → chunk-7XJHLGUV.mjs} +1 -1
- package/dist/{chunk-BMFN37JH.mjs → chunk-7YAU5CY6.mjs} +1 -1
- package/dist/chunk-A56YQQHG.mjs +402 -0
- package/dist/{chunk-GLW2UO6O.mjs → chunk-BL3DXM2X.mjs} +84 -62
- package/dist/{chunk-SLWCCURD.mjs → chunk-CLIN5525.mjs} +8 -4
- package/dist/{chunk-3VQNJ235.mjs → chunk-CSDO6VBW.mjs} +7 -0
- package/dist/chunk-D4ILTPOG.mjs +293 -0
- package/dist/{chunk-HS7TFG7V.mjs → chunk-D6ID6M4V.mjs} +1 -1
- package/dist/chunk-DOH3EHX7.mjs +378 -0
- package/dist/{chunk-MJIEMGRD.mjs → chunk-EFRENWEJ.mjs} +9 -17
- package/dist/{chunk-YBXCIF5Q.mjs → chunk-ERGGHC2V.mjs} +36 -49
- package/dist/{chunk-OXQQNQZI.mjs → chunk-FEZKMUCF.mjs} +10 -1
- package/dist/{chunk-55CEW76V.mjs → chunk-FH6QVUVZ.mjs} +1 -1
- package/dist/chunk-FMAXJ2SI.mjs +71 -0
- package/dist/chunk-FZIXGLMV.mjs +173 -0
- package/dist/chunk-GGM2UYGG.mjs +273 -0
- package/dist/{chunk-DS2AMHN2.mjs → chunk-GYMYRIZP.mjs} +2 -2
- package/dist/{chunk-KQDD5MU3.mjs → chunk-H45TKD34.mjs} +5 -5
- package/dist/{chunk-BBJBJSXQ.mjs → chunk-J5UICVJS.mjs} +1 -1
- package/dist/{chunk-RL772EH7.mjs → chunk-JHJHG4GO.mjs} +4 -12
- package/dist/{chunk-RN67642N.mjs → chunk-JNQORUPP.mjs} +49 -42
- package/dist/{chunk-5JGQAAQV.mjs → chunk-K3JYD4IU.mjs} +86 -63
- package/dist/{chunk-FHNT55I5.mjs → chunk-KUDCQ4FI.mjs} +4 -4
- package/dist/{chunk-UEL4RD5P.mjs → chunk-LHYCMLVA.mjs} +82 -68
- package/dist/{chunk-NLLKTU4B.mjs → chunk-LLVQKSU3.mjs} +21 -17
- package/dist/{chunk-KKHTJNMM.mjs → chunk-MARPPFOJ.mjs} +8 -4
- package/dist/{chunk-6AFMNC42.mjs → chunk-N2PT566P.mjs} +15 -11
- package/dist/{chunk-YN5SYTOO.mjs → chunk-NQPOYKAQ.mjs} +9 -5
- package/dist/{chunk-ZZV5JVNW.mjs → chunk-NSLMILBT.mjs} +3 -7
- package/dist/chunk-OGOYQ7BG.mjs +150 -0
- package/dist/chunk-OPNQAVVH.mjs +162 -0
- package/dist/{chunk-3NQGYJEZ.mjs → chunk-P6AM5V7O.mjs} +10 -18
- package/dist/{chunk-CZ3BW5GL.mjs → chunk-P76HMUI6.mjs} +5 -11
- package/dist/chunk-PCPLO5HT.mjs +671 -0
- package/dist/chunk-PG6K5XEC.mjs +475 -0
- package/dist/{chunk-DDPA2XXS.mjs → chunk-PMB3A7V3.mjs} +2 -2
- package/dist/chunk-PR6V5XKM.mjs +209 -0
- package/dist/{chunk-46OFHMQA.mjs → chunk-Q76O3RIQ.mjs} +10 -6
- package/dist/chunk-RGU7HOEC.mjs +140 -0
- package/dist/{chunk-JF4PHPD5.mjs → chunk-RGVKLTLH.mjs} +4 -4
- package/dist/{chunk-VG6UF6UT.mjs → chunk-RP3SQYA3.mjs} +2 -2
- package/dist/chunk-RYCLWMZ7.mjs +162 -0
- package/dist/chunk-SIZMLSRU.mjs +162 -0
- package/dist/chunk-SPJ5KXW7.mjs +199 -0
- package/dist/chunk-SWGT756Z.mjs +210 -0
- package/dist/chunk-SYOD63OZ.mjs +225 -0
- package/dist/chunk-TS2ZX2VS.mjs +270 -0
- package/dist/chunk-UFYSFDER.mjs +42 -0
- package/dist/chunk-VACKZOMY.mjs +190 -0
- package/dist/chunk-VLQZANBF.mjs +42 -0
- package/dist/chunk-VPBN3WOO.mjs +164 -0
- package/dist/chunk-WA6O6EUR.mjs +1885 -0
- package/dist/{chunk-E3K6O4FZ.mjs → chunk-WAZD7NFU.mjs} +5 -2
- package/dist/chunk-WG6JGJXB.mjs +165 -0
- package/dist/{chunk-I64K754C.mjs → chunk-WNGWBVLV.mjs} +2 -2
- package/dist/{chunk-3U7SD3MS.mjs → chunk-WOEHFRGB.mjs} +3 -3
- package/dist/{chunk-DKZRJOMF.mjs → chunk-XIRTEFKH.mjs} +12 -12
- package/dist/chunk-Y6DWJSKZ.mjs +79 -0
- package/dist/{chunk-CJ46PDXE.mjs → chunk-ZRO5JO3H.mjs} +106 -66
- package/dist/{chunk-VYMHBV6D.mjs → chunk-ZU4NV6RG.mjs} +5 -3
- package/dist/components/ui/accordion.js +40 -4
- package/dist/components/ui/accordion.mjs +2 -2
- package/dist/components/ui/add-column-modal.js +789 -0
- package/dist/components/ui/add-column-modal.mjs +17 -0
- package/dist/components/ui/add-lead-modal.js +647 -0
- package/dist/components/ui/add-lead-modal.mjs +16 -0
- package/dist/components/ui/ai-assistant-drawer.js +686 -0
- package/dist/components/ui/ai-assistant-drawer.mjs +16 -0
- package/dist/components/ui/alert-dialog.js +37 -5
- package/dist/components/ui/alert-dialog.mjs +4 -4
- package/dist/components/ui/alert.js +37 -11
- package/dist/components/ui/alert.mjs +2 -2
- package/dist/components/ui/avatar.js +36 -8
- package/dist/components/ui/avatar.mjs +2 -2
- package/dist/components/ui/backoffice-alert-history-chart.js +624 -0
- package/dist/components/ui/backoffice-alert-history-chart.mjs +16 -0
- package/dist/components/ui/backoffice-contact-history-chart.js +687 -0
- package/dist/components/ui/backoffice-contact-history-chart.mjs +16 -0
- package/dist/components/ui/badge.js +37 -2
- package/dist/components/ui/badge.mjs +2 -2
- package/dist/components/ui/borrowing-capacity-line-chart.js +640 -0
- package/dist/components/ui/borrowing-capacity-line-chart.mjs +16 -0
- package/dist/components/ui/button.js +35 -3
- package/dist/components/ui/button.mjs +2 -2
- package/dist/components/ui/calendar.js +43 -19
- package/dist/components/ui/calendar.mjs +3 -3
- package/dist/components/ui/card.js +40 -4
- package/dist/components/ui/card.mjs +2 -2
- package/dist/components/ui/cash-balance-line-chart.js +628 -0
- package/dist/components/ui/cash-balance-line-chart.mjs +16 -0
- package/dist/components/ui/cashflow-bar-chart.js +124 -70
- package/dist/components/ui/cashflow-bar-chart.mjs +8 -8
- package/dist/components/ui/checkbox.js +36 -5
- package/dist/components/ui/checkbox.mjs +2 -3
- package/dist/components/ui/chip.js +37 -2
- package/dist/components/ui/chip.mjs +3 -3
- package/dist/components/ui/combobox.js +68 -49
- package/dist/components/ui/combobox.mjs +2 -2
- package/dist/components/ui/data-table.js +160 -88
- package/dist/components/ui/data-table.mjs +10 -11
- package/dist/components/ui/date-picker.js +44 -20
- package/dist/components/ui/date-picker.mjs +6 -7
- package/dist/components/ui/dialog.js +44 -12
- package/dist/components/ui/dialog.mjs +4 -4
- package/dist/components/ui/drawer.js +46 -10
- package/dist/components/ui/drawer.mjs +3 -3
- package/dist/components/ui/dropdown-menu.js +40 -16
- package/dist/components/ui/dropdown-menu.mjs +3 -3
- package/dist/components/ui/empty.js +41 -5
- package/dist/components/ui/empty.mjs +2 -2
- package/dist/components/ui/expense-bar-chart.js +166 -67
- package/dist/components/ui/expense-bar-chart.mjs +8 -8
- package/dist/components/ui/field.js +53 -21
- package/dist/components/ui/field.mjs +4 -4
- package/dist/components/ui/financial-cards.js +1002 -0
- package/dist/components/ui/financial-cards.mjs +24 -0
- package/dist/components/ui/financial-drawers.js +637 -0
- package/dist/components/ui/financial-drawers.mjs +17 -0
- package/dist/components/ui/financial-primitives.js +218 -0
- package/dist/components/ui/financial-primitives.mjs +22 -0
- package/dist/components/ui/financial-sections.js +1422 -0
- package/dist/components/ui/financial-sections.mjs +30 -0
- package/dist/components/ui/form-primitives.js +682 -0
- package/dist/components/ui/form-primitives.mjs +19 -0
- package/dist/components/ui/income-bar-chart.js +164 -66
- package/dist/components/ui/income-bar-chart.mjs +8 -8
- package/dist/components/ui/input-group.js +43 -7
- package/dist/components/ui/input-group.mjs +5 -5
- package/dist/components/ui/input-otp.js +39 -3
- package/dist/components/ui/input-otp.mjs +2 -2
- package/dist/components/ui/input.js +34 -2
- package/dist/components/ui/input.mjs +2 -2
- package/dist/components/ui/kanban-column.js +1143 -0
- package/dist/components/ui/kanban-column.mjs +20 -0
- package/dist/components/ui/label.js +35 -7
- package/dist/components/ui/label.mjs +2 -2
- package/dist/components/ui/opportunity-card.js +960 -0
- package/dist/components/ui/opportunity-card.mjs +20 -0
- package/dist/components/ui/opportunity-edit-modals.js +3360 -0
- package/dist/components/ui/opportunity-edit-modals.mjs +37 -0
- package/dist/components/ui/opportunity-summary-tab.js +4365 -0
- package/dist/components/ui/opportunity-summary-tab.mjs +34 -0
- package/dist/components/ui/pagination.js +35 -3
- package/dist/components/ui/pagination.mjs +3 -3
- package/dist/components/ui/pipeline-alerts.js +103 -0
- package/dist/components/ui/pipeline-alerts.mjs +8 -0
- package/dist/components/ui/pipeline-board.js +1408 -0
- package/dist/components/ui/pipeline-board.mjs +24 -0
- package/dist/components/ui/pipeline-chart.js +216 -0
- package/dist/components/ui/pipeline-chart.mjs +10 -0
- package/dist/components/ui/pipeline-dialogs.js +1183 -0
- package/dist/components/ui/pipeline-dialogs.mjs +23 -0
- package/dist/components/ui/pipeline-primitives.js +300 -0
- package/dist/components/ui/pipeline-primitives.mjs +11 -0
- package/dist/components/ui/popover.js +45 -4
- package/dist/components/ui/popover.mjs +3 -3
- package/dist/components/ui/progress.js +33 -1
- package/dist/components/ui/progress.mjs +2 -2
- package/dist/components/ui/property-cashflow-doughnut-chart.js +523 -0
- package/dist/components/ui/property-cashflow-doughnut-chart.mjs +16 -0
- package/dist/components/ui/property-debt-equity-doughnut-chart.js +521 -0
- package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +16 -0
- package/dist/components/ui/property-mobile-estimate-line-chart.js +683 -0
- package/dist/components/ui/property-mobile-estimate-line-chart.mjs +16 -0
- package/dist/components/ui/radio-group.js +33 -1
- package/dist/components/ui/radio-group.mjs +2 -2
- package/dist/components/ui/select.js +66 -26
- package/dist/components/ui/select.mjs +3 -3
- package/dist/components/ui/separator.js +33 -1
- package/dist/components/ui/separator.mjs +2 -2
- package/dist/components/ui/sheet.js +37 -9
- package/dist/components/ui/sheet.mjs +3 -3
- package/dist/components/ui/skeleton.js +33 -1
- package/dist/components/ui/skeleton.mjs +2 -2
- package/dist/components/ui/slider.js +86 -102
- package/dist/components/ui/slider.mjs +2 -2
- package/dist/components/ui/spinner.js +33 -1
- package/dist/components/ui/spinner.mjs +2 -2
- package/dist/components/ui/stage-timeline.js +579 -0
- package/dist/components/ui/stage-timeline.mjs +15 -0
- package/dist/components/ui/switch.js +37 -4
- package/dist/components/ui/switch.mjs +2 -3
- package/dist/components/ui/table.js +37 -5
- package/dist/components/ui/table.mjs +2 -2
- package/dist/components/ui/tabs.js +36 -12
- package/dist/components/ui/tabs.mjs +2 -2
- package/dist/components/ui/textarea.js +34 -2
- package/dist/components/ui/textarea.mjs +2 -2
- package/dist/components/ui/toggle-group.js +35 -4
- package/dist/components/ui/toggle-group.mjs +3 -4
- package/dist/components/ui/toggle.js +35 -4
- package/dist/components/ui/toggle.mjs +2 -3
- package/dist/components/ui/tooltip.js +51 -22
- package/dist/components/ui/tooltip.mjs +3 -3
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +528 -0
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +16 -0
- package/dist/components/ui/transactions-income-expense-bar-chart.js +77 -39
- package/dist/components/ui/transactions-income-expense-bar-chart.mjs +8 -8
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +528 -0
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +16 -0
- package/dist/index.js +11620 -3832
- package/dist/index.mjs +333 -161
- package/dist/lib/theme-provider.js +10 -1
- package/dist/lib/theme-provider.mjs +1 -1
- package/dist/lib/typography.js +8 -0
- package/dist/lib/typography.mjs +3 -1
- package/dist/lib/utils.js +33 -1
- package/dist/lib/utils.mjs +1 -1
- package/dist/styles.css +1 -1
- package/package.json +140 -5
- package/src/components/index.tsx +296 -42
- package/src/components/ui/accordion.tsx +6 -3
- package/src/components/ui/add-column-modal.tsx +339 -0
- package/src/components/ui/add-lead-modal.tsx +290 -0
- package/src/components/ui/ai-assistant-drawer.tsx +408 -0
- package/src/components/ui/alert-dialog.tsx +80 -54
- package/src/components/ui/alert.tsx +28 -28
- package/src/components/ui/avatar.tsx +30 -29
- package/src/components/ui/backoffice-alert-history-chart.tsx +261 -0
- package/src/components/ui/backoffice-contact-history-chart.tsx +326 -0
- package/src/components/ui/badge.tsx +17 -15
- package/src/components/ui/borrowing-capacity-line-chart.tsx +359 -0
- package/src/components/ui/button.tsx +30 -27
- package/src/components/ui/calendar.tsx +53 -67
- package/src/components/ui/card.tsx +27 -24
- package/src/components/ui/cash-balance-line-chart.tsx +304 -0
- package/src/components/ui/cashflow-bar-chart.tsx +106 -78
- package/src/components/ui/chart-shared.tsx +176 -15
- package/src/components/ui/checkbox.tsx +30 -26
- package/src/components/ui/combobox.tsx +78 -72
- package/src/components/ui/data-table.tsx +160 -99
- package/src/components/ui/date-picker.tsx +0 -2
- package/src/components/ui/dialog.tsx +70 -60
- package/src/components/ui/drawer.tsx +57 -48
- package/src/components/ui/dropdown-menu.tsx +90 -82
- package/src/components/ui/empty.tsx +31 -27
- package/src/components/ui/expense-bar-chart.tsx +85 -66
- package/src/components/ui/field.tsx +70 -62
- package/src/components/ui/financial-cards.tsx +830 -0
- package/src/components/ui/financial-drawers.tsx +339 -0
- package/src/components/ui/financial-primitives.tsx +331 -0
- package/src/components/ui/financial-sections.tsx +672 -0
- package/src/components/ui/form-primitives.tsx +536 -0
- package/src/components/ui/income-bar-chart.tsx +81 -61
- package/src/components/ui/input-group.tsx +41 -34
- package/src/components/ui/input-otp.tsx +29 -24
- package/src/components/ui/input.tsx +8 -8
- package/src/components/ui/kanban-column.tsx +333 -0
- package/src/components/ui/label.tsx +9 -12
- package/src/components/ui/opportunity-card.tsx +616 -0
- package/src/components/ui/opportunity-edit-modals.tsx +2528 -0
- package/src/components/ui/opportunity-summary-tab.tsx +579 -0
- package/src/components/ui/pipeline-alerts.tsx +74 -0
- package/src/components/ui/pipeline-board.tsx +268 -0
- package/src/components/ui/pipeline-chart.tsx +173 -0
- package/src/components/ui/pipeline-dialogs.tsx +303 -0
- package/src/components/ui/pipeline-primitives.tsx +108 -0
- package/src/components/ui/popover.tsx +41 -36
- package/src/components/ui/property-cashflow-doughnut-chart.tsx +189 -0
- package/src/components/ui/property-debt-equity-doughnut-chart.tsx +186 -0
- package/src/components/ui/property-mobile-estimate-line-chart.tsx +395 -0
- package/src/components/ui/select.tsx +65 -52
- package/src/components/ui/sheet.tsx +55 -52
- package/src/components/ui/slider.tsx +54 -77
- package/src/components/ui/stage-timeline.tsx +205 -0
- package/src/components/ui/switch.tsx +42 -29
- package/src/components/ui/table.tsx +28 -28
- package/src/components/ui/tabs.tsx +22 -28
- package/src/components/ui/textarea.tsx +8 -8
- package/src/components/ui/toggle-group.tsx +0 -2
- package/src/components/ui/toggle.tsx +13 -15
- package/src/components/ui/tooltip.tsx +30 -28
- package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +192 -0
- package/src/components/ui/transactions-income-expense-bar-chart.tsx +47 -39
- package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +192 -0
- package/src/lib/theme-provider.tsx +10 -0
- package/src/lib/typography.ts +9 -0
- package/src/lib/utils.ts +41 -3
- package/src/styles/globals.css +371 -124
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +27 -0
- package/dist/chunk-3EQP72AW.mjs +0 -58
- package/dist/chunk-K74JRTJR.mjs +0 -105
- package/dist/chunk-V7CNWJT3.mjs +0 -10
|
@@ -77,8 +77,40 @@ function useThemeVars() {
|
|
|
77
77
|
// src/lib/utils.ts
|
|
78
78
|
var import_clsx = require("clsx");
|
|
79
79
|
var import_tailwind_merge = require("tailwind-merge");
|
|
80
|
+
var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
|
|
81
|
+
extend: {
|
|
82
|
+
classGroups: {
|
|
83
|
+
"font-size": [
|
|
84
|
+
{
|
|
85
|
+
text: [
|
|
86
|
+
"display-large",
|
|
87
|
+
"display-medium",
|
|
88
|
+
"display-small",
|
|
89
|
+
"h1",
|
|
90
|
+
"h2",
|
|
91
|
+
"h3",
|
|
92
|
+
"h4",
|
|
93
|
+
"h5",
|
|
94
|
+
"h6",
|
|
95
|
+
"body-large",
|
|
96
|
+
"body-medium",
|
|
97
|
+
"body-small",
|
|
98
|
+
"label-large",
|
|
99
|
+
"label-medium",
|
|
100
|
+
"label-small",
|
|
101
|
+
"button",
|
|
102
|
+
"button-xs",
|
|
103
|
+
"caption",
|
|
104
|
+
"overline",
|
|
105
|
+
"code"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
80
112
|
function cn(...inputs) {
|
|
81
|
-
return
|
|
113
|
+
return twMerge((0, import_clsx.clsx)(inputs));
|
|
82
114
|
}
|
|
83
115
|
|
|
84
116
|
// src/components/ui/card.tsx
|
|
@@ -114,7 +146,7 @@ function CardTitle(_a) {
|
|
|
114
146
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
115
147
|
"div",
|
|
116
148
|
__spreadValues({
|
|
117
|
-
className: cn("
|
|
149
|
+
className: cn("text-label-large", className),
|
|
118
150
|
"data-slot": "card-title"
|
|
119
151
|
}, props)
|
|
120
152
|
);
|
|
@@ -183,7 +215,7 @@ function EmptyDescription(_a) {
|
|
|
183
215
|
"div",
|
|
184
216
|
__spreadValues({
|
|
185
217
|
className: cn(
|
|
186
|
-
"text-
|
|
218
|
+
"text-body-small leading-relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
|
|
187
219
|
className
|
|
188
220
|
),
|
|
189
221
|
"data-slot": "empty-description"
|
|
@@ -259,7 +291,7 @@ Slot.displayName = "Slot";
|
|
|
259
291
|
// src/components/ui/button.tsx
|
|
260
292
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
261
293
|
var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
262
|
-
"inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-sans text-
|
|
294
|
+
"inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-sans text-button whitespace-nowrap transition-all active:scale-[0.98] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
263
295
|
{
|
|
264
296
|
variants: {
|
|
265
297
|
variant: {
|
|
@@ -274,7 +306,7 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
274
306
|
},
|
|
275
307
|
size: {
|
|
276
308
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
277
|
-
xs: "h-6 gap-1 px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
309
|
+
xs: "h-6 gap-1 px-2 text-button-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
278
310
|
sm: "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
279
311
|
lg: "h-10 px-6 has-[>svg]:px-4",
|
|
280
312
|
icon: "size-9",
|
|
@@ -349,6 +381,7 @@ function hexToRgba(hex, alpha) {
|
|
|
349
381
|
return `rgba(${r},${g},${b},${alpha})`;
|
|
350
382
|
}
|
|
351
383
|
var DATASET_ALPHAS = [1, 0.72, 0.52, 0.36, 0.24, 0.15];
|
|
384
|
+
var FALLBACK_PRIMARY = "#33FF99";
|
|
352
385
|
var FALLBACK_TICK = "#9EAAB5";
|
|
353
386
|
function formatTooltipDate(iso, granularity) {
|
|
354
387
|
const d = new Date(iso);
|
|
@@ -357,27 +390,71 @@ function formatTooltipDate(iso, granularity) {
|
|
|
357
390
|
granularity === "daily" ? { month: "short", day: "numeric", year: "numeric" } : { month: "short", year: "numeric" }
|
|
358
391
|
);
|
|
359
392
|
}
|
|
360
|
-
function ChartLegendItem({
|
|
393
|
+
function ChartLegendItem({
|
|
394
|
+
label,
|
|
395
|
+
color,
|
|
396
|
+
lineStyle
|
|
397
|
+
}) {
|
|
361
398
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
362
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
399
|
+
lineStyle ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
400
|
+
"svg",
|
|
401
|
+
{
|
|
402
|
+
width: "20",
|
|
403
|
+
height: "10",
|
|
404
|
+
viewBox: "0 0 20 10",
|
|
405
|
+
"aria-hidden": "true",
|
|
406
|
+
style: { flexShrink: 0 },
|
|
407
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
408
|
+
"line",
|
|
409
|
+
{
|
|
410
|
+
x1: "0",
|
|
411
|
+
y1: "5",
|
|
412
|
+
x2: "20",
|
|
413
|
+
y2: "5",
|
|
414
|
+
stroke: color,
|
|
415
|
+
strokeWidth: "2",
|
|
416
|
+
strokeLinecap: "square",
|
|
417
|
+
strokeDasharray: lineStyle === "dashed" ? "5 3" : void 0
|
|
418
|
+
}
|
|
419
|
+
)
|
|
420
|
+
}
|
|
421
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
422
|
+
"div",
|
|
423
|
+
{
|
|
424
|
+
style: {
|
|
425
|
+
width: 10,
|
|
426
|
+
height: 10,
|
|
427
|
+
backgroundColor: color,
|
|
428
|
+
flexShrink: 0
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
),
|
|
363
432
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none", children: label })
|
|
364
433
|
] });
|
|
365
434
|
}
|
|
366
435
|
function ChartPeriodButton({
|
|
367
436
|
period,
|
|
368
437
|
active,
|
|
369
|
-
onClick
|
|
438
|
+
onClick,
|
|
439
|
+
unit = "M"
|
|
370
440
|
}) {
|
|
371
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
442
|
+
Button,
|
|
443
|
+
{
|
|
444
|
+
variant: active ? "default" : "outline",
|
|
445
|
+
size: "xs",
|
|
446
|
+
onClick,
|
|
447
|
+
children: [
|
|
448
|
+
period,
|
|
449
|
+
unit
|
|
450
|
+
]
|
|
451
|
+
}
|
|
452
|
+
);
|
|
375
453
|
}
|
|
376
454
|
|
|
377
455
|
// src/components/ui/income-bar-chart.tsx
|
|
378
456
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
379
|
-
import_chart.Chart.register(import_chart.CategoryScale, import_chart.LinearScale, import_chart.BarElement, import_chart.Tooltip, import_chart.Legend);
|
|
380
|
-
var FALLBACK_PRIMARY = "#33FF99";
|
|
457
|
+
import_chart.Chart.register(import_chart.CategoryScale, import_chart.LinearScale, import_chart.BarController, import_chart.BarElement, import_chart.Tooltip, import_chart.Legend);
|
|
381
458
|
function IncomeBarChart({
|
|
382
459
|
incomeData,
|
|
383
460
|
title = "Income",
|
|
@@ -404,10 +481,14 @@ function IncomeBarChart({
|
|
|
404
481
|
}, [granularity]);
|
|
405
482
|
const themeVars = useThemeVars();
|
|
406
483
|
const brandPrimary = themeVars["--theme-primary"] || FALLBACK_PRIMARY;
|
|
484
|
+
const fontFamily = themeVars["--font-sans"] || "Figtree, sans-serif";
|
|
407
485
|
const sliced = (0, import_react3.useMemo)(() => {
|
|
408
486
|
var _a, _b;
|
|
409
487
|
if (!((_a = incomeData == null ? void 0 : incomeData.months) == null ? void 0 : _a.length) || !incomeData.datasets.length) return null;
|
|
410
|
-
const count = Math.min(
|
|
488
|
+
const count = Math.min(
|
|
489
|
+
CHART_SLICE_COUNT[granularity][period],
|
|
490
|
+
incomeData.months.length
|
|
491
|
+
);
|
|
411
492
|
const start = incomeData.months.length - count;
|
|
412
493
|
return {
|
|
413
494
|
months: incomeData.months.slice(start),
|
|
@@ -447,65 +528,68 @@ function IncomeBarChart({
|
|
|
447
528
|
}))
|
|
448
529
|
};
|
|
449
530
|
}, [sliced, datasetColors, brandPrimary]);
|
|
450
|
-
const options = (0, import_react3.useMemo)(
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
531
|
+
const options = (0, import_react3.useMemo)(
|
|
532
|
+
() => ({
|
|
533
|
+
responsive: true,
|
|
534
|
+
maintainAspectRatio: false,
|
|
535
|
+
animation: { duration: 800, easing: "easeOutQuart" },
|
|
536
|
+
layout: { padding: 0 },
|
|
537
|
+
plugins: {
|
|
538
|
+
legend: { display: false },
|
|
539
|
+
tooltip: {
|
|
540
|
+
mode: "index",
|
|
541
|
+
intersect: false,
|
|
542
|
+
padding: 12,
|
|
543
|
+
cornerRadius: 0,
|
|
544
|
+
titleFont: { size: 11, weight: 600 },
|
|
545
|
+
bodyFont: { size: 12, weight: 500 },
|
|
546
|
+
callbacks: {
|
|
547
|
+
title: (tooltipItems) => {
|
|
548
|
+
var _a, _b, _c, _d;
|
|
549
|
+
const idx = (_a = tooltipItems[0]) == null ? void 0 : _a.dataIndex;
|
|
550
|
+
if (idx != null && ((_b = sliced == null ? void 0 : sliced.dates) == null ? void 0 : _b[idx])) {
|
|
551
|
+
return formatTooltipDate(sliced.dates[idx], granularity);
|
|
552
|
+
}
|
|
553
|
+
return (_d = (_c = tooltipItems[0]) == null ? void 0 : _c.label) != null ? _d : "";
|
|
554
|
+
},
|
|
555
|
+
label: (ctx) => {
|
|
556
|
+
const val = ctx.raw;
|
|
557
|
+
if (val === 0) return;
|
|
558
|
+
return ` ${ctx.dataset.label}: $${val.toLocaleString()}`;
|
|
470
559
|
}
|
|
471
|
-
return (_d = (_c = tooltipItems[0]) == null ? void 0 : _c.label) != null ? _d : "";
|
|
472
|
-
},
|
|
473
|
-
label: (ctx) => {
|
|
474
|
-
const val = ctx.raw;
|
|
475
|
-
if (val === 0) return null;
|
|
476
|
-
return ` ${ctx.dataset.label}: $${val.toLocaleString()}`;
|
|
477
560
|
}
|
|
478
561
|
}
|
|
479
|
-
}
|
|
480
|
-
},
|
|
481
|
-
scales: {
|
|
482
|
-
x: {
|
|
483
|
-
display: showXAxis,
|
|
484
|
-
stacked: true,
|
|
485
|
-
grid: { display: false },
|
|
486
|
-
border: { display: false },
|
|
487
|
-
ticks: { font: { size: 10 }, color: FALLBACK_TICK }
|
|
488
562
|
},
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
font: { size: 10 },
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
563
|
+
scales: {
|
|
564
|
+
x: {
|
|
565
|
+
display: showXAxis,
|
|
566
|
+
stacked: true,
|
|
567
|
+
grid: { display: false },
|
|
568
|
+
border: { display: false },
|
|
569
|
+
ticks: { font: { size: 10 }, color: FALLBACK_TICK }
|
|
570
|
+
},
|
|
571
|
+
y: {
|
|
572
|
+
display: showYAxis,
|
|
573
|
+
stacked: true,
|
|
574
|
+
grid: { display: false },
|
|
575
|
+
border: { display: false },
|
|
576
|
+
ticks: {
|
|
577
|
+
font: { size: 10 },
|
|
578
|
+
color: FALLBACK_TICK,
|
|
579
|
+
maxTicksLimit: 5,
|
|
580
|
+
padding: 8,
|
|
581
|
+
callback: (v) => `$${Number(v).toLocaleString()}`
|
|
582
|
+
}
|
|
500
583
|
}
|
|
501
584
|
}
|
|
502
|
-
}
|
|
503
|
-
|
|
585
|
+
}),
|
|
586
|
+
[showXAxis, showYAxis, sliced, granularity]
|
|
587
|
+
);
|
|
504
588
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
505
589
|
Card,
|
|
506
590
|
{
|
|
507
591
|
className: cn("w-full py-4 sm:py-6 gap-2", className),
|
|
508
|
-
style: { maxWidth: width },
|
|
592
|
+
style: { maxWidth: width, fontFamily },
|
|
509
593
|
children: [
|
|
510
594
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
|
|
511
595
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-sm sm:text-base", children: title }),
|
|
@@ -520,7 +604,14 @@ function IncomeBarChart({
|
|
|
520
604
|
)) }) })
|
|
521
605
|
] }),
|
|
522
606
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardContent, { className: "px-3 sm:px-6", children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Skeleton, { style: { height, width: "100%" } }) : !sliced ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Empty, { className: "flex-none p-4", style: { height }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EmptyDescription, { children: "No data available" }) }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
523
|
-
showLegend && legendPosition === "top" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex flex-wrap gap-x-3 gap-y-1.5 pb-2", children: sliced.datasets.map((ds, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
607
|
+
showLegend && legendPosition === "top" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex flex-wrap gap-x-3 gap-y-1.5 pb-2", children: sliced.datasets.map((ds, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
608
|
+
ChartLegendItem,
|
|
609
|
+
{
|
|
610
|
+
label: ds.label,
|
|
611
|
+
color: datasetColors[i]
|
|
612
|
+
},
|
|
613
|
+
ds.label
|
|
614
|
+
)) }),
|
|
524
615
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { height, width: "100%", position: "relative" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
525
616
|
import_react_chartjs_2.Chart,
|
|
526
617
|
{
|
|
@@ -531,7 +622,14 @@ function IncomeBarChart({
|
|
|
531
622
|
},
|
|
532
623
|
brandPrimary
|
|
533
624
|
) }),
|
|
534
|
-
showLegend && legendPosition === "bottom" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex flex-wrap gap-x-3 gap-y-1.5 pt-2", children: sliced.datasets.map((ds, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
625
|
+
showLegend && legendPosition === "bottom" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex flex-wrap gap-x-3 gap-y-1.5 pt-2", children: sliced.datasets.map((ds, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
626
|
+
ChartLegendItem,
|
|
627
|
+
{
|
|
628
|
+
label: ds.label,
|
|
629
|
+
color: datasetColors[i]
|
|
630
|
+
},
|
|
631
|
+
ds.label
|
|
632
|
+
)) })
|
|
535
633
|
] }) })
|
|
536
634
|
]
|
|
537
635
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IncomeBarChart
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-BL3DXM2X.mjs";
|
|
4
|
+
import "../../chunk-D6ID6M4V.mjs";
|
|
5
|
+
import "../../chunk-FZIXGLMV.mjs";
|
|
6
|
+
import "../../chunk-NQPOYKAQ.mjs";
|
|
7
|
+
import "../../chunk-CLIN5525.mjs";
|
|
8
|
+
import "../../chunk-2I5S2AMY.mjs";
|
|
9
9
|
import "../../chunk-DBHJ5KC3.mjs";
|
|
10
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-FEZKMUCF.mjs";
|
|
11
11
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
12
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-VLQZANBF.mjs";
|
|
13
13
|
import "../../chunk-FWCSY2DS.mjs";
|
|
14
14
|
export {
|
|
15
15
|
IncomeBarChart
|
|
@@ -72,8 +72,40 @@ var import_class_variance_authority2 = require("class-variance-authority");
|
|
|
72
72
|
// src/lib/utils.ts
|
|
73
73
|
var import_clsx = require("clsx");
|
|
74
74
|
var import_tailwind_merge = require("tailwind-merge");
|
|
75
|
+
var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
|
|
76
|
+
extend: {
|
|
77
|
+
classGroups: {
|
|
78
|
+
"font-size": [
|
|
79
|
+
{
|
|
80
|
+
text: [
|
|
81
|
+
"display-large",
|
|
82
|
+
"display-medium",
|
|
83
|
+
"display-small",
|
|
84
|
+
"h1",
|
|
85
|
+
"h2",
|
|
86
|
+
"h3",
|
|
87
|
+
"h4",
|
|
88
|
+
"h5",
|
|
89
|
+
"h6",
|
|
90
|
+
"body-large",
|
|
91
|
+
"body-medium",
|
|
92
|
+
"body-small",
|
|
93
|
+
"label-large",
|
|
94
|
+
"label-medium",
|
|
95
|
+
"label-small",
|
|
96
|
+
"button",
|
|
97
|
+
"button-xs",
|
|
98
|
+
"caption",
|
|
99
|
+
"overline",
|
|
100
|
+
"code"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
75
107
|
function cn(...inputs) {
|
|
76
|
-
return
|
|
108
|
+
return twMerge((0, import_clsx.clsx)(inputs));
|
|
77
109
|
}
|
|
78
110
|
|
|
79
111
|
// src/components/ui/button.tsx
|
|
@@ -131,7 +163,7 @@ Slot.displayName = "Slot";
|
|
|
131
163
|
// src/components/ui/button.tsx
|
|
132
164
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
133
165
|
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
134
|
-
"inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-sans text-
|
|
166
|
+
"inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-sans text-button whitespace-nowrap transition-all active:scale-[0.98] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
135
167
|
{
|
|
136
168
|
variants: {
|
|
137
169
|
variant: {
|
|
@@ -146,7 +178,7 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
146
178
|
},
|
|
147
179
|
size: {
|
|
148
180
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
149
|
-
xs: "h-6 gap-1 px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
181
|
+
xs: "h-6 gap-1 px-2 text-button-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
150
182
|
sm: "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
151
183
|
lg: "h-10 px-6 has-[>svg]:px-4",
|
|
152
184
|
icon: "size-9",
|
|
@@ -210,7 +242,7 @@ function Input(_a) {
|
|
|
210
242
|
"input",
|
|
211
243
|
__spreadValues({
|
|
212
244
|
className: cn(
|
|
213
|
-
"h-9 w-full min-w-0 border border-input bg-transparent px-3 py-1 text-
|
|
245
|
+
"h-9 w-full min-w-0 border border-input bg-transparent px-3 py-1 text-body-medium font-sans shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-label-medium file:text-foreground placeholder:font-normal placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30",
|
|
214
246
|
"focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-primary/20",
|
|
215
247
|
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
216
248
|
className
|
|
@@ -230,7 +262,7 @@ function Textarea(_a) {
|
|
|
230
262
|
__spreadValues({
|
|
231
263
|
className: cn(
|
|
232
264
|
// WealthX: removed shadow-xs (flat panels), added font-sans
|
|
233
|
-
"flex field-sizing-content min-h-16 w-full border border-input bg-transparent px-3 py-2 text-
|
|
265
|
+
"flex field-sizing-content min-h-16 w-full border border-input bg-transparent px-3 py-2 text-body-medium font-sans transition-[color,box-shadow] outline-none placeholder:font-normal placeholder:text-muted-foreground focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-primary/20 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
|
|
234
266
|
className
|
|
235
267
|
),
|
|
236
268
|
"data-slot": "textarea"
|
|
@@ -353,12 +385,16 @@ function InputGroupButton(_a) {
|
|
|
353
385
|
);
|
|
354
386
|
}
|
|
355
387
|
function InputGroupText(_a) {
|
|
356
|
-
var _b = _a, {
|
|
388
|
+
var _b = _a, {
|
|
389
|
+
className
|
|
390
|
+
} = _b, props = __objRest(_b, [
|
|
391
|
+
"className"
|
|
392
|
+
]);
|
|
357
393
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
358
394
|
"span",
|
|
359
395
|
__spreadValues({
|
|
360
396
|
className: cn(
|
|
361
|
-
"flex items-center gap-2 text-
|
|
397
|
+
"flex items-center gap-2 text-body-small text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
|
|
362
398
|
className
|
|
363
399
|
)
|
|
364
400
|
}, props)
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
InputGroupInput,
|
|
6
6
|
InputGroupText,
|
|
7
7
|
InputGroupTextarea
|
|
8
|
-
} from "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
8
|
+
} from "../../chunk-Q76O3RIQ.mjs";
|
|
9
|
+
import "../../chunk-34NWQURD.mjs";
|
|
10
|
+
import "../../chunk-GYMYRIZP.mjs";
|
|
11
|
+
import "../../chunk-2I5S2AMY.mjs";
|
|
12
12
|
import "../../chunk-DBHJ5KC3.mjs";
|
|
13
|
-
import "../../chunk-
|
|
13
|
+
import "../../chunk-VLQZANBF.mjs";
|
|
14
14
|
import "../../chunk-FWCSY2DS.mjs";
|
|
15
15
|
export {
|
|
16
16
|
InputGroup,
|
|
@@ -72,8 +72,40 @@ var import_lucide_react = require("lucide-react");
|
|
|
72
72
|
// src/lib/utils.ts
|
|
73
73
|
var import_clsx = require("clsx");
|
|
74
74
|
var import_tailwind_merge = require("tailwind-merge");
|
|
75
|
+
var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
|
|
76
|
+
extend: {
|
|
77
|
+
classGroups: {
|
|
78
|
+
"font-size": [
|
|
79
|
+
{
|
|
80
|
+
text: [
|
|
81
|
+
"display-large",
|
|
82
|
+
"display-medium",
|
|
83
|
+
"display-small",
|
|
84
|
+
"h1",
|
|
85
|
+
"h2",
|
|
86
|
+
"h3",
|
|
87
|
+
"h4",
|
|
88
|
+
"h5",
|
|
89
|
+
"h6",
|
|
90
|
+
"body-large",
|
|
91
|
+
"body-medium",
|
|
92
|
+
"body-small",
|
|
93
|
+
"label-large",
|
|
94
|
+
"label-medium",
|
|
95
|
+
"label-small",
|
|
96
|
+
"button",
|
|
97
|
+
"button-xs",
|
|
98
|
+
"caption",
|
|
99
|
+
"overline",
|
|
100
|
+
"code"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
75
107
|
function cn(...inputs) {
|
|
76
|
-
return
|
|
108
|
+
return twMerge((0, import_clsx.clsx)(inputs));
|
|
77
109
|
}
|
|
78
110
|
|
|
79
111
|
// src/components/ui/input-otp.tsx
|
|
@@ -99,7 +131,11 @@ function InputOTP(_a) {
|
|
|
99
131
|
);
|
|
100
132
|
}
|
|
101
133
|
function InputOTPGroup(_a) {
|
|
102
|
-
var _b = _a, {
|
|
134
|
+
var _b = _a, {
|
|
135
|
+
className
|
|
136
|
+
} = _b, props = __objRest(_b, [
|
|
137
|
+
"className"
|
|
138
|
+
]);
|
|
103
139
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
104
140
|
"div",
|
|
105
141
|
__spreadValues({
|
|
@@ -123,7 +159,7 @@ function InputOTPSlot(_a) {
|
|
|
123
159
|
"div",
|
|
124
160
|
__spreadProps(__spreadValues({
|
|
125
161
|
className: cn(
|
|
126
|
-
"relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-
|
|
162
|
+
"relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-body-small shadow-xs transition-all outline-none first:border-l aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40",
|
|
127
163
|
className
|
|
128
164
|
),
|
|
129
165
|
"data-active": isActive,
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
InputOTPGroup,
|
|
4
4
|
InputOTPSeparator,
|
|
5
5
|
InputOTPSlot
|
|
6
|
-
} from "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
6
|
+
} from "../../chunk-7DHU4VGG.mjs";
|
|
7
|
+
import "../../chunk-VLQZANBF.mjs";
|
|
8
8
|
import "../../chunk-FWCSY2DS.mjs";
|
|
9
9
|
export {
|
|
10
10
|
InputOTP,
|
|
@@ -53,8 +53,40 @@ module.exports = __toCommonJS(input_exports);
|
|
|
53
53
|
// src/lib/utils.ts
|
|
54
54
|
var import_clsx = require("clsx");
|
|
55
55
|
var import_tailwind_merge = require("tailwind-merge");
|
|
56
|
+
var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
|
|
57
|
+
extend: {
|
|
58
|
+
classGroups: {
|
|
59
|
+
"font-size": [
|
|
60
|
+
{
|
|
61
|
+
text: [
|
|
62
|
+
"display-large",
|
|
63
|
+
"display-medium",
|
|
64
|
+
"display-small",
|
|
65
|
+
"h1",
|
|
66
|
+
"h2",
|
|
67
|
+
"h3",
|
|
68
|
+
"h4",
|
|
69
|
+
"h5",
|
|
70
|
+
"h6",
|
|
71
|
+
"body-large",
|
|
72
|
+
"body-medium",
|
|
73
|
+
"body-small",
|
|
74
|
+
"label-large",
|
|
75
|
+
"label-medium",
|
|
76
|
+
"label-small",
|
|
77
|
+
"button",
|
|
78
|
+
"button-xs",
|
|
79
|
+
"caption",
|
|
80
|
+
"overline",
|
|
81
|
+
"code"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
56
88
|
function cn(...inputs) {
|
|
57
|
-
return
|
|
89
|
+
return twMerge((0, import_clsx.clsx)(inputs));
|
|
58
90
|
}
|
|
59
91
|
|
|
60
92
|
// src/components/ui/input.tsx
|
|
@@ -65,7 +97,7 @@ function Input(_a) {
|
|
|
65
97
|
"input",
|
|
66
98
|
__spreadValues({
|
|
67
99
|
className: cn(
|
|
68
|
-
"h-9 w-full min-w-0 border border-input bg-transparent px-3 py-1 text-
|
|
100
|
+
"h-9 w-full min-w-0 border border-input bg-transparent px-3 py-1 text-body-medium font-sans shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-label-medium file:text-foreground placeholder:font-normal placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30",
|
|
69
101
|
"focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-primary/20",
|
|
70
102
|
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
71
103
|
className
|