@wealthx/shadcn 1.5.42 → 1.5.43

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 (207) hide show
  1. package/.turbo/turbo-build.log +215 -210
  2. package/CHANGELOG.md +6 -0
  3. package/dist/{chunk-5FHBC6DY.mjs → chunk-33WZ5NCW.mjs} +1 -1
  4. package/dist/{chunk-C35JMOII.mjs → chunk-3G6JUYRE.mjs} +4 -4
  5. package/dist/{chunk-LBXIYS34.mjs → chunk-4PVCJ3JD.mjs} +1 -1
  6. package/dist/{chunk-EHQL64B7.mjs → chunk-4SUXTO2Z.mjs} +4 -4
  7. package/dist/{chunk-BAONSY54.mjs → chunk-5RYH7SOQ.mjs} +1 -1
  8. package/dist/{chunk-3C4DZTGA.mjs → chunk-5XD7A7YC.mjs} +1 -1
  9. package/dist/{chunk-5DAQU3B6.mjs → chunk-66JXT7NY.mjs} +1 -1
  10. package/dist/{chunk-NGKTJRFN.mjs → chunk-6DO4EGT2.mjs} +2 -2
  11. package/dist/{chunk-C7ZTZTEW.mjs → chunk-6XJWL2E5.mjs} +1 -1
  12. package/dist/{chunk-FQUT5XD6.mjs → chunk-A4UP4QFB.mjs} +1 -1
  13. package/dist/{chunk-USIRKDYQ.mjs → chunk-BFCX7ADE.mjs} +1 -1
  14. package/dist/{chunk-XGRSPFFC.mjs → chunk-CQHKU24Z.mjs} +1 -1
  15. package/dist/{chunk-HONTZFLO.mjs → chunk-DP4ER6TJ.mjs} +1 -1
  16. package/dist/{chunk-VLVEZHFE.mjs → chunk-EFSLAMHI.mjs} +4 -4
  17. package/dist/{chunk-FYZBGWYR.mjs → chunk-FVSOFXJQ.mjs} +1 -1
  18. package/dist/{chunk-JUMEIPII.mjs → chunk-G2MOZZPE.mjs} +8 -8
  19. package/dist/{chunk-D3HKFRQO.mjs → chunk-GQWKBESP.mjs} +8 -5
  20. package/dist/{chunk-MD66TGX7.mjs → chunk-GXDKWCMV.mjs} +1 -1
  21. package/dist/{chunk-77L3UPBW.mjs → chunk-H7NOUDU3.mjs} +5 -5
  22. package/dist/{chunk-4LLTZ45R.mjs → chunk-HOXTEU5K.mjs} +8 -7
  23. package/dist/{chunk-ZA37ZWZW.mjs → chunk-IXW77PMI.mjs} +7 -7
  24. package/dist/{chunk-XHZONBL4.mjs → chunk-JLEQU5BO.mjs} +1 -1
  25. package/dist/{chunk-6UKOJLXO.mjs → chunk-JSFWRD7K.mjs} +4 -4
  26. package/dist/{chunk-7PTRHNUV.mjs → chunk-JY3FUGNL.mjs} +1 -1
  27. package/dist/{chunk-3ZU5BH6X.mjs → chunk-KEOAPKJO.mjs} +3 -3
  28. package/dist/{chunk-4QTHK7ML.mjs → chunk-KWYFJQV6.mjs} +1 -1
  29. package/dist/{chunk-FGMDBJCF.mjs → chunk-LDPCSE7J.mjs} +4 -4
  30. package/dist/chunk-LFWNKXZU.mjs +109 -0
  31. package/dist/{chunk-IRZWYTGV.mjs → chunk-M32YSAWL.mjs} +8 -7
  32. package/dist/{chunk-LLAGF6BA.mjs → chunk-MUB2G36A.mjs} +1 -1
  33. package/dist/{chunk-DQNNP6I4.mjs → chunk-NIETQFJQ.mjs} +1 -1
  34. package/dist/{chunk-RUX3OLVZ.mjs → chunk-OTFG57ZF.mjs} +1 -1
  35. package/dist/{chunk-OKIWXOJL.mjs → chunk-OWTW5WAJ.mjs} +1 -1
  36. package/dist/{chunk-WWIWRNBK.mjs → chunk-P7NSCTAW.mjs} +1 -1
  37. package/dist/{chunk-BZWQU52U.mjs → chunk-QZREZL2F.mjs} +1 -1
  38. package/dist/{chunk-E432NK23.mjs → chunk-RBQ4BZUV.mjs} +6 -6
  39. package/dist/{chunk-I2EKKSEF.mjs → chunk-RKBLVNDC.mjs} +4 -7
  40. package/dist/{chunk-LHQACMZY.mjs → chunk-SPPQFW32.mjs} +106 -50
  41. package/dist/{chunk-OSSS56CB.mjs → chunk-SUXJWKRI.mjs} +4 -4
  42. package/dist/{chunk-SCGCGVDN.mjs → chunk-SZXIPE5J.mjs} +1 -1
  43. package/dist/{chunk-VVURVETY.mjs → chunk-TOQRA2TD.mjs} +1 -1
  44. package/dist/{chunk-GYWOD2YI.mjs → chunk-TZSDYQFH.mjs} +4 -4
  45. package/dist/{chunk-S7SBLNX4.mjs → chunk-UB3WG6I4.mjs} +1 -1
  46. package/dist/{chunk-PGJRZHN7.mjs → chunk-UVZ3JWFG.mjs} +1 -1
  47. package/dist/{chunk-UD5UF5OC.mjs → chunk-W7OPFKTZ.mjs} +4 -4
  48. package/dist/{chunk-YEWNFK5S.mjs → chunk-WLXP4OOF.mjs} +5 -5
  49. package/dist/{chunk-ORMC3TV3.mjs → chunk-XYXYTTNW.mjs} +1 -1
  50. package/dist/{chunk-CZOGJC76.mjs → chunk-YACFZWRR.mjs} +7 -7
  51. package/dist/{chunk-UTCW5YUX.mjs → chunk-YPATB6YQ.mjs} +9 -9
  52. package/dist/{chunk-BZGFW6L7.mjs → chunk-YWJAIPUA.mjs} +1 -1
  53. package/dist/{chunk-MHBQJVHE.mjs → chunk-Z65BGSHI.mjs} +5 -5
  54. package/dist/{chunk-PCULNQWA.mjs → chunk-ZGSFRUVI.mjs} +3 -3
  55. package/dist/{chunk-7NQKFPXE.mjs → chunk-ZRYG6ICN.mjs} +1 -1
  56. package/dist/{chunk-ZFKAYRFQ.mjs → chunk-ZUHFYW65.mjs} +1 -1
  57. package/dist/components/ui/about-you-form.mjs +2 -2
  58. package/dist/components/ui/account-list-carousel.mjs +2 -2
  59. package/dist/components/ui/add-column-modal.mjs +4 -4
  60. package/dist/components/ui/add-lead-modal.mjs +4 -4
  61. package/dist/components/ui/advisor-card.mjs +2 -2
  62. package/dist/components/ui/ai-assistant-drawer.mjs +2 -2
  63. package/dist/components/ui/ai-builder/index.mjs +4 -4
  64. package/dist/components/ui/ai-conversations/index.mjs +4 -4
  65. package/dist/components/ui/alert-dialog.mjs +3 -3
  66. package/dist/components/ui/applicant-expenses-section.mjs +1 -1
  67. package/dist/components/ui/appointment-action-dialogs.mjs +5 -5
  68. package/dist/components/ui/appointment-availability-settings.mjs +4 -4
  69. package/dist/components/ui/appointment-book-dialog.mjs +4 -4
  70. package/dist/components/ui/appointment-detail-sheet.mjs +6 -6
  71. package/dist/components/ui/appointment-upcoming-card.mjs +4 -4
  72. package/dist/components/ui/asset-accordion.mjs +7 -7
  73. package/dist/components/ui/assets-liabilities-side-card.js +19 -66
  74. package/dist/components/ui/assets-liabilities-side-card.mjs +22 -69
  75. package/dist/components/ui/backoffice-alert-history-chart.js +1 -1
  76. package/dist/components/ui/backoffice-alert-history-chart.mjs +5 -5
  77. package/dist/components/ui/backoffice-alert-matching-chart.js +1 -1
  78. package/dist/components/ui/backoffice-alert-matching-chart.mjs +5 -5
  79. package/dist/components/ui/backoffice-alerts-chart.js +1 -1
  80. package/dist/components/ui/backoffice-alerts-chart.mjs +5 -5
  81. package/dist/components/ui/backoffice-connections-chart.js +1 -1
  82. package/dist/components/ui/backoffice-connections-chart.mjs +5 -5
  83. package/dist/components/ui/backoffice-contact-history-chart.js +1 -1
  84. package/dist/components/ui/backoffice-contact-history-chart.mjs +5 -5
  85. package/dist/components/ui/backoffice-contact-matching-chart.js +1 -1
  86. package/dist/components/ui/backoffice-contact-matching-chart.mjs +5 -5
  87. package/dist/components/ui/backoffice-signup-steps.mjs +4 -4
  88. package/dist/components/ui/bank-statement-generate-dialog.mjs +4 -4
  89. package/dist/components/ui/bank-statement-pdf-viewer.mjs +4 -4
  90. package/dist/components/ui/borrowing-capacity-atoms.js +3 -6
  91. package/dist/components/ui/borrowing-capacity-atoms.mjs +2 -2
  92. package/dist/components/ui/borrowing-capacity-card.js +5 -5
  93. package/dist/components/ui/borrowing-capacity-card.mjs +6 -6
  94. package/dist/components/ui/borrowing-capacity-line-chart.js +5 -5
  95. package/dist/components/ui/borrowing-capacity-line-chart.mjs +5 -5
  96. package/dist/components/ui/calculator-section.mjs +4 -4
  97. package/dist/components/ui/cash-balance-line-chart.js +102 -46
  98. package/dist/components/ui/cash-balance-line-chart.mjs +5 -5
  99. package/dist/components/ui/cashflow-bar-chart.js +7 -4
  100. package/dist/components/ui/cashflow-bar-chart.mjs +5 -5
  101. package/dist/components/ui/category-edit-dialog.mjs +4 -4
  102. package/dist/components/ui/color-picker.mjs +2 -2
  103. package/dist/components/ui/contact-alert-dialog/index.mjs +4 -4
  104. package/dist/components/ui/create-contact-modal.mjs +4 -4
  105. package/dist/components/ui/csv-import-modal.mjs +4 -4
  106. package/dist/components/ui/dashboard-expense-categories.js +96 -63
  107. package/dist/components/ui/dashboard-expense-categories.mjs +101 -66
  108. package/dist/components/ui/dashboard-transactions-table.js +37 -44
  109. package/dist/components/ui/dashboard-transactions-table.mjs +45 -52
  110. package/dist/components/ui/data-table.mjs +2 -2
  111. package/dist/components/ui/date-picker.mjs +2 -2
  112. package/dist/components/ui/debt-accordion.mjs +7 -7
  113. package/dist/components/ui/delete-contact-component.mjs +4 -4
  114. package/dist/components/ui/dialog.mjs +3 -3
  115. package/dist/components/ui/document-checklist-template.mjs +2 -2
  116. package/dist/components/ui/expense-bar-chart.js +8 -7
  117. package/dist/components/ui/expense-bar-chart.mjs +5 -5
  118. package/dist/components/ui/expense-categories-bar.js +261 -0
  119. package/dist/components/ui/expense-categories-bar.mjs +12 -0
  120. package/dist/components/ui/expense-work-details.js +8 -7
  121. package/dist/components/ui/expense-work-details.mjs +7 -7
  122. package/dist/components/ui/file-preview-dialog.mjs +4 -4
  123. package/dist/components/ui/financial-cards.mjs +2 -2
  124. package/dist/components/ui/financial-drawers.mjs +2 -2
  125. package/dist/components/ui/financial-sections.mjs +3 -3
  126. package/dist/components/ui/frontend-signup-steps.mjs +2 -2
  127. package/dist/components/ui/income-bar-chart.js +8 -7
  128. package/dist/components/ui/income-bar-chart.mjs +5 -5
  129. package/dist/components/ui/income-sources-card.mjs +1 -1
  130. package/dist/components/ui/income-summary-component.mjs +1 -1
  131. package/dist/components/ui/income-work-details.js +8 -7
  132. package/dist/components/ui/income-work-details.mjs +6 -6
  133. package/dist/components/ui/incoming-outgoings-card.js +2 -2
  134. package/dist/components/ui/incoming-outgoings-card.mjs +3 -3
  135. package/dist/components/ui/interest-rate-section.mjs +1 -1
  136. package/dist/components/ui/kanban-column.mjs +5 -5
  137. package/dist/components/ui/loan-application-cards.mjs +3 -3
  138. package/dist/components/ui/loan-financials.mjs +3 -3
  139. package/dist/components/ui/money-input-with-slider.mjs +2 -2
  140. package/dist/components/ui/opportunity-card.mjs +4 -4
  141. package/dist/components/ui/opportunity-edit-modals.mjs +4 -4
  142. package/dist/components/ui/opportunity-summary-tab.mjs +8 -8
  143. package/dist/components/ui/pagination.mjs +2 -2
  144. package/dist/components/ui/pipeline-board.mjs +6 -6
  145. package/dist/components/ui/pipeline-chart.mjs +2 -2
  146. package/dist/components/ui/pipeline-dialogs.mjs +4 -4
  147. package/dist/components/ui/policy-ai/index.mjs +2 -2
  148. package/dist/components/ui/property-asset-card.mjs +4 -4
  149. package/dist/components/ui/property-cashflow-doughnut-chart.js +3 -3
  150. package/dist/components/ui/property-cashflow-doughnut-chart.mjs +5 -5
  151. package/dist/components/ui/property-debt-equity-doughnut-chart.js +3 -3
  152. package/dist/components/ui/property-debt-equity-doughnut-chart.mjs +5 -5
  153. package/dist/components/ui/property-list-carousel.mjs +2 -2
  154. package/dist/components/ui/property-mobile-estimate-line-chart.js +4 -4
  155. package/dist/components/ui/property-mobile-estimate-line-chart.mjs +5 -5
  156. package/dist/components/ui/property-report-dialog.mjs +5 -5
  157. package/dist/components/ui/resource-center/index.mjs +4 -4
  158. package/dist/components/ui/review-alerts-dialog.mjs +4 -4
  159. package/dist/components/ui/savings-goal-modal.mjs +7 -7
  160. package/dist/components/ui/scenario-drawer.mjs +4 -4
  161. package/dist/components/ui/scenario-list.js +4 -7
  162. package/dist/components/ui/scenario-list.mjs +5 -5
  163. package/dist/components/ui/share-details-dialog.mjs +4 -4
  164. package/dist/components/ui/sidebar-nav.mjs +4 -4
  165. package/dist/components/ui/signup-form-primitives.mjs +2 -2
  166. package/dist/components/ui/stage-timeline.mjs +1 -1
  167. package/dist/components/ui/support-agent/index.mjs +2 -2
  168. package/dist/components/ui/top-three-product.mjs +1 -1
  169. package/dist/components/ui/transactions-expense-categories-doughnut-chart.js +3 -3
  170. package/dist/components/ui/transactions-expense-categories-doughnut-chart.mjs +5 -5
  171. package/dist/components/ui/transactions-income-expense-bar-chart.mjs +5 -5
  172. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.js +4 -4
  173. package/dist/components/ui/transactions-liabilities-breakdown-doughnut-chart.mjs +5 -5
  174. package/dist/components/ui/transactions-summary-block.js +13 -0
  175. package/dist/components/ui/transactions-summary-block.mjs +13 -0
  176. package/dist/index.js +2092 -1935
  177. package/dist/index.mjs +138 -134
  178. package/dist/lib/format-currency.js +54 -0
  179. package/dist/lib/format-currency.mjs +9 -0
  180. package/dist/styles.css +1 -1
  181. package/package.json +6 -1
  182. package/src/component-descriptions/assets-liabilities-side-card.md +19 -0
  183. package/src/component-descriptions/pipeline-chart.md +17 -0
  184. package/src/components/index.tsx +6 -0
  185. package/src/components/ui/assets-liabilities-side-card.tsx +43 -83
  186. package/src/components/ui/borrowing-capacity-atoms.tsx +4 -7
  187. package/src/components/ui/borrowing-capacity-line-chart.tsx +4 -4
  188. package/src/components/ui/cash-balance-line-chart.tsx +123 -42
  189. package/src/components/ui/cashflow-bar-chart.tsx +7 -4
  190. package/src/components/ui/chart-shared.tsx +4 -4
  191. package/src/components/ui/dashboard-expense-categories.tsx +136 -60
  192. package/src/components/ui/dashboard-transactions-table.tsx +42 -28
  193. package/src/components/ui/expense-bar-chart.tsx +32 -19
  194. package/src/components/ui/expense-categories-bar.tsx +178 -0
  195. package/src/components/ui/income-bar-chart.tsx +32 -19
  196. package/src/components/ui/incoming-outgoings-card.tsx +2 -2
  197. package/src/components/ui/property-mobile-estimate-line-chart.tsx +4 -4
  198. package/src/components/ui/scenario-list.tsx +2 -2
  199. package/src/components/ui/transactions-liabilities-breakdown-doughnut-chart.tsx +7 -5
  200. package/src/components/ui/transactions-summary-block.tsx +39 -6
  201. package/src/styles/styles-css.ts +1 -1
  202. package/tsup.config.ts +2 -0
  203. package/dist/{chunk-CEYEK3TI.mjs → chunk-B4R62ID3.mjs} +3 -3
  204. package/dist/{chunk-7LN5OGC2.mjs → chunk-E3VAK4EB.mjs} +3 -3
  205. package/dist/{chunk-EY36WDCF.mjs → chunk-EEZFXE3P.mjs} +3 -3
  206. package/dist/{chunk-T5FRVEJQ.mjs → chunk-JTMN36BK.mjs} +3 -3
  207. /package/dist/{chunk-MN5NYQCL.mjs → chunk-XQDTFNVL.mjs} +0 -0
@@ -429,7 +429,7 @@ function ChartLegendItem({
429
429
  }
430
430
  }
431
431
  ),
432
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none", children: label })
432
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-sm text-muted-foreground leading-none", children: label })
433
433
  ] });
434
434
  }
435
435
  function ChartPeriodButton({
@@ -474,7 +474,8 @@ function ExpenseBarChart({
474
474
  height = 280,
475
475
  width = "100%",
476
476
  className,
477
- isLoading = false
477
+ isLoading = false,
478
+ showPeriodSelector = true
478
479
  }) {
479
480
  const periods = CHART_PERIODS[granularity];
480
481
  const [period, setPeriod] = (0, import_react3.useState)(defaultPeriod);
@@ -574,7 +575,7 @@ function ExpenseBarChart({
574
575
  stacked: true,
575
576
  grid: { display: false },
576
577
  border: { display: false },
577
- ticks: { font: { size: 10 }, color: FALLBACK_TICK }
578
+ ticks: { font: { size: 12 }, color: FALLBACK_TICK }
578
579
  },
579
580
  y: {
580
581
  display: showYAxis,
@@ -582,7 +583,7 @@ function ExpenseBarChart({
582
583
  grid: { display: false },
583
584
  border: { display: false },
584
585
  ticks: {
585
- font: { size: 10 },
586
+ font: { size: 12 },
586
587
  color: FALLBACK_TICK,
587
588
  maxTicksLimit: 5,
588
589
  padding: 8,
@@ -599,9 +600,9 @@ function ExpenseBarChart({
599
600
  className: cn("w-full py-4 sm:py-6 gap-2", className),
600
601
  style: { maxWidth: width, fontFamily },
601
602
  children: [
602
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
603
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
604
- /* @__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)(
603
+ (title || showPeriodSelector) && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
604
+ title && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
605
+ 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)(
605
606
  ChartPeriodButton,
606
607
  {
607
608
  period: p,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ExpenseBarChart
3
- } from "../../chunk-4LLTZ45R.mjs";
3
+ } from "../../chunk-HOXTEU5K.mjs";
4
4
  import "../../chunk-GTAVSBDO.mjs";
5
- import "../../chunk-YEWNFK5S.mjs";
5
+ import "../../chunk-WLXP4OOF.mjs";
6
6
  import "../../chunk-R2ON6CAN.mjs";
7
7
  import "../../chunk-3VDET466.mjs";
8
- import "../../chunk-XYSRRDBH.mjs";
9
- import "../../chunk-FRCTOAKZ.mjs";
10
- import "../../chunk-MN5NYQCL.mjs";
8
+ import "../../chunk-XQDTFNVL.mjs";
11
9
  import "../../chunk-NOOEKOWY.mjs";
12
10
  import "../../chunk-R4HCRDU5.mjs";
11
+ import "../../chunk-XYSRRDBH.mjs";
12
+ import "../../chunk-FRCTOAKZ.mjs";
13
13
  import "../../chunk-AFML43VJ.mjs";
14
14
  import "../../chunk-WNQUEZJF.mjs";
15
15
  export {
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ var __objRest = (source, exclude) => {
24
+ var target = {};
25
+ for (var prop in source)
26
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
+ target[prop] = source[prop];
28
+ if (source != null && __getOwnPropSymbols)
29
+ for (var prop of __getOwnPropSymbols(source)) {
30
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
+ target[prop] = source[prop];
32
+ }
33
+ return target;
34
+ };
35
+ var __export = (target, all) => {
36
+ for (var name in all)
37
+ __defProp(target, name, { get: all[name], enumerable: true });
38
+ };
39
+ var __copyProps = (to, from, except, desc) => {
40
+ if (from && typeof from === "object" || typeof from === "function") {
41
+ for (let key of __getOwnPropNames(from))
42
+ if (!__hasOwnProp.call(to, key) && key !== except)
43
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
44
+ }
45
+ return to;
46
+ };
47
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
48
+
49
+ // src/components/ui/expense-categories-bar.tsx
50
+ var expense_categories_bar_exports = {};
51
+ __export(expense_categories_bar_exports, {
52
+ ExpenseCategoriesBar: () => ExpenseCategoriesBar
53
+ });
54
+ module.exports = __toCommonJS(expense_categories_bar_exports);
55
+ var import_react2 = require("react");
56
+ var import_lucide_react = require("lucide-react");
57
+
58
+ // src/components/ui/tooltip.tsx
59
+ var import_tooltip = require("@base-ui/react/tooltip");
60
+
61
+ // src/lib/utils.ts
62
+ var import_clsx = require("clsx");
63
+ var import_tailwind_merge = require("tailwind-merge");
64
+ var twMerge = (0, import_tailwind_merge.extendTailwindMerge)({
65
+ extend: {
66
+ classGroups: {
67
+ "font-size": [
68
+ {
69
+ text: [
70
+ "display-large",
71
+ "display-medium",
72
+ "display-small",
73
+ "h1",
74
+ "h2",
75
+ "h3",
76
+ "h4",
77
+ "h5",
78
+ "h6",
79
+ "body-large",
80
+ "body-medium",
81
+ "body-small",
82
+ "label-large",
83
+ "label-medium",
84
+ "label-small",
85
+ "button",
86
+ "button-xs",
87
+ "caption",
88
+ "overline",
89
+ "code"
90
+ ]
91
+ }
92
+ ]
93
+ }
94
+ }
95
+ });
96
+ function cn(...inputs) {
97
+ return twMerge((0, import_clsx.clsx)(inputs));
98
+ }
99
+
100
+ // src/lib/theme-provider.tsx
101
+ var import_react = require("react");
102
+ var import_jsx_runtime = require("react/jsx-runtime");
103
+ var ThemeVarsContext = (0, import_react.createContext)({});
104
+ function useThemeVars() {
105
+ return (0, import_react.useContext)(ThemeVarsContext);
106
+ }
107
+
108
+ // src/components/ui/tooltip.tsx
109
+ var import_jsx_runtime2 = require("react/jsx-runtime");
110
+ function Tooltip(_a) {
111
+ var props = __objRest(_a, []);
112
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_tooltip.Tooltip.Root, __spreadValues({ "data-slot": "tooltip" }, props));
113
+ }
114
+ function TooltipTrigger(_a) {
115
+ var props = __objRest(_a, []);
116
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_tooltip.Tooltip.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
117
+ }
118
+ function TooltipContent(_a) {
119
+ var _b = _a, {
120
+ className,
121
+ sideOffset = 8,
122
+ side,
123
+ children,
124
+ style
125
+ } = _b, props = __objRest(_b, [
126
+ "className",
127
+ "sideOffset",
128
+ "side",
129
+ "children",
130
+ "style"
131
+ ]);
132
+ const themeVars = useThemeVars();
133
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_tooltip.Tooltip.Positioner, { sideOffset, side, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
134
+ import_tooltip.Tooltip.Popup,
135
+ __spreadProps(__spreadValues({
136
+ className: cn(
137
+ "relative z-50 w-fit animate-in overflow-visible bg-brand-secondary px-3 py-1.5 text-caption text-balance text-brand-secondary-foreground fade-in-0 zoom-in-95 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",
138
+ className
139
+ ),
140
+ "data-slot": "tooltip-content",
141
+ style: __spreadValues(__spreadValues({}, themeVars), style)
142
+ }, props), {
143
+ children: [
144
+ children,
145
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_tooltip.Tooltip.Arrow, { className: "z-50 size-2.5 rotate-45 bg-brand-secondary data-[side=bottom]:-top-1 data-[side=left]:-right-1 data-[side=right]:-left-1 data-[side=top]:-bottom-1" })
146
+ ]
147
+ })
148
+ ) }) });
149
+ }
150
+
151
+ // src/lib/format-currency.ts
152
+ function formatCurrency(value, options) {
153
+ const { decimals = 0, showSign = false } = options != null ? options : {};
154
+ const abs = Math.abs(value);
155
+ const formatted = new Intl.NumberFormat("en-AU", {
156
+ style: "currency",
157
+ currency: "AUD",
158
+ minimumFractionDigits: decimals,
159
+ maximumFractionDigits: decimals
160
+ }).format(abs);
161
+ if (!showSign) return value < 0 ? `-${formatted}` : formatted;
162
+ if (value > 0) return `+${formatted}`;
163
+ if (value < 0) return `-${formatted}`;
164
+ return formatted;
165
+ }
166
+
167
+ // src/components/ui/expense-categories-bar.tsx
168
+ var import_jsx_runtime3 = require("react/jsx-runtime");
169
+ function ExpenseCategoriesBar({
170
+ title,
171
+ subtitle,
172
+ tooltipText,
173
+ parts = [],
174
+ icons = [],
175
+ color = "secondary",
176
+ className
177
+ }) {
178
+ const [hoveredIndex, setHoveredIndex] = (0, import_react2.useState)(-1);
179
+ const segmentBase = color === "primary" ? "bg-primary" : "bg-brand-secondary";
180
+ const segmentHover = color === "primary" ? "border-primary/50 bg-primary/60" : "border-brand-secondary/50 bg-brand-secondary/60";
181
+ const iconDefault = color === "primary" ? "[&_svg]:stroke-primary-foreground [&_svg]:text-primary-foreground" : "[&_svg]:stroke-brand-secondary-foreground [&_svg]:text-brand-secondary-foreground";
182
+ const iconHovered = "[&_svg]:stroke-foreground [&_svg]:text-foreground";
183
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cn("flex flex-col", className), children: [
184
+ (title || subtitle) && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-baseline gap-2", children: [
185
+ title && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "m-0 overflow-hidden text-ellipsis whitespace-nowrap text-[22px] font-normal leading-tight", children: title }),
186
+ subtitle && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex min-w-0 items-center gap-1", children: [
187
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "whitespace-nowrap text-sm text-muted-foreground", children: subtitle }),
188
+ tooltipText && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Tooltip, { children: [
189
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
190
+ TooltipTrigger,
191
+ {
192
+ render: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
193
+ "button",
194
+ {
195
+ type: "button",
196
+ className: "flex items-center text-muted-foreground transition-colors hover:text-foreground"
197
+ }
198
+ ),
199
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.Info, { className: "size-4" })
200
+ }
201
+ ),
202
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipContent, { side: "top", children: tooltipText })
203
+ ] })
204
+ ] })
205
+ ] }),
206
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
207
+ "div",
208
+ {
209
+ className: "mt-4 mb-6 flex h-8 w-full gap-px",
210
+ onMouseLeave: () => setHoveredIndex(-1),
211
+ children: parts.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "grow bg-muted" }) : parts.map((part, index) => {
212
+ const isHovered = hoveredIndex === index;
213
+ const showIcon = part.percentage > 0.01;
214
+ const icon = icons[index];
215
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Tooltip, { open: isHovered, children: [
216
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
217
+ TooltipTrigger,
218
+ {
219
+ render: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
220
+ "div",
221
+ {
222
+ className: cn(
223
+ "relative border border-transparent transition-colors duration-200",
224
+ segmentBase,
225
+ isHovered && segmentHover
226
+ ),
227
+ style: {
228
+ flexGrow: Math.max(part.percentage, 1e-4) * 10
229
+ },
230
+ onMouseEnter: () => setHoveredIndex(index)
231
+ }
232
+ ),
233
+ children: showIcon && icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
234
+ "div",
235
+ {
236
+ className: cn(
237
+ "absolute left-2 top-0 bottom-0 flex items-center [&_svg]:size-4",
238
+ isHovered ? iconHovered : iconDefault
239
+ ),
240
+ children: icon
241
+ }
242
+ )
243
+ }
244
+ ),
245
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipContent, { side: "top", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex flex-col gap-1.5 min-w-[120px]", children: [
246
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-center gap-2", children: [
247
+ icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "[&_svg]:size-4", children: icon }),
248
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "text-sm font-semibold leading-tight line-clamp-2", children: part.title })
249
+ ] }),
250
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "self-end text-sm font-bold", children: formatCurrency(part.amount) })
251
+ ] }) })
252
+ ] }, part.id);
253
+ })
254
+ }
255
+ )
256
+ ] });
257
+ }
258
+ // Annotate the CommonJS export names for ESM import in node:
259
+ 0 && (module.exports = {
260
+ ExpenseCategoriesBar
261
+ });
@@ -0,0 +1,12 @@
1
+ import {
2
+ ExpenseCategoriesBar
3
+ } from "../../chunk-LFWNKXZU.mjs";
4
+ import "../../chunk-3S6KVFF5.mjs";
5
+ import "../../chunk-XQDTFNVL.mjs";
6
+ import "../../chunk-XYSRRDBH.mjs";
7
+ import "../../chunk-FRCTOAKZ.mjs";
8
+ import "../../chunk-AFML43VJ.mjs";
9
+ import "../../chunk-WNQUEZJF.mjs";
10
+ export {
11
+ ExpenseCategoriesBar
12
+ };
@@ -494,7 +494,7 @@ function ChartLegendItem({
494
494
  }
495
495
  }
496
496
  ),
497
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none", children: label })
497
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-sm text-muted-foreground leading-none", children: label })
498
498
  ] });
499
499
  }
500
500
  function ChartPeriodButton({
@@ -539,7 +539,8 @@ function ExpenseBarChart({
539
539
  height = 280,
540
540
  width = "100%",
541
541
  className,
542
- isLoading = false
542
+ isLoading = false,
543
+ showPeriodSelector = true
543
544
  }) {
544
545
  const periods = CHART_PERIODS[granularity];
545
546
  const [period, setPeriod] = (0, import_react4.useState)(defaultPeriod);
@@ -639,7 +640,7 @@ function ExpenseBarChart({
639
640
  stacked: true,
640
641
  grid: { display: false },
641
642
  border: { display: false },
642
- ticks: { font: { size: 10 }, color: FALLBACK_TICK }
643
+ ticks: { font: { size: 12 }, color: FALLBACK_TICK }
643
644
  },
644
645
  y: {
645
646
  display: showYAxis,
@@ -647,7 +648,7 @@ function ExpenseBarChart({
647
648
  grid: { display: false },
648
649
  border: { display: false },
649
650
  ticks: {
650
- font: { size: 10 },
651
+ font: { size: 12 },
651
652
  color: FALLBACK_TICK,
652
653
  maxTicksLimit: 5,
653
654
  padding: 8,
@@ -664,9 +665,9 @@ function ExpenseBarChart({
664
665
  className: cn("w-full py-4 sm:py-6 gap-2", className),
665
666
  style: { maxWidth: width, fontFamily },
666
667
  children: [
667
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
668
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
669
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CardAction, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex gap-0.5 sm:gap-1", children: periods.map((p) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
668
+ (title || showPeriodSelector) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
669
+ title && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
670
+ showPeriodSelector && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CardAction, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex gap-0.5 sm:gap-1", children: periods.map((p) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
670
671
  ChartPeriodButton,
671
672
  {
672
673
  period: p,
@@ -3,9 +3,9 @@ import {
3
3
  } from "../../chunk-I433SC7S.mjs";
4
4
  import {
5
5
  ExpenseBarChart
6
- } from "../../chunk-4LLTZ45R.mjs";
6
+ } from "../../chunk-HOXTEU5K.mjs";
7
7
  import "../../chunk-GTAVSBDO.mjs";
8
- import "../../chunk-YEWNFK5S.mjs";
8
+ import "../../chunk-WLXP4OOF.mjs";
9
9
  import "../../chunk-R2ON6CAN.mjs";
10
10
  import {
11
11
  Card,
@@ -22,19 +22,19 @@ import {
22
22
  DropdownMenuItem,
23
23
  DropdownMenuTrigger
24
24
  } from "../../chunk-H5DTKPJ2.mjs";
25
+ import {
26
+ formatCurrency
27
+ } from "../../chunk-XQDTFNVL.mjs";
25
28
  import "../../chunk-OWFQSXVD.mjs";
26
29
  import "../../chunk-6QAFGZC2.mjs";
27
30
  import "../../chunk-LSRGA5BI.mjs";
28
31
  import "../../chunk-LBTHZSBT.mjs";
29
- import "../../chunk-XYSRRDBH.mjs";
30
- import "../../chunk-FRCTOAKZ.mjs";
31
- import {
32
- formatCurrency
33
- } from "../../chunk-MN5NYQCL.mjs";
34
32
  import {
35
33
  Button
36
34
  } from "../../chunk-NOOEKOWY.mjs";
37
35
  import "../../chunk-R4HCRDU5.mjs";
36
+ import "../../chunk-XYSRRDBH.mjs";
37
+ import "../../chunk-FRCTOAKZ.mjs";
38
38
  import {
39
39
  cn
40
40
  } from "../../chunk-AFML43VJ.mjs";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  FilePreviewDialog
3
- } from "../../chunk-7NQKFPXE.mjs";
3
+ } from "../../chunk-ZRYG6ICN.mjs";
4
4
  import "../../chunk-FL7DEYUA.mjs";
5
5
  import "../../chunk-GTAVSBDO.mjs";
6
6
  import "../../chunk-3S6KVFF5.mjs";
7
7
  import "../../chunk-GT3RU6GA.mjs";
8
8
  import "../../chunk-K6VCC2MK.mjs";
9
- import "../../chunk-T5FRVEJQ.mjs";
9
+ import "../../chunk-JTMN36BK.mjs";
10
10
  import "../../chunk-JVMXMFBB.mjs";
11
- import "../../chunk-XYSRRDBH.mjs";
12
- import "../../chunk-FRCTOAKZ.mjs";
13
11
  import "../../chunk-NOOEKOWY.mjs";
14
12
  import "../../chunk-R4HCRDU5.mjs";
13
+ import "../../chunk-XYSRRDBH.mjs";
14
+ import "../../chunk-FRCTOAKZ.mjs";
15
15
  import "../../chunk-AFML43VJ.mjs";
16
16
  import "../../chunk-WNQUEZJF.mjs";
17
17
  export {
@@ -6,14 +6,14 @@ import {
6
6
  IncomeCard,
7
7
  OtherLiabilityCard,
8
8
  PropertyCard
9
- } from "../../chunk-7LN5OGC2.mjs";
9
+ } from "../../chunk-E3VAK4EB.mjs";
10
10
  import "../../chunk-DQB4EPIS.mjs";
11
11
  import "../../chunk-JTK6VJXY.mjs";
12
12
  import "../../chunk-X6RC5UWB.mjs";
13
13
  import "../../chunk-LHWJQNLG.mjs";
14
- import "../../chunk-UNACI2YK.mjs";
15
14
  import "../../chunk-NOOEKOWY.mjs";
16
15
  import "../../chunk-R4HCRDU5.mjs";
16
+ import "../../chunk-UNACI2YK.mjs";
17
17
  import "../../chunk-AFML43VJ.mjs";
18
18
  import "../../chunk-WNQUEZJF.mjs";
19
19
  export {
@@ -5,10 +5,10 @@ import {
5
5
  import "../../chunk-WE4YKBDE.mjs";
6
6
  import "../../chunk-H3PTREG6.mjs";
7
7
  import "../../chunk-JVMXMFBB.mjs";
8
- import "../../chunk-XYSRRDBH.mjs";
9
- import "../../chunk-FRCTOAKZ.mjs";
10
8
  import "../../chunk-NOOEKOWY.mjs";
11
9
  import "../../chunk-R4HCRDU5.mjs";
10
+ import "../../chunk-XYSRRDBH.mjs";
11
+ import "../../chunk-FRCTOAKZ.mjs";
12
12
  import "../../chunk-AFML43VJ.mjs";
13
13
  import "../../chunk-WNQUEZJF.mjs";
14
14
  export {
@@ -7,16 +7,16 @@ import {
7
7
  LoanScenarioSection,
8
8
  OtherLiabilitiesSection,
9
9
  PropertyHoldingsSection
10
- } from "../../chunk-EHQL64B7.mjs";
11
- import "../../chunk-7LN5OGC2.mjs";
10
+ } from "../../chunk-4SUXTO2Z.mjs";
11
+ import "../../chunk-E3VAK4EB.mjs";
12
12
  import "../../chunk-DQB4EPIS.mjs";
13
13
  import "../../chunk-JTK6VJXY.mjs";
14
14
  import "../../chunk-2GIYVERS.mjs";
15
15
  import "../../chunk-X6RC5UWB.mjs";
16
16
  import "../../chunk-LHWJQNLG.mjs";
17
- import "../../chunk-UNACI2YK.mjs";
18
17
  import "../../chunk-NOOEKOWY.mjs";
19
18
  import "../../chunk-R4HCRDU5.mjs";
19
+ import "../../chunk-UNACI2YK.mjs";
20
20
  import "../../chunk-AFML43VJ.mjs";
21
21
  import "../../chunk-WNQUEZJF.mjs";
22
22
  export {
@@ -20,10 +20,10 @@ import "../../chunk-OWFQSXVD.mjs";
20
20
  import "../../chunk-6QAFGZC2.mjs";
21
21
  import "../../chunk-LSRGA5BI.mjs";
22
22
  import "../../chunk-LBTHZSBT.mjs";
23
- import "../../chunk-XYSRRDBH.mjs";
24
- import "../../chunk-FRCTOAKZ.mjs";
25
23
  import "../../chunk-NOOEKOWY.mjs";
26
24
  import "../../chunk-R4HCRDU5.mjs";
25
+ import "../../chunk-XYSRRDBH.mjs";
26
+ import "../../chunk-FRCTOAKZ.mjs";
27
27
  import "../../chunk-AFML43VJ.mjs";
28
28
  import "../../chunk-WNQUEZJF.mjs";
29
29
  export {
@@ -429,7 +429,7 @@ function ChartLegendItem({
429
429
  }
430
430
  }
431
431
  ),
432
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[11px] text-muted-foreground leading-none", children: label })
432
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-sm text-muted-foreground leading-none", children: label })
433
433
  ] });
434
434
  }
435
435
  function ChartPeriodButton({
@@ -474,7 +474,8 @@ function IncomeBarChart({
474
474
  height = 280,
475
475
  width = "100%",
476
476
  className,
477
- isLoading = false
477
+ isLoading = false,
478
+ showPeriodSelector = true
478
479
  }) {
479
480
  const periods = CHART_PERIODS[granularity];
480
481
  const [period, setPeriod] = (0, import_react3.useState)(defaultPeriod);
@@ -573,7 +574,7 @@ function IncomeBarChart({
573
574
  stacked: true,
574
575
  grid: { display: false },
575
576
  border: { display: false },
576
- ticks: { font: { size: 10 }, color: FALLBACK_TICK }
577
+ ticks: { font: { size: 12 }, color: FALLBACK_TICK }
577
578
  },
578
579
  y: {
579
580
  display: showYAxis,
@@ -581,7 +582,7 @@ function IncomeBarChart({
581
582
  grid: { display: false },
582
583
  border: { display: false },
583
584
  ticks: {
584
- font: { size: 10 },
585
+ font: { size: 12 },
585
586
  color: FALLBACK_TICK,
586
587
  maxTicksLimit: 5,
587
588
  padding: 8,
@@ -598,9 +599,9 @@ function IncomeBarChart({
598
599
  className: cn("w-full py-4 sm:py-6 gap-2", className),
599
600
  style: { maxWidth: width, fontFamily },
600
601
  children: [
601
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
602
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
603
- /* @__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)(
602
+ (title || showPeriodSelector) && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(CardHeader, { className: "px-3 sm:px-6", children: [
603
+ title && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wide", children: title }),
604
+ 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)(
604
605
  ChartPeriodButton,
605
606
  {
606
607
  period: p,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  IncomeBarChart
3
- } from "../../chunk-IRZWYTGV.mjs";
3
+ } from "../../chunk-M32YSAWL.mjs";
4
4
  import "../../chunk-GTAVSBDO.mjs";
5
- import "../../chunk-YEWNFK5S.mjs";
5
+ import "../../chunk-WLXP4OOF.mjs";
6
6
  import "../../chunk-R2ON6CAN.mjs";
7
7
  import "../../chunk-3VDET466.mjs";
8
- import "../../chunk-XYSRRDBH.mjs";
9
- import "../../chunk-FRCTOAKZ.mjs";
10
- import "../../chunk-MN5NYQCL.mjs";
8
+ import "../../chunk-XQDTFNVL.mjs";
11
9
  import "../../chunk-NOOEKOWY.mjs";
12
10
  import "../../chunk-R4HCRDU5.mjs";
11
+ import "../../chunk-XYSRRDBH.mjs";
12
+ import "../../chunk-FRCTOAKZ.mjs";
13
13
  import "../../chunk-AFML43VJ.mjs";
14
14
  import "../../chunk-WNQUEZJF.mjs";
15
15
  export {
@@ -9,7 +9,7 @@ import {
9
9
  } from "../../chunk-JVMXMFBB.mjs";
10
10
  import {
11
11
  formatCurrency
12
- } from "../../chunk-MN5NYQCL.mjs";
12
+ } from "../../chunk-XQDTFNVL.mjs";
13
13
  import {
14
14
  cn
15
15
  } from "../../chunk-AFML43VJ.mjs";
@@ -3,7 +3,7 @@ import {
3
3
  } from "../../chunk-X6RC5UWB.mjs";
4
4
  import {
5
5
  formatCurrency
6
- } from "../../chunk-MN5NYQCL.mjs";
6
+ } from "../../chunk-XQDTFNVL.mjs";
7
7
  import {
8
8
  Button
9
9
  } from "../../chunk-NOOEKOWY.mjs";