@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.
Files changed (212) hide show
  1. package/.turbo/turbo-build.log +177 -171
  2. package/CHANGELOG.md +12 -0
  3. package/dist/{chunk-XHGISOX5.mjs → chunk-33VT74R4.mjs} +1 -1
  4. package/dist/{chunk-M4LTX3MH.mjs → chunk-3C4DZTGA.mjs} +1 -1
  5. package/dist/{chunk-ODO6BUOF.mjs → chunk-3CGM3QXQ.mjs} +3 -5
  6. package/dist/{chunk-QBPNYXTI.mjs → chunk-3NJPNSJG.mjs} +1 -1
  7. package/dist/{chunk-6SR4K5T5.mjs → chunk-3S6KVFF5.mjs} +1 -1
  8. package/dist/{chunk-7KT5HPYM.mjs → chunk-3VZ6CYY2.mjs} +1 -1
  9. package/dist/chunk-3Z75IKFO.mjs +34 -0
  10. package/dist/{chunk-DFL5CV75.mjs → chunk-4BHDDLWK.mjs} +2 -2
  11. package/dist/{chunk-KLJLDNCA.mjs → chunk-4LLTZ45R.mjs} +1 -1
  12. package/dist/{chunk-RAKBWNQH.mjs → chunk-54MTIKNC.mjs} +27 -66
  13. package/dist/{chunk-JTG5R5YV.mjs → chunk-54TRNCID.mjs} +287 -61
  14. package/dist/{chunk-KCKYGQVQ.mjs → chunk-5DAQU3B6.mjs} +1 -1
  15. package/dist/{chunk-CKPEFZNH.mjs → chunk-5LZZYODG.mjs} +2 -2
  16. package/dist/{chunk-2A53WPEC.mjs → chunk-5YVJSKFH.mjs} +2 -2
  17. package/dist/{chunk-JUBUN65Q.mjs → chunk-5YWUGE6F.mjs} +1 -1
  18. package/dist/chunk-65PZNG4Y.mjs +129 -0
  19. package/dist/{chunk-K7WSRWOU.mjs → chunk-6LWCFAB4.mjs} +1 -1
  20. package/dist/{chunk-Q5SGEIJV.mjs → chunk-6MDNL5I2.mjs} +3 -3
  21. package/dist/{chunk-AUEUTZIC.mjs → chunk-6U4NQGVM.mjs} +3 -3
  22. package/dist/{chunk-V4CUTCHS.mjs → chunk-77L3UPBW.mjs} +1 -1
  23. package/dist/{chunk-CW32WTZU.mjs → chunk-7UIL5UN3.mjs} +1 -1
  24. package/dist/{chunk-2LLFNGJZ.mjs → chunk-AANINK2B.mjs} +3 -3
  25. package/dist/{chunk-UEREFDAE.mjs → chunk-AZGLSIHF.mjs} +1 -1
  26. package/dist/{chunk-XN37434W.mjs → chunk-B3CTBLIY.mjs} +2 -2
  27. package/dist/{chunk-XTWAJWCQ.mjs → chunk-BAONSY54.mjs} +1 -1
  28. package/dist/{chunk-XIY5DJXI.mjs → chunk-BXL74CM2.mjs} +1 -1
  29. package/dist/{chunk-OYBIUEGE.mjs → chunk-BZGFW6L7.mjs} +1 -1
  30. package/dist/chunk-CEEVYRQA.mjs +61 -0
  31. package/dist/{chunk-BD3DWDT4.mjs → chunk-CEYEK3TI.mjs} +1 -1
  32. package/dist/{chunk-I3UDLWQ7.mjs → chunk-D3HKFRQO.mjs} +1 -1
  33. package/dist/{chunk-3AREQTZU.mjs → chunk-DCKT635J.mjs} +1 -1
  34. package/dist/{chunk-VLELWBEW.mjs → chunk-E2BNCA6L.mjs} +1 -1
  35. package/dist/{chunk-QRVEI6J3.mjs → chunk-E5EDZQ5J.mjs} +1 -3
  36. package/dist/{chunk-QHJDGB54.mjs → chunk-EAKRTKHJ.mjs} +2 -2
  37. package/dist/{chunk-Q35PNFJ7.mjs → chunk-FBNEIYSE.mjs} +1 -1
  38. package/dist/{chunk-KB7MZMED.mjs → chunk-FGMDBJCF.mjs} +1 -1
  39. package/dist/{chunk-S4CTM3UE.mjs → chunk-FRCTOAKZ.mjs} +35 -4
  40. package/dist/{chunk-K7TWMLLW.mjs → chunk-FW4U543X.mjs} +4 -4
  41. package/dist/{chunk-PGR53HMH.mjs → chunk-G2W754UJ.mjs} +1 -1
  42. package/dist/{chunk-46Q4335I.mjs → chunk-GS47ZSSA.mjs} +12 -22
  43. package/dist/{chunk-AHKHVBWR.mjs → chunk-GYWOD2YI.mjs} +1 -1
  44. package/dist/{chunk-HNDTLT5X.mjs → chunk-H5DTKPJ2.mjs} +1 -1
  45. package/dist/{chunk-C6SWS7OW.mjs → chunk-HB5BKRMH.mjs} +1 -1
  46. package/dist/{chunk-WUA546RX.mjs → chunk-IFSQWDRN.mjs} +1 -1
  47. package/dist/{chunk-KAD26MCC.mjs → chunk-IRZWYTGV.mjs} +1 -1
  48. package/dist/{chunk-AL6GOL2Y.mjs → chunk-IW33VLL5.mjs} +1 -1
  49. package/dist/{chunk-A6ER36CW.mjs → chunk-JGBV3XMQ.mjs} +1 -1
  50. package/dist/{chunk-Y6UM3VTN.mjs → chunk-JUMEIPII.mjs} +1 -1
  51. package/dist/{chunk-VFH632TB.mjs → chunk-K4WDPVFY.mjs} +3 -3
  52. package/dist/{chunk-PV3Y7QGK.mjs → chunk-LHWJQNLG.mjs} +3 -3
  53. package/dist/{chunk-NCUH54IZ.mjs → chunk-LI2CTS5O.mjs} +1 -1
  54. package/dist/{chunk-F24U4QQQ.mjs → chunk-LPVXO3TD.mjs} +1 -1
  55. package/dist/{chunk-VJ3GC7W3.mjs → chunk-MNMSHB2J.mjs} +5 -5
  56. package/dist/{chunk-J5NW5NCT.mjs → chunk-NCMV3LTP.mjs} +1 -1
  57. package/dist/{chunk-IXR4BQSQ.mjs → chunk-O5CP6VP6.mjs} +3 -3
  58. package/dist/{chunk-TGVXRD53.mjs → chunk-OZ2R6ERP.mjs} +1 -1
  59. package/dist/{chunk-D447W45Z.mjs → chunk-PCULNQWA.mjs} +42 -50
  60. package/dist/{chunk-CDVG7SFT.mjs → chunk-PGJRZHN7.mjs} +1 -1
  61. package/dist/{chunk-IKDTOCSY.mjs → chunk-RSEVIQEO.mjs} +1 -1
  62. package/dist/{chunk-GNER6MCO.mjs → chunk-SSUK6C2K.mjs} +1 -1
  63. package/dist/{chunk-6TX73WG7.mjs → chunk-TCE5L44O.mjs} +3 -2
  64. package/dist/{chunk-OECGKCVF.mjs → chunk-TLLD5IU6.mjs} +1 -1
  65. package/dist/{chunk-BFB3UH7V.mjs → chunk-TRM3KIHT.mjs} +2 -2
  66. package/dist/{chunk-TLYSVRSK.mjs → chunk-TUC2BNUR.mjs} +3 -3
  67. package/dist/{chunk-HXU5JGLQ.mjs → chunk-UBHBIWIA.mjs} +3 -3
  68. package/dist/{chunk-TXUBGKB7.mjs → chunk-UJMVXREM.mjs} +2 -2
  69. package/dist/{chunk-TAX3KL66.mjs → chunk-USOVLDGS.mjs} +1 -1
  70. package/dist/{chunk-HF4FUBCY.mjs → chunk-UTCW5YUX.mjs} +1 -1
  71. package/dist/{chunk-OL65UQHQ.mjs → chunk-UYRHYJPX.mjs} +27 -61
  72. package/dist/{chunk-BDESHD25.mjs → chunk-VLVEZHFE.mjs} +1 -1
  73. package/dist/{chunk-EUYPMDQG.mjs → chunk-VWZS32ZQ.mjs} +1 -1
  74. package/dist/{chunk-HROG643K.mjs → chunk-W5QJ57PU.mjs} +1 -1
  75. package/dist/{chunk-F4O2YPXJ.mjs → chunk-WHIW6KOB.mjs} +1 -1
  76. package/dist/{chunk-TOIVHWNC.mjs → chunk-WWIWRNBK.mjs} +1 -1
  77. package/dist/{chunk-2QNOPXMQ.mjs → chunk-XMP24PWA.mjs} +1 -1
  78. package/dist/{chunk-HO6S3ECM.mjs → chunk-XUCDPAVI.mjs} +2 -2
  79. package/dist/{chunk-EW72FINW.mjs → chunk-XVZGXPIX.mjs} +1 -1
  80. package/dist/{chunk-WDTXHLYM.mjs → chunk-XYSRRDBH.mjs} +17 -11
  81. package/dist/{chunk-QAX6HCUH.mjs → chunk-ZAXZBOWI.mjs} +1 -1
  82. package/dist/{chunk-E3PQDBYI.mjs → chunk-ZFKAYRFQ.mjs} +1 -1
  83. package/dist/components/ui/about-you-form.mjs +6 -6
  84. package/dist/components/ui/add-column-modal.js +56 -227
  85. package/dist/components/ui/add-column-modal.mjs +4 -5
  86. package/dist/components/ui/add-lead-modal.mjs +6 -6
  87. package/dist/components/ui/ai-assistant-drawer.mjs +4 -4
  88. package/dist/components/ui/ai-builder.mjs +4 -4
  89. package/dist/components/ui/ai-conversations.js +278 -58
  90. package/dist/components/ui/ai-conversations.mjs +6 -6
  91. package/dist/components/ui/alert-dialog.mjs +3 -3
  92. package/dist/components/ui/appointment-action-dialogs.mjs +7 -7
  93. package/dist/components/ui/appointment-availability-settings.js +1 -1
  94. package/dist/components/ui/appointment-availability-settings.mjs +9 -9
  95. package/dist/components/ui/appointment-book-dialog.js +11 -21
  96. package/dist/components/ui/appointment-book-dialog.mjs +7 -7
  97. package/dist/components/ui/appointment-calendar-view.mjs +2 -2
  98. package/dist/components/ui/appointment-detail-sheet.mjs +9 -9
  99. package/dist/components/ui/appointment-upcoming-card.mjs +6 -6
  100. package/dist/components/ui/assets-liabilities-side-card.mjs +3 -3
  101. package/dist/components/ui/backoffice-alert-history-chart.mjs +3 -3
  102. package/dist/components/ui/backoffice-alert-matching-chart.mjs +3 -3
  103. package/dist/components/ui/backoffice-alerts-chart.mjs +3 -3
  104. package/dist/components/ui/backoffice-connections-chart.mjs +3 -3
  105. package/dist/components/ui/backoffice-contact-history-chart.mjs +3 -3
  106. package/dist/components/ui/backoffice-contact-matching-chart.mjs +3 -3
  107. package/dist/components/ui/backoffice-signup-steps.mjs +9 -9
  108. package/dist/components/ui/bank-statement-generate-dialog.mjs +9 -9
  109. package/dist/components/ui/bank-statement-pdf-viewer.mjs +4 -4
  110. package/dist/components/ui/borrowing-capacity-card.mjs +3 -3
  111. package/dist/components/ui/borrowing-capacity-line-chart.mjs +3 -3
  112. package/dist/components/ui/calculator-section.mjs +4 -4
  113. package/dist/components/ui/calendar.mjs +2 -2
  114. package/dist/components/ui/cash-balance-line-chart.mjs +3 -3
  115. package/dist/components/ui/cashflow-bar-chart.mjs +3 -3
  116. package/dist/components/ui/category-edit-dialog.mjs +4 -4
  117. package/dist/components/ui/color-picker.mjs +4 -4
  118. package/dist/components/ui/contact-alert-dialog/index.mjs +5 -5
  119. package/dist/components/ui/create-contact-modal.mjs +5 -5
  120. package/dist/components/ui/csv-import-modal.mjs +4 -4
  121. package/dist/components/ui/dashboard-transactions-table.mjs +5 -5
  122. package/dist/components/ui/data-table.mjs +6 -6
  123. package/dist/components/ui/date-picker.mjs +6 -6
  124. package/dist/components/ui/delete-contact-component.mjs +4 -4
  125. package/dist/components/ui/dialog.mjs +3 -3
  126. package/dist/components/ui/document-checklist-template.mjs +4 -4
  127. package/dist/components/ui/drawer.mjs +3 -3
  128. package/dist/components/ui/dropdown-menu.mjs +3 -3
  129. package/dist/components/ui/dynamic-tabs.mjs +3 -3
  130. package/dist/components/ui/editable-money-item.mjs +4 -4
  131. package/dist/components/ui/expense-bar-chart.mjs +3 -3
  132. package/dist/components/ui/expense-work-details.mjs +4 -4
  133. package/dist/components/ui/file-preview-dialog.mjs +6 -6
  134. package/dist/components/ui/financial-cards.mjs +2 -2
  135. package/dist/components/ui/financial-drawers.mjs +4 -4
  136. package/dist/components/ui/financial-sections.mjs +3 -3
  137. package/dist/components/ui/frontend-signup-steps.mjs +7 -7
  138. package/dist/components/ui/income-bar-chart.mjs +3 -3
  139. package/dist/components/ui/income-work-details.mjs +4 -4
  140. package/dist/components/ui/integration-card.js +326 -0
  141. package/dist/components/ui/integration-card.mjs +11 -0
  142. package/dist/components/ui/kanban-column.js +151 -243
  143. package/dist/components/ui/kanban-column.mjs +6 -7
  144. package/dist/components/ui/loan-application-cards.mjs +1 -1
  145. package/dist/components/ui/money-item-with-color-indicator.mjs +4 -4
  146. package/dist/components/ui/onboarding-layout.js +65 -4
  147. package/dist/components/ui/onboarding-layout.mjs +6 -4
  148. package/dist/components/ui/opportunity-card.js +126 -216
  149. package/dist/components/ui/opportunity-card.mjs +5 -6
  150. package/dist/components/ui/opportunity-edit-modals.mjs +9 -9
  151. package/dist/components/ui/opportunity-summary-tab.mjs +11 -11
  152. package/dist/components/ui/pagination.mjs +4 -4
  153. package/dist/components/ui/password-strength-tooltip.mjs +4 -4
  154. package/dist/components/ui/pipeline-board.js +167 -261
  155. package/dist/components/ui/pipeline-board.mjs +7 -8
  156. package/dist/components/ui/pipeline-chart.js +128 -55
  157. package/dist/components/ui/pipeline-chart.mjs +4 -3
  158. package/dist/components/ui/pipeline-dialogs.mjs +9 -9
  159. package/dist/components/ui/popover.mjs +3 -3
  160. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +3 -3
  161. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +3 -3
  162. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +3 -3
  163. package/dist/components/ui/property-report-dialog.mjs +4 -4
  164. package/dist/components/ui/resource-center.mjs +4 -4
  165. package/dist/components/ui/review-alerts-dialog.mjs +4 -4
  166. package/dist/components/ui/savings-goal-modal.mjs +7 -7
  167. package/dist/components/ui/scenario-drawer.mjs +3 -3
  168. package/dist/components/ui/scenario-item.mjs +4 -4
  169. package/dist/components/ui/scenario-list.mjs +4 -4
  170. package/dist/components/ui/select.mjs +3 -3
  171. package/dist/components/ui/selectable-card.js +163 -0
  172. package/dist/components/ui/selectable-card.mjs +9 -0
  173. package/dist/components/ui/share-details-dialog.mjs +4 -4
  174. package/dist/components/ui/sheet.mjs +3 -3
  175. package/dist/components/ui/sidebar-nav.mjs +4 -4
  176. package/dist/components/ui/signup-form-primitives.mjs +6 -6
  177. package/dist/components/ui/signup-shell.js +3 -2
  178. package/dist/components/ui/signup-shell.mjs +2 -2
  179. package/dist/components/ui/stepper.js +3 -2
  180. package/dist/components/ui/stepper.mjs +1 -1
  181. package/dist/components/ui/tooltip.mjs +3 -3
  182. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +3 -3
  183. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +3 -3
  184. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +3 -3
  185. package/dist/index.js +2144 -1875
  186. package/dist/index.mjs +105 -95
  187. package/dist/lib/colors.js +36 -3
  188. package/dist/lib/colors.mjs +5 -1
  189. package/dist/lib/theme-provider.js +60 -13
  190. package/dist/lib/theme-provider.mjs +2 -2
  191. package/dist/styles.css +1 -1
  192. package/package.json +11 -1
  193. package/src/components/index.tsx +13 -1
  194. package/src/components/ui/add-column-modal.tsx +9 -58
  195. package/src/components/ui/ai-conversations.tsx +308 -42
  196. package/src/components/ui/appointment-availability-settings.tsx +1 -1
  197. package/src/components/ui/appointment-book-dialog.tsx +25 -48
  198. package/src/components/ui/integration-card.tsx +88 -0
  199. package/src/components/ui/kanban-column.tsx +0 -7
  200. package/src/components/ui/onboarding-layout.tsx +102 -1
  201. package/src/components/ui/opportunity-card.tsx +5 -53
  202. package/src/components/ui/pipeline-board.tsx +0 -3
  203. package/src/components/ui/pipeline-chart.tsx +47 -53
  204. package/src/components/ui/selectable-card.tsx +37 -0
  205. package/src/components/ui/stepper.tsx +3 -2
  206. package/src/lib/colors.ts +73 -5
  207. package/src/lib/format-date.ts +6 -6
  208. package/src/lib/theme-provider.tsx +13 -8
  209. package/src/styles/globals.css +37 -9
  210. package/src/styles/styles-css.ts +1 -1
  211. package/tsup.config.ts +2 -0
  212. 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
+ };
@@ -4,7 +4,7 @@ import {
4
4
  SelectItem,
5
5
  SelectTrigger,
6
6
  SelectValue
7
- } from "./chunk-TAX3KL66.mjs";
7
+ } from "./chunk-USOVLDGS.mjs";
8
8
  import {
9
9
  Switch
10
10
  } from "./chunk-PNSYFE3K.mjs";
@@ -19,7 +19,7 @@ import {
19
19
  SelectItem,
20
20
  SelectTrigger,
21
21
  SelectValue
22
- } from "./chunk-TAX3KL66.mjs";
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-NCUH54IZ.mjs";
32
+ } from "./chunk-LI2CTS5O.mjs";
33
33
  import {
34
34
  DatePicker
35
- } from "./chunk-BFB3UH7V.mjs";
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-Q5SGEIJV.mjs";
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-HROG643K.mjs";
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-TAX3KL66.mjs";
32
+ } from "./chunk-USOVLDGS.mjs";
33
33
  import {
34
34
  Tabs,
35
35
  TabsContent,
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-3VDET466.mjs";
20
20
  import {
21
21
  useThemeVars
22
- } from "./chunk-WDTXHLYM.mjs";
22
+ } from "./chunk-XYSRRDBH.mjs";
23
23
  import {
24
24
  formatCurrencyAbbrev
25
25
  } from "./chunk-MN5NYQCL.mjs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Sheet,
3
3
  SheetContent
4
- } from "./chunk-J5NW5NCT.mjs";
4
+ } from "./chunk-NCMV3LTP.mjs";
5
5
  import {
6
6
  Spinner
7
7
  } from "./chunk-JVMXMFBB.mjs";
@@ -15,7 +15,7 @@ import {
15
15
  DialogFooter,
16
16
  DialogHeader,
17
17
  DialogTitle
18
- } from "./chunk-NCUH54IZ.mjs";
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-BD3DWDT4.mjs";
28
+ } from "./chunk-CEYEK3TI.mjs";
29
29
  import {
30
30
  Calendar
31
- } from "./chunk-Q35PNFJ7.mjs";
31
+ } from "./chunk-FBNEIYSE.mjs";
32
32
  import {
33
33
  Label
34
34
  } from "./chunk-P7CEBZM6.mjs";
@@ -2,7 +2,7 @@ import {
2
2
  Step,
3
3
  StepItem,
4
4
  Stepper
5
- } from "./chunk-6TX73WG7.mjs";
5
+ } from "./chunk-TCE5L44O.mjs";
6
6
 
7
7
  // src/components/ui/signup-shell.tsx
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TablePagination
3
- } from "./chunk-GNER6MCO.mjs";
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-NCUH54IZ.mjs";
24
+ } from "./chunk-LI2CTS5O.mjs";
25
25
  import {
26
26
  Input
27
27
  } from "./chunk-LBTHZSBT.mjs";
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-3VDET466.mjs";
25
25
  import {
26
26
  useThemeVars
27
- } from "./chunk-WDTXHLYM.mjs";
27
+ } from "./chunk-XYSRRDBH.mjs";
28
28
  import {
29
29
  cn
30
30
  } from "./chunk-AFML43VJ.mjs";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  Dialog,
6
6
  DialogContent
7
- } from "./chunk-NCUH54IZ.mjs";
7
+ } from "./chunk-LI2CTS5O.mjs";
8
8
  import {
9
9
  Button
10
10
  } from "./chunk-NOOEKOWY.mjs";
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-3VDET466.mjs";
24
24
  import {
25
25
  useThemeVars
26
- } from "./chunk-WDTXHLYM.mjs";
26
+ } from "./chunk-XYSRRDBH.mjs";
27
27
  import {
28
28
  cn
29
29
  } from "./chunk-AFML43VJ.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
  useThemeVars
3
- } from "./chunk-WDTXHLYM.mjs";
3
+ } from "./chunk-XYSRRDBH.mjs";
4
4
  import {
5
5
  buttonVariants
6
6
  } from "./chunk-NOOEKOWY.mjs";
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-3VDET466.mjs";
23
23
  import {
24
24
  useThemeVars
25
- } from "./chunk-WDTXHLYM.mjs";
25
+ } from "./chunk-XYSRRDBH.mjs";
26
26
  import {
27
27
  cn
28
28
  } from "./chunk-AFML43VJ.mjs";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-3VDET466.mjs";
22
22
  import {
23
23
  useThemeVars
24
- } from "./chunk-WDTXHLYM.mjs";
24
+ } from "./chunk-XYSRRDBH.mjs";
25
25
  import {
26
26
  formatCurrency,
27
27
  formatCurrencyAbbrev
@@ -3,7 +3,7 @@ import {
3
3
  DebtCard,
4
4
  OtherLiabilityCard,
5
5
  PropertyCard
6
- } from "./chunk-HROG643K.mjs";
6
+ } from "./chunk-W5QJ57PU.mjs";
7
7
  import {
8
8
  FinancialCardHeader,
9
9
  FinancialDetailField,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  KanbanColumn
3
- } from "./chunk-ODO6BUOF.mjs";
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-6SR4K5T5.mjs";
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-S4CTM3UE.mjs";
12
+ } from "./chunk-FRCTOAKZ.mjs";
13
13
  import {
14
14
  cn
15
15
  } from "./chunk-AFML43VJ.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  formatDateShort
3
- } from "./chunk-PV3Y7QGK.mjs";
3
+ } from "./chunk-LHWJQNLG.mjs";
4
4
  import {
5
5
  Button,
6
6
  buttonVariants
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-3VDET466.mjs";
20
20
  import {
21
21
  useThemeVars
22
- } from "./chunk-WDTXHLYM.mjs";
22
+ } from "./chunk-XYSRRDBH.mjs";
23
23
  import {
24
24
  formatCurrencyAbbrev
25
25
  } from "./chunk-MN5NYQCL.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 hexToOklch(hex) {
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 h = (Math.atan2(bv, a) * 180 / Math.PI + 360) % 360;
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)} ${h.toFixed(1)})`;
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
- hexToOklch
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-TXUBGKB7.mjs";
6
+ } from "./chunk-UJMVXREM.mjs";
7
7
  import {
8
8
  ColorPicker
9
- } from "./chunk-AL6GOL2Y.mjs";
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-TAX3KL66.mjs";
27
+ } from "./chunk-USOVLDGS.mjs";
28
28
  import {
29
29
  Tooltip,
30
30
  TooltipContent,
31
31
  TooltipProvider,
32
32
  TooltipTrigger
33
- } from "./chunk-6SR4K5T5.mjs";
33
+ } from "./chunk-3S6KVFF5.mjs";
34
34
  import {
35
35
  Separator
36
36
  } from "./chunk-2GIYVERS.mjs";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-3VDET466.mjs";
19
19
  import {
20
20
  useThemeVars
21
- } from "./chunk-WDTXHLYM.mjs";
21
+ } from "./chunk-XYSRRDBH.mjs";
22
22
  import {
23
23
  formatCurrency
24
24
  } from "./chunk-MN5NYQCL.mjs";
@@ -15,7 +15,7 @@ import {
15
15
  SelectItem,
16
16
  SelectTrigger,
17
17
  SelectValue
18
- } from "./chunk-TAX3KL66.mjs";
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-NCUH54IZ.mjs";
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-Q35PNFJ7.mjs";
43
+ } from "./chunk-FBNEIYSE.mjs";
44
44
  import {
45
45
  formatDateLong
46
- } from "./chunk-PV3Y7QGK.mjs";
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: options.map((opt) => /* @__PURE__ */ jsxs(
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: formatDateLong(date) }),
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
  {
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-3VDET466.mjs";
19
19
  import {
20
20
  useThemeVars
21
- } from "./chunk-WDTXHLYM.mjs";
21
+ } from "./chunk-XYSRRDBH.mjs";
22
22
  import {
23
23
  formatCurrencyAbbrev
24
24
  } from "./chunk-MN5NYQCL.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useThemeVars
3
- } from "./chunk-WDTXHLYM.mjs";
3
+ } from "./chunk-XYSRRDBH.mjs";
4
4
  import {
5
5
  cn
6
6
  } from "./chunk-AFML43VJ.mjs";