@burdenoff/microfe-crewfoundry 2026.704.3 → 2026.704.4

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 (89) hide show
  1. package/dist/crewfoundry/pages/AdminAdminPagePage.js +76 -75
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +118 -117
  4. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +115 -114
  6. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +105 -104
  8. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +52 -51
  10. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +94 -93
  12. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +97 -96
  14. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +68 -67
  16. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +96 -95
  18. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +153 -152
  20. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +107 -106
  22. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +77 -76
  24. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +80 -79
  26. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +102 -101
  28. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +126 -125
  30. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/HiringJobsPagePage.js +64 -63
  32. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +96 -95
  34. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +127 -126
  36. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/HrPayrollPagePage.js +118 -117
  38. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  39. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +123 -122
  40. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  41. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +77 -76
  42. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +49 -48
  44. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +62 -61
  46. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/LearningLearningPagePage.js +72 -71
  48. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +70 -69
  50. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +57 -56
  52. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +58 -57
  54. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +122 -121
  56. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  57. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +70 -69
  58. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +41 -40
  60. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +65 -64
  62. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +75 -74
  64. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +60 -59
  66. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +53 -52
  68. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +37 -36
  70. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +126 -125
  72. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +62 -61
  74. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +50 -49
  76. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +72 -71
  78. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +40 -39
  80. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +130 -129
  82. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +60 -59
  84. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  85. package/dist/crewfoundry/store/crewfoundryStore.js +177 -146
  86. package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
  87. package/dist/crewfoundry/utils/formatEnumLabel.js +8 -0
  88. package/dist/crewfoundry/utils/formatEnumLabel.js.map +1 -0
  89. package/package.json +1 -1
@@ -1,72 +1,73 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
- import { Building2 as t, CreditCard as n, ExternalLink as r } from "lucide-react";
3
- import { useNavigate as i } from "react-router-dom";
4
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
- import { Badge as s, Button as c, CardContent as l, GlassCard as u, GradientText as d, IllustratedEmptyState as f, PagePurpose as p } from "@burdenoff/fe-libs/ui";
2
+ import { formatEnumLabel as t } from "../utils/formatEnumLabel.js";
3
+ import { Building2 as n, CreditCard as r, ExternalLink as i } from "lucide-react";
4
+ import { useNavigate as a } from "react-router-dom";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ import { Badge as c, Button as l, CardContent as u, GlassCard as d, GradientText as f, IllustratedEmptyState as p, PagePurpose as m } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/crewfoundry/pages/PaymentsPaymentMethodsPagePage.tsx
7
- var m = "/billing/payment-methods";
8
- function h() {
9
- let h = i(), { paymentMethods: g } = e(), _ = () => h(m);
10
- return /* @__PURE__ */ o("div", {
8
+ var h = "/billing/payment-methods";
9
+ function g() {
10
+ let g = a(), { paymentMethods: _ } = e(), v = () => g(h);
11
+ return /* @__PURE__ */ s("div", {
11
12
  className: "space-y-6 p-6",
12
- children: [/* @__PURE__ */ o("div", {
13
+ children: [/* @__PURE__ */ s("div", {
13
14
  className: "flex items-center justify-between",
14
- children: [/* @__PURE__ */ o("div", { children: [
15
- /* @__PURE__ */ a("h1", {
15
+ children: [/* @__PURE__ */ s("div", { children: [
16
+ /* @__PURE__ */ o("h1", {
16
17
  className: "text-2xl font-semibold",
17
- children: /* @__PURE__ */ a(d, { children: "Payment Methods" })
18
+ children: /* @__PURE__ */ o(f, { children: "Payment Methods" })
18
19
  }),
19
- /* @__PURE__ */ a("p", {
20
+ /* @__PURE__ */ o("p", {
20
21
  className: "text-sm text-text-secondary",
21
22
  children: "Managed in your platform Billing settings"
22
23
  }),
23
- /* @__PURE__ */ a(p, {
24
+ /* @__PURE__ */ o(m, {
24
25
  className: "mt-1",
25
26
  children: "Manage how you pay and get paid — cards, bank accounts, and payout methods are held securely in Billing settings."
26
27
  })
27
- ] }), /* @__PURE__ */ o(c, {
28
+ ] }), /* @__PURE__ */ s(l, {
28
29
  size: "sm",
29
- onClick: _,
30
- children: [/* @__PURE__ */ a(r, { className: "mr-1 h-4 w-4" }), "Manage in Billing settings"]
30
+ onClick: v,
31
+ children: [/* @__PURE__ */ o(i, { className: "mr-1 h-4 w-4" }), "Manage in Billing settings"]
31
32
  })]
32
- }), /* @__PURE__ */ a("div", {
33
+ }), /* @__PURE__ */ o("div", {
33
34
  className: "grid gap-4 md:grid-cols-2",
34
- children: g.length === 0 ? /* @__PURE__ */ a("div", {
35
+ children: _.length === 0 ? /* @__PURE__ */ o("div", {
35
36
  className: "col-span-full",
36
- children: /* @__PURE__ */ a(f, {
37
+ children: /* @__PURE__ */ o(p, {
37
38
  illustration: "empty-generic",
38
39
  title: "No payment methods",
39
40
  description: "Payment methods live in your platform Billing settings. Add a card or bank account there to pay and get paid.",
40
- action: /* @__PURE__ */ o(c, {
41
+ action: /* @__PURE__ */ s(l, {
41
42
  size: "sm",
42
- onClick: _,
43
- children: [/* @__PURE__ */ a(r, { className: "mr-1 h-4 w-4" }), "Open Billing settings"]
43
+ onClick: v,
44
+ children: [/* @__PURE__ */ o(i, { className: "mr-1 h-4 w-4" }), "Open Billing settings"]
44
45
  })
45
46
  })
46
- }) : g.map((e, r) => /* @__PURE__ */ a(u, {
47
- treatment: r === 0 ? "glass" : "plain",
48
- glow: r === 0,
49
- children: /* @__PURE__ */ o(l, {
47
+ }) : _.map((e, i) => /* @__PURE__ */ o(d, {
48
+ treatment: i === 0 ? "glass" : "plain",
49
+ glow: i === 0,
50
+ children: /* @__PURE__ */ s(u, {
50
51
  className: "p-4",
51
- children: [/* @__PURE__ */ o("div", {
52
+ children: [/* @__PURE__ */ s("div", {
52
53
  className: "mb-3 flex items-center justify-between",
53
- children: [/* @__PURE__ */ o("div", {
54
+ children: [/* @__PURE__ */ s("div", {
54
55
  className: "flex items-center gap-2",
55
- children: [e.type === "bank" ? /* @__PURE__ */ a(t, { className: "h-5 w-5 text-text-secondary" }) : /* @__PURE__ */ a(n, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
56
+ children: [e.type === "bank" ? /* @__PURE__ */ o(n, { className: "h-5 w-5 text-text-secondary" }) : /* @__PURE__ */ o(r, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
56
57
  className: "text-sm font-medium",
57
58
  children: e.name
58
- }), /* @__PURE__ */ a("p", {
59
+ }), /* @__PURE__ */ o("p", {
59
60
  className: "text-xs text-text-secondary",
60
61
  children: e.bank
61
62
  })] })]
62
- }), /* @__PURE__ */ a(s, {
63
+ }), /* @__PURE__ */ o(c, {
63
64
  variant: e.status === "primary" ? "default" : "secondary",
64
65
  className: "text-[10px]",
65
- children: e.status
66
+ children: t(e.status)
66
67
  })]
67
- }), /* @__PURE__ */ o("div", {
68
+ }), /* @__PURE__ */ s("div", {
68
69
  className: "flex items-center justify-between text-sm text-text-secondary",
69
- children: [/* @__PURE__ */ o("span", { children: ["•••• •••• •••• ", e.last4] }), e.expiry ? /* @__PURE__ */ o("span", { children: ["Exp: ", e.expiry] }) : null]
70
+ children: [/* @__PURE__ */ s("span", { children: ["•••• •••• •••• ", e.last4] }), e.expiry ? /* @__PURE__ */ s("span", { children: ["Exp: ", e.expiry] }) : null]
70
71
  })]
71
72
  })
72
73
  }, e.id))
@@ -74,6 +75,6 @@ function h() {
74
75
  });
75
76
  }
76
77
  //#endregion
77
- export { h as PaymentsPaymentMethodsPagePage };
78
+ export { g as PaymentsPaymentMethodsPagePage };
78
79
 
79
80
  //# sourceMappingURL=PaymentsPaymentMethodsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsPaymentMethodsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/PaymentsPaymentMethodsPagePage.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport {\n Badge,\n Button,\n CardContent,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Building2, CreditCard, ExternalLink } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\n// Payment methods are owned by the platform Billing module (global billing\n// account), not by CrewFoundry. We read the real methods surfaced via the\n// billing overlap and send all add/manage actions to Billing settings — there\n// is deliberately no crew-local payment-method store.\nconst BILLING_PAYMENT_METHODS_ROUTE = '/billing/payment-methods';\n\nexport function PaymentsPaymentMethodsPagePage() {\n const navigate = useNavigate();\n const { paymentMethods } = useCrewFoundryStore();\n\n const goToBilling = () => navigate(BILLING_PAYMENT_METHODS_ROUTE);\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\">Managed in your platform Billing settings</p>\n <PagePurpose className=\"mt-1\">\n Manage how you pay and get paid — cards, bank accounts, and payout methods are held\n securely in Billing settings.\n </PagePurpose>\n </div>\n <Button size=\"sm\" onClick={goToBilling}>\n <ExternalLink className=\"mr-1 h-4 w-4\" />\n Manage in Billing settings\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {paymentMethods.length === 0 ? (\n <div className=\"col-span-full\">\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"No payment methods\"\n description=\"Payment methods live in your platform Billing settings. Add a card or bank account there to pay and get paid.\"\n action={\n <Button size=\"sm\" onClick={goToBilling}>\n <ExternalLink className=\"mr-1 h-4 w-4\" />\n Open Billing settings\n </Button>\n }\n />\n </div>\n ) : (\n paymentMethods.map((method, _idx) => (\n <GlassCard key={method.id} treatment={_idx === 0 ? 'glass' : 'plain'} glow={_idx === 0}>\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 </GlassCard>\n ))\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAiBA,IAAM,IAAgC;AAEtC,SAAgB,IAAiC;CAC/C,IAAM,IAAW,GAAa,EACxB,EAAE,sBAAmB,GAAqB,EAE1C,UAAoB,EAAS,EAA8B;AAEjE,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA;IACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD,EAAA,UAAc,mBAA8B,CAAA;KACzC,CAAA;IACL,kBAAC,KAAD;KAAG,WAAU;eAA8B;KAA6C,CAAA;IACxF,kBAAC,GAAD;KAAa,WAAU;eAAO;KAGhB,CAAA;IACV,EAAA,CAAA,EACN,kBAAC,GAAD;IAAQ,MAAK;IAAK,SAAS;cAA3B,CACE,kBAAC,GAAD,EAAc,WAAU,gBAAiB,CAAA,EAAA,6BAElC;MACL;MAEN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAe,WAAW,IACzB,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD;KACE,cAAa;KACb,OAAM;KACN,aAAY;KACZ,QACE,kBAAC,GAAD;MAAQ,MAAK;MAAK,SAAS;gBAA3B,CACE,kBAAC,GAAD,EAAc,WAAU,gBAAiB,CAAA,EAAA,wBAElC;;KAEX,CAAA;IACE,CAAA,GAEN,EAAe,KAAK,GAAQ,MAC1B,kBAAC,GAAD;IAA2B,WAAW,MAAS,IAAI,UAAU;IAAS,MAAM,MAAS;cACnF,kBAAC,GAAD;KAAa,WAAU;eAAvB,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,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;QAAG,WAAU;kBAAuB,EAAO;QAAS,CAAA,EACpD,kBAAC,KAAD;QAAG,WAAU;kBAA+B,EAAO;QAAS,CAAA,CACxD,EAAA,CAAA,CACF;UACN,kBAAC,GAAD;OACE,SAAS,EAAO,WAAW,YAAY,YAAY;OACnD,WAAU;iBAET,EAAO;OACF,CAAA,CACJ;SACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,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;QACM;;IACJ,EA1BI,EAAO,GA0BX,CACZ;GAEA,CAAA,CACF"}
1
+ {"version":3,"file":"PaymentsPaymentMethodsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/PaymentsPaymentMethodsPagePage.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport {\n Badge,\n Button,\n CardContent,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Building2, CreditCard, ExternalLink } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\nimport { formatEnumLabel } from '../utils/formatEnumLabel';\n\n// Payment methods are owned by the platform Billing module (global billing\n// account), not by CrewFoundry. We read the real methods surfaced via the\n// billing overlap and send all add/manage actions to Billing settings — there\n// is deliberately no crew-local payment-method store.\nconst BILLING_PAYMENT_METHODS_ROUTE = '/billing/payment-methods';\n\nexport function PaymentsPaymentMethodsPagePage() {\n const navigate = useNavigate();\n const { paymentMethods } = useCrewFoundryStore();\n\n const goToBilling = () => navigate(BILLING_PAYMENT_METHODS_ROUTE);\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\">Managed in your platform Billing settings</p>\n <PagePurpose className=\"mt-1\">\n Manage how you pay and get paid — cards, bank accounts, and payout methods are held\n securely in Billing settings.\n </PagePurpose>\n </div>\n <Button size=\"sm\" onClick={goToBilling}>\n <ExternalLink className=\"mr-1 h-4 w-4\" />\n Manage in Billing settings\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {paymentMethods.length === 0 ? (\n <div className=\"col-span-full\">\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"No payment methods\"\n description=\"Payment methods live in your platform Billing settings. Add a card or bank account there to pay and get paid.\"\n action={\n <Button size=\"sm\" onClick={goToBilling}>\n <ExternalLink className=\"mr-1 h-4 w-4\" />\n Open Billing settings\n </Button>\n }\n />\n </div>\n ) : (\n paymentMethods.map((method, _idx) => (\n <GlassCard key={method.id} treatment={_idx === 0 ? 'glass' : 'plain'} glow={_idx === 0}>\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 {formatEnumLabel(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 </GlassCard>\n ))\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAkBA,IAAM,IAAgC;AAEtC,SAAgB,IAAiC;CAC/C,IAAM,IAAW,GAAa,EACxB,EAAE,sBAAmB,GAAqB,EAE1C,UAAoB,EAAS,EAA8B;AAEjE,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA;IACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD,EAAA,UAAc,mBAA8B,CAAA;KACzC,CAAA;IACL,kBAAC,KAAD;KAAG,WAAU;eAA8B;KAA6C,CAAA;IACxF,kBAAC,GAAD;KAAa,WAAU;eAAO;KAGhB,CAAA;IACV,EAAA,CAAA,EACN,kBAAC,GAAD;IAAQ,MAAK;IAAK,SAAS;cAA3B,CACE,kBAAC,GAAD,EAAc,WAAU,gBAAiB,CAAA,EAAA,6BAElC;MACL;MAEN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAe,WAAW,IACzB,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD;KACE,cAAa;KACb,OAAM;KACN,aAAY;KACZ,QACE,kBAAC,GAAD;MAAQ,MAAK;MAAK,SAAS;gBAA3B,CACE,kBAAC,GAAD,EAAc,WAAU,gBAAiB,CAAA,EAAA,wBAElC;;KAEX,CAAA;IACE,CAAA,GAEN,EAAe,KAAK,GAAQ,MAC1B,kBAAC,GAAD;IAA2B,WAAW,MAAS,IAAI,UAAU;IAAS,MAAM,MAAS;cACnF,kBAAC,GAAD;KAAa,WAAU;eAAvB,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,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;QAAG,WAAU;kBAAuB,EAAO;QAAS,CAAA,EACpD,kBAAC,KAAD;QAAG,WAAU;kBAA+B,EAAO;QAAS,CAAA,CACxD,EAAA,CAAA,CACF;UACN,kBAAC,GAAD;OACE,SAAS,EAAO,WAAW,YAAY,YAAY;OACnD,WAAU;iBAET,EAAgB,EAAO,OAAO;OACzB,CAAA,CACJ;SACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,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;QACM;;IACJ,EA1BI,EAAO,GA0BX,CACZ;GAEA,CAAA,CACF"}
@@ -1,13 +1,14 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
- import { FormModal as t, useFormModal as n } from "../components/forms/FormModal.js";
3
- import { useState as r } from "react";
4
- import { Calendar as i, DollarSign as a, FolderKanban as o, Pencil as s, Target as c, Trash2 as l, Users as u } from "lucide-react";
5
- import { useNavigate as d, useSearchParams as f } from "react-router-dom";
6
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
7
- import { Badge as h, Button as g, Card as _, CardContent as v, CardHeader as y, CardTitle as b, EmphasisPanel as x, GradientText as S, IllustratedEmptyState as C, NextSteps as w, PagePurpose as T, ResponsiveDialog as E, ResponsiveDialogContent as D, ResponsiveDialogDescription as O, ResponsiveDialogFooter as k, ResponsiveDialogHeader as A, ResponsiveDialogTitle as j } from "@burdenoff/fe-libs/ui";
8
- import { useGlobalUi as M } from "@burdenoff/fe-libs/shared/providers/shell";
2
+ import { formatEnumLabel as t } from "../utils/formatEnumLabel.js";
3
+ import { FormModal as n, useFormModal as r } from "../components/forms/FormModal.js";
4
+ import { useState as i } from "react";
5
+ import { Calendar as a, DollarSign as o, FolderKanban as s, Pencil as c, Target as l, Trash2 as u, Users as d } from "lucide-react";
6
+ import { useNavigate as f, useSearchParams as p } from "react-router-dom";
7
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
8
+ import { Badge as g, Button as _, Card as v, CardContent as y, CardHeader as b, CardTitle as x, EmphasisPanel as S, GradientText as C, IllustratedEmptyState as w, NextSteps as T, PagePurpose as E, ResponsiveDialog as D, ResponsiveDialogContent as O, ResponsiveDialogDescription as k, ResponsiveDialogFooter as A, ResponsiveDialogHeader as j, ResponsiveDialogTitle as M } from "@burdenoff/fe-libs/ui";
9
+ import { useGlobalUi as N } from "@burdenoff/fe-libs/shared/providers/shell";
9
10
  //#region src/crewfoundry/pages/ProjectsProjectDetailsPagePage.tsx
10
- var N = [
11
+ var P = [
11
12
  {
12
13
  name: "name",
13
14
  label: "Project Name",
@@ -82,150 +83,150 @@ var N = [
82
83
  type: "number"
83
84
  }
84
85
  ];
85
- function P() {
86
- let P = d(), [F] = f(), { showToast: I } = M(), L = e((e) => e.projects), R = e((e) => e.updateProject), z = e((e) => e.removeProject), B = n(), [V, H] = r(!1), [U, W] = r(!1), G = F.get("id"), K = L.find((e) => e.id === G) ?? L[0];
87
- if (!K) return /* @__PURE__ */ p("div", {
86
+ function F() {
87
+ let F = f(), [I] = p(), { showToast: L } = N(), R = e((e) => e.projects), z = e((e) => e.updateProject), B = e((e) => e.removeProject), V = r(), [H, U] = i(!1), [W, G] = i(!1), K = I.get("id"), q = R.find((e) => e.id === K) ?? R[0];
88
+ if (!q) return /* @__PURE__ */ m("div", {
88
89
  className: "p-6",
89
- children: /* @__PURE__ */ p(C, {
90
+ children: /* @__PURE__ */ m(w, {
90
91
  illustration: "empty-search",
91
92
  title: "Project not found",
92
93
  description: "This project is no longer available."
93
94
  })
94
95
  });
95
- let q = K.budget > 0 ? Math.round(K.spent / K.budget * 100) : 0, J = K.budget > 0 && K.spent / K.budget > .9, Y = {
96
- name: K.name,
97
- description: K.description,
98
- status: K.status,
99
- priority: K.priority,
100
- budget: K.budget,
101
- progress: K.progress
96
+ let J = q.budget > 0 ? Math.round(q.spent / q.budget * 100) : 0, Y = q.budget > 0 && q.spent / q.budget > .9, X = {
97
+ name: q.name,
98
+ description: q.description,
99
+ status: q.status,
100
+ priority: q.priority,
101
+ budget: q.budget,
102
+ progress: q.progress
102
103
  };
103
- return /* @__PURE__ */ m("div", {
104
+ return /* @__PURE__ */ h("div", {
104
105
  className: "space-y-6 p-6 max-w-4xl",
105
106
  children: [
106
- /* @__PURE__ */ m("div", {
107
+ /* @__PURE__ */ h("div", {
107
108
  className: "flex items-center justify-between gap-4",
108
- children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h1", {
109
+ children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h1", {
109
110
  className: "text-2xl font-semibold",
110
- children: /* @__PURE__ */ p(S, { children: K.name })
111
- }), /* @__PURE__ */ p("p", {
111
+ children: /* @__PURE__ */ m(C, { children: q.name })
112
+ }), /* @__PURE__ */ m("p", {
112
113
  className: "text-sm text-text-secondary",
113
- children: K.description
114
- })] }), /* @__PURE__ */ m("div", {
114
+ children: q.description
115
+ })] }), /* @__PURE__ */ h("div", {
115
116
  className: "flex items-center gap-2",
116
117
  children: [
117
- /* @__PURE__ */ m("div", {
118
+ /* @__PURE__ */ h("div", {
118
119
  className: "hidden gap-1 sm:flex",
119
- children: [/* @__PURE__ */ p(h, {
120
- variant: K.priority === "critical" ? "destructive" : "default",
121
- children: K.priority
122
- }), /* @__PURE__ */ p(h, {
123
- variant: K.status === "active" ? "default" : "secondary",
124
- children: K.status
120
+ children: [/* @__PURE__ */ m(g, {
121
+ variant: q.priority === "critical" ? "destructive" : "default",
122
+ children: t(q.priority)
123
+ }), /* @__PURE__ */ m(g, {
124
+ variant: q.status === "active" ? "default" : "secondary",
125
+ children: t(q.status)
125
126
  })]
126
127
  }),
127
- /* @__PURE__ */ m(g, {
128
+ /* @__PURE__ */ h(_, {
128
129
  variant: "outline",
129
130
  size: "sm",
130
- onClick: () => B.openModal(),
131
- children: [/* @__PURE__ */ p(s, { className: "h-4 w-4 mr-1" }), "Edit"]
131
+ onClick: () => V.openModal(),
132
+ children: [/* @__PURE__ */ m(c, { className: "h-4 w-4 mr-1" }), "Edit"]
132
133
  }),
133
- /* @__PURE__ */ p(g, {
134
+ /* @__PURE__ */ m(_, {
134
135
  variant: "ghost",
135
136
  size: "sm",
136
137
  "aria-label": "Delete project",
137
138
  className: "h-9 w-9 p-0 text-text-secondary hover:text-status-error-text",
138
- onClick: () => H(!0),
139
- children: /* @__PURE__ */ p(l, { className: "h-4 w-4" })
139
+ onClick: () => U(!0),
140
+ children: /* @__PURE__ */ m(u, { className: "h-4 w-4" })
140
141
  })
141
142
  ]
142
143
  })]
143
144
  }),
144
- /* @__PURE__ */ p(T, { children: "Track a single project end-to-end — progress, budget, team, and timeline in one place — so you can spot risks early and keep delivery on schedule and on budget." }),
145
- /* @__PURE__ */ p(w, {
145
+ /* @__PURE__ */ m(E, { children: "Track a single project end-to-end — progress, budget, team, and timeline in one place — so you can spot risks early and keep delivery on schedule and on budget." }),
146
+ /* @__PURE__ */ m(T, {
146
147
  storageKey: "crewfoundry-project-details",
147
148
  steps: [
148
149
  {
149
150
  id: "all-projects",
150
151
  label: "View all projects",
151
152
  description: "See how this project compares across your portfolio.",
152
- icon: /* @__PURE__ */ p(o, { className: "h-4 w-4" }),
153
- onClick: () => P("../../projects/projects-page")
153
+ icon: /* @__PURE__ */ m(s, { className: "h-4 w-4" }),
154
+ onClick: () => F("../../projects/projects-page")
154
155
  },
155
156
  {
156
157
  id: "team",
157
158
  label: "Check the team",
158
159
  description: "Review who is working on this and their workload.",
159
- icon: /* @__PURE__ */ p(u, { className: "h-4 w-4" }),
160
- onClick: () => P("../../teams/teams-page")
160
+ icon: /* @__PURE__ */ m(d, { className: "h-4 w-4" }),
161
+ onClick: () => F("../../teams/teams-page")
161
162
  },
162
163
  {
163
164
  id: "new-project",
164
165
  label: "Start a new project",
165
166
  description: "Kick off the next piece of work.",
166
- icon: /* @__PURE__ */ p(c, { className: "h-4 w-4" }),
167
- onClick: () => P("../../projects/create-project-page")
167
+ icon: /* @__PURE__ */ m(l, { className: "h-4 w-4" }),
168
+ onClick: () => F("../../projects/create-project-page")
168
169
  }
169
170
  ]
170
171
  }),
171
- /* @__PURE__ */ m("div", {
172
+ /* @__PURE__ */ h("div", {
172
173
  className: "grid gap-4 md:grid-cols-4",
173
174
  children: [
174
- /* @__PURE__ */ p(_, { children: /* @__PURE__ */ m(v, {
175
+ /* @__PURE__ */ m(v, { children: /* @__PURE__ */ h(y, {
175
176
  className: "p-4 text-center",
176
177
  children: [
177
- /* @__PURE__ */ p(c, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
178
- /* @__PURE__ */ m("p", {
178
+ /* @__PURE__ */ m(l, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
179
+ /* @__PURE__ */ h("p", {
179
180
  className: "text-lg font-bold",
180
- children: [K.progress, "%"]
181
+ children: [q.progress, "%"]
181
182
  }),
182
- /* @__PURE__ */ p("p", {
183
+ /* @__PURE__ */ m("p", {
183
184
  className: "text-xs text-text-secondary",
184
185
  children: "Progress"
185
186
  })
186
187
  ]
187
188
  }) }),
188
- /* @__PURE__ */ p(_, { children: /* @__PURE__ */ m(v, {
189
+ /* @__PURE__ */ m(v, { children: /* @__PURE__ */ h(y, {
189
190
  className: "p-4 text-center",
190
191
  children: [
191
- /* @__PURE__ */ p(a, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
192
- /* @__PURE__ */ m("p", {
192
+ /* @__PURE__ */ m(o, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
193
+ /* @__PURE__ */ h("p", {
193
194
  className: "text-lg font-bold",
194
195
  children: [
195
196
  "$",
196
- (K.budget / 1e3).toFixed(0),
197
+ (q.budget / 1e3).toFixed(0),
197
198
  "K"
198
199
  ]
199
200
  }),
200
- /* @__PURE__ */ p("p", {
201
+ /* @__PURE__ */ m("p", {
201
202
  className: "text-xs text-text-secondary",
202
203
  children: "Budget"
203
204
  })
204
205
  ]
205
206
  }) }),
206
- /* @__PURE__ */ p(_, { children: /* @__PURE__ */ m(v, {
207
+ /* @__PURE__ */ m(v, { children: /* @__PURE__ */ h(y, {
207
208
  className: "p-4 text-center",
208
209
  children: [
209
- /* @__PURE__ */ p(u, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
210
- /* @__PURE__ */ p("p", {
210
+ /* @__PURE__ */ m(d, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
211
+ /* @__PURE__ */ m("p", {
211
212
  className: "text-lg font-bold",
212
- children: K.teamName
213
+ children: q.teamName
213
214
  }),
214
- /* @__PURE__ */ p("p", {
215
+ /* @__PURE__ */ m("p", {
215
216
  className: "text-xs text-text-secondary",
216
217
  children: "Team"
217
218
  })
218
219
  ]
219
220
  }) }),
220
- /* @__PURE__ */ p(_, { children: /* @__PURE__ */ m(v, {
221
+ /* @__PURE__ */ m(v, { children: /* @__PURE__ */ h(y, {
221
222
  className: "p-4 text-center",
222
223
  children: [
223
- /* @__PURE__ */ p(i, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
224
- /* @__PURE__ */ p("p", {
224
+ /* @__PURE__ */ m(a, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
225
+ /* @__PURE__ */ m("p", {
225
226
  className: "text-lg font-bold",
226
- children: K.endDate
227
+ children: q.endDate
227
228
  }),
228
- /* @__PURE__ */ p("p", {
229
+ /* @__PURE__ */ m("p", {
229
230
  className: "text-xs text-text-secondary",
230
231
  children: "Deadline"
231
232
  })
@@ -233,118 +234,118 @@ function P() {
233
234
  }) })
234
235
  ]
235
236
  }),
236
- /* @__PURE__ */ m(x, { children: [/* @__PURE__ */ p("div", {
237
+ /* @__PURE__ */ h(S, { children: [/* @__PURE__ */ m("div", {
237
238
  className: "mb-2 text-lg font-semibold",
238
239
  children: "Task Progress"
239
- }), /* @__PURE__ */ m("div", {
240
+ }), /* @__PURE__ */ h("div", {
240
241
  className: "space-y-2",
241
- children: [/* @__PURE__ */ m("div", {
242
+ children: [/* @__PURE__ */ h("div", {
242
243
  className: "flex justify-between text-sm",
243
- children: [/* @__PURE__ */ m("span", { children: [
244
- K.completedTasks,
244
+ children: [/* @__PURE__ */ h("span", { children: [
245
+ q.completedTasks,
245
246
  " of ",
246
- K.tasks,
247
+ q.tasks,
247
248
  " tasks completed"
248
- ] }), /* @__PURE__ */ m("span", {
249
+ ] }), /* @__PURE__ */ h("span", {
249
250
  className: "font-medium",
250
- children: [K.progress, "%"]
251
+ children: [q.progress, "%"]
251
252
  })]
252
- }), /* @__PURE__ */ p("div", {
253
+ }), /* @__PURE__ */ m("div", {
253
254
  className: "h-3 bg-bg-sunken rounded overflow-hidden",
254
- children: /* @__PURE__ */ p("div", {
255
+ children: /* @__PURE__ */ m("div", {
255
256
  className: "h-3 bg-action-primary-bg rounded",
256
- style: { width: `${K.progress}%` }
257
+ style: { width: `${q.progress}%` }
257
258
  })
258
259
  })]
259
260
  })] }),
260
- /* @__PURE__ */ m(_, { children: [/* @__PURE__ */ p(y, { children: /* @__PURE__ */ p(b, { children: "Budget Tracking" }) }), /* @__PURE__ */ m(v, { children: [/* @__PURE__ */ m("div", {
261
+ /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ m(b, { children: /* @__PURE__ */ m(x, { children: "Budget Tracking" }) }), /* @__PURE__ */ h(y, { children: [/* @__PURE__ */ h("div", {
261
262
  className: "space-y-2",
262
- children: [/* @__PURE__ */ m("div", {
263
+ children: [/* @__PURE__ */ h("div", {
263
264
  className: "flex justify-between text-sm",
264
- children: [/* @__PURE__ */ m("span", { children: [
265
+ children: [/* @__PURE__ */ h("span", { children: [
265
266
  "Spent $",
266
- (K.spent / 1e3).toFixed(0),
267
+ (q.spent / 1e3).toFixed(0),
267
268
  "K of $",
268
- (K.budget / 1e3).toFixed(0),
269
+ (q.budget / 1e3).toFixed(0),
269
270
  "K"
270
- ] }), /* @__PURE__ */ m("span", {
271
+ ] }), /* @__PURE__ */ h("span", {
271
272
  className: "font-medium",
272
- children: [q, "%"]
273
+ children: [J, "%"]
273
274
  })]
274
- }), /* @__PURE__ */ p("div", {
275
+ }), /* @__PURE__ */ m("div", {
275
276
  className: "h-3 bg-bg-sunken rounded overflow-hidden",
276
- children: /* @__PURE__ */ p("div", {
277
- className: `h-3 rounded ${J ? "bg-status-error-text" : "bg-status-success-text"}`,
278
- style: { width: `${q}%` }
277
+ children: /* @__PURE__ */ m("div", {
278
+ className: `h-3 rounded ${Y ? "bg-status-error-text" : "bg-status-success-text"}`,
279
+ style: { width: `${J}%` }
279
280
  })
280
281
  })]
281
- }), /* @__PURE__ */ m("div", {
282
+ }), /* @__PURE__ */ h("div", {
282
283
  className: "grid grid-cols-2 gap-4 mt-4 text-sm",
283
- children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
284
+ children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
284
285
  className: "text-xs text-text-secondary",
285
286
  children: "Manager"
286
- }), /* @__PURE__ */ p("p", {
287
+ }), /* @__PURE__ */ m("p", {
287
288
  className: "font-medium",
288
- children: K.managerName
289
- })] }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
289
+ children: q.managerName
290
+ })] }), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
290
291
  className: "text-xs text-text-secondary",
291
292
  children: "Timeline"
292
- }), /* @__PURE__ */ m("p", { children: [
293
- K.startDate,
293
+ }), /* @__PURE__ */ h("p", { children: [
294
+ q.startDate,
294
295
  " — ",
295
- K.endDate
296
+ q.endDate
296
297
  ] })] })]
297
298
  })] })] }),
298
- /* @__PURE__ */ p(t, {
299
- open: B.open,
300
- onOpenChange: B.onOpenChange,
299
+ /* @__PURE__ */ m(n, {
300
+ open: V.open,
301
+ onOpenChange: V.onOpenChange,
301
302
  title: "Edit Project",
302
- description: `Update the details for ${K.name}.`,
303
- fields: N,
304
- initialValues: Y,
303
+ description: `Update the details for ${q.name}.`,
304
+ fields: P,
305
+ initialValues: X,
305
306
  submitLabel: "Save Changes",
306
307
  onSubmit: async (e) => {
307
308
  let t = {
308
309
  name: String(e.name ?? "").trim(),
309
310
  description: String(e.description ?? "").trim(),
310
- status: String(e.status ?? K.status),
311
- priority: String(e.priority ?? K.priority)
311
+ status: String(e.status ?? q.status),
312
+ priority: String(e.priority ?? q.priority)
312
313
  };
313
- typeof e.budget == "number" && !Number.isNaN(e.budget) && (t.budget = e.budget), typeof e.progress == "number" && !Number.isNaN(e.progress) && (t.progress = e.progress), await R(K.id, t), I("Project updated", "success");
314
+ typeof e.budget == "number" && !Number.isNaN(e.budget) && (t.budget = e.budget), typeof e.progress == "number" && !Number.isNaN(e.progress) && (t.progress = e.progress), await z(q.id, t), L("Project updated", "success");
314
315
  }
315
316
  }),
316
- /* @__PURE__ */ p(E, {
317
- open: V,
318
- onOpenChange: H,
319
- children: /* @__PURE__ */ m(D, {
317
+ /* @__PURE__ */ m(D, {
318
+ open: H,
319
+ onOpenChange: U,
320
+ children: /* @__PURE__ */ h(O, {
320
321
  className: "sm:max-w-[440px]",
321
- children: [/* @__PURE__ */ m(A, { children: [/* @__PURE__ */ m(j, { children: [
322
+ children: [/* @__PURE__ */ h(j, { children: [/* @__PURE__ */ h(M, { children: [
322
323
  "Delete ",
323
- K.name,
324
+ q.name,
324
325
  "?"
325
- ] }), /* @__PURE__ */ p(O, { children: "This permanently removes the project and its tracking data. This cannot be undone." })] }), /* @__PURE__ */ m(k, { children: [/* @__PURE__ */ p(g, {
326
+ ] }), /* @__PURE__ */ m(k, { children: "This permanently removes the project and its tracking data. This cannot be undone." })] }), /* @__PURE__ */ h(A, { children: [/* @__PURE__ */ m(_, {
326
327
  type: "button",
327
328
  variant: "outline",
328
- onClick: () => H(!1),
329
- disabled: U,
329
+ onClick: () => U(!1),
330
+ disabled: W,
330
331
  children: "Cancel"
331
- }), /* @__PURE__ */ p(g, {
332
+ }), /* @__PURE__ */ m(_, {
332
333
  type: "button",
333
334
  variant: "destructive",
334
335
  onClick: async () => {
335
- if (!U) {
336
- W(!0);
336
+ if (!W) {
337
+ G(!0);
337
338
  try {
338
- await z(K.id), I("Project deleted", "success"), H(!1), P("../../projects/projects-page");
339
+ await B(q.id), L("Project deleted", "success"), U(!1), F("../../projects/projects-page");
339
340
  } catch (e) {
340
- I(e instanceof Error ? e.message : "Unable to delete project", "error");
341
+ L(e instanceof Error ? e.message : "Unable to delete project", "error");
341
342
  } finally {
342
- W(!1);
343
+ G(!1);
343
344
  }
344
345
  }
345
346
  },
346
- disabled: U,
347
- children: U ? "Deleting…" : "Delete Project"
347
+ disabled: W,
348
+ children: W ? "Deleting…" : "Delete Project"
348
349
  })] })]
349
350
  })
350
351
  })
@@ -352,6 +353,6 @@ function P() {
352
353
  });
353
354
  }
354
355
  //#endregion
355
- export { P as ProjectsProjectDetailsPagePage };
356
+ export { F as ProjectsProjectDetailsPagePage };
356
357
 
357
358
  //# sourceMappingURL=ProjectsProjectDetailsPagePage.js.map