@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.
Files changed (313) hide show
  1. package/.turbo/turbo-build.log +259 -223
  2. package/CHANGELOG.md +12 -0
  3. package/dist/{chunk-2UM72RJ7.mjs → chunk-2D3HQPFN.mjs} +12 -10
  4. package/dist/chunk-2EM2FRU6.mjs +613 -0
  5. package/dist/{chunk-FH6QVUVZ.mjs → chunk-2GIYVERS.mjs} +2 -2
  6. package/dist/chunk-2P7HP7LR.mjs +68 -0
  7. package/dist/{chunk-HISNT2MG.mjs → chunk-37AE3OM5.mjs} +5 -5
  8. package/dist/{chunk-HBZLGDIN.mjs → chunk-3ERBUVHC.mjs} +169 -110
  9. package/dist/{chunk-C7CQJNMR.mjs → chunk-3VDET466.mjs} +2 -2
  10. package/dist/{chunk-462HMNO4.mjs → chunk-4MM7LHM5.mjs} +2 -2
  11. package/dist/{chunk-QMY3AZJH.mjs → chunk-4Z66LMIQ.mjs} +2 -2
  12. package/dist/{chunk-U5X52X37.mjs → chunk-57ZXILTS.mjs} +6 -6
  13. package/dist/{chunk-3OYFOX3X.mjs → chunk-5VOTTIXF.mjs} +2 -2
  14. package/dist/{chunk-LBMRIB3G.mjs → chunk-6AJUS7VX.mjs} +1 -1
  15. package/dist/{chunk-OODBHKG7.mjs → chunk-6HIOM2HL.mjs} +7 -4
  16. package/dist/{chunk-BDYZCBRT.mjs → chunk-6QAFGZC2.mjs} +2 -2
  17. package/dist/{chunk-U4NDAF2P.mjs → chunk-6TX73WG7.mjs} +1 -1
  18. package/dist/{chunk-GD4BJDJR.mjs → chunk-7BTFGCFC.mjs} +4 -4
  19. package/dist/{chunk-FAKPBKLT.mjs → chunk-7GWRPXHD.mjs} +4 -4
  20. package/dist/{chunk-NMOI6CQD.mjs → chunk-7YI3HEBH.mjs} +5 -5
  21. package/dist/{chunk-T4BJLT57.mjs → chunk-AE7MASLF.mjs} +5 -5
  22. package/dist/{chunk-VLQZANBF.mjs → chunk-AFML43VJ.mjs} +6 -1
  23. package/dist/chunk-BBXSNDS3.mjs +260 -0
  24. package/dist/chunk-BOW7U26Y.mjs +203 -0
  25. package/dist/{chunk-34NWQURD.mjs → chunk-BS75ICOO.mjs} +2 -2
  26. package/dist/chunk-D2NSIIXG.mjs +394 -0
  27. package/dist/{chunk-3GF7OVTP.mjs → chunk-DGNHGNYH.mjs} +2 -2
  28. package/dist/{chunk-VLARHE5V.mjs → chunk-DMXYRCHM.mjs} +6 -6
  29. package/dist/{chunk-OGOYQ7BG.mjs → chunk-DQB4EPIS.mjs} +1 -1
  30. package/dist/{chunk-MIZQHHUO.mjs → chunk-FL6DZFJK.mjs} +106 -38
  31. package/dist/{chunk-I3RZS7V2.mjs → chunk-FLL633WS.mjs} +19 -33
  32. package/dist/{chunk-PBL4OQV2.mjs → chunk-FTPBQVQ6.mjs} +4 -4
  33. package/dist/chunk-FYPSTTEJ.mjs +169 -0
  34. package/dist/{chunk-6O6KD7CE.mjs → chunk-G27TSQLQ.mjs} +6 -6
  35. package/dist/{chunk-66MI7Q4B.mjs → chunk-GT3RU6GA.mjs} +2 -2
  36. package/dist/{chunk-D6ID6M4V.mjs → chunk-GTAVSBDO.mjs} +2 -2
  37. package/dist/{chunk-24FUO7TD.mjs → chunk-H6NQTIF4.mjs} +2 -2
  38. package/dist/{chunk-7DHU4VGG.mjs → chunk-HK4HUQTV.mjs} +2 -2
  39. package/dist/chunk-I4KVSZCH.mjs +101 -0
  40. package/dist/{chunk-RGVKLTLH.mjs → chunk-IKXYTCSB.mjs} +2 -2
  41. package/dist/{chunk-Y6DWJSKZ.mjs → chunk-ISUA7DSB.mjs} +1 -1
  42. package/dist/{chunk-2A5RRQGG.mjs → chunk-JD3YWRNP.mjs} +10 -14
  43. package/dist/{chunk-J5UICVJS.mjs → chunk-JPGL36WQ.mjs} +2 -2
  44. package/dist/{chunk-7XJHLGUV.mjs → chunk-JTK6VJXY.mjs} +2 -2
  45. package/dist/{chunk-7YAU5CY6.mjs → chunk-JVMXMFBB.mjs} +2 -2
  46. package/dist/{chunk-IAE3F7DR.mjs → chunk-JZY6TNIS.mjs} +21 -21
  47. package/dist/{chunk-K5A5L6T2.mjs → chunk-K4KOD3KR.mjs} +12 -12
  48. package/dist/{chunk-MBON7YRJ.mjs → chunk-K5QV4TT6.mjs} +3 -3
  49. package/dist/{chunk-IHMFS7NZ.mjs → chunk-K5VHK7CM.mjs} +21 -21
  50. package/dist/{chunk-RJI6GKVF.mjs → chunk-KCWNDYPZ.mjs} +5 -5
  51. package/dist/{chunk-UFYSFDER.mjs → chunk-KFH36NKF.mjs} +1 -1
  52. package/dist/{chunk-EBXQWIYG.mjs → chunk-KLTACJ2G.mjs} +5 -5
  53. package/dist/{chunk-3TTACBDP.mjs → chunk-KWD6GANL.mjs} +4 -4
  54. package/dist/{chunk-IOJRDS6V.mjs → chunk-L4NSRQ3T.mjs} +218 -147
  55. package/dist/{chunk-GYMYRIZP.mjs → chunk-LBTHZSBT.mjs} +2 -2
  56. package/dist/{chunk-AMQZRHEZ.mjs → chunk-LQULK2E3.mjs} +5 -5
  57. package/dist/{chunk-YJG55G2H.mjs → chunk-LR6LHDP3.mjs} +5 -5
  58. package/dist/{chunk-7PV3IWCN.mjs → chunk-M4VYX2PV.mjs} +19 -1
  59. package/dist/{chunk-P76HMUI6.mjs → chunk-MDUKXXIL.mjs} +2 -2
  60. package/dist/{chunk-LV35NGVG.mjs → chunk-N6Q5IPKT.mjs} +9 -9
  61. package/dist/{chunk-DOEO3CDL.mjs → chunk-NB3ZL36B.mjs} +1 -1
  62. package/dist/{chunk-XREGSKX3.mjs → chunk-NOOEKOWY.mjs} +5 -5
  63. package/dist/{chunk-NL3ZO62D.mjs → chunk-NT4FX27K.mjs} +1 -1
  64. package/dist/{chunk-QZ4RE6NA.mjs → chunk-NTYQWVLI.mjs} +6 -6
  65. package/dist/{chunk-ERGGHC2V.mjs → chunk-OEOOYMC2.mjs} +2 -2
  66. package/dist/{chunk-4GAWMKMI.mjs → chunk-OIKBW2QD.mjs} +291 -54
  67. package/dist/{chunk-DUJTAXMH.mjs → chunk-OKTJFDPN.mjs} +6 -6
  68. package/dist/chunk-OLKMCXAR.mjs +1219 -0
  69. package/dist/{chunk-EI5F6FMT.mjs → chunk-OWFQSXVD.mjs} +3 -3
  70. package/dist/{chunk-6DZEXFNB.mjs → chunk-P2N2PEFY.mjs} +3 -3
  71. package/dist/{chunk-NSLMILBT.mjs → chunk-P7CEBZM6.mjs} +2 -2
  72. package/dist/{chunk-7S5AESZO.mjs → chunk-PNRUH7JY.mjs} +6 -6
  73. package/dist/{chunk-ZU4NV6RG.mjs → chunk-PNSYFE3K.mjs} +2 -2
  74. package/dist/{chunk-JKGDCQTZ.mjs → chunk-QTRSCVQ3.mjs} +5 -5
  75. package/dist/{chunk-ABFDMHOR.mjs → chunk-QX7IFQSF.mjs} +5 -5
  76. package/dist/{chunk-CFMQP5QS.mjs → chunk-QXKGOMUX.mjs} +6 -6
  77. package/dist/{chunk-NQPOYKAQ.mjs → chunk-R2ON6CAN.mjs} +2 -2
  78. package/dist/{chunk-DBHJ5KC3.mjs → chunk-R4HCRDU5.mjs} +1 -1
  79. package/dist/{chunk-EWRB4PAD.mjs → chunk-RCAOCHWA.mjs} +14 -14
  80. package/dist/{chunk-EFRENWEJ.mjs → chunk-RSUIPKGX.mjs} +2 -2
  81. package/dist/{chunk-DGHAXJBN.mjs → chunk-S2FKV4M5.mjs} +5 -5
  82. package/dist/{chunk-RGU7HOEC.mjs → chunk-SET2ANTY.mjs} +5 -7
  83. package/dist/chunk-SFH2NJEJ.mjs +47 -0
  84. package/dist/{chunk-6AW4KJHE.mjs → chunk-SIVYAI3M.mjs} +12 -12
  85. package/dist/{chunk-5FQIKDKP.mjs → chunk-THVO2N47.mjs} +8 -8
  86. package/dist/{chunk-JMHR3YGZ.mjs → chunk-TLAWKTSA.mjs} +3 -3
  87. package/dist/{chunk-HVY6KCCF.mjs → chunk-TOWTPLRC.mjs} +68 -72
  88. package/dist/{chunk-6JQFUE5I.mjs → chunk-UALR6JGV.mjs} +2 -2
  89. package/dist/{chunk-MLNEWRWV.mjs → chunk-UJZ4UHWI.mjs} +10 -15
  90. package/dist/{chunk-MARPPFOJ.mjs → chunk-UNACI2YK.mjs} +2 -2
  91. package/dist/{chunk-3NCUZIFP.mjs → chunk-V6XGXYCJ.mjs} +7 -7
  92. package/dist/chunk-VB5M6OZQ.mjs +57 -0
  93. package/dist/{chunk-5IS7G74I.mjs → chunk-VY5NEUP7.mjs} +6 -6
  94. package/dist/{chunk-JHJHG4GO.mjs → chunk-WE4YKBDE.mjs} +2 -2
  95. package/dist/{chunk-BKNFWEH2.mjs → chunk-WL6WVV47.mjs} +3 -3
  96. package/dist/{chunk-FWCSY2DS.mjs → chunk-WNQUEZJF.mjs} +22 -1
  97. package/dist/{chunk-2Y7YJKPE.mjs → chunk-WZ6UJCBL.mjs} +1 -1
  98. package/dist/{chunk-UMTOX62O.mjs → chunk-XYPW2XA5.mjs} +13 -10
  99. package/dist/chunk-Y2MTAVAK.mjs +34 -0
  100. package/dist/{chunk-6CR5N2JW.mjs → chunk-YCWLFG27.mjs} +6 -6
  101. package/dist/{chunk-PU4YZQXV.mjs → chunk-YE67AALL.mjs} +12 -12
  102. package/dist/{chunk-M3FV7LOK.mjs → chunk-YEWNFK5S.mjs} +6 -1
  103. package/dist/{chunk-R3VSPKNP.mjs → chunk-YIZHS72Z.mjs} +11 -12
  104. package/dist/{chunk-7PYJD5JI.mjs → chunk-ZEDMKQK2.mjs} +2 -2
  105. package/dist/{chunk-N2PT566P.mjs → chunk-ZFCDYW6N.mjs} +4 -4
  106. package/dist/chunk-ZGQIVGIN.mjs +57 -0
  107. package/dist/{chunk-Q2BGOAMG.mjs → chunk-ZKWXDQDG.mjs} +4 -4
  108. package/dist/{chunk-GHC7LLUX.mjs → chunk-ZOWL2L5J.mjs} +5 -5
  109. package/dist/components/ui/accordion.mjs +3 -3
  110. package/dist/components/ui/add-column-modal.js +2 -2
  111. package/dist/components/ui/add-column-modal.mjs +10 -10
  112. package/dist/components/ui/add-lead-modal.js +424 -82
  113. package/dist/components/ui/add-lead-modal.mjs +12 -9
  114. package/dist/components/ui/advisor-card.js +2 -2
  115. package/dist/components/ui/advisor-card.mjs +8 -8
  116. package/dist/components/ui/ai-assistant-drawer.js +2 -2
  117. package/dist/components/ui/ai-assistant-drawer.mjs +9 -9
  118. package/dist/components/ui/ai-builder.js +958 -0
  119. package/dist/components/ui/ai-builder.mjs +25 -0
  120. package/dist/components/ui/ai-conversations.js +2045 -0
  121. package/dist/components/ui/ai-conversations.mjs +41 -0
  122. package/dist/components/ui/alert-dialog.js +2 -2
  123. package/dist/components/ui/alert-dialog.mjs +5 -5
  124. package/dist/components/ui/alert.mjs +3 -3
  125. package/dist/components/ui/appointment-action-dialogs.js +19 -3
  126. package/dist/components/ui/appointment-action-dialogs.mjs +15 -14
  127. package/dist/components/ui/appointment-availability-settings.js +181 -111
  128. package/dist/components/ui/appointment-availability-settings.mjs +20 -18
  129. package/dist/components/ui/appointment-book-dialog.js +113 -24
  130. package/dist/components/ui/appointment-book-dialog.mjs +21 -20
  131. package/dist/components/ui/appointment-calendar-view.js +19 -3
  132. package/dist/components/ui/appointment-calendar-view.mjs +10 -9
  133. package/dist/components/ui/appointment-detail-sheet.js +19 -3
  134. package/dist/components/ui/appointment-detail-sheet.mjs +18 -17
  135. package/dist/components/ui/appointment-gmail-connect.js +49 -89
  136. package/dist/components/ui/appointment-gmail-connect.mjs +8 -9
  137. package/dist/components/ui/appointment-mini-card.js +2 -2
  138. package/dist/components/ui/appointment-mini-card.mjs +6 -6
  139. package/dist/components/ui/appointment-time-slot-picker.mjs +6 -6
  140. package/dist/components/ui/appointment-upcoming-card.js +19 -3
  141. package/dist/components/ui/appointment-upcoming-card.mjs +15 -14
  142. package/dist/components/ui/auth-logo.js +95 -0
  143. package/dist/components/ui/auth-logo.mjs +8 -0
  144. package/dist/components/ui/auth-page-layout.js +108 -0
  145. package/dist/components/ui/auth-page-layout.mjs +8 -0
  146. package/dist/components/ui/avatar.mjs +3 -3
  147. package/dist/components/ui/backoffice-alert-history-chart.js +2 -2
  148. package/dist/components/ui/backoffice-alert-history-chart.mjs +9 -9
  149. package/dist/components/ui/backoffice-alerts-chart.js +2 -2
  150. package/dist/components/ui/backoffice-alerts-chart.mjs +11 -11
  151. package/dist/components/ui/backoffice-connections-chart.js +2 -2
  152. package/dist/components/ui/backoffice-connections-chart.mjs +11 -11
  153. package/dist/components/ui/backoffice-contact-history-chart.js +2 -2
  154. package/dist/components/ui/backoffice-contact-history-chart.mjs +9 -9
  155. package/dist/components/ui/badge.mjs +4 -4
  156. package/dist/components/ui/borrowing-capacity-line-chart.js +145 -132
  157. package/dist/components/ui/borrowing-capacity-line-chart.mjs +9 -9
  158. package/dist/components/ui/button.js +2 -2
  159. package/dist/components/ui/button.mjs +4 -4
  160. package/dist/components/ui/calendar.js +17 -3
  161. package/dist/components/ui/calendar.mjs +6 -5
  162. package/dist/components/ui/card.mjs +3 -3
  163. package/dist/components/ui/cash-balance-line-chart.js +157 -152
  164. package/dist/components/ui/cash-balance-line-chart.mjs +9 -9
  165. package/dist/components/ui/cashflow-bar-chart.js +2 -2
  166. package/dist/components/ui/cashflow-bar-chart.mjs +9 -9
  167. package/dist/components/ui/chat-widget-primitives.js +573 -0
  168. package/dist/components/ui/chat-widget-primitives.mjs +21 -0
  169. package/dist/components/ui/chat-widget.js +1268 -0
  170. package/dist/components/ui/chat-widget.mjs +29 -0
  171. package/dist/components/ui/checkbox.mjs +3 -3
  172. package/dist/components/ui/chip.js +2 -2
  173. package/dist/components/ui/chip.mjs +6 -6
  174. package/dist/components/ui/color-picker.js +2 -2
  175. package/dist/components/ui/color-picker.mjs +7 -7
  176. package/dist/components/ui/combobox.mjs +3 -3
  177. package/dist/components/ui/data-table.js +2 -2
  178. package/dist/components/ui/data-table.mjs +12 -12
  179. package/dist/components/ui/date-picker.js +22 -6
  180. package/dist/components/ui/date-picker.mjs +9 -8
  181. package/dist/components/ui/dialog.js +2 -2
  182. package/dist/components/ui/dialog.mjs +5 -5
  183. package/dist/components/ui/document-checklist-template.js +630 -0
  184. package/dist/components/ui/document-checklist-template.mjs +15 -0
  185. package/dist/components/ui/drawer.js +2 -2
  186. package/dist/components/ui/drawer.mjs +3 -3
  187. package/dist/components/ui/dropdown-menu.mjs +3 -3
  188. package/dist/components/ui/empty.mjs +3 -3
  189. package/dist/components/ui/expense-bar-chart.js +2 -2
  190. package/dist/components/ui/expense-bar-chart.mjs +9 -9
  191. package/dist/components/ui/field.mjs +5 -5
  192. package/dist/components/ui/financial-cards.js +431 -291
  193. package/dist/components/ui/financial-cards.mjs +10 -9
  194. package/dist/components/ui/financial-drawers.js +4 -4
  195. package/dist/components/ui/financial-drawers.mjs +8 -8
  196. package/dist/components/ui/financial-primitives.mjs +3 -3
  197. package/dist/components/ui/financial-sections.js +8 -9
  198. package/dist/components/ui/financial-sections.mjs +12 -12
  199. package/dist/components/ui/form-primitives.mjs +8 -8
  200. package/dist/components/ui/income-bar-chart.js +2 -2
  201. package/dist/components/ui/income-bar-chart.mjs +9 -9
  202. package/dist/components/ui/input-group.js +2 -2
  203. package/dist/components/ui/input-group.mjs +7 -7
  204. package/dist/components/ui/input-otp.mjs +3 -3
  205. package/dist/components/ui/input.mjs +3 -3
  206. package/dist/components/ui/kanban-column.js +19 -23
  207. package/dist/components/ui/kanban-column.mjs +14 -14
  208. package/dist/components/ui/label.mjs +3 -3
  209. package/dist/components/ui/onboarding-layout.js +476 -0
  210. package/dist/components/ui/onboarding-layout.mjs +11 -0
  211. package/dist/components/ui/opportunity-card.js +2 -2
  212. package/dist/components/ui/opportunity-card.mjs +12 -12
  213. package/dist/components/ui/opportunity-edit-modals.js +22 -6
  214. package/dist/components/ui/opportunity-edit-modals.mjs +21 -20
  215. package/dist/components/ui/opportunity-summary-tab.js +991 -674
  216. package/dist/components/ui/opportunity-summary-tab.mjs +26 -26
  217. package/dist/components/ui/page-header.mjs +3 -3
  218. package/dist/components/ui/page-top-bar.mjs +3 -3
  219. package/dist/components/ui/pagination.js +2 -2
  220. package/dist/components/ui/pagination.mjs +6 -6
  221. package/dist/components/ui/password-strength-tooltip.js +197 -0
  222. package/dist/components/ui/password-strength-tooltip.mjs +11 -0
  223. package/dist/components/ui/pipeline-alerts.mjs +3 -3
  224. package/dist/components/ui/pipeline-board.js +19 -23
  225. package/dist/components/ui/pipeline-board.mjs +18 -18
  226. package/dist/components/ui/pipeline-chart.js +12 -6
  227. package/dist/components/ui/pipeline-chart.mjs +4 -3
  228. package/dist/components/ui/pipeline-dialogs.js +28 -12
  229. package/dist/components/ui/pipeline-dialogs.mjs +14 -13
  230. package/dist/components/ui/pipeline-primitives.mjs +6 -6
  231. package/dist/components/ui/popover.mjs +3 -3
  232. package/dist/components/ui/progress.mjs +3 -3
  233. package/dist/components/ui/property-cashflow-doughnut-chart.js +2 -2
  234. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +9 -9
  235. package/dist/components/ui/property-debt-equity-doughnut-chart.js +2 -2
  236. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +9 -9
  237. package/dist/components/ui/property-mobile-estimate-line-chart.js +2 -2
  238. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +9 -9
  239. package/dist/components/ui/radio-group.mjs +3 -3
  240. package/dist/components/ui/select.mjs +3 -3
  241. package/dist/components/ui/separator.mjs +3 -3
  242. package/dist/components/ui/sheet.mjs +3 -3
  243. package/dist/components/ui/sidebar-nav.js +7 -9
  244. package/dist/components/ui/sidebar-nav.mjs +7 -7
  245. package/dist/components/ui/skeleton.mjs +3 -3
  246. package/dist/components/ui/slider.mjs +3 -3
  247. package/dist/components/ui/sonner.mjs +2 -2
  248. package/dist/components/ui/spinner.mjs +3 -3
  249. package/dist/components/ui/stage-timeline.mjs +10 -10
  250. package/dist/components/ui/stepper.mjs +3 -3
  251. package/dist/components/ui/switch.mjs +3 -3
  252. package/dist/components/ui/table.mjs +3 -3
  253. package/dist/components/ui/tabs.mjs +3 -3
  254. package/dist/components/ui/textarea.mjs +3 -3
  255. package/dist/components/ui/toggle-group.mjs +4 -4
  256. package/dist/components/ui/toggle.mjs +3 -3
  257. package/dist/components/ui/tooltip.mjs +3 -3
  258. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +2 -2
  259. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +9 -9
  260. package/dist/components/ui/transactions-income-expense-bar-chart.js +2 -2
  261. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +9 -9
  262. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +2 -2
  263. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +9 -9
  264. package/dist/components/ui/two-fa-setup-form.js +612 -0
  265. package/dist/components/ui/two-fa-setup-form.mjs +16 -0
  266. package/dist/components/ui/upload-card.js +187 -0
  267. package/dist/components/ui/upload-card.mjs +10 -0
  268. package/dist/components/ui/video-background.js +118 -0
  269. package/dist/components/ui/video-background.mjs +8 -0
  270. package/dist/index.js +12765 -9400
  271. package/dist/index.mjs +341 -245
  272. package/dist/lib/colors.mjs +1 -1
  273. package/dist/lib/theme-provider.mjs +1 -1
  274. package/dist/lib/typography.mjs +2 -2
  275. package/dist/lib/utils.js +8 -2
  276. package/dist/lib/utils.mjs +6 -4
  277. package/dist/styles.css +1 -1
  278. package/package.json +61 -1
  279. package/src/components/index.tsx +126 -1
  280. package/src/components/ui/add-lead-modal.tsx +101 -142
  281. package/src/components/ui/ai-builder.tsx +560 -0
  282. package/src/components/ui/ai-conversations.tsx +1690 -0
  283. package/src/components/ui/appointment-availability-settings.tsx +152 -101
  284. package/src/components/ui/appointment-book-dialog.tsx +138 -24
  285. package/src/components/ui/appointment-calendar-view.tsx +2 -3
  286. package/src/components/ui/appointment-gmail-connect.tsx +23 -42
  287. package/src/components/ui/auth-logo.tsx +50 -0
  288. package/src/components/ui/auth-page-layout.tsx +59 -0
  289. package/src/components/ui/borrowing-capacity-line-chart.tsx +10 -8
  290. package/src/components/ui/button.tsx +2 -2
  291. package/src/components/ui/calendar.tsx +2 -1
  292. package/src/components/ui/cash-balance-line-chart.tsx +10 -14
  293. package/src/components/ui/chart-shared.tsx +10 -0
  294. package/src/components/ui/chat-widget-primitives.tsx +336 -0
  295. package/src/components/ui/chat-widget.tsx +822 -0
  296. package/src/components/ui/document-checklist-template.tsx +264 -0
  297. package/src/components/ui/drawer.tsx +2 -2
  298. package/src/components/ui/financial-cards.tsx +176 -78
  299. package/src/components/ui/financial-drawers.tsx +2 -2
  300. package/src/components/ui/financial-sections.tsx +1 -1
  301. package/src/components/ui/kanban-column.tsx +2 -5
  302. package/src/components/ui/onboarding-layout.tsx +109 -0
  303. package/src/components/ui/opportunity-summary-tab.tsx +469 -142
  304. package/src/components/ui/password-strength-tooltip.tsx +70 -0
  305. package/src/components/ui/pipeline-chart.tsx +2 -6
  306. package/src/components/ui/sidebar-nav.tsx +2 -15
  307. package/src/components/ui/two-fa-setup-form.tsx +229 -0
  308. package/src/components/ui/upload-card.tsx +98 -0
  309. package/src/components/ui/video-background.tsx +55 -0
  310. package/src/lib/format-date.ts +26 -0
  311. package/src/lib/utils.ts +11 -0
  312. package/src/styles/styles-css.ts +1 -1
  313. package/tsup.config.ts +13 -0
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  BackofficeAlertHistoryChart
3
- } from "../../chunk-AMQZRHEZ.mjs";
4
- import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-M3FV7LOK.mjs";
3
+ } from "../../chunk-LQULK2E3.mjs";
4
+ import "../../chunk-GTAVSBDO.mjs";
5
+ import "../../chunk-YEWNFK5S.mjs";
6
6
  import "../../chunk-MN5NYQCL.mjs";
7
- import "../../chunk-NQPOYKAQ.mjs";
8
- import "../../chunk-C7CQJNMR.mjs";
9
- import "../../chunk-XREGSKX3.mjs";
10
- import "../../chunk-DBHJ5KC3.mjs";
7
+ import "../../chunk-R2ON6CAN.mjs";
8
+ import "../../chunk-3VDET466.mjs";
9
+ import "../../chunk-NOOEKOWY.mjs";
10
+ import "../../chunk-R4HCRDU5.mjs";
11
11
  import "../../chunk-FEZKMUCF.mjs";
12
12
  import "../../chunk-QOJ2DQD6.mjs";
13
- import "../../chunk-VLQZANBF.mjs";
14
- import "../../chunk-FWCSY2DS.mjs";
13
+ import "../../chunk-AFML43VJ.mjs";
14
+ import "../../chunk-WNQUEZJF.mjs";
15
15
  export {
16
16
  BackofficeAlertHistoryChart
17
17
  };
@@ -299,9 +299,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
299
299
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
300
300
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
301
301
  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",
302
- 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",
302
+ 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",
303
303
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
304
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
304
+ "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",
305
305
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
306
306
  link: "text-primary underline-offset-4 hover:underline"
307
307
  },
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  BackofficeAlertsChart
3
- } from "../../chunk-6O6KD7CE.mjs";
4
- import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-M3FV7LOK.mjs";
3
+ } from "../../chunk-G27TSQLQ.mjs";
4
+ import "../../chunk-GTAVSBDO.mjs";
5
+ import "../../chunk-YEWNFK5S.mjs";
6
6
  import "../../chunk-MN5NYQCL.mjs";
7
- import "../../chunk-NQPOYKAQ.mjs";
8
- import "../../chunk-C7CQJNMR.mjs";
9
- import "../../chunk-EI5F6FMT.mjs";
10
- import "../../chunk-BDYZCBRT.mjs";
11
- import "../../chunk-XREGSKX3.mjs";
12
- import "../../chunk-DBHJ5KC3.mjs";
7
+ import "../../chunk-R2ON6CAN.mjs";
8
+ import "../../chunk-3VDET466.mjs";
9
+ import "../../chunk-OWFQSXVD.mjs";
10
+ import "../../chunk-6QAFGZC2.mjs";
11
+ import "../../chunk-NOOEKOWY.mjs";
12
+ import "../../chunk-R4HCRDU5.mjs";
13
13
  import "../../chunk-FEZKMUCF.mjs";
14
14
  import "../../chunk-QOJ2DQD6.mjs";
15
- import "../../chunk-VLQZANBF.mjs";
16
- import "../../chunk-FWCSY2DS.mjs";
15
+ import "../../chunk-AFML43VJ.mjs";
16
+ import "../../chunk-WNQUEZJF.mjs";
17
17
  export {
18
18
  BackofficeAlertsChart
19
19
  };
@@ -299,9 +299,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
299
299
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
300
300
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
301
301
  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",
302
- 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",
302
+ 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",
303
303
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
304
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
304
+ "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",
305
305
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
306
306
  link: "text-primary underline-offset-4 hover:underline"
307
307
  },
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  BackofficeConnectionsChart
3
- } from "../../chunk-6CR5N2JW.mjs";
4
- import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-M3FV7LOK.mjs";
3
+ } from "../../chunk-YCWLFG27.mjs";
4
+ import "../../chunk-GTAVSBDO.mjs";
5
+ import "../../chunk-YEWNFK5S.mjs";
6
6
  import "../../chunk-MN5NYQCL.mjs";
7
- import "../../chunk-NQPOYKAQ.mjs";
8
- import "../../chunk-C7CQJNMR.mjs";
9
- import "../../chunk-EI5F6FMT.mjs";
10
- import "../../chunk-BDYZCBRT.mjs";
11
- import "../../chunk-XREGSKX3.mjs";
12
- import "../../chunk-DBHJ5KC3.mjs";
7
+ import "../../chunk-R2ON6CAN.mjs";
8
+ import "../../chunk-3VDET466.mjs";
9
+ import "../../chunk-OWFQSXVD.mjs";
10
+ import "../../chunk-6QAFGZC2.mjs";
11
+ import "../../chunk-NOOEKOWY.mjs";
12
+ import "../../chunk-R4HCRDU5.mjs";
13
13
  import "../../chunk-FEZKMUCF.mjs";
14
14
  import "../../chunk-QOJ2DQD6.mjs";
15
- import "../../chunk-VLQZANBF.mjs";
16
- import "../../chunk-FWCSY2DS.mjs";
15
+ import "../../chunk-AFML43VJ.mjs";
16
+ import "../../chunk-WNQUEZJF.mjs";
17
17
  export {
18
18
  BackofficeConnectionsChart
19
19
  };
@@ -298,9 +298,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
298
298
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
299
299
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
300
300
  destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
301
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
301
+ outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
302
302
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
303
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
303
+ "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
304
304
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
305
305
  link: "text-primary underline-offset-4 hover:underline"
306
306
  },
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  BackofficeContactHistoryChart
3
- } from "../../chunk-EBXQWIYG.mjs";
4
- import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-M3FV7LOK.mjs";
3
+ } from "../../chunk-KLTACJ2G.mjs";
4
+ import "../../chunk-GTAVSBDO.mjs";
5
+ import "../../chunk-YEWNFK5S.mjs";
6
6
  import "../../chunk-MN5NYQCL.mjs";
7
- import "../../chunk-NQPOYKAQ.mjs";
8
- import "../../chunk-C7CQJNMR.mjs";
9
- import "../../chunk-XREGSKX3.mjs";
10
- import "../../chunk-DBHJ5KC3.mjs";
7
+ import "../../chunk-R2ON6CAN.mjs";
8
+ import "../../chunk-3VDET466.mjs";
9
+ import "../../chunk-NOOEKOWY.mjs";
10
+ import "../../chunk-R4HCRDU5.mjs";
11
11
  import "../../chunk-FEZKMUCF.mjs";
12
12
  import "../../chunk-QOJ2DQD6.mjs";
13
- import "../../chunk-VLQZANBF.mjs";
14
- import "../../chunk-FWCSY2DS.mjs";
13
+ import "../../chunk-AFML43VJ.mjs";
14
+ import "../../chunk-WNQUEZJF.mjs";
15
15
  export {
16
16
  BackofficeContactHistoryChart
17
17
  };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Badge,
3
3
  badgeVariants
4
- } from "../../chunk-BKNFWEH2.mjs";
5
- import "../../chunk-DBHJ5KC3.mjs";
6
- import "../../chunk-VLQZANBF.mjs";
7
- import "../../chunk-FWCSY2DS.mjs";
4
+ } from "../../chunk-WL6WVV47.mjs";
5
+ import "../../chunk-R4HCRDU5.mjs";
6
+ import "../../chunk-AFML43VJ.mjs";
7
+ import "../../chunk-WNQUEZJF.mjs";
8
8
  export {
9
9
  Badge,
10
10
  badgeVariants
@@ -74,6 +74,11 @@ function useThemeVars() {
74
74
  return (0, import_react.useContext)(ThemeVarsContext);
75
75
  }
76
76
 
77
+ // src/components/ui/button.tsx
78
+ var import_react2 = require("react");
79
+ var import_class_variance_authority = require("class-variance-authority");
80
+ var import_lucide_react = require("lucide-react");
81
+
77
82
  // src/lib/utils.ts
78
83
  var import_clsx = require("clsx");
79
84
  var import_tailwind_merge = require("tailwind-merge");
@@ -113,121 +118,6 @@ function cn(...inputs) {
113
118
  return twMerge((0, import_clsx.clsx)(inputs));
114
119
  }
115
120
 
116
- // src/components/ui/card.tsx
117
- var import_jsx_runtime2 = require("react/jsx-runtime");
118
- function Card(_a) {
119
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
120
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
121
- "div",
122
- __spreadValues({
123
- className: cn(
124
- "flex flex-col gap-6 border bg-card py-6 text-card-foreground shadow-sm",
125
- className
126
- ),
127
- "data-slot": "card"
128
- }, props)
129
- );
130
- }
131
- function CardHeader(_a) {
132
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
133
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
134
- "div",
135
- __spreadValues({
136
- className: cn(
137
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-center gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
138
- className
139
- ),
140
- "data-slot": "card-header"
141
- }, props)
142
- );
143
- }
144
- function CardTitle(_a) {
145
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
146
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
147
- "div",
148
- __spreadValues({
149
- className: cn("text-label-large", className),
150
- "data-slot": "card-title"
151
- }, props)
152
- );
153
- }
154
- function CardContent(_a) {
155
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
156
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
157
- "div",
158
- __spreadValues({
159
- className: cn("px-6", className),
160
- "data-slot": "card-content"
161
- }, props)
162
- );
163
- }
164
-
165
- // src/components/ui/empty.tsx
166
- var import_class_variance_authority = require("class-variance-authority");
167
- var import_jsx_runtime3 = require("react/jsx-runtime");
168
- function Empty(_a) {
169
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
170
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
171
- "div",
172
- __spreadValues({
173
- className: cn(
174
- "flex min-w-0 flex-1 flex-col items-center justify-center gap-6 border border-dashed p-6 text-center text-balance md:p-12",
175
- className
176
- ),
177
- "data-slot": "empty"
178
- }, props)
179
- );
180
- }
181
- var emptyMediaVariants = (0, import_class_variance_authority.cva)(
182
- "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
183
- {
184
- variants: {
185
- variant: {
186
- default: "[&_svg:not([class*='size-'])]:size-10",
187
- icon: "flex size-10 shrink-0 items-center justify-center text-muted-foreground [&_svg:not([class*='size-'])]:size-6"
188
- }
189
- },
190
- defaultVariants: {
191
- variant: "default"
192
- }
193
- }
194
- );
195
- function EmptyDescription(_a) {
196
- var _b = _a, {
197
- className
198
- } = _b, props = __objRest(_b, [
199
- "className"
200
- ]);
201
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
202
- "div",
203
- __spreadValues({
204
- className: cn(
205
- "text-body-small leading-relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
206
- className
207
- ),
208
- "data-slot": "empty-description"
209
- }, props)
210
- );
211
- }
212
-
213
- // src/components/ui/skeleton.tsx
214
- var import_jsx_runtime4 = require("react/jsx-runtime");
215
- function Skeleton(_a) {
216
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
217
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
218
- "div",
219
- __spreadValues({
220
- className: cn("animate-pulse bg-muted", className),
221
- "data-slot": "skeleton"
222
- }, props)
223
- );
224
- }
225
-
226
- // src/components/ui/button.tsx
227
- var import_react2 = require("react");
228
- var import_class_variance_authority2 = require("class-variance-authority");
229
- var import_lucide_react = require("lucide-react");
230
-
231
121
  // src/lib/slot.tsx
232
122
  var React2 = __toESM(require("react"));
233
123
  function mergeRefs(...refs) {
@@ -276,8 +166,8 @@ var Slot = React2.forwardRef(
276
166
  Slot.displayName = "Slot";
277
167
 
278
168
  // src/components/ui/button.tsx
279
- var import_jsx_runtime5 = require("react/jsx-runtime");
280
- var buttonVariants = (0, import_class_variance_authority2.cva)(
169
+ var import_jsx_runtime2 = require("react/jsx-runtime");
170
+ var buttonVariants = (0, import_class_variance_authority.cva)(
281
171
  "inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-sans text-button whitespace-nowrap transition-all active:scale-[0.98] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
282
172
  {
283
173
  variants: {
@@ -285,9 +175,9 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
285
175
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
286
176
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
287
177
  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",
288
- 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",
178
+ 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",
289
179
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
290
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
180
+ "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",
291
181
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
292
182
  link: "text-primary underline-offset-4 hover:underline"
293
183
  },
@@ -330,7 +220,7 @@ var Button = (0, import_react2.forwardRef)(function Button2(_a, ref) {
330
220
  ]);
331
221
  const Comp = asChild ? Slot : "button";
332
222
  const isIconOnly = size === "icon" || size === "icon-xs" || size === "icon-sm" || size === "icon-lg";
333
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
223
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
334
224
  Comp,
335
225
  __spreadProps(__spreadValues({
336
226
  className: cn(buttonVariants({ variant, size, className })),
@@ -341,8 +231,8 @@ var Button = (0, import_react2.forwardRef)(function Button2(_a, ref) {
341
231
  ref,
342
232
  type
343
233
  }, props), {
344
- children: loading ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
345
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.Loader2, { "aria-hidden": "true", className: "animate-spin" }),
234
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
235
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.Loader2, { "aria-hidden": "true", className: "animate-spin" }),
346
236
  !isIconOnly && children
347
237
  ] }) : children
348
238
  })
@@ -375,18 +265,31 @@ function formatCurrencyAbbrev(value) {
375
265
  }
376
266
 
377
267
  // src/components/ui/chart-shared.tsx
378
- var import_jsx_runtime6 = require("react/jsx-runtime");
268
+ var import_jsx_runtime3 = require("react/jsx-runtime");
379
269
  var FALLBACK_PRIMARY = "#33FF99";
380
270
  var FALLBACK_BG = "#ffffff";
381
271
  var FALLBACK_FOREGROUND = "#040D13";
382
272
  var FALLBACK_TICK = "#9EAAB5";
273
+ function formatTooltipDate(iso, granularity) {
274
+ const d = new Date(iso);
275
+ return d.toLocaleDateString(
276
+ "en-US",
277
+ granularity === "daily" ? { month: "short", day: "numeric", year: "numeric" } : { month: "short", year: "numeric" }
278
+ );
279
+ }
280
+ function formatMonthLabel(iso) {
281
+ return new Date(iso).toLocaleDateString("en-US", {
282
+ month: "short",
283
+ year: "2-digit"
284
+ });
285
+ }
383
286
  function ChartLegendItem({
384
287
  label,
385
288
  color,
386
289
  lineStyle
387
290
  }) {
388
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-1.5", children: [
389
- lineStyle ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
291
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-center gap-1.5", children: [
292
+ lineStyle ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
390
293
  "svg",
391
294
  {
392
295
  width: "20",
@@ -394,7 +297,7 @@ function ChartLegendItem({
394
297
  viewBox: "0 0 20 10",
395
298
  "aria-hidden": "true",
396
299
  style: { flexShrink: 0 },
397
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
300
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
398
301
  "line",
399
302
  {
400
303
  x1: "0",
@@ -408,7 +311,7 @@ function ChartLegendItem({
408
311
  }
409
312
  )
410
313
  }
411
- ) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
314
+ ) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
412
315
  "div",
413
316
  {
414
317
  style: {
@@ -419,10 +322,120 @@ function ChartLegendItem({
419
322
  }
420
323
  }
421
324
  ),
422
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none", children: label })
325
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none", children: label })
423
326
  ] });
424
327
  }
425
328
 
329
+ // src/components/ui/card.tsx
330
+ var import_jsx_runtime4 = require("react/jsx-runtime");
331
+ function Card(_a) {
332
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
333
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
334
+ "div",
335
+ __spreadValues({
336
+ className: cn(
337
+ "flex flex-col gap-6 border bg-card py-6 text-card-foreground shadow-sm",
338
+ className
339
+ ),
340
+ "data-slot": "card"
341
+ }, props)
342
+ );
343
+ }
344
+ function CardHeader(_a) {
345
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
346
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
347
+ "div",
348
+ __spreadValues({
349
+ className: cn(
350
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-center gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
351
+ className
352
+ ),
353
+ "data-slot": "card-header"
354
+ }, props)
355
+ );
356
+ }
357
+ function CardTitle(_a) {
358
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
359
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
360
+ "div",
361
+ __spreadValues({
362
+ className: cn("text-label-large", className),
363
+ "data-slot": "card-title"
364
+ }, props)
365
+ );
366
+ }
367
+ function CardContent(_a) {
368
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
369
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
370
+ "div",
371
+ __spreadValues({
372
+ className: cn("px-6", className),
373
+ "data-slot": "card-content"
374
+ }, props)
375
+ );
376
+ }
377
+
378
+ // src/components/ui/empty.tsx
379
+ var import_class_variance_authority2 = require("class-variance-authority");
380
+ var import_jsx_runtime5 = require("react/jsx-runtime");
381
+ function Empty(_a) {
382
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
383
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
384
+ "div",
385
+ __spreadValues({
386
+ className: cn(
387
+ "flex min-w-0 flex-1 flex-col items-center justify-center gap-6 border border-dashed p-6 text-center text-balance md:p-12",
388
+ className
389
+ ),
390
+ "data-slot": "empty"
391
+ }, props)
392
+ );
393
+ }
394
+ var emptyMediaVariants = (0, import_class_variance_authority2.cva)(
395
+ "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
396
+ {
397
+ variants: {
398
+ variant: {
399
+ default: "[&_svg:not([class*='size-'])]:size-10",
400
+ icon: "flex size-10 shrink-0 items-center justify-center text-muted-foreground [&_svg:not([class*='size-'])]:size-6"
401
+ }
402
+ },
403
+ defaultVariants: {
404
+ variant: "default"
405
+ }
406
+ }
407
+ );
408
+ function EmptyDescription(_a) {
409
+ var _b = _a, {
410
+ className
411
+ } = _b, props = __objRest(_b, [
412
+ "className"
413
+ ]);
414
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
415
+ "div",
416
+ __spreadValues({
417
+ className: cn(
418
+ "text-body-small leading-relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
419
+ className
420
+ ),
421
+ "data-slot": "empty-description"
422
+ }, props)
423
+ );
424
+ }
425
+
426
+ // src/components/ui/skeleton.tsx
427
+ var import_jsx_runtime6 = require("react/jsx-runtime");
428
+ function Skeleton(_a) {
429
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
430
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
431
+ "div",
432
+ __spreadValues({
433
+ className: cn("animate-pulse bg-muted", className),
434
+ "data-slot": "skeleton"
435
+ }, props)
436
+ );
437
+ }
438
+
426
439
  // src/components/ui/borrowing-capacity-line-chart.tsx
427
440
  var import_jsx_runtime7 = require("react/jsx-runtime");
428
441
  import_chart.Chart.register(
@@ -460,12 +473,12 @@ var SERIES_LEGEND_ORDER = [
460
473
  ];
461
474
  var DASH_PATTERN = [6, 4];
462
475
  function formatDateLabel(iso) {
463
- const d = /* @__PURE__ */ new Date(`${iso.slice(0, 7)}-01T00:00:00`);
464
- return d.toLocaleDateString("en-US", { month: "short", year: "2-digit" });
476
+ const normalized = `${iso.slice(0, 7)}-01T00:00:00`;
477
+ return formatMonthLabel(normalized);
465
478
  }
466
479
  function formatDateTooltip(iso) {
467
- const d = /* @__PURE__ */ new Date(`${iso.slice(0, 7)}-01T00:00:00`);
468
- return d.toLocaleDateString("en-US", { month: "short", year: "numeric" });
480
+ const normalized = `${iso.slice(0, 7)}-01T00:00:00`;
481
+ return formatTooltipDate(normalized, "monthly");
469
482
  }
470
483
  function BorrowingCapacityLineChart({
471
484
  series,
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  BorrowingCapacityLineChart
3
- } from "../../chunk-2UM72RJ7.mjs";
4
- import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-M3FV7LOK.mjs";
3
+ } from "../../chunk-2D3HQPFN.mjs";
4
+ import "../../chunk-GTAVSBDO.mjs";
5
+ import "../../chunk-YEWNFK5S.mjs";
6
6
  import "../../chunk-MN5NYQCL.mjs";
7
- import "../../chunk-NQPOYKAQ.mjs";
8
- import "../../chunk-C7CQJNMR.mjs";
9
- import "../../chunk-XREGSKX3.mjs";
10
- import "../../chunk-DBHJ5KC3.mjs";
7
+ import "../../chunk-R2ON6CAN.mjs";
8
+ import "../../chunk-3VDET466.mjs";
9
+ import "../../chunk-NOOEKOWY.mjs";
10
+ import "../../chunk-R4HCRDU5.mjs";
11
11
  import "../../chunk-FEZKMUCF.mjs";
12
12
  import "../../chunk-QOJ2DQD6.mjs";
13
- import "../../chunk-VLQZANBF.mjs";
14
- import "../../chunk-FWCSY2DS.mjs";
13
+ import "../../chunk-AFML43VJ.mjs";
14
+ import "../../chunk-WNQUEZJF.mjs";
15
15
  export {
16
16
  BorrowingCapacityLineChart
17
17
  };
@@ -163,9 +163,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
163
163
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
164
164
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
165
165
  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",
166
- 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",
166
+ 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",
167
167
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
168
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
168
+ "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",
169
169
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
170
170
  link: "text-primary underline-offset-4 hover:underline"
171
171
  },
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Button,
3
3
  buttonVariants
4
- } from "../../chunk-XREGSKX3.mjs";
5
- import "../../chunk-DBHJ5KC3.mjs";
6
- import "../../chunk-VLQZANBF.mjs";
7
- import "../../chunk-FWCSY2DS.mjs";
4
+ } from "../../chunk-NOOEKOWY.mjs";
5
+ import "../../chunk-R4HCRDU5.mjs";
6
+ import "../../chunk-AFML43VJ.mjs";
7
+ import "../../chunk-WNQUEZJF.mjs";
8
8
  export {
9
9
  Button,
10
10
  buttonVariants
@@ -106,6 +106,20 @@ function cn(...inputs) {
106
106
  return twMerge((0, import_clsx.clsx)(inputs));
107
107
  }
108
108
 
109
+ // src/lib/format-date.ts
110
+ var import_date_fns = require("date-fns");
111
+ function safeParse(iso) {
112
+ return (0, import_date_fns.parseISO)(iso);
113
+ }
114
+ function formatDateShort(iso) {
115
+ if (!iso) return "\u2014";
116
+ try {
117
+ return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
118
+ } catch (e) {
119
+ return iso;
120
+ }
121
+ }
122
+
109
123
  // src/components/ui/button.tsx
110
124
  var import_react = require("react");
111
125
  var import_class_variance_authority = require("class-variance-authority");
@@ -168,9 +182,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
168
182
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
169
183
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
170
184
  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",
171
- 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",
185
+ 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",
172
186
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
173
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
187
+ "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",
174
188
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
175
189
  link: "text-primary underline-offset-4 hover:underline"
176
190
  },
@@ -417,7 +431,7 @@ function CalendarDayButton(_a) {
417
431
  defaultClassNames.day,
418
432
  className
419
433
  ),
420
- "data-day": day.date.toLocaleDateString(),
434
+ "data-day": formatDateShort(day.date.toISOString()),
421
435
  "data-range-end": modifiers.range_end,
422
436
  "data-range-middle": modifiers.range_middle,
423
437
  "data-range-start": modifiers.range_start,