@burdenoff/microfe-crewfoundry 2026.624.1 → 2026.625.2

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 +100 -76
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +118 -94
  4. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +105 -81
  6. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +134 -110
  8. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +121 -97
  10. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +28 -15
  12. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +74 -54
  14. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +87 -69
  16. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +99 -80
  18. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +87 -68
  20. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +31 -15
  22. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +81 -61
  24. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +71 -51
  26. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +82 -58
  28. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +46 -39
  30. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +80 -62
  32. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +104 -80
  34. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +219 -151
  36. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +183 -142
  38. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  39. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +121 -97
  40. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  41. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +57 -46
  42. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +91 -67
  44. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +112 -93
  46. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +55 -48
  48. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +70 -50
  50. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +140 -97
  52. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/HiringJobsPagePage.js +101 -85
  54. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +68 -48
  56. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  57. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +99 -71
  58. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +97 -73
  60. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/HrPayrollPagePage.js +100 -76
  62. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +93 -69
  64. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +65 -45
  66. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +93 -75
  68. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +117 -72
  70. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +66 -54
  72. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +36 -20
  74. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +90 -66
  76. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/LearningLearningPagePage.js +81 -57
  78. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +90 -65
  80. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +33 -17
  82. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +83 -59
  84. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
  85. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +68 -48
  86. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
  87. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +80 -60
  88. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  89. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +153 -118
  90. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  91. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +42 -37
  92. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
  93. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +67 -47
  94. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  95. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -85
  96. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  97. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +76 -57
  98. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
  99. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +78 -60
  100. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  101. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +138 -93
  102. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  103. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +98 -53
  104. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
  105. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +69 -49
  106. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
  107. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +84 -65
  108. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  109. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +76 -52
  110. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  111. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +58 -40
  112. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
  113. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +85 -65
  114. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
  115. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +36 -29
  116. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
  117. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +108 -73
  118. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  119. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +43 -27
  120. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  121. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +67 -47
  122. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  123. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +108 -63
  124. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  125. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -64
  126. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  127. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +185 -144
  128. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  129. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +40 -24
  130. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  131. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceMyServicesPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceMyServicesPagePage.tsx"],"sourcesContent":["import { Badge, Button, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Plus, Star } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceMyServicesPagePage() {\n const { marketplaceServices } = useCrewFoundryStore();\n // Show a subset as \"my services\"\n const myServices = marketplaceServices.slice(0, 3);\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\">My Services</h1>\n <p className=\"text-sm text-text-secondary\">Manage your listed services</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n Create Service\n </Button>\n </div>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {myServices.map((svc) => (\n <Card key={svc.id}>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-base\">{svc.title}</CardTitle>\n <Badge\n variant={svc.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {svc.status}\n </Badge>\n </div>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary mb-3\">{svc.description}</p>\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-bold\">\n ${svc.price}/{svc.priceType}\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n {svc.rating} ({svc.reviews})\n </span>\n </div>\n <div className=\"flex gap-2 mt-3\">\n <Button variant=\"outline\" size=\"sm\" className=\"flex-1\">\n Edit\n </Button>\n <Button size=\"sm\" className=\"flex-1\">\n View\n </Button>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,IAAgC;CAC9C,IAAM,EAAE,2BAAwB,GAAqB,EAE/C,IAAa,EAAoB,MAAM,GAAG,EAAE;AAElD,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAyB;IAAgB,CAAA,EACvD,kBAAC,KAAD;IAAG,WAAU;cAA8B;IAA+B,CAAA,CACtE,EAAA,CAAA,EACN,kBAAC,GAAD;IAAQ,MAAK;cAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,iBAE1B;MACL;MACN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAW,KAAK,MACf,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KAAW,WAAU;eAAa,EAAI;KAAkB,CAAA,EACxD,kBAAC,GAAD;KACE,SAAS,EAAI,WAAW,WAAW,YAAY;KAC/C,WAAU;eAET,EAAI;KACC,CAAA,CACJ;OACK,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,KAAD;KAAG,WAAU;eAAoC,EAAI;KAAgB,CAAA;IACrE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,QAAD;MAAM,WAAU;gBAAhB;OAA4B;OACxB,EAAI;OAAM;OAAE,EAAI;OACb;SACP,kBAAC,QAAD;MAAM,WAAU;gBAAhB;OACE,kBAAC,GAAD,EAAM,WAAU,2BAA4B,CAAA;OAC3C,EAAI;OAAO;OAAG,EAAI;OAAQ;OACtB;QACH;;IACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAU,MAAK;MAAK,WAAU;gBAAS;MAE9C,CAAA,EACT,kBAAC,GAAD;MAAQ,MAAK;MAAK,WAAU;gBAAS;MAE5B,CAAA,CACL;;IACM,EAAA,CAAA,CACT,EAAA,EAhCI,EAAI,GAgCR,CACP;GACE,CAAA,CACF"}
1
+ {"version":3,"file":"MarketplaceMyServicesPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceMyServicesPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n CardContent,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Plus, Star } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceMyServicesPagePage() {\n const { marketplaceServices } = useCrewFoundryStore();\n // Show a subset as \"my services\"\n const myServices = marketplaceServices.slice(0, 3);\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>My Services</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Manage your listed services</p>\n <PagePurpose className=\"mt-1\">Manage the services you offer to clients — list, edit, and showcase your offerings to win more work on the marketplace.</PagePurpose>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n Create Service\n </Button>\n </div>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {myServices.length === 0 ? (\n <div className=\"col-span-full\">\n <IllustratedEmptyState illustration=\"empty-generic\" title=\"No services listed\" description=\"List a service to start winning work on the marketplace.\" />\n </div>\n ) : (\n myServices.map((svc, _idx) => (\n <GlassCard key={svc.id} treatment={_idx === 0 ? 'glass' : 'plain'} glow={_idx === 0}>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-base\">{svc.title}</CardTitle>\n <Badge\n variant={svc.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {svc.status}\n </Badge>\n </div>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary mb-3\">{svc.description}</p>\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-bold\">\n ${svc.price}/{svc.priceType}\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-status-warning-text\" />\n {svc.rating} ({svc.reviews})\n </span>\n </div>\n <div className=\"flex gap-2 mt-3\">\n <Button variant=\"outline\" size=\"sm\" className=\"flex-1\">\n Edit\n </Button>\n <Button size=\"sm\" className=\"flex-1\">\n View\n </Button>\n </div>\n </CardContent>\n </GlassCard>\n )))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAcA,SAAgB,IAAgC;CAC9C,IAAM,EAAE,2BAAwB,GAAqB,EAE/C,IAAa,EAAoB,MAAM,GAAG,EAAE;AAElD,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,eAA0B,CAAA;KACrC,CAAA;IACL,kBAAC,KAAD;KAAG,WAAU;eAA8B;KAA+B,CAAA;IAC1E,kBAAC,GAAD;KAAa,WAAU;eAAO;KAAqI,CAAA;IAC/J,EAAA,CAAA,EACN,kBAAC,GAAD;IAAQ,MAAK;cAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,iBAE1B;MACL;MACN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAW,WAAW,IACrB,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD;KAAuB,cAAa;KAAgB,OAAM;KAAqB,aAAY;KAA6D,CAAA;IACpJ,CAAA,GAEN,EAAW,KAAK,GAAK,MACrB,kBAAC,GAAD;IAAwB,WAAW,MAAS,IAAI,UAAU;IAAS,MAAM,MAAS;cAAlF,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAW,WAAU;gBAAa,EAAI;MAAkB,CAAA,EACxD,kBAAC,GAAD;MACE,SAAS,EAAI,WAAW,WAAW,YAAY;MAC/C,WAAU;gBAET,EAAI;MACC,CAAA,CACJ;QACK,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA;KACE,kBAAC,KAAD;MAAG,WAAU;gBAAoC,EAAI;MAAgB,CAAA;KACrE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,QAAD;OAAM,WAAU;iBAAhB;QAA4B;QACxB,EAAI;QAAM;QAAE,EAAI;QACb;UACP,kBAAC,QAAD;OAAM,WAAU;iBAAhB;QACE,kBAAC,GAAD,EAAM,WAAU,oCAAqC,CAAA;QACpD,EAAI;QAAO;QAAG,EAAI;QAAQ;QACtB;SACH;;KACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;OAAK,WAAU;iBAAS;OAE9C,CAAA,EACT,kBAAC,GAAD;OAAQ,MAAK;OAAK,WAAU;iBAAS;OAE5B,CAAA,CACL;;KACM,EAAA,CAAA,CACJ;MAhCI,EAAI,GAgCR,CACZ;GACE,CAAA,CACF"}
@@ -1,88 +1,122 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
- import { Calendar as t, DollarSign as n, Users as r } from "lucide-react";
3
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
- import { Badge as o, Card as s, CardContent as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
2
+ import { Calendar as t, DollarSign as n, MessageSquare as r, Users as i } from "lucide-react";
3
+ import { useNavigate as a } from "react-router-dom";
4
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
+ import { Badge as c, Card as l, CardContent as u, EmphasisPanel as d, GradientText as f, IllustratedEmptyState as p, NextSteps as m, PagePurpose as h } from "@burdenoff/fe-libs/ui";
5
6
  //#region src/crewfoundry/pages/MarketplaceProjectDetailsPagePage.tsx
6
- function d() {
7
- let { projects: d } = e(), f = d[0];
8
- return f ? /* @__PURE__ */ a("div", {
7
+ function g() {
8
+ let g = a(), { projects: _ } = e(), v = _[0];
9
+ return v ? /* @__PURE__ */ s("div", {
9
10
  className: "space-y-6 p-6 max-w-4xl",
10
11
  children: [
11
- /* @__PURE__ */ a("div", {
12
+ /* @__PURE__ */ s("div", {
12
13
  className: "flex items-center justify-between",
13
- children: [/* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h1", {
14
- className: "text-2xl font-semibold",
15
- children: f.name
16
- }), /* @__PURE__ */ i("p", {
17
- className: "text-sm text-text-secondary",
18
- children: f.description
19
- })] }), /* @__PURE__ */ i(o, {
20
- variant: f.status === "active" ? "default" : "secondary",
21
- children: f.status
14
+ children: [/* @__PURE__ */ s("div", { children: [
15
+ /* @__PURE__ */ o("h1", {
16
+ className: "text-2xl font-semibold",
17
+ children: /* @__PURE__ */ o(f, { children: v.name })
18
+ }),
19
+ /* @__PURE__ */ o("p", {
20
+ className: "text-sm text-text-secondary",
21
+ children: v.description
22
+ }),
23
+ /* @__PURE__ */ o(h, {
24
+ className: "mt-2",
25
+ children: "The full picture of a marketplace project — scope, budget, timeline, and progress — so you can track delivery and stay aligned with the team doing the work."
26
+ })
27
+ ] }), /* @__PURE__ */ o(c, {
28
+ variant: v.status === "active" ? "default" : "secondary",
29
+ children: v.status
22
30
  })]
23
31
  }),
24
- /* @__PURE__ */ a("div", {
32
+ /* @__PURE__ */ o(m, {
33
+ storageKey: "crewfoundry-marketplace-project-details",
34
+ steps: [
35
+ {
36
+ id: "message",
37
+ label: "Message the team",
38
+ description: "Coordinate on scope, blockers, and next milestones.",
39
+ icon: /* @__PURE__ */ o(r, { className: "h-4 w-4" }),
40
+ onClick: () => g("../../marketplace/messaging-page")
41
+ },
42
+ {
43
+ id: "bookings",
44
+ label: "Review bookings",
45
+ description: "Check the engagements tied to this project.",
46
+ icon: /* @__PURE__ */ o(t, { className: "h-4 w-4" }),
47
+ onClick: () => g("../../marketplace/booking-management-page")
48
+ },
49
+ {
50
+ id: "earnings",
51
+ label: "Track earnings",
52
+ description: "See payouts and balances connected to your work.",
53
+ icon: /* @__PURE__ */ o(n, { className: "h-4 w-4" }),
54
+ onClick: () => g("../../marketplace/earnings-page")
55
+ }
56
+ ]
57
+ }),
58
+ /* @__PURE__ */ s("div", {
25
59
  className: "grid gap-4 md:grid-cols-4",
26
60
  children: [
27
- /* @__PURE__ */ i(s, { children: /* @__PURE__ */ a(c, {
61
+ /* @__PURE__ */ o(l, { children: /* @__PURE__ */ s(u, {
28
62
  className: "p-4 text-center",
29
63
  children: [
30
- /* @__PURE__ */ i(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
31
- /* @__PURE__ */ a("p", {
64
+ /* @__PURE__ */ o(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
65
+ /* @__PURE__ */ s("p", {
32
66
  className: "text-lg font-bold",
33
67
  children: [
34
68
  "$",
35
- (f.budget / 1e3).toFixed(0),
69
+ (v.budget / 1e3).toFixed(0),
36
70
  "K"
37
71
  ]
38
72
  }),
39
- /* @__PURE__ */ i("p", {
73
+ /* @__PURE__ */ o("p", {
40
74
  className: "text-xs text-text-secondary",
41
75
  children: "Budget"
42
76
  })
43
77
  ]
44
78
  }) }),
45
- /* @__PURE__ */ i(s, { children: /* @__PURE__ */ a(c, {
79
+ /* @__PURE__ */ o(l, { children: /* @__PURE__ */ s(u, {
46
80
  className: "p-4 text-center",
47
81
  children: [
48
- /* @__PURE__ */ i(n, { className: "h-5 w-5 mx-auto text-green-500 mb-1" }),
49
- /* @__PURE__ */ a("p", {
82
+ /* @__PURE__ */ o(n, { className: "h-5 w-5 mx-auto text-status-success-text mb-1" }),
83
+ /* @__PURE__ */ s("p", {
50
84
  className: "text-lg font-bold",
51
85
  children: [
52
86
  "$",
53
- (f.spent / 1e3).toFixed(0),
87
+ (v.spent / 1e3).toFixed(0),
54
88
  "K"
55
89
  ]
56
90
  }),
57
- /* @__PURE__ */ i("p", {
91
+ /* @__PURE__ */ o("p", {
58
92
  className: "text-xs text-text-secondary",
59
93
  children: "Spent"
60
94
  })
61
95
  ]
62
96
  }) }),
63
- /* @__PURE__ */ i(s, { children: /* @__PURE__ */ a(c, {
97
+ /* @__PURE__ */ o(l, { children: /* @__PURE__ */ s(u, {
64
98
  className: "p-4 text-center",
65
99
  children: [
66
- /* @__PURE__ */ i(r, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
67
- /* @__PURE__ */ i("p", {
100
+ /* @__PURE__ */ o(i, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
101
+ /* @__PURE__ */ o("p", {
68
102
  className: "text-lg font-bold",
69
- children: f.teamName
103
+ children: v.teamName
70
104
  }),
71
- /* @__PURE__ */ i("p", {
105
+ /* @__PURE__ */ o("p", {
72
106
  className: "text-xs text-text-secondary",
73
107
  children: "Team"
74
108
  })
75
109
  ]
76
110
  }) }),
77
- /* @__PURE__ */ i(s, { children: /* @__PURE__ */ a(c, {
111
+ /* @__PURE__ */ o(l, { children: /* @__PURE__ */ s(u, {
78
112
  className: "p-4 text-center",
79
113
  children: [
80
- /* @__PURE__ */ i(t, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
81
- /* @__PURE__ */ i("p", {
114
+ /* @__PURE__ */ o(t, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
115
+ /* @__PURE__ */ o("p", {
82
116
  className: "text-lg font-bold",
83
- children: f.endDate
117
+ children: v.endDate
84
118
  }),
85
- /* @__PURE__ */ i("p", {
119
+ /* @__PURE__ */ o("p", {
86
120
  className: "text-xs text-text-secondary",
87
121
  children: "Deadline"
88
122
  })
@@ -90,66 +124,77 @@ function d() {
90
124
  }) })
91
125
  ]
92
126
  }),
93
- /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ i(l, { children: /* @__PURE__ */ i(u, { children: "Progress" }) }), /* @__PURE__ */ a(c, { children: [/* @__PURE__ */ a("div", {
94
- className: "space-y-2",
95
- children: [/* @__PURE__ */ a("div", {
96
- className: "flex justify-between text-sm",
97
- children: [/* @__PURE__ */ a("span", { children: [
98
- f.completedTasks,
99
- " of ",
100
- f.tasks,
101
- " tasks"
102
- ] }), /* @__PURE__ */ a("span", {
103
- className: "font-medium",
104
- children: [f.progress, "%"]
127
+ /* @__PURE__ */ s(d, { children: [
128
+ /* @__PURE__ */ o("div", {
129
+ className: "mb-2 text-lg font-semibold",
130
+ children: "Progress"
131
+ }),
132
+ /* @__PURE__ */ s("div", {
133
+ className: "space-y-2",
134
+ children: [/* @__PURE__ */ s("div", {
135
+ className: "flex justify-between text-sm",
136
+ children: [/* @__PURE__ */ s("span", { children: [
137
+ v.completedTasks,
138
+ " of ",
139
+ v.tasks,
140
+ " tasks"
141
+ ] }), /* @__PURE__ */ s("span", {
142
+ className: "font-medium",
143
+ children: [v.progress, "%"]
144
+ })]
145
+ }), /* @__PURE__ */ o("div", {
146
+ className: "h-3 bg-bg-sunken rounded overflow-hidden",
147
+ children: /* @__PURE__ */ o("div", {
148
+ className: "h-3 bg-action-primary-bg rounded",
149
+ style: { width: `${v.progress}%` }
150
+ })
105
151
  })]
106
- }), /* @__PURE__ */ i("div", {
107
- className: "h-3 bg-bg-sunken rounded overflow-hidden",
108
- children: /* @__PURE__ */ i("div", {
109
- className: "h-3 bg-action-primary-bg rounded",
110
- style: { width: `${f.progress}%` }
111
- })
112
- })]
113
- }), /* @__PURE__ */ a("div", {
114
- className: "grid grid-cols-2 gap-4 mt-4",
115
- children: [
116
- /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("p", {
117
- className: "text-xs text-text-secondary",
118
- children: "Manager"
119
- }), /* @__PURE__ */ i("p", {
120
- className: "text-sm font-medium",
121
- children: f.managerName
122
- })] }),
123
- /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("p", {
124
- className: "text-xs text-text-secondary",
125
- children: "Priority"
126
- }), /* @__PURE__ */ i(o, {
127
- variant: f.priority === "critical" ? "destructive" : f.priority === "high" ? "default" : "secondary",
128
- children: f.priority
129
- })] }),
130
- /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("p", {
131
- className: "text-xs text-text-secondary",
132
- children: "Start Date"
133
- }), /* @__PURE__ */ i("p", {
134
- className: "text-sm",
135
- children: f.startDate
136
- })] }),
137
- /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("p", {
138
- className: "text-xs text-text-secondary",
139
- children: "End Date"
140
- }), /* @__PURE__ */ i("p", {
141
- className: "text-sm",
142
- children: f.endDate
143
- })] })
144
- ]
145
- })] })] })
152
+ }),
153
+ /* @__PURE__ */ s("div", {
154
+ className: "grid grid-cols-2 gap-4 mt-4",
155
+ children: [
156
+ /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
157
+ className: "text-xs text-text-secondary",
158
+ children: "Manager"
159
+ }), /* @__PURE__ */ o("p", {
160
+ className: "text-sm font-medium",
161
+ children: v.managerName
162
+ })] }),
163
+ /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
164
+ className: "text-xs text-text-secondary",
165
+ children: "Priority"
166
+ }), /* @__PURE__ */ o(c, {
167
+ variant: v.priority === "critical" ? "destructive" : v.priority === "high" ? "default" : "secondary",
168
+ children: v.priority
169
+ })] }),
170
+ /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
171
+ className: "text-xs text-text-secondary",
172
+ children: "Start Date"
173
+ }), /* @__PURE__ */ o("p", {
174
+ className: "text-sm",
175
+ children: v.startDate
176
+ })] }),
177
+ /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
178
+ className: "text-xs text-text-secondary",
179
+ children: "End Date"
180
+ }), /* @__PURE__ */ o("p", {
181
+ className: "text-sm",
182
+ children: v.endDate
183
+ })] })
184
+ ]
185
+ })
186
+ ] })
146
187
  ]
147
- }) : /* @__PURE__ */ i("div", {
148
- className: "p-6 text-text-secondary",
149
- children: "No project found."
188
+ }) : /* @__PURE__ */ o("div", {
189
+ className: "p-6",
190
+ children: /* @__PURE__ */ o(p, {
191
+ illustration: "empty-search",
192
+ title: "Project not found",
193
+ description: "This project is no longer available."
194
+ })
150
195
  });
151
196
  }
152
197
  //#endregion
153
- export { d as MarketplaceProjectDetailsPagePage };
198
+ export { g as MarketplaceProjectDetailsPagePage };
154
199
 
155
200
  //# sourceMappingURL=MarketplaceProjectDetailsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceProjectDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceProjectDetailsPagePage.tsx"],"sourcesContent":["import { Badge, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Calendar, DollarSign, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceProjectDetailsPagePage() {\n const { projects } = useCrewFoundryStore();\n const project = projects[0];\n if (!project) return <div className=\"p-6 text-text-secondary\">No project found.</div>;\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">{project.name}</h1>\n <p className=\"text-sm text-text-secondary\">{project.description}</p>\n </div>\n <Badge variant={project.status === 'active' ? 'default' : 'secondary'}>\n {project.status}\n </Badge>\n </div>\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">${(project.budget / 1000).toFixed(0)}K</p>\n <p className=\"text-xs text-text-secondary\">Budget</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-green-500 mb-1\" />\n <p className=\"text-lg font-bold\">${(project.spent / 1000).toFixed(0)}K</p>\n <p className=\"text-xs text-text-secondary\">Spent</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{project.teamName}</p>\n <p className=\"text-xs text-text-secondary\">Team</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{project.endDate}</p>\n <p className=\"text-xs text-text-secondary\">Deadline</p>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Progress</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span>\n {project.completedTasks} of {project.tasks} tasks\n </span>\n <span className=\"font-medium\">{project.progress}%</span>\n </div>\n <div className=\"h-3 bg-bg-sunken rounded overflow-hidden\">\n <div className=\"h-3 bg-action-primary-bg rounded\" style={{ width: `${project.progress}%` }} />\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-4 mt-4\">\n <div>\n <p className=\"text-xs text-text-secondary\">Manager</p>\n <p className=\"text-sm font-medium\">{project.managerName}</p>\n </div>\n <div>\n <p className=\"text-xs text-text-secondary\">Priority</p>\n <Badge\n variant={\n project.priority === 'critical'\n ? 'destructive'\n : project.priority === 'high'\n ? 'default'\n : 'secondary'\n }\n >\n {project.priority}\n </Badge>\n </div>\n <div>\n <p className=\"text-xs text-text-secondary\">Start Date</p>\n <p className=\"text-sm\">{project.startDate}</p>\n </div>\n <div>\n <p className=\"text-xs text-text-secondary\">End Date</p>\n <p className=\"text-sm\">{project.endDate}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,IAAoC;CAClD,IAAM,EAAE,gBAAa,GAAqB,EACpC,IAAU,EAAS;AAGzB,QAFK,IAGH,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B,EAAQ;KAAU,CAAA,EAC1D,kBAAC,KAAD;KAAG,WAAU;eAA+B,EAAQ;KAAgB,CAAA,CAChE,EAAA,CAAA,EACN,kBAAC,GAAD;KAAO,SAAS,EAAQ,WAAW,WAAW,YAAY;eACvD,EAAQ;KACH,CAAA,CACJ;;GACN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAY,WAAU,4CAA6C,CAAA;OACnE,kBAAC,KAAD;QAAG,WAAU;kBAAb;SAAiC;UAAG,EAAQ,SAAS,KAAM,QAAQ,EAAE;SAAC;SAAK;;OAC3E,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAU,CAAA;OACzC;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAY,WAAU,uCAAwC,CAAA;OAC9D,kBAAC,KAAD;QAAG,WAAU;kBAAb;SAAiC;UAAG,EAAQ,QAAQ,KAAM,QAAQ,EAAE;SAAC;SAAK;;OAC1E,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAS,CAAA;OACxC;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAO,WAAU,4CAA6C,CAAA;OAC9D,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAQ;QAAa,CAAA;OACvD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAQ,CAAA;OACvC;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAU,WAAU,4CAA6C,CAAA;OACjE,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAQ;QAAY,CAAA;OACtD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAY,CAAA;OAC3C;SACT,CAAA;KACH;;GACN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,YAAoB,CAAA,EACpB,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,QAAD,EAAA,UAAA;MACG,EAAQ;MAAe;MAAK,EAAQ;MAAM;MACtC,EAAA,CAAA,EACP,kBAAC,QAAD;MAAM,WAAU;gBAAhB,CAA+B,EAAQ,UAAS,IAAQ;QACpD;QACN,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;MAAmC,OAAO,EAAE,OAAO,GAAG,EAAQ,SAAS,IAAI;MAAI,CAAA;KAC1F,CAAA,CACF;OACN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;MAAG,WAAU;gBAA8B;MAAW,CAAA,EACtD,kBAAC,KAAD;MAAG,WAAU;gBAAuB,EAAQ;MAAgB,CAAA,CACxD,EAAA,CAAA;KACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;MAAG,WAAU;gBAA8B;MAAY,CAAA,EACvD,kBAAC,GAAD;MACE,SACE,EAAQ,aAAa,aACjB,gBACA,EAAQ,aAAa,SACnB,YACA;gBAGP,EAAQ;MACH,CAAA,CACJ,EAAA,CAAA;KACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;MAAG,WAAU;gBAA8B;MAAc,CAAA,EACzD,kBAAC,KAAD;MAAG,WAAU;gBAAW,EAAQ;MAAc,CAAA,CAC1C,EAAA,CAAA;KACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;MAAG,WAAU;gBAA8B;MAAY,CAAA,EACvD,kBAAC,KAAD;MAAG,WAAU;gBAAW,EAAQ;MAAY,CAAA,CACxC,EAAA,CAAA;KACF;MACM,EAAA,CAAA,CACT,EAAA,CAAA;GACH;MAzFa,kBAAC,OAAD;EAAK,WAAU;YAA0B;EAAuB,CAAA"}
1
+ {"version":3,"file":"MarketplaceProjectDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceProjectDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n EmphasisPanel,\n GradientText,\n IllustratedEmptyState,\n NextSteps,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Calendar, DollarSign, MessageSquare, Users } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceProjectDetailsPagePage() {\n const navigate = useNavigate();\n const { projects } = useCrewFoundryStore();\n const project = projects[0];\n if (!project)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Project not found\"\n description=\"This project is no longer available.\"\n />\n </div>\n );\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{project.name}</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">{project.description}</p>\n <PagePurpose className=\"mt-2\">\n The full picture of a marketplace project — scope, budget, timeline, and progress — so\n you can track delivery and stay aligned with the team doing the work.\n </PagePurpose>\n </div>\n <Badge variant={project.status === 'active' ? 'default' : 'secondary'}>\n {project.status}\n </Badge>\n </div>\n\n <NextSteps\n storageKey=\"crewfoundry-marketplace-project-details\"\n steps={[\n {\n id: 'message',\n label: 'Message the team',\n description: 'Coordinate on scope, blockers, and next milestones.',\n icon: <MessageSquare className=\"h-4 w-4\" />,\n onClick: () => navigate('../../marketplace/messaging-page'),\n },\n {\n id: 'bookings',\n label: 'Review bookings',\n description: 'Check the engagements tied to this project.',\n icon: <Calendar className=\"h-4 w-4\" />,\n onClick: () => navigate('../../marketplace/booking-management-page'),\n },\n {\n id: 'earnings',\n label: 'Track earnings',\n description: 'See payouts and balances connected to your work.',\n icon: <DollarSign className=\"h-4 w-4\" />,\n onClick: () => navigate('../../marketplace/earnings-page'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">${(project.budget / 1000).toFixed(0)}K</p>\n <p className=\"text-xs text-text-secondary\">Budget</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-status-success-text mb-1\" />\n <p className=\"text-lg font-bold\">${(project.spent / 1000).toFixed(0)}K</p>\n <p className=\"text-xs text-text-secondary\">Spent</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{project.teamName}</p>\n <p className=\"text-xs text-text-secondary\">Team</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{project.endDate}</p>\n <p className=\"text-xs text-text-secondary\">Deadline</p>\n </CardContent>\n </Card>\n </div>\n <EmphasisPanel>\n <div className=\"mb-2 text-lg font-semibold\">Progress</div>\n <div className=\"space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span>\n {project.completedTasks} of {project.tasks} tasks\n </span>\n <span className=\"font-medium\">{project.progress}%</span>\n </div>\n <div className=\"h-3 bg-bg-sunken rounded overflow-hidden\">\n <div\n className=\"h-3 bg-action-primary-bg rounded\"\n style={{ width: `${project.progress}%` }}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-4 mt-4\">\n <div>\n <p className=\"text-xs text-text-secondary\">Manager</p>\n <p className=\"text-sm font-medium\">{project.managerName}</p>\n </div>\n <div>\n <p className=\"text-xs text-text-secondary\">Priority</p>\n <Badge\n variant={\n project.priority === 'critical'\n ? 'destructive'\n : project.priority === 'high'\n ? 'default'\n : 'secondary'\n }\n >\n {project.priority}\n </Badge>\n </div>\n <div>\n <p className=\"text-xs text-text-secondary\">Start Date</p>\n <p className=\"text-sm\">{project.startDate}</p>\n </div>\n <div>\n <p className=\"text-xs text-text-secondary\">End Date</p>\n <p className=\"text-sm\">{project.endDate}</p>\n </div>\n </div>\n </EmphasisPanel>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,83 +1,117 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { Clock as t, DollarSign as n, MessageSquare as r, Star as i, Users as a } from "lucide-react";
3
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
- import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p } from "@burdenoff/fe-libs/ui";
3
+ import { useNavigate as o } from "react-router-dom";
4
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
5
+ import { Badge as l, Button as u, Card as d, CardContent as f, EmphasisPanel as p, GradientText as m, IllustratedEmptyState as h, NextSteps as g, PagePurpose as _ } from "@burdenoff/fe-libs/ui";
5
6
  //#region src/crewfoundry/pages/MarketplaceServiceDetailsPagePage.tsx
6
- function m() {
7
- let { marketplaceServices: m } = e(), h = m[0];
8
- return h ? /* @__PURE__ */ s("div", {
7
+ function v() {
8
+ let v = o(), { marketplaceServices: y } = e(), b = y[0];
9
+ return b ? /* @__PURE__ */ c("div", {
9
10
  className: "space-y-6 p-6 max-w-4xl",
10
11
  children: [
11
- /* @__PURE__ */ s("div", {
12
+ /* @__PURE__ */ c("div", {
12
13
  className: "flex items-center justify-between",
13
- children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
14
- className: "text-2xl font-semibold",
15
- children: h.title
16
- }), /* @__PURE__ */ s("p", {
17
- className: "text-sm text-text-secondary",
18
- children: ["by ", h.provider]
19
- })] }), /* @__PURE__ */ s("div", {
14
+ children: [/* @__PURE__ */ c("div", { children: [
15
+ /* @__PURE__ */ s("h1", {
16
+ className: "text-2xl font-semibold",
17
+ children: /* @__PURE__ */ s(m, { children: b.title })
18
+ }),
19
+ /* @__PURE__ */ c("p", {
20
+ className: "text-sm text-text-secondary",
21
+ children: ["by ", b.provider]
22
+ }),
23
+ /* @__PURE__ */ s(_, {
24
+ className: "mt-2",
25
+ children: "See exactly what this service includes, what it costs, and how others rated it — use it to compare offerings and hire the right provider for your project."
26
+ })
27
+ ] }), /* @__PURE__ */ c("div", {
20
28
  className: "flex gap-2",
21
- children: [/* @__PURE__ */ s(l, {
29
+ children: [/* @__PURE__ */ c(u, {
22
30
  variant: "outline",
23
- children: [/* @__PURE__ */ o(r, { className: "h-4 w-4 mr-1" }), "Contact"]
24
- }), /* @__PURE__ */ o(l, { children: "Hire Now" })]
31
+ children: [/* @__PURE__ */ s(r, { className: "h-4 w-4 mr-1" }), "Contact"]
32
+ }), /* @__PURE__ */ s(u, { children: "Hire Now" })]
25
33
  })]
26
34
  }),
27
- /* @__PURE__ */ s("div", {
35
+ /* @__PURE__ */ s(g, {
36
+ storageKey: "crewfoundry-service-details",
37
+ steps: [
38
+ {
39
+ id: "contact",
40
+ label: "Message the provider",
41
+ description: "Ask questions before you commit to hiring.",
42
+ icon: /* @__PURE__ */ s(r, { className: "h-4 w-4" }),
43
+ onClick: () => v("../../marketplace/messaging-page")
44
+ },
45
+ {
46
+ id: "compare",
47
+ label: "Compare other services",
48
+ description: "Browse similar offerings on the marketplace.",
49
+ icon: /* @__PURE__ */ s(a, { className: "h-4 w-4" }),
50
+ onClick: () => v("../../marketplace/marketplace-services-page")
51
+ },
52
+ {
53
+ id: "bookings",
54
+ label: "Manage your bookings",
55
+ description: "Track engagements you have already arranged.",
56
+ icon: /* @__PURE__ */ s(t, { className: "h-4 w-4" }),
57
+ onClick: () => v("../../marketplace/booking-management-page")
58
+ }
59
+ ]
60
+ }),
61
+ /* @__PURE__ */ c("div", {
28
62
  className: "grid gap-4 md:grid-cols-4",
29
63
  children: [
30
- /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
64
+ /* @__PURE__ */ s(d, { children: /* @__PURE__ */ c(f, {
31
65
  className: "p-4 text-center",
32
66
  children: [
33
- /* @__PURE__ */ o(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
34
- /* @__PURE__ */ s("p", {
67
+ /* @__PURE__ */ s(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
68
+ /* @__PURE__ */ c("p", {
35
69
  className: "text-lg font-bold",
36
- children: ["$", h.price.toLocaleString()]
70
+ children: ["$", b.price.toLocaleString()]
37
71
  }),
38
- /* @__PURE__ */ s("p", {
72
+ /* @__PURE__ */ c("p", {
39
73
  className: "text-xs text-text-secondary",
40
- children: ["per ", h.priceType]
74
+ children: ["per ", b.priceType]
41
75
  })
42
76
  ]
43
77
  }) }),
44
- /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
78
+ /* @__PURE__ */ s(d, { children: /* @__PURE__ */ c(f, {
45
79
  className: "p-4 text-center",
46
80
  children: [
47
- /* @__PURE__ */ o(i, { className: "h-5 w-5 mx-auto text-yellow-500 mb-1" }),
48
- /* @__PURE__ */ s("p", {
81
+ /* @__PURE__ */ s(i, { className: "h-5 w-5 mx-auto text-status-warning-text mb-1" }),
82
+ /* @__PURE__ */ c("p", {
49
83
  className: "text-lg font-bold",
50
- children: [h.rating, "/5"]
84
+ children: [b.rating, "/5"]
51
85
  }),
52
- /* @__PURE__ */ s("p", {
86
+ /* @__PURE__ */ c("p", {
53
87
  className: "text-xs text-text-secondary",
54
- children: [h.reviews, " reviews"]
88
+ children: [b.reviews, " reviews"]
55
89
  })
56
90
  ]
57
91
  }) }),
58
- /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
92
+ /* @__PURE__ */ s(d, { children: /* @__PURE__ */ c(f, {
59
93
  className: "p-4 text-center",
60
94
  children: [
61
- /* @__PURE__ */ o(t, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
62
- /* @__PURE__ */ o("p", {
95
+ /* @__PURE__ */ s(t, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
96
+ /* @__PURE__ */ s("p", {
63
97
  className: "text-lg font-bold",
64
- children: h.deliveryTime
98
+ children: b.deliveryTime
65
99
  }),
66
- /* @__PURE__ */ o("p", {
100
+ /* @__PURE__ */ s("p", {
67
101
  className: "text-xs text-text-secondary",
68
102
  children: "Delivery"
69
103
  })
70
104
  ]
71
105
  }) }),
72
- /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
106
+ /* @__PURE__ */ s(d, { children: /* @__PURE__ */ c(f, {
73
107
  className: "p-4 text-center",
74
108
  children: [
75
- /* @__PURE__ */ o(a, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
76
- /* @__PURE__ */ o("p", {
109
+ /* @__PURE__ */ s(a, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
110
+ /* @__PURE__ */ s("p", {
77
111
  className: "text-lg font-bold",
78
- children: h.category
112
+ children: b.category
79
113
  }),
80
- /* @__PURE__ */ o("p", {
114
+ /* @__PURE__ */ s("p", {
81
115
  className: "text-xs text-text-secondary",
82
116
  children: "Category"
83
117
  })
@@ -85,23 +119,34 @@ function m() {
85
119
  }) })
86
120
  ]
87
121
  }),
88
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "About this Service" }) }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("p", {
89
- className: "text-sm text-text-secondary",
90
- children: h.description
91
- }), /* @__PURE__ */ o("div", {
92
- className: "flex flex-wrap gap-1 mt-3",
93
- children: h.skills.map((e) => /* @__PURE__ */ o(c, {
94
- variant: "outline",
95
- children: e
96
- }, e))
97
- })] })] })
122
+ /* @__PURE__ */ c(p, { children: [
123
+ /* @__PURE__ */ s("div", {
124
+ className: "mb-2 text-lg font-semibold",
125
+ children: "About this Service"
126
+ }),
127
+ /* @__PURE__ */ s("p", {
128
+ className: "text-sm text-text-secondary",
129
+ children: b.description
130
+ }),
131
+ /* @__PURE__ */ s("div", {
132
+ className: "flex flex-wrap gap-1 mt-3",
133
+ children: b.skills.map((e) => /* @__PURE__ */ s(l, {
134
+ variant: "outline",
135
+ children: e
136
+ }, e))
137
+ })
138
+ ] })
98
139
  ]
99
- }) : /* @__PURE__ */ o("div", {
100
- className: "p-6 text-text-secondary",
101
- children: "No service found."
140
+ }) : /* @__PURE__ */ s("div", {
141
+ className: "p-6",
142
+ children: /* @__PURE__ */ s(h, {
143
+ illustration: "empty-search",
144
+ title: "Service not found",
145
+ description: "This service is no longer available."
146
+ })
102
147
  });
103
148
  }
104
149
  //#endregion
105
- export { m as MarketplaceServiceDetailsPagePage };
150
+ export { v as MarketplaceServiceDetailsPagePage };
106
151
 
107
152
  //# sourceMappingURL=MarketplaceServiceDetailsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceServiceDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceServiceDetailsPagePage.tsx"],"sourcesContent":["import { Badge, Button, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Clock, DollarSign, MessageSquare, Star, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceServiceDetailsPagePage() {\n const { marketplaceServices } = useCrewFoundryStore();\n const svc = marketplaceServices[0];\n if (!svc) return <div className=\"p-6 text-text-secondary\">No service found.</div>;\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">{svc.title}</h1>\n <p className=\"text-sm text-text-secondary\">by {svc.provider}</p>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\">\n <MessageSquare className=\"h-4 w-4 mr-1\" />\n Contact\n </Button>\n <Button>Hire Now</Button>\n </div>\n </div>\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">${svc.price.toLocaleString()}</p>\n <p className=\"text-xs text-text-secondary\">per {svc.priceType}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Star className=\"h-5 w-5 mx-auto text-yellow-500 mb-1\" />\n <p className=\"text-lg font-bold\">{svc.rating}/5</p>\n <p className=\"text-xs text-text-secondary\">{svc.reviews} reviews</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Clock className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{svc.deliveryTime}</p>\n <p className=\"text-xs text-text-secondary\">Delivery</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{svc.category}</p>\n <p className=\"text-xs text-text-secondary\">Category</p>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>About this Service</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary\">{svc.description}</p>\n <div className=\"flex flex-wrap gap-1 mt-3\">\n {svc.skills.map((s) => (\n <Badge key={s} variant=\"outline\">\n {s}\n </Badge>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,IAAoC;CAClD,IAAM,EAAE,2BAAwB,GAAqB,EAC/C,IAAM,EAAoB;AAGhC,QAFK,IAGH,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B,EAAI;KAAW,CAAA,EACvD,kBAAC,KAAD;KAAG,WAAU;eAAb,CAA2C,OAAI,EAAI,SAAa;OAC5D,EAAA,CAAA,EACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;gBAAhB,CACE,kBAAC,GAAD,EAAe,WAAU,gBAAiB,CAAA,EAAA,UAEnC;SACT,kBAAC,GAAD,EAAA,UAAQ,YAAiB,CAAA,CACrB;OACF;;GACN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAY,WAAU,4CAA6C,CAAA;OACnE,kBAAC,KAAD;QAAG,WAAU;kBAAb,CAAiC,KAAE,EAAI,MAAM,gBAAgB,CAAK;;OAClE,kBAAC,KAAD;QAAG,WAAU;kBAAb,CAA2C,QAAK,EAAI,UAAc;;OACtD;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAM,WAAU,wCAAyC,CAAA;OACzD,kBAAC,KAAD;QAAG,WAAU;kBAAb,CAAkC,EAAI,QAAO,KAAM;;OACnD,kBAAC,KAAD;QAAG,WAAU;kBAAb,CAA4C,EAAI,SAAQ,WAAY;;OACxD;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAO,WAAU,4CAA6C,CAAA;OAC9D,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAI;QAAiB,CAAA;OACvD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAY,CAAA;OAC3C;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAO,WAAU,4CAA6C,CAAA;OAC9D,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAI;QAAa,CAAA;OACnD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAY,CAAA;OAC3C;SACT,CAAA;KACH;;GACN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,sBAA8B,CAAA,EAC9B,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,KAAD;IAAG,WAAU;cAA+B,EAAI;IAAgB,CAAA,EAChE,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAI,OAAO,KAAK,MACf,kBAAC,GAAD;KAAe,SAAQ;eACpB;KACK,EAFI,EAEJ,CACR;IACE,CAAA,CACM,EAAA,CAAA,CACT,EAAA,CAAA;GACH;MA9DS,kBAAC,OAAD;EAAK,WAAU;YAA0B;EAAuB,CAAA"}
1
+ {"version":3,"file":"MarketplaceServiceDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/MarketplaceServiceDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n EmphasisPanel,\n GradientText,\n IllustratedEmptyState,\n NextSteps,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Clock, DollarSign, MessageSquare, Star, Users } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function MarketplaceServiceDetailsPagePage() {\n const navigate = useNavigate();\n const { marketplaceServices } = useCrewFoundryStore();\n const svc = marketplaceServices[0];\n if (!svc)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Service not found\"\n description=\"This service is no longer available.\"\n />\n </div>\n );\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{svc.title}</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">by {svc.provider}</p>\n <PagePurpose className=\"mt-2\">\n See exactly what this service includes, what it costs, and how others rated it — use it\n to compare offerings and hire the right provider for your project.\n </PagePurpose>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\">\n <MessageSquare className=\"h-4 w-4 mr-1\" />\n Contact\n </Button>\n <Button>Hire Now</Button>\n </div>\n </div>\n\n <NextSteps\n storageKey=\"crewfoundry-service-details\"\n steps={[\n {\n id: 'contact',\n label: 'Message the provider',\n description: 'Ask questions before you commit to hiring.',\n icon: <MessageSquare className=\"h-4 w-4\" />,\n onClick: () => navigate('../../marketplace/messaging-page'),\n },\n {\n id: 'compare',\n label: 'Compare other services',\n description: 'Browse similar offerings on the marketplace.',\n icon: <Users className=\"h-4 w-4\" />,\n onClick: () => navigate('../../marketplace/marketplace-services-page'),\n },\n {\n id: 'bookings',\n label: 'Manage your bookings',\n description: 'Track engagements you have already arranged.',\n icon: <Clock className=\"h-4 w-4\" />,\n onClick: () => navigate('../../marketplace/booking-management-page'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">${svc.price.toLocaleString()}</p>\n <p className=\"text-xs text-text-secondary\">per {svc.priceType}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Star className=\"h-5 w-5 mx-auto text-status-warning-text mb-1\" />\n <p className=\"text-lg font-bold\">{svc.rating}/5</p>\n <p className=\"text-xs text-text-secondary\">{svc.reviews} reviews</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Clock className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{svc.deliveryTime}</p>\n <p className=\"text-xs text-text-secondary\">Delivery</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{svc.category}</p>\n <p className=\"text-xs text-text-secondary\">Category</p>\n </CardContent>\n </Card>\n </div>\n <EmphasisPanel>\n <div className=\"mb-2 text-lg font-semibold\">About this Service</div>\n <p className=\"text-sm text-text-secondary\">{svc.description}</p>\n <div className=\"flex flex-wrap gap-1 mt-3\">\n {svc.skills.map((s) => (\n <Badge key={s} variant=\"outline\">\n {s}\n </Badge>\n ))}\n </div>\n </EmphasisPanel>\n </div>\n );\n}\n"],"mappings":"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"}