@burdenoff/microfe-crewfoundry 2026.608.1 → 2026.625.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/crewfoundry/pages/AdminAdminPagePage.js +94 -78
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +112 -96
  4. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +101 -85
  6. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +131 -115
  8. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +116 -100
  10. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +15 -15
  12. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +63 -51
  14. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +16 -16
  16. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +26 -26
  18. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +28 -28
  20. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +10 -10
  22. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +71 -59
  24. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +59 -47
  26. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +77 -61
  28. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +40 -40
  30. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +13 -13
  32. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +102 -86
  34. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +173 -139
  36. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +59 -59
  38. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  39. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +113 -97
  40. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  41. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +45 -45
  42. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +85 -69
  44. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +23 -23
  46. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +40 -40
  48. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +59 -47
  50. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +52 -48
  52. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/HiringJobsPagePage.js +31 -26
  54. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +61 -49
  56. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  57. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +83 -67
  58. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +90 -74
  60. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/HrPayrollPagePage.js +90 -74
  62. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +83 -67
  64. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +54 -42
  66. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +16 -16
  68. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +39 -35
  70. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +24 -24
  72. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +14 -14
  74. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +81 -65
  76. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/LearningLearningPagePage.js +73 -57
  78. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +28 -28
  80. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +12 -12
  82. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +75 -59
  84. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
  85. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +57 -45
  86. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
  87. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +71 -59
  88. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  89. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +48 -48
  90. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  91. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +44 -43
  92. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
  93. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +58 -46
  94. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  95. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +16 -16
  96. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  97. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +23 -23
  98. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
  99. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +9 -9
  100. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  101. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +43 -39
  102. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  103. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +31 -27
  104. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
  105. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +59 -47
  106. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
  107. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +13 -13
  108. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  109. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +66 -50
  110. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  111. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +18 -18
  112. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
  113. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +74 -62
  114. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
  115. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +21 -21
  116. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
  117. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +47 -43
  118. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  119. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +20 -20
  120. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  121. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +58 -46
  122. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  123. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +38 -34
  124. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  125. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +14 -14
  126. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  127. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +67 -67
  128. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  129. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +16 -16
  130. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  131. package/package.json +2 -2
@@ -1,67 +1,83 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { CreditCard as t, DollarSign as n, Receipt as r, TrendingUp as i } from "lucide-react";
3
3
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
- import { Badge as s, Card as c, CardContent as l, CardHeader as u, CardTitle as d } from "@burdenoff/fe-libs/ui";
4
+ import { Badge as s, Card as c, CardContent as l, CardHeader as u, CardTitle as d, GlassCard as f, GradientText as p } from "@burdenoff/fe-libs/ui";
5
5
  //#region src/crewfoundry/pages/PaymentsPaymentDashboardPagePage.tsx
6
- function f() {
7
- let { invoices: f, payrollRecords: p } = e(), m = f.reduce((e, t) => e + t.amount, 0), h = f.filter((e) => e.status === "paid").reduce((e, t) => e + t.amount, 0), g = p.reduce((e, t) => e + t.grossPay, 0);
6
+ function m() {
7
+ let { invoices: m, payrollRecords: h } = e(), g = m.reduce((e, t) => e + t.amount, 0), _ = m.filter((e) => e.status === "paid").reduce((e, t) => e + t.amount, 0), v = h.reduce((e, t) => e + t.grossPay, 0);
8
8
  return /* @__PURE__ */ o("div", {
9
9
  className: "space-y-6 p-6",
10
10
  children: [
11
11
  /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
12
12
  className: "text-2xl font-semibold",
13
- children: "Payment Dashboard"
13
+ children: /* @__PURE__ */ a(p, { children: "Payment Dashboard" })
14
14
  }), /* @__PURE__ */ a("p", {
15
- className: "text-sm text-muted-foreground",
15
+ className: "text-sm text-text-secondary",
16
16
  children: "Financial transactions and payment overview"
17
17
  })] }),
18
18
  /* @__PURE__ */ o("div", {
19
19
  className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
20
20
  children: [
21
- /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o(u, {
22
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
23
- children: [/* @__PURE__ */ a(d, {
24
- className: "text-sm font-medium",
25
- children: "Total Invoiced"
26
- }), /* @__PURE__ */ a(r, { className: "h-4 w-4 text-muted-foreground" })]
27
- }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
28
- className: "text-2xl font-bold",
29
- children: ["$", m.toLocaleString()]
30
- }) })] }),
31
- /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o(u, {
32
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
33
- children: [/* @__PURE__ */ a(d, {
34
- className: "text-sm font-medium",
35
- children: "Collected"
36
- }), /* @__PURE__ */ a(n, { className: "h-4 w-4 text-green-500" })]
37
- }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
38
- className: "text-2xl font-bold",
39
- children: ["$", h.toLocaleString()]
40
- }) })] }),
41
- /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o(u, {
42
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
43
- children: [/* @__PURE__ */ a(d, {
44
- className: "text-sm font-medium",
45
- children: "Payroll Processed"
46
- }), /* @__PURE__ */ a(t, { className: "h-4 w-4 text-muted-foreground" })]
47
- }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
48
- className: "text-2xl font-bold",
49
- children: ["$", g.toLocaleString()]
50
- }) })] }),
51
- /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o(u, {
52
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
53
- children: [/* @__PURE__ */ a(d, {
54
- className: "text-sm font-medium",
55
- children: "Outstanding"
56
- }), /* @__PURE__ */ a(i, { className: "h-4 w-4 text-yellow-500" })]
57
- }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
58
- className: "text-2xl font-bold",
59
- children: ["$", (m - h).toLocaleString()]
60
- }) })] })
21
+ /* @__PURE__ */ o(f, {
22
+ treatment: "metric",
23
+ className: "border-border-seam",
24
+ children: [/* @__PURE__ */ o(u, {
25
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
26
+ children: [/* @__PURE__ */ a(d, {
27
+ className: "text-sm font-medium",
28
+ children: "Total Invoiced"
29
+ }), /* @__PURE__ */ a(r, { className: "h-4 w-4 text-text-secondary" })]
30
+ }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
31
+ className: "text-2xl font-bold tabular-nums",
32
+ children: ["$", g.toLocaleString()]
33
+ }) })]
34
+ }),
35
+ /* @__PURE__ */ o(f, {
36
+ treatment: "metric",
37
+ className: "border-border-seam",
38
+ children: [/* @__PURE__ */ o(u, {
39
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
40
+ children: [/* @__PURE__ */ a(d, {
41
+ className: "text-sm font-medium",
42
+ children: "Collected"
43
+ }), /* @__PURE__ */ a(n, { className: "h-4 w-4 text-status-success-text" })]
44
+ }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
45
+ className: "text-2xl font-bold tabular-nums",
46
+ children: ["$", _.toLocaleString()]
47
+ }) })]
48
+ }),
49
+ /* @__PURE__ */ o(f, {
50
+ treatment: "metric",
51
+ className: "border-border-seam",
52
+ children: [/* @__PURE__ */ o(u, {
53
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
54
+ children: [/* @__PURE__ */ a(d, {
55
+ className: "text-sm font-medium",
56
+ children: "Payroll Processed"
57
+ }), /* @__PURE__ */ a(t, { className: "h-4 w-4 text-text-secondary" })]
58
+ }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
59
+ className: "text-2xl font-bold tabular-nums",
60
+ children: ["$", v.toLocaleString()]
61
+ }) })]
62
+ }),
63
+ /* @__PURE__ */ o(f, {
64
+ treatment: "metric",
65
+ className: "border-border-seam",
66
+ children: [/* @__PURE__ */ o(u, {
67
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
68
+ children: [/* @__PURE__ */ a(d, {
69
+ className: "text-sm font-medium",
70
+ children: "Outstanding"
71
+ }), /* @__PURE__ */ a(i, { className: "h-4 w-4 text-status-warning-text" })]
72
+ }), /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o("div", {
73
+ className: "text-2xl font-bold tabular-nums",
74
+ children: ["$", (g - _).toLocaleString()]
75
+ }) })]
76
+ })
61
77
  ]
62
78
  }),
63
79
  /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, { children: "Recent Invoices" }) }), /* @__PURE__ */ o(l, { children: [/* @__PURE__ */ o("div", {
64
- className: "grid grid-cols-5 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2",
80
+ className: "grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2",
65
81
  children: [
66
82
  /* @__PURE__ */ a("span", { children: "Invoice" }),
67
83
  /* @__PURE__ */ a("span", { children: "Client" }),
@@ -75,7 +91,7 @@ function f() {
75
91
  children: "Status"
76
92
  })
77
93
  ]
78
- }), f.map((e) => /* @__PURE__ */ o("div", {
94
+ }), m.map((e) => /* @__PURE__ */ o("div", {
79
95
  className: "grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm",
80
96
  children: [
81
97
  /* @__PURE__ */ a("span", {
@@ -83,7 +99,7 @@ function f() {
83
99
  children: e.number
84
100
  }),
85
101
  /* @__PURE__ */ a("span", {
86
- className: "text-muted-foreground",
102
+ className: "text-text-secondary",
87
103
  children: e.clientName
88
104
  }),
89
105
  /* @__PURE__ */ o("span", {
@@ -91,7 +107,7 @@ function f() {
91
107
  children: ["$", e.amount.toLocaleString()]
92
108
  }),
93
109
  /* @__PURE__ */ a("span", {
94
- className: "text-muted-foreground",
110
+ className: "text-text-secondary",
95
111
  children: e.dueDate
96
112
  }),
97
113
  /* @__PURE__ */ a("div", {
@@ -108,6 +124,6 @@ function f() {
108
124
  });
109
125
  }
110
126
  //#endregion
111
- export { f as PaymentsPaymentDashboardPagePage };
127
+ export { m as PaymentsPaymentDashboardPagePage };
112
128
 
113
129
  //# sourceMappingURL=PaymentsPaymentDashboardPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsPaymentDashboardPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/PaymentsPaymentDashboardPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowUp, CreditCard, DollarSign, Receipt, TrendingUp } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function PaymentsPaymentDashboardPagePage() {\n const { invoices, payrollRecords } = useCrewFoundryStore();\n const totalInvoiced = invoices.reduce((s, i) => s + i.amount, 0);\n const totalPaid = invoices.filter((i) => i.status === 'paid').reduce((s, i) => s + i.amount, 0);\n const totalPayroll = payrollRecords.reduce((s, r) => s + r.grossPay, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Payment Dashboard</h1>\n <p className=\"text-sm text-muted-foreground\">Financial transactions and payment overview</p>\n </div>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Invoiced</CardTitle>\n <Receipt className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">${totalInvoiced.toLocaleString()}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Collected</CardTitle>\n <DollarSign className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">${totalPaid.toLocaleString()}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Payroll Processed</CardTitle>\n <CreditCard className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">${totalPayroll.toLocaleString()}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Outstanding</CardTitle>\n <TrendingUp className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n ${(totalInvoiced - totalPaid).toLocaleString()}\n </div>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Recent Invoices</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2\">\n <span>Invoice</span>\n <span>Client</span>\n <span className=\"text-right\">Amount</span>\n <span>Due Date</span>\n <span className=\"text-center\">Status</span>\n </div>\n {invoices.map((inv) => (\n <div\n key={inv.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">{inv.number}</span>\n <span className=\"text-muted-foreground\">{inv.clientName}</span>\n <span className=\"text-right\">${inv.amount.toLocaleString()}</span>\n <span className=\"text-muted-foreground\">{inv.dueDate}</span>\n <div className=\"text-center\">\n <Badge\n variant={\n inv.status === 'paid'\n ? 'default'\n : inv.status === 'overdue'\n ? 'destructive'\n : 'secondary'\n }\n className=\"text-[10px]\"\n >\n {inv.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PaymentsPaymentDashboardPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/PaymentsPaymentDashboardPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowUp, CreditCard, DollarSign, Receipt, TrendingUp } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function PaymentsPaymentDashboardPagePage() {\n const { invoices, payrollRecords } = useCrewFoundryStore();\n const totalInvoiced = invoices.reduce((s, i) => s + i.amount, 0);\n const totalPaid = invoices.filter((i) => i.status === 'paid').reduce((s, i) => s + i.amount, 0);\n const totalPayroll = payrollRecords.reduce((s, r) => s + r.grossPay, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Payment Dashboard</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Financial transactions and payment overview</p>\n </div>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Invoiced</CardTitle>\n <Receipt className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">${totalInvoiced.toLocaleString()}</div>\n </CardContent>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Collected</CardTitle>\n <DollarSign className=\"h-4 w-4 text-status-success-text\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">${totalPaid.toLocaleString()}</div>\n </CardContent>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Payroll Processed</CardTitle>\n <CreditCard className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">${totalPayroll.toLocaleString()}</div>\n </CardContent>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Outstanding</CardTitle>\n <TrendingUp className=\"h-4 w-4 text-status-warning-text\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">\n ${(totalInvoiced - totalPaid).toLocaleString()}\n </div>\n </CardContent>\n </GlassCard>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Recent Invoices</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2\">\n <span>Invoice</span>\n <span>Client</span>\n <span className=\"text-right\">Amount</span>\n <span>Due Date</span>\n <span className=\"text-center\">Status</span>\n </div>\n {invoices.map((inv) => (\n <div\n key={inv.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">{inv.number}</span>\n <span className=\"text-text-secondary\">{inv.clientName}</span>\n <span className=\"text-right\">${inv.amount.toLocaleString()}</span>\n <span className=\"text-text-secondary\">{inv.dueDate}</span>\n <div className=\"text-center\">\n <Badge\n variant={\n inv.status === 'paid'\n ? 'default'\n : inv.status === 'overdue'\n ? 'destructive'\n : 'secondary'\n }\n className=\"text-[10px]\"\n >\n {inv.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -2,23 +2,23 @@ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { useMemo as t } from "react";
3
3
  import { Building2 as n, CreditCard as r, Plus as i } from "lucide-react";
4
4
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
- import { Badge as s, Button as c, Card as l, CardContent as u } from "@burdenoff/fe-libs/ui";
5
+ import { Badge as s, Button as c, Card as l, CardContent as u, GradientText as d } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/crewfoundry/pages/PaymentsPaymentMethodsPagePage.tsx
7
- function d() {
8
- let { paymentMethods: d, invoices: f, payrollRecords: p, vendors: m, clients: h } = e(), g = t(() => {
9
- let e = p.slice(0, 3).map((e, t) => ({
7
+ function f() {
8
+ let { paymentMethods: f, invoices: p, payrollRecords: m, vendors: h, clients: g } = e(), _ = t(() => {
9
+ let e = m.slice(0, 3).map((e, t) => ({
10
10
  id: `bank-${e.id}`,
11
11
  type: "bank",
12
12
  name: `${e.department} Settlement Account`,
13
- bank: m[t % Math.max(m.length, 1)]?.name || "Burdenoff Bank",
13
+ bank: h[t % Math.max(h.length, 1)]?.name || "Burdenoff Bank",
14
14
  last4: String(e.netPay).slice(-4).padStart(4, "0"),
15
15
  status: t === 0 ? "primary" : "active"
16
- })), t = f.slice(0, 4).map((t, n) => {
16
+ })), t = p.slice(0, 4).map((t, n) => {
17
17
  let r = String((n + 3) % 12 + 1).padStart(2, "0"), i = String(2027 + n % 2);
18
18
  return {
19
19
  id: `card-${t.id}`,
20
20
  type: "card",
21
- name: `${h[n % Math.max(h.length, 1)]?.name || "Corporate"} Card`,
21
+ name: `${g[n % Math.max(g.length, 1)]?.name || "Corporate"} Card`,
22
22
  bank: t.clientName,
23
23
  last4: t.number.replaceAll(/\D/g, "").slice(-4).padStart(4, "0"),
24
24
  status: n === 0 && e.length === 0 ? "primary" : "active",
@@ -27,20 +27,20 @@ function d() {
27
27
  });
28
28
  return [...e, ...t];
29
29
  }, [
30
- h,
31
- f,
30
+ g,
32
31
  p,
33
- m
34
- ]), _ = d.length > 0 ? d : g;
32
+ m,
33
+ h
34
+ ]), v = f.length > 0 ? f : _;
35
35
  return /* @__PURE__ */ o("div", {
36
36
  className: "space-y-6 p-6",
37
37
  children: [/* @__PURE__ */ o("div", {
38
38
  className: "flex items-center justify-between",
39
39
  children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
40
40
  className: "text-2xl font-semibold",
41
- children: "Payment Methods"
41
+ children: /* @__PURE__ */ a(d, { children: "Payment Methods" })
42
42
  }), /* @__PURE__ */ a("p", {
43
- className: "text-sm text-muted-foreground",
43
+ className: "text-sm text-text-secondary",
44
44
  children: "Manage company payment accounts"
45
45
  })] }), /* @__PURE__ */ o(c, {
46
46
  size: "sm",
@@ -48,17 +48,17 @@ function d() {
48
48
  })]
49
49
  }), /* @__PURE__ */ a("div", {
50
50
  className: "grid gap-4 md:grid-cols-2",
51
- children: _.map((e) => /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o(u, {
51
+ children: v.map((e) => /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o(u, {
52
52
  className: "p-4",
53
53
  children: [/* @__PURE__ */ o("div", {
54
54
  className: "mb-3 flex items-center justify-between",
55
55
  children: [/* @__PURE__ */ o("div", {
56
56
  className: "flex items-center gap-2",
57
- children: [e.type === "bank" ? /* @__PURE__ */ a(n, { className: "h-5 w-5 text-muted-foreground" }) : /* @__PURE__ */ a(r, { className: "h-5 w-5 text-muted-foreground" }), /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
57
+ children: [e.type === "bank" ? /* @__PURE__ */ a(n, { className: "h-5 w-5 text-text-secondary" }) : /* @__PURE__ */ a(r, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
58
58
  className: "text-sm font-medium",
59
59
  children: e.name
60
60
  }), /* @__PURE__ */ a("p", {
61
- className: "text-xs text-muted-foreground",
61
+ className: "text-xs text-text-secondary",
62
62
  children: e.bank
63
63
  })] })]
64
64
  }), /* @__PURE__ */ a(s, {
@@ -67,7 +67,7 @@ function d() {
67
67
  children: e.status
68
68
  })]
69
69
  }), /* @__PURE__ */ o("div", {
70
- className: "flex items-center justify-between text-sm text-muted-foreground",
70
+ className: "flex items-center justify-between text-sm text-text-secondary",
71
71
  children: [/* @__PURE__ */ o("span", { children: ["•••• •••• •••• ", e.last4] }), e.expiry ? /* @__PURE__ */ o("span", { children: ["Exp: ", e.expiry] }) : null]
72
72
  })]
73
73
  }) }, e.id))
@@ -75,6 +75,6 @@ function d() {
75
75
  });
76
76
  }
77
77
  //#endregion
78
- export { d as PaymentsPaymentMethodsPagePage };
78
+ export { f as PaymentsPaymentMethodsPagePage };
79
79
 
80
80
  //# sourceMappingURL=PaymentsPaymentMethodsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsPaymentMethodsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/PaymentsPaymentMethodsPagePage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Badge, Button, Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { Building2, CreditCard, Plus } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\ntype PaymentMethod = {\n id: string;\n type: 'bank' | 'card';\n name: string;\n bank: string;\n last4: string;\n status: 'primary' | 'active';\n expiry?: string;\n};\n\nexport function PaymentsPaymentMethodsPagePage() {\n const {\n paymentMethods: overlapPaymentMethods,\n invoices,\n payrollRecords,\n vendors,\n clients,\n } = useCrewFoundryStore();\n\n const fallbackMethods = useMemo<PaymentMethod[]>(() => {\n const bankMethods = payrollRecords.slice(0, 3).map((record, index) => ({\n id: `bank-${record.id}`,\n type: 'bank' as const,\n name: `${record.department} Settlement Account`,\n bank: vendors[index % Math.max(vendors.length, 1)]?.name || 'Burdenoff Bank',\n last4: String(record.netPay).slice(-4).padStart(4, '0'),\n status: index === 0 ? ('primary' as const) : ('active' as const),\n }));\n\n const cardMethods = invoices.slice(0, 4).map((invoice, index) => {\n const month = String(((index + 3) % 12) + 1).padStart(2, '0');\n const year = String(2027 + (index % 2));\n return {\n id: `card-${invoice.id}`,\n type: 'card' as const,\n name: `${clients[index % Math.max(clients.length, 1)]?.name || 'Corporate'} Card`,\n bank: invoice.clientName,\n last4: invoice.number.replaceAll(/\\D/g, '').slice(-4).padStart(4, '0'),\n status:\n index === 0 && bankMethods.length === 0 ? ('primary' as const) : ('active' as const),\n expiry: `${month}/${year}`,\n };\n });\n\n return [...bankMethods, ...cardMethods];\n }, [clients, invoices, payrollRecords, vendors]);\n\n const paymentMethods = overlapPaymentMethods.length > 0 ? overlapPaymentMethods : fallbackMethods;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Payment Methods</h1>\n <p className=\"text-sm text-muted-foreground\">Manage company payment accounts</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-1 h-4 w-4\" />\n Add Method\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {paymentMethods.map((method) => (\n <Card key={method.id}>\n <CardContent className=\"p-4\">\n <div className=\"mb-3 flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n {method.type === 'bank' ? (\n <Building2 className=\"h-5 w-5 text-muted-foreground\" />\n ) : (\n <CreditCard className=\"h-5 w-5 text-muted-foreground\" />\n )}\n <div>\n <p className=\"text-sm font-medium\">{method.name}</p>\n <p className=\"text-xs text-muted-foreground\">{method.bank}</p>\n </div>\n </div>\n <Badge\n variant={method.status === 'primary' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {method.status}\n </Badge>\n </div>\n <div className=\"flex items-center justify-between text-sm text-muted-foreground\">\n <span>•••• •••• •••• {method.last4}</span>\n {method.expiry ? <span>Exp: {method.expiry}</span> : null}\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAeA,SAAgB,IAAiC;CAC/C,IAAM,EACJ,gBAAgB,GAChB,aACA,mBACA,YACA,eACE,GAAqB,EAEnB,IAAkB,QAA+B;EACrD,IAAM,IAAc,EAAe,MAAM,GAAG,EAAE,CAAC,KAAK,GAAQ,OAAW;GACrE,IAAI,QAAQ,EAAO;GACnB,MAAM;GACN,MAAM,GAAG,EAAO,WAAW;GAC3B,MAAM,EAAQ,IAAQ,KAAK,IAAI,EAAQ,QAAQ,EAAE,GAAG,QAAQ;GAC5D,OAAO,OAAO,EAAO,OAAO,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI;GACvD,QAAQ,MAAU,IAAK,YAAuB;GAC/C,EAAE,EAEG,IAAc,EAAS,MAAM,GAAG,EAAE,CAAC,KAAK,GAAS,MAAU;GAC/D,IAAM,IAAQ,QAAS,IAAQ,KAAK,KAAM,EAAE,CAAC,SAAS,GAAG,IAAI,EACvD,IAAO,OAAO,OAAQ,IAAQ,EAAG;AACvC,UAAO;IACL,IAAI,QAAQ,EAAQ;IACpB,MAAM;IACN,MAAM,GAAG,EAAQ,IAAQ,KAAK,IAAI,EAAQ,QAAQ,EAAE,GAAG,QAAQ,YAAY;IAC3E,MAAM,EAAQ;IACd,OAAO,EAAQ,OAAO,WAAW,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI;IACtE,QACE,MAAU,KAAK,EAAY,WAAW,IAAK,YAAuB;IACpE,QAAQ,GAAG,EAAM,GAAG;IACrB;IACD;AAEF,SAAO,CAAC,GAAG,GAAa,GAAG,EAAY;IACtC;EAAC;EAAS;EAAU;EAAgB;EAAQ,CAAC,EAE1C,IAAiB,EAAsB,SAAS,IAAI,IAAwB;AAElF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAyB;IAAoB,CAAA,EAC3D,kBAAC,KAAD;IAAG,WAAU;cAAgC;IAAmC,CAAA,CAC5E,EAAA,CAAA,EACN,kBAAC,GAAD;IAAQ,MAAK;cAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,aAE1B;MACL;MAEN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAe,KAAK,MACnB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,EAAO,SAAS,SACf,kBAAC,GAAD,EAAW,WAAU,iCAAkC,CAAA,GAEvD,kBAAC,GAAD,EAAY,WAAU,iCAAkC,CAAA,EAE1D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAuB,EAAO;OAAS,CAAA,EACpD,kBAAC,KAAD;OAAG,WAAU;iBAAiC,EAAO;OAAS,CAAA,CAC1D,EAAA,CAAA,CACF;SACN,kBAAC,GAAD;MACE,SAAS,EAAO,WAAW,YAAY,YAAY;MACnD,WAAU;gBAET,EAAO;MACF,CAAA,CACJ;QACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,QAAD,EAAA,UAAA,CAAM,mBAAgB,EAAO,MAAa,EAAA,CAAA,EACzC,EAAO,SAAS,kBAAC,QAAD,EAAA,UAAA,CAAM,SAAM,EAAO,OAAc,EAAA,CAAA,GAAG,KACjD;OACM;OACT,EA1BI,EAAO,GA0BX,CACP;GACE,CAAA,CACF"}
1
+ {"version":3,"file":"PaymentsPaymentMethodsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/PaymentsPaymentMethodsPagePage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Badge, Button, Card, CardContent, GradientText } from '@burdenoff/fe-libs/ui';\nimport { Building2, CreditCard, Plus } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\ntype PaymentMethod = {\n id: string;\n type: 'bank' | 'card';\n name: string;\n bank: string;\n last4: string;\n status: 'primary' | 'active';\n expiry?: string;\n};\n\nexport function PaymentsPaymentMethodsPagePage() {\n const {\n paymentMethods: overlapPaymentMethods,\n invoices,\n payrollRecords,\n vendors,\n clients,\n } = useCrewFoundryStore();\n\n const fallbackMethods = useMemo<PaymentMethod[]>(() => {\n const bankMethods = payrollRecords.slice(0, 3).map((record, index) => ({\n id: `bank-${record.id}`,\n type: 'bank' as const,\n name: `${record.department} Settlement Account`,\n bank: vendors[index % Math.max(vendors.length, 1)]?.name || 'Burdenoff Bank',\n last4: String(record.netPay).slice(-4).padStart(4, '0'),\n status: index === 0 ? ('primary' as const) : ('active' as const),\n }));\n\n const cardMethods = invoices.slice(0, 4).map((invoice, index) => {\n const month = String(((index + 3) % 12) + 1).padStart(2, '0');\n const year = String(2027 + (index % 2));\n return {\n id: `card-${invoice.id}`,\n type: 'card' as const,\n name: `${clients[index % Math.max(clients.length, 1)]?.name || 'Corporate'} Card`,\n bank: invoice.clientName,\n last4: invoice.number.replaceAll(/\\D/g, '').slice(-4).padStart(4, '0'),\n status:\n index === 0 && bankMethods.length === 0 ? ('primary' as const) : ('active' as const),\n expiry: `${month}/${year}`,\n };\n });\n\n return [...bankMethods, ...cardMethods];\n }, [clients, invoices, payrollRecords, vendors]);\n\n const paymentMethods = overlapPaymentMethods.length > 0 ? overlapPaymentMethods : fallbackMethods;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Payment Methods</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Manage company payment accounts</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-1 h-4 w-4\" />\n Add Method\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {paymentMethods.map((method) => (\n <Card key={method.id}>\n <CardContent className=\"p-4\">\n <div className=\"mb-3 flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n {method.type === 'bank' ? (\n <Building2 className=\"h-5 w-5 text-text-secondary\" />\n ) : (\n <CreditCard className=\"h-5 w-5 text-text-secondary\" />\n )}\n <div>\n <p className=\"text-sm font-medium\">{method.name}</p>\n <p className=\"text-xs text-text-secondary\">{method.bank}</p>\n </div>\n </div>\n <Badge\n variant={method.status === 'primary' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {method.status}\n </Badge>\n </div>\n <div className=\"flex items-center justify-between text-sm text-text-secondary\">\n <span>•••• •••• •••• {method.last4}</span>\n {method.expiry ? <span>Exp: {method.expiry}</span> : null}\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAeA,SAAgB,IAAiC;CAC/C,IAAM,EACJ,gBAAgB,GAChB,aACA,mBACA,YACA,eACE,GAAqB,EAEnB,IAAkB,QAA+B;EACrD,IAAM,IAAc,EAAe,MAAM,GAAG,EAAE,CAAC,KAAK,GAAQ,OAAW;GACrE,IAAI,QAAQ,EAAO;GACnB,MAAM;GACN,MAAM,GAAG,EAAO,WAAW;GAC3B,MAAM,EAAQ,IAAQ,KAAK,IAAI,EAAQ,QAAQ,EAAE,GAAG,QAAQ;GAC5D,OAAO,OAAO,EAAO,OAAO,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI;GACvD,QAAQ,MAAU,IAAK,YAAuB;GAC/C,EAAE,EAEG,IAAc,EAAS,MAAM,GAAG,EAAE,CAAC,KAAK,GAAS,MAAU;GAC/D,IAAM,IAAQ,QAAS,IAAQ,KAAK,KAAM,EAAE,CAAC,SAAS,GAAG,IAAI,EACvD,IAAO,OAAO,OAAQ,IAAQ,EAAG;AACvC,UAAO;IACL,IAAI,QAAQ,EAAQ;IACpB,MAAM;IACN,MAAM,GAAG,EAAQ,IAAQ,KAAK,IAAI,EAAQ,QAAQ,EAAE,GAAG,QAAQ,YAAY;IAC3E,MAAM,EAAQ;IACd,OAAO,EAAQ,OAAO,WAAW,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI;IACtE,QACE,MAAU,KAAK,EAAY,WAAW,IAAK,YAAuB;IACpE,QAAQ,GAAG,EAAM,GAAG;IACrB;IACD;AAEF,SAAO,CAAC,GAAG,GAAa,GAAG,EAAY;IACtC;EAAC;EAAS;EAAU;EAAgB;EAAQ,CAAC,EAE1C,IAAiB,EAAsB,SAAS,IAAI,IAAwB;AAElF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cACZ,kBAAC,GAAD,EAAA,UAAc,mBAA8B,CAAA;IACzC,CAAA,EACL,kBAAC,KAAD;IAAG,WAAU;cAA8B;IAAmC,CAAA,CAC1E,EAAA,CAAA,EACN,kBAAC,GAAD;IAAQ,MAAK;cAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,aAE1B;MACL;MAEN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAe,KAAK,MACnB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,EAAO,SAAS,SACf,kBAAC,GAAD,EAAW,WAAU,+BAAgC,CAAA,GAErD,kBAAC,GAAD,EAAY,WAAU,+BAAgC,CAAA,EAExD,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAuB,EAAO;OAAS,CAAA,EACpD,kBAAC,KAAD;OAAG,WAAU;iBAA+B,EAAO;OAAS,CAAA,CACxD,EAAA,CAAA,CACF;SACN,kBAAC,GAAD;MACE,SAAS,EAAO,WAAW,YAAY,YAAY;MACnD,WAAU;gBAET,EAAO;MACF,CAAA,CACJ;QACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,QAAD,EAAA,UAAA,CAAM,mBAAgB,EAAO,MAAa,EAAA,CAAA,EACzC,EAAO,SAAS,kBAAC,QAAD,EAAA,UAAA,CAAM,SAAM,EAAO,OAAc,EAAA,CAAA,GAAG,KACjD;OACM;OACT,EA1BI,EAAO,GA0BX,CACP;GACE,CAAA,CACF"}
@@ -2,65 +2,65 @@ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { useMemo as t } from "react";
3
3
  import { AlertTriangle as n, CheckCircle as r, Shield as i, ShieldCheck as a } from "lucide-react";
4
4
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p } from "@burdenoff/fe-libs/ui";
5
+ import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p, GlassCard as m, GradientText as h } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/crewfoundry/pages/PaymentsSecurityPagePage.tsx
7
- var m = (e) => {
7
+ var g = (e) => {
8
8
  let t = new Date(e);
9
9
  return Number.isNaN(t.getTime()) ? "Unknown" : t.toISOString().split("T")[0];
10
- }, h = (e) => {
10
+ }, _ = (e) => {
11
11
  let t = new Date(e);
12
12
  if (Number.isNaN(t.getTime())) return "recently";
13
13
  let n = Math.max(1, Math.floor((Date.now() - t.getTime()) / (1e3 * 60 * 60)));
14
14
  return n < 24 ? `${n}h ago` : `${Math.floor(n / 24)}d ago`;
15
15
  };
16
- function g() {
17
- let { notifications: g, invoices: _, payrollRecords: v } = e(), y = t(() => {
18
- let e = _.filter((e) => e.status === "overdue").length, t = v.filter((e) => e.status === "failed").length, n = e > 0 || t > 0;
16
+ function v() {
17
+ let { notifications: v, invoices: y, payrollRecords: b } = e(), x = t(() => {
18
+ let e = y.filter((e) => e.status === "overdue").length, t = b.filter((e) => e.status === "failed").length, n = e > 0 || t > 0;
19
19
  return [
20
20
  {
21
21
  name: "PCI DSS Compliance",
22
22
  status: "passed",
23
- lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
23
+ lastChecked: g((/* @__PURE__ */ new Date()).toISOString())
24
24
  },
25
25
  {
26
26
  name: "SSL/TLS Encryption",
27
27
  status: "passed",
28
- lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
28
+ lastChecked: g((/* @__PURE__ */ new Date()).toISOString())
29
29
  },
30
30
  {
31
31
  name: "Two-Factor Authentication",
32
32
  status: "passed",
33
- lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
33
+ lastChecked: g((/* @__PURE__ */ new Date()).toISOString())
34
34
  },
35
35
  {
36
36
  name: "Data Encryption at Rest",
37
37
  status: "passed",
38
- lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
38
+ lastChecked: g((/* @__PURE__ */ new Date()).toISOString())
39
39
  },
40
40
  {
41
41
  name: "Payment Processing Audit",
42
42
  status: n ? "warning" : "passed",
43
- lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
43
+ lastChecked: g((/* @__PURE__ */ new Date()).toISOString())
44
44
  },
45
45
  {
46
46
  name: "Access Control Review",
47
- status: g.some((e) => e.type === "error") ? "warning" : "passed",
48
- lastChecked: m((/* @__PURE__ */ new Date()).toISOString())
47
+ status: v.some((e) => e.type === "error") ? "warning" : "passed",
48
+ lastChecked: g((/* @__PURE__ */ new Date()).toISOString())
49
49
  }
50
50
  ];
51
51
  }, [
52
- _,
53
- g,
54
- v
55
- ]), b = t(() => g.slice(0, 6).map((e) => {
52
+ y,
53
+ v,
54
+ b
55
+ ]), S = t(() => v.slice(0, 6).map((e) => {
56
56
  let t = e.type === "error" ? "medium" : e.type === "warning" ? "low" : "info";
57
57
  return {
58
58
  id: e.id,
59
59
  message: e.message,
60
60
  severity: t,
61
- time: h(e.createdAt)
61
+ time: _(e.createdAt)
62
62
  };
63
- }), [g]), x = y.filter((e) => e.status === "passed").length, S = Math.round(x / Math.max(y.length, 1) * 100);
63
+ }), [v]), C = x.filter((e) => e.status === "passed").length, w = Math.round(C / Math.max(x.length, 1) * 100);
64
64
  return /* @__PURE__ */ s("div", {
65
65
  className: "space-y-6 p-6",
66
66
  children: [
@@ -68,9 +68,9 @@ function g() {
68
68
  className: "flex items-center justify-between",
69
69
  children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
70
70
  className: "text-2xl font-semibold",
71
- children: "Payment Security"
71
+ children: /* @__PURE__ */ o(h, { children: "Payment Security" })
72
72
  }), /* @__PURE__ */ o("p", {
73
- className: "text-sm text-muted-foreground",
73
+ className: "text-sm text-text-secondary",
74
74
  children: "Security controls and compliance status"
75
75
  })] }), /* @__PURE__ */ s(l, {
76
76
  variant: "outline",
@@ -81,56 +81,68 @@ function g() {
81
81
  /* @__PURE__ */ s("div", {
82
82
  className: "grid gap-4 md:grid-cols-3",
83
83
  children: [
84
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
85
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
86
- children: [/* @__PURE__ */ o(p, {
87
- className: "text-sm font-medium",
88
- children: "Security Score"
89
- }), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-green-500" })]
90
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
91
- className: "text-2xl font-bold",
92
- children: [S, "/100"]
93
- }) })] }),
94
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
95
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
96
- children: [/* @__PURE__ */ o(p, {
97
- className: "text-sm font-medium",
98
- children: "Checks Passing"
99
- }), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-green-500" })]
100
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
101
- className: "text-2xl font-bold",
102
- children: [
103
- x,
104
- "/",
105
- y.length
106
- ]
107
- }) })] }),
108
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
109
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
110
- children: [/* @__PURE__ */ o(p, {
111
- className: "text-sm font-medium",
112
- children: "Active Alerts"
113
- }), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-yellow-500" })]
114
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
115
- className: "text-2xl font-bold",
116
- children: b.length
117
- }) })] })
84
+ /* @__PURE__ */ s(m, {
85
+ treatment: "metric",
86
+ className: "border-border-seam",
87
+ children: [/* @__PURE__ */ s(f, {
88
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
89
+ children: [/* @__PURE__ */ o(p, {
90
+ className: "text-sm font-medium",
91
+ children: "Security Score"
92
+ }), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-status-success-text" })]
93
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
94
+ className: "text-2xl font-bold tabular-nums",
95
+ children: [w, "/100"]
96
+ }) })]
97
+ }),
98
+ /* @__PURE__ */ s(m, {
99
+ treatment: "metric",
100
+ className: "border-border-seam",
101
+ children: [/* @__PURE__ */ s(f, {
102
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
103
+ children: [/* @__PURE__ */ o(p, {
104
+ className: "text-sm font-medium",
105
+ children: "Checks Passing"
106
+ }), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-status-success-text" })]
107
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ s("div", {
108
+ className: "text-2xl font-bold tabular-nums",
109
+ children: [
110
+ C,
111
+ "/",
112
+ x.length
113
+ ]
114
+ }) })]
115
+ }),
116
+ /* @__PURE__ */ s(m, {
117
+ treatment: "metric",
118
+ className: "border-border-seam",
119
+ children: [/* @__PURE__ */ s(f, {
120
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
121
+ children: [/* @__PURE__ */ o(p, {
122
+ className: "text-sm font-medium",
123
+ children: "Active Alerts"
124
+ }), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-status-warning-text" })]
125
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
126
+ className: "text-2xl font-bold tabular-nums",
127
+ children: S.length
128
+ }) })]
129
+ })
118
130
  ]
119
131
  }),
120
132
  /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Security Checks" }) }), /* @__PURE__ */ o(d, {
121
133
  className: "space-y-3",
122
- children: y.map((e) => /* @__PURE__ */ s("div", {
134
+ children: x.map((e) => /* @__PURE__ */ s("div", {
123
135
  className: "flex items-center justify-between rounded border p-3",
124
136
  children: [/* @__PURE__ */ s("div", {
125
137
  className: "flex items-center gap-2",
126
- children: [e.status === "passed" ? /* @__PURE__ */ o(r, { className: "h-4 w-4 text-green-500" }) : /* @__PURE__ */ o(n, { className: "h-4 w-4 text-yellow-500" }), /* @__PURE__ */ o("span", {
138
+ children: [e.status === "passed" ? /* @__PURE__ */ o(r, { className: "h-4 w-4 text-status-success-text" }) : /* @__PURE__ */ o(n, { className: "h-4 w-4 text-status-warning-text" }), /* @__PURE__ */ o("span", {
127
139
  className: "text-sm font-medium",
128
140
  children: e.name
129
141
  })]
130
142
  }), /* @__PURE__ */ s("div", {
131
143
  className: "flex items-center gap-2",
132
144
  children: [/* @__PURE__ */ s("span", {
133
- className: "text-xs text-muted-foreground",
145
+ className: "text-xs text-text-secondary",
134
146
  children: ["Last: ", e.lastChecked]
135
147
  }), /* @__PURE__ */ o(c, {
136
148
  variant: e.status === "passed" ? "default" : "secondary",
@@ -142,18 +154,18 @@ function g() {
142
154
  })] }),
143
155
  /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Security Alerts" }) }), /* @__PURE__ */ o(d, {
144
156
  className: "space-y-3",
145
- children: b.map((e) => /* @__PURE__ */ s("div", {
157
+ children: S.map((e) => /* @__PURE__ */ s("div", {
146
158
  className: "flex items-center justify-between rounded border p-3",
147
159
  children: [/* @__PURE__ */ s("div", {
148
160
  className: "flex items-center gap-2",
149
- children: [/* @__PURE__ */ o(n, { className: `h-4 w-4 ${e.severity === "medium" ? "text-yellow-500" : e.severity === "low" ? "text-blue-500" : "text-muted-foreground"}` }), /* @__PURE__ */ o("span", {
161
+ children: [/* @__PURE__ */ o(n, { className: `h-4 w-4 ${e.severity === "medium" ? "text-status-warning-text" : e.severity === "low" ? "text-status-info-text" : "text-text-secondary"}` }), /* @__PURE__ */ o("span", {
150
162
  className: "text-sm",
151
163
  children: e.message
152
164
  })]
153
165
  }), /* @__PURE__ */ s("div", {
154
166
  className: "flex items-center gap-2",
155
167
  children: [/* @__PURE__ */ o("span", {
156
- className: "text-xs text-muted-foreground",
168
+ className: "text-xs text-text-secondary",
157
169
  children: e.time
158
170
  }), /* @__PURE__ */ o(c, {
159
171
  variant: "outline",
@@ -167,6 +179,6 @@ function g() {
167
179
  });
168
180
  }
169
181
  //#endregion
170
- export { g as PaymentsSecurityPagePage };
182
+ export { v as PaymentsSecurityPagePage };
171
183
 
172
184
  //# sourceMappingURL=PaymentsSecurityPagePage.js.map