Commit graph

165 commits

Author SHA1 Message Date
Ashwin Kumar
d0b904f3ff feat(sidebar): use full nxtgauge-logo.png in expanded state, icon-only when collapsed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:07:32 +01:00
Ashwin Kumar
1bd7fe646c feat(department): add View Department panel with row detail display
- View Department tab now shows department details (code, head, email, employees, visibility, date)
- Clicking ⋮ → View Department on a row populates the view panel
- Table hides when View tab is active (style:display reactive binding)
- Dropdown menu items rewritten with inline styles for proper spacing (4 items: View, Edit, Deactivate, Delete)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:05:28 +01:00
Ashwin Kumar
ab487ce884 feat(admin): pixel-perfect UI overhaul for department, designation, roles, employees pages
- Rewrote all layout/spacing with inline styles (Tailwind v4 doesn't generate most utility classes)
- AdminSidebar: all 37 modules in 9 groups, scrollable, 220px/64px collapse, no bottom user section
- AdminShell: header height 64px, user avatar top-right (Gmail-style), removed search bar
- Department: orange-only status badges, dark navy table header (white text), edge-to-edge table, View/Create/All tabs, View action in row menu, form with inline styles
- Designation: full rewrite matching department pattern — same tabs, filter bar, table, form
- Roles/Employees: compact filter bar and table cell sizing fixes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 01:56:55 +01:00
Ashwin Kumar
c65f32d45c chore: sync local changes 2026-03-26 20:58:39 +01:00
Ashwin Kumar
4ca69877d4 fix(admin): remove employees.tsx layout wrapper — breaks nested routing
Deleting employees.tsx allows employees/index.tsx to serve /admin/employees
directly (same pattern as roles/), fixing the blank page regression.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 08:09:26 +01:00
Ashwin Kumar
1844170429 feat(admin): employee management redesign + routing fix
- Fix employees routing: employees.tsx → Outlet layout, actual pages in employees/index.tsx and employees/create.tsx
- Employee list: stat cards, search/filter toolbar, table with 3-dot action menu (Edit, Deactivate, Delete), fallback data
- Employee create: form with full_name, email, role_id, department_id, designation_id selectors; auto-credential note
- Stage all other modified routes for next phases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 08:07:55 +01:00
Ashwin Kumar
5b97af4e0f feat(admin): redesign sidebar, dashboard, dept, designation & roles UI
- Sidebar: white bg, rounded pill nav items, orange left indicator for active
- Dashboard: remove Export/View All buttons, add Customise Dashboard + drag handles on widgets
- Department/Designation/Roles: new design system with orange label header, stat cards, light table header, 3-dot action menus, status badges

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 08:01:23 +01:00
Ashwin Kumar
244895b241 Refactor admin UI and add Storybook/Vitest setup 2026-03-26 06:20:22 +01:00
Ashwin Kumar
df9445da65 Phase 5 & 6: Modernize Verifications, Approvals, and Onboarding UI 2026-03-26 00:35:41 +01:00
Ashwin Kumar
52adb3ad05 feat(admin): modernize verification, approvals, and onboarding ui 2026-03-26 00:16:52 +01:00
Ashwin Kumar
1b70f40e40 feat: phase 4 role management ui matching figma designs 2026-03-26 00:06:47 +01:00
Ashwin Kumar
648b6be849 feat: phase 3 identity & configuration ui matching figma designs 2026-03-26 00:01:15 +01:00
Ashwin Kumar
83a1f45e4f feat: complete phase 2 dashboard modules UI and data wiring 2026-03-25 23:55:43 +01:00
Ashwin Kumar
9d02b7be84 Phase 1: Layout & Core Design System 2026-03-25 23:50:52 +01:00
Ashwin Kumar
1ffe2b35ee chore: cleanup — remove redirect shims, unused components, fix build artifacts
- Delete 8 redirect alias pages (approval-management, approvals, external-role-management,
  internal-role-management, help, role-modules, settings, workspace) that used onMount
  navigate — causes flicker and unnecessary AdminShell renders
- Delete unused Counter.tsx and Counter.css (test artifact, never imported)
- Update AdminSidebar to link directly to /admin/roles and /admin/runtime-roles
  now that redirect shims are gone
- Remove codex build hashes from page titles (Departments, Designations, Dashboard)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 23:35:13 +01:00
Ashwin Kumar
8e2b3c1a64 Update admin dashboard UI and add management route aliases 2026-03-25 23:01:42 +01:00
Ashwin Kumar
3f20065257 chore: checkpoint current workspace changes 2026-03-25 22:15:06 +01:00
Ashwin Kumar
13b428913f feat: phase 1+2 — shell redesign + drag-and-drop dashboard
Shell (AdminShell + AdminSidebar):
- Logo moved to header-left section, width syncs with sidebar collapse state
- Global search bar with debounced multi-module API calls and grouped dropdown
- Bell notification icon with badge, gear → /admin/settings, user dropdown with logout
- Sidebar: 7 grouped nav sections with dividers, orange left-border active state,
  removed "Active" badge pill, user info (avatar + name + role) pinned to bottom
- Fixed all sidebar labels to match Figma (Employee Management, External Onboarding
  Management, Users Management, Verification Management)
- Added missing sidebar items: Verification, Fitness Trainers, Graphic Designers,
  Social Media, Video Editors, Catering Services, Applications, Responses

Dashboard (admin/index):
- Rebuilt to match Figma: "Dashboard Overview" title, Export Report button
- 4 stat cards (Total Users, Active Companies, Open Leads, Credits Purchased)
  with real API fetch, orange icons, delta badges, graceful — fallback
- ApexCharts: Leads Trend (orange gradient line) + Revenue Overview (navy bars)
- Drag-and-drop widget system via @thisbeyond/solid-dnd — sortable stat cards
  and chart cards with handles and remove buttons in Customise mode
- Add Widget panel shows all available widgets not on dashboard
- 8 stat widgets + 3 chart widgets available; layout persists in localStorage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 19:21:54 +01:00
Ashwin Kumar
801bf293a0 style: match login page to public website design language
- Dark navy gradient background (matches public site's MarketingBackground feel)
- Glassmorphism card: rounded-[28px] border-white/30 bg-white/92 backdrop-blur-xl
  shadow-[0_28px_60px_-34px_rgba(2,6,23,0.88)] — identical to public site card
- Input style: rounded-xl border-[#cfd4e3] focus:border-[#fd6216] focus:ring-[#ffd8c3]
- Label style: text-xs font-semibold uppercase tracking-[0.11em] text-[#4b546f]
- Field spacing: space-y-3.5 with mb-2 labels — matches public site exactly
- Password show/hide toggle (eye icon) matching public site
- Radial glow accent blobs behind the background
- Left brand panel kept as frosted glass over the dark bg (lg+ only)
- Navy submit button (intentional admin deviation from public orange)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 16:01:07 +01:00
Ashwin Kumar
eefdbc4561 style: redesign login page with split-panel layout
Replaced cramped single-column layout with a polished two-panel design:
- Left: navy (#0a1d37) brand panel with logo, headline, feature checklist,
  radial glow accents, and security footer — visible at lg+ breakpoints
- Right: centered white card on slate-50 background with clean form,
  proper input focus states (navy ring), and consistent navy submit button
- Mobile: collapses to single column with logo above the card
- Removed washed-out disabled orange button; button is always visible
- Consistent with admin design system (navy primary, orange accent only)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 15:57:28 +01:00
Ashwin Kumar
3b2c09cd4b style: unify all primary buttons to use shared .btn-primary class
Replaced 37 files worth of inconsistent inline Tailwind button classes
(mixed font-medium/semibold, px-4/px-6, with/without shadow-sm, inline-flex
variants) with the shared .btn-primary CSS class. Added :disabled state to
.btn-primary in app.css so disabled buttons visually dim consistently.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 08:10:29 +01:00
Ashwin Kumar
33619a1b27 style: apply consistent page header pattern across all admin routes
- Replace text-2xl font-bold with text-xl font-semibold in all page headers
- Replace bg-[#fd6216] orange buttons with bg-[#0a1d37] navy buttons
- Wrap all pages in -mx-6 -mt-6 flex flex-col layout for edge-to-edge headers
- Replace .field/.actions CSS classes with explicit Tailwind utility classes
- Apply data-table/table-card shared CSS classes to remaining list pages
- Remove duplicate tab bar from roles/index.tsx (AdminShell TAB_SETS handles it)
- Move Create Internal Role button to page header in roles/index.tsx

Pages updated: applications, modules, responses, verification-status,
company/create, company/[id], employees/[id]/edit, users/[id]/edit,
users/details/[id], roles/index, roles/[id]/index, roles/[id]/edit,
role-ui-configs, runtime-roles/[roleKey], onboarding-schemas/*,
external/internal-dashboard-management, approval/[id], approval,
jobs/[id], leads/[id], photographer/[id], requirements/[id],
kb/articles/[id], kb/articles/[id]/edit, verification/[id],
verification-status/[id], help/[id], help/support-bridge

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 07:37:02 +01:00
Ashwin Kumar
3b98609cb5 ui(step-5): update roles/runtime-roles pages to reference layout
- roles/create: navy submit button, proper form inputs, data-table
- roles/templates: table-card, navy Create button
- runtime-roles/index: fix oversized heading, data-table, navy colors
- runtime-roles/new: white header shell, proper form styling

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 05:26:39 +01:00
Ashwin Kumar
3ffed6c813 ui(step-4): apply reference layout to remaining 7 pages
- catering-services, fitness-trainers, graphic-designers, social-media-managers,
  video-editors, verification, kb: white header, data-table/table-card,
  navy buttons, orange tab underlines, inline styles removed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 05:23:57 +01:00
Ashwin Kumar
5cfa4b89be ui(step-3): apply reference layout to 14 more management pages
- pricing, credit, coupon, discount, tax, order, invoice: white header,
  data-table/table-card, navy buttons, inline styles removed
- review, leads, jobs, notifications, support, report, ledger: same
  pattern + orange tab underlines where applicable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 05:20:55 +01:00
Ashwin Kumar
0bb59b99ef ui(step-2): apply reference layout to 8 management pages
- customer, candidate, photographer, makeup-artist, users, company,
  developers, tutors: all get white sticky header, -mx-6/-mt-6 layout,
  data-table/table-card CSS classes, navy primary buttons, orange tab
  underlines, Tailwind classes replacing inline styles on all table cells

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 04:51:40 +01:00
Ashwin Kumar
d6405b55f6 ui(step-1): match reference layout for dept/designation/employees/roles pages
- All pages: white sticky page header + tab bar with orange underline,
  -mx-6 -mt-6 negative margin to stretch headers edge-to-edge
- department: full columns (ID, Name, Description, Created By, etc.),
  icon-only action buttons, navy Add Department button
- designation: Designations List / Add Designation tabs, status filter
  dropdown, inline create/edit form, full columns with status badge
- employees: View/Add tabs, icon-only action buttons, status badges
- roles/index: clean table with Name+code subtext, Description, actions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 04:47:05 +01:00
Ashwin Kumar
c44152154f ui(step-0): rewrite sidebar/shell to match reference admin panel
- AdminSidebar: flat nav list, orange right-border active indicator,
  ACTIVE pill badge, ChevronLeft collapse (rotates 180° when collapsed)
- AdminShell: h-16 header with logo+title left, Bell+avatar+logout right,
  sidebar collapse state, bg-gray-50 main area
- app.css: shared classes — data-table (navy header), table-card,
  btn-primary (navy), btn-secondary, search-input, action-btn,
  status-badge variants, page-title

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 04:25:17 +01:00
Ashwin Kumar
ab15466368 ui: match stitch design system — navy accents, tighter rounding, sidebar groups
- AdminSidebar: group labels (Management/Organisation/Service Providers/Operations),
  navy active state (bg-[#e8edf5] + [#0a1d37] left bar + navy icon), width 268px,
  13.5px font, 40px item height, lucide-solid icons only (no img fallback), min-w-0
  truncation fix, tighter py spacing
- AdminShell: header height 64px (was 86px), compact search bar 40px/rounded-lg,
  navy avatar square (was orange gradient), tab indicator navy (was orange), sidebar
  width 268px, main bg #f3f4f8
- Dashboard: rounded-xl→rounded-lg cards, rounded-2xl→rounded-xl sections, navy
  accent bars on KPI cards, tabular-nums on values, navy pipeline progress bars
- app.css: table thead now navy (#0a1d37) with white text matching reference screenshot,
  focus rings navy, admin-segment/admin-link-tabs active state navy, reduced border
  radii on segmented controls and list items

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 02:49:09 +01:00
Ashwin Kumar
9b1ffdacf6 Revamp admin shell/sidebar and align login form style 2026-03-24 02:36:40 +01:00
Ashwin Kumar
1f59fbbc4c fix(ui): sidebar spacing/scrolling, navy accent bars, reduced border radius
- Sidebar: proper min-h-0 + overflow-y-auto scrolling, px-3 spacing,
  text-[13px] items with truncate, tighter py-2 rows, user card with
  navy avatar chip, w-60 width
- KPI cards: navy #0a1d37 left accent bar instead of orange, navy icon
  chips, rounded-xl (was rounded-2xl), reduced shadow intensity
- All cards/panels: rounded-xl (down from rounded-2xl/3xl)
- Activity chart: navy bars instead of orange, rounded-t-md (less rounded)
- Intelligence Hub actions: rounded-lg (was rounded-2xl)
- Control Plane cards: rounded-xl with hover:border-[#0a1d37]/10

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:55:31 +01:00
Ashwin Kumar
df560a91ea feat(ui): apply stitch design system — left-accent KPI cards, Intelligence Hub, glassmorphism header
- app.css: Exo 2 font, #0a1d37 navy + #fd6216 orange tokens, #f9f9fd background
- AdminShell: backdrop-blur-xl glassmorphism header, centered search bar, settings icon,
  name + bordered avatar, ambient shadow-[0_4px_24px_rgba(10,29,55,0.04)]
- AdminSidebar: white bg, left orange 4px pill accent on active (before: pseudo),
  bg-slate-50 active state, MANAGEMENT/FINANCE/PLATFORM group labels, user card at bottom
- Dashboard: KPI cards with absolute left-0 accent bar + ambient shadows, big font-black numbers,
  System Activity bar chart, Intelligence Hub dark navy panel with quick-action buttons,
  Pipeline Status cards with progress bars, Control Plane 3-col grid

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:34:33 +01:00
Ashwin Kumar
be179a6673 feat(ui): premium redesign — Inter font, grouped sidebar, gradient active states
- Switch to Inter font for sharper admin feel
- Sidebar: grouped nav sections (Overview/Organization/Access & Roles/etc),
  orange gradient active fade, tighter spacing, smaller 220px width
- Header: slimmer h-14, backdrop-blur, logo+separator+title layout,
  gradient avatar, notification dot with ring-2 badge
- Dashboard: smaller rounded-xl cards, tabular-nums on KPI values,
  ArrowUpRight hover indicators, refined Control Plane grid
- app.css: sidebar/surface CSS design tokens, orange palette updates

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:13:04 +01:00
Ashwin Kumar
a272276055 feat(admin): Phase 0 — Tailwind v4 foundation, shell rewrite, modern dashboard
- Install Tailwind CSS v4 via @tailwindcss/vite; configure vite.config.ts
- Rewrite app.css: Tailwind base, Exo 2 font, brand tokens (orange #fd6216, navy #050026), scrollbar utility; fix @import order
- Rewrite AdminShell.tsx: fixed header, fixed inset body grid (sidebar + main), session check, sub-tab system, logout, admin avatar/name/role
- Rewrite AdminSidebar.tsx: collapsible w-64/w-20, orange active rail + badge/dot, CSS filter for SVG icon tinting, min-h-0 flex fix
- Replace 84 route stub CSS classes (page-title, card, btn, table-wrap, etc.) with Tailwind equivalents via safe class-attr-only regex script
- Rewrite admin dashboard: Lucide icons in colored chip backgrounds, 4-col KPI grid, Control Plane 6-module grid, hover lift animations
- Disable SSR (ssr: false) to fix Vinxi dev manifest error; clear stale .vinxi cache
- Add lucide-solid icon library
- Add scripts/cleanup-css.mjs for class migration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:00:21 +01:00
Ashwin Kumar
0050277922 Fix admin navigation/refresh and complete role/dashboard/onboarding builder parity updates 2026-03-23 21:13:42 +01:00
Ashwin Kumar
8a01ff9041 chore(claude): update launch config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 00:47:14 +01:00
Ashwin Kumar
2d161c4f15 feat(admin-parity): approval management, submission viewer, role builder offline fallback
- Rebuilt approval.tsx: reject with reason prompt, request changes with field
  keys, request more documents flow, RoleTypeBadge per role type, parsed
  requestReason (ONBOARDING_SUBMISSION prefix), management page routing for
  approved items, inline ApprovalDetailPanel with remarks timeline
- Rebuilt approval/[id].tsx: full onboarding submission viewer loading from
  GET /api/admin/approvals/submission/{user_id}?roleKey=X, flattenFields
  recursive flattener, detectKind image/pdf/document/url/text classifier,
  image lightbox, PDF iframe modal, approve/reject per role type routing
- Added src/lib/admin-modules.ts: STATIC_PERMISSIONS fallback (39 modules x4
  actions) for Internal Role Builder when backend is offline
- roles/create.tsx + roles/[id]/edit.tsx: use STATIC_PERMISSIONS when API
  returns empty or fails, builder now works offline
- AdminShell + AdminSidebar: alignment/style fixes from parity review
- ExternalRoleForm: extended fields for external runtime role management

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 00:34:38 +01:00
Ashwin Kumar
9980cd4fe5 test(auth): add admin auth split unit+e2e coverage 2026-03-20 22:37:17 +01:00
Ashwin Kumar
95af9c2788 feat(management-parity): replace employee/kb alias routes with real solid pages 2026-03-20 16:19:08 +01:00
Ashwin Kumar
cd780906b1 style(role-parity): align runtime role list actions with next surface 2026-03-20 16:09:21 +01:00
Ashwin Kumar
78d03e67fb style(dashboard-parity): align builder list headers and action button treatments 2026-03-20 16:08:09 +01:00
Ashwin Kumar
96ebcad709 fix(vinxi): export default client entry mount 2026-03-20 15:40:17 +01:00
Ashwin Kumar
998bebc8ec style(parity): align onboarding builder surfaces and tab strips with next ui 2026-03-20 15:37:56 +01:00
Ashwin Kumar
5140d12332 feat(builder-parity): enrich inspector summary and internal dashboard list columns 2026-03-19 21:11:59 +01:00
Ashwin Kumar
12396a81c5 style(dashboard-builder): align builder page shells with next layout 2026-03-19 21:08:17 +01:00
Ashwin Kumar
0cff46ec82 feat(onboarding-builder): add tabbed flow builder with library and preview 2026-03-19 21:05:06 +01:00
Ashwin Kumar
54cd1a156c feat(admin-builders): align role and onboarding management flows with next tabs/forms 2026-03-19 15:29:22 +01:00
Ashwin Kumar
931a1db71b feat(admin-ui): replace redirect aliases with applications and modules flows 2026-03-19 15:19:02 +01:00
Ashwin Kumar
19bacc5ab3 feat(admin-ui): align detail views with next layout patterns 2026-03-19 15:14:15 +01:00
Ashwin Kumar
97f9317797 feat(admin): add route aliases and missing detail pages for parity 2026-03-19 15:05:13 +01:00