@wealthx/shadcn 1.3.2 → 1.3.4
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 +227 -191
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-2UM72RJ7.mjs → chunk-2D3HQPFN.mjs} +12 -10
- package/dist/chunk-2EM2FRU6.mjs +613 -0
- package/dist/{chunk-FH6QVUVZ.mjs → chunk-2GIYVERS.mjs} +2 -2
- package/dist/chunk-2P7HP7LR.mjs +68 -0
- package/dist/{chunk-HISNT2MG.mjs → chunk-37AE3OM5.mjs} +5 -5
- package/dist/{chunk-HBZLGDIN.mjs → chunk-3ERBUVHC.mjs} +169 -110
- package/dist/{chunk-C7CQJNMR.mjs → chunk-3VDET466.mjs} +2 -2
- package/dist/{chunk-462HMNO4.mjs → chunk-4MM7LHM5.mjs} +2 -2
- package/dist/{chunk-QMY3AZJH.mjs → chunk-4Z66LMIQ.mjs} +2 -2
- package/dist/{chunk-U5X52X37.mjs → chunk-57ZXILTS.mjs} +6 -6
- package/dist/{chunk-2A5RRQGG.mjs → chunk-5NF6T2RS.mjs} +11 -20
- package/dist/{chunk-3OYFOX3X.mjs → chunk-5VOTTIXF.mjs} +2 -2
- package/dist/{chunk-LBMRIB3G.mjs → chunk-6AJUS7VX.mjs} +1 -1
- package/dist/{chunk-OODBHKG7.mjs → chunk-6HIOM2HL.mjs} +7 -4
- package/dist/{chunk-BDYZCBRT.mjs → chunk-6QAFGZC2.mjs} +2 -2
- package/dist/{chunk-U4NDAF2P.mjs → chunk-6TX73WG7.mjs} +1 -1
- package/dist/{chunk-GD4BJDJR.mjs → chunk-7BTFGCFC.mjs} +4 -4
- package/dist/{chunk-FAKPBKLT.mjs → chunk-7GWRPXHD.mjs} +4 -4
- package/dist/{chunk-NMOI6CQD.mjs → chunk-7YI3HEBH.mjs} +5 -5
- package/dist/{chunk-T4BJLT57.mjs → chunk-AE7MASLF.mjs} +5 -5
- package/dist/{chunk-VLQZANBF.mjs → chunk-AFML43VJ.mjs} +6 -1
- package/dist/chunk-BBXSNDS3.mjs +260 -0
- package/dist/chunk-BOW7U26Y.mjs +203 -0
- package/dist/{chunk-34NWQURD.mjs → chunk-BS75ICOO.mjs} +2 -2
- package/dist/chunk-D2NSIIXG.mjs +394 -0
- package/dist/{chunk-3GF7OVTP.mjs → chunk-DGNHGNYH.mjs} +2 -2
- package/dist/{chunk-VLARHE5V.mjs → chunk-DMXYRCHM.mjs} +6 -6
- package/dist/{chunk-OGOYQ7BG.mjs → chunk-DQB4EPIS.mjs} +1 -1
- package/dist/{chunk-MIZQHHUO.mjs → chunk-FL6DZFJK.mjs} +106 -38
- package/dist/{chunk-I3RZS7V2.mjs → chunk-FLL633WS.mjs} +19 -33
- package/dist/{chunk-PBL4OQV2.mjs → chunk-FTPBQVQ6.mjs} +4 -4
- package/dist/chunk-FYPSTTEJ.mjs +169 -0
- package/dist/{chunk-6O6KD7CE.mjs → chunk-G27TSQLQ.mjs} +6 -6
- package/dist/{chunk-66MI7Q4B.mjs → chunk-GT3RU6GA.mjs} +2 -2
- package/dist/{chunk-D6ID6M4V.mjs → chunk-GTAVSBDO.mjs} +2 -2
- package/dist/{chunk-24FUO7TD.mjs → chunk-H6NQTIF4.mjs} +2 -2
- package/dist/{chunk-7DHU4VGG.mjs → chunk-HK4HUQTV.mjs} +2 -2
- package/dist/chunk-I4KVSZCH.mjs +101 -0
- package/dist/{chunk-RGVKLTLH.mjs → chunk-IKXYTCSB.mjs} +2 -2
- package/dist/{chunk-Y6DWJSKZ.mjs → chunk-ISUA7DSB.mjs} +1 -1
- package/dist/{chunk-J5UICVJS.mjs → chunk-JPGL36WQ.mjs} +2 -2
- package/dist/{chunk-7XJHLGUV.mjs → chunk-JTK6VJXY.mjs} +2 -2
- package/dist/{chunk-7YAU5CY6.mjs → chunk-JVMXMFBB.mjs} +2 -2
- package/dist/{chunk-IAE3F7DR.mjs → chunk-JZY6TNIS.mjs} +21 -21
- package/dist/{chunk-K5A5L6T2.mjs → chunk-K4KOD3KR.mjs} +12 -12
- package/dist/{chunk-MBON7YRJ.mjs → chunk-K5QV4TT6.mjs} +3 -3
- package/dist/{chunk-IHMFS7NZ.mjs → chunk-K5VHK7CM.mjs} +21 -21
- package/dist/{chunk-RJI6GKVF.mjs → chunk-KCWNDYPZ.mjs} +5 -5
- package/dist/{chunk-UFYSFDER.mjs → chunk-KFH36NKF.mjs} +1 -1
- package/dist/{chunk-EBXQWIYG.mjs → chunk-KLTACJ2G.mjs} +5 -5
- package/dist/{chunk-3TTACBDP.mjs → chunk-KWD6GANL.mjs} +4 -4
- package/dist/{chunk-IOJRDS6V.mjs → chunk-L4NSRQ3T.mjs} +218 -147
- package/dist/{chunk-GYMYRIZP.mjs → chunk-LBTHZSBT.mjs} +2 -2
- package/dist/{chunk-AMQZRHEZ.mjs → chunk-LQULK2E3.mjs} +5 -5
- package/dist/{chunk-YJG55G2H.mjs → chunk-LR6LHDP3.mjs} +5 -5
- package/dist/{chunk-7PV3IWCN.mjs → chunk-M4VYX2PV.mjs} +19 -1
- package/dist/{chunk-P76HMUI6.mjs → chunk-MDUKXXIL.mjs} +2 -2
- package/dist/{chunk-LV35NGVG.mjs → chunk-N6Q5IPKT.mjs} +9 -9
- package/dist/{chunk-DOEO3CDL.mjs → chunk-NB3ZL36B.mjs} +1 -1
- package/dist/{chunk-XREGSKX3.mjs → chunk-NOOEKOWY.mjs} +5 -5
- package/dist/{chunk-NL3ZO62D.mjs → chunk-NT4FX27K.mjs} +1 -1
- package/dist/{chunk-QZ4RE6NA.mjs → chunk-NTYQWVLI.mjs} +6 -6
- package/dist/{chunk-ERGGHC2V.mjs → chunk-OEOOYMC2.mjs} +2 -2
- package/dist/{chunk-4GAWMKMI.mjs → chunk-OIKBW2QD.mjs} +291 -54
- package/dist/{chunk-DUJTAXMH.mjs → chunk-OKTJFDPN.mjs} +6 -6
- package/dist/chunk-OLKMCXAR.mjs +1219 -0
- package/dist/{chunk-EI5F6FMT.mjs → chunk-OWFQSXVD.mjs} +3 -3
- package/dist/{chunk-6DZEXFNB.mjs → chunk-P2N2PEFY.mjs} +3 -3
- package/dist/{chunk-NSLMILBT.mjs → chunk-P7CEBZM6.mjs} +2 -2
- package/dist/{chunk-7S5AESZO.mjs → chunk-PNRUH7JY.mjs} +6 -6
- package/dist/{chunk-ZU4NV6RG.mjs → chunk-PNSYFE3K.mjs} +2 -2
- package/dist/{chunk-JKGDCQTZ.mjs → chunk-QTRSCVQ3.mjs} +5 -5
- package/dist/{chunk-ABFDMHOR.mjs → chunk-QX7IFQSF.mjs} +5 -5
- package/dist/{chunk-CFMQP5QS.mjs → chunk-QXKGOMUX.mjs} +6 -6
- package/dist/{chunk-NQPOYKAQ.mjs → chunk-R2ON6CAN.mjs} +2 -2
- package/dist/{chunk-DBHJ5KC3.mjs → chunk-R4HCRDU5.mjs} +1 -1
- package/dist/{chunk-EWRB4PAD.mjs → chunk-RCAOCHWA.mjs} +14 -14
- package/dist/{chunk-EFRENWEJ.mjs → chunk-RSUIPKGX.mjs} +2 -2
- package/dist/{chunk-DGHAXJBN.mjs → chunk-S2FKV4M5.mjs} +5 -5
- package/dist/{chunk-RGU7HOEC.mjs → chunk-SET2ANTY.mjs} +5 -7
- package/dist/chunk-SFH2NJEJ.mjs +47 -0
- package/dist/{chunk-6AW4KJHE.mjs → chunk-SIVYAI3M.mjs} +12 -12
- package/dist/{chunk-5FQIKDKP.mjs → chunk-THVO2N47.mjs} +8 -8
- package/dist/{chunk-JMHR3YGZ.mjs → chunk-TLAWKTSA.mjs} +3 -3
- package/dist/{chunk-HVY6KCCF.mjs → chunk-TOWTPLRC.mjs} +68 -72
- package/dist/{chunk-6JQFUE5I.mjs → chunk-UALR6JGV.mjs} +2 -2
- package/dist/{chunk-N6TNTQL6.mjs → chunk-UJZ4UHWI.mjs} +9 -11
- package/dist/{chunk-MARPPFOJ.mjs → chunk-UNACI2YK.mjs} +2 -2
- package/dist/{chunk-3NCUZIFP.mjs → chunk-V6XGXYCJ.mjs} +7 -7
- package/dist/chunk-VB5M6OZQ.mjs +57 -0
- package/dist/{chunk-5IS7G74I.mjs → chunk-VY5NEUP7.mjs} +6 -6
- package/dist/{chunk-JHJHG4GO.mjs → chunk-WE4YKBDE.mjs} +2 -2
- package/dist/{chunk-BKNFWEH2.mjs → chunk-WL6WVV47.mjs} +3 -3
- package/dist/{chunk-FWCSY2DS.mjs → chunk-WNQUEZJF.mjs} +22 -1
- package/dist/{chunk-2Y7YJKPE.mjs → chunk-WZ6UJCBL.mjs} +1 -1
- package/dist/{chunk-UMTOX62O.mjs → chunk-XYPW2XA5.mjs} +13 -10
- package/dist/chunk-Y2MTAVAK.mjs +34 -0
- package/dist/{chunk-6CR5N2JW.mjs → chunk-YCWLFG27.mjs} +6 -6
- package/dist/{chunk-PU4YZQXV.mjs → chunk-YE67AALL.mjs} +12 -12
- package/dist/{chunk-M3FV7LOK.mjs → chunk-YEWNFK5S.mjs} +6 -1
- package/dist/{chunk-R3VSPKNP.mjs → chunk-YIZHS72Z.mjs} +11 -12
- package/dist/{chunk-7PYJD5JI.mjs → chunk-ZEDMKQK2.mjs} +2 -2
- package/dist/{chunk-N2PT566P.mjs → chunk-ZFCDYW6N.mjs} +4 -4
- package/dist/chunk-ZGQIVGIN.mjs +57 -0
- package/dist/{chunk-Q2BGOAMG.mjs → chunk-ZKWXDQDG.mjs} +4 -4
- package/dist/{chunk-GHC7LLUX.mjs → chunk-ZOWL2L5J.mjs} +5 -5
- package/dist/components/ui/accordion.mjs +3 -3
- package/dist/components/ui/add-column-modal.js +2 -2
- package/dist/components/ui/add-column-modal.mjs +10 -10
- package/dist/components/ui/add-lead-modal.js +424 -82
- package/dist/components/ui/add-lead-modal.mjs +12 -9
- package/dist/components/ui/advisor-card.js +2 -2
- package/dist/components/ui/advisor-card.mjs +8 -8
- package/dist/components/ui/ai-assistant-drawer.js +2 -2
- package/dist/components/ui/ai-assistant-drawer.mjs +9 -9
- package/dist/components/ui/ai-builder.js +958 -0
- package/dist/components/ui/ai-builder.mjs +25 -0
- package/dist/components/ui/ai-conversations.js +2045 -0
- package/dist/components/ui/ai-conversations.mjs +41 -0
- package/dist/components/ui/alert-dialog.js +2 -2
- package/dist/components/ui/alert-dialog.mjs +5 -5
- package/dist/components/ui/alert.mjs +3 -3
- package/dist/components/ui/appointment-action-dialogs.js +19 -3
- package/dist/components/ui/appointment-action-dialogs.mjs +15 -14
- package/dist/components/ui/appointment-availability-settings.js +181 -111
- package/dist/components/ui/appointment-availability-settings.mjs +20 -18
- package/dist/components/ui/appointment-book-dialog.js +113 -24
- package/dist/components/ui/appointment-book-dialog.mjs +21 -20
- package/dist/components/ui/appointment-calendar-view.js +19 -3
- package/dist/components/ui/appointment-calendar-view.mjs +10 -9
- package/dist/components/ui/appointment-detail-sheet.js +19 -3
- package/dist/components/ui/appointment-detail-sheet.mjs +18 -17
- package/dist/components/ui/appointment-gmail-connect.js +49 -89
- package/dist/components/ui/appointment-gmail-connect.mjs +8 -9
- package/dist/components/ui/appointment-mini-card.js +2 -2
- package/dist/components/ui/appointment-mini-card.mjs +6 -6
- package/dist/components/ui/appointment-time-slot-picker.mjs +6 -6
- package/dist/components/ui/appointment-upcoming-card.js +19 -3
- package/dist/components/ui/appointment-upcoming-card.mjs +15 -14
- package/dist/components/ui/auth-logo.js +95 -0
- package/dist/components/ui/auth-logo.mjs +8 -0
- package/dist/components/ui/auth-page-layout.js +108 -0
- package/dist/components/ui/auth-page-layout.mjs +8 -0
- package/dist/components/ui/avatar.mjs +3 -3
- package/dist/components/ui/backoffice-alert-history-chart.js +2 -2
- package/dist/components/ui/backoffice-alert-history-chart.mjs +9 -9
- package/dist/components/ui/backoffice-alerts-chart.js +2 -2
- package/dist/components/ui/backoffice-alerts-chart.mjs +11 -11
- package/dist/components/ui/backoffice-connections-chart.js +2 -2
- package/dist/components/ui/backoffice-connections-chart.mjs +11 -11
- package/dist/components/ui/backoffice-contact-history-chart.js +2 -2
- package/dist/components/ui/backoffice-contact-history-chart.mjs +9 -9
- package/dist/components/ui/badge.mjs +4 -4
- package/dist/components/ui/borrowing-capacity-line-chart.js +145 -132
- package/dist/components/ui/borrowing-capacity-line-chart.mjs +9 -9
- package/dist/components/ui/button.js +2 -2
- package/dist/components/ui/button.mjs +4 -4
- package/dist/components/ui/calendar.js +17 -3
- package/dist/components/ui/calendar.mjs +6 -5
- package/dist/components/ui/card.mjs +3 -3
- package/dist/components/ui/cash-balance-line-chart.js +158 -158
- package/dist/components/ui/cash-balance-line-chart.mjs +9 -9
- package/dist/components/ui/cashflow-bar-chart.js +2 -2
- package/dist/components/ui/cashflow-bar-chart.mjs +9 -9
- package/dist/components/ui/chat-widget-primitives.js +573 -0
- package/dist/components/ui/chat-widget-primitives.mjs +21 -0
- package/dist/components/ui/chat-widget.js +1268 -0
- package/dist/components/ui/chat-widget.mjs +29 -0
- package/dist/components/ui/checkbox.mjs +3 -3
- package/dist/components/ui/chip.js +2 -2
- package/dist/components/ui/chip.mjs +6 -6
- package/dist/components/ui/color-picker.js +2 -2
- package/dist/components/ui/color-picker.mjs +7 -7
- package/dist/components/ui/combobox.mjs +3 -3
- package/dist/components/ui/data-table.js +2 -2
- package/dist/components/ui/data-table.mjs +12 -12
- package/dist/components/ui/date-picker.js +22 -6
- package/dist/components/ui/date-picker.mjs +9 -8
- package/dist/components/ui/dialog.js +2 -2
- package/dist/components/ui/dialog.mjs +5 -5
- package/dist/components/ui/document-checklist-template.js +630 -0
- package/dist/components/ui/document-checklist-template.mjs +15 -0
- package/dist/components/ui/drawer.js +2 -2
- package/dist/components/ui/drawer.mjs +3 -3
- package/dist/components/ui/dropdown-menu.mjs +3 -3
- package/dist/components/ui/empty.mjs +3 -3
- package/dist/components/ui/expense-bar-chart.js +2 -2
- package/dist/components/ui/expense-bar-chart.mjs +9 -9
- package/dist/components/ui/field.mjs +5 -5
- package/dist/components/ui/financial-cards.js +431 -291
- package/dist/components/ui/financial-cards.mjs +10 -9
- package/dist/components/ui/financial-drawers.js +4 -4
- package/dist/components/ui/financial-drawers.mjs +8 -8
- package/dist/components/ui/financial-primitives.mjs +3 -3
- package/dist/components/ui/financial-sections.js +8 -9
- package/dist/components/ui/financial-sections.mjs +12 -12
- package/dist/components/ui/form-primitives.mjs +8 -8
- package/dist/components/ui/income-bar-chart.js +2 -2
- package/dist/components/ui/income-bar-chart.mjs +9 -9
- package/dist/components/ui/input-group.js +2 -2
- package/dist/components/ui/input-group.mjs +7 -7
- package/dist/components/ui/input-otp.mjs +3 -3
- package/dist/components/ui/input.mjs +3 -3
- package/dist/components/ui/kanban-column.js +19 -23
- package/dist/components/ui/kanban-column.mjs +14 -14
- package/dist/components/ui/label.mjs +3 -3
- package/dist/components/ui/onboarding-layout.js +476 -0
- package/dist/components/ui/onboarding-layout.mjs +11 -0
- package/dist/components/ui/opportunity-card.js +2 -2
- package/dist/components/ui/opportunity-card.mjs +12 -12
- package/dist/components/ui/opportunity-edit-modals.js +22 -6
- package/dist/components/ui/opportunity-edit-modals.mjs +21 -20
- package/dist/components/ui/opportunity-summary-tab.js +991 -674
- package/dist/components/ui/opportunity-summary-tab.mjs +26 -26
- package/dist/components/ui/page-header.mjs +3 -3
- package/dist/components/ui/page-top-bar.mjs +3 -3
- package/dist/components/ui/pagination.js +2 -2
- package/dist/components/ui/pagination.mjs +6 -6
- package/dist/components/ui/password-strength-tooltip.js +197 -0
- package/dist/components/ui/password-strength-tooltip.mjs +11 -0
- package/dist/components/ui/pipeline-alerts.mjs +3 -3
- package/dist/components/ui/pipeline-board.js +19 -23
- package/dist/components/ui/pipeline-board.mjs +18 -18
- package/dist/components/ui/pipeline-chart.js +12 -6
- package/dist/components/ui/pipeline-chart.mjs +4 -3
- package/dist/components/ui/pipeline-dialogs.js +28 -12
- package/dist/components/ui/pipeline-dialogs.mjs +14 -13
- package/dist/components/ui/pipeline-primitives.mjs +6 -6
- package/dist/components/ui/popover.mjs +3 -3
- package/dist/components/ui/progress.mjs +3 -3
- package/dist/components/ui/property-cashflow-doughnut-chart.js +2 -2
- package/dist/components/ui/property-cashflow-doughnut-chart.mjs +9 -9
- package/dist/components/ui/property-debt-equity-doughnut-chart.js +2 -2
- package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +9 -9
- package/dist/components/ui/property-mobile-estimate-line-chart.js +2 -2
- package/dist/components/ui/property-mobile-estimate-line-chart.mjs +9 -9
- package/dist/components/ui/radio-group.mjs +3 -3
- package/dist/components/ui/select.mjs +3 -3
- package/dist/components/ui/separator.mjs +3 -3
- package/dist/components/ui/sheet.mjs +3 -3
- package/dist/components/ui/sidebar-nav.js +6 -5
- package/dist/components/ui/sidebar-nav.mjs +7 -7
- package/dist/components/ui/skeleton.mjs +3 -3
- package/dist/components/ui/slider.mjs +3 -3
- package/dist/components/ui/sonner.mjs +2 -2
- package/dist/components/ui/spinner.mjs +3 -3
- package/dist/components/ui/stage-timeline.mjs +10 -10
- package/dist/components/ui/stepper.mjs +3 -3
- package/dist/components/ui/switch.mjs +3 -3
- package/dist/components/ui/table.mjs +3 -3
- package/dist/components/ui/tabs.mjs +3 -3
- package/dist/components/ui/textarea.mjs +3 -3
- package/dist/components/ui/toggle-group.mjs +4 -4
- package/dist/components/ui/toggle.mjs +3 -3
- package/dist/components/ui/tooltip.mjs +3 -3
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +2 -2
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +9 -9
- package/dist/components/ui/transactions-income-expense-bar-chart.js +2 -2
- package/dist/components/ui/transactions-income-expense-bar-chart.mjs +9 -9
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +2 -2
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +9 -9
- package/dist/components/ui/two-fa-setup-form.js +612 -0
- package/dist/components/ui/two-fa-setup-form.mjs +16 -0
- package/dist/components/ui/upload-card.js +187 -0
- package/dist/components/ui/upload-card.mjs +10 -0
- package/dist/components/ui/video-background.js +118 -0
- package/dist/components/ui/video-background.mjs +8 -0
- package/dist/index.js +12674 -9311
- package/dist/index.mjs +341 -245
- package/dist/lib/colors.mjs +1 -1
- package/dist/lib/theme-provider.mjs +1 -1
- package/dist/lib/typography.mjs +2 -2
- package/dist/lib/utils.js +8 -2
- package/dist/lib/utils.mjs +6 -4
- package/dist/styles.css +1 -1
- package/package.json +61 -1
- package/src/components/index.tsx +126 -1
- package/src/components/ui/add-lead-modal.tsx +101 -142
- package/src/components/ui/ai-builder.tsx +560 -0
- package/src/components/ui/ai-conversations.tsx +1690 -0
- package/src/components/ui/appointment-availability-settings.tsx +152 -101
- package/src/components/ui/appointment-book-dialog.tsx +138 -24
- package/src/components/ui/appointment-calendar-view.tsx +2 -3
- package/src/components/ui/appointment-gmail-connect.tsx +23 -42
- package/src/components/ui/auth-logo.tsx +50 -0
- package/src/components/ui/auth-page-layout.tsx +59 -0
- package/src/components/ui/borrowing-capacity-line-chart.tsx +10 -8
- package/src/components/ui/button.tsx +2 -2
- package/src/components/ui/calendar.tsx +2 -1
- package/src/components/ui/cash-balance-line-chart.tsx +11 -20
- package/src/components/ui/chart-shared.tsx +10 -0
- package/src/components/ui/chat-widget-primitives.tsx +336 -0
- package/src/components/ui/chat-widget.tsx +822 -0
- package/src/components/ui/document-checklist-template.tsx +264 -0
- package/src/components/ui/drawer.tsx +2 -2
- package/src/components/ui/financial-cards.tsx +176 -78
- package/src/components/ui/financial-drawers.tsx +2 -2
- package/src/components/ui/financial-sections.tsx +1 -1
- package/src/components/ui/kanban-column.tsx +2 -5
- package/src/components/ui/onboarding-layout.tsx +109 -0
- package/src/components/ui/opportunity-summary-tab.tsx +469 -142
- package/src/components/ui/password-strength-tooltip.tsx +70 -0
- package/src/components/ui/pipeline-chart.tsx +2 -6
- package/src/components/ui/sidebar-nav.tsx +1 -11
- package/src/components/ui/two-fa-setup-form.tsx +229 -0
- package/src/components/ui/upload-card.tsx +98 -0
- package/src/components/ui/video-background.tsx +55 -0
- package/src/lib/format-date.ts +26 -0
- package/src/lib/utils.ts +11 -0
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +13 -0
|
@@ -209,9 +209,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
209
209
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
210
210
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
211
211
|
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",
|
|
212
|
-
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",
|
|
212
|
+
outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
213
213
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
214
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
214
|
+
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
|
|
215
215
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
216
216
|
link: "text-primary underline-offset-4 hover:underline"
|
|
217
217
|
},
|
|
@@ -316,38 +316,9 @@ function Separator(_a) {
|
|
|
316
316
|
);
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
// src/components/ui/
|
|
320
|
-
var import_class_variance_authority3 = require("class-variance-authority");
|
|
319
|
+
// src/components/ui/appointment-gmail-connect.tsx
|
|
321
320
|
var import_lucide_react2 = require("lucide-react");
|
|
322
321
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
323
|
-
var spinnerVariants = (0, import_class_variance_authority3.cva)("animate-spin shrink-0", {
|
|
324
|
-
variants: {
|
|
325
|
-
size: {
|
|
326
|
-
sm: "size-3",
|
|
327
|
-
default: "size-4",
|
|
328
|
-
lg: "size-6",
|
|
329
|
-
xl: "size-8"
|
|
330
|
-
}
|
|
331
|
-
},
|
|
332
|
-
defaultVariants: {
|
|
333
|
-
size: "default"
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
function Spinner(_a) {
|
|
337
|
-
var _b = _a, { className, size } = _b, props = __objRest(_b, ["className", "size"]);
|
|
338
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
339
|
-
import_lucide_react2.LoaderCircle,
|
|
340
|
-
__spreadValues({
|
|
341
|
-
"aria-hidden": "true",
|
|
342
|
-
className: cn(spinnerVariants({ size }), className),
|
|
343
|
-
"data-slot": "spinner"
|
|
344
|
-
}, props)
|
|
345
|
-
);
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
// src/components/ui/appointment-gmail-connect.tsx
|
|
349
|
-
var import_lucide_react3 = require("lucide-react");
|
|
350
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
351
322
|
var PERMISSIONS = [
|
|
352
323
|
"Read your calendar availability",
|
|
353
324
|
"Send appointment confirmation emails",
|
|
@@ -355,69 +326,58 @@ var PERMISSIONS = [
|
|
|
355
326
|
];
|
|
356
327
|
function AppointmentGmailConnect({
|
|
357
328
|
connection,
|
|
358
|
-
state = "disconnected",
|
|
359
|
-
onConnect,
|
|
360
|
-
onDisconnect,
|
|
361
329
|
calendarLink,
|
|
362
|
-
onCopyLink
|
|
330
|
+
onCopyLink,
|
|
331
|
+
onGoToIntegrations
|
|
363
332
|
}) {
|
|
364
|
-
if (state === "connecting") {
|
|
365
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col items-center gap-4 border border-border bg-card px-6 py-8 text-center", children: [
|
|
366
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Spinner, { className: "h-6 w-6 text-primary" }),
|
|
367
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
368
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-sm font-medium", children: "Connecting to Gmail\u2026" }),
|
|
369
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-xs text-muted-foreground", children: "Complete the sign-in in the popup window." })
|
|
370
|
-
] })
|
|
371
|
-
] });
|
|
372
|
-
}
|
|
373
333
|
if (connection.connected) {
|
|
374
|
-
return /* @__PURE__ */ (0,
|
|
375
|
-
/* @__PURE__ */ (0,
|
|
376
|
-
/* @__PURE__ */ (0,
|
|
377
|
-
/* @__PURE__ */ (0,
|
|
378
|
-
/* @__PURE__ */ (0,
|
|
379
|
-
/* @__PURE__ */ (0,
|
|
334
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col border border-border bg-card", children: [
|
|
335
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-3 px-5 py-4", children: [
|
|
336
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center bg-primary/10", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Mail, { className: "h-5 w-5 text-primary" }) }),
|
|
337
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
338
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-base font-semibold", children: "Gmail Connected" }),
|
|
339
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "truncate text-sm text-muted-foreground", children: connection.email })
|
|
380
340
|
] }),
|
|
381
|
-
/* @__PURE__ */ (0,
|
|
382
|
-
/* @__PURE__ */ (0,
|
|
341
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Badge, { variant: "success", children: [
|
|
342
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Check, { size: 10 }),
|
|
383
343
|
"Active"
|
|
384
344
|
] }),
|
|
385
|
-
connection.connectedAt && /* @__PURE__ */ (0,
|
|
345
|
+
connection.connectedAt && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { className: "shrink-0 text-xs text-muted-foreground", children: [
|
|
386
346
|
"Connected since ",
|
|
387
347
|
connection.connectedAt
|
|
388
348
|
] }),
|
|
389
|
-
/* @__PURE__ */ (0,
|
|
349
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
390
350
|
Button,
|
|
391
351
|
{
|
|
392
352
|
size: "sm",
|
|
393
353
|
variant: "ghost",
|
|
394
|
-
className: "shrink-0 gap-1.5 text-
|
|
395
|
-
onClick:
|
|
354
|
+
className: "shrink-0 gap-1.5 text-muted-foreground",
|
|
355
|
+
onClick: onGoToIntegrations,
|
|
396
356
|
children: [
|
|
397
|
-
/* @__PURE__ */ (0,
|
|
398
|
-
"
|
|
357
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Settings, { className: "h-3.5 w-3.5" }),
|
|
358
|
+
"Manage"
|
|
399
359
|
]
|
|
400
360
|
}
|
|
401
361
|
)
|
|
402
362
|
] }),
|
|
403
|
-
/* @__PURE__ */ (0,
|
|
404
|
-
/* @__PURE__ */ (0,
|
|
405
|
-
/* @__PURE__ */ (0,
|
|
406
|
-
PERMISSIONS.map((perm) => /* @__PURE__ */ (0,
|
|
407
|
-
/* @__PURE__ */ (0,
|
|
408
|
-
/* @__PURE__ */ (0,
|
|
363
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Separator, {}),
|
|
364
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col gap-2 px-5 py-4", children: [
|
|
365
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm font-medium text-muted-foreground", children: "Permissions granted" }),
|
|
366
|
+
PERMISSIONS.map((perm) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
367
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Check, { className: "h-3.5 w-3.5 shrink-0 text-success" }),
|
|
368
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-sm text-muted-foreground", children: perm })
|
|
409
369
|
] }, perm))
|
|
410
370
|
] }),
|
|
411
|
-
calendarLink && /* @__PURE__ */ (0,
|
|
412
|
-
/* @__PURE__ */ (0,
|
|
413
|
-
/* @__PURE__ */ (0,
|
|
414
|
-
/* @__PURE__ */ (0,
|
|
415
|
-
/* @__PURE__ */ (0,
|
|
416
|
-
/* @__PURE__ */ (0,
|
|
371
|
+
calendarLink && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
372
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Separator, {}),
|
|
373
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col gap-2.5 px-5 py-4", children: [
|
|
374
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
375
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Link2, { className: "h-4 w-4 text-muted-foreground" }),
|
|
376
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm font-semibold", children: "Calendar Appointment Link" })
|
|
417
377
|
] }),
|
|
418
|
-
/* @__PURE__ */ (0,
|
|
419
|
-
/* @__PURE__ */ (0,
|
|
420
|
-
/* @__PURE__ */ (0,
|
|
378
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm text-muted-foreground", children: "Share with clients so they can self-book." }),
|
|
379
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "relative", children: [
|
|
380
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
421
381
|
Input,
|
|
422
382
|
{
|
|
423
383
|
id: "calendar-link",
|
|
@@ -426,7 +386,7 @@ function AppointmentGmailConnect({
|
|
|
426
386
|
className: "cursor-default select-all pr-10 text-muted-foreground"
|
|
427
387
|
}
|
|
428
388
|
),
|
|
429
|
-
/* @__PURE__ */ (0,
|
|
389
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
430
390
|
Button,
|
|
431
391
|
{
|
|
432
392
|
type: "button",
|
|
@@ -434,7 +394,7 @@ function AppointmentGmailConnect({
|
|
|
434
394
|
size: "icon",
|
|
435
395
|
onClick: onCopyLink,
|
|
436
396
|
className: "absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2",
|
|
437
|
-
children: /* @__PURE__ */ (0,
|
|
397
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Copy, { className: "h-4 w-4" })
|
|
438
398
|
}
|
|
439
399
|
)
|
|
440
400
|
] })
|
|
@@ -442,22 +402,22 @@ function AppointmentGmailConnect({
|
|
|
442
402
|
] })
|
|
443
403
|
] });
|
|
444
404
|
}
|
|
445
|
-
return /* @__PURE__ */ (0,
|
|
446
|
-
/* @__PURE__ */ (0,
|
|
447
|
-
/* @__PURE__ */ (0,
|
|
448
|
-
/* @__PURE__ */ (0,
|
|
449
|
-
/* @__PURE__ */ (0,
|
|
405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col items-center gap-4 border border-border bg-card px-6 py-8 text-center", children: [
|
|
406
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex h-12 w-12 items-center justify-center bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Mail, { className: "h-6 w-6 text-muted-foreground" }) }),
|
|
407
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
|
|
408
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-base font-semibold", children: "Gmail not connected" }),
|
|
409
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "max-w-xs text-sm text-muted-foreground", children: "Connect your Gmail account in Integrations to enable calendar booking and appointment confirmations." })
|
|
450
410
|
] }),
|
|
451
|
-
/* @__PURE__ */ (0,
|
|
452
|
-
/* @__PURE__ */ (0,
|
|
453
|
-
PERMISSIONS.map((perm) => /* @__PURE__ */ (0,
|
|
454
|
-
/* @__PURE__ */ (0,
|
|
455
|
-
/* @__PURE__ */ (0,
|
|
411
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex w-full max-w-xs flex-col gap-2 text-left", children: [
|
|
412
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-sm font-medium text-muted-foreground", children: "Once connected, WealthX will be able to:" }),
|
|
413
|
+
PERMISSIONS.map((perm) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
414
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Check, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
|
|
415
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-sm text-muted-foreground", children: perm })
|
|
456
416
|
] }, perm))
|
|
457
417
|
] }),
|
|
458
|
-
/* @__PURE__ */ (0,
|
|
459
|
-
/* @__PURE__ */ (0,
|
|
460
|
-
"
|
|
418
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Button, { onClick: onGoToIntegrations, className: "gap-2", children: [
|
|
419
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.ExternalLink, { className: "h-4 w-4" }),
|
|
420
|
+
"Go to Integrations"
|
|
461
421
|
] })
|
|
462
422
|
] });
|
|
463
423
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AppointmentGmailConnect
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-FWCSY2DS.mjs";
|
|
3
|
+
} from "../../chunk-FLL633WS.mjs";
|
|
4
|
+
import "../../chunk-WL6WVV47.mjs";
|
|
5
|
+
import "../../chunk-2GIYVERS.mjs";
|
|
6
|
+
import "../../chunk-LBTHZSBT.mjs";
|
|
7
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
8
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
9
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
10
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
12
11
|
export {
|
|
13
12
|
AppointmentGmailConnect
|
|
14
13
|
};
|
|
@@ -207,9 +207,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
207
207
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
208
208
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
209
209
|
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",
|
|
210
|
-
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",
|
|
210
|
+
outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
211
211
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
212
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
212
|
+
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
|
|
213
213
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
214
214
|
link: "text-primary underline-offset-4 hover:underline"
|
|
215
215
|
},
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AppointmentMiniCard
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-4Z66LMIQ.mjs";
|
|
4
|
+
import "../../chunk-H6NQTIF4.mjs";
|
|
5
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
6
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
7
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
8
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
9
9
|
export {
|
|
10
10
|
AppointmentMiniCard
|
|
11
11
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AppointmentSlotSection,
|
|
3
3
|
AppointmentTimeSlotPicker
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-5VOTTIXF.mjs";
|
|
5
|
+
import "../../chunk-6QAFGZC2.mjs";
|
|
6
|
+
import "../../chunk-WL6WVV47.mjs";
|
|
7
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
8
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
9
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
10
10
|
export {
|
|
11
11
|
AppointmentSlotSection,
|
|
12
12
|
AppointmentTimeSlotPicker
|
|
@@ -254,9 +254,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
254
254
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
255
255
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
256
256
|
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",
|
|
257
|
-
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",
|
|
257
|
+
outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
258
258
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
259
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
259
|
+
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
|
|
260
260
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
261
261
|
link: "text-primary underline-offset-4 hover:underline"
|
|
262
262
|
},
|
|
@@ -322,6 +322,22 @@ var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
|
|
|
322
322
|
var React2 = __toESM(require("react"));
|
|
323
323
|
var import_lucide_react2 = require("lucide-react");
|
|
324
324
|
var import_react_day_picker = require("react-day-picker");
|
|
325
|
+
|
|
326
|
+
// src/lib/format-date.ts
|
|
327
|
+
var import_date_fns = require("date-fns");
|
|
328
|
+
function safeParse(iso) {
|
|
329
|
+
return (0, import_date_fns.parseISO)(iso);
|
|
330
|
+
}
|
|
331
|
+
function formatDateShort(iso) {
|
|
332
|
+
if (!iso) return "\u2014";
|
|
333
|
+
try {
|
|
334
|
+
return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
|
|
335
|
+
} catch (e) {
|
|
336
|
+
return iso;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// src/components/ui/calendar.tsx
|
|
325
341
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
326
342
|
function CalendarRoot(_a) {
|
|
327
343
|
var _b = _a, {
|
|
@@ -506,7 +522,7 @@ function CalendarDayButton(_a) {
|
|
|
506
522
|
defaultClassNames.day,
|
|
507
523
|
className
|
|
508
524
|
),
|
|
509
|
-
"data-day": day.date.
|
|
525
|
+
"data-day": formatDateShort(day.date.toISOString()),
|
|
510
526
|
"data-range-end": modifiers.range_end,
|
|
511
527
|
"data-range-middle": modifiers.range_middle,
|
|
512
528
|
"data-range-start": modifiers.range_start,
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AppointmentUpcomingCard
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-RCAOCHWA.mjs";
|
|
4
|
+
import "../../chunk-H6NQTIF4.mjs";
|
|
5
|
+
import "../../chunk-5VOTTIXF.mjs";
|
|
6
|
+
import "../../chunk-6QAFGZC2.mjs";
|
|
7
|
+
import "../../chunk-BS75ICOO.mjs";
|
|
8
|
+
import "../../chunk-WL6WVV47.mjs";
|
|
9
|
+
import "../../chunk-6HIOM2HL.mjs";
|
|
10
|
+
import "../../chunk-M4VYX2PV.mjs";
|
|
11
|
+
import "../../chunk-P7CEBZM6.mjs";
|
|
12
|
+
import "../../chunk-2GIYVERS.mjs";
|
|
13
|
+
import "../../chunk-P2N2PEFY.mjs";
|
|
14
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
15
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
15
16
|
import "../../chunk-FEZKMUCF.mjs";
|
|
16
17
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
17
|
-
import "../../chunk-
|
|
18
|
-
import "../../chunk-
|
|
18
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
19
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
19
20
|
export {
|
|
20
21
|
AppointmentUpcomingCard
|
|
21
22
|
};
|
|
@@ -0,0 +1,95 @@
|
|
|
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/auth-logo.tsx
|
|
21
|
+
var auth_logo_exports = {};
|
|
22
|
+
__export(auth_logo_exports, {
|
|
23
|
+
AuthLogo: () => AuthLogo
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(auth_logo_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/auth-logo.tsx
|
|
67
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
68
|
+
function AuthLogo({
|
|
69
|
+
logoUrl,
|
|
70
|
+
wealthxLogoUrl,
|
|
71
|
+
className
|
|
72
|
+
}) {
|
|
73
|
+
const wealthxMark = wealthxLogoUrl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: wealthxLogoUrl, alt: "WealthX", className: "h-5 w-auto" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-sm font-semibold tracking-tight text-foreground", children: "WealthX" });
|
|
74
|
+
if (!logoUrl) {
|
|
75
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn("flex items-center justify-center", className), children: wealthxLogoUrl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: wealthxLogoUrl, alt: "WealthX", className: "h-8 w-auto" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-lg font-semibold tracking-tight text-foreground", children: "WealthX" }) });
|
|
76
|
+
}
|
|
77
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: cn("flex items-center gap-3", className), children: [
|
|
78
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
79
|
+
"img",
|
|
80
|
+
{
|
|
81
|
+
src: logoUrl,
|
|
82
|
+
alt: "Partner logo",
|
|
83
|
+
className: "h-8 w-auto object-contain"
|
|
84
|
+
}
|
|
85
|
+
),
|
|
86
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
87
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-xs text-muted-foreground", children: "Powered by" }),
|
|
88
|
+
wealthxMark
|
|
89
|
+
] })
|
|
90
|
+
] });
|
|
91
|
+
}
|
|
92
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
93
|
+
0 && (module.exports = {
|
|
94
|
+
AuthLogo
|
|
95
|
+
});
|
|
@@ -0,0 +1,108 @@
|
|
|
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/auth-page-layout.tsx
|
|
21
|
+
var auth_page_layout_exports = {};
|
|
22
|
+
__export(auth_page_layout_exports, {
|
|
23
|
+
AuthPageLayout: () => AuthPageLayout
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(auth_page_layout_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/auth-page-layout.tsx
|
|
67
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
68
|
+
function AuthPageLayout({
|
|
69
|
+
logo,
|
|
70
|
+
title,
|
|
71
|
+
subtitle,
|
|
72
|
+
wide = false,
|
|
73
|
+
className,
|
|
74
|
+
children
|
|
75
|
+
}) {
|
|
76
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
className: cn(
|
|
80
|
+
"relative flex min-h-screen w-full flex-col items-center justify-center px-10 py-16 font-sans",
|
|
81
|
+
className
|
|
82
|
+
),
|
|
83
|
+
children: [
|
|
84
|
+
logo && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-8 left-1/2 -translate-x-1/2", children: logo }),
|
|
85
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
86
|
+
"div",
|
|
87
|
+
{
|
|
88
|
+
className: cn(
|
|
89
|
+
"flex w-full flex-col items-center gap-10",
|
|
90
|
+
wide ? "max-w-full" : "max-w-[581px]"
|
|
91
|
+
),
|
|
92
|
+
children: [
|
|
93
|
+
(title || subtitle) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex w-[320px] flex-col items-center gap-2 text-center", children: [
|
|
94
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", { className: "m-0 text-[30px] font-semibold leading-9 text-card-foreground", children: title }),
|
|
95
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "m-0 text-sm font-normal leading-5 text-muted-foreground", children: subtitle })
|
|
96
|
+
] }),
|
|
97
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn("w-full", wide ? "max-w-full" : "w-[320px]"), children })
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
106
|
+
0 && (module.exports = {
|
|
107
|
+
AuthPageLayout
|
|
108
|
+
});
|
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
AvatarGroup,
|
|
6
6
|
AvatarGroupCount,
|
|
7
7
|
AvatarImage
|
|
8
|
-
} from "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
8
|
+
} from "../../chunk-H6NQTIF4.mjs";
|
|
9
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
10
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
11
11
|
export {
|
|
12
12
|
Avatar,
|
|
13
13
|
AvatarBadge,
|
|
@@ -298,9 +298,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
298
298
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
299
299
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
300
300
|
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",
|
|
301
|
-
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",
|
|
301
|
+
outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
302
302
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
303
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
303
|
+
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
|
|
304
304
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
305
305
|
link: "text-primary underline-offset-4 hover:underline"
|
|
306
306
|
},
|