@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
@@ -9,22 +9,34 @@ 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";
16
- import "../../chunk-WNQUEZJF.mjs";
16
+ import {
17
+ __spreadValues
18
+ } from "../../chunk-WNQUEZJF.mjs";
17
19
 
18
20
  // src/components/ui/dashboard-expense-categories.tsx
19
21
  import { useState } from "react";
20
- import { ChevronDown, ChevronRight } from "lucide-react";
22
+ import { ChevronDown, ChevronRight, ListFilter } from "lucide-react";
21
23
  import { jsx, jsxs } from "react/jsx-runtime";
22
- function ProgressBar({ pct, className }) {
24
+ var SECONDARY_ACTIVE_BG = "color-mix(in oklch, var(--brand-secondary) 8%, transparent)";
25
+ var SECONDARY_ACTIVE_HOVER_BG = "color-mix(in oklch, var(--brand-secondary) 12%, transparent)";
26
+ function ProgressBar({
27
+ pct,
28
+ className,
29
+ colorScheme = "primary"
30
+ }) {
23
31
  return /* @__PURE__ */ jsx("div", { className: cn("h-1.5 w-full overflow-hidden bg-muted", className), children: /* @__PURE__ */ jsx(
24
32
  "div",
25
33
  {
26
34
  className: "h-full bg-primary transition-all",
27
- style: { width: `${Math.min(100, Math.max(0, pct))}%` },
35
+ style: __spreadValues({
36
+ width: `${Math.min(100, Math.max(0, pct))}%`
37
+ }, colorScheme === "secondary" && {
38
+ backgroundColor: "var(--brand-secondary)"
39
+ }),
28
40
  "aria-hidden": "true"
29
41
  }
30
42
  ) });
@@ -32,32 +44,49 @@ function ProgressBar({ pct, className }) {
32
44
  function SubCategoryRow({
33
45
  sub,
34
46
  isSelected,
47
+ colorScheme = "primary",
35
48
  onClick
36
49
  }) {
50
+ const isSecondary = colorScheme === "secondary";
37
51
  return /* @__PURE__ */ jsxs(
38
- "button",
52
+ "div",
39
53
  {
40
- type: "button",
41
- onClick,
42
54
  className: cn(
43
- "flex w-full flex-col gap-1 py-1.5 pl-8 text-left transition-colors",
44
- isSelected ? "bg-primary/5" : "hover:bg-muted/50"
55
+ "flex w-full flex-col gap-1 py-1.5 pl-8",
56
+ isSelected && !isSecondary && "bg-primary/5"
45
57
  ),
58
+ style: isSelected && isSecondary ? { backgroundColor: SECONDARY_ACTIVE_BG } : void 0,
46
59
  children: [
47
60
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 text-xs", children: [
48
- /* @__PURE__ */ jsx(
49
- "span",
50
- {
51
- className: cn(
52
- "truncate",
53
- isSelected ? "font-medium text-primary" : "text-muted-foreground"
54
- ),
55
- children: sub.name
56
- }
57
- ),
61
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
62
+ /* @__PURE__ */ jsx(
63
+ "span",
64
+ {
65
+ className: cn(
66
+ "truncate text-muted-foreground",
67
+ isSelected && "font-medium"
68
+ ),
69
+ children: sub.name
70
+ }
71
+ ),
72
+ /* @__PURE__ */ jsx(
73
+ "button",
74
+ {
75
+ type: "button",
76
+ onClick,
77
+ "aria-label": `Filter by ${sub.name}`,
78
+ "aria-pressed": isSelected,
79
+ className: cn(
80
+ "shrink-0 transition-colors",
81
+ isSelected ? isSecondary ? "text-[var(--brand-secondary)]" : "text-primary" : "text-muted-foreground/50 hover:text-muted-foreground"
82
+ ),
83
+ children: /* @__PURE__ */ jsx(ListFilter, { size: 12 })
84
+ }
85
+ )
86
+ ] }),
58
87
  /* @__PURE__ */ jsx("span", { className: "shrink-0 font-medium text-foreground", children: formatCurrency(sub.amount) })
59
88
  ] }),
60
- /* @__PURE__ */ jsx(ProgressBar, { pct: sub.pct })
89
+ /* @__PURE__ */ jsx(ProgressBar, { pct: sub.pct, colorScheme })
61
90
  ]
62
91
  }
63
92
  );
@@ -65,68 +94,67 @@ function SubCategoryRow({
65
94
  function CategoryRow({
66
95
  item,
67
96
  selectedCategoryId,
97
+ colorScheme = "primary",
68
98
  onFilterClick
69
99
  }) {
70
100
  var _a, _b, _c, _d;
71
101
  const [expanded, setExpanded] = useState(false);
102
+ const [hovered, setHovered] = useState(false);
72
103
  const hasChildren = ((_b = (_a = item.subCategories) == null ? void 0 : _a.length) != null ? _b : 0) > 0;
73
104
  const isSelected = selectedCategoryId === item.id;
74
- const isChildSelected = hasChildren ? (_d = (_c = item.subCategories) == null ? void 0 : _c.some((s) => s.id === selectedCategoryId)) != null ? _d : false : false;
105
+ const isChildSelected = hasChildren && ((_d = (_c = item.subCategories) == null ? void 0 : _c.some((s) => s.id === selectedCategoryId)) != null ? _d : false);
75
106
  const isActive = isSelected || isChildSelected;
107
+ const isSecondary = colorScheme === "secondary";
108
+ const wrapperStyle = isSecondary && isActive ? {
109
+ backgroundColor: hovered ? SECONDARY_ACTIVE_HOVER_BG : SECONDARY_ACTIVE_BG
110
+ } : void 0;
76
111
  return /* @__PURE__ */ jsxs(
77
112
  "div",
78
113
  {
79
114
  className: cn(
80
115
  "border-b border-border last:border-0 transition-colors",
81
- isActive && "bg-primary/5"
116
+ isActive && !isSecondary && "bg-primary/5"
82
117
  ),
118
+ style: wrapperStyle,
83
119
  children: [
84
120
  /* @__PURE__ */ jsxs(
85
121
  "button",
86
122
  {
87
123
  type: "button",
88
124
  className: cn(
89
- "flex w-full items-start gap-3 py-3 text-left hover:bg-muted/40 transition-colors",
90
- isActive && "hover:bg-primary/10"
125
+ "flex w-full items-start gap-3 py-3 text-left transition-colors",
126
+ !isSecondary && "hover:bg-muted/40",
127
+ !isSecondary && isActive && "hover:bg-primary/10"
91
128
  ),
92
- onClick: () => onFilterClick(isSelected ? null : item.id),
93
- "aria-pressed": isSelected,
129
+ onMouseEnter: () => setHovered(true),
130
+ onMouseLeave: () => setHovered(false),
131
+ onClick: () => hasChildren && setExpanded((v) => !v),
132
+ "aria-expanded": hasChildren ? expanded : void 0,
94
133
  children: [
95
- /* @__PURE__ */ jsx(
96
- "span",
97
- {
98
- className: "mt-0.5 shrink-0 text-muted-foreground",
99
- onClick: (e) => {
100
- if (!hasChildren) return;
101
- e.stopPropagation();
102
- setExpanded((v) => !v);
103
- },
104
- "aria-label": expanded ? "Collapse" : "Expand",
105
- children: hasChildren ? expanded ? /* @__PURE__ */ jsx(ChevronDown, { size: 14 }) : /* @__PURE__ */ jsx(ChevronRight, { size: 14 }) : /* @__PURE__ */ jsx("span", { className: "inline-block size-3.5" })
106
- }
107
- ),
108
- item.icon && /* @__PURE__ */ jsx(
109
- "span",
110
- {
111
- className: cn(
112
- "mt-0.5 shrink-0",
113
- isActive ? "text-primary" : "text-muted-foreground"
114
- ),
115
- children: item.icon
116
- }
117
- ),
134
+ /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0 text-muted-foreground", children: hasChildren ? expanded ? /* @__PURE__ */ jsx(ChevronDown, { size: 14 }) : /* @__PURE__ */ jsx(ChevronRight, { size: 14 }) : /* @__PURE__ */ jsx("span", { className: "inline-block size-3.5" }) }),
135
+ item.icon && /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0 text-muted-foreground", children: item.icon }),
118
136
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
119
137
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
120
- /* @__PURE__ */ jsx(
121
- "span",
122
- {
123
- className: cn(
124
- "truncate text-sm font-medium",
125
- isActive ? "text-primary" : "text-foreground"
126
- ),
127
- children: item.name
128
- }
129
- ),
138
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
139
+ /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium text-foreground", children: item.name }),
140
+ /* @__PURE__ */ jsx(
141
+ "button",
142
+ {
143
+ type: "button",
144
+ onClick: (e) => {
145
+ e.stopPropagation();
146
+ onFilterClick(isSelected ? null : item.id);
147
+ },
148
+ "aria-label": `Filter by ${item.name}`,
149
+ "aria-pressed": isSelected,
150
+ className: cn(
151
+ "shrink-0 transition-colors",
152
+ isActive ? isSecondary ? "text-[var(--brand-secondary)]" : "text-primary" : "text-muted-foreground/50 hover:text-muted-foreground"
153
+ ),
154
+ children: /* @__PURE__ */ jsx(ListFilter, { size: 13 })
155
+ }
156
+ )
157
+ ] }),
130
158
  /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
131
159
  /* @__PURE__ */ jsxs("span", { className: "text-xs text-muted-foreground", children: [
132
160
  item.pct.toFixed(0),
@@ -135,7 +163,14 @@ function CategoryRow({
135
163
  /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-foreground", children: formatCurrency(item.amount) })
136
164
  ] })
137
165
  ] }),
138
- /* @__PURE__ */ jsx(ProgressBar, { pct: item.pct, className: "mt-1.5" })
166
+ /* @__PURE__ */ jsx(
167
+ ProgressBar,
168
+ {
169
+ pct: item.pct,
170
+ className: "mt-1.5",
171
+ colorScheme
172
+ }
173
+ )
139
174
  ] })
140
175
  ]
141
176
  }
@@ -145,6 +180,7 @@ function CategoryRow({
145
180
  {
146
181
  sub,
147
182
  isSelected: selectedCategoryId === sub.id,
183
+ colorScheme,
148
184
  onClick: () => onFilterClick(selectedCategoryId === sub.id ? null : sub.id)
149
185
  },
150
186
  sub.id
@@ -160,11 +196,9 @@ function DashboardExpenseCategories({
160
196
  isLoading = false,
161
197
  className,
162
198
  selectedCategoryId,
163
- onCategorySelect
199
+ onCategorySelect,
200
+ colorScheme = "primary"
164
201
  }) {
165
- const handleFilterClick = (id) => {
166
- onCategorySelect == null ? void 0 : onCategorySelect(id);
167
- };
168
202
  return /* @__PURE__ */ jsxs(Card, { className: cn("flex flex-col", className), children: [
169
203
  /* @__PURE__ */ jsx(CardHeader, { className: "pb-2", children: /* @__PURE__ */ jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [
170
204
  /* @__PURE__ */ jsx(CardTitle, { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: title }),
@@ -175,7 +209,8 @@ function DashboardExpenseCategories({
175
209
  {
176
210
  item,
177
211
  selectedCategoryId,
178
- onFilterClick: handleFilterClick
212
+ colorScheme,
213
+ onFilterClick: (id) => onCategorySelect == null ? void 0 : onCategorySelect(id)
179
214
  },
180
215
  item.id
181
216
  )) }) })
@@ -959,7 +959,7 @@ function CategoryChip({
959
959
  {
960
960
  asChild: true,
961
961
  variant: "secondary",
962
- className: "cursor-pointer transition-colors hover:border-primary/40 hover:bg-primary/10 hover:text-primary",
962
+ className: "cursor-pointer transition-colors hover:bg-muted",
963
963
  children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("button", { type: "button", onClick, children: [
964
964
  label,
965
965
  /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react7.Pencil, { className: "size-2.5 shrink-0 opacity-60" })
@@ -971,50 +971,40 @@ function CategoryChip({
971
971
  }
972
972
  function TransactionRow({
973
973
  tx,
974
- isDimmed,
975
974
  canEdit,
976
975
  onChipClick
977
976
  }) {
978
977
  var _a;
979
978
  const isCredit = tx.amount >= 0;
980
979
  const categoryLabel = (_a = tx.editedCategoryName) != null ? _a : tx.category;
981
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
982
- "div",
983
- {
984
- className: cn(
985
- "flex items-start justify-between gap-4 border-b border-border py-3 last:border-0 transition-opacity",
986
- isDimmed && "opacity-30"
987
- ),
988
- children: [
989
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "min-w-0 flex-1", children: [
990
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-xs text-muted-foreground", children: formatDateShort(tx.date) }),
991
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "mt-0.5 truncate text-sm font-medium text-foreground", children: tx.description }),
992
- tx.merchant && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: tx.merchant }),
993
- categoryLabel && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
994
- CategoryChip,
995
- {
996
- label: categoryLabel,
997
- canEdit,
998
- onClick: onChipClick
999
- }
1000
- ) })
1001
- ] }),
1002
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1003
- "span",
1004
- {
1005
- className: cn(
1006
- "shrink-0 text-sm font-semibold",
1007
- isCredit ? "text-success" : "text-foreground"
1008
- ),
1009
- children: [
1010
- isCredit ? "+" : "",
1011
- formatCurrency(tx.amount, { showSign: false })
1012
- ]
1013
- }
1014
- )
1015
- ]
1016
- }
1017
- );
980
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-start justify-between gap-4 border-b border-border py-3 last:border-0", children: [
981
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "min-w-0 flex-1", children: [
982
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-xs text-muted-foreground", children: formatDateShort(tx.date) }),
983
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "mt-0.5 truncate text-sm font-medium text-foreground", children: tx.description }),
984
+ tx.merchant && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: tx.merchant }),
985
+ categoryLabel && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
986
+ CategoryChip,
987
+ {
988
+ label: categoryLabel,
989
+ canEdit,
990
+ onClick: onChipClick
991
+ }
992
+ ) })
993
+ ] }),
994
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
995
+ "span",
996
+ {
997
+ className: cn(
998
+ "shrink-0 text-sm font-semibold",
999
+ isCredit ? "text-success" : "text-foreground"
1000
+ ),
1001
+ children: [
1002
+ isCredit ? "+" : "",
1003
+ formatCurrency(tx.amount, { showSign: false })
1004
+ ]
1005
+ }
1006
+ )
1007
+ ] });
1018
1008
  }
1019
1009
  function DashboardTransactionsTable({
1020
1010
  transactions = [],
@@ -1026,7 +1016,9 @@ function DashboardTransactionsTable({
1026
1016
  className,
1027
1017
  selectedCategoryId,
1028
1018
  categories,
1029
- onCategoryChange
1019
+ onCategoryChange,
1020
+ showHeader = true,
1021
+ showTab = true
1030
1022
  }) {
1031
1023
  const isFiltering = selectedCategoryId != null;
1032
1024
  const canEdit = !!(categories == null ? void 0 : categories.length);
@@ -1039,16 +1031,17 @@ function DashboardTransactionsTable({
1039
1031
  };
1040
1032
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1041
1033
  /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Card, { className: cn("flex flex-col", className), children: [
1042
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(CardHeader, { className: "pb-0", children: [
1034
+ showHeader && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(CardHeader, { className: "pb-0", children: [
1043
1035
  /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CardTitle, { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: title }),
1044
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "mt-2 flex border-b border-border", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "border-b-2 border-foreground pb-1.5 text-xs font-semibold text-foreground", children: "Account Transaction" }) })
1036
+ showTab && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "mt-2 flex border-b border-border", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "border-b-2 border-foreground pb-1.5 text-xs font-semibold text-foreground", children: "Account Transaction" }) })
1045
1037
  ] }),
1046
1038
  /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(CardContent, { className: "flex flex-1 flex-col px-4 pb-0 pt-0", children: [
1047
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Spinner, { size: "default" }) }) : transactions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No transactions found" }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex flex-col", children: transactions.map((tx) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1039
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Spinner, { size: "default" }) }) : transactions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No transactions found" }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex flex-col", children: transactions.filter(
1040
+ (tx) => !isFiltering || tx.categoryId === selectedCategoryId
1041
+ ).map((tx) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1048
1042
  TransactionRow,
1049
1043
  {
1050
1044
  tx,
1051
- isDimmed: isFiltering && tx.categoryId !== selectedCategoryId,
1052
1045
  canEdit,
1053
1046
  onChipClick: () => setEditingTx(tx)
1054
1047
  },
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CategoryEditDialog
3
- } from "../../chunk-C35JMOII.mjs";
3
+ } from "../../chunk-3G6JUYRE.mjs";
4
4
  import {
5
5
  Chip
6
6
  } from "../../chunk-MPA2HV5U.mjs";
@@ -11,27 +11,27 @@ import {
11
11
  CardTitle
12
12
  } from "../../chunk-3VDET466.mjs";
13
13
  import "../../chunk-PNSYFE3K.mjs";
14
- import "../../chunk-T5FRVEJQ.mjs";
14
+ import "../../chunk-JTMN36BK.mjs";
15
15
  import {
16
16
  Spinner
17
17
  } from "../../chunk-JVMXMFBB.mjs";
18
18
  import {
19
19
  Badge
20
20
  } from "../../chunk-X6RC5UWB.mjs";
21
+ import {
22
+ formatCurrency
23
+ } from "../../chunk-XQDTFNVL.mjs";
21
24
  import {
22
25
  formatDateShort
23
26
  } from "../../chunk-LHWJQNLG.mjs";
24
27
  import "../../chunk-LBTHZSBT.mjs";
25
- import "../../chunk-XYSRRDBH.mjs";
26
- import "../../chunk-FRCTOAKZ.mjs";
27
- import "../../chunk-UNACI2YK.mjs";
28
- import {
29
- formatCurrency
30
- } from "../../chunk-MN5NYQCL.mjs";
31
28
  import {
32
29
  Button
33
30
  } from "../../chunk-NOOEKOWY.mjs";
34
31
  import "../../chunk-R4HCRDU5.mjs";
32
+ import "../../chunk-XYSRRDBH.mjs";
33
+ import "../../chunk-FRCTOAKZ.mjs";
34
+ import "../../chunk-UNACI2YK.mjs";
35
35
  import {
36
36
  cn
37
37
  } from "../../chunk-AFML43VJ.mjs";
@@ -52,7 +52,7 @@ function CategoryChip({
52
52
  {
53
53
  asChild: true,
54
54
  variant: "secondary",
55
- className: "cursor-pointer transition-colors hover:border-primary/40 hover:bg-primary/10 hover:text-primary",
55
+ className: "cursor-pointer transition-colors hover:bg-muted",
56
56
  children: /* @__PURE__ */ jsxs("button", { type: "button", onClick, children: [
57
57
  label,
58
58
  /* @__PURE__ */ jsx(Pencil, { className: "size-2.5 shrink-0 opacity-60" })
@@ -64,50 +64,40 @@ function CategoryChip({
64
64
  }
65
65
  function TransactionRow({
66
66
  tx,
67
- isDimmed,
68
67
  canEdit,
69
68
  onChipClick
70
69
  }) {
71
70
  var _a;
72
71
  const isCredit = tx.amount >= 0;
73
72
  const categoryLabel = (_a = tx.editedCategoryName) != null ? _a : tx.category;
74
- return /* @__PURE__ */ jsxs(
75
- "div",
76
- {
77
- className: cn(
78
- "flex items-start justify-between gap-4 border-b border-border py-3 last:border-0 transition-opacity",
79
- isDimmed && "opacity-30"
80
- ),
81
- children: [
82
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
83
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: formatDateShort(tx.date) }),
84
- /* @__PURE__ */ jsx("p", { className: "mt-0.5 truncate text-sm font-medium text-foreground", children: tx.description }),
85
- tx.merchant && /* @__PURE__ */ jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: tx.merchant }),
86
- categoryLabel && /* @__PURE__ */ jsx("div", { className: "mt-1", children: /* @__PURE__ */ jsx(
87
- CategoryChip,
88
- {
89
- label: categoryLabel,
90
- canEdit,
91
- onClick: onChipClick
92
- }
93
- ) })
94
- ] }),
95
- /* @__PURE__ */ jsxs(
96
- "span",
97
- {
98
- className: cn(
99
- "shrink-0 text-sm font-semibold",
100
- isCredit ? "text-success" : "text-foreground"
101
- ),
102
- children: [
103
- isCredit ? "+" : "",
104
- formatCurrency(tx.amount, { showSign: false })
105
- ]
106
- }
107
- )
108
- ]
109
- }
110
- );
73
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-4 border-b border-border py-3 last:border-0", children: [
74
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
75
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: formatDateShort(tx.date) }),
76
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 truncate text-sm font-medium text-foreground", children: tx.description }),
77
+ tx.merchant && /* @__PURE__ */ jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: tx.merchant }),
78
+ categoryLabel && /* @__PURE__ */ jsx("div", { className: "mt-1", children: /* @__PURE__ */ jsx(
79
+ CategoryChip,
80
+ {
81
+ label: categoryLabel,
82
+ canEdit,
83
+ onClick: onChipClick
84
+ }
85
+ ) })
86
+ ] }),
87
+ /* @__PURE__ */ jsxs(
88
+ "span",
89
+ {
90
+ className: cn(
91
+ "shrink-0 text-sm font-semibold",
92
+ isCredit ? "text-success" : "text-foreground"
93
+ ),
94
+ children: [
95
+ isCredit ? "+" : "",
96
+ formatCurrency(tx.amount, { showSign: false })
97
+ ]
98
+ }
99
+ )
100
+ ] });
111
101
  }
112
102
  function DashboardTransactionsTable({
113
103
  transactions = [],
@@ -119,7 +109,9 @@ function DashboardTransactionsTable({
119
109
  className,
120
110
  selectedCategoryId,
121
111
  categories,
122
- onCategoryChange
112
+ onCategoryChange,
113
+ showHeader = true,
114
+ showTab = true
123
115
  }) {
124
116
  const isFiltering = selectedCategoryId != null;
125
117
  const canEdit = !!(categories == null ? void 0 : categories.length);
@@ -132,16 +124,17 @@ function DashboardTransactionsTable({
132
124
  };
133
125
  return /* @__PURE__ */ jsxs(Fragment, { children: [
134
126
  /* @__PURE__ */ jsxs(Card, { className: cn("flex flex-col", className), children: [
135
- /* @__PURE__ */ jsxs(CardHeader, { className: "pb-0", children: [
127
+ showHeader && /* @__PURE__ */ jsxs(CardHeader, { className: "pb-0", children: [
136
128
  /* @__PURE__ */ jsx(CardTitle, { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: title }),
137
- /* @__PURE__ */ jsx("div", { className: "mt-2 flex border-b border-border", children: /* @__PURE__ */ jsx("span", { className: "border-b-2 border-foreground pb-1.5 text-xs font-semibold text-foreground", children: "Account Transaction" }) })
129
+ showTab && /* @__PURE__ */ jsx("div", { className: "mt-2 flex border-b border-border", children: /* @__PURE__ */ jsx("span", { className: "border-b-2 border-foreground pb-1.5 text-xs font-semibold text-foreground", children: "Account Transaction" }) })
138
130
  ] }),
139
131
  /* @__PURE__ */ jsxs(CardContent, { className: "flex flex-1 flex-col px-4 pb-0 pt-0", children: [
140
- isLoading ? /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ jsx(Spinner, { size: "default" }) }) : transactions.length === 0 ? /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No transactions found" }) : /* @__PURE__ */ jsx("div", { className: "flex flex-col", children: transactions.map((tx) => /* @__PURE__ */ jsx(
132
+ isLoading ? /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center justify-center py-8", children: /* @__PURE__ */ jsx(Spinner, { size: "default" }) }) : transactions.length === 0 ? /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No transactions found" }) : /* @__PURE__ */ jsx("div", { className: "flex flex-col", children: transactions.filter(
133
+ (tx) => !isFiltering || tx.categoryId === selectedCategoryId
134
+ ).map((tx) => /* @__PURE__ */ jsx(
141
135
  TransactionRow,
142
136
  {
143
137
  tx,
144
- isDimmed: isFiltering && tx.categoryId !== selectedCategoryId,
145
138
  canEdit,
146
139
  onChipClick: () => setEditingTx(tx)
147
140
  },
@@ -13,10 +13,10 @@ import "../../chunk-IKXYTCSB.mjs";
13
13
  import "../../chunk-K6VCC2MK.mjs";
14
14
  import "../../chunk-H5DTKPJ2.mjs";
15
15
  import "../../chunk-LBTHZSBT.mjs";
16
- import "../../chunk-XYSRRDBH.mjs";
17
- import "../../chunk-FRCTOAKZ.mjs";
18
16
  import "../../chunk-NOOEKOWY.mjs";
19
17
  import "../../chunk-R4HCRDU5.mjs";
18
+ import "../../chunk-XYSRRDBH.mjs";
19
+ import "../../chunk-FRCTOAKZ.mjs";
20
20
  import "../../chunk-AFML43VJ.mjs";
21
21
  import "../../chunk-WNQUEZJF.mjs";
22
22
  export {
@@ -5,10 +5,10 @@ import "../../chunk-F3CU6KEI.mjs";
5
5
  import "../../chunk-FBNEIYSE.mjs";
6
6
  import "../../chunk-LHWJQNLG.mjs";
7
7
  import "../../chunk-LBTHZSBT.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 {
@@ -1,16 +1,16 @@
1
- import {
2
- Accordion,
3
- AccordionContent,
4
- AccordionItem,
5
- AccordionTrigger
6
- } from "../../chunk-UNACI2YK.mjs";
7
1
  import {
8
2
  formatCurrency
9
- } from "../../chunk-MN5NYQCL.mjs";
3
+ } from "../../chunk-XQDTFNVL.mjs";
10
4
  import {
11
5
  Button
12
6
  } from "../../chunk-NOOEKOWY.mjs";
13
7
  import "../../chunk-R4HCRDU5.mjs";
8
+ import {
9
+ Accordion,
10
+ AccordionContent,
11
+ AccordionItem,
12
+ AccordionTrigger
13
+ } from "../../chunk-UNACI2YK.mjs";
14
14
  import {
15
15
  cn
16
16
  } from "../../chunk-AFML43VJ.mjs";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  DeleteContactComponent
3
- } from "../../chunk-5DAQU3B6.mjs";
3
+ } from "../../chunk-66JXT7NY.mjs";
4
4
  import "../../chunk-JVMXMFBB.mjs";
5
- import "../../chunk-CEYEK3TI.mjs";
6
- import "../../chunk-XYSRRDBH.mjs";
7
- import "../../chunk-FRCTOAKZ.mjs";
5
+ import "../../chunk-B4R62ID3.mjs";
8
6
  import "../../chunk-NOOEKOWY.mjs";
9
7
  import "../../chunk-R4HCRDU5.mjs";
8
+ import "../../chunk-XYSRRDBH.mjs";
9
+ import "../../chunk-FRCTOAKZ.mjs";
10
10
  import "../../chunk-AFML43VJ.mjs";
11
11
  import "../../chunk-WNQUEZJF.mjs";
12
12
  export {
@@ -9,11 +9,11 @@ import {
9
9
  DialogPortal,
10
10
  DialogTitle,
11
11
  DialogTrigger
12
- } from "../../chunk-T5FRVEJQ.mjs";
13
- import "../../chunk-XYSRRDBH.mjs";
14
- import "../../chunk-FRCTOAKZ.mjs";
12
+ } from "../../chunk-JTMN36BK.mjs";
15
13
  import "../../chunk-NOOEKOWY.mjs";
16
14
  import "../../chunk-R4HCRDU5.mjs";
15
+ import "../../chunk-XYSRRDBH.mjs";
16
+ import "../../chunk-FRCTOAKZ.mjs";
17
17
  import "../../chunk-AFML43VJ.mjs";
18
18
  import "../../chunk-WNQUEZJF.mjs";
19
19
  export {
@@ -4,10 +4,10 @@ import {
4
4
  import "../../chunk-PNSYFE3K.mjs";
5
5
  import "../../chunk-K6VCC2MK.mjs";
6
6
  import "../../chunk-LBTHZSBT.mjs";
7
- import "../../chunk-XYSRRDBH.mjs";
8
- import "../../chunk-FRCTOAKZ.mjs";
9
7
  import "../../chunk-NOOEKOWY.mjs";
10
8
  import "../../chunk-R4HCRDU5.mjs";
9
+ import "../../chunk-XYSRRDBH.mjs";
10
+ import "../../chunk-FRCTOAKZ.mjs";
11
11
  import "../../chunk-AFML43VJ.mjs";
12
12
  import "../../chunk-WNQUEZJF.mjs";
13
13
  export {