@wealthx/shadcn 1.3.1 → 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 +259 -223
- 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-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-MLNEWRWV.mjs → chunk-UJZ4UHWI.mjs} +10 -15
- 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 +7 -9
- 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 +12765 -9400
- 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 +2 -15
- 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,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AICollectedDataSection,
|
|
3
|
+
AiConvAssignAdvisorDialog,
|
|
4
|
+
ChatBubble,
|
|
5
|
+
ChatComposer,
|
|
6
|
+
ChatThread,
|
|
7
|
+
ConversationList,
|
|
8
|
+
ConversationListItem,
|
|
9
|
+
ConversationStatusChip,
|
|
10
|
+
ConversationsPage,
|
|
11
|
+
LeadInfoPanel
|
|
12
|
+
} from "../../chunk-OLKMCXAR.mjs";
|
|
13
|
+
import "../../chunk-UALR6JGV.mjs";
|
|
14
|
+
import "../../chunk-RSUIPKGX.mjs";
|
|
15
|
+
import "../../chunk-OWFQSXVD.mjs";
|
|
16
|
+
import "../../chunk-H6NQTIF4.mjs";
|
|
17
|
+
import "../../chunk-6QAFGZC2.mjs";
|
|
18
|
+
import "../../chunk-BS75ICOO.mjs";
|
|
19
|
+
import "../../chunk-WL6WVV47.mjs";
|
|
20
|
+
import "../../chunk-WE4YKBDE.mjs";
|
|
21
|
+
import "../../chunk-2GIYVERS.mjs";
|
|
22
|
+
import "../../chunk-LBTHZSBT.mjs";
|
|
23
|
+
import "../../chunk-P2N2PEFY.mjs";
|
|
24
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
25
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
26
|
+
import "../../chunk-FEZKMUCF.mjs";
|
|
27
|
+
import "../../chunk-QOJ2DQD6.mjs";
|
|
28
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
29
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
30
|
+
export {
|
|
31
|
+
AICollectedDataSection,
|
|
32
|
+
AiConvAssignAdvisorDialog,
|
|
33
|
+
ChatBubble,
|
|
34
|
+
ChatComposer,
|
|
35
|
+
ChatThread,
|
|
36
|
+
ConversationList,
|
|
37
|
+
ConversationListItem,
|
|
38
|
+
ConversationStatusChip,
|
|
39
|
+
ConversationsPage,
|
|
40
|
+
LeadInfoPanel
|
|
41
|
+
};
|
|
@@ -184,9 +184,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
184
184
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
185
185
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
186
186
|
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",
|
|
187
|
-
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",
|
|
187
|
+
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",
|
|
188
188
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
189
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
189
|
+
"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",
|
|
190
190
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
191
191
|
link: "text-primary underline-offset-4 hover:underline"
|
|
192
192
|
},
|
|
@@ -11,13 +11,13 @@ import {
|
|
|
11
11
|
AlertDialogPortal,
|
|
12
12
|
AlertDialogTitle,
|
|
13
13
|
AlertDialogTrigger
|
|
14
|
-
} from "../../chunk-
|
|
15
|
-
import "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
14
|
+
} from "../../chunk-TLAWKTSA.mjs";
|
|
15
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
16
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
17
17
|
import "../../chunk-FEZKMUCF.mjs";
|
|
18
18
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
19
|
-
import "../../chunk-
|
|
20
|
-
import "../../chunk-
|
|
19
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
20
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
21
21
|
export {
|
|
22
22
|
AlertDialog,
|
|
23
23
|
AlertDialogAction,
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
Alert,
|
|
3
3
|
AlertDescription,
|
|
4
4
|
AlertTitle
|
|
5
|
-
} from "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
5
|
+
} from "../../chunk-MDUKXXIL.mjs";
|
|
6
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
7
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
8
8
|
export {
|
|
9
9
|
Alert,
|
|
10
10
|
AlertDescription,
|
|
@@ -177,9 +177,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
177
177
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
178
178
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
179
179
|
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",
|
|
180
|
-
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",
|
|
180
|
+
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",
|
|
181
181
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
182
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
182
|
+
"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",
|
|
183
183
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
184
184
|
link: "text-primary underline-offset-4 hover:underline"
|
|
185
185
|
},
|
|
@@ -407,6 +407,22 @@ function AlertDialogCancel(_a) {
|
|
|
407
407
|
var React3 = __toESM(require("react"));
|
|
408
408
|
var import_lucide_react2 = require("lucide-react");
|
|
409
409
|
var import_react_day_picker = require("react-day-picker");
|
|
410
|
+
|
|
411
|
+
// src/lib/format-date.ts
|
|
412
|
+
var import_date_fns = require("date-fns");
|
|
413
|
+
function safeParse(iso) {
|
|
414
|
+
return (0, import_date_fns.parseISO)(iso);
|
|
415
|
+
}
|
|
416
|
+
function formatDateShort(iso) {
|
|
417
|
+
if (!iso) return "\u2014";
|
|
418
|
+
try {
|
|
419
|
+
return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
|
|
420
|
+
} catch (e) {
|
|
421
|
+
return iso;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
// src/components/ui/calendar.tsx
|
|
410
426
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
411
427
|
function CalendarRoot(_a) {
|
|
412
428
|
var _b = _a, {
|
|
@@ -591,7 +607,7 @@ function CalendarDayButton(_a) {
|
|
|
591
607
|
defaultClassNames.day,
|
|
592
608
|
className
|
|
593
609
|
),
|
|
594
|
-
"data-day": day.date.
|
|
610
|
+
"data-day": formatDateShort(day.date.toISOString()),
|
|
595
611
|
"data-range-end": modifiers.range_end,
|
|
596
612
|
"data-range-middle": modifiers.range_middle,
|
|
597
613
|
"data-range-start": modifiers.range_start,
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AppointmentConfirmDialog,
|
|
3
3
|
AppointmentRescheduleDialog
|
|
4
|
-
} from "../../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-
|
|
15
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-SIVYAI3M.mjs";
|
|
5
|
+
import "../../chunk-5VOTTIXF.mjs";
|
|
6
|
+
import "../../chunk-6QAFGZC2.mjs";
|
|
7
|
+
import "../../chunk-BS75ICOO.mjs";
|
|
8
|
+
import "../../chunk-WL6WVV47.mjs";
|
|
9
|
+
import "../../chunk-TLAWKTSA.mjs";
|
|
10
|
+
import "../../chunk-6HIOM2HL.mjs";
|
|
11
|
+
import "../../chunk-M4VYX2PV.mjs";
|
|
12
|
+
import "../../chunk-P7CEBZM6.mjs";
|
|
13
|
+
import "../../chunk-2GIYVERS.mjs";
|
|
14
|
+
import "../../chunk-P2N2PEFY.mjs";
|
|
15
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
16
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
16
17
|
import "../../chunk-FEZKMUCF.mjs";
|
|
17
18
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
18
|
-
import "../../chunk-
|
|
19
|
-
import "../../chunk-
|
|
19
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
20
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
20
21
|
export {
|
|
21
22
|
AppointmentConfirmDialog,
|
|
22
23
|
AppointmentRescheduleDialog
|
|
@@ -59,7 +59,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
59
59
|
// src/components/ui/appointment-availability-settings.tsx
|
|
60
60
|
var appointment_availability_settings_exports = {};
|
|
61
61
|
__export(appointment_availability_settings_exports, {
|
|
62
|
-
AppointmentAvailabilitySettings: () => AppointmentAvailabilitySettings
|
|
62
|
+
AppointmentAvailabilitySettings: () => AppointmentAvailabilitySettings,
|
|
63
|
+
TIMEZONE_OPTIONS: () => TIMEZONE_OPTIONS
|
|
63
64
|
});
|
|
64
65
|
module.exports = __toCommonJS(appointment_availability_settings_exports);
|
|
65
66
|
var import_react4 = __toESM(require("react"));
|
|
@@ -165,9 +166,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
165
166
|
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
166
167
|
secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
|
|
167
168
|
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",
|
|
168
|
-
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",
|
|
169
|
+
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",
|
|
169
170
|
"outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
|
|
170
|
-
"outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
|
|
171
|
+
"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",
|
|
171
172
|
ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
|
|
172
173
|
link: "text-primary underline-offset-4 hover:underline"
|
|
173
174
|
},
|
|
@@ -231,7 +232,7 @@ var Button = (0, import_react.forwardRef)(function Button2(_a, ref) {
|
|
|
231
232
|
|
|
232
233
|
// src/components/ui/date-picker.tsx
|
|
233
234
|
var React4 = __toESM(require("react"));
|
|
234
|
-
var
|
|
235
|
+
var import_date_fns2 = require("date-fns");
|
|
235
236
|
var import_lucide_react3 = require("lucide-react");
|
|
236
237
|
|
|
237
238
|
// src/components/ui/input.tsx
|
|
@@ -257,6 +258,29 @@ function Input(_a) {
|
|
|
257
258
|
var React2 = __toESM(require("react"));
|
|
258
259
|
var import_lucide_react2 = require("lucide-react");
|
|
259
260
|
var import_react_day_picker = require("react-day-picker");
|
|
261
|
+
|
|
262
|
+
// src/lib/format-date.ts
|
|
263
|
+
var import_date_fns = require("date-fns");
|
|
264
|
+
function safeParse(iso) {
|
|
265
|
+
return (0, import_date_fns.parseISO)(iso);
|
|
266
|
+
}
|
|
267
|
+
function formatDateShort(iso) {
|
|
268
|
+
if (!iso) return "\u2014";
|
|
269
|
+
try {
|
|
270
|
+
return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
|
|
271
|
+
} catch (e) {
|
|
272
|
+
return iso;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
function formatDateWithWeekday(iso) {
|
|
276
|
+
try {
|
|
277
|
+
return (0, import_date_fns.format)(safeParse(iso), "EEE, dd MMM yyyy");
|
|
278
|
+
} catch (e) {
|
|
279
|
+
return iso;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// src/components/ui/calendar.tsx
|
|
260
284
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
261
285
|
function CalendarRoot(_a) {
|
|
262
286
|
var _b = _a, {
|
|
@@ -441,7 +465,7 @@ function CalendarDayButton(_a) {
|
|
|
441
465
|
defaultClassNames.day,
|
|
442
466
|
className
|
|
443
467
|
),
|
|
444
|
-
"data-day": day.date.
|
|
468
|
+
"data-day": formatDateShort(day.date.toISOString()),
|
|
445
469
|
"data-range-end": modifiers.range_end,
|
|
446
470
|
"data-range-middle": modifiers.range_middle,
|
|
447
471
|
"data-range-start": modifiers.range_start,
|
|
@@ -540,9 +564,9 @@ function DatePicker({
|
|
|
540
564
|
const timeValue = value ? `${String(value.getHours()).padStart(2, "0")}:${String(value.getMinutes()).padStart(2, "0")}` : "";
|
|
541
565
|
let displayValue;
|
|
542
566
|
if (value && showTimePicker) {
|
|
543
|
-
displayValue = (0,
|
|
567
|
+
displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy HH:mm");
|
|
544
568
|
} else if (value) {
|
|
545
|
-
displayValue = (0,
|
|
569
|
+
displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy");
|
|
546
570
|
}
|
|
547
571
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Popover, { onOpenChange: disabled ? void 0 : setOpen, open, children: [
|
|
548
572
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
@@ -1119,19 +1143,6 @@ function TabsContent(_a) {
|
|
|
1119
1143
|
);
|
|
1120
1144
|
}
|
|
1121
1145
|
|
|
1122
|
-
// src/lib/format-date.ts
|
|
1123
|
-
var import_date_fns2 = require("date-fns");
|
|
1124
|
-
function safeParse(iso) {
|
|
1125
|
-
return (0, import_date_fns2.parseISO)(iso);
|
|
1126
|
-
}
|
|
1127
|
-
function formatDateWithWeekday(iso) {
|
|
1128
|
-
try {
|
|
1129
|
-
return (0, import_date_fns2.format)(safeParse(iso), "EEE, dd MMM yyyy");
|
|
1130
|
-
} catch (e) {
|
|
1131
|
-
return iso;
|
|
1132
|
-
}
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
1146
|
// src/components/ui/appointment-availability-settings.tsx
|
|
1136
1147
|
var import_lucide_react6 = require("lucide-react");
|
|
1137
1148
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
@@ -1146,6 +1157,17 @@ var AU_PUBLIC_HOLIDAYS_2026 = [
|
|
|
1146
1157
|
{ date: "2026-12-25", label: "Christmas Day" },
|
|
1147
1158
|
{ date: "2026-12-26", label: "Boxing Day" }
|
|
1148
1159
|
];
|
|
1160
|
+
var TIMEZONE_OPTIONS = [
|
|
1161
|
+
{ value: "Australia/Sydney", label: "Sydney / Melbourne (AEDT)" },
|
|
1162
|
+
{ value: "Australia/Brisbane", label: "Brisbane (AEST, no DST)" },
|
|
1163
|
+
{ value: "Australia/Adelaide", label: "Adelaide (ACDT)" },
|
|
1164
|
+
{ value: "Australia/Perth", label: "Perth (AWST)" },
|
|
1165
|
+
{ value: "Australia/Darwin", label: "Darwin (ACST, no DST)" },
|
|
1166
|
+
{ value: "Australia/Hobart", label: "Hobart (AEDT)" },
|
|
1167
|
+
{ value: "Asia/Ho_Chi_Minh", label: "Ho Chi Minh City (ICT)" },
|
|
1168
|
+
{ value: "Asia/Singapore", label: "Singapore (SGT)" },
|
|
1169
|
+
{ value: "UTC", label: "UTC" }
|
|
1170
|
+
];
|
|
1149
1171
|
var TIME_OPTIONS = (() => {
|
|
1150
1172
|
const opts = [];
|
|
1151
1173
|
for (let h = 6; h <= 21; h++) {
|
|
@@ -1181,6 +1203,19 @@ function TimeSelect({
|
|
|
1181
1203
|
}
|
|
1182
1204
|
);
|
|
1183
1205
|
}
|
|
1206
|
+
function PrefRow({
|
|
1207
|
+
label,
|
|
1208
|
+
description,
|
|
1209
|
+
children
|
|
1210
|
+
}) {
|
|
1211
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex min-h-[68px] items-center justify-between px-6 py-4", children: [
|
|
1212
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
|
|
1213
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "text-sm font-medium", children: label }),
|
|
1214
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "text-xs text-muted-foreground", children: description })
|
|
1215
|
+
] }),
|
|
1216
|
+
children
|
|
1217
|
+
] });
|
|
1218
|
+
}
|
|
1184
1219
|
function AddTimeOffDialog({
|
|
1185
1220
|
open,
|
|
1186
1221
|
onOpenChange,
|
|
@@ -1286,22 +1321,31 @@ function AddTimeOffDialog({
|
|
|
1286
1321
|
}
|
|
1287
1322
|
function AppointmentAvailabilitySettings({
|
|
1288
1323
|
schedule: initialSchedule,
|
|
1324
|
+
prefs: prefsProp,
|
|
1289
1325
|
blockedDates: blockedDatesProp,
|
|
1326
|
+
publicHolidays: publicHolidaysProp,
|
|
1290
1327
|
onSave,
|
|
1291
1328
|
onBlockedDatesChange
|
|
1292
1329
|
}) {
|
|
1293
|
-
|
|
1294
|
-
import_react4.default.useEffect(() => {
|
|
1295
|
-
hasMounted.current = true;
|
|
1296
|
-
}, []);
|
|
1330
|
+
var _a, _b, _c, _d;
|
|
1297
1331
|
const [schedule, setSchedule] = import_react4.default.useState(initialSchedule);
|
|
1298
|
-
const [meetingDuration, setMeetingDuration] = import_react4.default.useState(
|
|
1299
|
-
|
|
1300
|
-
|
|
1332
|
+
const [meetingDuration, setMeetingDuration] = import_react4.default.useState(
|
|
1333
|
+
(_a = prefsProp == null ? void 0 : prefsProp.meetingDuration) != null ? _a : "30"
|
|
1334
|
+
);
|
|
1335
|
+
const [schedulingBuffer, setSchedulingBuffer] = import_react4.default.useState(
|
|
1336
|
+
(_b = prefsProp == null ? void 0 : prefsProp.schedulingBuffer) != null ? _b : "0"
|
|
1337
|
+
);
|
|
1338
|
+
const [maxSlotsPerDay, setMaxSlotsPerDay] = import_react4.default.useState(
|
|
1339
|
+
(_c = prefsProp == null ? void 0 : prefsProp.maxSlotsPerDay) != null ? _c : "8"
|
|
1340
|
+
);
|
|
1341
|
+
const [timezone, setTimezone] = import_react4.default.useState(
|
|
1342
|
+
(_d = prefsProp == null ? void 0 : prefsProp.timezone) != null ? _d : "Australia/Sydney"
|
|
1343
|
+
);
|
|
1301
1344
|
const [timeOffEntries, setTimeOffEntries] = import_react4.default.useState(
|
|
1302
1345
|
() => {
|
|
1303
|
-
const
|
|
1304
|
-
const
|
|
1346
|
+
const holidays = publicHolidaysProp != null ? publicHolidaysProp : AU_PUBLIC_HOLIDAYS_2026;
|
|
1347
|
+
const holidayDates = new Set(holidays.map((h) => h.date));
|
|
1348
|
+
const entries = holidays.map((h) => __spreadProps(__spreadValues({}, h), {
|
|
1305
1349
|
enabled: true,
|
|
1306
1350
|
isHoliday: true
|
|
1307
1351
|
}));
|
|
@@ -1320,19 +1364,23 @@ function AppointmentAvailabilitySettings({
|
|
|
1320
1364
|
);
|
|
1321
1365
|
const [addMoreOpen, setAddMoreOpen] = import_react4.default.useState(false);
|
|
1322
1366
|
const currentPrefs = import_react4.default.useMemo(
|
|
1323
|
-
() => ({ meetingDuration, schedulingBuffer, maxSlotsPerDay }),
|
|
1324
|
-
[meetingDuration, schedulingBuffer, maxSlotsPerDay]
|
|
1367
|
+
() => ({ meetingDuration, schedulingBuffer, maxSlotsPerDay, timezone }),
|
|
1368
|
+
[meetingDuration, schedulingBuffer, maxSlotsPerDay, timezone]
|
|
1325
1369
|
);
|
|
1370
|
+
const saveGuard = import_react4.default.useRef(false);
|
|
1371
|
+
const timeOffGuard = import_react4.default.useRef(false);
|
|
1326
1372
|
import_react4.default.useEffect(() => {
|
|
1327
|
-
if (!
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
if (!hasMounted.current) return;
|
|
1373
|
+
if (!saveGuard.current) {
|
|
1374
|
+
saveGuard.current = true;
|
|
1375
|
+
return;
|
|
1376
|
+
}
|
|
1332
1377
|
onSave == null ? void 0 : onSave(schedule, currentPrefs);
|
|
1333
|
-
}, [
|
|
1378
|
+
}, [schedule, currentPrefs]);
|
|
1334
1379
|
import_react4.default.useEffect(() => {
|
|
1335
|
-
if (!
|
|
1380
|
+
if (!timeOffGuard.current) {
|
|
1381
|
+
timeOffGuard.current = true;
|
|
1382
|
+
return;
|
|
1383
|
+
}
|
|
1336
1384
|
const blocked = timeOffEntries.filter((e) => e.enabled).map(({ date, label, timeStart, timeEnd }) => ({
|
|
1337
1385
|
date,
|
|
1338
1386
|
label,
|
|
@@ -1427,76 +1475,97 @@ function AppointmentAvailabilitySettings({
|
|
|
1427
1475
|
day.day
|
|
1428
1476
|
)) }) }),
|
|
1429
1477
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TabsContent, { value: "booking", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex flex-col divide-y divide-border", children: [
|
|
1430
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1490
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1478
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1479
|
+
PrefRow,
|
|
1480
|
+
{
|
|
1481
|
+
label: "Meeting Duration",
|
|
1482
|
+
description: "Length of each appointment slot",
|
|
1483
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1484
|
+
Select,
|
|
1485
|
+
{
|
|
1486
|
+
value: meetingDuration,
|
|
1487
|
+
onValueChange: (v) => setMeetingDuration(v),
|
|
1488
|
+
children: [
|
|
1489
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectTrigger, { className: "w-40", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectValue, {}) }),
|
|
1490
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SelectContent, { children: [
|
|
1491
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "15", children: "15 minutes" }),
|
|
1492
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "30", children: "30 minutes" }),
|
|
1493
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "45", children: "45 minutes" }),
|
|
1494
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "60", children: "60 minutes" }),
|
|
1495
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "90", children: "90 minutes" })
|
|
1496
|
+
] })
|
|
1497
|
+
]
|
|
1498
|
+
}
|
|
1499
|
+
)
|
|
1500
|
+
}
|
|
1501
|
+
),
|
|
1502
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1503
|
+
PrefRow,
|
|
1504
|
+
{
|
|
1505
|
+
label: "Scheduling Buffer",
|
|
1506
|
+
description: "Gap between consecutive bookings",
|
|
1507
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1508
|
+
Select,
|
|
1509
|
+
{
|
|
1510
|
+
value: schedulingBuffer,
|
|
1511
|
+
onValueChange: (v) => setSchedulingBuffer(v),
|
|
1512
|
+
children: [
|
|
1513
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectTrigger, { className: "w-40", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectValue, {}) }),
|
|
1514
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SelectContent, { children: [
|
|
1515
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "0", children: "No buffer" }),
|
|
1516
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "5", children: "5 minutes" }),
|
|
1517
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "10", children: "10 minutes" }),
|
|
1518
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "15", children: "15 minutes" }),
|
|
1519
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "30", children: "30 minutes" })
|
|
1520
|
+
] })
|
|
1521
|
+
]
|
|
1522
|
+
}
|
|
1523
|
+
)
|
|
1524
|
+
}
|
|
1525
|
+
),
|
|
1526
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1527
|
+
PrefRow,
|
|
1528
|
+
{
|
|
1529
|
+
label: "Daily Slot Limit",
|
|
1530
|
+
description: "Maximum bookings accepted per day",
|
|
1531
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1532
|
+
Select,
|
|
1533
|
+
{
|
|
1534
|
+
value: maxSlotsPerDay,
|
|
1535
|
+
onValueChange: (v) => setMaxSlotsPerDay(v),
|
|
1536
|
+
children: [
|
|
1537
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectTrigger, { className: "w-40", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectValue, {}) }),
|
|
1538
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SelectContent, { children: [
|
|
1539
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "2", children: "2 per day" }),
|
|
1540
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "4", children: "4 per day" }),
|
|
1541
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "6", children: "6 per day" }),
|
|
1542
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "8", children: "8 per day" }),
|
|
1543
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "10", children: "10 per day" }),
|
|
1544
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: "unlimited", children: "Unlimited" })
|
|
1545
|
+
] })
|
|
1546
|
+
]
|
|
1547
|
+
}
|
|
1548
|
+
)
|
|
1549
|
+
}
|
|
1550
|
+
),
|
|
1551
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1552
|
+
PrefRow,
|
|
1553
|
+
{
|
|
1554
|
+
label: "Meeting Timezone",
|
|
1555
|
+
description: "Timezone used for booking display and notifications",
|
|
1556
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1557
|
+
Select,
|
|
1558
|
+
{
|
|
1559
|
+
value: timezone,
|
|
1560
|
+
onValueChange: (v) => setTimezone(v),
|
|
1561
|
+
children: [
|
|
1562
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectTrigger, { className: "w-56", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectValue, {}) }),
|
|
1563
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectContent, { children: TIMEZONE_OPTIONS.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
1564
|
+
]
|
|
1565
|
+
}
|
|
1566
|
+
)
|
|
1567
|
+
}
|
|
1568
|
+
)
|
|
1500
1569
|
] }) }),
|
|
1501
1570
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(TabsContent, { value: "time-off", children: [
|
|
1502
1571
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
@@ -1517,7 +1586,7 @@ function AppointmentAvailabilitySettings({
|
|
|
1517
1586
|
] }),
|
|
1518
1587
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Separator, {}),
|
|
1519
1588
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-col divide-y divide-border", children: timeOffEntries.map((entry) => {
|
|
1520
|
-
var
|
|
1589
|
+
var _a2;
|
|
1521
1590
|
const formattedDate = formatDateWithWeekday(entry.date);
|
|
1522
1591
|
const hasTimeRange = entry.timeStart && entry.timeEnd;
|
|
1523
1592
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
@@ -1542,7 +1611,7 @@ function AppointmentAvailabilitySettings({
|
|
|
1542
1611
|
"cursor-pointer text-sm font-medium",
|
|
1543
1612
|
!entry.enabled && "text-muted-foreground"
|
|
1544
1613
|
),
|
|
1545
|
-
children: (
|
|
1614
|
+
children: (_a2 = entry.label) != null ? _a2 : formattedDate
|
|
1546
1615
|
}
|
|
1547
1616
|
),
|
|
1548
1617
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
|
|
@@ -1586,5 +1655,6 @@ function AppointmentAvailabilitySettings({
|
|
|
1586
1655
|
}
|
|
1587
1656
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1588
1657
|
0 && (module.exports = {
|
|
1589
|
-
AppointmentAvailabilitySettings
|
|
1658
|
+
AppointmentAvailabilitySettings,
|
|
1659
|
+
TIMEZONE_OPTIONS
|
|
1590
1660
|
});
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AppointmentAvailabilitySettings
|
|
3
|
-
|
|
4
|
-
|
|
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-
|
|
15
|
-
import "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
2
|
+
AppointmentAvailabilitySettings,
|
|
3
|
+
TIMEZONE_OPTIONS
|
|
4
|
+
} from "../../chunk-3ERBUVHC.mjs";
|
|
5
|
+
import "../../chunk-OKTJFDPN.mjs";
|
|
6
|
+
import "../../chunk-DGNHGNYH.mjs";
|
|
7
|
+
import "../../chunk-PNSYFE3K.mjs";
|
|
8
|
+
import "../../chunk-WE4YKBDE.mjs";
|
|
9
|
+
import "../../chunk-6HIOM2HL.mjs";
|
|
10
|
+
import "../../chunk-M4VYX2PV.mjs";
|
|
11
|
+
import "../../chunk-P7CEBZM6.mjs";
|
|
12
|
+
import "../../chunk-2GIYVERS.mjs";
|
|
13
|
+
import "../../chunk-ZEDMKQK2.mjs";
|
|
14
|
+
import "../../chunk-LBTHZSBT.mjs";
|
|
15
|
+
import "../../chunk-P2N2PEFY.mjs";
|
|
16
|
+
import "../../chunk-NOOEKOWY.mjs";
|
|
17
|
+
import "../../chunk-R4HCRDU5.mjs";
|
|
17
18
|
import "../../chunk-FEZKMUCF.mjs";
|
|
18
19
|
import "../../chunk-QOJ2DQD6.mjs";
|
|
19
|
-
import "../../chunk-
|
|
20
|
-
import "../../chunk-
|
|
20
|
+
import "../../chunk-AFML43VJ.mjs";
|
|
21
|
+
import "../../chunk-WNQUEZJF.mjs";
|
|
21
22
|
export {
|
|
22
|
-
AppointmentAvailabilitySettings
|
|
23
|
+
AppointmentAvailabilitySettings,
|
|
24
|
+
TIMEZONE_OPTIONS
|
|
23
25
|
};
|