@wealthx/shadcn 1.3.2 → 1.3.3
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 +262 -226
- package/CHANGELOG.md +6 -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-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-2A5RRQGG.mjs → chunk-JD3YWRNP.mjs} +10 -14
- 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 +157 -152
- 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 +12764 -9396
- 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 +10 -14
- 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
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
var __objRest = (source, exclude) => {
|
|
26
|
+
var target = {};
|
|
27
|
+
for (var prop in source)
|
|
28
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
if (source != null && __getOwnPropSymbols)
|
|
31
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
32
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
33
|
+
target[prop] = source[prop];
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
37
|
+
var __export = (target, all) => {
|
|
38
|
+
for (var name in all)
|
|
39
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
40
|
+
};
|
|
41
|
+
var __copyProps = (to, from, except, desc) => {
|
|
42
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
43
|
+
for (let key of __getOwnPropNames(from))
|
|
44
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
45
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
46
|
+
}
|
|
47
|
+
return to;
|
|
48
|
+
};
|
|
49
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
50
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
51
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
52
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
53
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
54
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
55
|
+
mod
|
|
56
|
+
));
|
|
57
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
58
|
+
|
|
59
|
+
// src/components/ui/onboarding-layout.tsx
|
|
60
|
+
var onboarding_layout_exports = {};
|
|
61
|
+
__export(onboarding_layout_exports, {
|
|
62
|
+
OnboardingLayout: () => OnboardingLayout
|
|
63
|
+
});
|
|
64
|
+
module.exports = __toCommonJS(onboarding_layout_exports);
|
|
65
|
+
|
|
66
|
+
// src/components/ui/button.tsx
|
|
67
|
+
var import_react = require("react");
|
|
68
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
69
|
+
var import_lucide_react = require("lucide-react");
|
|
70
|
+
|
|
71
|
+
// src/lib/utils.ts
|
|
72
|
+
var import_clsx = require("clsx");
|
|
73
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
74
|
+
var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
|
|
75
|
+
extend: {
|
|
76
|
+
classGroups: {
|
|
77
|
+
"font-size": [
|
|
78
|
+
{
|
|
79
|
+
text: [
|
|
80
|
+
"display-large",
|
|
81
|
+
"display-medium",
|
|
82
|
+
"display-small",
|
|
83
|
+
"h1",
|
|
84
|
+
"h2",
|
|
85
|
+
"h3",
|
|
86
|
+
"h4",
|
|
87
|
+
"h5",
|
|
88
|
+
"h6",
|
|
89
|
+
"body-large",
|
|
90
|
+
"body-medium",
|
|
91
|
+
"body-small",
|
|
92
|
+
"label-large",
|
|
93
|
+
"label-medium",
|
|
94
|
+
"label-small",
|
|
95
|
+
"button",
|
|
96
|
+
"button-xs",
|
|
97
|
+
"caption",
|
|
98
|
+
"overline",
|
|
99
|
+
"code"
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
function cn(...inputs) {
|
|
107
|
+
return twMerge((0, import_clsx.clsx)(inputs));
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// src/lib/slot.tsx
|
|
111
|
+
var React = __toESM(require("react"));
|
|
112
|
+
function mergeRefs(...refs) {
|
|
113
|
+
return (value) => {
|
|
114
|
+
for (const ref of refs) {
|
|
115
|
+
if (typeof ref === "function") ref(value);
|
|
116
|
+
else if (ref !== null)
|
|
117
|
+
ref.current = value;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
var Slot = React.forwardRef(
|
|
122
|
+
(_a, forwardedRef) => {
|
|
123
|
+
var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
|
|
124
|
+
const child = React.Children.only(children);
|
|
125
|
+
if (!React.isValidElement(child)) return null;
|
|
126
|
+
const childProps = child.props;
|
|
127
|
+
const merged = __spreadValues({}, props);
|
|
128
|
+
for (const key of Object.keys(childProps)) {
|
|
129
|
+
if (key === "className") {
|
|
130
|
+
merged.className = [props.className, childProps.className].filter(Boolean).join(" ");
|
|
131
|
+
} else if (key === "style") {
|
|
132
|
+
merged.style = __spreadValues(__spreadValues({}, props.style), childProps.style);
|
|
133
|
+
} else if (key.startsWith("on") && typeof childProps[key] === "function") {
|
|
134
|
+
const parentHandler = props[key];
|
|
135
|
+
if (typeof parentHandler === "function") {
|
|
136
|
+
merged[key] = (...args) => {
|
|
137
|
+
childProps[key](...args);
|
|
138
|
+
parentHandler(...args);
|
|
139
|
+
};
|
|
140
|
+
} else {
|
|
141
|
+
merged[key] = childProps[key];
|
|
142
|
+
}
|
|
143
|
+
} else {
|
|
144
|
+
merged[key] = childProps[key];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
const childRef = child.ref;
|
|
148
|
+
merged.ref = forwardedRef ? mergeRefs(forwardedRef, childRef) : childRef;
|
|
149
|
+
return React.cloneElement(
|
|
150
|
+
child,
|
|
151
|
+
merged
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
Slot.displayName = "Slot";
|
|
156
|
+
|
|
157
|
+
// src/components/ui/button.tsx
|
|
158
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
159
|
+
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
160
|
+
"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",
|
|
161
|
+
{
|
|
162
|
+
variants: {
|
|
163
|
+
variant: {
|
|
164
|
+
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
165
|
+
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
166
|
+
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",
|
|
167
|
+
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",
|
|
168
|
+
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
169
|
+
"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",
|
|
170
|
+
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
171
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
172
|
+
},
|
|
173
|
+
size: {
|
|
174
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
175
|
+
xs: "h-6 gap-1 px-2 text-button-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
176
|
+
sm: "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
177
|
+
lg: "h-10 px-6 has-[>svg]:px-4",
|
|
178
|
+
icon: "size-9",
|
|
179
|
+
"icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3",
|
|
180
|
+
"icon-sm": "size-8",
|
|
181
|
+
"icon-lg": "size-10"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
defaultVariants: {
|
|
185
|
+
variant: "default",
|
|
186
|
+
size: "default"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
);
|
|
190
|
+
var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
|
|
191
|
+
var _b = _a, {
|
|
192
|
+
className,
|
|
193
|
+
variant,
|
|
194
|
+
size,
|
|
195
|
+
asChild = false,
|
|
196
|
+
loading = false,
|
|
197
|
+
disabled,
|
|
198
|
+
type = "button",
|
|
199
|
+
children
|
|
200
|
+
} = _b, props = __objRest(_b, [
|
|
201
|
+
"className",
|
|
202
|
+
"variant",
|
|
203
|
+
"size",
|
|
204
|
+
"asChild",
|
|
205
|
+
"loading",
|
|
206
|
+
"disabled",
|
|
207
|
+
"type",
|
|
208
|
+
"children"
|
|
209
|
+
]);
|
|
210
|
+
const Comp = asChild ? Slot : "button";
|
|
211
|
+
const isIconOnly = size === "icon" || size === "icon-xs" || size === "icon-sm" || size === "icon-lg";
|
|
212
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
213
|
+
Comp,
|
|
214
|
+
__spreadProps(__spreadValues({
|
|
215
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
216
|
+
"data-size": size,
|
|
217
|
+
"data-slot": "button",
|
|
218
|
+
"data-variant": variant,
|
|
219
|
+
disabled: loading || disabled,
|
|
220
|
+
ref,
|
|
221
|
+
type
|
|
222
|
+
}, props), {
|
|
223
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
224
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Loader2, { "aria-hidden": "true", className: "animate-spin" }),
|
|
225
|
+
!isIconOnly && children
|
|
226
|
+
] }) : children
|
|
227
|
+
})
|
|
228
|
+
);
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
// src/components/ui/stepper.tsx
|
|
232
|
+
var React2 = __toESM(require("react"));
|
|
233
|
+
var import_lucide_react2 = require("lucide-react");
|
|
234
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
235
|
+
var StepperContext = React2.createContext({
|
|
236
|
+
activeStep: 0,
|
|
237
|
+
orientation: "horizontal",
|
|
238
|
+
totalSteps: 0
|
|
239
|
+
});
|
|
240
|
+
var StepContext = React2.createContext({
|
|
241
|
+
index: 0,
|
|
242
|
+
isActive: false,
|
|
243
|
+
isCompleted: false,
|
|
244
|
+
isFirst: true,
|
|
245
|
+
isLast: false
|
|
246
|
+
});
|
|
247
|
+
function Stepper({
|
|
248
|
+
activeStep = 0,
|
|
249
|
+
orientation = "horizontal",
|
|
250
|
+
className,
|
|
251
|
+
children
|
|
252
|
+
}) {
|
|
253
|
+
const totalSteps = React2.Children.count(children);
|
|
254
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StepperContext.Provider, { value: { activeStep, orientation, totalSteps }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
255
|
+
"div",
|
|
256
|
+
{
|
|
257
|
+
"data-slot": "stepper",
|
|
258
|
+
className: cn(
|
|
259
|
+
"font-sans",
|
|
260
|
+
orientation === "horizontal" ? "flex w-full items-start" : "flex flex-col",
|
|
261
|
+
className
|
|
262
|
+
),
|
|
263
|
+
children: React2.Children.map(
|
|
264
|
+
children,
|
|
265
|
+
(step, index) => React2.isValidElement(step) ? React2.cloneElement(
|
|
266
|
+
step,
|
|
267
|
+
{ _index: index }
|
|
268
|
+
) : step
|
|
269
|
+
)
|
|
270
|
+
}
|
|
271
|
+
) });
|
|
272
|
+
}
|
|
273
|
+
function Step({ _index = 0, error, className, children }) {
|
|
274
|
+
const { activeStep, orientation, totalSteps } = React2.useContext(StepperContext);
|
|
275
|
+
const isActive = _index === activeStep;
|
|
276
|
+
const isCompleted = _index < activeStep;
|
|
277
|
+
const isFirst = _index === 0;
|
|
278
|
+
const isLast = _index === totalSteps - 1;
|
|
279
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
280
|
+
StepContext.Provider,
|
|
281
|
+
{
|
|
282
|
+
value: { index: _index, isActive, isCompleted, isFirst, isLast },
|
|
283
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
284
|
+
"div",
|
|
285
|
+
{
|
|
286
|
+
"data-slot": "step",
|
|
287
|
+
"aria-current": isActive ? "step" : void 0,
|
|
288
|
+
"data-active": isActive || void 0,
|
|
289
|
+
"data-completed": isCompleted || void 0,
|
|
290
|
+
"data-error": error || void 0,
|
|
291
|
+
className: cn(
|
|
292
|
+
orientation === "horizontal" ? "flex flex-1 flex-col items-center" : "flex flex-row gap-3",
|
|
293
|
+
className
|
|
294
|
+
),
|
|
295
|
+
children
|
|
296
|
+
}
|
|
297
|
+
)
|
|
298
|
+
}
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
function StepIndicator({ error, className }) {
|
|
302
|
+
const { orientation } = React2.useContext(StepperContext);
|
|
303
|
+
const { index, isActive, isCompleted, isFirst, isLast } = React2.useContext(StepContext);
|
|
304
|
+
const filled = isActive || isCompleted;
|
|
305
|
+
const circle = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
306
|
+
"div",
|
|
307
|
+
{
|
|
308
|
+
className: cn(
|
|
309
|
+
"relative z-10 flex size-8 shrink-0 items-center justify-center rounded-full text-sm font-medium transition-colors",
|
|
310
|
+
!filled && !error && "border-2 border-border bg-background text-muted-foreground",
|
|
311
|
+
isActive && !error && "border-2 border-primary bg-primary text-primary-foreground",
|
|
312
|
+
isCompleted && !error && "bg-primary text-primary-foreground",
|
|
313
|
+
error && "border-2 border-destructive bg-destructive text-destructive-foreground"
|
|
314
|
+
),
|
|
315
|
+
children: isCompleted && !error ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.Check, { className: "size-4", strokeWidth: 2.5 }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: index + 1 })
|
|
316
|
+
}
|
|
317
|
+
);
|
|
318
|
+
if (orientation === "horizontal") {
|
|
319
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
320
|
+
"div",
|
|
321
|
+
{
|
|
322
|
+
"data-slot": "step-indicator",
|
|
323
|
+
className: cn("flex w-full items-center", className),
|
|
324
|
+
children: [
|
|
325
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
326
|
+
"div",
|
|
327
|
+
{
|
|
328
|
+
className: cn(
|
|
329
|
+
"h-[2px] flex-1 transition-colors",
|
|
330
|
+
isFirst ? "bg-transparent" : isActive || isCompleted ? "bg-primary" : "bg-border"
|
|
331
|
+
)
|
|
332
|
+
}
|
|
333
|
+
),
|
|
334
|
+
circle,
|
|
335
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
336
|
+
"div",
|
|
337
|
+
{
|
|
338
|
+
className: cn(
|
|
339
|
+
"h-[2px] flex-1 transition-colors",
|
|
340
|
+
isLast ? "bg-transparent" : isCompleted ? "bg-primary" : "bg-border"
|
|
341
|
+
)
|
|
342
|
+
}
|
|
343
|
+
)
|
|
344
|
+
]
|
|
345
|
+
}
|
|
346
|
+
);
|
|
347
|
+
}
|
|
348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
349
|
+
"div",
|
|
350
|
+
{
|
|
351
|
+
"data-slot": "step-indicator",
|
|
352
|
+
className: cn("flex w-8 shrink-0 flex-col items-center", className),
|
|
353
|
+
children: [
|
|
354
|
+
circle,
|
|
355
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
356
|
+
"div",
|
|
357
|
+
{
|
|
358
|
+
"data-slot": "step-connector",
|
|
359
|
+
className: cn(
|
|
360
|
+
"mt-1 w-[2px] flex-1 transition-colors",
|
|
361
|
+
isActive || isCompleted ? "bg-primary" : "bg-border"
|
|
362
|
+
)
|
|
363
|
+
}
|
|
364
|
+
)
|
|
365
|
+
]
|
|
366
|
+
}
|
|
367
|
+
);
|
|
368
|
+
}
|
|
369
|
+
function StepLabel({
|
|
370
|
+
children,
|
|
371
|
+
description,
|
|
372
|
+
error,
|
|
373
|
+
className
|
|
374
|
+
}) {
|
|
375
|
+
const { orientation } = React2.useContext(StepperContext);
|
|
376
|
+
const { isActive, isCompleted, isLast } = React2.useContext(StepContext);
|
|
377
|
+
const subtext = typeof error === "string" ? error : description;
|
|
378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
379
|
+
"div",
|
|
380
|
+
{
|
|
381
|
+
"data-slot": "step-label",
|
|
382
|
+
className: cn(
|
|
383
|
+
"flex flex-col",
|
|
384
|
+
orientation === "horizontal" ? "mt-2 items-center text-center" : cn("flex-1", !isLast && "pb-5"),
|
|
385
|
+
className
|
|
386
|
+
),
|
|
387
|
+
children: [
|
|
388
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
389
|
+
"span",
|
|
390
|
+
{
|
|
391
|
+
className: cn(
|
|
392
|
+
"text-sm font-medium leading-tight transition-colors",
|
|
393
|
+
(isActive || isCompleted) && !error && "text-foreground",
|
|
394
|
+
!isActive && !isCompleted && !error && "text-muted-foreground",
|
|
395
|
+
error && "text-destructive"
|
|
396
|
+
),
|
|
397
|
+
children
|
|
398
|
+
}
|
|
399
|
+
),
|
|
400
|
+
subtext && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
401
|
+
"span",
|
|
402
|
+
{
|
|
403
|
+
className: cn(
|
|
404
|
+
"mt-0.5 text-xs",
|
|
405
|
+
error ? "text-destructive" : "text-muted-foreground"
|
|
406
|
+
),
|
|
407
|
+
children: subtext
|
|
408
|
+
}
|
|
409
|
+
)
|
|
410
|
+
]
|
|
411
|
+
}
|
|
412
|
+
);
|
|
413
|
+
}
|
|
414
|
+
function StepItem({ label, description, error }) {
|
|
415
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
416
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StepIndicator, { error: !!error }),
|
|
417
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StepLabel, { description, error, children: label })
|
|
418
|
+
] });
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// src/components/ui/onboarding-layout.tsx
|
|
422
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
423
|
+
function OnboardingLayout({
|
|
424
|
+
steps,
|
|
425
|
+
currentStepIndex,
|
|
426
|
+
nextLabel,
|
|
427
|
+
canProceed = true,
|
|
428
|
+
onBack,
|
|
429
|
+
onNext,
|
|
430
|
+
onSkip,
|
|
431
|
+
onUpgrade,
|
|
432
|
+
className,
|
|
433
|
+
children
|
|
434
|
+
}) {
|
|
435
|
+
var _a;
|
|
436
|
+
const isFirstStep = currentStepIndex === 0;
|
|
437
|
+
const isLastStep = currentStepIndex === steps.length - 1;
|
|
438
|
+
const currentStep = steps[currentStepIndex];
|
|
439
|
+
const isLocked = (_a = currentStep == null ? void 0 : currentStep.isLocked) != null ? _a : false;
|
|
440
|
+
const primaryLabel = isLocked ? "Upgrade Plan" : isLastStep ? "Finish Setup" : nextLabel != null ? nextLabel : "Next";
|
|
441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
442
|
+
"div",
|
|
443
|
+
{
|
|
444
|
+
className: cn("flex h-full flex-col bg-background font-sans", className),
|
|
445
|
+
children: [
|
|
446
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "px-8 pt-5 pb-3", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Stepper, { activeStep: currentStepIndex, children: steps.map((step) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Step, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
447
|
+
StepItem,
|
|
448
|
+
{
|
|
449
|
+
label: step.title,
|
|
450
|
+
description: step.isLocked ? "Upgrade to unlock" : step.isOptional ? "Optional" : void 0
|
|
451
|
+
}
|
|
452
|
+
) }, step.id)) }) }),
|
|
453
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "min-h-0 flex-1 overflow-y-auto px-8 pt-4 pb-6", children }),
|
|
454
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-center justify-between border-t border-border px-8 py-4", children: [
|
|
455
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children: onSkip && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { variant: "ghost", size: "sm", onClick: onSkip, children: "Skip for now" }) }),
|
|
456
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex gap-2", children: [
|
|
457
|
+
!isFirstStep && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { variant: "outline-secondary", size: "sm", onClick: onBack, children: "Back" }),
|
|
458
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
459
|
+
Button,
|
|
460
|
+
{
|
|
461
|
+
size: "sm",
|
|
462
|
+
onClick: isLocked ? onUpgrade : onNext,
|
|
463
|
+
disabled: !isLocked && !canProceed,
|
|
464
|
+
children: primaryLabel
|
|
465
|
+
}
|
|
466
|
+
)
|
|
467
|
+
] })
|
|
468
|
+
] })
|
|
469
|
+
]
|
|
470
|
+
}
|
|
471
|
+
);
|
|
472
|
+
}
|
|
473
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
474
|
+
0 && (module.exports = {
|
|
475
|
+
OnboardingLayout
|
|
476
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OnboardingLayout
|
|
3
|
+
} from "../../chunk-2P7HP7LR.mjs";
|
|
4
|
+
import "../../chunk-6TX73WG7.mjs";
|
|
5
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
6
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
7
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
8
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
9
|
+
export {
|
|
10
|
+
OnboardingLayout
|
|
11
|
+
};
|
|
@@ -248,9 +248,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
248
248
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
249
249
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
250
250
|
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",
|
|
251
|
-
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",
|
|
251
|
+
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",
|
|
252
252
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
253
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
253
|
+
"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",
|
|
254
254
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
255
255
|
link: "text-primary underline-offset-4 hover:underline"
|
|
256
256
|
},
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LeadCard,
|
|
3
3
|
OpportunityCard
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-EFRENWEJ.mjs";
|
|
4
|
+
} from "../../chunk-K4KOD3KR.mjs";
|
|
5
|
+
import "../../chunk-K5QV4TT6.mjs";
|
|
7
6
|
import "../../chunk-MN5NYQCL.mjs";
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-RSUIPKGX.mjs";
|
|
8
|
+
import "../../chunk-WL6WVV47.mjs";
|
|
9
|
+
import "../../chunk-M4VYX2PV.mjs";
|
|
10
|
+
import "../../chunk-UNACI2YK.mjs";
|
|
11
|
+
import "../../chunk-2GIYVERS.mjs";
|
|
12
|
+
import "../../chunk-IKXYTCSB.mjs";
|
|
13
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
14
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
15
15
|
import "../../chunk-FEZKMUCF.mjs";
|
|
16
16
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
17
|
-
import "../../chunk-
|
|
18
|
-
import "../../chunk-
|
|
17
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
18
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
19
19
|
export {
|
|
20
20
|
LeadCard,
|
|
21
21
|
OpportunityCard
|
|
@@ -192,9 +192,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
192
192
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
193
193
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
194
194
|
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",
|
|
195
|
-
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",
|
|
195
|
+
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",
|
|
196
196
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
197
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
197
|
+
"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",
|
|
198
198
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
199
199
|
link: "text-primary underline-offset-4 hover:underline"
|
|
200
200
|
},
|
|
@@ -699,13 +699,29 @@ function Checkbox(_a) {
|
|
|
699
699
|
|
|
700
700
|
// src/components/ui/date-picker.tsx
|
|
701
701
|
var React4 = __toESM(require("react"));
|
|
702
|
-
var
|
|
702
|
+
var import_date_fns2 = require("date-fns");
|
|
703
703
|
var import_lucide_react7 = require("lucide-react");
|
|
704
704
|
|
|
705
705
|
// src/components/ui/calendar.tsx
|
|
706
706
|
var React3 = __toESM(require("react"));
|
|
707
707
|
var import_lucide_react6 = require("lucide-react");
|
|
708
708
|
var import_react_day_picker = require("react-day-picker");
|
|
709
|
+
|
|
710
|
+
// src/lib/format-date.ts
|
|
711
|
+
var import_date_fns = require("date-fns");
|
|
712
|
+
function safeParse(iso) {
|
|
713
|
+
return (0, import_date_fns.parseISO)(iso);
|
|
714
|
+
}
|
|
715
|
+
function formatDateShort(iso) {
|
|
716
|
+
if (!iso) return "\u2014";
|
|
717
|
+
try {
|
|
718
|
+
return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
|
|
719
|
+
} catch (e) {
|
|
720
|
+
return iso;
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
// src/components/ui/calendar.tsx
|
|
709
725
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
710
726
|
function CalendarRoot(_a) {
|
|
711
727
|
var _b = _a, {
|
|
@@ -890,7 +906,7 @@ function CalendarDayButton(_a) {
|
|
|
890
906
|
defaultClassNames.day,
|
|
891
907
|
className
|
|
892
908
|
),
|
|
893
|
-
"data-day": day.date.
|
|
909
|
+
"data-day": formatDateShort(day.date.toISOString()),
|
|
894
910
|
"data-range-end": modifiers.range_end,
|
|
895
911
|
"data-range-middle": modifiers.range_middle,
|
|
896
912
|
"data-range-start": modifiers.range_start,
|
|
@@ -979,9 +995,9 @@ function DatePicker({
|
|
|
979
995
|
const timeValue = value ? `${String(value.getHours()).padStart(2, "0")}:${String(value.getMinutes()).padStart(2, "0")}` : "";
|
|
980
996
|
let displayValue;
|
|
981
997
|
if (value && showTimePicker) {
|
|
982
|
-
displayValue = (0,
|
|
998
|
+
displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy HH:mm");
|
|
983
999
|
} else if (value) {
|
|
984
|
-
displayValue = (0,
|
|
1000
|
+
displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy");
|
|
985
1001
|
}
|
|
986
1002
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Popover, { onOpenChange: disabled ? void 0 : setOpen, open, children: [
|
|
987
1003
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
@@ -5,28 +5,29 @@ import {
|
|
|
5
5
|
EditExpensesModal,
|
|
6
6
|
EditIncomeModal,
|
|
7
7
|
EditLoanScenarioModal
|
|
8
|
-
} from "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
15
|
-
import "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
17
|
-
import "../../chunk-
|
|
18
|
-
import "../../chunk-
|
|
19
|
-
import "../../chunk-
|
|
20
|
-
import "../../chunk-
|
|
21
|
-
import "../../chunk-
|
|
22
|
-
import "../../chunk-
|
|
23
|
-
import "../../chunk-
|
|
24
|
-
import "../../chunk-
|
|
25
|
-
import "../../chunk-
|
|
8
|
+
} from "../../chunk-JZY6TNIS.mjs";
|
|
9
|
+
import "../../chunk-57ZXILTS.mjs";
|
|
10
|
+
import "../../chunk-ISUA7DSB.mjs";
|
|
11
|
+
import "../../chunk-JTK6VJXY.mjs";
|
|
12
|
+
import "../../chunk-OWFQSXVD.mjs";
|
|
13
|
+
import "../../chunk-6QAFGZC2.mjs";
|
|
14
|
+
import "../../chunk-BS75ICOO.mjs";
|
|
15
|
+
import "../../chunk-OKTJFDPN.mjs";
|
|
16
|
+
import "../../chunk-DGNHGNYH.mjs";
|
|
17
|
+
import "../../chunk-6HIOM2HL.mjs";
|
|
18
|
+
import "../../chunk-M4VYX2PV.mjs";
|
|
19
|
+
import "../../chunk-UNACI2YK.mjs";
|
|
20
|
+
import "../../chunk-P7CEBZM6.mjs";
|
|
21
|
+
import "../../chunk-IKXYTCSB.mjs";
|
|
22
|
+
import "../../chunk-ZEDMKQK2.mjs";
|
|
23
|
+
import "../../chunk-LBTHZSBT.mjs";
|
|
24
|
+
import "../../chunk-P2N2PEFY.mjs";
|
|
25
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
26
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
26
27
|
import "../../chunk-FEZKMUCF.mjs";
|
|
27
28
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
28
|
-
import "../../chunk-
|
|
29
|
-
import "../../chunk-
|
|
29
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
30
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
30
31
|
export {
|
|
31
32
|
EditAboutApplicantModal,
|
|
32
33
|
EditAssetsModal,
|