@wealthx/shadcn 1.2.2 → 1.3.0

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 (229) hide show
  1. package/.turbo/turbo-build.log +200 -156
  2. package/CHANGELOG.md +22 -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-FNQXOAYJ.mjs +169 -0
  29. package/dist/{chunk-A6AAWBPF.mjs → chunk-GHC7LLUX.mjs} +13 -4
  30. package/dist/chunk-HBZLGDIN.mjs +507 -0
  31. package/dist/{chunk-SIZMLSRU.mjs → chunk-HISNT2MG.mjs} +8 -6
  32. package/dist/{chunk-CGH4DRNG.mjs → chunk-HVY6KCCF.mjs} +10 -7
  33. package/dist/chunk-I3RZS7V2.mjs +136 -0
  34. package/dist/chunk-IAE3F7DR.mjs +1962 -0
  35. package/dist/{chunk-UT4KJR7V.mjs → chunk-IHMFS7NZ.mjs} +35 -74
  36. package/dist/{chunk-PCPLO5HT.mjs → chunk-IOJRDS6V.mjs} +96 -14
  37. package/dist/{chunk-LHYCMLVA.mjs → chunk-JKGDCQTZ.mjs} +11 -4
  38. package/dist/{chunk-H45TKD34.mjs → chunk-JMHR3YGZ.mjs} +1 -1
  39. package/dist/{chunk-4MN6UQHG.mjs → chunk-K5A5L6T2.mjs} +17 -39
  40. package/dist/chunk-LV35NGVG.mjs +272 -0
  41. package/dist/{chunk-FZIXGLMV.mjs → chunk-M3FV7LOK.mjs} +5 -12
  42. package/dist/{chunk-FMAXJ2SI.mjs → chunk-MBON7YRJ.mjs} +1 -1
  43. package/dist/chunk-MIZQHHUO.mjs +441 -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-QMY3AZJH.mjs +80 -0
  51. package/dist/{chunk-BL3DXM2X.mjs → chunk-QZ4RE6NA.mjs} +11 -4
  52. package/dist/{chunk-VACKZOMY.mjs → chunk-R3VSPKNP.mjs} +3 -3
  53. package/dist/{chunk-OPNQAVVH.mjs → chunk-RJI6GKVF.mjs} +8 -6
  54. package/dist/{chunk-WG6JGJXB.mjs → chunk-T4BJLT57.mjs} +1 -1
  55. package/dist/chunk-UMTOX62O.mjs +415 -0
  56. package/dist/{chunk-7MMXNK3C.mjs → chunk-VLARHE5V.mjs} +8 -6
  57. package/dist/{chunk-2I5S2AMY.mjs → chunk-XREGSKX3.mjs} +2 -2
  58. package/dist/{chunk-JNQORUPP.mjs → chunk-YJG55G2H.mjs} +14 -11
  59. package/dist/{chunk-ZRSDX6OW.mjs → chunk-ZC45IGZO.mjs} +33 -30
  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 +497 -0
  65. package/dist/components/ui/advisor-card.mjs +13 -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 +234 -95
  160. package/dist/components/ui/sidebar-nav.mjs +4 -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 +12899 -9343
  170. package/dist/index.mjs +256 -190
  171. package/dist/styles.css +1 -1
  172. package/package.json +71 -1
  173. package/src/components/index.tsx +114 -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 +227 -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 +36 -37
  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-LLVQKSU3.mjs → chunk-GD4BJDJR.mjs} +3 -3
@@ -0,0 +1,19 @@
1
+ import {
2
+ BackofficeConnectionsChart
3
+ } from "../../chunk-6CR5N2JW.mjs";
4
+ import "../../chunk-D6ID6M4V.mjs";
5
+ import "../../chunk-M3FV7LOK.mjs";
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";
13
+ import "../../chunk-FEZKMUCF.mjs";
14
+ import "../../chunk-QOJ2DQD6.mjs";
15
+ import "../../chunk-VLQZANBF.mjs";
16
+ import "../../chunk-FWCSY2DS.mjs";
17
+ export {
18
+ BackofficeConnectionsChart
19
+ };
@@ -134,7 +134,7 @@ function CardHeader(_a) {
134
134
  "div",
135
135
  __spreadValues({
136
136
  className: cn(
137
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
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
138
  className
139
139
  ),
140
140
  "data-slot": "card-header"
@@ -298,10 +298,10 @@ 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 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: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
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",
304
- ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
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
  },
307
307
  size: {
@@ -455,7 +455,13 @@ function ChartPeriodButton({
455
455
 
456
456
  // src/components/ui/backoffice-contact-history-chart.tsx
457
457
  var import_jsx_runtime7 = require("react/jsx-runtime");
458
- import_chart.Chart.register(import_chart.CategoryScale, import_chart.LinearScale, import_chart.BarController, import_chart.BarElement, import_chart.Tooltip);
458
+ import_chart.Chart.register(
459
+ import_chart.CategoryScale,
460
+ import_chart.LinearScale,
461
+ import_chart.BarController,
462
+ import_chart.BarElement,
463
+ import_chart.Tooltip
464
+ );
459
465
  var CONTACT_PERIODS = [3, 6, 12];
460
466
  var SLICE_COUNT = {
461
467
  3: 3,
@@ -634,7 +640,7 @@ function BackofficeContactHistoryChart({
634
640
  style: { maxWidth: width, fontFamily },
635
641
  children: [
636
642
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
637
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-sm sm:text-base", children: title }),
643
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
638
644
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardAction, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex gap-0.5 sm:gap-1", children: CONTACT_PERIODS.map((p) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
639
645
  ChartPeriodButton,
640
646
  {
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  BackofficeContactHistoryChart
3
- } from "../../chunk-GGM2UYGG.mjs";
3
+ } from "../../chunk-EBXQWIYG.mjs";
4
4
  import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-FZIXGLMV.mjs";
5
+ import "../../chunk-M3FV7LOK.mjs";
6
+ import "../../chunk-MN5NYQCL.mjs";
6
7
  import "../../chunk-NQPOYKAQ.mjs";
7
- import "../../chunk-CLIN5525.mjs";
8
- import "../../chunk-2I5S2AMY.mjs";
8
+ import "../../chunk-C7CQJNMR.mjs";
9
+ import "../../chunk-XREGSKX3.mjs";
9
10
  import "../../chunk-DBHJ5KC3.mjs";
10
11
  import "../../chunk-FEZKMUCF.mjs";
11
12
  import "../../chunk-QOJ2DQD6.mjs";
@@ -155,12 +155,12 @@ var badgeVariants = (0, import_class_variance_authority.cva)(
155
155
  {
156
156
  variants: {
157
157
  variant: {
158
- default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
159
- secondary: "bg-muted text-muted-foreground [a&]:hover:bg-muted/80",
160
- destructive: "bg-destructive text-destructive-foreground focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",
161
- success: "bg-success text-success-foreground [a&]:hover:bg-success/90",
162
- warning: "bg-warning text-warning-foreground [a&]:hover:bg-warning/90",
163
- info: "bg-info text-info-foreground [a&]:hover:bg-info/90",
158
+ default: "border-primary/40 bg-primary/10 text-foreground [a&]:hover:bg-primary/15",
159
+ secondary: "border-border bg-muted text-muted-foreground [a&]:hover:bg-muted/80",
160
+ destructive: "border-destructive/40 bg-destructive/10 text-destructive-text focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/15",
161
+ success: "border-success/40 bg-success/10 text-success-text [a&]:hover:bg-success/15",
162
+ warning: "border-warning/40 bg-warning/10 text-warning-text [a&]:hover:bg-warning/15",
163
+ info: "border-info/40 bg-info/10 text-info-text [a&]:hover:bg-info/15",
164
164
  outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
165
165
  ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
166
166
  link: "text-primary underline-offset-4 [a&]:hover:underline"
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Badge,
3
3
  badgeVariants
4
- } from "../../chunk-WAZD7NFU.mjs";
4
+ } from "../../chunk-BKNFWEH2.mjs";
5
5
  import "../../chunk-DBHJ5KC3.mjs";
6
6
  import "../../chunk-VLQZANBF.mjs";
7
7
  import "../../chunk-FWCSY2DS.mjs";
@@ -134,7 +134,7 @@ function CardHeader(_a) {
134
134
  "div",
135
135
  __spreadValues({
136
136
  className: cn(
137
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
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
138
  className
139
139
  ),
140
140
  "data-slot": "card-header"
@@ -285,10 +285,10 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
285
285
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
286
286
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
287
287
  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 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
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",
289
289
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
290
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",
291
- ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
291
+ ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
292
292
  link: "text-primary underline-offset-4 hover:underline"
293
293
  },
294
294
  size: {
@@ -349,13 +349,22 @@ var Button = (0, import_react2.forwardRef)(function Button2(_a, ref) {
349
349
  );
350
350
  });
351
351
 
352
- // src/components/ui/chart-shared.tsx
353
- var import_jsx_runtime6 = require("react/jsx-runtime");
354
- var FALLBACK_PRIMARY = "#33FF99";
355
- var FALLBACK_BG = "#ffffff";
356
- var FALLBACK_FOREGROUND = "#040D13";
357
- var FALLBACK_TICK = "#9EAAB5";
358
- function formatAbbrev(value) {
352
+ // src/lib/format-currency.ts
353
+ function formatCurrency(value, options) {
354
+ const { decimals = 0, showSign = false } = options != null ? options : {};
355
+ const abs = Math.abs(value);
356
+ const formatted = new Intl.NumberFormat("en-AU", {
357
+ style: "currency",
358
+ currency: "AUD",
359
+ minimumFractionDigits: decimals,
360
+ maximumFractionDigits: decimals
361
+ }).format(abs);
362
+ if (!showSign) return value < 0 ? `-${formatted}` : formatted;
363
+ if (value > 0) return `+${formatted}`;
364
+ if (value < 0) return `-${formatted}`;
365
+ return formatted;
366
+ }
367
+ function formatCurrencyAbbrev(value) {
359
368
  const abs = Math.abs(value);
360
369
  const sign = value < 0 ? "-" : "";
361
370
  if (abs >= 1e9)
@@ -364,6 +373,13 @@ function formatAbbrev(value) {
364
373
  if (abs >= 1e3) return `${sign}$${(abs / 1e3).toFixed(0)}K`;
365
374
  return `${sign}$${abs.toFixed(0)}`;
366
375
  }
376
+
377
+ // src/components/ui/chart-shared.tsx
378
+ var import_jsx_runtime6 = require("react/jsx-runtime");
379
+ var FALLBACK_PRIMARY = "#33FF99";
380
+ var FALLBACK_BG = "#ffffff";
381
+ var FALLBACK_FOREGROUND = "#040D13";
382
+ var FALLBACK_TICK = "#9EAAB5";
367
383
  function ChartLegendItem({
368
384
  label,
369
385
  color,
@@ -443,13 +459,6 @@ var SERIES_LEGEND_ORDER = [
443
459
  "desired-loan-amount"
444
460
  ];
445
461
  var DASH_PATTERN = [6, 4];
446
- function formatCurrencyFull(dollars) {
447
- return new Intl.NumberFormat("en-AU", {
448
- style: "currency",
449
- currency: "AUD",
450
- maximumFractionDigits: 0
451
- }).format(dollars);
452
- }
453
462
  function formatDateLabel(iso) {
454
463
  const d = /* @__PURE__ */ new Date(`${iso.slice(0, 7)}-01T00:00:00`);
455
464
  return d.toLocaleDateString("en-US", { month: "short", year: "2-digit" });
@@ -549,7 +558,7 @@ function BorrowingCapacityLineChart({
549
558
  label: (ctx) => {
550
559
  var _a;
551
560
  const dollars = (_a = ctx.parsed.y) != null ? _a : 0;
552
- return ` ${ctx.dataset.label}: ${formatCurrencyFull(dollars)}`;
561
+ return ` ${ctx.dataset.label}: ${formatCurrency(dollars)}`;
553
562
  }
554
563
  }
555
564
  }
@@ -584,7 +593,7 @@ function BorrowingCapacityLineChart({
584
593
  padding: 8,
585
594
  color: FALLBACK_TICK,
586
595
  font: { size: 10, family: fontFamily },
587
- callback: (v) => formatAbbrev(Number(v))
596
+ callback: (v) => formatCurrencyAbbrev(Number(v))
588
597
  }
589
598
  }
590
599
  }
@@ -614,8 +623,8 @@ function BorrowingCapacityLineChart({
614
623
  style: { maxWidth: width, fontFamily },
615
624
  children: [
616
625
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardHeader, { className: "px-3 sm:px-6", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-start justify-between gap-4", children: [
617
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-sm sm:text-base uppercase tracking-wider", children: title }),
618
- kpiValue != null && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "shrink-0 text-xl font-bold tabular-nums", children: formatCurrencyFull(kpiValue / 100) })
626
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
627
+ kpiValue != null && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "shrink-0 text-xl font-bold tabular-nums", children: formatCurrency(kpiValue / 100) })
619
628
  ] }) }),
620
629
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardContent, { className: "px-3 sm:px-6", children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Skeleton, { style: { height, width: "100%" } }) : !hasData ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Empty, { className: "flex-none p-4", style: { height }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EmptyDescription, { children: "No borrowing capacity data available" }) }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
621
630
  legendPosition === "top" && legendWrapper,
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  BorrowingCapacityLineChart
3
- } from "../../chunk-TS2ZX2VS.mjs";
3
+ } from "../../chunk-2UM72RJ7.mjs";
4
4
  import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-FZIXGLMV.mjs";
5
+ import "../../chunk-M3FV7LOK.mjs";
6
+ import "../../chunk-MN5NYQCL.mjs";
6
7
  import "../../chunk-NQPOYKAQ.mjs";
7
- import "../../chunk-CLIN5525.mjs";
8
- import "../../chunk-2I5S2AMY.mjs";
8
+ import "../../chunk-C7CQJNMR.mjs";
9
+ import "../../chunk-XREGSKX3.mjs";
9
10
  import "../../chunk-DBHJ5KC3.mjs";
10
11
  import "../../chunk-FEZKMUCF.mjs";
11
12
  import "../../chunk-QOJ2DQD6.mjs";
@@ -163,10 +163,10 @@ 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 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: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
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",
169
- ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
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
  },
172
172
  size: {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Button,
3
3
  buttonVariants
4
- } from "../../chunk-2I5S2AMY.mjs";
4
+ } from "../../chunk-XREGSKX3.mjs";
5
5
  import "../../chunk-DBHJ5KC3.mjs";
6
6
  import "../../chunk-VLQZANBF.mjs";
7
7
  import "../../chunk-FWCSY2DS.mjs";
@@ -168,10 +168,10 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
168
168
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
169
169
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
170
170
  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 dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
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",
172
172
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
173
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",
174
- ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
174
+ ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
175
175
  link: "text-primary underline-offset-4 hover:underline"
176
176
  },
177
177
  size: {
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Calendar,
3
3
  CalendarDayButton
4
- } from "../../chunk-P6AM5V7O.mjs";
5
- import "../../chunk-2I5S2AMY.mjs";
4
+ } from "../../chunk-OODBHKG7.mjs";
5
+ import "../../chunk-XREGSKX3.mjs";
6
6
  import "../../chunk-DBHJ5KC3.mjs";
7
7
  import "../../chunk-VLQZANBF.mjs";
8
8
  import "../../chunk-FWCSY2DS.mjs";
@@ -116,7 +116,7 @@ function CardHeader(_a) {
116
116
  "div",
117
117
  __spreadValues({
118
118
  className: cn(
119
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
119
+ "@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",
120
120
  className
121
121
  ),
122
122
  "data-slot": "card-header"
@@ -6,7 +6,7 @@ import {
6
6
  CardFooter,
7
7
  CardHeader,
8
8
  CardTitle
9
- } from "../../chunk-CLIN5525.mjs";
9
+ } from "../../chunk-C7CQJNMR.mjs";
10
10
  import "../../chunk-VLQZANBF.mjs";
11
11
  import "../../chunk-FWCSY2DS.mjs";
12
12
  export {
@@ -134,7 +134,7 @@ function CardHeader(_a) {
134
134
  "div",
135
135
  __spreadValues({
136
136
  className: cn(
137
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
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
138
  className
139
139
  ),
140
140
  "data-slot": "card-header"
@@ -301,10 +301,10 @@ var buttonVariants = (0, import_class_variance_authority3.cva)(
301
301
  default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
302
302
  secondary: "bg-brand-secondary text-brand-secondary-foreground shadow-xs hover:bg-brand-secondary/80 focus-visible:ring-brand-secondary/30",
303
303
  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",
304
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
304
+ 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",
305
305
  "outline-primary": "border border-primary text-foreground bg-transparent shadow-xs hover:bg-primary/5 focus-visible:ring-primary/50",
306
306
  "outline-secondary": "border border-brand-secondary text-brand-secondary bg-transparent shadow-xs hover:bg-brand-secondary/10 focus-visible:ring-brand-secondary/30",
307
- ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
307
+ ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs focus-visible:ring-border/50 dark:hover:bg-accent/50",
308
308
  link: "text-primary underline-offset-4 hover:underline"
309
309
  },
310
310
  size: {
@@ -365,6 +365,31 @@ var Button = (0, import_react2.forwardRef)(function Button2(_a, ref) {
365
365
  );
366
366
  });
367
367
 
368
+ // src/lib/format-currency.ts
369
+ function formatCurrency(value, options) {
370
+ const { decimals = 0, showSign = false } = options != null ? options : {};
371
+ const abs = Math.abs(value);
372
+ const formatted = new Intl.NumberFormat("en-AU", {
373
+ style: "currency",
374
+ currency: "AUD",
375
+ minimumFractionDigits: decimals,
376
+ maximumFractionDigits: decimals
377
+ }).format(abs);
378
+ if (!showSign) return value < 0 ? `-${formatted}` : formatted;
379
+ if (value > 0) return `+${formatted}`;
380
+ if (value < 0) return `-${formatted}`;
381
+ return formatted;
382
+ }
383
+ function formatCurrencyAbbrev(value) {
384
+ const abs = Math.abs(value);
385
+ const sign = value < 0 ? "-" : "";
386
+ if (abs >= 1e9)
387
+ return `${sign}$${(abs / 1e9).toFixed(1)}B`;
388
+ if (abs >= 1e6) return `${sign}$${(abs / 1e6).toFixed(1)}M`;
389
+ if (abs >= 1e3) return `${sign}$${(abs / 1e3).toFixed(0)}K`;
390
+ return `${sign}$${abs.toFixed(0)}`;
391
+ }
392
+
368
393
  // src/components/ui/chart-shared.tsx
369
394
  var import_jsx_runtime6 = require("react/jsx-runtime");
370
395
  var FALLBACK_PRIMARY = "#33FF99";
@@ -423,23 +448,6 @@ import_chart.Chart.register(
423
448
  import_chart.PointElement,
424
449
  import_chart.Tooltip
425
450
  );
426
- function formatAbbrev(value) {
427
- const abs = Math.abs(value);
428
- const sign = value < 0 ? "-" : "";
429
- if (abs >= 1e9)
430
- return `${sign}$${(abs / 1e9).toFixed(1)}B`;
431
- if (abs >= 1e6) return `${sign}$${(abs / 1e6).toFixed(1)}M`;
432
- if (abs >= 1e3) return `${sign}$${(abs / 1e3).toFixed(1)}K`;
433
- return `${sign}$${abs.toFixed(0)}`;
434
- }
435
- function formatBalanceFull(value) {
436
- const abs = Math.abs(value);
437
- const sign = value < 0 ? "-" : "";
438
- return `${sign}$${abs.toLocaleString(void 0, {
439
- minimumFractionDigits: 2,
440
- maximumFractionDigits: 2
441
- })}`;
442
- }
443
451
  function formatDateLabel(iso) {
444
452
  const d = new Date(iso);
445
453
  return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
@@ -565,7 +573,7 @@ function CashBalanceLineChart({
565
573
  padding: 8,
566
574
  color: FALLBACK_TICK,
567
575
  font: { size: 10, family: fontFamily },
568
- callback: (v) => formatAbbrev(Number(v))
576
+ callback: (v) => formatCurrencyAbbrev(Number(v))
569
577
  }
570
578
  }
571
579
  }
@@ -580,8 +588,8 @@ function CashBalanceLineChart({
580
588
  style: { maxWidth: width, fontFamily },
581
589
  children: [
582
590
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardHeader, { className: "px-3 sm:px-6", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
583
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-sm sm:text-base uppercase tracking-wider", children: title }),
584
- showBalanceValue && latestValue !== null && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-2xl font-bold tabular-nums leading-tight", children: formatBalanceFull(latestValue) })
591
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
592
+ showBalanceValue && latestValue !== null && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-2xl font-bold tabular-nums leading-tight", children: formatCurrency(latestValue, { decimals: 2 }) })
585
593
  ] }) }),
586
594
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardContent, { className: "px-3 sm:px-6", children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
587
595
  "div",
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  CashBalanceLineChart
3
- } from "../../chunk-4Y6R4WEC.mjs";
4
- import "../../chunk-FZIXGLMV.mjs";
3
+ } from "../../chunk-2A5RRQGG.mjs";
4
+ import "../../chunk-M3FV7LOK.mjs";
5
+ import "../../chunk-MN5NYQCL.mjs";
5
6
  import "../../chunk-NQPOYKAQ.mjs";
6
- import "../../chunk-CLIN5525.mjs";
7
+ import "../../chunk-C7CQJNMR.mjs";
7
8
  import "../../chunk-7YAU5CY6.mjs";
8
- import "../../chunk-2I5S2AMY.mjs";
9
+ import "../../chunk-XREGSKX3.mjs";
9
10
  import "../../chunk-DBHJ5KC3.mjs";
10
11
  import "../../chunk-FEZKMUCF.mjs";
11
12
  import "../../chunk-QOJ2DQD6.mjs";
@@ -134,7 +134,7 @@ function CardHeader(_a) {
134
134
  "div",
135
135
  __spreadValues({
136
136
  className: cn(
137
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
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
138
  className
139
139
  ),
140
140
  "data-slot": "card-header"
@@ -298,10 +298,10 @@ 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 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: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
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",
304
- ghost: "hover:bg-accent hover:text-accent-foreground hover:shadow-xs dark:hover:bg-accent/50",
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
  },
307
307
  size: {
@@ -404,7 +404,14 @@ function ChartPeriodButton({
404
404
 
405
405
  // src/components/ui/cashflow-bar-chart.tsx
406
406
  var import_jsx_runtime7 = require("react/jsx-runtime");
407
- import_chart.Chart.register(import_chart.CategoryScale, import_chart.LinearScale, import_chart.BarController, import_chart.BarElement, import_chart.Tooltip, import_chart.Legend);
407
+ import_chart.Chart.register(
408
+ import_chart.CategoryScale,
409
+ import_chart.LinearScale,
410
+ import_chart.BarController,
411
+ import_chart.BarElement,
412
+ import_chart.Tooltip,
413
+ import_chart.Legend
414
+ );
408
415
  function LegendItem({
409
416
  label,
410
417
  fillColor,
@@ -615,7 +622,7 @@ function CashflowBarChart({
615
622
  style: { maxWidth: width, fontFamily },
616
623
  children: [
617
624
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
618
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-sm sm:text-base uppercase tracking-wider", children: title }),
625
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
619
626
  showPeriodSelector && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardAction, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "flex gap-0.5 sm:gap-1", children: PERIODS.map((p) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
620
627
  ChartPeriodButton,
621
628
  {
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  CashflowBarChart
3
- } from "../../chunk-LHYCMLVA.mjs";
3
+ } from "../../chunk-JKGDCQTZ.mjs";
4
4
  import "../../chunk-D6ID6M4V.mjs";
5
- import "../../chunk-FZIXGLMV.mjs";
5
+ import "../../chunk-M3FV7LOK.mjs";
6
+ import "../../chunk-MN5NYQCL.mjs";
6
7
  import "../../chunk-NQPOYKAQ.mjs";
7
- import "../../chunk-CLIN5525.mjs";
8
- import "../../chunk-2I5S2AMY.mjs";
8
+ import "../../chunk-C7CQJNMR.mjs";
9
+ import "../../chunk-XREGSKX3.mjs";
9
10
  import "../../chunk-DBHJ5KC3.mjs";
10
11
  import "../../chunk-FEZKMUCF.mjs";
11
12
  import "../../chunk-QOJ2DQD6.mjs";