diff --git a/src/components/admin/ApprovalPoliciesPage.tsx b/src/components/admin/ApprovalPoliciesPage.tsx index 7b91a5e..3424aa6 100644 --- a/src/components/admin/ApprovalPoliciesPage.tsx +++ b/src/components/admin/ApprovalPoliciesPage.tsx @@ -175,7 +175,7 @@ export function ApprovalPoliciesPage() {

- + Approval Policies

Configure stage-level approvers, mode, and minimum approvals.

@@ -185,7 +185,7 @@ export function ApprovalPoliciesPage() { Refresh - @@ -244,7 +244,7 @@ export function ApprovalPoliciesPage() { @@ -445,7 +445,7 @@ export function ApprovalPoliciesPage() { - diff --git a/src/components/admin/QuestionnaireBuilder.tsx b/src/components/admin/QuestionnaireBuilder.tsx index 9fcf188..714b49b 100644 --- a/src/components/admin/QuestionnaireBuilder.tsx +++ b/src/components/admin/QuestionnaireBuilder.tsx @@ -204,7 +204,7 @@ const QuestionnaireBuilder: React.FC = () => { if (fetching) { return (
-
+
); } @@ -230,7 +230,7 @@ const QuestionnaireBuilder: React.FC = () => {
-
+
{totalWeight !== 100 && } Total Score: {totalWeight}/100
@@ -240,13 +240,13 @@ const QuestionnaireBuilder: React.FC = () => { type="text" value={version} onChange={(e) => setVersion(e.target.value)} - className="border border-slate-300 p-2 rounded-lg w-full md:w-48 text-sm focus:ring-2 focus:ring-amber-500 outline-none" + className="border border-slate-300 p-2 rounded-lg w-full md:w-48 text-sm focus:ring-2 focus:ring-red-500 outline-none" placeholder="Version Name (e.g. v2.0)" /> @@ -271,7 +271,7 @@ const QuestionnaireBuilder: React.FC = () => { type="text" value={q.questionText} onChange={(e) => updateQuestion(index, 'questionText', e.target.value)} - className="w-full border border-slate-300 p-2.5 rounded-lg focus:ring-2 focus:ring-amber-500 outline-none transition-shadow" + className="w-full border border-slate-300 p-2.5 rounded-lg focus:ring-2 focus:ring-red-500 outline-none transition-shadow" placeholder="Enter your question here..." />
@@ -281,7 +281,7 @@ const QuestionnaireBuilder: React.FC = () => { @@ -292,7 +292,7 @@ const QuestionnaireBuilder: React.FC = () => { { setSelectedModule(val); setPage(1); }}> - + @@ -236,7 +236,7 @@ export const DocumentConfigManagement: React.FC = () => { placeholder="Search policies, stages or documents..." value={search} onChange={(e) => { setSearch(e.target.value); setPage(1); }} - className="pl-10 h-10 rounded-xl bg-white border-slate-200 focus:ring-amber-500 shadow-sm font-medium" + className="pl-10 h-10 rounded-xl bg-white border-slate-200 focus:ring-red-500 shadow-sm font-medium" />
@@ -244,7 +244,7 @@ export const DocumentConfigManagement: React.FC = () => { {loading ? (
- + Syncing Policies...
) : null} @@ -274,7 +274,7 @@ export const DocumentConfigManagement: React.FC = () => { ) : configs.map((config) => ( -
{config.documentType}
+
{config.documentType}
@@ -305,7 +305,7 @@ export const DocumentConfigManagement: React.FC = () => {
{config.isMandatory && ( - BLOCKING + BLOCKING )} {!config.isActive && ( DORMANT @@ -320,7 +320,7 @@ export const DocumentConfigManagement: React.FC = () => { -
@@ -333,7 +333,7 @@ export const DocumentConfigManagement: React.FC = () => { {/* Pagination Controls */}
- Dataset Index {configs.length > 0 ? (page - 1) * limit + 1 : 0} - {Math.min(page * limit, pagination.total)} Total Found {pagination.total} + Dataset Index {configs.length > 0 ? (page - 1) * limit + 1 : 0} - {Math.min(page * limit, pagination.total)} Total Found {pagination.total}
- {page} / {pagination.pages} + {page} / {pagination.pages}
-
diff --git a/src/features/master/components/InterviewConfigManagement.tsx b/src/features/master/components/InterviewConfigManagement.tsx index 5bba910..36602ec 100644 --- a/src/features/master/components/InterviewConfigManagement.tsx +++ b/src/features/master/components/InterviewConfigManagement.tsx @@ -316,7 +316,7 @@ const InterviewConfigManagement: React.FC = () => {
) : ( -
+
No active configuration found. Click "Publish New Version" to create one, or "Reset to Defaults" to initialize system defaults.
)} @@ -338,7 +338,7 @@ const InterviewConfigManagement: React.FC = () => { -
@@ -366,7 +366,7 @@ const InterviewConfigManagement: React.FC = () => { {editingConfig?.configType === 'KT_MATRIX' && ( -
+
Weight: {totalWeight}% / 100%
)} @@ -535,7 +535,7 @@ const InterviewConfigManagement: React.FC = () => {

-

Selection Choices Profile +
Selection Choices Profile

- +
diff --git a/src/features/master/components/LocationManagement.tsx b/src/features/master/components/LocationManagement.tsx index 6457025..92d6ab2 100644 --- a/src/features/master/components/LocationManagement.tsx +++ b/src/features/master/components/LocationManagement.tsx @@ -53,7 +53,7 @@ export const LocationManagement: React.FC = ({ placeholder="Search locations..." value={searchTerm} onChange={(e) => onSearch(e.target.value)} - className="pl-9 pr-4 py-2 bg-slate-50 border border-slate-200 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-amber-500 w-64 transition-all" + className="pl-9 pr-4 py-2 bg-slate-50 border border-slate-200 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-red-500 w-64 transition-all" />
@@ -80,7 +80,7 @@ export const LocationManagement: React.FC = ({ - @@ -112,7 +112,7 @@ export const LocationManagement: React.FC = ({
- + {district.stateName || 'N/A'}
@@ -151,7 +151,7 @@ export const LocationManagement: React.FC = ({ -
@@ -163,7 +163,7 @@ export const LocationManagement: React.FC = ({ {isAreasLoading && (
-
+
)}
diff --git a/src/features/master/components/RegionDialog.tsx b/src/features/master/components/RegionDialog.tsx index afd5a5a..1d9ddfb 100644 --- a/src/features/master/components/RegionDialog.tsx +++ b/src/features/master/components/RegionDialog.tsx @@ -189,7 +189,7 @@ export const RegionDialog: React.FC = ({
{!selectedRegionZone && ( -

Select a zone first to see available states

+

Select a zone first to see available states

)}
{statesForZone.length === 0 ? ( @@ -234,7 +234,7 @@ export const RegionDialog: React.FC = ({ {districtsByState.map(({ stateName, districts }) => (
-

+

{stateName}

@@ -302,7 +302,7 @@ export const RegionDialog: React.FC = ({ {/* Actions */}
- +
diff --git a/src/features/master/components/RegionalManagement.tsx b/src/features/master/components/RegionalManagement.tsx index 32748d0..55215f6 100644 --- a/src/features/master/components/RegionalManagement.tsx +++ b/src/features/master/components/RegionalManagement.tsx @@ -29,7 +29,7 @@ export const RegionalManagement: React.FC = ({ Regional Offices Manage regional offices within zones
- @@ -114,7 +114,7 @@ export const RegionalManagement: React.FC = ({ -
diff --git a/src/features/master/components/RoleDialog.tsx b/src/features/master/components/RoleDialog.tsx index 81e445f..403999d 100644 --- a/src/features/master/components/RoleDialog.tsx +++ b/src/features/master/components/RoleDialog.tsx @@ -79,8 +79,8 @@ export const RoleDialog: React.FC = ({ }, { title: "Application Stage Access", - color: "from-amber-50 to-orange-50 border-amber-200", - textColor: "text-amber-900", + color: "from-red-50 to-orange-50 border-red-200", + textColor: "text-red-900", permissions: [ { id: "stage:initial_review", label: "Initial Review" }, { id: "stage:field_verification", label: "Field Verification" }, @@ -126,7 +126,7 @@ export const RoleDialog: React.FC = ({

- + Configure Default Permissions

diff --git a/src/features/master/components/RolePermissions.tsx b/src/features/master/components/RolePermissions.tsx index 70965ac..2f7d190 100644 --- a/src/features/master/components/RolePermissions.tsx +++ b/src/features/master/components/RolePermissions.tsx @@ -22,7 +22,7 @@ export const RolePermissions: React.FC = ({ onAddRole, onE Role Definitions Overview of available roles and their access levels
- @@ -34,7 +34,7 @@ export const RolePermissions: React.FC = ({ onAddRole, onE
- +

{role.name}

diff --git a/src/features/master/components/SLAConfiguration.tsx b/src/features/master/components/SLAConfiguration.tsx index e6e371b..4eb5aa0 100644 --- a/src/features/master/components/SLAConfiguration.tsx +++ b/src/features/master/components/SLAConfiguration.tsx @@ -29,7 +29,7 @@ export const SLAConfiguration: React.FC = ({ onConfigureS
- +

{sla.activityName}

TAT: {sla.tatHours} {sla.tatUnit}

@@ -73,7 +73,7 @@ export const SLAConfiguration: React.FC = ({ onConfigureS
- + Escalations ({sla.escalationConfigs?.length || 0})
diff --git a/src/features/master/components/SLADialog.tsx b/src/features/master/components/SLADialog.tsx index a7bfd00..9821410 100644 --- a/src/features/master/components/SLADialog.tsx +++ b/src/features/master/components/SLADialog.tsx @@ -184,6 +184,7 @@ export const SLADialog: React.FC = ({ isOpen, onClose, sla, onSa
setFormData({ ...formData, isActive: checked })} /> @@ -252,7 +253,7 @@ export const SLADialog: React.FC = ({ isOpen, onClose, sla, onSa
- +

Escalation Levels

- diff --git a/src/features/master/components/SecurityDepositMaster.tsx b/src/features/master/components/SecurityDepositMaster.tsx index 623afa8..1286254 100644 --- a/src/features/master/components/SecurityDepositMaster.tsx +++ b/src/features/master/components/SecurityDepositMaster.tsx @@ -54,7 +54,7 @@ export const SecurityDepositMaster: React.FC = () => { if (loading) { return (
-
+

Loading settings...

); @@ -65,8 +65,8 @@ export const SecurityDepositMaster: React.FC = () => {
-
- +
+
@@ -98,7 +98,7 @@ export const SecurityDepositMaster: React.FC = () => { handleUpdateAmount(config.id, e.target.value)} /> @@ -109,7 +109,7 @@ export const SecurityDepositMaster: React.FC = () => { )) ) : ( -
-

No placeholders defined for this trigger

+
+

No placeholders defined for this trigger

)}
@@ -182,7 +182,7 @@ export const TemplateDialog: React.FC = ({

- + Template Designer

@@ -230,7 +230,7 @@ export const TemplateDialog: React.FC = ({ '{"applicantName": "Rajesh Kumar", "location": "Mumbai South", "applicationId": "APP-2026-X12", "link": "https://example.com/app", "portalLink": "https://example.com/app"}' ) } - className="text-[10px] text-amber-600 hover:underline" + className="text-[10px] text-re-red hover:underline" > Reset to Sample @@ -302,7 +302,7 @@ export const TemplateDialog: React.FC = ({ Cancel - +
diff --git a/src/features/master/components/ZMManagement.tsx b/src/features/master/components/ZMManagement.tsx index 56d94dc..e103755 100644 --- a/src/features/master/components/ZMManagement.tsx +++ b/src/features/master/components/ZMManagement.tsx @@ -33,7 +33,7 @@ export const ZMManagement: React.FC = ({ Zonal Managers (DD-ZM) Manage Zonal Managers and their region assignments
- @@ -99,7 +99,7 @@ export const ZMManagement: React.FC = ({ -
diff --git a/src/features/master/components/ZoneDetails.tsx b/src/features/master/components/ZoneDetails.tsx index 445cbfa..b315339 100644 --- a/src/features/master/components/ZoneDetails.tsx +++ b/src/features/master/components/ZoneDetails.tsx @@ -27,7 +27,7 @@ export const ZoneDetails: React.FC = ({ selectedZone, onAddZon Zone Details Geographical coverage and state mappings for each zone
- @@ -40,7 +40,7 @@ export const ZoneDetails: React.FC = ({ selectedZone, onAddZon
-
+
@@ -86,11 +86,11 @@ export const ZoneDetails: React.FC = ({ selectedZone, onAddZon -
+
- + {zone.zonalBusinessHead.name} - ZBH + ZBH
diff --git a/src/features/master/components/ZoneDialog.tsx b/src/features/master/components/ZoneDialog.tsx index 53ca78a..6c875bc 100644 --- a/src/features/master/components/ZoneDialog.tsx +++ b/src/features/master/components/ZoneDialog.tsx @@ -106,7 +106,7 @@ export const ZoneDialog: React.FC = ({
- +
diff --git a/src/features/master/components/ZonesOverview.tsx b/src/features/master/components/ZonesOverview.tsx index 34af64c..cf2baa3 100644 --- a/src/features/master/components/ZonesOverview.tsx +++ b/src/features/master/components/ZonesOverview.tsx @@ -19,14 +19,14 @@ export const ZonesOverview: React.FC = ({ selectedZone, onZo return ( onZoneClick(zone.id)} >
- + {zone.name.toUpperCase().endsWith('ZONE') ? zone.name : `${zone.name} Zone`}
{zone.code} diff --git a/src/features/master/pages/MasterPage.tsx b/src/features/master/pages/MasterPage.tsx index b30ae30..d6c539f 100644 --- a/src/features/master/pages/MasterPage.tsx +++ b/src/features/master/pages/MasterPage.tsx @@ -443,34 +443,34 @@ export const MasterPage: React.FC = () => { {loading ? (
-
+

Synchronizing Global Settings...

) : ( - + Organisation - + Roles - + Emails - + Locations - + Approvals - + Docs Config - + Governance - + App Settings diff --git a/src/features/master/pages/SLAConfigPage.tsx b/src/features/master/pages/SLAConfigPage.tsx index 7c95c3a..9776071 100644 --- a/src/features/master/pages/SLAConfigPage.tsx +++ b/src/features/master/pages/SLAConfigPage.tsx @@ -73,7 +73,7 @@ export const SLAConfigPage: React.FC = () => { Initialize Defaults - @@ -136,14 +136,14 @@ export const SLAConfigPage: React.FC = () => {
- + Escalations ({sla.escalationConfigs?.length || 0})
{(sla.escalationConfigs || []).map((esc: any, idx: number) => (
- + L{esc.level} after {esc.timeValue} {esc.timeUnit} diff --git a/src/features/onboarding/components/application-details/ApplicationDetailsTabs.tsx b/src/features/onboarding/components/application-details/ApplicationDetailsTabs.tsx index 20ed457..69e7b5c 100644 --- a/src/features/onboarding/components/application-details/ApplicationDetailsTabs.tsx +++ b/src/features/onboarding/components/application-details/ApplicationDetailsTabs.tsx @@ -9,6 +9,7 @@ import { Clock, ClipboardList, Download, + Eye, FileText, GitBranch, Lock, @@ -556,11 +557,17 @@ export function ApplicationDetailsTabs(props: ApplicationDetailsTabsProps) {
+
diff --git a/src/features/onboarding/hooks/useApplicationDetailsStageData.ts b/src/features/onboarding/hooks/useApplicationDetailsStageData.ts index ddec086..eda63a4 100644 --- a/src/features/onboarding/hooks/useApplicationDetailsStageData.ts +++ b/src/features/onboarding/hooks/useApplicationDetailsStageData.ts @@ -6,6 +6,7 @@ interface UseApplicationDetailsStageDataParams { interviews: any[]; eorData: any; getDeposit: (type: string) => any; + documentConfigs?: any[]; } export function useApplicationDetailsStageData({ @@ -14,6 +15,7 @@ export function useApplicationDetailsStageData({ interviews: _interviews, eorData, getDeposit, + documentConfigs = [], }: UseApplicationDetailsStageDataParams) { const normalizeRole = (value: unknown): string => String(value || '') @@ -116,7 +118,22 @@ export function useApplicationDetailsStageData({ }, { id: 10, name: 'LOI Issue', status: getStageStatus('LOI Issue'), - date: application.loiIssueDate, description: 'Letter of Intent issued', documentsUploaded: 1 + date: application.loiIssueDate, description: 'Letter of Intent issued', isParallel: true, + branches: [ + { name: 'LOI Documents', color: 'blue', stages: + documentConfigs.some((c: any) => c.stageCode === 'LOI Issue') + ? documentConfigs.filter((c: any) => c.stageCode === 'LOI Issue').map((c: any, i: number) => ({ + id: `10a-${i}`, + name: c.documentType, + status: isDocumentUploaded(c.documentType) ? 'completed' : 'active', + description: c.isMandatory ? `Upload ${c.documentType} (Mandatory)` : `Upload ${c.documentType}` + })) + : [ + { id: '10a-1', name: 'Letter of Intent', status: isDocumentUploaded('Letter of Intent') || isDocumentUploaded('LOI') ? 'completed' : 'active', description: 'Letter of Intent document' }, + { id: '10a-2', name: 'Signed LOI', status: isDocumentUploaded('Signed LOI') || isDocumentUploaded('LOI Signed Copy') ? 'completed' : 'active', description: 'Signed Letter of Intent' }, + ] + } + ] }, { id: 11, name: 'Dealer Code Generation', status: getStageStatus('Dealer Code Generation'), diff --git a/src/features/onboarding/pages/ApplicationDetails.tsx b/src/features/onboarding/pages/ApplicationDetails.tsx index d38ceea..3264c3d 100644 --- a/src/features/onboarding/pages/ApplicationDetails.tsx +++ b/src/features/onboarding/pages/ApplicationDetails.tsx @@ -359,6 +359,7 @@ export const ApplicationDetails = () => { interviews, eorData, getDeposit, + documentConfigs, }); const {