@wealthx/shadcn 1.2.2 → 1.3.1

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 (230) hide show
  1. package/.turbo/turbo-build.log +193 -149
  2. package/CHANGELOG.md +28 -0
  3. package/dist/{chunk-4Y6R4WEC.mjs → chunk-2A5RRQGG.mjs} +9 -22
  4. package/dist/{chunk-TS2ZX2VS.mjs → chunk-2UM72RJ7.mjs} +11 -15
  5. package/dist/{chunk-A56YQQHG.mjs → chunk-3NCUZIFP.mjs} +2 -2
  6. package/dist/chunk-3OYFOX3X.mjs +79 -0
  7. package/dist/{chunk-RP3SQYA3.mjs → chunk-3TTACBDP.mjs} +9 -4
  8. package/dist/chunk-4GAWMKMI.mjs +710 -0
  9. package/dist/{chunk-VGSESELX.mjs → chunk-5FQIKDKP.mjs} +5 -5
  10. package/dist/{chunk-K3JYD4IU.mjs → chunk-5IS7G74I.mjs} +11 -4
  11. package/dist/chunk-6AW4KJHE.mjs +235 -0
  12. package/dist/chunk-6CR5N2JW.mjs +302 -0
  13. package/dist/{chunk-XIRTEFKH.mjs → chunk-6DZEXFNB.mjs} +36 -8
  14. package/dist/chunk-6O6KD7CE.mjs +271 -0
  15. package/dist/chunk-7PV3IWCN.mjs +33 -0
  16. package/dist/{chunk-SPJ5KXW7.mjs → chunk-7S5AESZO.mjs} +5 -5
  17. package/dist/{chunk-RYCLWMZ7.mjs → chunk-ABFDMHOR.mjs} +9 -7
  18. package/dist/{chunk-SWGT756Z.mjs → chunk-AMQZRHEZ.mjs} +10 -4
  19. package/dist/{chunk-WAZD7NFU.mjs → chunk-BKNFWEH2.mjs} +6 -6
  20. package/dist/{chunk-CLIN5525.mjs → chunk-C7CQJNMR.mjs} +1 -1
  21. package/dist/{chunk-D4ILTPOG.mjs → chunk-CFMQP5QS.mjs} +5 -4
  22. package/dist/{chunk-VPBN3WOO.mjs → chunk-DGHAXJBN.mjs} +9 -7
  23. package/dist/chunk-DOEO3CDL.mjs +27 -0
  24. package/dist/{chunk-5MEWU56Z.mjs → chunk-DUJTAXMH.mjs} +11 -6
  25. package/dist/{chunk-GGM2UYGG.mjs → chunk-EBXQWIYG.mjs} +10 -4
  26. package/dist/chunk-EWRB4PAD.mjs +468 -0
  27. package/dist/{chunk-ZSHYDDRB.mjs → chunk-FAKPBKLT.mjs} +6 -2
  28. package/dist/{chunk-A6AAWBPF.mjs → chunk-GHC7LLUX.mjs} +13 -4
  29. package/dist/chunk-HBZLGDIN.mjs +507 -0
  30. package/dist/{chunk-SIZMLSRU.mjs → chunk-HISNT2MG.mjs} +8 -6
  31. package/dist/{chunk-CGH4DRNG.mjs → chunk-HVY6KCCF.mjs} +10 -7
  32. package/dist/chunk-I3RZS7V2.mjs +136 -0
  33. package/dist/chunk-IAE3F7DR.mjs +1962 -0
  34. package/dist/{chunk-UT4KJR7V.mjs → chunk-IHMFS7NZ.mjs} +35 -74
  35. package/dist/{chunk-PCPLO5HT.mjs → chunk-IOJRDS6V.mjs} +96 -14
  36. package/dist/{chunk-LHYCMLVA.mjs → chunk-JKGDCQTZ.mjs} +11 -4
  37. package/dist/{chunk-H45TKD34.mjs → chunk-JMHR3YGZ.mjs} +1 -1
  38. package/dist/{chunk-4MN6UQHG.mjs → chunk-K5A5L6T2.mjs} +17 -39
  39. package/dist/chunk-LV35NGVG.mjs +272 -0
  40. package/dist/{chunk-FZIXGLMV.mjs → chunk-M3FV7LOK.mjs} +5 -12
  41. package/dist/{chunk-FMAXJ2SI.mjs → chunk-MBON7YRJ.mjs} +1 -1
  42. package/dist/chunk-MIZQHHUO.mjs +441 -0
  43. package/dist/chunk-MLNEWRWV.mjs +449 -0
  44. package/dist/chunk-MN5NYQCL.mjs +29 -0
  45. package/dist/chunk-NL3ZO62D.mjs +31 -0
  46. package/dist/{chunk-Q76O3RIQ.mjs → chunk-NMOI6CQD.mjs} +1 -1
  47. package/dist/{chunk-P6AM5V7O.mjs → chunk-OODBHKG7.mjs} +1 -1
  48. package/dist/chunk-PBL4OQV2.mjs +283 -0
  49. package/dist/{chunk-Y4QFWRNR.mjs → chunk-PU4YZQXV.mjs} +17 -18
  50. package/dist/chunk-Q2BGOAMG.mjs +202 -0
  51. package/dist/chunk-QMY3AZJH.mjs +80 -0
  52. package/dist/{chunk-BL3DXM2X.mjs → chunk-QZ4RE6NA.mjs} +11 -4
  53. package/dist/{chunk-VACKZOMY.mjs → chunk-R3VSPKNP.mjs} +3 -3
  54. package/dist/{chunk-OPNQAVVH.mjs → chunk-RJI6GKVF.mjs} +8 -6
  55. package/dist/{chunk-WG6JGJXB.mjs → chunk-T4BJLT57.mjs} +1 -1
  56. package/dist/chunk-UMTOX62O.mjs +415 -0
  57. package/dist/{chunk-7MMXNK3C.mjs → chunk-VLARHE5V.mjs} +8 -6
  58. package/dist/{chunk-2I5S2AMY.mjs → chunk-XREGSKX3.mjs} +2 -2
  59. package/dist/{chunk-JNQORUPP.mjs → chunk-YJG55G2H.mjs} +14 -11
  60. package/dist/components/ui/add-column-modal.js +42 -14
  61. package/dist/components/ui/add-column-modal.mjs +5 -5
  62. package/dist/components/ui/add-lead-modal.js +42 -11
  63. package/dist/components/ui/add-lead-modal.mjs +3 -3
  64. package/dist/components/ui/advisor-card.js +530 -0
  65. package/dist/components/ui/advisor-card.mjs +15 -0
  66. package/dist/components/ui/ai-assistant-drawer.js +11 -10
  67. package/dist/components/ui/ai-assistant-drawer.mjs +3 -3
  68. package/dist/components/ui/alert-dialog.js +2 -2
  69. package/dist/components/ui/alert-dialog.mjs +2 -2
  70. package/dist/components/ui/appointment-action-dialogs.js +1160 -0
  71. package/dist/components/ui/appointment-action-dialogs.mjs +23 -0
  72. package/dist/components/ui/appointment-availability-settings.js +1590 -0
  73. package/dist/components/ui/appointment-availability-settings.mjs +23 -0
  74. package/dist/components/ui/appointment-book-dialog.js +1744 -0
  75. package/dist/components/ui/appointment-book-dialog.mjs +27 -0
  76. package/dist/components/ui/appointment-calendar-view.js +833 -0
  77. package/dist/components/ui/appointment-calendar-view.mjs +14 -0
  78. package/dist/components/ui/appointment-detail-sheet.js +1517 -0
  79. package/dist/components/ui/appointment-detail-sheet.mjs +24 -0
  80. package/dist/components/ui/appointment-gmail-connect.js +467 -0
  81. package/dist/components/ui/appointment-gmail-connect.mjs +14 -0
  82. package/dist/components/ui/appointment-mini-card.js +345 -0
  83. package/dist/components/ui/appointment-mini-card.mjs +11 -0
  84. package/dist/components/ui/appointment-time-slot-picker.js +311 -0
  85. package/dist/components/ui/appointment-time-slot-picker.mjs +13 -0
  86. package/dist/components/ui/appointment-upcoming-card.js +1268 -0
  87. package/dist/components/ui/appointment-upcoming-card.mjs +21 -0
  88. package/dist/components/ui/backoffice-alert-history-chart.js +11 -5
  89. package/dist/components/ui/backoffice-alert-history-chart.mjs +5 -4
  90. package/dist/components/ui/backoffice-alerts-chart.js +786 -0
  91. package/dist/components/ui/backoffice-alerts-chart.mjs +19 -0
  92. package/dist/components/ui/backoffice-connections-chart.js +817 -0
  93. package/dist/components/ui/backoffice-connections-chart.mjs +19 -0
  94. package/dist/components/ui/backoffice-contact-history-chart.js +11 -5
  95. package/dist/components/ui/backoffice-contact-history-chart.mjs +5 -4
  96. package/dist/components/ui/badge.js +6 -6
  97. package/dist/components/ui/badge.mjs +1 -1
  98. package/dist/components/ui/borrowing-capacity-line-chart.js +30 -21
  99. package/dist/components/ui/borrowing-capacity-line-chart.mjs +5 -4
  100. package/dist/components/ui/button.js +2 -2
  101. package/dist/components/ui/button.mjs +1 -1
  102. package/dist/components/ui/calendar.js +2 -2
  103. package/dist/components/ui/calendar.mjs +2 -2
  104. package/dist/components/ui/card.js +1 -1
  105. package/dist/components/ui/card.mjs +1 -1
  106. package/dist/components/ui/cash-balance-line-chart.js +31 -23
  107. package/dist/components/ui/cash-balance-line-chart.mjs +5 -4
  108. package/dist/components/ui/cashflow-bar-chart.js +12 -5
  109. package/dist/components/ui/cashflow-bar-chart.mjs +5 -4
  110. package/dist/components/ui/chip.js +97 -18
  111. package/dist/components/ui/chip.mjs +3 -2
  112. package/dist/components/ui/color-picker.js +158 -28
  113. package/dist/components/ui/color-picker.mjs +3 -1
  114. package/dist/components/ui/data-table.js +140 -119
  115. package/dist/components/ui/data-table.mjs +3 -2
  116. package/dist/components/ui/date-picker.js +48 -27
  117. package/dist/components/ui/date-picker.mjs +4 -3
  118. package/dist/components/ui/dialog.js +37 -9
  119. package/dist/components/ui/dialog.mjs +2 -2
  120. package/dist/components/ui/expense-bar-chart.js +12 -5
  121. package/dist/components/ui/expense-bar-chart.mjs +5 -4
  122. package/dist/components/ui/field.mjs +2 -2
  123. package/dist/components/ui/financial-cards.js +322 -155
  124. package/dist/components/ui/financial-cards.mjs +5 -3
  125. package/dist/components/ui/financial-drawers.js +2 -2
  126. package/dist/components/ui/financial-drawers.mjs +3 -3
  127. package/dist/components/ui/financial-sections.js +14 -10
  128. package/dist/components/ui/financial-sections.mjs +6 -5
  129. package/dist/components/ui/income-bar-chart.js +12 -5
  130. package/dist/components/ui/income-bar-chart.mjs +5 -4
  131. package/dist/components/ui/input-group.js +2 -2
  132. package/dist/components/ui/input-group.mjs +2 -2
  133. package/dist/components/ui/kanban-column.js +52 -44
  134. package/dist/components/ui/kanban-column.mjs +7 -5
  135. package/dist/components/ui/opportunity-card.js +52 -44
  136. package/dist/components/ui/opportunity-card.mjs +6 -4
  137. package/dist/components/ui/opportunity-edit-modals.js +1367 -1263
  138. package/dist/components/ui/opportunity-edit-modals.mjs +8 -8
  139. package/dist/components/ui/opportunity-summary-tab.js +2744 -2157
  140. package/dist/components/ui/opportunity-summary-tab.mjs +14 -14
  141. package/dist/components/ui/page-header.js +92 -0
  142. package/dist/components/ui/page-header.mjs +8 -0
  143. package/dist/components/ui/page-top-bar.js +88 -0
  144. package/dist/components/ui/page-top-bar.mjs +8 -0
  145. package/dist/components/ui/pagination.js +303 -19
  146. package/dist/components/ui/pagination.mjs +11 -4
  147. package/dist/components/ui/pipeline-board.js +205 -191
  148. package/dist/components/ui/pipeline-board.mjs +9 -7
  149. package/dist/components/ui/pipeline-dialogs.js +114 -65
  150. package/dist/components/ui/pipeline-dialogs.mjs +7 -6
  151. package/dist/components/ui/pipeline-primitives.js +6 -6
  152. package/dist/components/ui/pipeline-primitives.mjs +2 -2
  153. package/dist/components/ui/property-cashflow-doughnut-chart.js +14 -12
  154. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +5 -4
  155. package/dist/components/ui/property-debt-equity-doughnut-chart.js +14 -12
  156. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +5 -4
  157. package/dist/components/ui/property-mobile-estimate-line-chart.js +16 -14
  158. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +5 -4
  159. package/dist/components/ui/sidebar-nav.js +426 -191
  160. package/dist/components/ui/sidebar-nav.mjs +5 -1
  161. package/dist/components/ui/stage-timeline.js +6 -6
  162. package/dist/components/ui/stage-timeline.mjs +3 -3
  163. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +18 -16
  164. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +5 -4
  165. package/dist/components/ui/transactions-income-expense-bar-chart.js +28 -12
  166. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +5 -4
  167. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +18 -16
  168. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +5 -4
  169. package/dist/index.js +12258 -8611
  170. package/dist/index.mjs +258 -190
  171. package/dist/styles.css +1 -1
  172. package/package.json +71 -1
  173. package/src/components/index.tsx +115 -9
  174. package/src/components/ui/add-column-modal.tsx +7 -7
  175. package/src/components/ui/add-lead-modal.tsx +6 -3
  176. package/src/components/ui/advisor-card.tsx +284 -0
  177. package/src/components/ui/ai-assistant-drawer.tsx +4 -3
  178. package/src/components/ui/appointment-action-dialogs.tsx +297 -0
  179. package/src/components/ui/appointment-availability-settings.tsx +645 -0
  180. package/src/components/ui/appointment-book-dialog.tsx +618 -0
  181. package/src/components/ui/appointment-calendar-view.tsx +510 -0
  182. package/src/components/ui/appointment-detail-sheet.tsx +415 -0
  183. package/src/components/ui/appointment-gmail-connect.tsx +188 -0
  184. package/src/components/ui/appointment-mini-card.tsx +104 -0
  185. package/src/components/ui/appointment-time-slot-picker.tsx +123 -0
  186. package/src/components/ui/appointment-upcoming-card.tsx +635 -0
  187. package/src/components/ui/backoffice-alert-history-chart.tsx +10 -2
  188. package/src/components/ui/backoffice-alerts-chart.tsx +312 -0
  189. package/src/components/ui/backoffice-connections-chart.tsx +339 -0
  190. package/src/components/ui/backoffice-contact-history-chart.tsx +10 -2
  191. package/src/components/ui/badge.tsx +12 -6
  192. package/src/components/ui/borrowing-capacity-line-chart.tsx +4 -11
  193. package/src/components/ui/button.tsx +2 -2
  194. package/src/components/ui/card.tsx +1 -1
  195. package/src/components/ui/cash-balance-line-chart.tsx +4 -23
  196. package/src/components/ui/cashflow-bar-chart.tsx +9 -2
  197. package/src/components/ui/chart-shared.tsx +4 -11
  198. package/src/components/ui/chip.tsx +23 -19
  199. package/src/components/ui/color-picker.tsx +4 -2
  200. package/src/components/ui/data-table.tsx +28 -74
  201. package/src/components/ui/date-picker.tsx +42 -37
  202. package/src/components/ui/dialog.tsx +72 -6
  203. package/src/components/ui/expense-bar-chart.tsx +11 -2
  204. package/src/components/ui/financial-cards.tsx +99 -10
  205. package/src/components/ui/income-bar-chart.tsx +11 -2
  206. package/src/components/ui/opportunity-card.tsx +10 -39
  207. package/src/components/ui/opportunity-edit-modals.tsx +98 -36
  208. package/src/components/ui/opportunity-summary-tab.tsx +548 -232
  209. package/src/components/ui/page-header.tsx +57 -0
  210. package/src/components/ui/page-top-bar.tsx +48 -0
  211. package/src/components/ui/pagination.tsx +171 -22
  212. package/src/components/ui/pipeline-board.tsx +12 -5
  213. package/src/components/ui/property-cashflow-doughnut-chart.tsx +3 -1
  214. package/src/components/ui/property-debt-equity-doughnut-chart.tsx +3 -1
  215. package/src/components/ui/property-mobile-estimate-line-chart.tsx +3 -1
  216. package/src/components/ui/sidebar-nav.tsx +213 -157
  217. package/src/components/ui/transactions-expense-categories-doughnut-chart.tsx +3 -1
  218. package/src/components/ui/transactions-income-expense-bar-chart.tsx +12 -9
  219. package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +3 -1
  220. package/src/lib/format-currency.ts +44 -0
  221. package/src/lib/format-date.ts +50 -0
  222. package/src/lib/opportunity-constants.ts +12 -0
  223. package/src/styles/globals.css +17 -15
  224. package/src/styles/styles-css.ts +1 -1
  225. package/tsup.config.ts +14 -0
  226. package/dist/chunk-S4QRUQNW.mjs +0 -475
  227. package/dist/chunk-URGMJAE3.mjs +0 -1885
  228. package/dist/chunk-WNGWBVLV.mjs +0 -148
  229. package/dist/chunk-ZRSDX6OW.mjs +0 -385
  230. package/dist/{chunk-LLVQKSU3.mjs → chunk-GD4BJDJR.mjs} +3 -3
@@ -6,6 +6,9 @@ import {
6
6
  TableHeader,
7
7
  TableRow
8
8
  } from "./chunk-66MI7Q4B.mjs";
9
+ import {
10
+ PaginationNavButtons
11
+ } from "./chunk-PBL4OQV2.mjs";
9
12
  import {
10
13
  DropdownMenu,
11
14
  DropdownMenuCheckboxItem,
@@ -33,7 +36,7 @@ import {
33
36
  } from "./chunk-GYMYRIZP.mjs";
34
37
  import {
35
38
  Button
36
- } from "./chunk-2I5S2AMY.mjs";
39
+ } from "./chunk-XREGSKX3.mjs";
37
40
  import {
38
41
  cn
39
42
  } from "./chunk-VLQZANBF.mjs";
@@ -56,10 +59,6 @@ import {
56
59
  ArrowUpDown,
57
60
  ArrowUp,
58
61
  ArrowDown,
59
- ChevronLeftIcon,
60
- ChevronRightIcon,
61
- ChevronsLeftIcon,
62
- ChevronsRightIcon,
63
62
  SlidersHorizontal
64
63
  } from "lucide-react";
65
64
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -198,99 +197,62 @@ function DataTablePagination({
198
197
  return /* @__PURE__ */ jsxs(
199
198
  "div",
200
199
  {
201
- className: "flex items-center justify-between gap-4 py-4",
200
+ className: "flex items-center gap-4 py-4",
202
201
  "data-slot": "data-table-pagination",
203
202
  children: [
204
- /* @__PURE__ */ jsx("p", { className: "text-body-small text-muted-foreground", children: table.getFilteredSelectedRowModel().rows.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
203
+ table.getFilteredSelectedRowModel().rows.length > 0 && /* @__PURE__ */ jsxs("span", { className: "text-body-small text-muted-foreground", children: [
205
204
  table.getFilteredSelectedRowModel().rows.length,
206
205
  " of",
207
206
  " ",
208
207
  table.getFilteredRowModel().rows.length,
209
208
  " row(s) selected."
210
- ] }) }),
211
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-6", children: [
209
+ ] }),
210
+ /* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-6", children: [
212
211
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
213
- /* @__PURE__ */ jsx("p", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: "Rows per page" }),
212
+ /* @__PURE__ */ jsx("span", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: "Rows per page" }),
214
213
  /* @__PURE__ */ jsxs(
215
214
  Select,
216
215
  {
217
- onValueChange: (value) => {
218
- table.setPageSize(Number(value));
219
- },
216
+ onValueChange: (value) => table.setPageSize(Number(value)),
220
217
  value: `${table.getState().pagination.pageSize}`,
221
218
  children: [
222
- /* @__PURE__ */ jsx(SelectTrigger, { className: "w-[70px]", size: "sm", children: /* @__PURE__ */ jsx(
223
- SelectValue,
219
+ /* @__PURE__ */ jsx(
220
+ SelectTrigger,
224
221
  {
225
- placeholder: `${table.getState().pagination.pageSize}`
222
+ "aria-label": "Rows per page",
223
+ className: "w-[70px]",
224
+ size: "sm",
225
+ children: /* @__PURE__ */ jsx(
226
+ SelectValue,
227
+ {
228
+ placeholder: `${table.getState().pagination.pageSize}`
229
+ }
230
+ )
226
231
  }
227
- ) }),
232
+ ),
228
233
  /* @__PURE__ */ jsx(SelectContent, { children: pageSizeOptions.map((pageSize) => /* @__PURE__ */ jsx(SelectItem, { value: `${pageSize}`, children: pageSize }, pageSize)) })
229
234
  ]
230
235
  }
231
236
  )
232
237
  ] }),
233
- /* @__PURE__ */ jsxs("p", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: [
238
+ /* @__PURE__ */ jsxs("span", { className: "text-body-small text-muted-foreground whitespace-nowrap", children: [
234
239
  "Page ",
235
240
  table.getState().pagination.pageIndex + 1,
236
241
  " of",
237
242
  " ",
238
243
  table.getPageCount()
239
244
  ] }),
240
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
241
- /* @__PURE__ */ jsx(
242
- Button,
243
- {
244
- "aria-label": "Go to first page",
245
- disabled: !table.getCanPreviousPage(),
246
- onClick: () => {
247
- table.setPageIndex(0);
248
- },
249
- size: "icon-sm",
250
- variant: "outline",
251
- children: /* @__PURE__ */ jsx(ChevronsLeftIcon, { className: "size-4" })
252
- }
253
- ),
254
- /* @__PURE__ */ jsx(
255
- Button,
256
- {
257
- "aria-label": "Go to previous page",
258
- disabled: !table.getCanPreviousPage(),
259
- onClick: () => {
260
- table.previousPage();
261
- },
262
- size: "icon-sm",
263
- variant: "outline",
264
- children: /* @__PURE__ */ jsx(ChevronLeftIcon, { className: "size-4" })
265
- }
266
- ),
267
- /* @__PURE__ */ jsx(
268
- Button,
269
- {
270
- "aria-label": "Go to next page",
271
- disabled: !table.getCanNextPage(),
272
- onClick: () => {
273
- table.nextPage();
274
- },
275
- size: "icon-sm",
276
- variant: "outline",
277
- children: /* @__PURE__ */ jsx(ChevronRightIcon, { className: "size-4" })
278
- }
279
- ),
280
- /* @__PURE__ */ jsx(
281
- Button,
282
- {
283
- "aria-label": "Go to last page",
284
- disabled: !table.getCanNextPage(),
285
- onClick: () => {
286
- table.setPageIndex(table.getPageCount() - 1);
287
- },
288
- size: "icon-sm",
289
- variant: "outline",
290
- children: /* @__PURE__ */ jsx(ChevronsRightIcon, { className: "size-4" })
291
- }
292
- )
293
- ] })
245
+ /* @__PURE__ */ jsx(
246
+ PaginationNavButtons,
247
+ {
248
+ hasNext: table.getCanNextPage(),
249
+ hasPrev: table.getCanPreviousPage(),
250
+ onFirst: () => table.setPageIndex(0),
251
+ onLast: () => table.setPageIndex(table.getPageCount() - 1),
252
+ onNext: () => table.nextPage(),
253
+ onPrev: () => table.previousPage()
254
+ }
255
+ )
294
256
  ] })
295
257
  ]
296
258
  }
@@ -369,8 +331,7 @@ function DataTable({
369
331
  },
370
332
  onColumnFiltersChange: (updater) => {
371
333
  const next = typeof updater === "function" ? updater(columnFilters) : updater;
372
- if (controlledColumnFilters === void 0)
373
- setInternalColumnFilters(next);
334
+ if (controlledColumnFilters === void 0) setInternalColumnFilters(next);
374
335
  onColumnFiltersChangeProp == null ? void 0 : onColumnFiltersChangeProp(next);
375
336
  },
376
337
  onPaginationChange: (updater) => {
@@ -1,7 +1,3 @@
1
- import {
2
- RadioGroup,
3
- RadioGroupItem
4
- } from "./chunk-7XJHLGUV.mjs";
5
1
  import {
6
2
  FinancialDetailField,
7
3
  FinancialLvrBar,
@@ -9,9 +5,19 @@ import {
9
5
  FinancialSubtotalBlock,
10
6
  FinancialSubtotalFrame
11
7
  } from "./chunk-OGOYQ7BG.mjs";
8
+ import {
9
+ formatDateShort
10
+ } from "./chunk-7PV3IWCN.mjs";
11
+ import {
12
+ RadioGroup,
13
+ RadioGroupItem
14
+ } from "./chunk-7XJHLGUV.mjs";
12
15
  import {
13
16
  Badge
14
- } from "./chunk-WAZD7NFU.mjs";
17
+ } from "./chunk-BKNFWEH2.mjs";
18
+ import {
19
+ Button
20
+ } from "./chunk-XREGSKX3.mjs";
15
21
  import {
16
22
  cn
17
23
  } from "./chunk-VLQZANBF.mjs";
@@ -70,12 +76,13 @@ function PropertyCard({
70
76
  ),
71
77
  children: [
72
78
  isLinkedToBank ? /* @__PURE__ */ jsxs(
73
- "button",
79
+ Button,
74
80
  {
75
81
  type: "button",
82
+ variant: "ghost",
76
83
  "aria-expanded": expanded,
77
84
  onClick: () => setExpanded((prev) => !prev),
78
- className: "flex items-center gap-1.5 px-5 py-3 text-left cursor-pointer hover:opacity-85",
85
+ className: "h-auto w-full justify-start gap-1.5 px-5 py-3 text-left",
79
86
  children: [
80
87
  /* @__PURE__ */ jsx("span", { className: "text-label-medium text-foreground", children: address }),
81
88
  type && /* @__PURE__ */ jsx(Badge, { variant: "outline", children: type }),
@@ -517,15 +524,28 @@ function AboutCard({
517
524
  lastName,
518
525
  phone,
519
526
  email,
527
+ dob,
520
528
  gender,
521
529
  maritalStatus,
530
+ numDependants,
522
531
  citizenStatus,
532
+ residentialAddress,
533
+ residentialStatus,
534
+ timeAtAddressYears,
535
+ timeAtAddressMonths,
536
+ driversLicence,
537
+ passport,
523
538
  propertyInTrust,
524
539
  companyOwnership
525
540
  }) {
526
541
  const fullName = [title, firstName, lastName].filter(Boolean).join(" ") || "\u2014";
542
+ const timeAtAddress = timeAtAddressYears || timeAtAddressMonths ? [
543
+ timeAtAddressYears && `${timeAtAddressYears}yr`,
544
+ timeAtAddressMonths && `${timeAtAddressMonths}mo`
545
+ ].filter(Boolean).join(" ") : void 0;
527
546
  return /* @__PURE__ */ jsx("div", { className: "border border-border overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-x-8 gap-y-4 px-5 py-4", children: [
528
547
  /* @__PURE__ */ jsx(FinancialDetailField, { label: "Full Name", value: fullName }),
548
+ /* @__PURE__ */ jsx(FinancialDetailField, { label: "Date of Birth", value: dob || "\u2014" }),
529
549
  /* @__PURE__ */ jsx(FinancialDetailField, { label: "Gender", value: gender || "\u2014" }),
530
550
  /* @__PURE__ */ jsx(FinancialDetailField, { label: "Phone", value: phone || "\u2014" }),
531
551
  /* @__PURE__ */ jsx(FinancialDetailField, { label: "Email", value: email || "\u2014" }),
@@ -536,6 +556,13 @@ function AboutCard({
536
556
  value: maritalStatus || "\u2014"
537
557
  }
538
558
  ),
559
+ /* @__PURE__ */ jsx(
560
+ FinancialDetailField,
561
+ {
562
+ label: "No. of Dependants",
563
+ value: numDependants != null ? numDependants : "\u2014"
564
+ }
565
+ ),
539
566
  /* @__PURE__ */ jsx(
540
567
  FinancialDetailField,
541
568
  {
@@ -543,6 +570,29 @@ function AboutCard({
543
570
  value: citizenStatus || "\u2014"
544
571
  }
545
572
  ),
573
+ /* @__PURE__ */ jsx(
574
+ FinancialDetailField,
575
+ {
576
+ label: "Residential Address",
577
+ value: residentialAddress || "\u2014"
578
+ }
579
+ ),
580
+ /* @__PURE__ */ jsx(
581
+ FinancialDetailField,
582
+ {
583
+ label: "Residential Status",
584
+ value: residentialStatus || "\u2014"
585
+ }
586
+ ),
587
+ timeAtAddress && /* @__PURE__ */ jsx(FinancialDetailField, { label: "Time at Address", value: timeAtAddress }),
588
+ /* @__PURE__ */ jsx(
589
+ FinancialDetailField,
590
+ {
591
+ label: "Driver's Licence",
592
+ value: driversLicence || "\u2014"
593
+ }
594
+ ),
595
+ /* @__PURE__ */ jsx(FinancialDetailField, { label: "Passport", value: passport || "\u2014" }),
546
596
  /* @__PURE__ */ jsx(
547
597
  FinancialDetailField,
548
598
  {
@@ -568,19 +618,51 @@ function IncomeCard({ items, totalMonthly }) {
568
618
  "div",
569
619
  {
570
620
  className: cn(
571
- "grid grid-cols-3 gap-x-6 px-5 py-[15px]",
621
+ "flex flex-col gap-3 px-5 py-[15px]",
572
622
  i < items.length - 1 && "border-b border-border"
573
623
  ),
574
624
  children: [
575
- /* @__PURE__ */ jsx(FinancialDetailField, { label: "Type", value: item.incomeType || "\u2014" }),
576
- /* @__PURE__ */ jsx(
625
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-x-6", children: [
626
+ /* @__PURE__ */ jsx(FinancialDetailField, { label: "Type", value: item.incomeType || "\u2014" }),
627
+ /* @__PURE__ */ jsx(
628
+ FinancialDetailField,
629
+ {
630
+ label: "Job Title",
631
+ value: item.jobTitle || "\u2014"
632
+ }
633
+ ),
634
+ /* @__PURE__ */ jsx(FinancialDetailField, { label: "Amount", value: item.amountLabel })
635
+ ] }),
636
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-x-6", children: [
637
+ /* @__PURE__ */ jsx(
638
+ FinancialDetailField,
639
+ {
640
+ label: "Company",
641
+ value: item.companyName || "\u2014"
642
+ }
643
+ ),
644
+ /* @__PURE__ */ jsx(
645
+ FinancialDetailField,
646
+ {
647
+ label: "Start Date",
648
+ value: formatDateShort(item.startDate)
649
+ }
650
+ ),
651
+ /* @__PURE__ */ jsx(
652
+ FinancialDetailField,
653
+ {
654
+ label: "Status",
655
+ value: item.stillInPosition === void 0 ? "\u2014" : item.stillInPosition ? "Still in position" : item.endDate ? `Ended ${formatDateShort(item.endDate)}` : "No longer in position"
656
+ }
657
+ )
658
+ ] }),
659
+ item.companyAddress && /* @__PURE__ */ jsx(
577
660
  FinancialDetailField,
578
661
  {
579
- label: "Employer",
580
- value: item.companyName || item.jobTitle || "\u2014"
662
+ label: "Company Address",
663
+ value: item.companyAddress
581
664
  }
582
- ),
583
- /* @__PURE__ */ jsx(FinancialDetailField, { label: "Amount", value: item.amountLabel })
665
+ )
584
666
  ]
585
667
  },
586
668
  i
@@ -8,7 +8,7 @@ import {
8
8
  FALLBACK_TICK,
9
9
  formatTooltipDate,
10
10
  hexToRgba
11
- } from "./chunk-FZIXGLMV.mjs";
11
+ } from "./chunk-M3FV7LOK.mjs";
12
12
  import {
13
13
  Empty,
14
14
  EmptyDescription
@@ -19,7 +19,7 @@ import {
19
19
  CardContent,
20
20
  CardHeader,
21
21
  CardTitle
22
- } from "./chunk-CLIN5525.mjs";
22
+ } from "./chunk-C7CQJNMR.mjs";
23
23
  import {
24
24
  useThemeVars
25
25
  } from "./chunk-FEZKMUCF.mjs";
@@ -40,7 +40,14 @@ import {
40
40
  } from "chart.js";
41
41
  import { Chart } from "react-chartjs-2";
42
42
  import { jsx, jsxs } from "react/jsx-runtime";
43
- ChartJS.register(CategoryScale, LinearScale, BarController, BarElement, Tooltip, Legend);
43
+ ChartJS.register(
44
+ CategoryScale,
45
+ LinearScale,
46
+ BarController,
47
+ BarElement,
48
+ Tooltip,
49
+ Legend
50
+ );
44
51
  function LegendItem({
45
52
  label,
46
53
  fillColor,
@@ -251,7 +258,7 @@ function CashflowBarChart({
251
258
  style: { maxWidth: width, fontFamily },
252
259
  children: [
253
260
  /* @__PURE__ */ jsxs(CardHeader, { className: "px-3 sm:px-6", children: [
254
- /* @__PURE__ */ jsx(CardTitle, { className: "text-sm sm:text-base uppercase tracking-wider", children: title }),
261
+ /* @__PURE__ */ jsx(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
255
262
  showPeriodSelector && /* @__PURE__ */ jsx(CardAction, { children: /* @__PURE__ */ jsx("div", { className: "flex gap-0.5 sm:gap-1", children: PERIODS.map((p) => /* @__PURE__ */ jsx(
256
263
  ChartPeriodButton,
257
264
  {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buttonVariants
3
- } from "./chunk-2I5S2AMY.mjs";
3
+ } from "./chunk-XREGSKX3.mjs";
4
4
  import {
5
5
  useThemeVars
6
6
  } from "./chunk-FEZKMUCF.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TaskCheckItem
3
- } from "./chunk-FMAXJ2SI.mjs";
3
+ } from "./chunk-MBON7YRJ.mjs";
4
4
  import {
5
5
  DropdownMenu,
6
6
  DropdownMenuContent,
@@ -8,9 +8,16 @@ import {
8
8
  DropdownMenuSeparator,
9
9
  DropdownMenuTrigger
10
10
  } from "./chunk-EFRENWEJ.mjs";
11
+ import {
12
+ formatCurrency
13
+ } from "./chunk-MN5NYQCL.mjs";
14
+ import {
15
+ formatDateDayMonth,
16
+ formatDateShort
17
+ } from "./chunk-7PV3IWCN.mjs";
11
18
  import {
12
19
  Badge
13
- } from "./chunk-WAZD7NFU.mjs";
20
+ } from "./chunk-BKNFWEH2.mjs";
14
21
  import {
15
22
  Accordion,
16
23
  AccordionContent,
@@ -23,7 +30,7 @@ import {
23
30
  import {
24
31
  Button,
25
32
  buttonVariants
26
- } from "./chunk-2I5S2AMY.mjs";
33
+ } from "./chunk-XREGSKX3.mjs";
27
34
  import {
28
35
  cn
29
36
  } from "./chunk-VLQZANBF.mjs";
@@ -60,34 +67,6 @@ function resolvePriority(days, warningDays, priorityDays, priority) {
60
67
  if (warningDays !== void 0 || priorityDays !== void 0) return "LOW";
61
68
  return priority;
62
69
  }
63
- function formatAmount(amount) {
64
- return new Intl.NumberFormat("en-AU", {
65
- style: "currency",
66
- currency: "AUD",
67
- maximumFractionDigits: 0
68
- }).format(amount);
69
- }
70
- function formatDate(iso) {
71
- try {
72
- return new Date(iso).toLocaleDateString("en-AU", {
73
- day: "2-digit",
74
- month: "short",
75
- year: "numeric"
76
- });
77
- } catch (e) {
78
- return iso;
79
- }
80
- }
81
- function formatHoldDate(iso) {
82
- try {
83
- return new Date(iso).toLocaleDateString("en-AU", {
84
- day: "2-digit",
85
- month: "short"
86
- });
87
- } catch (e) {
88
- return iso;
89
- }
90
- }
91
70
  function formatLoanType(type) {
92
71
  return type.split("-").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
93
72
  }
@@ -149,7 +128,7 @@ function OpportunityCard({
149
128
  children: [
150
129
  /* @__PURE__ */ jsx(Clock, { className: "size-3 shrink-0" }),
151
130
  "On hold until ",
152
- formatHoldDate(onHoldTo)
131
+ formatDateDayMonth(onHoldTo)
153
132
  ]
154
133
  }
155
134
  ),
@@ -164,17 +143,16 @@ function OpportunityCard({
164
143
  /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
165
144
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
166
145
  (loanPurposeLabel || loanType) && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "self-start", children: loanPurposeLabel != null ? loanPurposeLabel : formatLoanType(loanType) }),
167
- /* @__PURE__ */ jsx("span", { className: "text-base font-bold tabular-nums text-foreground", children: formatAmount(amount) })
146
+ /* @__PURE__ */ jsx("span", { className: "text-base font-bold tabular-nums text-foreground", children: formatCurrency(amount) })
168
147
  ] }),
169
148
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 -mr-1 -mt-1", children: [
170
149
  onLaunchAssistant && /* @__PURE__ */ jsx(
171
- "button",
150
+ Button,
172
151
  {
173
152
  type: "button",
174
- className: cn(
175
- buttonVariants({ variant: "ghost", size: "icon" }),
176
- "size-7 shrink-0"
177
- ),
153
+ variant: "ghost",
154
+ size: "icon",
155
+ className: "size-7 shrink-0",
178
156
  onClick: onLaunchAssistant,
179
157
  "aria-label": "Launch AI Assistant",
180
158
  title: "Launch AI Assistant",
@@ -230,7 +208,7 @@ function OpportunityCard({
230
208
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
231
209
  /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
232
210
  /* @__PURE__ */ jsx(Calendar, { className: "size-3 shrink-0", "aria-hidden": "true" }),
233
- formatDate(date)
211
+ formatDateShort(date)
234
212
  ] }),
235
213
  /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5", children: [
236
214
  daysSinceColumnChanged !== void 0 && /* @__PURE__ */ jsxs(Fragment, { children: [