@wealthx/shadcn 1.5.6 → 1.5.8
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 +177 -171
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-XHGISOX5.mjs → chunk-33VT74R4.mjs} +1 -1
- package/dist/{chunk-M4LTX3MH.mjs → chunk-3C4DZTGA.mjs} +1 -1
- package/dist/{chunk-ODO6BUOF.mjs → chunk-3CGM3QXQ.mjs} +3 -5
- package/dist/{chunk-QBPNYXTI.mjs → chunk-3NJPNSJG.mjs} +1 -1
- package/dist/{chunk-6SR4K5T5.mjs → chunk-3S6KVFF5.mjs} +1 -1
- package/dist/{chunk-7KT5HPYM.mjs → chunk-3VZ6CYY2.mjs} +1 -1
- package/dist/chunk-3Z75IKFO.mjs +34 -0
- package/dist/{chunk-DFL5CV75.mjs → chunk-4BHDDLWK.mjs} +2 -2
- package/dist/{chunk-KLJLDNCA.mjs → chunk-4LLTZ45R.mjs} +1 -1
- package/dist/{chunk-RAKBWNQH.mjs → chunk-54MTIKNC.mjs} +27 -66
- package/dist/{chunk-JTG5R5YV.mjs → chunk-54TRNCID.mjs} +287 -61
- package/dist/{chunk-KCKYGQVQ.mjs → chunk-5DAQU3B6.mjs} +1 -1
- package/dist/{chunk-CKPEFZNH.mjs → chunk-5LZZYODG.mjs} +2 -2
- package/dist/{chunk-2A53WPEC.mjs → chunk-5YVJSKFH.mjs} +2 -2
- package/dist/{chunk-JUBUN65Q.mjs → chunk-5YWUGE6F.mjs} +1 -1
- package/dist/chunk-65PZNG4Y.mjs +129 -0
- package/dist/{chunk-K7WSRWOU.mjs → chunk-6LWCFAB4.mjs} +1 -1
- package/dist/{chunk-Q5SGEIJV.mjs → chunk-6MDNL5I2.mjs} +3 -3
- package/dist/{chunk-AUEUTZIC.mjs → chunk-6U4NQGVM.mjs} +3 -3
- package/dist/{chunk-V4CUTCHS.mjs → chunk-77L3UPBW.mjs} +1 -1
- package/dist/{chunk-CW32WTZU.mjs → chunk-7UIL5UN3.mjs} +1 -1
- package/dist/{chunk-2LLFNGJZ.mjs → chunk-AANINK2B.mjs} +3 -3
- package/dist/{chunk-UEREFDAE.mjs → chunk-AZGLSIHF.mjs} +1 -1
- package/dist/{chunk-XN37434W.mjs → chunk-B3CTBLIY.mjs} +2 -2
- package/dist/{chunk-XTWAJWCQ.mjs → chunk-BAONSY54.mjs} +1 -1
- package/dist/{chunk-XIY5DJXI.mjs → chunk-BXL74CM2.mjs} +1 -1
- package/dist/{chunk-OYBIUEGE.mjs → chunk-BZGFW6L7.mjs} +1 -1
- package/dist/chunk-CEEVYRQA.mjs +61 -0
- package/dist/{chunk-BD3DWDT4.mjs → chunk-CEYEK3TI.mjs} +1 -1
- package/dist/{chunk-I3UDLWQ7.mjs → chunk-D3HKFRQO.mjs} +1 -1
- package/dist/{chunk-3AREQTZU.mjs → chunk-DCKT635J.mjs} +1 -1
- package/dist/{chunk-VLELWBEW.mjs → chunk-E2BNCA6L.mjs} +1 -1
- package/dist/{chunk-QRVEI6J3.mjs → chunk-E5EDZQ5J.mjs} +1 -3
- package/dist/{chunk-QHJDGB54.mjs → chunk-EAKRTKHJ.mjs} +2 -2
- package/dist/{chunk-Q35PNFJ7.mjs → chunk-FBNEIYSE.mjs} +1 -1
- package/dist/{chunk-KB7MZMED.mjs → chunk-FGMDBJCF.mjs} +1 -1
- package/dist/{chunk-S4CTM3UE.mjs → chunk-FRCTOAKZ.mjs} +35 -4
- package/dist/{chunk-K7TWMLLW.mjs → chunk-FW4U543X.mjs} +4 -4
- package/dist/{chunk-PGR53HMH.mjs → chunk-G2W754UJ.mjs} +1 -1
- package/dist/{chunk-46Q4335I.mjs → chunk-GS47ZSSA.mjs} +12 -22
- package/dist/{chunk-AHKHVBWR.mjs → chunk-GYWOD2YI.mjs} +1 -1
- package/dist/{chunk-HNDTLT5X.mjs → chunk-H5DTKPJ2.mjs} +1 -1
- package/dist/{chunk-C6SWS7OW.mjs → chunk-HB5BKRMH.mjs} +1 -1
- package/dist/{chunk-WUA546RX.mjs → chunk-IFSQWDRN.mjs} +1 -1
- package/dist/{chunk-KAD26MCC.mjs → chunk-IRZWYTGV.mjs} +1 -1
- package/dist/{chunk-AL6GOL2Y.mjs → chunk-IW33VLL5.mjs} +1 -1
- package/dist/{chunk-A6ER36CW.mjs → chunk-JGBV3XMQ.mjs} +1 -1
- package/dist/{chunk-Y6UM3VTN.mjs → chunk-JUMEIPII.mjs} +1 -1
- package/dist/{chunk-VFH632TB.mjs → chunk-K4WDPVFY.mjs} +3 -3
- package/dist/{chunk-PV3Y7QGK.mjs → chunk-LHWJQNLG.mjs} +3 -3
- package/dist/{chunk-NCUH54IZ.mjs → chunk-LI2CTS5O.mjs} +1 -1
- package/dist/{chunk-F24U4QQQ.mjs → chunk-LPVXO3TD.mjs} +1 -1
- package/dist/{chunk-VJ3GC7W3.mjs → chunk-MNMSHB2J.mjs} +5 -5
- package/dist/{chunk-J5NW5NCT.mjs → chunk-NCMV3LTP.mjs} +1 -1
- package/dist/{chunk-IXR4BQSQ.mjs → chunk-O5CP6VP6.mjs} +3 -3
- package/dist/{chunk-TGVXRD53.mjs → chunk-OZ2R6ERP.mjs} +1 -1
- package/dist/{chunk-D447W45Z.mjs → chunk-PCULNQWA.mjs} +42 -50
- package/dist/{chunk-CDVG7SFT.mjs → chunk-PGJRZHN7.mjs} +1 -1
- package/dist/{chunk-IKDTOCSY.mjs → chunk-RSEVIQEO.mjs} +1 -1
- package/dist/{chunk-GNER6MCO.mjs → chunk-SSUK6C2K.mjs} +1 -1
- package/dist/{chunk-6TX73WG7.mjs → chunk-TCE5L44O.mjs} +3 -2
- package/dist/{chunk-OECGKCVF.mjs → chunk-TLLD5IU6.mjs} +1 -1
- package/dist/{chunk-BFB3UH7V.mjs → chunk-TRM3KIHT.mjs} +2 -2
- package/dist/{chunk-TLYSVRSK.mjs → chunk-TUC2BNUR.mjs} +3 -3
- package/dist/{chunk-HXU5JGLQ.mjs → chunk-UBHBIWIA.mjs} +3 -3
- package/dist/{chunk-TXUBGKB7.mjs → chunk-UJMVXREM.mjs} +2 -2
- package/dist/{chunk-TAX3KL66.mjs → chunk-USOVLDGS.mjs} +1 -1
- package/dist/{chunk-HF4FUBCY.mjs → chunk-UTCW5YUX.mjs} +1 -1
- package/dist/{chunk-OL65UQHQ.mjs → chunk-UYRHYJPX.mjs} +27 -61
- package/dist/{chunk-BDESHD25.mjs → chunk-VLVEZHFE.mjs} +1 -1
- package/dist/{chunk-EUYPMDQG.mjs → chunk-VWZS32ZQ.mjs} +1 -1
- package/dist/{chunk-HROG643K.mjs → chunk-W5QJ57PU.mjs} +1 -1
- package/dist/{chunk-F4O2YPXJ.mjs → chunk-WHIW6KOB.mjs} +1 -1
- package/dist/{chunk-TOIVHWNC.mjs → chunk-WWIWRNBK.mjs} +1 -1
- package/dist/{chunk-2QNOPXMQ.mjs → chunk-XMP24PWA.mjs} +1 -1
- package/dist/{chunk-HO6S3ECM.mjs → chunk-XUCDPAVI.mjs} +2 -2
- package/dist/{chunk-EW72FINW.mjs → chunk-XVZGXPIX.mjs} +1 -1
- package/dist/{chunk-WDTXHLYM.mjs → chunk-XYSRRDBH.mjs} +17 -11
- package/dist/{chunk-QAX6HCUH.mjs → chunk-ZAXZBOWI.mjs} +1 -1
- package/dist/{chunk-E3PQDBYI.mjs → chunk-ZFKAYRFQ.mjs} +1 -1
- package/dist/components/ui/about-you-form.mjs +6 -6
- package/dist/components/ui/add-column-modal.js +56 -227
- package/dist/components/ui/add-column-modal.mjs +4 -5
- package/dist/components/ui/add-lead-modal.mjs +6 -6
- package/dist/components/ui/ai-assistant-drawer.mjs +4 -4
- package/dist/components/ui/ai-builder.mjs +4 -4
- package/dist/components/ui/ai-conversations.js +278 -58
- package/dist/components/ui/ai-conversations.mjs +6 -6
- package/dist/components/ui/alert-dialog.mjs +3 -3
- package/dist/components/ui/appointment-action-dialogs.mjs +7 -7
- package/dist/components/ui/appointment-availability-settings.js +1 -1
- package/dist/components/ui/appointment-availability-settings.mjs +9 -9
- package/dist/components/ui/appointment-book-dialog.js +11 -21
- package/dist/components/ui/appointment-book-dialog.mjs +7 -7
- package/dist/components/ui/appointment-calendar-view.mjs +2 -2
- package/dist/components/ui/appointment-detail-sheet.mjs +9 -9
- package/dist/components/ui/appointment-upcoming-card.mjs +6 -6
- package/dist/components/ui/assets-liabilities-side-card.mjs +3 -3
- package/dist/components/ui/backoffice-alert-history-chart.mjs +3 -3
- package/dist/components/ui/backoffice-alert-matching-chart.mjs +3 -3
- package/dist/components/ui/backoffice-alerts-chart.mjs +3 -3
- package/dist/components/ui/backoffice-connections-chart.mjs +3 -3
- package/dist/components/ui/backoffice-contact-history-chart.mjs +3 -3
- package/dist/components/ui/backoffice-contact-matching-chart.mjs +3 -3
- package/dist/components/ui/backoffice-signup-steps.mjs +9 -9
- package/dist/components/ui/bank-statement-generate-dialog.mjs +9 -9
- package/dist/components/ui/bank-statement-pdf-viewer.mjs +4 -4
- package/dist/components/ui/borrowing-capacity-card.mjs +3 -3
- package/dist/components/ui/borrowing-capacity-line-chart.mjs +3 -3
- package/dist/components/ui/calculator-section.mjs +4 -4
- package/dist/components/ui/calendar.mjs +2 -2
- package/dist/components/ui/cash-balance-line-chart.mjs +3 -3
- package/dist/components/ui/cashflow-bar-chart.mjs +3 -3
- package/dist/components/ui/category-edit-dialog.mjs +4 -4
- package/dist/components/ui/color-picker.mjs +4 -4
- package/dist/components/ui/contact-alert-dialog/index.mjs +5 -5
- package/dist/components/ui/create-contact-modal.mjs +5 -5
- package/dist/components/ui/csv-import-modal.mjs +4 -4
- package/dist/components/ui/dashboard-transactions-table.mjs +5 -5
- package/dist/components/ui/data-table.mjs +6 -6
- package/dist/components/ui/date-picker.mjs +6 -6
- package/dist/components/ui/delete-contact-component.mjs +4 -4
- package/dist/components/ui/dialog.mjs +3 -3
- package/dist/components/ui/document-checklist-template.mjs +4 -4
- package/dist/components/ui/drawer.mjs +3 -3
- package/dist/components/ui/dropdown-menu.mjs +3 -3
- package/dist/components/ui/dynamic-tabs.mjs +3 -3
- package/dist/components/ui/editable-money-item.mjs +4 -4
- package/dist/components/ui/expense-bar-chart.mjs +3 -3
- package/dist/components/ui/expense-work-details.mjs +4 -4
- package/dist/components/ui/file-preview-dialog.mjs +6 -6
- package/dist/components/ui/financial-cards.mjs +2 -2
- package/dist/components/ui/financial-drawers.mjs +4 -4
- package/dist/components/ui/financial-sections.mjs +3 -3
- package/dist/components/ui/frontend-signup-steps.mjs +7 -7
- package/dist/components/ui/income-bar-chart.mjs +3 -3
- package/dist/components/ui/income-work-details.mjs +4 -4
- package/dist/components/ui/integration-card.js +326 -0
- package/dist/components/ui/integration-card.mjs +11 -0
- package/dist/components/ui/kanban-column.js +151 -243
- package/dist/components/ui/kanban-column.mjs +6 -7
- package/dist/components/ui/loan-application-cards.mjs +1 -1
- package/dist/components/ui/money-item-with-color-indicator.mjs +4 -4
- package/dist/components/ui/onboarding-layout.js +65 -4
- package/dist/components/ui/onboarding-layout.mjs +6 -4
- package/dist/components/ui/opportunity-card.js +126 -216
- package/dist/components/ui/opportunity-card.mjs +5 -6
- package/dist/components/ui/opportunity-edit-modals.mjs +9 -9
- package/dist/components/ui/opportunity-summary-tab.mjs +11 -11
- package/dist/components/ui/pagination.mjs +4 -4
- package/dist/components/ui/password-strength-tooltip.mjs +4 -4
- package/dist/components/ui/pipeline-board.js +167 -261
- package/dist/components/ui/pipeline-board.mjs +7 -8
- package/dist/components/ui/pipeline-chart.js +128 -55
- package/dist/components/ui/pipeline-chart.mjs +4 -3
- package/dist/components/ui/pipeline-dialogs.mjs +9 -9
- package/dist/components/ui/popover.mjs +3 -3
- package/dist/components/ui/property-cashflow-doughnut-chart.mjs +3 -3
- package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +3 -3
- package/dist/components/ui/property-mobile-estimate-line-chart.mjs +3 -3
- package/dist/components/ui/property-report-dialog.mjs +4 -4
- package/dist/components/ui/resource-center.mjs +4 -4
- package/dist/components/ui/review-alerts-dialog.mjs +4 -4
- package/dist/components/ui/savings-goal-modal.mjs +7 -7
- package/dist/components/ui/scenario-drawer.mjs +3 -3
- package/dist/components/ui/scenario-item.mjs +4 -4
- package/dist/components/ui/scenario-list.mjs +4 -4
- package/dist/components/ui/select.mjs +3 -3
- package/dist/components/ui/selectable-card.js +163 -0
- package/dist/components/ui/selectable-card.mjs +9 -0
- package/dist/components/ui/share-details-dialog.mjs +4 -4
- package/dist/components/ui/sheet.mjs +3 -3
- package/dist/components/ui/sidebar-nav.mjs +4 -4
- package/dist/components/ui/signup-form-primitives.mjs +6 -6
- package/dist/components/ui/signup-shell.js +3 -2
- package/dist/components/ui/signup-shell.mjs +2 -2
- package/dist/components/ui/stepper.js +3 -2
- package/dist/components/ui/stepper.mjs +1 -1
- package/dist/components/ui/tooltip.mjs +3 -3
- package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +3 -3
- package/dist/components/ui/transactions-income-expense-bar-chart.mjs +3 -3
- package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +3 -3
- package/dist/index.js +2144 -1875
- package/dist/index.mjs +105 -95
- package/dist/lib/colors.js +36 -3
- package/dist/lib/colors.mjs +5 -1
- package/dist/lib/theme-provider.js +60 -13
- package/dist/lib/theme-provider.mjs +2 -2
- package/dist/styles.css +1 -1
- package/package.json +11 -1
- package/src/components/index.tsx +13 -1
- package/src/components/ui/add-column-modal.tsx +9 -58
- package/src/components/ui/ai-conversations.tsx +308 -42
- package/src/components/ui/appointment-availability-settings.tsx +1 -1
- package/src/components/ui/appointment-book-dialog.tsx +25 -48
- package/src/components/ui/integration-card.tsx +88 -0
- package/src/components/ui/kanban-column.tsx +0 -7
- package/src/components/ui/onboarding-layout.tsx +102 -1
- package/src/components/ui/opportunity-card.tsx +5 -53
- package/src/components/ui/pipeline-board.tsx +0 -3
- package/src/components/ui/pipeline-chart.tsx +47 -53
- package/src/components/ui/selectable-card.tsx +37 -0
- package/src/components/ui/stepper.tsx +3 -2
- package/src/lib/colors.ts +73 -5
- package/src/lib/format-date.ts +6 -6
- package/src/lib/theme-provider.tsx +13 -8
- package/src/styles/globals.css +37 -9
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +2 -0
- package/dist/chunk-2P7HP7LR.mjs +0 -68
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Step,
|
|
3
|
+
StepIndicator,
|
|
4
|
+
StepItem,
|
|
5
|
+
StepLabel,
|
|
6
|
+
Stepper
|
|
7
|
+
} from "./chunk-TCE5L44O.mjs";
|
|
8
|
+
import {
|
|
9
|
+
Button
|
|
10
|
+
} from "./chunk-NOOEKOWY.mjs";
|
|
11
|
+
import {
|
|
12
|
+
cn
|
|
13
|
+
} from "./chunk-AFML43VJ.mjs";
|
|
14
|
+
|
|
15
|
+
// src/components/ui/onboarding-layout.tsx
|
|
16
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
|
+
function OnboardingPanelLayout({
|
|
18
|
+
title,
|
|
19
|
+
subtitle,
|
|
20
|
+
steps,
|
|
21
|
+
currentStepIndex,
|
|
22
|
+
canProceed = true,
|
|
23
|
+
onBack,
|
|
24
|
+
onNext,
|
|
25
|
+
onSkip,
|
|
26
|
+
className,
|
|
27
|
+
children
|
|
28
|
+
}) {
|
|
29
|
+
const isFirstStep = currentStepIndex === 0;
|
|
30
|
+
const isLastStep = currentStepIndex === steps.length - 1;
|
|
31
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-screen bg-background font-sans", className), children: [
|
|
32
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-72 shrink-0 flex-col border-r border-border bg-muted/20 p-8", children: [
|
|
33
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 mb-8", children: [
|
|
34
|
+
/* @__PURE__ */ jsx("span", { className: "text-h1", children: title }),
|
|
35
|
+
subtitle && /* @__PURE__ */ jsx("span", { className: "text-body-medium text-muted-foreground", children: subtitle })
|
|
36
|
+
] }),
|
|
37
|
+
steps.length > 1 && /* @__PURE__ */ jsx(
|
|
38
|
+
Stepper,
|
|
39
|
+
{
|
|
40
|
+
activeStep: currentStepIndex,
|
|
41
|
+
orientation: "vertical",
|
|
42
|
+
className: "flex-1",
|
|
43
|
+
children: steps.map((step) => /* @__PURE__ */ jsxs(Step, { className: "flex-1", children: [
|
|
44
|
+
/* @__PURE__ */ jsx(StepIndicator, {}),
|
|
45
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-1 flex-col", children: /* @__PURE__ */ jsx(
|
|
46
|
+
StepLabel,
|
|
47
|
+
{
|
|
48
|
+
description: step.isLocked ? "Upgrade to unlock" : step.description,
|
|
49
|
+
children: step.title
|
|
50
|
+
}
|
|
51
|
+
) })
|
|
52
|
+
] }, step.id))
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
] }),
|
|
56
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [
|
|
57
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto px-10 py-8", children: /* @__PURE__ */ jsx("div", { className: "max-w-2xl", children }) }),
|
|
58
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-t border-border px-10 py-4", children: [
|
|
59
|
+
/* @__PURE__ */ jsx(
|
|
60
|
+
Button,
|
|
61
|
+
{
|
|
62
|
+
variant: "outline-primary",
|
|
63
|
+
size: "sm",
|
|
64
|
+
onClick: onNext,
|
|
65
|
+
disabled: !canProceed,
|
|
66
|
+
children: isLastStep ? "Finish Setup" : "Next"
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
!isFirstStep && /* @__PURE__ */ jsx(Button, { variant: "outline-secondary", size: "sm", onClick: onBack, children: "Back" }),
|
|
70
|
+
onSkip && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onSkip, children: "Skip for now" })
|
|
71
|
+
] })
|
|
72
|
+
] })
|
|
73
|
+
] });
|
|
74
|
+
}
|
|
75
|
+
function OnboardingLayout({
|
|
76
|
+
steps,
|
|
77
|
+
currentStepIndex,
|
|
78
|
+
nextLabel,
|
|
79
|
+
canProceed = true,
|
|
80
|
+
onBack,
|
|
81
|
+
onNext,
|
|
82
|
+
onSkip,
|
|
83
|
+
onUpgrade,
|
|
84
|
+
className,
|
|
85
|
+
children
|
|
86
|
+
}) {
|
|
87
|
+
var _a;
|
|
88
|
+
const isFirstStep = currentStepIndex === 0;
|
|
89
|
+
const isLastStep = currentStepIndex === steps.length - 1;
|
|
90
|
+
const currentStep = steps[currentStepIndex];
|
|
91
|
+
const isLocked = (_a = currentStep == null ? void 0 : currentStep.isLocked) != null ? _a : false;
|
|
92
|
+
const primaryLabel = isLocked ? "Upgrade Plan" : isLastStep ? "Finish Setup" : nextLabel != null ? nextLabel : "Next";
|
|
93
|
+
return /* @__PURE__ */ jsxs(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
className: cn("flex h-full flex-col bg-background font-sans", className),
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ jsx("div", { className: "px-8 pt-5 pb-3", children: /* @__PURE__ */ jsx(Stepper, { activeStep: currentStepIndex, children: steps.map((step) => /* @__PURE__ */ jsx(Step, { children: /* @__PURE__ */ jsx(
|
|
99
|
+
StepItem,
|
|
100
|
+
{
|
|
101
|
+
label: step.title,
|
|
102
|
+
description: step.isLocked ? "Upgrade to unlock" : step.isOptional ? "Optional" : void 0
|
|
103
|
+
}
|
|
104
|
+
) }, step.id)) }) }),
|
|
105
|
+
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto px-8 pt-4 pb-6", children }),
|
|
106
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-t border-border px-8 py-4", children: [
|
|
107
|
+
/* @__PURE__ */ jsx("div", { children: onSkip && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onSkip, children: "Skip for now" }) }),
|
|
108
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
109
|
+
!isFirstStep && /* @__PURE__ */ jsx(Button, { variant: "outline-secondary", size: "sm", onClick: onBack, children: "Back" }),
|
|
110
|
+
/* @__PURE__ */ jsx(
|
|
111
|
+
Button,
|
|
112
|
+
{
|
|
113
|
+
size: "sm",
|
|
114
|
+
onClick: isLocked ? onUpgrade : onNext,
|
|
115
|
+
disabled: !isLocked && !canProceed,
|
|
116
|
+
children: primaryLabel
|
|
117
|
+
}
|
|
118
|
+
)
|
|
119
|
+
] })
|
|
120
|
+
] })
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export {
|
|
127
|
+
OnboardingPanelLayout,
|
|
128
|
+
OnboardingLayout
|
|
129
|
+
};
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
SelectItem,
|
|
20
20
|
SelectTrigger,
|
|
21
21
|
SelectValue
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-USOVLDGS.mjs";
|
|
23
23
|
import {
|
|
24
24
|
Textarea
|
|
25
25
|
} from "./chunk-BS75ICOO.mjs";
|
|
@@ -29,10 +29,10 @@ import {
|
|
|
29
29
|
DialogFooter,
|
|
30
30
|
DialogHeader,
|
|
31
31
|
DialogTitle
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-LI2CTS5O.mjs";
|
|
33
33
|
import {
|
|
34
34
|
DatePicker
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-TRM3KIHT.mjs";
|
|
36
36
|
import {
|
|
37
37
|
Label
|
|
38
38
|
} from "./chunk-P7CEBZM6.mjs";
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
EditIncomeModal,
|
|
7
7
|
EditLoanScenarioModal,
|
|
8
8
|
PROPERTY_ASSET_TYPES
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6MDNL5I2.mjs";
|
|
10
10
|
import {
|
|
11
11
|
AboutCard,
|
|
12
12
|
DebtCard,
|
|
13
13
|
ExpensesCard,
|
|
14
14
|
IncomeCard,
|
|
15
15
|
PropertyCard
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-W5QJ57PU.mjs";
|
|
17
17
|
import {
|
|
18
18
|
FinancialDetailField,
|
|
19
19
|
FinancialLineItem,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
SelectContent,
|
|
30
30
|
SelectItem,
|
|
31
31
|
SelectTrigger
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-USOVLDGS.mjs";
|
|
33
33
|
import {
|
|
34
34
|
Tabs,
|
|
35
35
|
TabsContent,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
DialogFooter,
|
|
16
16
|
DialogHeader,
|
|
17
17
|
DialogTitle
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LI2CTS5O.mjs";
|
|
19
19
|
import {
|
|
20
20
|
AlertDialog,
|
|
21
21
|
AlertDialogAction,
|
|
@@ -25,10 +25,10 @@ import {
|
|
|
25
25
|
AlertDialogFooter,
|
|
26
26
|
AlertDialogHeader,
|
|
27
27
|
AlertDialogTitle
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-CEYEK3TI.mjs";
|
|
29
29
|
import {
|
|
30
30
|
Calendar
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-FBNEIYSE.mjs";
|
|
32
32
|
import {
|
|
33
33
|
Label
|
|
34
34
|
} from "./chunk-P7CEBZM6.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TablePagination
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SSUK6C2K.mjs";
|
|
4
4
|
import {
|
|
5
5
|
Table,
|
|
6
6
|
TableBody,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
DialogFooter,
|
|
22
22
|
DialogHeader,
|
|
23
23
|
DialogTitle
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-LI2CTS5O.mjs";
|
|
25
25
|
import {
|
|
26
26
|
Input
|
|
27
27
|
} from "./chunk-LBTHZSBT.mjs";
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Badge
|
|
3
|
+
} from "./chunk-WL6WVV47.mjs";
|
|
4
|
+
import {
|
|
5
|
+
Button
|
|
6
|
+
} from "./chunk-NOOEKOWY.mjs";
|
|
7
|
+
import {
|
|
8
|
+
cn
|
|
9
|
+
} from "./chunk-AFML43VJ.mjs";
|
|
10
|
+
|
|
11
|
+
// src/components/ui/integration-card.tsx
|
|
12
|
+
import { Check } from "lucide-react";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
function IntegrationCard({
|
|
15
|
+
name,
|
|
16
|
+
description,
|
|
17
|
+
logoSrc,
|
|
18
|
+
logoFallback,
|
|
19
|
+
connected = false,
|
|
20
|
+
onConnect,
|
|
21
|
+
onDisconnect,
|
|
22
|
+
children,
|
|
23
|
+
className
|
|
24
|
+
}) {
|
|
25
|
+
const hasLogo = Boolean(logoSrc || logoFallback);
|
|
26
|
+
return /* @__PURE__ */ jsxs(
|
|
27
|
+
"div",
|
|
28
|
+
{
|
|
29
|
+
className: cn(
|
|
30
|
+
"flex flex-col gap-3 border border-border p-4",
|
|
31
|
+
connected && "bg-muted/20",
|
|
32
|
+
className
|
|
33
|
+
),
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
36
|
+
hasLogo && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center", children: logoSrc ? /* @__PURE__ */ jsx(
|
|
37
|
+
"img",
|
|
38
|
+
{
|
|
39
|
+
src: logoSrc,
|
|
40
|
+
alt: `${name} logo`,
|
|
41
|
+
className: "h-8 w-16 object-contain object-left"
|
|
42
|
+
}
|
|
43
|
+
) : /* @__PURE__ */ jsx("div", { className: "flex h-9 w-9 items-center justify-center", children: logoFallback }) }),
|
|
44
|
+
/* @__PURE__ */ jsx("span", { className: "text-label-medium", children: name }),
|
|
45
|
+
connected && /* @__PURE__ */ jsxs(Badge, { variant: "success", className: "gap-1", children: [
|
|
46
|
+
/* @__PURE__ */ jsx(Check, { className: "h-3 w-3" }),
|
|
47
|
+
"Connected"
|
|
48
|
+
] })
|
|
49
|
+
] }),
|
|
50
|
+
/* @__PURE__ */ jsx("p", { className: "text-body-small text-muted-foreground", children: description }),
|
|
51
|
+
children,
|
|
52
|
+
!connected && onConnect && /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", onClick: onConnect, children: "Connect" }) }),
|
|
53
|
+
connected && onDisconnect && /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", onClick: onDisconnect, children: "Disconnect" }) })
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
IntegrationCard
|
|
61
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KanbanColumn
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3CGM3QXQ.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ToggleGroup,
|
|
6
6
|
ToggleGroupItem
|
|
@@ -98,7 +98,6 @@ function PipelineBoard({
|
|
|
98
98
|
onMoveToNextStage,
|
|
99
99
|
onViewDetails,
|
|
100
100
|
onChangePriority,
|
|
101
|
-
onLaunchAssistant,
|
|
102
101
|
onPutOnHold,
|
|
103
102
|
onDeleteOpportunity,
|
|
104
103
|
submittingOpportunityId,
|
|
@@ -147,7 +146,6 @@ function PipelineBoard({
|
|
|
147
146
|
onSendLoanApplication: col.onSendLoanApplication,
|
|
148
147
|
onViewDetails,
|
|
149
148
|
onChangePriority,
|
|
150
|
-
onLaunchAssistant,
|
|
151
149
|
onPutOnHold,
|
|
152
150
|
onDeleteOpportunity,
|
|
153
151
|
submittingOpportunityId
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
TooltipContent,
|
|
4
4
|
TooltipProvider,
|
|
5
5
|
TooltipTrigger
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3S6KVFF5.mjs";
|
|
7
7
|
import {
|
|
8
8
|
Input
|
|
9
9
|
} from "./chunk-LBTHZSBT.mjs";
|
|
10
10
|
import {
|
|
11
11
|
colorMixSwatch
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FRCTOAKZ.mjs";
|
|
13
13
|
import {
|
|
14
14
|
cn
|
|
15
15
|
} from "./chunk-AFML43VJ.mjs";
|
|
@@ -33,7 +33,7 @@ function colorMixSwatch(color, fillOpacity = 0.15) {
|
|
|
33
33
|
const percent = Math.round(fillOpacity * 100);
|
|
34
34
|
return `color-mix(in srgb, ${color} ${percent}%, transparent)`;
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function hexToOklchComponents(hex) {
|
|
37
37
|
const [r, g, b] = hexToRgb(hex);
|
|
38
38
|
const rl = linearizeSrgb(r);
|
|
39
39
|
const gl = linearizeSrgb(g);
|
|
@@ -48,9 +48,38 @@ function hexToOklch(hex) {
|
|
|
48
48
|
const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;
|
|
49
49
|
const bv = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;
|
|
50
50
|
const C = Math.sqrt(a * a + bv * bv);
|
|
51
|
-
const
|
|
51
|
+
const H = (Math.atan2(bv, a) * 180 / Math.PI + 360) % 360;
|
|
52
|
+
return { L, C, H };
|
|
53
|
+
}
|
|
54
|
+
function hexToOklch(hex) {
|
|
55
|
+
const { L, C, H } = hexToOklchComponents(hex);
|
|
52
56
|
if (C < 1e-3) return `oklch(${L.toFixed(3)} 0 0)`;
|
|
53
|
-
return `oklch(${L.toFixed(3)} ${C.toFixed(3)} ${
|
|
57
|
+
return `oklch(${L.toFixed(3)} ${C.toFixed(3)} ${H.toFixed(1)})`;
|
|
58
|
+
}
|
|
59
|
+
var SHADE_LIGHTNESS = [
|
|
60
|
+
[50, 0.971],
|
|
61
|
+
[100, 0.944],
|
|
62
|
+
[200, 0.887],
|
|
63
|
+
[300, 0.808],
|
|
64
|
+
[400, 0.72],
|
|
65
|
+
[500, 0.646],
|
|
66
|
+
[600, 0.57],
|
|
67
|
+
[700, 0.48],
|
|
68
|
+
[800, 0.39],
|
|
69
|
+
[900, 0.31],
|
|
70
|
+
[950, 0.24]
|
|
71
|
+
];
|
|
72
|
+
function generatePrimaryShades(hex) {
|
|
73
|
+
const { L: baseL, C: baseC, H } = hexToOklchComponents(hex);
|
|
74
|
+
return Object.fromEntries(
|
|
75
|
+
SHADE_LIGHTNESS.map(([shade, targetL]) => {
|
|
76
|
+
const distance = Math.abs(targetL - baseL);
|
|
77
|
+
const chromaScale = Math.max(0.1, 1 - distance * 1.5);
|
|
78
|
+
const C = +(baseC * chromaScale).toFixed(3);
|
|
79
|
+
const value = C < 1e-3 ? `oklch(${targetL.toFixed(3)} 0 0)` : `oklch(${targetL.toFixed(3)} ${C} ${H.toFixed(1)})`;
|
|
80
|
+
return [`--primary-${shade}`, value];
|
|
81
|
+
})
|
|
82
|
+
);
|
|
54
83
|
}
|
|
55
84
|
|
|
56
85
|
export {
|
|
@@ -58,5 +87,7 @@ export {
|
|
|
58
87
|
getLuminance,
|
|
59
88
|
getContrastText,
|
|
60
89
|
colorMixSwatch,
|
|
61
|
-
|
|
90
|
+
hexToOklchComponents,
|
|
91
|
+
hexToOklch,
|
|
92
|
+
generatePrimaryShades
|
|
62
93
|
};
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
PasswordField,
|
|
4
4
|
SectionHeading,
|
|
5
5
|
StaffRowItem
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UJMVXREM.mjs";
|
|
7
7
|
import {
|
|
8
8
|
ColorPicker
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IW33VLL5.mjs";
|
|
10
10
|
import {
|
|
11
11
|
UploadCard
|
|
12
12
|
} from "./chunk-I4KVSZCH.mjs";
|
|
@@ -24,13 +24,13 @@ import {
|
|
|
24
24
|
SelectItem,
|
|
25
25
|
SelectTrigger,
|
|
26
26
|
SelectValue
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-USOVLDGS.mjs";
|
|
28
28
|
import {
|
|
29
29
|
Tooltip,
|
|
30
30
|
TooltipContent,
|
|
31
31
|
TooltipProvider,
|
|
32
32
|
TooltipTrigger
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-3S6KVFF5.mjs";
|
|
34
34
|
import {
|
|
35
35
|
Separator
|
|
36
36
|
} from "./chunk-2GIYVERS.mjs";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
SelectItem,
|
|
16
16
|
SelectTrigger,
|
|
17
17
|
SelectValue
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-USOVLDGS.mjs";
|
|
19
19
|
import {
|
|
20
20
|
Separator
|
|
21
21
|
} from "./chunk-2GIYVERS.mjs";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
DialogFooter,
|
|
31
31
|
DialogHeader,
|
|
32
32
|
DialogTitle
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-LI2CTS5O.mjs";
|
|
34
34
|
import {
|
|
35
35
|
Avatar,
|
|
36
36
|
AvatarFallback
|
|
@@ -40,10 +40,10 @@ import {
|
|
|
40
40
|
} from "./chunk-WL6WVV47.mjs";
|
|
41
41
|
import {
|
|
42
42
|
Calendar
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-FBNEIYSE.mjs";
|
|
44
44
|
import {
|
|
45
45
|
formatDateLong
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-LHWJQNLG.mjs";
|
|
47
47
|
import {
|
|
48
48
|
Label
|
|
49
49
|
} from "./chunk-P7CEBZM6.mjs";
|
|
@@ -127,13 +127,9 @@ var FORMAT_OPTIONS = [
|
|
|
127
127
|
icon: /* @__PURE__ */ jsx(MapPin, { className: "h-4 w-4" })
|
|
128
128
|
}
|
|
129
129
|
];
|
|
130
|
-
var FORMAT_CALL = FORMAT_OPTIONS[0];
|
|
131
|
-
var FORMAT_OFFLINE = FORMAT_OPTIONS[3];
|
|
132
|
-
var ONLINE_MEETING_ICON = /* @__PURE__ */ jsx(Video, { className: "h-4 w-4" });
|
|
133
130
|
function MeetingFormatSection({
|
|
134
131
|
format,
|
|
135
132
|
onFormatChange,
|
|
136
|
-
options = FORMAT_OPTIONS,
|
|
137
133
|
offlineLocation,
|
|
138
134
|
onOfflineLocationChange,
|
|
139
135
|
customAddress,
|
|
@@ -143,7 +139,7 @@ function MeetingFormatSection({
|
|
|
143
139
|
isClientMode
|
|
144
140
|
}) {
|
|
145
141
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
146
|
-
/* @__PURE__ */ jsx("div", { className: "flex gap-2", children:
|
|
142
|
+
/* @__PURE__ */ jsx("div", { className: "flex gap-2", children: FORMAT_OPTIONS.map((opt) => /* @__PURE__ */ jsxs(
|
|
147
143
|
Toggle,
|
|
148
144
|
{
|
|
149
145
|
variant: "outline",
|
|
@@ -275,15 +271,6 @@ function AppointmentBookDialog({
|
|
|
275
271
|
var _a, _b, _c;
|
|
276
272
|
const isClientMode = clients.length === 0;
|
|
277
273
|
const showGuestForm = isClientMode && !((guestInfo == null ? void 0 : guestInfo.name) && (guestInfo == null ? void 0 : guestInfo.email));
|
|
278
|
-
const visibleFormatOptions = isClientMode && defaultMeetingFormat ? [
|
|
279
|
-
FORMAT_CALL,
|
|
280
|
-
{
|
|
281
|
-
value: defaultMeetingFormat,
|
|
282
|
-
label: "Online Meeting",
|
|
283
|
-
icon: ONLINE_MEETING_ICON
|
|
284
|
-
},
|
|
285
|
-
FORMAT_OFFLINE
|
|
286
|
-
] : FORMAT_OPTIONS;
|
|
287
274
|
const disabledDayOfWeek = React.useMemo(
|
|
288
275
|
() => schedule == null ? void 0 : schedule.filter((d) => !d.enabled).map((d) => DAY_MAP[d.day]).filter((n) => n !== void 0),
|
|
289
276
|
[schedule]
|
|
@@ -347,7 +334,7 @@ function AppointmentBookDialog({
|
|
|
347
334
|
}
|
|
348
335
|
onOpenChange(next);
|
|
349
336
|
};
|
|
350
|
-
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsx(DialogContent, { size: "2xl", children: submittedBooking ? /* @__PURE__ */ jsx(
|
|
337
|
+
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsx(DialogContent, { size: "2xl", align: "top", children: submittedBooking ? /* @__PURE__ */ jsx(
|
|
351
338
|
BookingConfirmationScreen,
|
|
352
339
|
{
|
|
353
340
|
booking: submittedBooking,
|
|
@@ -432,14 +419,13 @@ function AppointmentBookDialog({
|
|
|
432
419
|
)
|
|
433
420
|
] })
|
|
434
421
|
] }),
|
|
435
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
422
|
+
!(isClientMode && defaultMeetingFormat) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
436
423
|
/* @__PURE__ */ jsx(Label, { children: "Meeting format" }),
|
|
437
424
|
/* @__PURE__ */ jsx(
|
|
438
425
|
MeetingFormatSection,
|
|
439
426
|
{
|
|
440
427
|
format: meetingFormat,
|
|
441
428
|
onFormatChange: setMeetingFormat,
|
|
442
|
-
options: visibleFormatOptions,
|
|
443
429
|
offlineLocation,
|
|
444
430
|
onOfflineLocationChange: setOfflineLocation,
|
|
445
431
|
customAddress,
|
|
@@ -505,7 +491,11 @@ function AppointmentBookDialog({
|
|
|
505
491
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
506
492
|
/* @__PURE__ */ jsx(Label, { children: "Time slot" }),
|
|
507
493
|
date ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
508
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children:
|
|
494
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: date.toLocaleDateString("en-AU", {
|
|
495
|
+
weekday: "long",
|
|
496
|
+
day: "numeric",
|
|
497
|
+
month: "long"
|
|
498
|
+
}) }),
|
|
509
499
|
/* @__PURE__ */ jsx(
|
|
510
500
|
AppointmentSlotSection,
|
|
511
501
|
{
|