@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
|
@@ -9,47 +9,47 @@
|
|
|
9
9
|
* - DialogFooter: `border-t border-border pt-4` — separator above footer
|
|
10
10
|
* - Close button: no radius, `hover:bg-foreground/5`, `focus:ring-border`
|
|
11
11
|
*/
|
|
12
|
-
import { type ReactElement } from "react"
|
|
13
|
-
import * as React from "react"
|
|
14
|
-
import { XIcon } from "lucide-react"
|
|
15
|
-
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"
|
|
16
|
-
import { cn } from "@/lib/utils"
|
|
17
|
-
import { useThemeVars } from "@/lib/theme-provider"
|
|
18
|
-
import { buttonVariants } from "@/components/ui/button"
|
|
19
|
-
|
|
20
|
-
export type DialogProps = React.ComponentProps<typeof DialogPrimitive.Root
|
|
21
|
-
|
|
22
|
-
function Dialog({
|
|
23
|
-
...props
|
|
24
|
-
}: DialogProps): ReactElement {
|
|
25
|
-
return <DialogPrimitive.Root data-slot="dialog" {...props} />
|
|
12
|
+
import { type ReactElement } from "react";
|
|
13
|
+
import * as React from "react";
|
|
14
|
+
import { XIcon } from "lucide-react";
|
|
15
|
+
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
|
|
16
|
+
import { cn } from "@/lib/utils";
|
|
17
|
+
import { useThemeVars } from "@/lib/theme-provider";
|
|
18
|
+
import { buttonVariants } from "@/components/ui/button";
|
|
19
|
+
|
|
20
|
+
export type DialogProps = React.ComponentProps<typeof DialogPrimitive.Root>;
|
|
21
|
+
|
|
22
|
+
function Dialog({ ...props }: DialogProps): ReactElement {
|
|
23
|
+
return <DialogPrimitive.Root data-slot="dialog" {...props} />;
|
|
26
24
|
}
|
|
27
25
|
|
|
28
|
-
export type DialogTriggerProps = React.ComponentProps<
|
|
26
|
+
export type DialogTriggerProps = React.ComponentProps<
|
|
27
|
+
typeof DialogPrimitive.Trigger
|
|
28
|
+
>;
|
|
29
29
|
|
|
30
|
-
function DialogTrigger({
|
|
31
|
-
...props
|
|
32
|
-
}: DialogTriggerProps): ReactElement {
|
|
33
|
-
return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />
|
|
30
|
+
function DialogTrigger({ ...props }: DialogTriggerProps): ReactElement {
|
|
31
|
+
return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
|
|
34
32
|
}
|
|
35
33
|
|
|
36
|
-
export type DialogPortalProps = React.ComponentProps<
|
|
34
|
+
export type DialogPortalProps = React.ComponentProps<
|
|
35
|
+
typeof DialogPrimitive.Portal
|
|
36
|
+
>;
|
|
37
37
|
|
|
38
|
-
function DialogPortal({
|
|
39
|
-
...props
|
|
40
|
-
}: DialogPortalProps): ReactElement {
|
|
41
|
-
return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />
|
|
38
|
+
function DialogPortal({ ...props }: DialogPortalProps): ReactElement {
|
|
39
|
+
return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
|
|
42
40
|
}
|
|
43
41
|
|
|
44
|
-
export type DialogCloseProps = React.ComponentProps<
|
|
42
|
+
export type DialogCloseProps = React.ComponentProps<
|
|
43
|
+
typeof DialogPrimitive.Close
|
|
44
|
+
>;
|
|
45
45
|
|
|
46
|
-
function DialogClose({
|
|
47
|
-
...props
|
|
48
|
-
}: DialogCloseProps): ReactElement {
|
|
49
|
-
return <DialogPrimitive.Close data-slot="dialog-close" {...props} />
|
|
46
|
+
function DialogClose({ ...props }: DialogCloseProps): ReactElement {
|
|
47
|
+
return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
|
|
50
48
|
}
|
|
51
49
|
|
|
52
|
-
export type DialogOverlayProps = React.ComponentProps<
|
|
50
|
+
export type DialogOverlayProps = React.ComponentProps<
|
|
51
|
+
typeof DialogPrimitive.Backdrop
|
|
52
|
+
>;
|
|
53
53
|
|
|
54
54
|
function DialogOverlay({
|
|
55
55
|
className,
|
|
@@ -60,17 +60,19 @@ function DialogOverlay({
|
|
|
60
60
|
className={cn(
|
|
61
61
|
// WealthX: foreground/50 scrim (matches Figma — foreground token at 50% opacity)
|
|
62
62
|
"fixed inset-0 z-50 bg-foreground/50 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0",
|
|
63
|
-
className
|
|
63
|
+
className,
|
|
64
64
|
)}
|
|
65
65
|
data-slot="dialog-overlay"
|
|
66
66
|
{...props}
|
|
67
67
|
/>
|
|
68
|
-
)
|
|
68
|
+
);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
export type DialogContentProps = React.ComponentProps<
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
export type DialogContentProps = React.ComponentProps<
|
|
72
|
+
typeof DialogPrimitive.Popup
|
|
73
|
+
> & {
|
|
74
|
+
showCloseButton?: boolean;
|
|
75
|
+
};
|
|
74
76
|
|
|
75
77
|
function DialogContent({
|
|
76
78
|
className,
|
|
@@ -82,19 +84,20 @@ function DialogContent({
|
|
|
82
84
|
const themeVars = useThemeVars();
|
|
83
85
|
return (
|
|
84
86
|
<DialogPortal>
|
|
85
|
-
<DialogOverlay />
|
|
87
|
+
<DialogOverlay style={themeVars as React.CSSProperties} />
|
|
86
88
|
<DialogPrimitive.Popup
|
|
87
89
|
className={cn(
|
|
88
90
|
// WealthX: removed rounded-lg (sharp corners), shadow-lg (flat panels), foreground/50 scrim via DialogOverlay
|
|
89
91
|
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 duration-200 outline-none 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 sm:max-w-lg",
|
|
90
|
-
className
|
|
92
|
+
className,
|
|
91
93
|
)}
|
|
92
94
|
data-slot="dialog-content"
|
|
93
95
|
style={{ ...themeVars, ...style } as React.CSSProperties}
|
|
94
96
|
{...props}
|
|
95
97
|
>
|
|
96
98
|
{children}
|
|
97
|
-
{showCloseButton ?
|
|
99
|
+
{showCloseButton ? (
|
|
100
|
+
<DialogPrimitive.Close
|
|
98
101
|
className="absolute top-4 right-4 transition-colors hover:bg-foreground/5 focus:outline-hidden focus:ring-2 focus:ring-border focus:ring-offset-0 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
99
102
|
// WealthX: removed rounded-xs (sharp), replaced opacity fade with hover:bg-foreground/5,
|
|
100
103
|
// focus ring uses border color (subtle, matches Figma DialogClose focus state)
|
|
@@ -102,15 +105,19 @@ function DialogContent({
|
|
|
102
105
|
>
|
|
103
106
|
<XIcon />
|
|
104
107
|
<span className="sr-only">Close</span>
|
|
105
|
-
</DialogPrimitive.Close>
|
|
108
|
+
</DialogPrimitive.Close>
|
|
109
|
+
) : null}
|
|
106
110
|
</DialogPrimitive.Popup>
|
|
107
111
|
</DialogPortal>
|
|
108
|
-
)
|
|
112
|
+
);
|
|
109
113
|
}
|
|
110
114
|
|
|
111
|
-
export type DialogHeaderProps = React.ComponentProps<"div"
|
|
115
|
+
export type DialogHeaderProps = React.ComponentProps<"div">;
|
|
112
116
|
|
|
113
|
-
function DialogHeader({
|
|
117
|
+
function DialogHeader({
|
|
118
|
+
className,
|
|
119
|
+
...props
|
|
120
|
+
}: DialogHeaderProps): ReactElement {
|
|
114
121
|
return (
|
|
115
122
|
<div
|
|
116
123
|
// WealthX: always left-aligned (no sm:text-left — no centered variant)
|
|
@@ -118,12 +125,12 @@ function DialogHeader({ className, ...props }: DialogHeaderProps): ReactElement
|
|
|
118
125
|
data-slot="dialog-header"
|
|
119
126
|
{...props}
|
|
120
127
|
/>
|
|
121
|
-
)
|
|
128
|
+
);
|
|
122
129
|
}
|
|
123
130
|
|
|
124
131
|
export type DialogFooterProps = React.ComponentProps<"div"> & {
|
|
125
|
-
showCloseButton?: boolean
|
|
126
|
-
}
|
|
132
|
+
showCloseButton?: boolean;
|
|
133
|
+
};
|
|
127
134
|
|
|
128
135
|
function DialogFooter({
|
|
129
136
|
className,
|
|
@@ -136,37 +143,40 @@ function DialogFooter({
|
|
|
136
143
|
className={cn(
|
|
137
144
|
// WealthX: always row layout, right-aligned, separator above footer
|
|
138
145
|
"flex flex-row justify-end gap-2 border-t border-border pt-4",
|
|
139
|
-
className
|
|
146
|
+
className,
|
|
140
147
|
)}
|
|
141
148
|
data-slot="dialog-footer"
|
|
142
149
|
{...props}
|
|
143
150
|
>
|
|
144
151
|
{children}
|
|
145
|
-
{showCloseButton ?
|
|
152
|
+
{showCloseButton ? (
|
|
153
|
+
<DialogPrimitive.Close
|
|
146
154
|
className={cn(buttonVariants({ variant: "outline" }))}
|
|
147
155
|
>
|
|
148
156
|
Close
|
|
149
|
-
</DialogPrimitive.Close>
|
|
157
|
+
</DialogPrimitive.Close>
|
|
158
|
+
) : null}
|
|
150
159
|
</div>
|
|
151
|
-
)
|
|
160
|
+
);
|
|
152
161
|
}
|
|
153
162
|
|
|
154
|
-
export type DialogTitleProps = React.ComponentProps<
|
|
163
|
+
export type DialogTitleProps = React.ComponentProps<
|
|
164
|
+
typeof DialogPrimitive.Title
|
|
165
|
+
>;
|
|
155
166
|
|
|
156
|
-
function DialogTitle({
|
|
157
|
-
className,
|
|
158
|
-
...props
|
|
159
|
-
}: DialogTitleProps): ReactElement {
|
|
167
|
+
function DialogTitle({ className, ...props }: DialogTitleProps): ReactElement {
|
|
160
168
|
return (
|
|
161
169
|
<DialogPrimitive.Title
|
|
162
|
-
className={cn("text-
|
|
170
|
+
className={cn("text-h5 leading-none", className)}
|
|
163
171
|
data-slot="dialog-title"
|
|
164
172
|
{...props}
|
|
165
173
|
/>
|
|
166
|
-
)
|
|
174
|
+
);
|
|
167
175
|
}
|
|
168
176
|
|
|
169
|
-
export type DialogDescriptionProps = React.ComponentProps<
|
|
177
|
+
export type DialogDescriptionProps = React.ComponentProps<
|
|
178
|
+
typeof DialogPrimitive.Description
|
|
179
|
+
>;
|
|
170
180
|
|
|
171
181
|
function DialogDescription({
|
|
172
182
|
className,
|
|
@@ -174,11 +184,11 @@ function DialogDescription({
|
|
|
174
184
|
}: DialogDescriptionProps): ReactElement {
|
|
175
185
|
return (
|
|
176
186
|
<DialogPrimitive.Description
|
|
177
|
-
className={cn("text-
|
|
187
|
+
className={cn("text-body-small text-muted-foreground", className)}
|
|
178
188
|
data-slot="dialog-description"
|
|
179
189
|
{...props}
|
|
180
190
|
/>
|
|
181
|
-
)
|
|
191
|
+
);
|
|
182
192
|
}
|
|
183
193
|
|
|
184
194
|
export {
|
|
@@ -192,4 +202,4 @@ export {
|
|
|
192
202
|
DialogPortal,
|
|
193
203
|
DialogTitle,
|
|
194
204
|
DialogTrigger,
|
|
195
|
-
}
|
|
205
|
+
};
|
|
@@ -8,45 +8,45 @@
|
|
|
8
8
|
* - DrawerHeader: removed `text-center` for top/bottom — always left-aligned per DS rule
|
|
9
9
|
* - DrawerTitle: added `text-lg` — matches Figma Text-lg/Semibold
|
|
10
10
|
*/
|
|
11
|
-
import { type ReactElement } from "react"
|
|
12
|
-
import * as React from "react"
|
|
13
|
-
import { Drawer as DrawerPrimitive } from "vaul"
|
|
14
|
-
import { cn } from "@/lib/utils"
|
|
15
|
-
import { useThemeVars } from "@/lib/theme-provider"
|
|
11
|
+
import { type ReactElement } from "react";
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import { Drawer as DrawerPrimitive } from "vaul";
|
|
14
|
+
import { cn } from "@/lib/utils";
|
|
15
|
+
import { useThemeVars } from "@/lib/theme-provider";
|
|
16
16
|
|
|
17
|
-
export type DrawerProps = React.ComponentProps<typeof DrawerPrimitive.Root
|
|
17
|
+
export type DrawerProps = React.ComponentProps<typeof DrawerPrimitive.Root>;
|
|
18
18
|
|
|
19
|
-
function Drawer({
|
|
20
|
-
...props
|
|
21
|
-
}: DrawerProps): ReactElement {
|
|
22
|
-
return <DrawerPrimitive.Root data-slot="drawer" {...props} />
|
|
19
|
+
function Drawer({ ...props }: DrawerProps): ReactElement {
|
|
20
|
+
return <DrawerPrimitive.Root data-slot="drawer" {...props} />;
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
export type DrawerTriggerProps = React.ComponentProps<
|
|
23
|
+
export type DrawerTriggerProps = React.ComponentProps<
|
|
24
|
+
typeof DrawerPrimitive.Trigger
|
|
25
|
+
>;
|
|
26
26
|
|
|
27
|
-
function DrawerTrigger({
|
|
28
|
-
...props
|
|
29
|
-
}: DrawerTriggerProps): ReactElement {
|
|
30
|
-
return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} />
|
|
27
|
+
function DrawerTrigger({ ...props }: DrawerTriggerProps): ReactElement {
|
|
28
|
+
return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} />;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
export type DrawerPortalProps = React.ComponentProps<
|
|
31
|
+
export type DrawerPortalProps = React.ComponentProps<
|
|
32
|
+
typeof DrawerPrimitive.Portal
|
|
33
|
+
>;
|
|
34
34
|
|
|
35
|
-
function DrawerPortal({
|
|
36
|
-
...props
|
|
37
|
-
}: DrawerPortalProps): ReactElement {
|
|
38
|
-
return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />
|
|
35
|
+
function DrawerPortal({ ...props }: DrawerPortalProps): ReactElement {
|
|
36
|
+
return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />;
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
export type DrawerCloseProps = React.ComponentProps<
|
|
39
|
+
export type DrawerCloseProps = React.ComponentProps<
|
|
40
|
+
typeof DrawerPrimitive.Close
|
|
41
|
+
>;
|
|
42
42
|
|
|
43
|
-
function DrawerClose({
|
|
44
|
-
...props
|
|
45
|
-
}: DrawerCloseProps): ReactElement {
|
|
46
|
-
return <DrawerPrimitive.Close data-slot="drawer-close" {...props} />
|
|
43
|
+
function DrawerClose({ ...props }: DrawerCloseProps): ReactElement {
|
|
44
|
+
return <DrawerPrimitive.Close data-slot="drawer-close" {...props} />;
|
|
47
45
|
}
|
|
48
46
|
|
|
49
|
-
export type DrawerOverlayProps = React.ComponentProps<
|
|
47
|
+
export type DrawerOverlayProps = React.ComponentProps<
|
|
48
|
+
typeof DrawerPrimitive.Overlay
|
|
49
|
+
>;
|
|
50
50
|
|
|
51
51
|
function DrawerOverlay({
|
|
52
52
|
className,
|
|
@@ -57,15 +57,17 @@ function DrawerOverlay({
|
|
|
57
57
|
className={cn(
|
|
58
58
|
// WealthX: foreground/50 scrim — matches Figma overlay token
|
|
59
59
|
"fixed inset-0 z-50 bg-foreground/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:fill-mode-forwards data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
60
|
-
className
|
|
60
|
+
className,
|
|
61
61
|
)}
|
|
62
62
|
data-slot="drawer-overlay"
|
|
63
63
|
{...props}
|
|
64
64
|
/>
|
|
65
|
-
)
|
|
65
|
+
);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
export type DrawerContentProps = React.ComponentProps<
|
|
68
|
+
export type DrawerContentProps = React.ComponentProps<
|
|
69
|
+
typeof DrawerPrimitive.Content
|
|
70
|
+
>;
|
|
69
71
|
|
|
70
72
|
function DrawerContent({
|
|
71
73
|
className,
|
|
@@ -85,7 +87,7 @@ function DrawerContent({
|
|
|
85
87
|
"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:border-t",
|
|
86
88
|
"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
|
|
87
89
|
"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
|
|
88
|
-
className
|
|
90
|
+
className,
|
|
89
91
|
)}
|
|
90
92
|
data-slot="drawer-content"
|
|
91
93
|
style={{ ...themeVars, ...style } as React.CSSProperties}
|
|
@@ -96,12 +98,15 @@ function DrawerContent({
|
|
|
96
98
|
{children}
|
|
97
99
|
</DrawerPrimitive.Content>
|
|
98
100
|
</DrawerPortal>
|
|
99
|
-
)
|
|
101
|
+
);
|
|
100
102
|
}
|
|
101
103
|
|
|
102
|
-
export type DrawerHeaderProps = React.ComponentProps<"div"
|
|
104
|
+
export type DrawerHeaderProps = React.ComponentProps<"div">;
|
|
103
105
|
|
|
104
|
-
function DrawerHeader({
|
|
106
|
+
function DrawerHeader({
|
|
107
|
+
className,
|
|
108
|
+
...props
|
|
109
|
+
}: DrawerHeaderProps): ReactElement {
|
|
105
110
|
return (
|
|
106
111
|
<div
|
|
107
112
|
// WealthX: always left-aligned — no text-center for any direction
|
|
@@ -109,38 +114,42 @@ function DrawerHeader({ className, ...props }: DrawerHeaderProps): ReactElement
|
|
|
109
114
|
data-slot="drawer-header"
|
|
110
115
|
{...props}
|
|
111
116
|
/>
|
|
112
|
-
)
|
|
117
|
+
);
|
|
113
118
|
}
|
|
114
119
|
|
|
115
|
-
export type DrawerFooterProps = React.ComponentProps<"div"
|
|
120
|
+
export type DrawerFooterProps = React.ComponentProps<"div">;
|
|
116
121
|
|
|
117
|
-
function DrawerFooter({
|
|
122
|
+
function DrawerFooter({
|
|
123
|
+
className,
|
|
124
|
+
...props
|
|
125
|
+
}: DrawerFooterProps): ReactElement {
|
|
118
126
|
return (
|
|
119
127
|
<div
|
|
120
128
|
className={cn("mt-auto flex flex-col gap-2 p-4", className)}
|
|
121
129
|
data-slot="drawer-footer"
|
|
122
130
|
{...props}
|
|
123
131
|
/>
|
|
124
|
-
)
|
|
132
|
+
);
|
|
125
133
|
}
|
|
126
134
|
|
|
127
|
-
export type DrawerTitleProps = React.ComponentProps<
|
|
135
|
+
export type DrawerTitleProps = React.ComponentProps<
|
|
136
|
+
typeof DrawerPrimitive.Title
|
|
137
|
+
>;
|
|
128
138
|
|
|
129
|
-
function DrawerTitle({
|
|
130
|
-
className,
|
|
131
|
-
...props
|
|
132
|
-
}: DrawerTitleProps): ReactElement {
|
|
139
|
+
function DrawerTitle({ className, ...props }: DrawerTitleProps): ReactElement {
|
|
133
140
|
return (
|
|
134
141
|
<DrawerPrimitive.Title
|
|
135
142
|
// WealthX: text-lg matches Figma Text-lg/Semibold
|
|
136
|
-
className={cn("text-
|
|
143
|
+
className={cn("text-h5 text-foreground", className)}
|
|
137
144
|
data-slot="drawer-title"
|
|
138
145
|
{...props}
|
|
139
146
|
/>
|
|
140
|
-
)
|
|
147
|
+
);
|
|
141
148
|
}
|
|
142
149
|
|
|
143
|
-
export type DrawerDescriptionProps = React.ComponentProps<
|
|
150
|
+
export type DrawerDescriptionProps = React.ComponentProps<
|
|
151
|
+
typeof DrawerPrimitive.Description
|
|
152
|
+
>;
|
|
144
153
|
|
|
145
154
|
function DrawerDescription({
|
|
146
155
|
className,
|
|
@@ -148,11 +157,11 @@ function DrawerDescription({
|
|
|
148
157
|
}: DrawerDescriptionProps): ReactElement {
|
|
149
158
|
return (
|
|
150
159
|
<DrawerPrimitive.Description
|
|
151
|
-
className={cn("text-
|
|
160
|
+
className={cn("text-body-small text-muted-foreground", className)}
|
|
152
161
|
data-slot="drawer-description"
|
|
153
162
|
{...props}
|
|
154
163
|
/>
|
|
155
|
-
)
|
|
164
|
+
);
|
|
156
165
|
}
|
|
157
166
|
|
|
158
167
|
export {
|
|
@@ -166,4 +175,4 @@ export {
|
|
|
166
175
|
DrawerFooter,
|
|
167
176
|
DrawerTitle,
|
|
168
177
|
DrawerDescription,
|
|
169
|
-
}
|
|
178
|
+
};
|