@burdenoff/microfe-coolandlovely 2026.625.2 → 2026.628.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/coolandlovely/CoolAndLovelyRoot.js +66 -122
  2. package/dist/coolandlovely/CoolAndLovelyRoot.js.map +1 -1
  3. package/dist/coolandlovely/CoolAndLovelyRoutes.js +87 -175
  4. package/dist/coolandlovely/CoolAndLovelyRoutes.js.map +1 -1
  5. package/dist/coolandlovely/components/Field.js +81 -0
  6. package/dist/coolandlovely/components/Field.js.map +1 -0
  7. package/dist/coolandlovely/components/StateViews.js +34 -0
  8. package/dist/coolandlovely/components/StateViews.js.map +1 -0
  9. package/dist/coolandlovely/components/StatusBadge.js +25 -22
  10. package/dist/coolandlovely/components/StatusBadge.js.map +1 -1
  11. package/dist/coolandlovely/components/TagList.js +21 -0
  12. package/dist/coolandlovely/components/TagList.js.map +1 -0
  13. package/dist/coolandlovely/components/Thumbnail.js +29 -0
  14. package/dist/coolandlovely/components/Thumbnail.js.map +1 -0
  15. package/dist/coolandlovely/context/CoolAndLovelyContext.js +10 -10
  16. package/dist/coolandlovely/context/CoolAndLovelyContext.js.map +1 -1
  17. package/dist/coolandlovely/hooks/index.js +1 -0
  18. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js +462 -169
  19. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js.map +1 -1
  20. package/dist/coolandlovely/pages/HomePage.js +251 -845
  21. package/dist/coolandlovely/pages/HomePage.js.map +1 -1
  22. package/dist/coolandlovely/pages/brands/BrandDetailPage.js +319 -0
  23. package/dist/coolandlovely/pages/brands/BrandDetailPage.js.map +1 -0
  24. package/dist/coolandlovely/pages/brands/BrandFormPage.js +190 -0
  25. package/dist/coolandlovely/pages/brands/BrandFormPage.js.map +1 -0
  26. package/dist/coolandlovely/pages/brands/BrandsListPage.js +158 -0
  27. package/dist/coolandlovely/pages/brands/BrandsListPage.js.map +1 -0
  28. package/dist/coolandlovely/pages/collaborations/CollaborationDetailPage.js +253 -0
  29. package/dist/coolandlovely/pages/collaborations/CollaborationDetailPage.js.map +1 -0
  30. package/dist/coolandlovely/pages/collaborations/CollaborationFormPage.js +206 -0
  31. package/dist/coolandlovely/pages/collaborations/CollaborationFormPage.js.map +1 -0
  32. package/dist/coolandlovely/pages/collaborations/CollaborationsListPage.js +129 -0
  33. package/dist/coolandlovely/pages/collaborations/CollaborationsListPage.js.map +1 -0
  34. package/dist/coolandlovely/pages/collections/CollectionDetailPage.js +217 -0
  35. package/dist/coolandlovely/pages/collections/CollectionDetailPage.js.map +1 -0
  36. package/dist/coolandlovely/pages/collections/CollectionFormPage.js +217 -0
  37. package/dist/coolandlovely/pages/collections/CollectionFormPage.js.map +1 -0
  38. package/dist/coolandlovely/pages/collections/CollectionsListPage.js +122 -0
  39. package/dist/coolandlovely/pages/collections/CollectionsListPage.js.map +1 -0
  40. package/dist/coolandlovely/pages/items/StyleItemDetailPage.js +230 -0
  41. package/dist/coolandlovely/pages/items/StyleItemDetailPage.js.map +1 -0
  42. package/dist/coolandlovely/pages/items/StyleItemFormPage.js +276 -0
  43. package/dist/coolandlovely/pages/items/StyleItemFormPage.js.map +1 -0
  44. package/dist/coolandlovely/pages/items/StyleItemsListPage.js +170 -0
  45. package/dist/coolandlovely/pages/items/StyleItemsListPage.js.map +1 -0
  46. package/dist/coolandlovely/pages/lookbooks/LookbookDetailPage.js +124 -0
  47. package/dist/coolandlovely/pages/lookbooks/LookbookDetailPage.js.map +1 -0
  48. package/dist/coolandlovely/pages/lookbooks/LookbooksListPage.js +156 -0
  49. package/dist/coolandlovely/pages/lookbooks/LookbooksListPage.js.map +1 -0
  50. package/dist/coolandlovely/pages/looks/LookDetailPage.js +238 -0
  51. package/dist/coolandlovely/pages/looks/LookDetailPage.js.map +1 -0
  52. package/dist/coolandlovely/pages/looks/LookFormPage.js +209 -0
  53. package/dist/coolandlovely/pages/looks/LookFormPage.js.map +1 -0
  54. package/dist/coolandlovely/pages/looks/LooksListPage.js +181 -0
  55. package/dist/coolandlovely/pages/looks/LooksListPage.js.map +1 -0
  56. package/dist/coolandlovely/pages/profile/StyleProfilePage.js +224 -0
  57. package/dist/coolandlovely/pages/profile/StyleProfilePage.js.map +1 -0
  58. package/dist/coolandlovely/pages/wardrobe/WardrobeFormPage.js +173 -0
  59. package/dist/coolandlovely/pages/wardrobe/WardrobeFormPage.js.map +1 -0
  60. package/dist/coolandlovely/pages/wardrobe/WardrobeListPage.js +172 -0
  61. package/dist/coolandlovely/pages/wardrobe/WardrobeListPage.js.map +1 -0
  62. package/dist/coolandlovely/store/coolandlovelyStore.js +2 -6
  63. package/dist/coolandlovely/store/coolandlovelyStore.js.map +1 -1
  64. package/dist/coolandlovely/utils/formatters.js +31 -23
  65. package/dist/coolandlovely/utils/formatters.js.map +1 -1
  66. package/dist/coolandlovely/utils/icons.js +34 -0
  67. package/dist/coolandlovely/utils/icons.js.map +1 -0
  68. package/dist/index.js +4 -4
  69. package/package.json +1 -1
  70. package/dist/coolandlovely/components/InvestmentCard.js +0 -98
  71. package/dist/coolandlovely/components/InvestmentCard.js.map +0 -1
  72. package/dist/coolandlovely/components/RatingDisplay.js +0 -35
  73. package/dist/coolandlovely/components/RatingDisplay.js.map +0 -1
  74. package/dist/coolandlovely/mocks/data.js +0 -1517
  75. package/dist/coolandlovely/mocks/data.js.map +0 -1
  76. package/dist/coolandlovely/mocks/users.js +0 -34
  77. package/dist/coolandlovely/mocks/users.js.map +0 -1
  78. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js +0 -651
  79. package/dist/coolandlovely/pages/admin/AdminAnalyticsPage.js.map +0 -1
  80. package/dist/coolandlovely/pages/admin/AdminDashboard.js +0 -673
  81. package/dist/coolandlovely/pages/admin/AdminDashboard.js.map +0 -1
  82. package/dist/coolandlovely/pages/admin/AdminFinancialPage.js +0 -427
  83. package/dist/coolandlovely/pages/admin/AdminFinancialPage.js.map +0 -1
  84. package/dist/coolandlovely/pages/admin/AdminOrdersPage.js +0 -665
  85. package/dist/coolandlovely/pages/admin/AdminOrdersPage.js.map +0 -1
  86. package/dist/coolandlovely/pages/admin/AdminProfilePage.js +0 -264
  87. package/dist/coolandlovely/pages/admin/AdminProfilePage.js.map +0 -1
  88. package/dist/coolandlovely/pages/admin/AdminSettingsPage.js +0 -654
  89. package/dist/coolandlovely/pages/admin/AdminSettingsPage.js.map +0 -1
  90. package/dist/coolandlovely/pages/admin/CartManagementPage.js +0 -874
  91. package/dist/coolandlovely/pages/admin/CartManagementPage.js.map +0 -1
  92. package/dist/coolandlovely/pages/admin/UserManagementPage.js +0 -898
  93. package/dist/coolandlovely/pages/admin/UserManagementPage.js.map +0 -1
  94. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js +0 -842
  95. package/dist/coolandlovely/pages/cart-owner/AnalyticsDashboard.js.map +0 -1
  96. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js +0 -705
  97. package/dist/coolandlovely/pages/cart-owner/BusinessSettingsPage.js.map +0 -1
  98. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js +0 -802
  99. package/dist/coolandlovely/pages/cart-owner/CartOwnerDashboard.js.map +0 -1
  100. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js +0 -891
  101. package/dist/coolandlovely/pages/cart-owner/CartOwnerProfilePage.js.map +0 -1
  102. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js +0 -639
  103. package/dist/coolandlovely/pages/cart-owner/CartServiceConfigPage.js.map +0 -1
  104. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js +0 -914
  105. package/dist/coolandlovely/pages/cart-owner/InventoryManagementPage.js.map +0 -1
  106. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js +0 -882
  107. package/dist/coolandlovely/pages/cart-owner/OrderManagementPage.js.map +0 -1
  108. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js +0 -831
  109. package/dist/coolandlovely/pages/cart-owner/StaffManagementPage.js.map +0 -1
  110. package/dist/coolandlovely/pages/common/HelpSupportPage.js +0 -1325
  111. package/dist/coolandlovely/pages/common/HelpSupportPage.js.map +0 -1
  112. package/dist/coolandlovely/pages/common/NotificationCenterPage.js +0 -671
  113. package/dist/coolandlovely/pages/common/NotificationCenterPage.js.map +0 -1
  114. package/dist/coolandlovely/pages/common/SettingsPage.js +0 -973
  115. package/dist/coolandlovely/pages/common/SettingsPage.js.map +0 -1
  116. package/dist/coolandlovely/pages/customer/BookingDetailsPage.js +0 -630
  117. package/dist/coolandlovely/pages/customer/BookingDetailsPage.js.map +0 -1
  118. package/dist/coolandlovely/pages/customer/CartDetailPage.js +0 -623
  119. package/dist/coolandlovely/pages/customer/CartDetailPage.js.map +0 -1
  120. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js +0 -558
  121. package/dist/coolandlovely/pages/customer/CartDiscoveryPage.js.map +0 -1
  122. package/dist/coolandlovely/pages/customer/CheckoutPage.js +0 -529
  123. package/dist/coolandlovely/pages/customer/CheckoutPage.js.map +0 -1
  124. package/dist/coolandlovely/pages/customer/CustomerDashboard.js +0 -538
  125. package/dist/coolandlovely/pages/customer/CustomerDashboard.js.map +0 -1
  126. package/dist/coolandlovely/pages/customer/CustomerProfilePage.js +0 -658
  127. package/dist/coolandlovely/pages/customer/CustomerProfilePage.js.map +0 -1
  128. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js +0 -632
  129. package/dist/coolandlovely/pages/customer/DirectServiceBookingPage.js.map +0 -1
  130. package/dist/coolandlovely/pages/customer/FavoritesPage.js +0 -487
  131. package/dist/coolandlovely/pages/customer/FavoritesPage.js.map +0 -1
  132. package/dist/coolandlovely/pages/customer/OrderHistoryPage.js +0 -447
  133. package/dist/coolandlovely/pages/customer/OrderHistoryPage.js.map +0 -1
  134. package/dist/coolandlovely/pages/customer/OrderTrackingPage.js +0 -425
  135. package/dist/coolandlovely/pages/customer/OrderTrackingPage.js.map +0 -1
  136. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js +0 -494
  137. package/dist/coolandlovely/pages/customer/PaymentMethodsPage.js.map +0 -1
  138. package/dist/coolandlovely/pages/customer/ReviewsPage.js +0 -616
  139. package/dist/coolandlovely/pages/customer/ReviewsPage.js.map +0 -1
  140. package/dist/coolandlovely/pages/customer/SavedAddressesPage.js +0 -449
  141. package/dist/coolandlovely/pages/customer/SavedAddressesPage.js.map +0 -1
  142. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js +0 -887
  143. package/dist/coolandlovely/pages/investor/InvestmentDetailsPage.js.map +0 -1
  144. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js +0 -945
  145. package/dist/coolandlovely/pages/investor/InvestmentOpportunitiesPage.js.map +0 -1
  146. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js +0 -687
  147. package/dist/coolandlovely/pages/investor/InvestorAnalyticsPage.js.map +0 -1
  148. package/dist/coolandlovely/pages/investor/InvestorDashboard.js +0 -455
  149. package/dist/coolandlovely/pages/investor/InvestorDashboard.js.map +0 -1
  150. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js +0 -405
  151. package/dist/coolandlovely/pages/investor/InvestorInvestmentsPage.js.map +0 -1
  152. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js +0 -602
  153. package/dist/coolandlovely/pages/investor/InvestorPortfolioPage.js.map +0 -1
  154. package/dist/coolandlovely/pages/investor/InvestorProfilePage.js +0 -1070
  155. package/dist/coolandlovely/pages/investor/InvestorProfilePage.js.map +0 -1
  156. package/dist/coolandlovely/pages/worker/TaskDetailsPage.js +0 -533
  157. package/dist/coolandlovely/pages/worker/TaskDetailsPage.js.map +0 -1
  158. package/dist/coolandlovely/pages/worker/WorkerDashboard.js +0 -671
  159. package/dist/coolandlovely/pages/worker/WorkerDashboard.js.map +0 -1
  160. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js +0 -680
  161. package/dist/coolandlovely/pages/worker/WorkerOrdersPage.js.map +0 -1
  162. package/dist/coolandlovely/pages/worker/WorkerProfilePage.js +0 -692
  163. package/dist/coolandlovely/pages/worker/WorkerProfilePage.js.map +0 -1
  164. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js +0 -583
  165. package/dist/coolandlovely/pages/worker/WorkerSchedulePage.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkerProfilePage.js","names":[],"sources":["../../../../src/coolandlovely/pages/worker/WorkerProfilePage.tsx"],"sourcesContent":["/**\n * Worker Profile Page\n *\n * Full-featured profile page with:\n * - 6 sidebar tabs: Personal Info, Work Details, Address, Documents, Achievements, Notifications\n * - Edit/Save/Cancel mode toggle with all form fields becoming editable\n * - Profile image upload with camera icon overlay\n * - Personal Info: first/last name, email, phone, DOB + Emergency Contact\n * - Work Details: Employee ID, Designation, Department, Work Location, Joining Date, Employment Type + 3 stat cards\n * - Address tab: Current address + Permanent address with\"same as current\" checkbox\n * - Documents tab: PAN, Aadhar (masked, readonly), Bank Name, Account Number, IFSC Code + security notice\n * - Achievements tab: badges + Performance Metrics with progress bars\n * - Notifications tab: 5 toggle switches for notification preferences\n *\n * @module coolandlovely/pages/worker\n */\n\nimport { useState, type ChangeEvent } from'react';\nimport {\n User,\n Phone,\n Briefcase,\n MapPin,\n CreditCard,\n Award,\n Bell,\n Camera,\n Save,\n X,\n Pencil,\n Loader2,\n Clock,\n Shield,\n} from'lucide-react';\nimport { EmphasisPanel, PagePurpose } from'@burdenoff/fe-libs/ui';\nimport { PageLayout } from'../../components/PageLayout';\nimport { useCoolAndLovely } from'../../context/CoolAndLovelyContext';\nimport { mockWorker } from'../../mocks/users';\nimport { mockWorkerStats } from'../../mocks/data';\nimport { cn } from'../../utils/cn';\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype ProfileTab = 'personal' | 'work' | 'address' | 'documents' | 'achievements' | 'notifications';\n\ninterface WorkerProfile {\n firstName: string;\n lastName: string;\n email: string;\n phone: string;\n profileImage: string;\n dateOfBirth: string;\n employeeId: string;\n designation: string;\n department: string;\n workLocation: string;\n joiningDate: string;\n employmentType: string;\n currentAddress: string;\n city: string;\n state: string;\n pincode: string;\n permanentAddress: string;\n sameAsCurrent: boolean;\n emergencyContactName: string;\n emergencyContactPhone: string;\n emergencyContactRelation: string;\n bankName: string;\n accountNumber: string;\n ifscCode: string;\n panNumber: string;\n aadharNumber: string;\n}\n\ninterface NotificationPref {\n id: string;\n label: string;\n description: string;\n enabled: boolean;\n}\n\n// ============================================================================\n// Tab Configuration\n// ============================================================================\n\nconst tabs: { id: ProfileTab; label: string; icon: typeof User }[] = [\n { id: 'personal', label: 'Personal Info', icon: User },\n { id: 'work', label: 'Work Details', icon: Briefcase },\n { id: 'address', label: 'Address', icon: MapPin },\n { id: 'documents', label: 'Documents', icon: CreditCard },\n { id: 'achievements', label: 'Achievements', icon: Award },\n { id: 'notifications', label: 'Notifications', icon: Bell },\n];\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const WorkerProfilePage = () => {\n const { navigateTo } = useCoolAndLovely();\n const [activeTab, setActiveTab] = useState<ProfileTab>('personal');\n const [isEditing, setIsEditing] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n\n const [profile, setProfile] = useState<WorkerProfile>({\n firstName: mockWorker.firstName || 'Suresh',\n lastName: mockWorker.lastName || 'Kumar',\n email: mockWorker.email || 'suresh.worker@example.com',\n phone: mockWorker.phone || '+91-87654-32109',\n profileImage: mockWorker.profilePicture || '',\n dateOfBirth: '1990-05-15',\n employeeId: 'EMP-2024-001',\n designation: 'Delivery Executive',\n department: 'Operations',\n workLocation: 'Koramangala Zone',\n joiningDate: '2023-01-10',\n employmentType: 'Full Time',\n currentAddress: '45, 2nd Main, BTM Layout',\n city: 'Bangalore',\n state: 'Karnataka',\n pincode: '560076',\n permanentAddress: '',\n sameAsCurrent: true,\n emergencyContactName: 'Lakshmi Kumar',\n emergencyContactPhone: '+91-98765-12345',\n emergencyContactRelation: 'Spouse',\n bankName: 'HDFC Bank',\n accountNumber: '****5678',\n ifscCode: 'HDFC0001234',\n panNumber: 'ABCDE****F',\n aadharNumber: '****5678',\n });\n\n const [notifications, setNotifications] = useState<NotificationPref[]>([\n {\n id: 'orders',\n label: 'New Order Assignments',\n description: 'Get notified when new orders are assigned to you',\n enabled: true,\n },\n {\n id: 'schedule',\n label: 'Schedule Updates',\n description: 'Changes to your work schedule',\n enabled: true,\n },\n {\n id: 'earnings',\n label: 'Earnings Updates',\n description: 'Daily and weekly earnings summaries',\n enabled: true,\n },\n {\n id: 'performance',\n label: 'Performance Reviews',\n description: 'Feedback and performance metrics',\n enabled: true,\n },\n {\n id: 'announcements',\n label: 'Company Announcements',\n description: 'Important updates from management',\n enabled: true,\n },\n ]);\n\n const handleInputChange = (field: keyof WorkerProfile, value: string | boolean) => {\n setProfile((prev) => ({ ...prev, [field]: value }));\n };\n\n const handleSave = () => {\n setIsSaving(true);\n setTimeout(() => {\n setIsSaving(false);\n setIsEditing(false);\n alert('Profile updated successfully!');\n }, 1000);\n };\n\n const handleImageUpload = (e: ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onloadend = () => {\n setProfile((prev) => ({ ...prev, profileImage: reader.result as string }));\n };\n reader.readAsDataURL(file);\n }\n };\n\n const toggleNotification = (id: string) => {\n if (!isEditing) return;\n setNotifications((prev) => prev.map((n) => (n.id === id ? { ...n, enabled: !n.enabled } : n)));\n };\n\n return (\n <PageLayout\n title=\"My Profile\"\n description=\"Manage your profile information\"\n actions={\n <div className=\"flex items-center gap-2\">\n {!isEditing ? (\n <button\n type=\"button\"\n onClick={() => setIsEditing(true)}\n className=\"inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors\"\n >\n <Pencil className=\"h-4 w-4\" />\n Edit Profile\n </button>\n ) : (\n <>\n <button\n type=\"button\"\n onClick={() => setIsEditing(false)}\n className=\"inline-flex items-center gap-2 rounded-md bg-accent px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors\"\n >\n <X className=\"h-4 w-4\" />\n Cancel\n </button>\n <button\n type=\"button\"\n onClick={handleSave}\n disabled={isSaving}\n className=\"inline-flex items-center gap-2 rounded-md bg-accent-blue-subtle/10 px-3 py-2 text-sm font-medium text-accent-blue hover:bg-accent-blue-subtle/20 transition-colors disabled:opacity-50\"\n >\n {isSaving ? (\n <>\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n Saving...\n </>\n ) : (\n <>\n <Save className=\"h-4 w-4\" />\n Save Changes\n </>\n )}\n </button>\n </>\n )}\n </div>\n }\n >\n <PagePurpose className=\"mb-6\" icon={<User className=\"h-4 w-4\" />}>\n Your worker profile. Keep your contact, employment and bank details\n current so pay and assignments reach you correctly, manage notification\n preferences, and review your role, ID and credentials — all in one place.\n </PagePurpose>\n\n <div className=\"grid lg:grid-cols-4 gap-6 max-w-6xl\">\n {/* Sidebar */}\n <div className=\"lg:col-span-1 space-y-4\">\n {/* Profile Card — primary emphasis zone */}\n <EmphasisPanel className=\"p-5 text-center\">\n <div className=\"relative inline-block\">\n <div className=\"h-20 w-20 rounded-full bg-bg-sunken overflow-hidden mx-auto\">\n {profile.profileImage ? (\n <img\n src={profile.profileImage}\n alt={`${profile.firstName} ${profile.lastName}`}\n className=\"h-full w-full object-cover\"\n />\n ) : (\n <div className=\"flex h-full w-full items-center justify-center text-text-secondary\">\n <User className=\"h-10 w-10\" />\n </div>\n )}\n </div>\n {isEditing && (\n <label className=\"absolute bottom-0 right-0 flex h-7 w-7 items-center justify-center rounded-full bg-accent-blue-subtle/20 text-accent-blue cursor-pointer hover:bg-accent-blue-subtle/30 transition-colors\">\n <Camera className=\"h-3.5 w-3.5\" />\n <input\n type=\"file\"\n accept=\"image/*\"\n onChange={handleImageUpload}\n className=\"hidden\"\n />\n </label>\n )}\n </div>\n <h3 className=\"mt-3 text-sm font-semibold text-text-primary\">\n {profile.firstName} {profile.lastName}\n </h3>\n <p className=\"text-xs text-text-secondary\">{profile.designation}</p>\n <p className=\"text-[10px] text-text-secondary mt-0.5\">{profile.employeeId}</p>\n </EmphasisPanel>\n\n {/* Tab Navigation */}\n <div className=\"space-y-1\">\n {tabs.map((tab) => {\n const Icon = tab.icon;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n 'w-full flex items-center gap-3 rounded-lg px-3 py-2.5 text-sm font-medium transition-colors',\n activeTab === tab.id\n ? 'bg-accent-blue-subtle/10 text-accent-blue'\n : 'bg-bg-surface text-text-primary hover:bg-bg-sunken'\n )}\n >\n <Icon className=\"h-4 w-4\" />\n {tab.label}\n </button>\n );\n })}\n </div>\n </div>\n\n {/* Content Area */}\n <div className=\"lg:col-span-3\">\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-6 bg-gloss-card shadow-pop\">\n {/* ============= Personal Info ============= */}\n {activeTab === 'personal' && (\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary mb-5\">Personal Information</h2>\n <div className=\"grid sm:grid-cols-2 gap-4\">\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n First Name\n </label>\n <input\n type=\"text\"\n value={profile.firstName}\n onChange={(e) => handleInputChange('firstName', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Last Name\n </label>\n <input\n type=\"text\"\n value={profile.lastName}\n onChange={(e) => handleInputChange('lastName', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Email Address\n </label>\n <input\n type=\"email\"\n value={profile.email}\n onChange={(e) => handleInputChange('email', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Phone Number\n </label>\n <input\n type=\"text\"\n value={profile.phone}\n onChange={(e) => handleInputChange('phone', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Date of Birth\n </label>\n <input\n type=\"date\"\n value={profile.dateOfBirth}\n onChange={(e) => handleInputChange('dateOfBirth', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n </div>\n\n {/* Emergency Contact */}\n <div className=\"mt-7\">\n <h3 className=\"text-sm font-semibold text-text-primary mb-4\">Emergency Contact</h3>\n <div className=\"grid sm:grid-cols-3 gap-4\">\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Contact Name\n </label>\n <input\n type=\"text\"\n value={profile.emergencyContactName}\n onChange={(e) => handleInputChange('emergencyContactName', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Contact Phone\n </label>\n <input\n type=\"text\"\n value={profile.emergencyContactPhone}\n onChange={(e) => handleInputChange('emergencyContactPhone', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Relationship\n </label>\n <input\n type=\"text\"\n value={profile.emergencyContactRelation}\n onChange={(e) =>\n handleInputChange('emergencyContactRelation', e.target.value)\n }\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n </div>\n </div>\n </div>\n )}\n\n {/* ============= Work Details ============= */}\n {activeTab === 'work' && (\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary mb-5\">Work Details</h2>\n <div className=\"grid sm:grid-cols-2 gap-4\">\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Employee ID\n </label>\n <input\n type=\"text\"\n value={profile.employeeId}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Designation\n </label>\n <input\n type=\"text\"\n value={profile.designation}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Department\n </label>\n <input\n type=\"text\"\n value={profile.department}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Work Location\n </label>\n <input\n type=\"text\"\n value={profile.workLocation}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Joining Date\n </label>\n <input\n type=\"date\"\n value={profile.joiningDate}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Employment Type\n </label>\n <input\n type=\"text\"\n value={profile.employmentType}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n </div>\n\n {/* Performance Stats */}\n <div className=\"mt-7 grid sm:grid-cols-3 gap-4\">\n <div className=\"rounded-lg bg-bg-sunken/50 p-4 text-center\">\n <p className=\"text-2xl font-bold text-accent-blue\">\n {mockWorkerStats.totalDeliveries}\n </p>\n <p className=\"text-xs text-text-secondary\">Total Deliveries</p>\n </div>\n <div className=\"rounded-lg bg-bg-sunken/50 p-4 text-center\">\n <p className=\"text-2xl font-bold text-status-success-text\">\n {mockWorkerStats.averageRating}\n </p>\n <p className=\"text-xs text-text-secondary\">Average Rating</p>\n </div>\n <div className=\"rounded-lg bg-bg-sunken/50 p-4 text-center\">\n <p className=\"text-2xl font-bold text-accent-blue\">\n {mockWorkerStats.completionRate}%\n </p>\n <p className=\"text-xs text-text-secondary\">On-Time Delivery</p>\n </div>\n </div>\n </div>\n )}\n\n {/* ============= Address ============= */}\n {activeTab === 'address' && (\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary mb-5\">Address Information</h2>\n\n <div className=\"space-y-6\">\n {/* Current Address */}\n <div>\n <h3 className=\"text-sm font-semibold text-text-primary mb-3\">Current Address</h3>\n <div className=\"grid sm:grid-cols-2 gap-4\">\n <div className=\"sm:col-span-2\">\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Address Line\n </label>\n <textarea\n rows={2}\n value={profile.currentAddress}\n onChange={(e) => handleInputChange('currentAddress', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40 resize-none\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n City\n </label>\n <input\n type=\"text\"\n value={profile.city}\n onChange={(e) => handleInputChange('city', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n State\n </label>\n <input\n type=\"text\"\n value={profile.state}\n onChange={(e) => handleInputChange('state', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Pincode\n </label>\n <input\n type=\"text\"\n value={profile.pincode}\n onChange={(e) => handleInputChange('pincode', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n </div>\n </div>\n\n {/* Permanent Address */}\n <div>\n <h3 className=\"text-sm font-semibold text-text-primary mb-3\">\n Permanent Address\n </h3>\n <label className=\"flex items-center gap-2 mb-3 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={profile.sameAsCurrent}\n onChange={(e) => handleInputChange('sameAsCurrent', e.target.checked)}\n disabled={!isEditing}\n className=\"h-4 w-4 rounded border-border-subtle text-accent-blue focus:ring-accent-blue-subtle/40\"\n />\n <span className=\"text-xs text-text-primary\">Same as current address</span>\n </label>\n {!profile.sameAsCurrent && (\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Address Line\n </label>\n <textarea\n rows={2}\n value={profile.permanentAddress}\n onChange={(e) => handleInputChange('permanentAddress', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40 resize-none\"\n />\n </div>\n )}\n </div>\n </div>\n </div>\n )}\n\n {/* ============= Documents ============= */}\n {activeTab === 'documents' && (\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary mb-5\">Documents & Banking</h2>\n\n <div className=\"rounded-lg bg-status-warning-bg-subtle/10 border border-status-warning-border/20 p-3 mb-5\">\n <p className=\"text-xs text-status-warning-text flex items-center gap-2\">\n <Shield className=\"h-4 w-4 shrink-0\" />\n Your documents and banking information are encrypted and secure.\n </p>\n </div>\n\n <div className=\"grid sm:grid-cols-2 gap-4\">\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n PAN Number\n </label>\n <input\n type=\"text\"\n value={profile.panNumber}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Aadhar Number\n </label>\n <input\n type=\"text\"\n value={profile.aadharNumber}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Bank Name\n </label>\n <input\n type=\"text\"\n value={profile.bankName}\n onChange={(e) => handleInputChange('bankName', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n Account Number\n </label>\n <input\n type=\"text\"\n value={profile.accountNumber}\n disabled\n className=\"w-full rounded-md border border-border-subtle bg-bg-sunken px-3 py-2 text-sm text-text-primary cursor-not-allowed\"\n />\n </div>\n <div>\n <label className=\"block text-xs font-medium text-text-secondary mb-1\">\n IFSC Code\n </label>\n <input\n type=\"text\"\n value={profile.ifscCode}\n onChange={(e) => handleInputChange('ifscCode', e.target.value)}\n disabled={!isEditing}\n className=\"w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary disabled:bg-bg-sunken disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-accent-blue-subtle/40\"\n />\n </div>\n </div>\n </div>\n )}\n\n {/* ============= Achievements ============= */}\n {activeTab === 'achievements' && (\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary mb-5\">\n Achievements & Recognition\n </h2>\n\n {/* Achievement Badges */}\n <div className=\"grid sm:grid-cols-2 gap-4 mb-7\">\n <div className=\"rounded-lg bg-status-warning-bg-subtle/5 border border-status-warning-border/20 p-5 text-center\">\n <Award className=\"h-10 w-10 text-status-warning-text mx-auto mb-2\" />\n <h3 className=\"text-sm font-semibold text-text-primary\">Employee of the Month</h3>\n <p className=\"text-xs text-text-secondary mt-1\">December 2023</p>\n </div>\n <div className=\"rounded-lg bg-accent-blue-subtle/5 border border-accent-blue-subtle/20 p-5 text-center\">\n <Clock className=\"h-10 w-10 text-accent-blue mx-auto mb-2\" />\n <h3 className=\"text-sm font-semibold text-text-primary\">Perfect Attendance</h3>\n <p className=\"text-xs text-text-secondary mt-1\">Q3 2023</p>\n </div>\n </div>\n\n {/* Performance Metrics with Progress Bars */}\n <div>\n <h3 className=\"text-sm font-semibold text-text-primary mb-4\">\n Performance Metrics\n </h3>\n <div className=\"space-y-4\">\n <div>\n <div className=\"flex justify-between items-center mb-1.5\">\n <span className=\"text-xs text-text-secondary\">Delivery Success Rate</span>\n <span className=\"text-xs font-medium text-text-primary\">98%</span>\n </div>\n <div className=\"w-full h-2 rounded-full bg-bg-sunken overflow-hidden\">\n <div\n className=\"h-full rounded-full bg-status-success-bg-subtle transition-all\"\n style={{ width: '98%' }}\n />\n </div>\n </div>\n <div>\n <div className=\"flex justify-between items-center mb-1.5\">\n <span className=\"text-xs text-text-secondary\">Customer Satisfaction</span>\n <span className=\"text-xs font-medium text-text-primary\">95%</span>\n </div>\n <div className=\"w-full h-2 rounded-full bg-bg-sunken overflow-hidden\">\n <div\n className=\"h-full rounded-full bg-accent-blue-subtle transition-all\"\n style={{ width: '95%' }}\n />\n </div>\n </div>\n <div>\n <div className=\"flex justify-between items-center mb-1.5\">\n <span className=\"text-xs text-text-secondary\">Punctuality</span>\n <span className=\"text-xs font-medium text-text-primary\">92%</span>\n </div>\n <div className=\"w-full h-2 rounded-full bg-bg-sunken overflow-hidden\">\n <div\n className=\"h-full rounded-full bg-accent-purple-subtle transition-all\"\n style={{ width: '92%' }}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n )}\n\n {/* ============= Notifications ============= */}\n {activeTab === 'notifications' && (\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary mb-5\">\n Notification Preferences\n </h2>\n <div className=\"space-y-4\">\n {notifications.map((item) => (\n <div\n key={item.id}\n className=\"flex items-center justify-between p-4 rounded-lg bg-bg-sunken/50\"\n >\n <div>\n <h4 className=\"text-sm font-medium text-text-primary\">{item.label}</h4>\n <p className=\"text-xs text-text-secondary mt-0.5\">{item.description}</p>\n </div>\n <button\n type=\"button\"\n onClick={() => toggleNotification(item.id)}\n disabled={!isEditing}\n className={cn(\n 'relative inline-flex h-6 w-11 items-center rounded-full transition-colors',\n item.enabled ? 'bg-accent-blue-subtle' : 'bg-muted-foreground/30',\n !isEditing && 'opacity-60 cursor-not-allowed'\n )}\n >\n <span\n className={cn(\n 'inline-block h-4 w-4 rounded-full bg-white transition-transform',\n item.enabled ? 'translate-x-6' : 'translate-x-1'\n )}\n />\n </button>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}