@wealthx/shadcn 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/.turbo/turbo-build.log +262 -226
  2. package/CHANGELOG.md +6 -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-N6TNTQL6.mjs → chunk-UJZ4UHWI.mjs} +9 -11
  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 +6 -5
  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 +12764 -9396
  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 +1 -11
  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,34 +1,34 @@
1
1
  import {
2
2
  OpportunitySummaryTab
3
- } from "../../chunk-4GAWMKMI.mjs";
4
- import "../../chunk-IAE3F7DR.mjs";
5
- import "../../chunk-IOJRDS6V.mjs";
6
- import "../../chunk-OGOYQ7BG.mjs";
3
+ } from "../../chunk-OIKBW2QD.mjs";
4
+ import "../../chunk-JZY6TNIS.mjs";
5
+ import "../../chunk-L4NSRQ3T.mjs";
6
+ import "../../chunk-DQB4EPIS.mjs";
7
7
  import "../../chunk-MN5NYQCL.mjs";
8
- import "../../chunk-7PV3IWCN.mjs";
9
- import "../../chunk-DUJTAXMH.mjs";
10
- import "../../chunk-3GF7OVTP.mjs";
11
- import "../../chunk-U5X52X37.mjs";
12
- import "../../chunk-Y6DWJSKZ.mjs";
13
- import "../../chunk-7XJHLGUV.mjs";
14
- import "../../chunk-EI5F6FMT.mjs";
15
- import "../../chunk-BDYZCBRT.mjs";
16
- import "../../chunk-34NWQURD.mjs";
17
- import "../../chunk-OODBHKG7.mjs";
18
- import "../../chunk-JHJHG4GO.mjs";
19
- import "../../chunk-BKNFWEH2.mjs";
20
- import "../../chunk-MARPPFOJ.mjs";
21
- import "../../chunk-7PYJD5JI.mjs";
22
- import "../../chunk-NSLMILBT.mjs";
23
- import "../../chunk-RGVKLTLH.mjs";
24
- import "../../chunk-GYMYRIZP.mjs";
25
- import "../../chunk-6DZEXFNB.mjs";
26
- import "../../chunk-XREGSKX3.mjs";
27
- import "../../chunk-DBHJ5KC3.mjs";
8
+ import "../../chunk-57ZXILTS.mjs";
9
+ import "../../chunk-ISUA7DSB.mjs";
10
+ import "../../chunk-JTK6VJXY.mjs";
11
+ import "../../chunk-OWFQSXVD.mjs";
12
+ import "../../chunk-6QAFGZC2.mjs";
13
+ import "../../chunk-BS75ICOO.mjs";
14
+ import "../../chunk-WL6WVV47.mjs";
15
+ import "../../chunk-OKTJFDPN.mjs";
16
+ import "../../chunk-DGNHGNYH.mjs";
17
+ import "../../chunk-WE4YKBDE.mjs";
18
+ import "../../chunk-6HIOM2HL.mjs";
19
+ import "../../chunk-M4VYX2PV.mjs";
20
+ import "../../chunk-UNACI2YK.mjs";
21
+ import "../../chunk-P7CEBZM6.mjs";
22
+ import "../../chunk-IKXYTCSB.mjs";
23
+ import "../../chunk-ZEDMKQK2.mjs";
24
+ import "../../chunk-LBTHZSBT.mjs";
25
+ import "../../chunk-P2N2PEFY.mjs";
26
+ import "../../chunk-NOOEKOWY.mjs";
27
+ import "../../chunk-R4HCRDU5.mjs";
28
28
  import "../../chunk-FEZKMUCF.mjs";
29
29
  import "../../chunk-QOJ2DQD6.mjs";
30
- import "../../chunk-VLQZANBF.mjs";
31
- import "../../chunk-FWCSY2DS.mjs";
30
+ import "../../chunk-AFML43VJ.mjs";
31
+ import "../../chunk-WNQUEZJF.mjs";
32
32
  export {
33
33
  OpportunitySummaryTab
34
34
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  PageHeader
3
- } from "../../chunk-NL3ZO62D.mjs";
4
- import "../../chunk-VLQZANBF.mjs";
5
- import "../../chunk-FWCSY2DS.mjs";
3
+ } from "../../chunk-NT4FX27K.mjs";
4
+ import "../../chunk-AFML43VJ.mjs";
5
+ import "../../chunk-WNQUEZJF.mjs";
6
6
  export {
7
7
  PageHeader
8
8
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  PageTopBar
3
- } from "../../chunk-DOEO3CDL.mjs";
4
- import "../../chunk-VLQZANBF.mjs";
5
- import "../../chunk-FWCSY2DS.mjs";
3
+ } from "../../chunk-NB3ZL36B.mjs";
4
+ import "../../chunk-AFML43VJ.mjs";
5
+ import "../../chunk-WNQUEZJF.mjs";
6
6
  export {
7
7
  PageTopBar
8
8
  };
@@ -173,9 +173,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
173
173
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
174
174
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
175
175
  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",
176
- 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",
176
+ 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",
177
177
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
178
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
178
+ "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",
179
179
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
180
180
  link: "text-primary underline-offset-4 hover:underline"
181
181
  },
@@ -8,14 +8,14 @@ import {
8
8
  PaginationNext,
9
9
  PaginationPrevious,
10
10
  TablePagination
11
- } from "../../chunk-PBL4OQV2.mjs";
12
- import "../../chunk-7PYJD5JI.mjs";
13
- import "../../chunk-XREGSKX3.mjs";
14
- import "../../chunk-DBHJ5KC3.mjs";
11
+ } from "../../chunk-FTPBQVQ6.mjs";
12
+ import "../../chunk-ZEDMKQK2.mjs";
13
+ import "../../chunk-NOOEKOWY.mjs";
14
+ import "../../chunk-R4HCRDU5.mjs";
15
15
  import "../../chunk-FEZKMUCF.mjs";
16
16
  import "../../chunk-QOJ2DQD6.mjs";
17
- import "../../chunk-VLQZANBF.mjs";
18
- import "../../chunk-FWCSY2DS.mjs";
17
+ import "../../chunk-AFML43VJ.mjs";
18
+ import "../../chunk-WNQUEZJF.mjs";
19
19
  export {
20
20
  Pagination,
21
21
  PaginationContent,
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ var __export = (target, all) => {
33
+ for (var name in all)
34
+ __defProp(target, name, { get: all[name], enumerable: true });
35
+ };
36
+ var __copyProps = (to, from, except, desc) => {
37
+ if (from && typeof from === "object" || typeof from === "function") {
38
+ for (let key of __getOwnPropNames(from))
39
+ if (!__hasOwnProp.call(to, key) && key !== except)
40
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
41
+ }
42
+ return to;
43
+ };
44
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
45
+
46
+ // src/components/ui/password-strength-tooltip.tsx
47
+ var password_strength_tooltip_exports = {};
48
+ __export(password_strength_tooltip_exports, {
49
+ PasswordStrengthTooltip: () => PasswordStrengthTooltip
50
+ });
51
+ module.exports = __toCommonJS(password_strength_tooltip_exports);
52
+ var import_lucide_react = require("lucide-react");
53
+
54
+ // src/components/ui/popover.tsx
55
+ var import_popover = require("@base-ui/react/popover");
56
+
57
+ // src/lib/utils.ts
58
+ var import_clsx = require("clsx");
59
+ var import_tailwind_merge = require("tailwind-merge");
60
+ var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
61
+ extend: {
62
+ classGroups: {
63
+ "font-size": [
64
+ {
65
+ text: [
66
+ "display-large",
67
+ "display-medium",
68
+ "display-small",
69
+ "h1",
70
+ "h2",
71
+ "h3",
72
+ "h4",
73
+ "h5",
74
+ "h6",
75
+ "body-large",
76
+ "body-medium",
77
+ "body-small",
78
+ "label-large",
79
+ "label-medium",
80
+ "label-small",
81
+ "button",
82
+ "button-xs",
83
+ "caption",
84
+ "overline",
85
+ "code"
86
+ ]
87
+ }
88
+ ]
89
+ }
90
+ }
91
+ });
92
+ function cn(...inputs) {
93
+ return twMerge((0, import_clsx.clsx)(inputs));
94
+ }
95
+
96
+ // src/lib/theme-provider.tsx
97
+ var import_react = require("react");
98
+ var import_jsx_runtime = require("react/jsx-runtime");
99
+ var ThemeVarsContext = (0, import_react.createContext)({});
100
+ function useThemeVars() {
101
+ return (0, import_react.useContext)(ThemeVarsContext);
102
+ }
103
+
104
+ // src/components/ui/popover.tsx
105
+ var import_jsx_runtime2 = require("react/jsx-runtime");
106
+ function Popover(_a) {
107
+ var props = __objRest(_a, []);
108
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Root, __spreadValues({ "data-slot": "popover" }, props));
109
+ }
110
+ function PopoverTrigger(_a) {
111
+ var props = __objRest(_a, []);
112
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Trigger, __spreadValues({ "data-slot": "popover-trigger" }, props));
113
+ }
114
+ function PopoverContent(_a) {
115
+ var _b = _a, {
116
+ className,
117
+ align = "center",
118
+ sideOffset = 4,
119
+ style
120
+ } = _b, props = __objRest(_b, [
121
+ "className",
122
+ "align",
123
+ "sideOffset",
124
+ "style"
125
+ ]);
126
+ const themeVars = useThemeVars();
127
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
128
+ import_popover.Popover.Positioner,
129
+ {
130
+ className: "z-[200]",
131
+ align,
132
+ sideOffset,
133
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
134
+ import_popover.Popover.Popup,
135
+ __spreadValues({
136
+ className: cn(
137
+ "z-50 w-72 border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
138
+ className
139
+ ),
140
+ "data-slot": "popover-content",
141
+ style: __spreadValues(__spreadValues({}, themeVars), style)
142
+ }, props)
143
+ )
144
+ }
145
+ ) });
146
+ }
147
+
148
+ // src/components/ui/password-strength-tooltip.tsx
149
+ var import_jsx_runtime3 = require("react/jsx-runtime");
150
+ var RULES = [
151
+ { label: "Minimum 8 characters", test: (p) => p.length >= 8 },
152
+ { label: "At least one uppercase letter", test: (p) => /[A-Z]/.test(p) },
153
+ { label: "At least one lowercase letter", test: (p) => /[a-z]/.test(p) },
154
+ { label: "At least one number", test: (p) => /\d/.test(p) },
155
+ {
156
+ label: "At least one special character",
157
+ test: (p) => /[^A-Za-z0-9]/.test(p)
158
+ }
159
+ ];
160
+ function PasswordStrengthTooltip({
161
+ open = false,
162
+ password,
163
+ children,
164
+ side = "right"
165
+ }) {
166
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Popover, { open, children: [
167
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children }) }),
168
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
169
+ PopoverContent,
170
+ {
171
+ side,
172
+ align: "start",
173
+ sideOffset: 8,
174
+ onOpenAutoFocus: (e) => e.preventDefault(),
175
+ className: "w-auto max-w-[280px] font-sans",
176
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "flex flex-col gap-1.5", children: RULES.map((rule) => {
177
+ const valid = password ? rule.test(password) : false;
178
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
179
+ "div",
180
+ {
181
+ className: `flex items-center gap-1.5 text-[13px] leading-[18px] ${valid ? "text-success" : "text-destructive"}`,
182
+ children: [
183
+ valid ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.Check, { size: 14, className: "shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.X, { size: 14, className: "shrink-0" }),
184
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: rule.label })
185
+ ]
186
+ },
187
+ rule.label
188
+ );
189
+ }) })
190
+ }
191
+ )
192
+ ] });
193
+ }
194
+ // Annotate the CommonJS export names for ESM import in node:
195
+ 0 && (module.exports = {
196
+ PasswordStrengthTooltip
197
+ });
@@ -0,0 +1,11 @@
1
+ import {
2
+ PasswordStrengthTooltip
3
+ } from "../../chunk-VB5M6OZQ.mjs";
4
+ import "../../chunk-DGNHGNYH.mjs";
5
+ import "../../chunk-FEZKMUCF.mjs";
6
+ import "../../chunk-QOJ2DQD6.mjs";
7
+ import "../../chunk-AFML43VJ.mjs";
8
+ import "../../chunk-WNQUEZJF.mjs";
9
+ export {
10
+ PasswordStrengthTooltip
11
+ };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  PipelineAlerts
3
- } from "../../chunk-UFYSFDER.mjs";
4
- import "../../chunk-VLQZANBF.mjs";
5
- import "../../chunk-FWCSY2DS.mjs";
3
+ } from "../../chunk-KFH36NKF.mjs";
4
+ import "../../chunk-AFML43VJ.mjs";
5
+ import "../../chunk-WNQUEZJF.mjs";
6
6
  export {
7
7
  PipelineAlerts
8
8
  };
@@ -165,9 +165,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
165
165
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
166
166
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
167
167
  destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
168
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
168
+ outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground focus-visible:border-border focus-visible:ring-border/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
169
169
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
170
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
170
+ "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:border-brand-secondary focus-visible:ring-brand-secondary/30",
171
171
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
172
172
  link: "text-primary underline-offset-4 hover:underline"
173
173
  },
@@ -367,6 +367,22 @@ function useThemeVars() {
367
367
  return (0, import_react2.useContext)(ThemeVarsContext);
368
368
  }
369
369
 
370
+ // src/lib/format-currency.ts
371
+ function formatCurrency(value, options) {
372
+ const { decimals = 0, showSign = false } = options != null ? options : {};
373
+ const abs = Math.abs(value);
374
+ const formatted = new Intl.NumberFormat("en-AU", {
375
+ style: "currency",
376
+ currency: "AUD",
377
+ minimumFractionDigits: decimals,
378
+ maximumFractionDigits: decimals
379
+ }).format(abs);
380
+ if (!showSign) return value < 0 ? `-${formatted}` : formatted;
381
+ if (value > 0) return `+${formatted}`;
382
+ if (value < 0) return `-${formatted}`;
383
+ return formatted;
384
+ }
385
+
370
386
  // src/components/ui/badge.tsx
371
387
  var import_class_variance_authority3 = require("class-variance-authority");
372
388
  var import_jsx_runtime6 = require("react/jsx-runtime");
@@ -517,22 +533,6 @@ function DropdownMenuSeparator(_a) {
517
533
  // src/components/ui/opportunity-card.tsx
518
534
  var import_lucide_react6 = require("lucide-react");
519
535
 
520
- // src/lib/format-currency.ts
521
- function formatCurrency(value, options) {
522
- const { decimals = 0, showSign = false } = options != null ? options : {};
523
- const abs = Math.abs(value);
524
- const formatted = new Intl.NumberFormat("en-AU", {
525
- style: "currency",
526
- currency: "AUD",
527
- minimumFractionDigits: decimals,
528
- maximumFractionDigits: decimals
529
- }).format(abs);
530
- if (!showSign) return value < 0 ? `-${formatted}` : formatted;
531
- if (value > 0) return `+${formatted}`;
532
- if (value < 0) return `-${formatted}`;
533
- return formatted;
534
- }
535
-
536
536
  // src/lib/format-date.ts
537
537
  var import_date_fns = require("date-fns");
538
538
  function safeParse(iso) {
@@ -1124,11 +1124,7 @@ function LeadCard({
1124
1124
  // src/components/ui/kanban-column.tsx
1125
1125
  var import_jsx_runtime14 = require("react/jsx-runtime");
1126
1126
  function formatTotalValue(value) {
1127
- return new Intl.NumberFormat("en-AU", {
1128
- style: "currency",
1129
- currency: "AUD",
1130
- maximumFractionDigits: 0
1131
- }).format(value);
1127
+ return formatCurrency(value);
1132
1128
  }
1133
1129
  function growthColor(growth) {
1134
1130
  return growth > 0 ? "var(--color-success-text)" : "var(--color-destructive-text)";
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  PipelineBoard
3
- } from "../../chunk-GHC7LLUX.mjs";
4
- import "../../chunk-R3VSPKNP.mjs";
5
- import "../../chunk-K5A5L6T2.mjs";
6
- import "../../chunk-MBON7YRJ.mjs";
7
- import "../../chunk-EFRENWEJ.mjs";
3
+ } from "../../chunk-ZOWL2L5J.mjs";
4
+ import "../../chunk-YIZHS72Z.mjs";
5
+ import "../../chunk-K4KOD3KR.mjs";
6
+ import "../../chunk-K5QV4TT6.mjs";
8
7
  import "../../chunk-MN5NYQCL.mjs";
9
- import "../../chunk-7PV3IWCN.mjs";
10
- import "../../chunk-EI5F6FMT.mjs";
11
- import "../../chunk-BDYZCBRT.mjs";
12
- import "../../chunk-BKNFWEH2.mjs";
13
- import "../../chunk-MARPPFOJ.mjs";
14
- import "../../chunk-FH6QVUVZ.mjs";
15
- import "../../chunk-RGVKLTLH.mjs";
16
- import "../../chunk-7YAU5CY6.mjs";
17
- import "../../chunk-GYMYRIZP.mjs";
18
- import "../../chunk-XREGSKX3.mjs";
19
- import "../../chunk-DBHJ5KC3.mjs";
8
+ import "../../chunk-RSUIPKGX.mjs";
9
+ import "../../chunk-OWFQSXVD.mjs";
10
+ import "../../chunk-6QAFGZC2.mjs";
11
+ import "../../chunk-WL6WVV47.mjs";
12
+ import "../../chunk-M4VYX2PV.mjs";
13
+ import "../../chunk-UNACI2YK.mjs";
14
+ import "../../chunk-2GIYVERS.mjs";
15
+ import "../../chunk-IKXYTCSB.mjs";
16
+ import "../../chunk-JVMXMFBB.mjs";
17
+ import "../../chunk-LBTHZSBT.mjs";
18
+ import "../../chunk-NOOEKOWY.mjs";
19
+ import "../../chunk-R4HCRDU5.mjs";
20
20
  import "../../chunk-FEZKMUCF.mjs";
21
21
  import "../../chunk-QOJ2DQD6.mjs";
22
- import "../../chunk-VLQZANBF.mjs";
23
- import "../../chunk-FWCSY2DS.mjs";
22
+ import "../../chunk-AFML43VJ.mjs";
23
+ import "../../chunk-WNQUEZJF.mjs";
24
24
  export {
25
25
  PipelineBoard
26
26
  };
@@ -82,15 +82,21 @@ function useThemeVars() {
82
82
  return (0, import_react.useContext)(ThemeVarsContext);
83
83
  }
84
84
 
85
+ // src/lib/format-currency.ts
86
+ function formatCurrencyAbbrev(value) {
87
+ const abs = Math.abs(value);
88
+ const sign = value < 0 ? "-" : "";
89
+ if (abs >= 1e9)
90
+ return `${sign}$${(abs / 1e9).toFixed(1)}B`;
91
+ if (abs >= 1e6) return `${sign}$${(abs / 1e6).toFixed(1)}M`;
92
+ if (abs >= 1e3) return `${sign}$${(abs / 1e3).toFixed(0)}K`;
93
+ return `${sign}$${abs.toFixed(0)}`;
94
+ }
95
+
85
96
  // src/components/ui/pipeline-chart.tsx
86
97
  var import_jsx_runtime2 = require("react/jsx-runtime");
87
98
  function formatValue(v) {
88
- return new Intl.NumberFormat("en-AU", {
89
- style: "currency",
90
- currency: "AUD",
91
- notation: "compact",
92
- maximumFractionDigits: 1
93
- }).format(v);
99
+ return formatCurrencyAbbrev(v);
94
100
  }
95
101
  var FALLBACK_COLORS = [
96
102
  "var(--color-stage-1)",
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  PipelineChart
3
- } from "../../chunk-RGU7HOEC.mjs";
3
+ } from "../../chunk-SET2ANTY.mjs";
4
+ import "../../chunk-MN5NYQCL.mjs";
4
5
  import "../../chunk-FEZKMUCF.mjs";
5
6
  import "../../chunk-QOJ2DQD6.mjs";
6
- import "../../chunk-VLQZANBF.mjs";
7
- import "../../chunk-FWCSY2DS.mjs";
7
+ import "../../chunk-AFML43VJ.mjs";
8
+ import "../../chunk-WNQUEZJF.mjs";
8
9
  export {
9
10
  PipelineChart
10
11
  };
@@ -65,7 +65,7 @@ __export(pipeline_dialogs_exports, {
65
65
  });
66
66
  module.exports = __toCommonJS(pipeline_dialogs_exports);
67
67
  var React6 = __toESM(require("react"));
68
- var import_date_fns2 = require("date-fns");
68
+ var import_date_fns3 = require("date-fns");
69
69
 
70
70
  // src/lib/utils.ts
71
71
  var import_clsx = require("clsx");
@@ -180,9 +180,9 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
180
180
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
181
181
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
182
182
  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",
183
- 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",
183
+ 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",
184
184
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
185
- "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
185
+ "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",
186
186
  ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
187
187
  link: "text-primary underline-offset-4 hover:underline"
188
188
  },
@@ -669,7 +669,7 @@ function ToggleGroupItem(_a) {
669
669
 
670
670
  // src/components/ui/date-picker.tsx
671
671
  var React5 = __toESM(require("react"));
672
- var import_date_fns = require("date-fns");
672
+ var import_date_fns2 = require("date-fns");
673
673
  var import_lucide_react5 = require("lucide-react");
674
674
 
675
675
  // src/components/ui/input.tsx
@@ -695,6 +695,22 @@ function Input(_a) {
695
695
  var React4 = __toESM(require("react"));
696
696
  var import_lucide_react4 = require("lucide-react");
697
697
  var import_react_day_picker = require("react-day-picker");
698
+
699
+ // src/lib/format-date.ts
700
+ var import_date_fns = require("date-fns");
701
+ function safeParse(iso) {
702
+ return (0, import_date_fns.parseISO)(iso);
703
+ }
704
+ function formatDateShort(iso) {
705
+ if (!iso) return "\u2014";
706
+ try {
707
+ return (0, import_date_fns.format)(safeParse(iso), "dd MMM yyyy");
708
+ } catch (e) {
709
+ return iso;
710
+ }
711
+ }
712
+
713
+ // src/components/ui/calendar.tsx
698
714
  var import_jsx_runtime8 = require("react/jsx-runtime");
699
715
  function CalendarRoot(_a) {
700
716
  var _b = _a, {
@@ -879,7 +895,7 @@ function CalendarDayButton(_a) {
879
895
  defaultClassNames.day,
880
896
  className
881
897
  ),
882
- "data-day": day.date.toLocaleDateString(),
898
+ "data-day": formatDateShort(day.date.toISOString()),
883
899
  "data-range-end": modifiers.range_end,
884
900
  "data-range-middle": modifiers.range_middle,
885
901
  "data-range-start": modifiers.range_start,
@@ -968,9 +984,9 @@ function DatePicker({
968
984
  const timeValue = value ? `${String(value.getHours()).padStart(2, "0")}:${String(value.getMinutes()).padStart(2, "0")}` : "";
969
985
  let displayValue;
970
986
  if (value && showTimePicker) {
971
- displayValue = (0, import_date_fns.format)(value, "dd/MM/yyyy HH:mm");
987
+ displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy HH:mm");
972
988
  } else if (value) {
973
- displayValue = (0, import_date_fns.format)(value, "dd/MM/yyyy");
989
+ displayValue = (0, import_date_fns2.format)(value, "dd/MM/yyyy");
974
990
  }
975
991
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Popover, { onOpenChange: disabled ? void 0 : setOpen, open, children: [
976
992
  /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
@@ -1150,15 +1166,15 @@ function PutOnHoldDialog({
1150
1166
  }) {
1151
1167
  const [duration, setDuration] = React6.useState("90");
1152
1168
  const [customDate, setCustomDate] = React6.useState();
1153
- const today = React6.useMemo(() => (0, import_date_fns2.startOfDay)(/* @__PURE__ */ new Date()), []);
1169
+ const today = React6.useMemo(() => (0, import_date_fns3.startOfDay)(/* @__PURE__ */ new Date()), []);
1154
1170
  const resolvedDate = React6.useMemo(() => {
1155
1171
  if (duration === "custom") return customDate;
1156
- return (0, import_date_fns2.addDays)(today, parseInt(duration, 10));
1172
+ return (0, import_date_fns3.addDays)(today, parseInt(duration, 10));
1157
1173
  }, [duration, customDate, today]);
1158
1174
  const isValid = resolvedDate !== void 0 && resolvedDate >= today;
1159
1175
  function handleSave() {
1160
1176
  if (!resolvedDate) return;
1161
- onSave((0, import_date_fns2.format)(resolvedDate, "yyyy-MM-dd"));
1177
+ onSave((0, import_date_fns3.format)(resolvedDate, "yyyy-MM-dd"));
1162
1178
  }
1163
1179
  React6.useEffect(() => {
1164
1180
  if (open) {
@@ -1202,12 +1218,12 @@ function PutOnHoldDialog({
1202
1218
  ) : resolvedDate && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex h-9 items-center border border-input bg-muted/30 px-3 text-sm text-muted-foreground", children: [
1203
1219
  "Hold until:",
1204
1220
  " ",
1205
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "ml-1 font-medium text-foreground", children: (0, import_date_fns2.format)(resolvedDate, "dd MMM yyyy") })
1221
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "ml-1 font-medium text-foreground", children: (0, import_date_fns3.format)(resolvedDate, "dd MMM yyyy") })
1206
1222
  ] }),
1207
1223
  duration === "custom" && customDate && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
1208
1224
  "Hold until:",
1209
1225
  " ",
1210
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "font-medium text-foreground", children: (0, import_date_fns2.format)(customDate, "dd MMM yyyy") })
1226
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "font-medium text-foreground", children: (0, import_date_fns3.format)(customDate, "dd MMM yyyy") })
1211
1227
  ] })
1212
1228
  ] }),
1213
1229
  /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DialogFooter, { children: [
@@ -2,21 +2,22 @@ import {
2
2
  ChangePriorityDialog,
3
3
  DeleteOpportunityDialog,
4
4
  PutOnHoldDialog
5
- } from "../../chunk-5FQIKDKP.mjs";
6
- import "../../chunk-DUJTAXMH.mjs";
7
- import "../../chunk-3GF7OVTP.mjs";
8
- import "../../chunk-EI5F6FMT.mjs";
9
- import "../../chunk-BDYZCBRT.mjs";
10
- import "../../chunk-OODBHKG7.mjs";
11
- import "../../chunk-7PYJD5JI.mjs";
12
- import "../../chunk-GYMYRIZP.mjs";
13
- import "../../chunk-6DZEXFNB.mjs";
14
- import "../../chunk-XREGSKX3.mjs";
15
- import "../../chunk-DBHJ5KC3.mjs";
5
+ } from "../../chunk-THVO2N47.mjs";
6
+ import "../../chunk-OWFQSXVD.mjs";
7
+ import "../../chunk-6QAFGZC2.mjs";
8
+ import "../../chunk-OKTJFDPN.mjs";
9
+ import "../../chunk-DGNHGNYH.mjs";
10
+ import "../../chunk-6HIOM2HL.mjs";
11
+ import "../../chunk-M4VYX2PV.mjs";
12
+ import "../../chunk-ZEDMKQK2.mjs";
13
+ import "../../chunk-LBTHZSBT.mjs";
14
+ import "../../chunk-P2N2PEFY.mjs";
15
+ import "../../chunk-NOOEKOWY.mjs";
16
+ import "../../chunk-R4HCRDU5.mjs";
16
17
  import "../../chunk-FEZKMUCF.mjs";
17
18
  import "../../chunk-QOJ2DQD6.mjs";
18
- import "../../chunk-VLQZANBF.mjs";
19
- import "../../chunk-FWCSY2DS.mjs";
19
+ import "../../chunk-AFML43VJ.mjs";
20
+ import "../../chunk-WNQUEZJF.mjs";
20
21
  export {
21
22
  ChangePriorityDialog,
22
23
  DeleteOpportunityDialog,