diff --git a/.playwright-cli/console-2026-04-01T11-44-14-201Z.log b/.playwright-cli/console-2026-04-01T11-44-14-201Z.log new file mode 100644 index 0000000..c8e73fa --- /dev/null +++ b/.playwright-cli/console-2026-04-01T11-44-14-201Z.log @@ -0,0 +1,3 @@ +[ 32561ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:3000/login:0 +[ 93139ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://127.0.0.1:3000/api/gateway/users/auth/internal/login:0 +[ 93459ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://127.0.0.1:3000/api/gateway/auth/internal/login:0 diff --git a/.playwright-cli/console-2026-04-01T11-53-19-492Z.log b/.playwright-cli/console-2026-04-01T11-53-19-492Z.log new file mode 100644 index 0000000..da87644 --- /dev/null +++ b/.playwright-cli/console-2026-04-01T11-53-19-492Z.log @@ -0,0 +1 @@ +[ 1124ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:3000/login?from=%2Fadmin%2Fexternal-dashboard-management:0 diff --git a/.playwright-cli/console-2026-04-01T12-20-35-038Z.log b/.playwright-cli/console-2026-04-01T12-20-35-038Z.log new file mode 100644 index 0000000..7d51f92 --- /dev/null +++ b/.playwright-cli/console-2026-04-01T12-20-35-038Z.log @@ -0,0 +1,2 @@ +[ 627ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://127.0.0.1:3000/api/gateway/api/auth/session:0 +[ 742ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:3000/login?from=%2Fadmin%2Fexternal-dashboard-management:0 diff --git a/.playwright-cli/page-2026-04-01T11-44-14-541Z.yml b/.playwright-cli/page-2026-04-01T11-44-14-541Z.yml new file mode 100644 index 0000000..69763e7 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T11-44-14-541Z.yml @@ -0,0 +1,7 @@ +- main [ref=e3]: + - generic [ref=e5]: + - img "NXTGAUGE" [ref=e6] + - heading "Admin Access" [level=1] [ref=e7] + - paragraph [ref=e8]: Secure sign-in and runtime control center for NXTGAUGE operations. + - link "Sign In" [ref=e10] [cursor=pointer]: + - /url: /login \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T11-44-48-661Z.yml b/.playwright-cli/page-2026-04-01T11-44-48-661Z.yml new file mode 100644 index 0000000..7f09f83 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T11-44-48-661Z.yml @@ -0,0 +1,45 @@ +- main [ref=e11]: + - generic [ref=e13]: + - generic [ref=e14]: + - img "NXTGAUGE" [ref=e16] + - generic [ref=e17]: + - paragraph [ref=e18]: Internal Admin Portal + - heading "Dashboard Access For Operations Team" [level=1] [ref=e20]: + - text: Dashboard Access + - text: For Operations Team + - paragraph [ref=e21]: Sign in to manage roles, approvals, user operations, and runtime module configuration from one control center. + - generic [ref=e22]: + - generic [ref=e23]: + - paragraph [ref=e24]: Access Control + - paragraph [ref=e25]: Role Management + - generic [ref=e26]: + - paragraph [ref=e27]: Workflows + - paragraph [ref=e28]: Approvals & Verification + - generic [ref=e29]: + - paragraph [ref=e30]: Operations + - paragraph [ref=e31]: Users & Companies + - generic [ref=e32]: + - paragraph [ref=e33]: Runtime + - paragraph [ref=e34]: Module Visibility + - paragraph [ref=e35]: Secured with internal access policies. Authorized personnel only. + - generic [ref=e36]: + - generic [ref=e37]: + - img "NXTGAUGE" [ref=e38] + - generic [ref=e39]: Admin + - generic [ref=e40]: + - heading "Sign In" [level=2] [ref=e41] + - paragraph [ref=e42]: Internal team access only. + - generic [ref=e43]: + - generic [ref=e44]: + - generic [ref=e45]: Email + - textbox "Enter your email" [ref=e46] + - generic [ref=e47]: + - generic [ref=e48]: + - generic [ref=e49]: Password + - button "Forgot?" [ref=e50] + - generic [ref=e51]: + - textbox "Enter your password" [ref=e52] + - button [ref=e53]: + - img [ref=e54] + - button "Sign In" [ref=e57] + - paragraph [ref=e58]: Secure login with internal access policies. \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T11-45-48-717Z.yml b/.playwright-cli/page-2026-04-01T11-45-48-717Z.yml new file mode 100644 index 0000000..3ccf862 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T11-45-48-717Z.yml @@ -0,0 +1,46 @@ +- main [ref=e11]: + - generic [ref=e13]: + - generic [ref=e14]: + - img "NXTGAUGE" [ref=e16] + - generic [ref=e17]: + - paragraph [ref=e18]: Internal Admin Portal + - heading "Dashboard Access For Operations Team" [level=1] [ref=e20]: + - text: Dashboard Access + - text: For Operations Team + - paragraph [ref=e21]: Sign in to manage roles, approvals, user operations, and runtime module configuration from one control center. + - generic [ref=e22]: + - generic [ref=e23]: + - paragraph [ref=e24]: Access Control + - paragraph [ref=e25]: Role Management + - generic [ref=e26]: + - paragraph [ref=e27]: Workflows + - paragraph [ref=e28]: Approvals & Verification + - generic [ref=e29]: + - paragraph [ref=e30]: Operations + - paragraph [ref=e31]: Users & Companies + - generic [ref=e32]: + - paragraph [ref=e33]: Runtime + - paragraph [ref=e34]: Module Visibility + - paragraph [ref=e35]: Secured with internal access policies. Authorized personnel only. + - generic [ref=e36]: + - generic [ref=e37]: + - img "NXTGAUGE" [ref=e38] + - generic [ref=e39]: Admin + - generic [ref=e40]: + - heading "Sign In" [level=2] [ref=e41] + - paragraph [ref=e42]: Internal team access only. + - generic [ref=e43]: + - generic [ref=e44]: + - generic [ref=e45]: Email + - textbox "Enter your email" [ref=e46]: admin@nxtgauge.com + - generic [ref=e47]: + - generic [ref=e48]: + - generic [ref=e49]: Password + - button "Forgot?" [ref=e50] + - generic [ref=e51]: + - textbox "Enter your password" [ref=e52]: admin123 + - button [ref=e53]: + - img [ref=e54] + - paragraph [ref=e59]: Invalid credentials + - button "Sign In" [ref=e57] + - paragraph [ref=e58]: Secure login with internal access policies. \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T11-53-20-588Z.yml b/.playwright-cli/page-2026-04-01T11-53-20-588Z.yml new file mode 100644 index 0000000..12db690 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T11-53-20-588Z.yml @@ -0,0 +1 @@ +- generic [ref=e4]: Checking session… \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-20-35-620Z.yml b/.playwright-cli/page-2026-04-01T12-20-35-620Z.yml new file mode 100644 index 0000000..12db690 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-20-35-620Z.yml @@ -0,0 +1 @@ +- generic [ref=e4]: Checking session… \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-22-06-524Z.yml b/.playwright-cli/page-2026-04-01T12-22-06-524Z.yml new file mode 100644 index 0000000..9b7252a --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-22-06-524Z.yml @@ -0,0 +1,229 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e282]: + - button "All Dashboards" [ref=e283] [cursor=pointer] + - button "Create Dashboard" [ref=e284] [cursor=pointer] + - generic [ref=e285]: + - generic [ref=e286]: + - textbox "Search dashboards..." [ref=e287] + - button "Sort" [ref=e289] [cursor=pointer]: + - img [ref=e290] + - text: Sort + - button "Filters" [ref=e294] [cursor=pointer]: + - img [ref=e295] + - text: Filters + - button "Export" [ref=e297] [cursor=pointer]: + - img [ref=e298] + - text: Export + - table [ref=e302]: + - rowgroup [ref=e303]: + - row "Name Code Role Widgets Status Updated Actions" [ref=e304]: + - columnheader "Name" [ref=e305] + - columnheader "Code" [ref=e306] + - columnheader "Role" [ref=e307] + - columnheader "Widgets" [ref=e308] + - columnheader "Status" [ref=e309] + - columnheader "Updated" [ref=e310] + - columnheader "Actions" [ref=e311] + - rowgroup [ref=e312]: + - row "Loading dashboards..." [ref=e313]: + - cell "Loading dashboards..." [ref=e314] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-23-30-252Z.yml b/.playwright-cli/page-2026-04-01T12-23-30-252Z.yml new file mode 100644 index 0000000..6f9af9f --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-23-30-252Z.yml @@ -0,0 +1,331 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Photographer Profile + - paragraph [ref=e546]: Manage your photography details, pricing, portfolio, and documents. + - generic [ref=e547]: + - button "Basic Info" [ref=e548] [cursor=pointer] + - button "Photography Details" [ref=e549] [cursor=pointer] + - button "Services & Pricing" [ref=e550] [cursor=pointer] + - button "Portfolio" [ref=e551] [cursor=pointer] + - button "Documents" [ref=e552] [cursor=pointer] + - button "Settings" [ref=e553] [cursor=pointer] + - generic [ref=e555]: + - generic [ref=e556]: + - generic [ref=e557]: + - paragraph [ref=e558]: Basic Info + - generic [ref=e559]: 8 fields + - generic [ref=e560]: + - generic [ref=e561]: + - generic [ref=e562]: + - paragraph [ref=e563]: Full Name* + - generic [ref=e565]: Enter full name + - generic [ref=e566]: + - paragraph [ref=e567]: Brand Name* + - generic [ref=e569]: Enter brand name + - generic [ref=e570]: + - paragraph [ref=e571]: Email Address* + - generic [ref=e573]: Enter email address + - generic [ref=e574]: + - paragraph [ref=e575]: Mobile Number* + - generic [ref=e577]: Enter mobile number + - generic [ref=e578]: + - generic [ref=e579]: + - paragraph [ref=e580]: City* + - generic [ref=e582]: Enter city + - generic [ref=e583]: + - paragraph [ref=e584]: State* + - generic [ref=e586]: Enter state + - generic [ref=e587]: + - paragraph [ref=e588]: Country* + - generic [ref=e589]: + - generic [ref=e590]: Select country + - generic [ref=e591]: ▾ + - generic [ref=e592]: + - paragraph [ref=e593]: PIN Code* + - generic [ref=e595]: Enter 6-digit pincode + - generic [ref=e596]: + - button "Cancel" [ref=e597] + - button "Save Changes" [ref=e598] + - generic [ref=e599]: + - paragraph [ref=e600]: Profile Completeness + - paragraph [ref=e601]: 87% + - paragraph [ref=e604]: Active Section + - paragraph [ref=e605]: Basic Info + - paragraph [ref=e606]: Mandatory Fields + - paragraph [ref=e607]: "8" + - paragraph [ref=e608]: Marked with * + - paragraph [ref=e609]: Manage your photography details, pricing, portfolio, and documents. + - generic [ref=e610]: + - button "Save Changes" [ref=e611] + - button "Reset" [ref=e612] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-23-58-331Z.yml b/.playwright-cli/page-2026-04-01T12-23-58-331Z.yml new file mode 100644 index 0000000..7a769b7 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-23-58-331Z.yml @@ -0,0 +1,568 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [active] [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Photographer Portfolio + - paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request. + - generic [ref=e616]: + - button "Overview Summary" [ref=e617] [cursor=pointer]: + - img [ref=e619] + - generic [ref=e624]: + - generic [ref=e625]: Overview + - generic [ref=e626]: Summary + - button "About Profile" [ref=e627] [cursor=pointer]: + - img [ref=e629] + - generic [ref=e633]: + - generic [ref=e634]: About + - generic [ref=e635]: Profile + - button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]: + - img [ref=e638] + - generic [ref=e643]: + - generic [ref=e644]: Services & Pricing + - generic [ref=e645]: Pricing + - button "Portfolio Gallery Work" [ref=e646] [cursor=pointer]: + - img [ref=e648] + - generic [ref=e652]: + - generic [ref=e653]: Portfolio Gallery + - generic [ref=e654]: Work + - button "Experience & Equipment History" [ref=e655] [cursor=pointer]: + - img [ref=e657] + - generic [ref=e661]: + - generic [ref=e662]: Experience & Equipment + - generic [ref=e663]: History + - button "Testimonials Locked" [disabled] [ref=e664]: + - img [ref=e666] + - generic [ref=e668]: + - generic [ref=e669]: Testimonials + - generic [ref=e670]: Locked + - button "Faqs Answers" [ref=e671] [cursor=pointer]: + - img [ref=e673] + - generic [ref=e676]: + - generic [ref=e677]: Faqs + - generic [ref=e678]: Answers + - generic [ref=e679]: + - generic [ref=e680]: + - generic [ref=e682]: + - generic [ref=e683]: + - generic [ref=e684]: + - paragraph [ref=e685]: Alex Morgan + - generic [ref=e686]: Verified + - generic [ref=e687]: Top Response Rate + - generic [ref=e688]: Portfolio UI v2 + - paragraph [ref=e689]: Photographer + - generic [ref=e690]: + - generic [ref=e691]: "Area: Mumbai Region" + - generic [ref=e692]: "Place: Andheri East, Mumbai" + - generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune" + - generic [ref=e694]: + - button "Edit Portfolio" [ref=e695] [cursor=pointer] + - button "Preview Portfolio" [ref=e696] [cursor=pointer] + - generic [ref=e697]: + - generic [ref=e698]: + - paragraph [ref=e699]: Shoots Done + - paragraph [ref=e700]: "248" + - generic [ref=e701]: + - paragraph [ref=e702]: Years Exp + - paragraph [ref=e703]: 7+ + - generic [ref=e704]: + - paragraph [ref=e705]: Verified Pro + - paragraph [ref=e706]: Verified + - generic [ref=e707]: + - paragraph [ref=e708]: Last Delivery + - paragraph [ref=e709]: 2 days + - generic [ref=e710]: + - paragraph [ref=e711]: Will Travel + - paragraph [ref=e712]: "Yes" + - generic [ref=e713]: + - generic [ref=e714]: + - generic [ref=e715]: + - paragraph [ref=e716]: Profile Strength + - paragraph [ref=e717]: 92% + - paragraph [ref=e718]: Complete and visible + - img [ref=e720] + - generic [ref=e723]: + - generic [ref=e724]: + - paragraph [ref=e725]: Win Momentum + - paragraph [ref=e726]: +18% + - paragraph [ref=e727]: Last 30 days + - img [ref=e729] + - generic [ref=e732]: + - generic [ref=e733]: + - paragraph [ref=e734]: Featured Status + - paragraph [ref=e735]: "Yes" + - paragraph [ref=e736]: Recommended in search + - img [ref=e738] + - generic [ref=e741]: + - generic [ref=e742]: + - paragraph [ref=e743]: Avg. Reply Time + - paragraph [ref=e744]: 2 hrs + - paragraph [ref=e745]: Fast responder + - img [ref=e747] + - generic [ref=e749]: + - generic [ref=e750]: + - paragraph [ref=e752]: + - img [ref=e753] + - text: About + - generic [ref=e757]: + - paragraph [ref=e758]: Professional photographer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project. + - generic [ref=e759]: + - generic [ref=e760]: Fast response within 2 hours + - generic [ref=e761]: Clear scope & milestone planning + - generic [ref=e762]: Delivery-first execution + - generic [ref=e763]: + - generic [ref=e764]: + - paragraph [ref=e765]: Years Exp + - paragraph [ref=e766]: 7+ + - generic [ref=e767]: + - paragraph [ref=e768]: Projects + - paragraph [ref=e769]: "248" + - generic [ref=e770]: + - paragraph [ref=e771]: Rating + - paragraph [ref=e772]: "4.9" + - generic [ref=e773]: + - paragraph [ref=e774]: Reviews + - paragraph [ref=e775]: "128" + - generic [ref=e776]: + - paragraph [ref=e778]: + - img [ref=e779] + - text: Specialties + - generic [ref=e784]: + - generic [ref=e785]: Wedding + - generic [ref=e786]: Pre-Wedding + - generic [ref=e787]: Candid + - generic [ref=e788]: Event + - generic [ref=e789]: Portrait + - generic [ref=e790]: Lifestyle + - generic [ref=e791]: + - paragraph [ref=e792]: Languages + - generic [ref=e793]: + - generic [ref=e794]: English + - generic [ref=e795]: Hindi + - generic [ref=e796]: Marathi + - paragraph [ref=e797]: Service Areas + - generic [ref=e798]: + - generic [ref=e799]: Mumbai + - generic [ref=e800]: Pune + - generic [ref=e801]: Thane + - generic [ref=e802]: Nashik + - generic [ref=e803]: + - generic [ref=e804]: + - paragraph [ref=e805]: + - img [ref=e806] + - text: Services & Pricing + - generic [ref=e811]: Transparent Pricing + - generic [ref=e812]: + - generic [ref=e813]: + - paragraph [ref=e814]: Essential + - paragraph [ref=e815]: ₹15,000 + - generic [ref=e816]: + - generic [ref=e817]: + - img [ref=e818] + - text: 4-hour shoot + - generic [ref=e821]: + - img [ref=e822] + - text: 100 edited photos + - generic [ref=e825]: + - img [ref=e826] + - text: Online gallery + - generic [ref=e829]: + - img [ref=e830] + - text: 1 location + - generic [ref=e833]: + - generic [ref=e834]: Most Chosen + - paragraph [ref=e835]: Premium + - paragraph [ref=e836]: ₹28,000 + - generic [ref=e837]: + - generic [ref=e838]: + - img [ref=e839] + - text: 8-hour shoot + - generic [ref=e842]: + - img [ref=e843] + - text: 250 edited photos + - generic [ref=e846]: + - img [ref=e847] + - text: Online gallery + - generic [ref=e850]: + - img [ref=e851] + - text: 2 locations + - generic [ref=e854]: + - img [ref=e855] + - text: Drone shots + - generic [ref=e858]: + - paragraph [ref=e859]: Signature + - paragraph [ref=e860]: ₹50,000 + - generic [ref=e861]: + - generic [ref=e862]: + - img [ref=e863] + - text: Full-day shoot + - generic [ref=e866]: + - img [ref=e867] + - text: 500 edited photos + - generic [ref=e870]: + - img [ref=e871] + - text: USB delivery + - generic [ref=e874]: + - img [ref=e875] + - text: 3 locations + - generic [ref=e878]: + - img [ref=e879] + - text: Drone + Reel + - generic [ref=e882]: + - generic [ref=e883]: + - paragraph [ref=e884]: + - img [ref=e885] + - text: Portfolio Gallery + - button "Upload Images" [ref=e889] [cursor=pointer] + - generic [ref=e890]: + - generic [ref=e891]: + - img [ref=e892] + - generic [ref=e896]: Campaign Shot + - generic [ref=e897]: + - img [ref=e898] + - generic [ref=e902]: Result Highlight + - generic [ref=e903]: + - img [ref=e904] + - generic [ref=e908]: Before/After + - generic [ref=e909]: + - img [ref=e910] + - generic [ref=e914]: Client Output + - generic [ref=e915]: + - img [ref=e916] + - generic [ref=e920]: Style Board + - generic [ref=e921]: + - img [ref=e922] + - generic [ref=e926]: Final Delivery + - generic [ref=e927]: + - img [ref=e928] + - generic [ref=e932]: Portfolio Select + - generic [ref=e933]: + - img [ref=e934] + - generic [ref=e938]: Recent Work + - generic [ref=e939]: + - paragraph [ref=e941]: + - img [ref=e942] + - text: Experience & Equipment + - generic [ref=e946]: + - paragraph [ref=e947]: Camera & Equipment + - generic [ref=e948]: + - generic [ref=e949]: Wedding + - generic [ref=e950]: Pre-Wedding + - generic [ref=e951]: Candid + - generic [ref=e952]: Event + - generic [ref=e953]: Portrait + - generic [ref=e954]: Lifestyle + - generic [ref=e955]: + - generic [ref=e956]: + - paragraph [ref=e958]: "2018" + - paragraph [ref=e959]: Started professional career as Photographer + - generic [ref=e960]: + - paragraph [ref=e962]: "2020" + - paragraph [ref=e963]: Completed 100+ successful projects + - generic [ref=e964]: + - paragraph [ref=e966]: "2022" + - paragraph [ref=e967]: Won regional industry recognition + - generic [ref=e968]: + - paragraph [ref=e970]: "2024" + - paragraph [ref=e971]: Joined Nxtgauge marketplace + - generic [ref=e972]: + - generic [ref=e973]: + - paragraph [ref=e974]: + - img [ref=e975] + - text: Testimonials + - generic [ref=e977]: Locked For New Profiles + - generic [ref=e979]: + - paragraph [ref=e980]: Testimonials will be activated automatically. + - paragraph [ref=e981]: + - text: New professionals unlock testimonials after completing at least + - strong [ref=e982]: 3 jobs + - text: and receiving at least + - strong [ref=e983]: 2 customer feedback entries + - text: . + - paragraph [ref=e984]: "Current progress: 1 jobs completed • 0 feedback received" + - generic [ref=e985]: + - paragraph [ref=e987]: + - img [ref=e988] + - text: Frequently Asked Questions + - generic [ref=e991]: + - button "Do you travel for shoots?" [ref=e992] [cursor=pointer]: + - generic [ref=e993]: Do you travel for shoots? + - img [ref=e994] + - paragraph [ref=e997]: Yes, I cover Pan-India and select international locations. Travel charges apply beyond 50km. + - button "How long before I receive the final photos?" [ref=e999] [cursor=pointer]: + - generic [ref=e1000]: How long before I receive the final photos? + - img [ref=e1001] + - button "What equipment do you use?" [ref=e1004] [cursor=pointer]: + - generic [ref=e1005]: What equipment do you use? + - img [ref=e1006] + - button "Do you provide raw files?" [ref=e1009] [cursor=pointer]: + - generic [ref=e1010]: Do you provide raw files? + - img [ref=e1011] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-24-31-373Z.png b/.playwright-cli/page-2026-04-01T12-24-31-373Z.png new file mode 100644 index 0000000..1dfaac6 Binary files /dev/null and b/.playwright-cli/page-2026-04-01T12-24-31-373Z.png differ diff --git a/.playwright-cli/page-2026-04-01T12-25-59-897Z.yml b/.playwright-cli/page-2026-04-01T12-25-59-897Z.yml new file mode 100644 index 0000000..9b7252a --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-25-59-897Z.yml @@ -0,0 +1,229 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e282]: + - button "All Dashboards" [ref=e283] [cursor=pointer] + - button "Create Dashboard" [ref=e284] [cursor=pointer] + - generic [ref=e285]: + - generic [ref=e286]: + - textbox "Search dashboards..." [ref=e287] + - button "Sort" [ref=e289] [cursor=pointer]: + - img [ref=e290] + - text: Sort + - button "Filters" [ref=e294] [cursor=pointer]: + - img [ref=e295] + - text: Filters + - button "Export" [ref=e297] [cursor=pointer]: + - img [ref=e298] + - text: Export + - table [ref=e302]: + - rowgroup [ref=e303]: + - row "Name Code Role Widgets Status Updated Actions" [ref=e304]: + - columnheader "Name" [ref=e305] + - columnheader "Code" [ref=e306] + - columnheader "Role" [ref=e307] + - columnheader "Widgets" [ref=e308] + - columnheader "Status" [ref=e309] + - columnheader "Updated" [ref=e310] + - columnheader "Actions" [ref=e311] + - rowgroup [ref=e312]: + - row "Loading dashboards..." [ref=e313]: + - cell "Loading dashboards..." [ref=e314] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-26-50-733Z.yml b/.playwright-cli/page-2026-04-01T12-26-50-733Z.yml new file mode 100644 index 0000000..6f9af9f --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-26-50-733Z.yml @@ -0,0 +1,331 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Photographer Profile + - paragraph [ref=e546]: Manage your photography details, pricing, portfolio, and documents. + - generic [ref=e547]: + - button "Basic Info" [ref=e548] [cursor=pointer] + - button "Photography Details" [ref=e549] [cursor=pointer] + - button "Services & Pricing" [ref=e550] [cursor=pointer] + - button "Portfolio" [ref=e551] [cursor=pointer] + - button "Documents" [ref=e552] [cursor=pointer] + - button "Settings" [ref=e553] [cursor=pointer] + - generic [ref=e555]: + - generic [ref=e556]: + - generic [ref=e557]: + - paragraph [ref=e558]: Basic Info + - generic [ref=e559]: 8 fields + - generic [ref=e560]: + - generic [ref=e561]: + - generic [ref=e562]: + - paragraph [ref=e563]: Full Name* + - generic [ref=e565]: Enter full name + - generic [ref=e566]: + - paragraph [ref=e567]: Brand Name* + - generic [ref=e569]: Enter brand name + - generic [ref=e570]: + - paragraph [ref=e571]: Email Address* + - generic [ref=e573]: Enter email address + - generic [ref=e574]: + - paragraph [ref=e575]: Mobile Number* + - generic [ref=e577]: Enter mobile number + - generic [ref=e578]: + - generic [ref=e579]: + - paragraph [ref=e580]: City* + - generic [ref=e582]: Enter city + - generic [ref=e583]: + - paragraph [ref=e584]: State* + - generic [ref=e586]: Enter state + - generic [ref=e587]: + - paragraph [ref=e588]: Country* + - generic [ref=e589]: + - generic [ref=e590]: Select country + - generic [ref=e591]: ▾ + - generic [ref=e592]: + - paragraph [ref=e593]: PIN Code* + - generic [ref=e595]: Enter 6-digit pincode + - generic [ref=e596]: + - button "Cancel" [ref=e597] + - button "Save Changes" [ref=e598] + - generic [ref=e599]: + - paragraph [ref=e600]: Profile Completeness + - paragraph [ref=e601]: 87% + - paragraph [ref=e604]: Active Section + - paragraph [ref=e605]: Basic Info + - paragraph [ref=e606]: Mandatory Fields + - paragraph [ref=e607]: "8" + - paragraph [ref=e608]: Marked with * + - paragraph [ref=e609]: Manage your photography details, pricing, portfolio, and documents. + - generic [ref=e610]: + - button "Save Changes" [ref=e611] + - button "Reset" [ref=e612] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-27-15-103Z.yml b/.playwright-cli/page-2026-04-01T12-27-15-103Z.yml new file mode 100644 index 0000000..7a769b7 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-27-15-103Z.yml @@ -0,0 +1,568 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [active] [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Photographer Portfolio + - paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request. + - generic [ref=e616]: + - button "Overview Summary" [ref=e617] [cursor=pointer]: + - img [ref=e619] + - generic [ref=e624]: + - generic [ref=e625]: Overview + - generic [ref=e626]: Summary + - button "About Profile" [ref=e627] [cursor=pointer]: + - img [ref=e629] + - generic [ref=e633]: + - generic [ref=e634]: About + - generic [ref=e635]: Profile + - button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]: + - img [ref=e638] + - generic [ref=e643]: + - generic [ref=e644]: Services & Pricing + - generic [ref=e645]: Pricing + - button "Portfolio Gallery Work" [ref=e646] [cursor=pointer]: + - img [ref=e648] + - generic [ref=e652]: + - generic [ref=e653]: Portfolio Gallery + - generic [ref=e654]: Work + - button "Experience & Equipment History" [ref=e655] [cursor=pointer]: + - img [ref=e657] + - generic [ref=e661]: + - generic [ref=e662]: Experience & Equipment + - generic [ref=e663]: History + - button "Testimonials Locked" [disabled] [ref=e664]: + - img [ref=e666] + - generic [ref=e668]: + - generic [ref=e669]: Testimonials + - generic [ref=e670]: Locked + - button "Faqs Answers" [ref=e671] [cursor=pointer]: + - img [ref=e673] + - generic [ref=e676]: + - generic [ref=e677]: Faqs + - generic [ref=e678]: Answers + - generic [ref=e679]: + - generic [ref=e680]: + - generic [ref=e682]: + - generic [ref=e683]: + - generic [ref=e684]: + - paragraph [ref=e685]: Alex Morgan + - generic [ref=e686]: Verified + - generic [ref=e687]: Top Response Rate + - generic [ref=e688]: Portfolio UI v2 + - paragraph [ref=e689]: Photographer + - generic [ref=e690]: + - generic [ref=e691]: "Area: Mumbai Region" + - generic [ref=e692]: "Place: Andheri East, Mumbai" + - generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune" + - generic [ref=e694]: + - button "Edit Portfolio" [ref=e695] [cursor=pointer] + - button "Preview Portfolio" [ref=e696] [cursor=pointer] + - generic [ref=e697]: + - generic [ref=e698]: + - paragraph [ref=e699]: Shoots Done + - paragraph [ref=e700]: "248" + - generic [ref=e701]: + - paragraph [ref=e702]: Years Exp + - paragraph [ref=e703]: 7+ + - generic [ref=e704]: + - paragraph [ref=e705]: Verified Pro + - paragraph [ref=e706]: Verified + - generic [ref=e707]: + - paragraph [ref=e708]: Last Delivery + - paragraph [ref=e709]: 2 days + - generic [ref=e710]: + - paragraph [ref=e711]: Will Travel + - paragraph [ref=e712]: "Yes" + - generic [ref=e713]: + - generic [ref=e714]: + - generic [ref=e715]: + - paragraph [ref=e716]: Profile Strength + - paragraph [ref=e717]: 92% + - paragraph [ref=e718]: Complete and visible + - img [ref=e720] + - generic [ref=e723]: + - generic [ref=e724]: + - paragraph [ref=e725]: Win Momentum + - paragraph [ref=e726]: +18% + - paragraph [ref=e727]: Last 30 days + - img [ref=e729] + - generic [ref=e732]: + - generic [ref=e733]: + - paragraph [ref=e734]: Featured Status + - paragraph [ref=e735]: "Yes" + - paragraph [ref=e736]: Recommended in search + - img [ref=e738] + - generic [ref=e741]: + - generic [ref=e742]: + - paragraph [ref=e743]: Avg. Reply Time + - paragraph [ref=e744]: 2 hrs + - paragraph [ref=e745]: Fast responder + - img [ref=e747] + - generic [ref=e749]: + - generic [ref=e750]: + - paragraph [ref=e752]: + - img [ref=e753] + - text: About + - generic [ref=e757]: + - paragraph [ref=e758]: Professional photographer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project. + - generic [ref=e759]: + - generic [ref=e760]: Fast response within 2 hours + - generic [ref=e761]: Clear scope & milestone planning + - generic [ref=e762]: Delivery-first execution + - generic [ref=e763]: + - generic [ref=e764]: + - paragraph [ref=e765]: Years Exp + - paragraph [ref=e766]: 7+ + - generic [ref=e767]: + - paragraph [ref=e768]: Projects + - paragraph [ref=e769]: "248" + - generic [ref=e770]: + - paragraph [ref=e771]: Rating + - paragraph [ref=e772]: "4.9" + - generic [ref=e773]: + - paragraph [ref=e774]: Reviews + - paragraph [ref=e775]: "128" + - generic [ref=e776]: + - paragraph [ref=e778]: + - img [ref=e779] + - text: Specialties + - generic [ref=e784]: + - generic [ref=e785]: Wedding + - generic [ref=e786]: Pre-Wedding + - generic [ref=e787]: Candid + - generic [ref=e788]: Event + - generic [ref=e789]: Portrait + - generic [ref=e790]: Lifestyle + - generic [ref=e791]: + - paragraph [ref=e792]: Languages + - generic [ref=e793]: + - generic [ref=e794]: English + - generic [ref=e795]: Hindi + - generic [ref=e796]: Marathi + - paragraph [ref=e797]: Service Areas + - generic [ref=e798]: + - generic [ref=e799]: Mumbai + - generic [ref=e800]: Pune + - generic [ref=e801]: Thane + - generic [ref=e802]: Nashik + - generic [ref=e803]: + - generic [ref=e804]: + - paragraph [ref=e805]: + - img [ref=e806] + - text: Services & Pricing + - generic [ref=e811]: Transparent Pricing + - generic [ref=e812]: + - generic [ref=e813]: + - paragraph [ref=e814]: Essential + - paragraph [ref=e815]: ₹15,000 + - generic [ref=e816]: + - generic [ref=e817]: + - img [ref=e818] + - text: 4-hour shoot + - generic [ref=e821]: + - img [ref=e822] + - text: 100 edited photos + - generic [ref=e825]: + - img [ref=e826] + - text: Online gallery + - generic [ref=e829]: + - img [ref=e830] + - text: 1 location + - generic [ref=e833]: + - generic [ref=e834]: Most Chosen + - paragraph [ref=e835]: Premium + - paragraph [ref=e836]: ₹28,000 + - generic [ref=e837]: + - generic [ref=e838]: + - img [ref=e839] + - text: 8-hour shoot + - generic [ref=e842]: + - img [ref=e843] + - text: 250 edited photos + - generic [ref=e846]: + - img [ref=e847] + - text: Online gallery + - generic [ref=e850]: + - img [ref=e851] + - text: 2 locations + - generic [ref=e854]: + - img [ref=e855] + - text: Drone shots + - generic [ref=e858]: + - paragraph [ref=e859]: Signature + - paragraph [ref=e860]: ₹50,000 + - generic [ref=e861]: + - generic [ref=e862]: + - img [ref=e863] + - text: Full-day shoot + - generic [ref=e866]: + - img [ref=e867] + - text: 500 edited photos + - generic [ref=e870]: + - img [ref=e871] + - text: USB delivery + - generic [ref=e874]: + - img [ref=e875] + - text: 3 locations + - generic [ref=e878]: + - img [ref=e879] + - text: Drone + Reel + - generic [ref=e882]: + - generic [ref=e883]: + - paragraph [ref=e884]: + - img [ref=e885] + - text: Portfolio Gallery + - button "Upload Images" [ref=e889] [cursor=pointer] + - generic [ref=e890]: + - generic [ref=e891]: + - img [ref=e892] + - generic [ref=e896]: Campaign Shot + - generic [ref=e897]: + - img [ref=e898] + - generic [ref=e902]: Result Highlight + - generic [ref=e903]: + - img [ref=e904] + - generic [ref=e908]: Before/After + - generic [ref=e909]: + - img [ref=e910] + - generic [ref=e914]: Client Output + - generic [ref=e915]: + - img [ref=e916] + - generic [ref=e920]: Style Board + - generic [ref=e921]: + - img [ref=e922] + - generic [ref=e926]: Final Delivery + - generic [ref=e927]: + - img [ref=e928] + - generic [ref=e932]: Portfolio Select + - generic [ref=e933]: + - img [ref=e934] + - generic [ref=e938]: Recent Work + - generic [ref=e939]: + - paragraph [ref=e941]: + - img [ref=e942] + - text: Experience & Equipment + - generic [ref=e946]: + - paragraph [ref=e947]: Camera & Equipment + - generic [ref=e948]: + - generic [ref=e949]: Wedding + - generic [ref=e950]: Pre-Wedding + - generic [ref=e951]: Candid + - generic [ref=e952]: Event + - generic [ref=e953]: Portrait + - generic [ref=e954]: Lifestyle + - generic [ref=e955]: + - generic [ref=e956]: + - paragraph [ref=e958]: "2018" + - paragraph [ref=e959]: Started professional career as Photographer + - generic [ref=e960]: + - paragraph [ref=e962]: "2020" + - paragraph [ref=e963]: Completed 100+ successful projects + - generic [ref=e964]: + - paragraph [ref=e966]: "2022" + - paragraph [ref=e967]: Won regional industry recognition + - generic [ref=e968]: + - paragraph [ref=e970]: "2024" + - paragraph [ref=e971]: Joined Nxtgauge marketplace + - generic [ref=e972]: + - generic [ref=e973]: + - paragraph [ref=e974]: + - img [ref=e975] + - text: Testimonials + - generic [ref=e977]: Locked For New Profiles + - generic [ref=e979]: + - paragraph [ref=e980]: Testimonials will be activated automatically. + - paragraph [ref=e981]: + - text: New professionals unlock testimonials after completing at least + - strong [ref=e982]: 3 jobs + - text: and receiving at least + - strong [ref=e983]: 2 customer feedback entries + - text: . + - paragraph [ref=e984]: "Current progress: 1 jobs completed • 0 feedback received" + - generic [ref=e985]: + - paragraph [ref=e987]: + - img [ref=e988] + - text: Frequently Asked Questions + - generic [ref=e991]: + - button "Do you travel for shoots?" [ref=e992] [cursor=pointer]: + - generic [ref=e993]: Do you travel for shoots? + - img [ref=e994] + - paragraph [ref=e997]: Yes, I cover Pan-India and select international locations. Travel charges apply beyond 50km. + - button "How long before I receive the final photos?" [ref=e999] [cursor=pointer]: + - generic [ref=e1000]: How long before I receive the final photos? + - img [ref=e1001] + - button "What equipment do you use?" [ref=e1004] [cursor=pointer]: + - generic [ref=e1005]: What equipment do you use? + - img [ref=e1006] + - button "Do you provide raw files?" [ref=e1009] [cursor=pointer]: + - generic [ref=e1010]: Do you provide raw files? + - img [ref=e1011] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-28-29-696Z.png b/.playwright-cli/page-2026-04-01T12-28-29-696Z.png new file mode 100644 index 0000000..2e528f2 Binary files /dev/null and b/.playwright-cli/page-2026-04-01T12-28-29-696Z.png differ diff --git a/.playwright-cli/page-2026-04-01T12-29-33-802Z.yml b/.playwright-cli/page-2026-04-01T12-29-33-802Z.yml new file mode 100644 index 0000000..9b7252a --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-29-33-802Z.yml @@ -0,0 +1,229 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e282]: + - button "All Dashboards" [ref=e283] [cursor=pointer] + - button "Create Dashboard" [ref=e284] [cursor=pointer] + - generic [ref=e285]: + - generic [ref=e286]: + - textbox "Search dashboards..." [ref=e287] + - button "Sort" [ref=e289] [cursor=pointer]: + - img [ref=e290] + - text: Sort + - button "Filters" [ref=e294] [cursor=pointer]: + - img [ref=e295] + - text: Filters + - button "Export" [ref=e297] [cursor=pointer]: + - img [ref=e298] + - text: Export + - table [ref=e302]: + - rowgroup [ref=e303]: + - row "Name Code Role Widgets Status Updated Actions" [ref=e304]: + - columnheader "Name" [ref=e305] + - columnheader "Code" [ref=e306] + - columnheader "Role" [ref=e307] + - columnheader "Widgets" [ref=e308] + - columnheader "Status" [ref=e309] + - columnheader "Updated" [ref=e310] + - columnheader "Actions" [ref=e311] + - rowgroup [ref=e312]: + - row "Loading dashboards..." [ref=e313]: + - cell "Loading dashboards..." [ref=e314] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-29-57-632Z.png b/.playwright-cli/page-2026-04-01T12-29-57-632Z.png new file mode 100644 index 0000000..560d0ec Binary files /dev/null and b/.playwright-cli/page-2026-04-01T12-29-57-632Z.png differ diff --git a/.playwright-cli/page-2026-04-01T12-35-12-131Z.yml b/.playwright-cli/page-2026-04-01T12-35-12-131Z.yml new file mode 100644 index 0000000..d3dec4f --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-35-12-131Z.yml @@ -0,0 +1,331 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Graphic Designer Profile + - paragraph [ref=e546]: Manage design profile, service pricing, portfolio assets, and documents. + - generic [ref=e547]: + - button "Basic Info" [ref=e548] [cursor=pointer] + - button "Design Profile" [ref=e549] [cursor=pointer] + - button "Services & Pricing" [ref=e550] [cursor=pointer] + - button "Portfolio" [ref=e551] [cursor=pointer] + - button "Documents" [ref=e552] [cursor=pointer] + - button "Settings" [ref=e553] [cursor=pointer] + - generic [ref=e555]: + - generic [ref=e556]: + - generic [ref=e557]: + - paragraph [ref=e558]: Basic Info + - generic [ref=e559]: 8 fields + - generic [ref=e560]: + - generic [ref=e561]: + - generic [ref=e562]: + - paragraph [ref=e563]: Full Name* + - generic [ref=e565]: Enter full name + - generic [ref=e566]: + - paragraph [ref=e567]: Brand Name* + - generic [ref=e569]: Enter brand name + - generic [ref=e570]: + - paragraph [ref=e571]: Email Address* + - generic [ref=e573]: Enter email address + - generic [ref=e574]: + - paragraph [ref=e575]: Mobile Number* + - generic [ref=e577]: Enter mobile number + - generic [ref=e578]: + - generic [ref=e579]: + - paragraph [ref=e580]: City* + - generic [ref=e582]: Enter city + - generic [ref=e583]: + - paragraph [ref=e584]: State* + - generic [ref=e586]: Enter state + - generic [ref=e587]: + - paragraph [ref=e588]: Country* + - generic [ref=e589]: + - generic [ref=e590]: Select country + - generic [ref=e591]: ▾ + - generic [ref=e592]: + - paragraph [ref=e593]: PIN Code* + - generic [ref=e595]: Enter 6-digit pincode + - generic [ref=e596]: + - button "Cancel" [ref=e597] + - button "Save Changes" [ref=e598] + - generic [ref=e599]: + - paragraph [ref=e600]: Profile Completeness + - paragraph [ref=e601]: 87% + - paragraph [ref=e604]: Active Section + - paragraph [ref=e605]: Basic Info + - paragraph [ref=e606]: Mandatory Fields + - paragraph [ref=e607]: "8" + - paragraph [ref=e608]: Marked with * + - paragraph [ref=e609]: Manage design profile, service pricing, portfolio assets, and documents. + - generic [ref=e610]: + - button "Save Changes" [ref=e611] + - button "Reset" [ref=e612] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-35-36-664Z.yml b/.playwright-cli/page-2026-04-01T12-35-36-664Z.yml new file mode 100644 index 0000000..c2154f1 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-35-36-664Z.yml @@ -0,0 +1,562 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [active] [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Graphic Designer Portfolio + - paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request. + - generic [ref=e616]: + - button "Overview Summary" [ref=e617] [cursor=pointer]: + - img [ref=e619] + - generic [ref=e624]: + - generic [ref=e625]: Overview + - generic [ref=e626]: Summary + - button "About Profile" [ref=e627] [cursor=pointer]: + - img [ref=e629] + - generic [ref=e633]: + - generic [ref=e634]: About + - generic [ref=e635]: Profile + - button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]: + - img [ref=e638] + - generic [ref=e643]: + - generic [ref=e644]: Services & Pricing + - generic [ref=e645]: Pricing + - button "Portfolio Work" [ref=e646] [cursor=pointer]: + - img [ref=e648] + - generic [ref=e652]: + - generic [ref=e653]: Portfolio + - generic [ref=e654]: Work + - button "Experience & Tools History" [ref=e655] [cursor=pointer]: + - img [ref=e657] + - generic [ref=e661]: + - generic [ref=e662]: Experience & Tools + - generic [ref=e663]: History + - button "Testimonials Locked" [disabled] [ref=e664]: + - img [ref=e666] + - generic [ref=e668]: + - generic [ref=e669]: Testimonials + - generic [ref=e670]: Locked + - button "Faqs Answers" [ref=e671] [cursor=pointer]: + - img [ref=e673] + - generic [ref=e676]: + - generic [ref=e677]: Faqs + - generic [ref=e678]: Answers + - generic [ref=e679]: + - generic [ref=e680]: + - generic [ref=e682]: + - generic [ref=e683]: + - generic [ref=e684]: + - paragraph [ref=e685]: Alex Morgan + - generic [ref=e686]: Verified + - generic [ref=e687]: Top Response Rate + - generic [ref=e688]: Portfolio UI v2 + - paragraph [ref=e689]: Graphic Designer + - generic [ref=e690]: + - generic [ref=e691]: "Area: Mumbai Region" + - generic [ref=e692]: "Place: Andheri East, Mumbai" + - generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune" + - generic [ref=e694]: + - button "Edit Portfolio" [ref=e695] [cursor=pointer] + - button "Preview Portfolio" [ref=e696] [cursor=pointer] + - generic [ref=e697]: + - generic [ref=e698]: + - paragraph [ref=e699]: Projects Done + - paragraph [ref=e700]: "248" + - generic [ref=e701]: + - paragraph [ref=e702]: Years Exp + - paragraph [ref=e703]: 7+ + - generic [ref=e704]: + - paragraph [ref=e705]: Verified Pro + - paragraph [ref=e706]: Verified + - generic [ref=e707]: + - paragraph [ref=e708]: Last Delivery + - paragraph [ref=e709]: 2 days + - generic [ref=e710]: + - paragraph [ref=e711]: Remote OK + - paragraph [ref=e712]: "Yes" + - generic [ref=e713]: + - generic [ref=e714]: + - generic [ref=e715]: + - paragraph [ref=e716]: Profile Strength + - paragraph [ref=e717]: 92% + - paragraph [ref=e718]: Complete and visible + - img [ref=e720] + - generic [ref=e723]: + - generic [ref=e724]: + - paragraph [ref=e725]: Win Momentum + - paragraph [ref=e726]: +18% + - paragraph [ref=e727]: Last 30 days + - img [ref=e729] + - generic [ref=e732]: + - generic [ref=e733]: + - paragraph [ref=e734]: Featured Status + - paragraph [ref=e735]: "Yes" + - paragraph [ref=e736]: Recommended in search + - img [ref=e738] + - generic [ref=e741]: + - generic [ref=e742]: + - paragraph [ref=e743]: Avg. Reply Time + - paragraph [ref=e744]: 2 hrs + - paragraph [ref=e745]: Fast responder + - img [ref=e747] + - generic [ref=e749]: + - generic [ref=e750]: + - paragraph [ref=e752]: + - img [ref=e753] + - text: About + - generic [ref=e757]: + - paragraph [ref=e758]: Professional graphic designer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project. + - generic [ref=e759]: + - generic [ref=e760]: Fast response within 2 hours + - generic [ref=e761]: Clear scope & milestone planning + - generic [ref=e762]: Delivery-first execution + - generic [ref=e763]: + - generic [ref=e764]: + - paragraph [ref=e765]: Years Exp + - paragraph [ref=e766]: 7+ + - generic [ref=e767]: + - paragraph [ref=e768]: Projects + - paragraph [ref=e769]: "248" + - generic [ref=e770]: + - paragraph [ref=e771]: Rating + - paragraph [ref=e772]: "4.9" + - generic [ref=e773]: + - paragraph [ref=e774]: Reviews + - paragraph [ref=e775]: "128" + - generic [ref=e776]: + - paragraph [ref=e778]: + - img [ref=e779] + - text: Specialties + - generic [ref=e784]: + - generic [ref=e785]: Brand Identity + - generic [ref=e786]: UI/UX Design + - generic [ref=e787]: Print + - generic [ref=e788]: Social Media + - generic [ref=e789]: Motion + - generic [ref=e790]: Packaging + - generic [ref=e791]: + - paragraph [ref=e792]: Languages + - generic [ref=e793]: + - generic [ref=e794]: English + - generic [ref=e795]: Hindi + - generic [ref=e796]: Marathi + - paragraph [ref=e797]: Service Areas + - generic [ref=e798]: + - generic [ref=e799]: Mumbai + - generic [ref=e800]: Pune + - generic [ref=e801]: Thane + - generic [ref=e802]: Nashik + - generic [ref=e803]: + - generic [ref=e804]: + - paragraph [ref=e805]: + - img [ref=e806] + - text: Services & Pricing + - generic [ref=e811]: Transparent Pricing + - generic [ref=e812]: + - generic [ref=e813]: + - paragraph [ref=e814]: Logo Pack + - paragraph [ref=e815]: ₹8,000 + - generic [ref=e816]: + - generic [ref=e817]: + - img [ref=e818] + - text: 3 logo concepts + - generic [ref=e821]: + - img [ref=e822] + - text: 2 revisions + - generic [ref=e825]: + - img [ref=e826] + - text: All file formats + - generic [ref=e829]: + - img [ref=e830] + - text: Usage rights + - generic [ref=e833]: + - generic [ref=e834]: Most Chosen + - paragraph [ref=e835]: Brand Kit + - paragraph [ref=e836]: ₹22,000 + - generic [ref=e837]: + - generic [ref=e838]: + - img [ref=e839] + - text: Logo + palette + - generic [ref=e842]: + - img [ref=e843] + - text: Typography + - generic [ref=e846]: + - img [ref=e847] + - text: Brand guidelines + - generic [ref=e850]: + - img [ref=e851] + - text: Social templates + - generic [ref=e854]: + - paragraph [ref=e855]: Full Identity + - paragraph [ref=e856]: ₹45,000 + - generic [ref=e857]: + - generic [ref=e858]: + - img [ref=e859] + - text: Complete brand + - generic [ref=e862]: + - img [ref=e863] + - text: UI kit + - generic [ref=e866]: + - img [ref=e867] + - text: Print collateral + - generic [ref=e870]: + - img [ref=e871] + - text: Motion logo + - generic [ref=e874]: + - generic [ref=e875]: + - paragraph [ref=e876]: + - img [ref=e877] + - text: Portfolio + - button "Upload Images" [ref=e881] [cursor=pointer] + - generic [ref=e882]: + - generic [ref=e883]: + - img [ref=e884] + - generic [ref=e888]: Campaign Shot + - generic [ref=e889]: + - img [ref=e890] + - generic [ref=e894]: Result Highlight + - generic [ref=e895]: + - img [ref=e896] + - generic [ref=e900]: Before/After + - generic [ref=e901]: + - img [ref=e902] + - generic [ref=e906]: Client Output + - generic [ref=e907]: + - img [ref=e908] + - generic [ref=e912]: Style Board + - generic [ref=e913]: + - img [ref=e914] + - generic [ref=e918]: Final Delivery + - generic [ref=e919]: + - img [ref=e920] + - generic [ref=e924]: Portfolio Select + - generic [ref=e925]: + - img [ref=e926] + - generic [ref=e930]: Recent Work + - generic [ref=e931]: + - paragraph [ref=e933]: + - img [ref=e934] + - text: Experience & Tools + - generic [ref=e938]: + - paragraph [ref=e939]: Design Tools + - generic [ref=e940]: + - generic [ref=e941]: Brand Identity + - generic [ref=e942]: UI/UX Design + - generic [ref=e943]: Print + - generic [ref=e944]: Social Media + - generic [ref=e945]: Motion + - generic [ref=e946]: Packaging + - generic [ref=e947]: + - generic [ref=e948]: + - paragraph [ref=e950]: "2018" + - paragraph [ref=e951]: Started professional career as Graphic Designer + - generic [ref=e952]: + - paragraph [ref=e954]: "2020" + - paragraph [ref=e955]: Completed 100+ successful projects + - generic [ref=e956]: + - paragraph [ref=e958]: "2022" + - paragraph [ref=e959]: Won regional industry recognition + - generic [ref=e960]: + - paragraph [ref=e962]: "2024" + - paragraph [ref=e963]: Joined Nxtgauge marketplace + - generic [ref=e964]: + - generic [ref=e965]: + - paragraph [ref=e966]: + - img [ref=e967] + - text: Testimonials + - generic [ref=e969]: Locked For New Profiles + - generic [ref=e971]: + - paragraph [ref=e972]: Testimonials will be activated automatically. + - paragraph [ref=e973]: + - text: New professionals unlock testimonials after completing at least + - strong [ref=e974]: 3 jobs + - text: and receiving at least + - strong [ref=e975]: 2 customer feedback entries + - text: . + - paragraph [ref=e976]: "Current progress: 1 jobs completed • 0 feedback received" + - generic [ref=e977]: + - paragraph [ref=e979]: + - img [ref=e980] + - text: Frequently Asked Questions + - generic [ref=e983]: + - button "What file formats do you deliver?" [ref=e984] [cursor=pointer]: + - generic [ref=e985]: What file formats do you deliver? + - img [ref=e986] + - paragraph [ref=e989]: Final files in AI, PDF, PNG, SVG, and any format required. Print-ready and web-optimised variants included. + - button "Do you create brand guidelines?" [ref=e991] [cursor=pointer]: + - generic [ref=e992]: Do you create brand guidelines? + - img [ref=e993] + - button "How many concepts do you provide initially?" [ref=e996] [cursor=pointer]: + - generic [ref=e997]: How many concepts do you provide initially? + - img [ref=e998] + - button "Do you handle printing coordination?" [ref=e1001] [cursor=pointer]: + - generic [ref=e1002]: Do you handle printing coordination? + - img [ref=e1003] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-35-59-303Z.png b/.playwright-cli/page-2026-04-01T12-35-59-303Z.png new file mode 100644 index 0000000..bcd6772 Binary files /dev/null and b/.playwright-cli/page-2026-04-01T12-35-59-303Z.png differ diff --git a/.playwright-cli/page-2026-04-01T12-56-58-586Z.yml b/.playwright-cli/page-2026-04-01T12-56-58-586Z.yml new file mode 100644 index 0000000..9b7252a --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-56-58-586Z.yml @@ -0,0 +1,229 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e282]: + - button "All Dashboards" [ref=e283] [cursor=pointer] + - button "Create Dashboard" [ref=e284] [cursor=pointer] + - generic [ref=e285]: + - generic [ref=e286]: + - textbox "Search dashboards..." [ref=e287] + - button "Sort" [ref=e289] [cursor=pointer]: + - img [ref=e290] + - text: Sort + - button "Filters" [ref=e294] [cursor=pointer]: + - img [ref=e295] + - text: Filters + - button "Export" [ref=e297] [cursor=pointer]: + - img [ref=e298] + - text: Export + - table [ref=e302]: + - rowgroup [ref=e303]: + - row "Name Code Role Widgets Status Updated Actions" [ref=e304]: + - columnheader "Name" [ref=e305] + - columnheader "Code" [ref=e306] + - columnheader "Role" [ref=e307] + - columnheader "Widgets" [ref=e308] + - columnheader "Status" [ref=e309] + - columnheader "Updated" [ref=e310] + - columnheader "Actions" [ref=e311] + - rowgroup [ref=e312]: + - row "Loading dashboards..." [ref=e313]: + - cell "Loading dashboards..." [ref=e314] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T12-58-12-110Z.yml b/.playwright-cli/page-2026-04-01T12-58-12-110Z.yml new file mode 100644 index 0000000..d3dec4f --- /dev/null +++ b/.playwright-cli/page-2026-04-01T12-58-12-110Z.yml @@ -0,0 +1,331 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Graphic Designer Profile + - paragraph [ref=e546]: Manage design profile, service pricing, portfolio assets, and documents. + - generic [ref=e547]: + - button "Basic Info" [ref=e548] [cursor=pointer] + - button "Design Profile" [ref=e549] [cursor=pointer] + - button "Services & Pricing" [ref=e550] [cursor=pointer] + - button "Portfolio" [ref=e551] [cursor=pointer] + - button "Documents" [ref=e552] [cursor=pointer] + - button "Settings" [ref=e553] [cursor=pointer] + - generic [ref=e555]: + - generic [ref=e556]: + - generic [ref=e557]: + - paragraph [ref=e558]: Basic Info + - generic [ref=e559]: 8 fields + - generic [ref=e560]: + - generic [ref=e561]: + - generic [ref=e562]: + - paragraph [ref=e563]: Full Name* + - generic [ref=e565]: Enter full name + - generic [ref=e566]: + - paragraph [ref=e567]: Brand Name* + - generic [ref=e569]: Enter brand name + - generic [ref=e570]: + - paragraph [ref=e571]: Email Address* + - generic [ref=e573]: Enter email address + - generic [ref=e574]: + - paragraph [ref=e575]: Mobile Number* + - generic [ref=e577]: Enter mobile number + - generic [ref=e578]: + - generic [ref=e579]: + - paragraph [ref=e580]: City* + - generic [ref=e582]: Enter city + - generic [ref=e583]: + - paragraph [ref=e584]: State* + - generic [ref=e586]: Enter state + - generic [ref=e587]: + - paragraph [ref=e588]: Country* + - generic [ref=e589]: + - generic [ref=e590]: Select country + - generic [ref=e591]: ▾ + - generic [ref=e592]: + - paragraph [ref=e593]: PIN Code* + - generic [ref=e595]: Enter 6-digit pincode + - generic [ref=e596]: + - button "Cancel" [ref=e597] + - button "Save Changes" [ref=e598] + - generic [ref=e599]: + - paragraph [ref=e600]: Profile Completeness + - paragraph [ref=e601]: 87% + - paragraph [ref=e604]: Active Section + - paragraph [ref=e605]: Basic Info + - paragraph [ref=e606]: Mandatory Fields + - paragraph [ref=e607]: "8" + - paragraph [ref=e608]: Marked with * + - paragraph [ref=e609]: Manage design profile, service pricing, portfolio assets, and documents. + - generic [ref=e610]: + - button "Save Changes" [ref=e611] + - button "Reset" [ref=e612] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T13-01-38-884Z.yml b/.playwright-cli/page-2026-04-01T13-01-38-884Z.yml new file mode 100644 index 0000000..c2154f1 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T13-01-38-884Z.yml @@ -0,0 +1,562 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [active] [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Graphic Designer Portfolio + - paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request. + - generic [ref=e616]: + - button "Overview Summary" [ref=e617] [cursor=pointer]: + - img [ref=e619] + - generic [ref=e624]: + - generic [ref=e625]: Overview + - generic [ref=e626]: Summary + - button "About Profile" [ref=e627] [cursor=pointer]: + - img [ref=e629] + - generic [ref=e633]: + - generic [ref=e634]: About + - generic [ref=e635]: Profile + - button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]: + - img [ref=e638] + - generic [ref=e643]: + - generic [ref=e644]: Services & Pricing + - generic [ref=e645]: Pricing + - button "Portfolio Work" [ref=e646] [cursor=pointer]: + - img [ref=e648] + - generic [ref=e652]: + - generic [ref=e653]: Portfolio + - generic [ref=e654]: Work + - button "Experience & Tools History" [ref=e655] [cursor=pointer]: + - img [ref=e657] + - generic [ref=e661]: + - generic [ref=e662]: Experience & Tools + - generic [ref=e663]: History + - button "Testimonials Locked" [disabled] [ref=e664]: + - img [ref=e666] + - generic [ref=e668]: + - generic [ref=e669]: Testimonials + - generic [ref=e670]: Locked + - button "Faqs Answers" [ref=e671] [cursor=pointer]: + - img [ref=e673] + - generic [ref=e676]: + - generic [ref=e677]: Faqs + - generic [ref=e678]: Answers + - generic [ref=e679]: + - generic [ref=e680]: + - generic [ref=e682]: + - generic [ref=e683]: + - generic [ref=e684]: + - paragraph [ref=e685]: Alex Morgan + - generic [ref=e686]: Verified + - generic [ref=e687]: Top Response Rate + - generic [ref=e688]: Portfolio UI v2 + - paragraph [ref=e689]: Graphic Designer + - generic [ref=e690]: + - generic [ref=e691]: "Area: Mumbai Region" + - generic [ref=e692]: "Place: Andheri East, Mumbai" + - generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune" + - generic [ref=e694]: + - button "Edit Portfolio" [ref=e695] [cursor=pointer] + - button "Preview Portfolio" [ref=e696] [cursor=pointer] + - generic [ref=e697]: + - generic [ref=e698]: + - paragraph [ref=e699]: Projects Done + - paragraph [ref=e700]: "248" + - generic [ref=e701]: + - paragraph [ref=e702]: Years Exp + - paragraph [ref=e703]: 7+ + - generic [ref=e704]: + - paragraph [ref=e705]: Verified Pro + - paragraph [ref=e706]: Verified + - generic [ref=e707]: + - paragraph [ref=e708]: Last Delivery + - paragraph [ref=e709]: 2 days + - generic [ref=e710]: + - paragraph [ref=e711]: Remote OK + - paragraph [ref=e712]: "Yes" + - generic [ref=e713]: + - generic [ref=e714]: + - generic [ref=e715]: + - paragraph [ref=e716]: Profile Strength + - paragraph [ref=e717]: 92% + - paragraph [ref=e718]: Complete and visible + - img [ref=e720] + - generic [ref=e723]: + - generic [ref=e724]: + - paragraph [ref=e725]: Win Momentum + - paragraph [ref=e726]: +18% + - paragraph [ref=e727]: Last 30 days + - img [ref=e729] + - generic [ref=e732]: + - generic [ref=e733]: + - paragraph [ref=e734]: Featured Status + - paragraph [ref=e735]: "Yes" + - paragraph [ref=e736]: Recommended in search + - img [ref=e738] + - generic [ref=e741]: + - generic [ref=e742]: + - paragraph [ref=e743]: Avg. Reply Time + - paragraph [ref=e744]: 2 hrs + - paragraph [ref=e745]: Fast responder + - img [ref=e747] + - generic [ref=e749]: + - generic [ref=e750]: + - paragraph [ref=e752]: + - img [ref=e753] + - text: About + - generic [ref=e757]: + - paragraph [ref=e758]: Professional graphic designer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project. + - generic [ref=e759]: + - generic [ref=e760]: Fast response within 2 hours + - generic [ref=e761]: Clear scope & milestone planning + - generic [ref=e762]: Delivery-first execution + - generic [ref=e763]: + - generic [ref=e764]: + - paragraph [ref=e765]: Years Exp + - paragraph [ref=e766]: 7+ + - generic [ref=e767]: + - paragraph [ref=e768]: Projects + - paragraph [ref=e769]: "248" + - generic [ref=e770]: + - paragraph [ref=e771]: Rating + - paragraph [ref=e772]: "4.9" + - generic [ref=e773]: + - paragraph [ref=e774]: Reviews + - paragraph [ref=e775]: "128" + - generic [ref=e776]: + - paragraph [ref=e778]: + - img [ref=e779] + - text: Specialties + - generic [ref=e784]: + - generic [ref=e785]: Brand Identity + - generic [ref=e786]: UI/UX Design + - generic [ref=e787]: Print + - generic [ref=e788]: Social Media + - generic [ref=e789]: Motion + - generic [ref=e790]: Packaging + - generic [ref=e791]: + - paragraph [ref=e792]: Languages + - generic [ref=e793]: + - generic [ref=e794]: English + - generic [ref=e795]: Hindi + - generic [ref=e796]: Marathi + - paragraph [ref=e797]: Service Areas + - generic [ref=e798]: + - generic [ref=e799]: Mumbai + - generic [ref=e800]: Pune + - generic [ref=e801]: Thane + - generic [ref=e802]: Nashik + - generic [ref=e803]: + - generic [ref=e804]: + - paragraph [ref=e805]: + - img [ref=e806] + - text: Services & Pricing + - generic [ref=e811]: Transparent Pricing + - generic [ref=e812]: + - generic [ref=e813]: + - paragraph [ref=e814]: Logo Pack + - paragraph [ref=e815]: ₹8,000 + - generic [ref=e816]: + - generic [ref=e817]: + - img [ref=e818] + - text: 3 logo concepts + - generic [ref=e821]: + - img [ref=e822] + - text: 2 revisions + - generic [ref=e825]: + - img [ref=e826] + - text: All file formats + - generic [ref=e829]: + - img [ref=e830] + - text: Usage rights + - generic [ref=e833]: + - generic [ref=e834]: Most Chosen + - paragraph [ref=e835]: Brand Kit + - paragraph [ref=e836]: ₹22,000 + - generic [ref=e837]: + - generic [ref=e838]: + - img [ref=e839] + - text: Logo + palette + - generic [ref=e842]: + - img [ref=e843] + - text: Typography + - generic [ref=e846]: + - img [ref=e847] + - text: Brand guidelines + - generic [ref=e850]: + - img [ref=e851] + - text: Social templates + - generic [ref=e854]: + - paragraph [ref=e855]: Full Identity + - paragraph [ref=e856]: ₹45,000 + - generic [ref=e857]: + - generic [ref=e858]: + - img [ref=e859] + - text: Complete brand + - generic [ref=e862]: + - img [ref=e863] + - text: UI kit + - generic [ref=e866]: + - img [ref=e867] + - text: Print collateral + - generic [ref=e870]: + - img [ref=e871] + - text: Motion logo + - generic [ref=e874]: + - generic [ref=e875]: + - paragraph [ref=e876]: + - img [ref=e877] + - text: Portfolio + - button "Upload Images" [ref=e881] [cursor=pointer] + - generic [ref=e882]: + - generic [ref=e883]: + - img [ref=e884] + - generic [ref=e888]: Campaign Shot + - generic [ref=e889]: + - img [ref=e890] + - generic [ref=e894]: Result Highlight + - generic [ref=e895]: + - img [ref=e896] + - generic [ref=e900]: Before/After + - generic [ref=e901]: + - img [ref=e902] + - generic [ref=e906]: Client Output + - generic [ref=e907]: + - img [ref=e908] + - generic [ref=e912]: Style Board + - generic [ref=e913]: + - img [ref=e914] + - generic [ref=e918]: Final Delivery + - generic [ref=e919]: + - img [ref=e920] + - generic [ref=e924]: Portfolio Select + - generic [ref=e925]: + - img [ref=e926] + - generic [ref=e930]: Recent Work + - generic [ref=e931]: + - paragraph [ref=e933]: + - img [ref=e934] + - text: Experience & Tools + - generic [ref=e938]: + - paragraph [ref=e939]: Design Tools + - generic [ref=e940]: + - generic [ref=e941]: Brand Identity + - generic [ref=e942]: UI/UX Design + - generic [ref=e943]: Print + - generic [ref=e944]: Social Media + - generic [ref=e945]: Motion + - generic [ref=e946]: Packaging + - generic [ref=e947]: + - generic [ref=e948]: + - paragraph [ref=e950]: "2018" + - paragraph [ref=e951]: Started professional career as Graphic Designer + - generic [ref=e952]: + - paragraph [ref=e954]: "2020" + - paragraph [ref=e955]: Completed 100+ successful projects + - generic [ref=e956]: + - paragraph [ref=e958]: "2022" + - paragraph [ref=e959]: Won regional industry recognition + - generic [ref=e960]: + - paragraph [ref=e962]: "2024" + - paragraph [ref=e963]: Joined Nxtgauge marketplace + - generic [ref=e964]: + - generic [ref=e965]: + - paragraph [ref=e966]: + - img [ref=e967] + - text: Testimonials + - generic [ref=e969]: Locked For New Profiles + - generic [ref=e971]: + - paragraph [ref=e972]: Testimonials will be activated automatically. + - paragraph [ref=e973]: + - text: New professionals unlock testimonials after completing at least + - strong [ref=e974]: 3 jobs + - text: and receiving at least + - strong [ref=e975]: 2 customer feedback entries + - text: . + - paragraph [ref=e976]: "Current progress: 1 jobs completed • 0 feedback received" + - generic [ref=e977]: + - paragraph [ref=e979]: + - img [ref=e980] + - text: Frequently Asked Questions + - generic [ref=e983]: + - button "What file formats do you deliver?" [ref=e984] [cursor=pointer]: + - generic [ref=e985]: What file formats do you deliver? + - img [ref=e986] + - paragraph [ref=e989]: Final files in AI, PDF, PNG, SVG, and any format required. Print-ready and web-optimised variants included. + - button "Do you create brand guidelines?" [ref=e991] [cursor=pointer]: + - generic [ref=e992]: Do you create brand guidelines? + - img [ref=e993] + - button "How many concepts do you provide initially?" [ref=e996] [cursor=pointer]: + - generic [ref=e997]: How many concepts do you provide initially? + - img [ref=e998] + - button "Do you handle printing coordination?" [ref=e1001] [cursor=pointer]: + - generic [ref=e1002]: Do you handle printing coordination? + - img [ref=e1003] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T13-01-57-921Z.png b/.playwright-cli/page-2026-04-01T13-01-57-921Z.png new file mode 100644 index 0000000..bcd6772 Binary files /dev/null and b/.playwright-cli/page-2026-04-01T13-01-57-921Z.png differ diff --git a/.playwright-cli/page-2026-04-01T15-04-08-550Z.yml b/.playwright-cli/page-2026-04-01T15-04-08-550Z.yml new file mode 100644 index 0000000..9b7252a --- /dev/null +++ b/.playwright-cli/page-2026-04-01T15-04-08-550Z.yml @@ -0,0 +1,229 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e282]: + - button "All Dashboards" [ref=e283] [cursor=pointer] + - button "Create Dashboard" [ref=e284] [cursor=pointer] + - generic [ref=e285]: + - generic [ref=e286]: + - textbox "Search dashboards..." [ref=e287] + - button "Sort" [ref=e289] [cursor=pointer]: + - img [ref=e290] + - text: Sort + - button "Filters" [ref=e294] [cursor=pointer]: + - img [ref=e295] + - text: Filters + - button "Export" [ref=e297] [cursor=pointer]: + - img [ref=e298] + - text: Export + - table [ref=e302]: + - rowgroup [ref=e303]: + - row "Name Code Role Widgets Status Updated Actions" [ref=e304]: + - columnheader "Name" [ref=e305] + - columnheader "Code" [ref=e306] + - columnheader "Role" [ref=e307] + - columnheader "Widgets" [ref=e308] + - columnheader "Status" [ref=e309] + - columnheader "Updated" [ref=e310] + - columnheader "Actions" [ref=e311] + - rowgroup [ref=e312]: + - row "Loading dashboards..." [ref=e313]: + - cell "Loading dashboards..." [ref=e314] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T15-07-27-464Z.yml b/.playwright-cli/page-2026-04-01T15-07-27-464Z.yml new file mode 100644 index 0000000..d3dec4f --- /dev/null +++ b/.playwright-cli/page-2026-04-01T15-07-27-464Z.yml @@ -0,0 +1,331 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Graphic Designer Profile + - paragraph [ref=e546]: Manage design profile, service pricing, portfolio assets, and documents. + - generic [ref=e547]: + - button "Basic Info" [ref=e548] [cursor=pointer] + - button "Design Profile" [ref=e549] [cursor=pointer] + - button "Services & Pricing" [ref=e550] [cursor=pointer] + - button "Portfolio" [ref=e551] [cursor=pointer] + - button "Documents" [ref=e552] [cursor=pointer] + - button "Settings" [ref=e553] [cursor=pointer] + - generic [ref=e555]: + - generic [ref=e556]: + - generic [ref=e557]: + - paragraph [ref=e558]: Basic Info + - generic [ref=e559]: 8 fields + - generic [ref=e560]: + - generic [ref=e561]: + - generic [ref=e562]: + - paragraph [ref=e563]: Full Name* + - generic [ref=e565]: Enter full name + - generic [ref=e566]: + - paragraph [ref=e567]: Brand Name* + - generic [ref=e569]: Enter brand name + - generic [ref=e570]: + - paragraph [ref=e571]: Email Address* + - generic [ref=e573]: Enter email address + - generic [ref=e574]: + - paragraph [ref=e575]: Mobile Number* + - generic [ref=e577]: Enter mobile number + - generic [ref=e578]: + - generic [ref=e579]: + - paragraph [ref=e580]: City* + - generic [ref=e582]: Enter city + - generic [ref=e583]: + - paragraph [ref=e584]: State* + - generic [ref=e586]: Enter state + - generic [ref=e587]: + - paragraph [ref=e588]: Country* + - generic [ref=e589]: + - generic [ref=e590]: Select country + - generic [ref=e591]: ▾ + - generic [ref=e592]: + - paragraph [ref=e593]: PIN Code* + - generic [ref=e595]: Enter 6-digit pincode + - generic [ref=e596]: + - button "Cancel" [ref=e597] + - button "Save Changes" [ref=e598] + - generic [ref=e599]: + - paragraph [ref=e600]: Profile Completeness + - paragraph [ref=e601]: 87% + - paragraph [ref=e604]: Active Section + - paragraph [ref=e605]: Basic Info + - paragraph [ref=e606]: Mandatory Fields + - paragraph [ref=e607]: "8" + - paragraph [ref=e608]: Marked with * + - paragraph [ref=e609]: Manage design profile, service pricing, portfolio assets, and documents. + - generic [ref=e610]: + - button "Save Changes" [ref=e611] + - button "Reset" [ref=e612] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T15-11-16-859Z.yml b/.playwright-cli/page-2026-04-01T15-11-16-859Z.yml new file mode 100644 index 0000000..bfa48b0 --- /dev/null +++ b/.playwright-cli/page-2026-04-01T15-11-16-859Z.yml @@ -0,0 +1,519 @@ +- generic [ref=e4]: + - complementary [ref=e6]: + - generic [ref=e7]: + - link "Nxtgauge" [ref=e8] [cursor=pointer]: + - /url: /admin + - img "Nxtgauge" [ref=e9] + - button "Collapse sidebar" [ref=e10] [cursor=pointer]: + - img [ref=e11] + - navigation [ref=e13]: + - link "Dashboard" [ref=e15] [cursor=pointer]: + - /url: /admin + - img [ref=e16] + - generic [ref=e21]: Dashboard + - generic [ref=e23]: + - link "Department Management" [ref=e24] [cursor=pointer]: + - /url: /admin/department + - img [ref=e25] + - generic [ref=e29]: Department Management + - link "Designation Management" [ref=e30] [cursor=pointer]: + - /url: /admin/designation + - img [ref=e31] + - generic [ref=e34]: Designation Management + - link "Internal Role Management" [ref=e35] [cursor=pointer]: + - /url: /admin/roles + - img [ref=e36] + - generic [ref=e39]: Internal Role Management + - link "Employee Management" [ref=e40] [cursor=pointer]: + - /url: /admin/employees + - img [ref=e41] + - generic [ref=e46]: Employee Management + - generic [ref=e48]: + - link "External Role Management" [ref=e49] [cursor=pointer]: + - /url: /admin/external-roles + - img [ref=e50] + - generic [ref=e53]: External Role Management + - link "External Onboarding Management" [ref=e54] [cursor=pointer]: + - /url: /admin/onboarding-management + - img [ref=e55] + - generic [ref=e58]: External Onboarding Management + - link "Internal Dashboard Management" [ref=e59] [cursor=pointer]: + - /url: /admin/internal-dashboard-management + - img [ref=e60] + - generic [ref=e65]: Internal Dashboard Management + - link "External Dashboard Management" [ref=e66] [cursor=pointer]: + - /url: /admin/external-dashboard-management + - img [ref=e67] + - generic [ref=e72]: External Dashboard Management + - generic [ref=e74]: + - link "Verification Management" [ref=e75] [cursor=pointer]: + - /url: /admin/verification + - img [ref=e76] + - generic [ref=e79]: Verification Management + - link "Approval Management" [ref=e80] [cursor=pointer]: + - /url: /admin/approval + - img [ref=e81] + - generic [ref=e84]: Approval Management + - generic [ref=e86]: + - link "Users Management" [ref=e87] [cursor=pointer]: + - /url: /admin/users + - img [ref=e88] + - generic [ref=e93]: Users Management + - link "Company Management" [ref=e94] [cursor=pointer]: + - /url: /admin/company + - img [ref=e95] + - generic [ref=e99]: Company Management + - link "Candidate Management" [ref=e100] [cursor=pointer]: + - /url: /admin/candidate + - img [ref=e101] + - generic [ref=e105]: Candidate Management + - link "Customer Management" [ref=e106] [cursor=pointer]: + - /url: /admin/customer + - img [ref=e107] + - generic [ref=e111]: Customer Management + - generic [ref=e113]: + - link "Photographer Management" [ref=e114] [cursor=pointer]: + - /url: /admin/photographer + - img [ref=e115] + - generic [ref=e118]: Photographer Management + - link "Makeup Artist Management" [ref=e119] [cursor=pointer]: + - /url: /admin/makeup-artist + - img [ref=e120] + - generic [ref=e126]: Makeup Artist Management + - link "Tutors Management" [ref=e127] [cursor=pointer]: + - /url: /admin/tutors + - img [ref=e128] + - generic [ref=e130]: Tutors Management + - link "Developers Management" [ref=e131] [cursor=pointer]: + - /url: /admin/developers + - img [ref=e132] + - generic [ref=e136]: Developers Management + - link "Video Editor Management" [ref=e137] [cursor=pointer]: + - /url: /admin/video-editors + - img [ref=e138] + - generic [ref=e140]: Video Editor Management + - link "Fitness Trainer Management" [ref=e141] [cursor=pointer]: + - /url: /admin/fitness-trainers + - img [ref=e142] + - generic [ref=e144]: Fitness Trainer Management + - link "Catering Services Management" [ref=e145] [cursor=pointer]: + - /url: /admin/catering-services + - img [ref=e146] + - generic [ref=e149]: Catering Services Management + - link "Graphics Designer Management" [ref=e150] [cursor=pointer]: + - /url: /admin/graphic-designers + - img [ref=e151] + - generic [ref=e156]: Graphics Designer Management + - link "Social Media Manager Management" [ref=e157] [cursor=pointer]: + - /url: /admin/social-media-managers + - img [ref=e158] + - generic [ref=e161]: Social Media Manager Management + - generic [ref=e163]: + - link "Jobs Management" [ref=e164] [cursor=pointer]: + - /url: /admin/jobs + - img [ref=e165] + - generic [ref=e169]: Jobs Management + - link "Leads Management" [ref=e170] [cursor=pointer]: + - /url: /admin/leads + - img [ref=e171] + - generic [ref=e175]: Leads Management + - link "Applications Management" [ref=e176] [cursor=pointer]: + - /url: /admin/applications + - img [ref=e177] + - generic [ref=e180]: Applications Management + - link "Responses Management" [ref=e181] [cursor=pointer]: + - /url: /admin/responses + - img [ref=e182] + - generic [ref=e185]: Responses Management + - generic [ref=e187]: + - link "Pricing Management" [ref=e188] [cursor=pointer]: + - /url: /admin/pricing + - img [ref=e189] + - generic [ref=e193]: Pricing Management + - link "Credit Management" [ref=e194] [cursor=pointer]: + - /url: /admin/credit + - img [ref=e195] + - generic [ref=e197]: Credit Management + - link "Coupon Management" [ref=e198] [cursor=pointer]: + - /url: /admin/coupon + - img [ref=e199] + - generic [ref=e202]: Coupon Management + - link "Discount Management" [ref=e203] [cursor=pointer]: + - /url: /admin/discount + - img [ref=e204] + - generic [ref=e208]: Discount Management + - link "Tax Management" [ref=e209] [cursor=pointer]: + - /url: /admin/tax + - img [ref=e210] + - generic [ref=e213]: Tax Management + - link "Order Management" [ref=e214] [cursor=pointer]: + - /url: /admin/order + - img [ref=e215] + - generic [ref=e219]: Order Management + - link "Invoice Management" [ref=e220] [cursor=pointer]: + - /url: /admin/invoice + - img [ref=e221] + - generic [ref=e225]: Invoice Management + - generic [ref=e227]: + - link "Knowledge Base Management" [ref=e228] [cursor=pointer]: + - /url: /admin/kb + - img [ref=e229] + - generic [ref=e231]: Knowledge Base Management + - link "Notifications" [ref=e232] [cursor=pointer]: + - /url: /admin/notifications + - img [ref=e233] + - generic [ref=e236]: Notifications + - link "Review Management" [ref=e237] [cursor=pointer]: + - /url: /admin/review + - img [ref=e238] + - generic [ref=e240]: Review Management + - link "Support Management" [ref=e241] [cursor=pointer]: + - /url: /admin/support + - img [ref=e242] + - generic [ref=e244]: Support Management + - link "Report Management" [ref=e245] [cursor=pointer]: + - /url: /admin/report + - img [ref=e246] + - generic [ref=e248]: Report Management + - link "Ledger Management" [ref=e249] [cursor=pointer]: + - /url: /admin/ledger + - img [ref=e250] + - generic [ref=e253]: Ledger Management + - generic [ref=e254]: + - banner [ref=e255]: + - generic [ref=e257]: + - button "Toggle theme" [ref=e258] [cursor=pointer]: + - img [ref=e259] + - button "Notifications" [ref=e261] [cursor=pointer]: + - img [ref=e262] + - button "Settings" [ref=e265] [cursor=pointer]: + - img [ref=e266] + - button "User menu" [ref=e270] [cursor=pointer]: + - generic [ref=e271]: AD + - generic [ref=e272]: + - paragraph [ref=e273]: Admin User + - paragraph [ref=e274]: Super Admin + - button "Logout" [ref=e275] [cursor=pointer] + - main [ref=e277]: + - generic [ref=e278]: + - generic [ref=e279]: + - heading "External Dashboard Management" [level=1] [ref=e280] + - paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving. + - generic [ref=e443]: + - generic [ref=e444]: + - paragraph [ref=e445]: Edit External Dashboard + - button "Back" [ref=e446] [cursor=pointer] + - generic [ref=e447]: + - button "General" [ref=e448] [cursor=pointer] + - button "Tabs" [ref=e449] [cursor=pointer] + - button "Sidebar" [ref=e450] [cursor=pointer] + - button "Fields" [ref=e451] [cursor=pointer] + - button "Preview" [ref=e452] [cursor=pointer]: Preview + - generic [ref=e456]: + - generic [ref=e457]: + - paragraph [ref=e458]: Actual End-User Dashboard UI Preview + - generic [ref=e459]: Active + - generic [ref=e460]: + - complementary [ref=e461]: + - img "Nxtgauge" [ref=e463] + - generic [ref=e464]: + - button "My Dashboard" [ref=e465] [cursor=pointer]: + - img [ref=e466] + - text: My Dashboard + - button "My Profile" [ref=e471] [cursor=pointer]: + - img [ref=e472] + - text: My Profile + - button "My Portfolio" [active] [ref=e476] [cursor=pointer]: + - img [ref=e477] + - text: My Portfolio + - button "Leads" [ref=e481] [cursor=pointer]: + - img [ref=e482] + - text: Leads + - button "My Responses" [ref=e486] [cursor=pointer]: + - img [ref=e487] + - text: My Responses + - button "Credits" [ref=e490] [cursor=pointer]: + - img [ref=e491] + - text: Credits + - button "Explore Nxtgauge" [ref=e496] [cursor=pointer]: + - img [ref=e497] + - text: Explore Nxtgauge + - button "Verification" [ref=e500] [cursor=pointer]: + - img [ref=e501] + - text: Verification + - button "Help Center" [ref=e504] [cursor=pointer]: + - img [ref=e505] + - text: Help Center + - button "Settings" [ref=e507] [cursor=pointer]: + - img [ref=e508] + - text: Settings + - button "Switch Services" [ref=e511] [cursor=pointer]: + - img [ref=e512] + - text: Switch Services + - button "Logout" [ref=e517] [cursor=pointer]: + - img [ref=e518] + - text: Logout + - main [ref=e521]: + - generic [ref=e522]: + - generic [ref=e524]: + - img [ref=e525] + - textbox "Search resources..." [ref=e528] + - generic [ref=e529]: + - button [ref=e530] [cursor=pointer]: + - img [ref=e531] + - button [ref=e534] [cursor=pointer]: + - img [ref=e535] + - button [ref=e538] [cursor=pointer]: + - img [ref=e539] + - generic [ref=e542]: + - generic [ref=e543]: + - paragraph [ref=e544]: Current View + - paragraph [ref=e545]: Graphic Designer Portfolio + - paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request. + - generic [ref=e616]: + - button "Overview" [ref=e617] [cursor=pointer]: + - img [ref=e619] + - generic [ref=e624]: Overview + - button "About" [ref=e625] [cursor=pointer]: + - img [ref=e627] + - generic [ref=e631]: About + - button "Services & Pricing" [ref=e632] [cursor=pointer]: + - img [ref=e634] + - generic [ref=e639]: Services & Pricing + - button "Portfolio" [ref=e640] [cursor=pointer]: + - img [ref=e642] + - generic [ref=e646]: Portfolio + - button "Experience & Tools" [ref=e647] [cursor=pointer]: + - img [ref=e649] + - generic [ref=e653]: Experience & Tools + - button "Testimonials · Locked" [disabled] [ref=e654]: + - img [ref=e656] + - generic [ref=e658]: Testimonials · Locked + - button "Faqs" [ref=e659] [cursor=pointer]: + - img [ref=e661] + - generic [ref=e664]: Faqs + - generic [ref=e665]: + - generic [ref=e666]: + - generic [ref=e668]: + - generic [ref=e669]: + - generic [ref=e670]: + - paragraph [ref=e671]: Alex Morgan + - generic [ref=e672]: Verified + - generic [ref=e673]: Top Response Rate + - paragraph [ref=e674]: Graphic Designer + - generic [ref=e675]: + - generic [ref=e676]: "Area: Mumbai Region" + - generic [ref=e677]: "Place: Andheri East, Mumbai" + - generic [ref=e678]: "Travel: Mumbai, Navi Mumbai, Thane, Pune" + - generic [ref=e679]: + - button "Edit Portfolio" [ref=e680] [cursor=pointer] + - button "Preview Portfolio" [ref=e681] [cursor=pointer] + - generic [ref=e682]: + - generic [ref=e683]: + - paragraph [ref=e684]: Projects Done + - paragraph [ref=e685]: "248" + - generic [ref=e686]: + - paragraph [ref=e687]: Years Exp + - paragraph [ref=e688]: 7+ + - generic [ref=e689]: + - paragraph [ref=e690]: Verified Pro + - paragraph [ref=e691]: Verified + - generic [ref=e692]: + - paragraph [ref=e693]: Last Delivery + - paragraph [ref=e694]: 2 days + - generic [ref=e695]: + - generic [ref=e696]: + - paragraph [ref=e698]: + - img [ref=e699] + - text: About + - generic [ref=e703]: + - paragraph [ref=e704]: Professional graphic designer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project. + - generic [ref=e705]: + - generic [ref=e706]: Fast response within 2 hours + - generic [ref=e707]: Clear scope & milestone planning + - generic [ref=e708]: Delivery-first execution + - generic [ref=e709]: + - generic [ref=e710]: + - paragraph [ref=e711]: Years Exp + - paragraph [ref=e712]: 7+ + - generic [ref=e713]: + - paragraph [ref=e714]: Projects + - paragraph [ref=e715]: "248" + - generic [ref=e716]: + - paragraph [ref=e717]: Rating + - paragraph [ref=e718]: "4.9" + - generic [ref=e719]: + - paragraph [ref=e720]: Reviews + - paragraph [ref=e721]: "128" + - generic [ref=e722]: + - paragraph [ref=e724]: + - img [ref=e725] + - text: Specialties + - generic [ref=e730]: + - generic [ref=e731]: Brand Identity + - generic [ref=e732]: UI/UX Design + - generic [ref=e733]: Print + - generic [ref=e734]: Social Media + - generic [ref=e735]: Motion + - generic [ref=e736]: Packaging + - generic [ref=e737]: + - paragraph [ref=e738]: Languages + - generic [ref=e739]: + - generic [ref=e740]: English + - generic [ref=e741]: Hindi + - generic [ref=e742]: Marathi + - paragraph [ref=e743]: Service Areas + - generic [ref=e744]: + - generic [ref=e745]: Mumbai + - generic [ref=e746]: Pune + - generic [ref=e747]: Thane + - generic [ref=e748]: Nashik + - generic [ref=e749]: + - generic [ref=e750]: + - paragraph [ref=e751]: + - img [ref=e752] + - text: Services & Pricing + - generic [ref=e757]: Transparent Pricing + - generic [ref=e758]: + - generic [ref=e759]: + - paragraph [ref=e760]: Logo Pack + - paragraph [ref=e761]: ₹8,000 + - generic [ref=e762]: + - generic [ref=e763]: + - img [ref=e764] + - text: 3 logo concepts + - generic [ref=e767]: + - img [ref=e768] + - text: 2 revisions + - generic [ref=e771]: + - img [ref=e772] + - text: All file formats + - generic [ref=e775]: + - img [ref=e776] + - text: Usage rights + - generic [ref=e779]: + - generic [ref=e780]: Most Chosen + - paragraph [ref=e781]: Brand Kit + - paragraph [ref=e782]: ₹22,000 + - generic [ref=e783]: + - generic [ref=e784]: + - img [ref=e785] + - text: Logo + palette + - generic [ref=e788]: + - img [ref=e789] + - text: Typography + - generic [ref=e792]: + - img [ref=e793] + - text: Brand guidelines + - generic [ref=e796]: + - img [ref=e797] + - text: Social templates + - generic [ref=e800]: + - paragraph [ref=e801]: Full Identity + - paragraph [ref=e802]: ₹45,000 + - generic [ref=e803]: + - generic [ref=e804]: + - img [ref=e805] + - text: Complete brand + - generic [ref=e808]: + - img [ref=e809] + - text: UI kit + - generic [ref=e812]: + - img [ref=e813] + - text: Print collateral + - generic [ref=e816]: + - img [ref=e817] + - text: Motion logo + - generic [ref=e820]: + - generic [ref=e821]: + - paragraph [ref=e822]: + - img [ref=e823] + - text: Portfolio + - button "Upload Images" [ref=e827] [cursor=pointer] + - generic [ref=e828]: + - generic [ref=e829]: + - img [ref=e830] + - generic [ref=e834]: Campaign Shot + - generic [ref=e835]: + - img [ref=e836] + - generic [ref=e840]: Result Highlight + - generic [ref=e841]: + - img [ref=e842] + - generic [ref=e846]: Before/After + - generic [ref=e847]: + - img [ref=e848] + - generic [ref=e852]: Client Output + - generic [ref=e853]: + - img [ref=e854] + - generic [ref=e858]: Style Board + - generic [ref=e859]: + - img [ref=e860] + - generic [ref=e864]: Final Delivery + - generic [ref=e865]: + - img [ref=e866] + - generic [ref=e870]: Portfolio Select + - generic [ref=e871]: + - img [ref=e872] + - generic [ref=e876]: Recent Work + - generic [ref=e877]: + - paragraph [ref=e879]: + - img [ref=e880] + - text: Experience & Tools + - generic [ref=e884]: + - paragraph [ref=e885]: Design Tools + - generic [ref=e886]: + - generic [ref=e887]: Brand Identity + - generic [ref=e888]: UI/UX Design + - generic [ref=e889]: Print + - generic [ref=e890]: Social Media + - generic [ref=e891]: Motion + - generic [ref=e892]: Packaging + - generic [ref=e893]: + - generic [ref=e894]: + - paragraph [ref=e896]: "2018" + - paragraph [ref=e897]: Started professional career as Graphic Designer + - generic [ref=e898]: + - paragraph [ref=e900]: "2020" + - paragraph [ref=e901]: Completed 100+ successful projects + - generic [ref=e902]: + - paragraph [ref=e904]: "2022" + - paragraph [ref=e905]: Won regional industry recognition + - generic [ref=e906]: + - paragraph [ref=e908]: "2024" + - paragraph [ref=e909]: Joined Nxtgauge marketplace + - generic [ref=e910]: + - generic [ref=e911]: + - paragraph [ref=e912]: + - img [ref=e913] + - text: Testimonials + - generic [ref=e915]: Locked For New Profiles + - generic [ref=e917]: + - paragraph [ref=e918]: Testimonials will be activated automatically. + - paragraph [ref=e919]: + - text: New professionals unlock testimonials after completing at least + - strong [ref=e920]: 3 jobs + - text: and receiving at least + - strong [ref=e921]: 2 customer feedback entries + - text: . + - paragraph [ref=e922]: "Current progress: 1 jobs completed • 0 feedback received" + - generic [ref=e923]: + - paragraph [ref=e925]: + - img [ref=e926] + - text: Frequently Asked Questions + - generic [ref=e929]: + - button "What file formats do you deliver?" [ref=e930] [cursor=pointer]: + - generic [ref=e931]: What file formats do you deliver? + - img [ref=e932] + - paragraph [ref=e935]: Final files in AI, PDF, PNG, SVG, and any format required. Print-ready and web-optimised variants included. + - button "Do you create brand guidelines?" [ref=e937] [cursor=pointer]: + - generic [ref=e938]: Do you create brand guidelines? + - img [ref=e939] + - button "How many concepts do you provide initially?" [ref=e942] [cursor=pointer]: + - generic [ref=e943]: How many concepts do you provide initially? + - img [ref=e944] + - button "Do you handle printing coordination?" [ref=e947] [cursor=pointer]: + - generic [ref=e948]: Do you handle printing coordination? + - img [ref=e949] + - generic [ref=e613]: + - button "Cancel" [ref=e614] [cursor=pointer] + - button "Update Dashboard" [ref=e615] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-cli/page-2026-04-01T15-11-31-570Z.png b/.playwright-cli/page-2026-04-01T15-11-31-570Z.png new file mode 100644 index 0000000..949d781 Binary files /dev/null and b/.playwright-cli/page-2026-04-01T15-11-31-570Z.png differ diff --git a/src/components/AdminSidebar.tsx b/src/components/AdminSidebar.tsx index 75335df..3b38371 100644 --- a/src/components/AdminSidebar.tsx +++ b/src/components/AdminSidebar.tsx @@ -7,7 +7,7 @@ import { WalletCards, CreditCard, Tag, Percent, Receipt, ShoppingCart, FileCheck, Star, HeadphonesIcon, BarChart3, ChevronLeft, BadgeCheck, Activity, Film, Utensils, PenTool, - Megaphone, Bell, + Megaphone, Bell, Video, } from 'lucide-solid'; type NavItem = { @@ -54,6 +54,7 @@ const GROUPS: NavItem[][] = [ { href: '/admin/catering-services', label: 'Catering Services Management', icon: Utensils, moduleKeys: ['CATERING_SERVICES_MANAGEMENT', 'CATERING_SERVICES'] }, { href: '/admin/graphic-designers', label: 'Graphics Designer Management', icon: PenTool, moduleKeys: ['GRAPHIC_DESIGNER_MANAGEMENT', 'GRAPHIC_DESIGNERS'] }, { href: '/admin/social-media-managers', label: 'Social Media Manager Management', icon: Megaphone, moduleKeys: ['SOCIAL_MEDIA_MANAGEMENT', 'SOCIAL_MEDIA_MANAGER_MANAGEMENT', 'SOCIAL_MEDIA_MANAGERS'] }, + { href: '/admin/ugc-content-creator', label: 'UGC Content Creator Management', icon: Video, moduleKeys: ['UGC_CONTENT_CREATOR_MANAGEMENT', 'UGC_CONTENT_CREATOR'] }, ], [ { href: '/admin/jobs', label: 'Jobs Management', icon: BriefcaseBusiness, moduleKeys: ['JOBS_MANAGEMENT', 'JOBS'] }, diff --git a/src/components/admin/RoleUserManagementTablePage.tsx b/src/components/admin/RoleUserManagementTablePage.tsx index 37d7896..a75c5ac 100644 --- a/src/components/admin/RoleUserManagementTablePage.tsx +++ b/src/components/admin/RoleUserManagementTablePage.tsx @@ -8,7 +8,7 @@ type SortMode = 'newest' | 'oldest' | 'name_asc' | 'name_desc'; async function fetchUsers(role: string): Promise { try { - const res = await fetch(`${API}/api/admin/users?role=${encodeURIComponent(role)}`); + const res = await fetch(`${API}/api/admin/users?role=${role.toUpperCase()}`); if (!res.ok) throw new Error('Failed to load'); const data = await res.json(); return Array.isArray(data) ? data : (data.users || []); diff --git a/src/routes/admin/approval.tsx b/src/routes/admin/approval.tsx index d5f14be..6c6a1ce 100644 --- a/src/routes/admin/approval.tsx +++ b/src/routes/admin/approval.tsx @@ -149,134 +149,7 @@ function extractDocuments(source: any): ApprovalDocument[] { }); } -const FALLBACK_APPROVAL_ROWS: ApprovalRecord[] = [ - { - id: 'AP-P-92841', - name: 'Profile Approval - Sarah Jenkins (Demo)', - applicantName: 'Sarah Jenkins (Demo)', - approvalType: 'PROFILE', - userType: 'PROFESSIONAL', - roleTags: ['Photographer'], - primaryService: 'Photography', - area: 'T. Nagar, Chennai', - submittedDate: '2026-04-01', - verificationStatus: 'VERIFIED', - assignedApprover: 'Unassigned', - priority: 'MEDIUM', - status: 'PENDING', - updatedAt: '2026-04-01', - sourceKey: 'fallback:profile:92841', - submittedFields: [ - { label: 'Name / Title', value: 'Sarah Jenkins' }, - { label: 'Email', value: 'sarah.jenkins@nxtgauge.com' }, - { label: 'Mobile', value: '+91 90000 00001' }, - { label: 'Area', value: 'T. Nagar' }, - { label: 'Place', value: 'Chennai' }, - ], - documents: [ - { id: 'identity-proof', title: 'Identity Proof', type: 'IMAGE', url: '/nxtgauge-logo.png', status: 'SUBMITTED' }, - { id: 'address-proof', title: 'Address Proof', type: 'PDF', url: '/nxtgauge-icon.png', status: 'SUBMITTED' }, - ], - }, - { - id: 'AP-F-92835', - name: 'Portfolio Approval - Marcus Davis (Demo)', - applicantName: 'Marcus Davis (Demo)', - approvalType: 'PORTFOLIO', - userType: 'PROFESSIONAL', - roleTags: ['Graphic Designer'], - primaryService: 'Design Portfolio', - area: 'Velachery, Chennai', - submittedDate: '2026-04-01', - verificationStatus: 'VERIFIED', - assignedApprover: 'Unassigned', - priority: 'HIGH', - status: 'PENDING', - updatedAt: '2026-04-01', - sourceKey: 'fallback:portfolio:92835', - submittedFields: [ - { label: 'Name / Title', value: 'Marcus Davis' }, - { label: 'Role / Category', value: 'Graphic Designer' }, - { label: 'Area', value: 'Velachery' }, - { label: 'Description', value: 'Portfolio submitted for verification.' }, - ], - documents: [ - { id: 'portfolio-1', title: 'Portfolio Image 1', type: 'IMAGE', url: '/nxtgauge-logo.png', status: 'SUBMITTED' }, - { id: 'portfolio-2', title: 'Portfolio Image 2', type: 'IMAGE', url: '/nxtgauge-icon.png', status: 'SUBMITTED' }, - ], - }, - { - id: 'AP-B-92839', - name: 'Business Approval - Zenith Tech Hub (Demo)', - applicantName: 'Zenith Tech Hub (Demo)', - approvalType: 'BUSINESS', - userType: 'COMPANY', - roleTags: ['Company'], - primaryService: 'Hiring Company', - area: 'Guindy, Chennai', - submittedDate: '2026-03-31', - verificationStatus: 'VERIFIED', - assignedApprover: 'Unassigned', - priority: 'HIGH', - status: 'PENDING', - updatedAt: '2026-03-31', - sourceKey: 'fallback:company:92839', - submittedFields: [ - { label: 'Name / Title', value: 'Zenith Tech Hub' }, - { label: 'Email', value: 'admin@zenithtechhub.com' }, - { label: 'Area', value: 'Guindy' }, - { label: 'Place', value: 'Chennai' }, - ], - documents: [ - { id: 'gst-certificate', title: 'GST Certificate', type: 'PDF', url: '/nxtgauge-logo.png', status: 'SUBMITTED' }, - { id: 'incorporation', title: 'Incorporation Certificate', type: 'PDF', url: '/nxtgauge-icon.png', status: 'SUBMITTED' }, - ], - }, - { - id: 'AP-R-92812', - name: 'Requirement Approval - Luxury Wedding Shoot (Demo)', - applicantName: 'Luxury Wedding Shoot (Demo)', - approvalType: 'REQUIREMENT', - userType: 'CUSTOMER', - roleTags: ['Service Seeker', 'Photographer'], - primaryService: 'Service Requirement', - area: 'Adyar, Chennai', - submittedDate: '2026-03-30', - verificationStatus: 'FLAGGED', - assignedApprover: 'Unassigned', - priority: 'CRITICAL', - status: 'ESCALATED', - updatedAt: '2026-03-30', - sourceKey: 'fallback:requirement:92812', - submittedFields: [ - { label: 'Name / Title', value: 'Luxury Wedding Shoot' }, - { label: 'Role / Category', value: 'Photographer' }, - { label: 'Area', value: 'Adyar' }, - { label: 'Description', value: 'Need urgent premium wedding photography team.' }, - ], - documents: [ - { id: 'requirement-brief', title: 'Requirement Brief', type: 'PDF', url: '/nxtgauge-logo.png', status: 'SUBMITTED' }, - { id: 'reference-moodboard', title: 'Reference Moodboard', type: 'IMAGE', url: '/nxtgauge-icon.png', status: 'SUBMITTED' }, - ], - }, -]; -function mergeWithFallbackRows(sourceRows: ApprovalRecord[]): ApprovalRecord[] { - const merged = [...sourceRows]; - for (const demo of FALLBACK_APPROVAL_ROWS) { - const duplicate = merged.some((row) => { - const rowKey = String(row.sourceKey || '').toLowerCase(); - const rowName = String(row.applicantName || '').toLowerCase(); - const rowType = String(row.approvalType || '').toLowerCase(); - const demoName = String(demo.applicantName || '').toLowerCase(); - const demoType = String(demo.approvalType || '').toLowerCase(); - if (rowKey.startsWith('fallback:')) return rowKey === String(demo.sourceKey || '').toLowerCase(); - return rowName === demoName && rowType === demoType; - }); - if (!duplicate) merged.push(demo); - } - return merged; -} function verificationToApprovalType(requestType: ApprovalQueueItem['requestType']): ApprovalRecord['approvalType'] { if (requestType === 'Portfolio Approval') return 'PORTFOLIO'; @@ -503,11 +376,10 @@ export default function ApprovalManagementPage() { return arr.findIndex((candidate) => (candidate.sourceKey || candidate.id) === key) === index; }); - const withDemo = mergeWithFallbackRows(deduped); - setRows(withDemo.length ? withDemo : FALLBACK_APPROVAL_ROWS); + setRows(deduped); } catch (e: any) { - setRows(FALLBACK_APPROVAL_ROWS); - setError(e?.message || 'Could not reach approvals API. Showing demo approval queue data.'); + setRows([]); + setError(e?.message || 'Could not reach approvals API.'); } }; diff --git a/src/routes/admin/candidate.tsx b/src/routes/admin/candidate.tsx index 3c0f911..baf8392 100644 --- a/src/routes/admin/candidate.tsx +++ b/src/routes/admin/candidate.tsx @@ -14,12 +14,6 @@ type CandidateRecord = CrudRecord & { registeredDate?: string; }; -const FALLBACK_CANDIDATES: CandidateRecord[] = [ - { id: 'c1', name: 'Arjun Sharma', email: 'arjun.s@example.com', phone: '+91 98765 43210', location: 'Mumbai', experience: '5 years', status: 'ACTIVE', registeredDate: '2026-01-15', updatedAt: '2026-03-27' }, - { id: 'c2', name: 'Priya Nair', email: 'priya.n@example.com', phone: '+91 98765 43211', location: 'Bangalore', experience: '3 years', status: 'ACTIVE', registeredDate: '2026-02-10', updatedAt: '2026-03-27' }, - { id: 'c3', name: 'Rahul Verma', email: 'rahul.v@example.com', phone: '+91 98765 43212', location: 'Delhi', experience: '1 year', status: 'PENDING', registeredDate: '2026-03-05', updatedAt: '2026-03-27' }, -]; - function StatusBadge(props: { status: string }) { const active = () => props.status === 'ACTIVE'; const pending = () => props.status === 'PENDING'; @@ -47,21 +41,23 @@ export default function CandidateManagementPage() { const load = async () => { try { - const res = await fetch(`${API}/api/admin/users?role=job_seeker`); - if (!res.ok) throw new Error(); + const res = await fetch(`${API}/api/admin/users?role=JOB_SEEKER`); + if (!res.ok) throw new Error('Fetch failed'); const data = await res.json(); - const list = Array.isArray(data) ? data : (data.users || []); - if (list.length === 0) setRows(FALLBACK_CANDIDATES); - else setRows(list.map((u: any) => ({ + const list = (Array.isArray(data) ? data : []).map((u: any) => ({ id: u.id, - name: u.name || u.full_name || '—', + name: u.full_name || u.email.split('@')[0], email: u.email, status: (u.status || 'ACTIVE').toUpperCase(), - updatedAt: u.updated_at || '', - registeredDate: u.created_at ? new Date(u.created_at).toLocaleDateString() : '—' - } as CandidateRecord))); - } catch { - setRows(FALLBACK_CANDIDATES); + registeredDate: u.created_at ? new Date(u.created_at).toLocaleDateString() : '—', + updatedAt: u.updated_at || u.created_at || '—', + location: 'Not Specified', + experience: 'Not Specified' + } as CandidateRecord)); + setRows(list); + } catch (e) { + console.error('Candidate load error:', e); + setRows([]); } }; @@ -72,7 +68,7 @@ export default function CandidateManagementPage() { if (statusFilter() !== 'all') r = r.filter((d) => d.status === statusFilter().toUpperCase()); const q = search().toLowerCase(); if (q) { - r = r.filter(r => r.name.toLowerCase().includes(q) || r.email.toLowerCase().includes(q)); + r = r.filter(it => it.name.toLowerCase().includes(q) || it.email.toLowerCase().includes(q)); } const sorted = [...r]; const mode = sortBy(); diff --git a/src/routes/admin/company.tsx b/src/routes/admin/company.tsx index 867642f..ac91e10 100644 --- a/src/routes/admin/company.tsx +++ b/src/routes/admin/company.tsx @@ -1,65 +1,60 @@ import { For, Show, createMemo, createSignal, onMount } from 'solid-js'; import AdminShell from '~/components/AdminShell'; -import type { CrudRecord } from '~/lib/admin/types'; -const API = '/api/gateway'; - -type CompanyRecord = CrudRecord & { - industry?: string; - city?: string; - email?: string; - status: 'ACTIVE' | 'INACTIVE' | 'PENDING' | 'SUSPENDED'; +type AdminContact = { + name: string; + email: string; + phone: string; }; -const FALLBACK_COMPANIES: CompanyRecord[] = [ - { id: 'cp1', name: 'Tech Solutions Inc', industry: 'Software', city: 'Mumbai', email: 'contact@techsolutions.com', status: 'ACTIVE', updatedAt: '2026-03-27' }, - { id: 'cp2', name: 'Creative Designs', industry: 'Design', city: 'Bangalore', email: 'hello@creativedesigns.in', status: 'ACTIVE', updatedAt: '2026-03-27' }, - { id: 'cp3', name: 'Global Logistics', industry: 'Logistics', city: 'Chennai', email: 'info@globallogistics.com', status: 'PENDING', updatedAt: '2026-03-27' }, -]; - -function StatusBadge(props: { status: string }) { - const active = () => props.status === 'ACTIVE'; - const pending = () => props.status === 'PENDING'; - return ( - - - {props.status.charAt(0) + props.status.slice(1).toLowerCase()} - - ); -} +type CompanyRecord = { + id: string; + companyCode: string; + name: string; + registrationNumber: string; + industry: string; + location: string; + joinedOn: string; + adminContact: AdminContact; + accountStatus: string; + verificationStatus: string; + subscriptionType: string; + jobPostingsCount: number; + totalHires: number; + updatedAt: string; +}; export default function CompanyManagementPage() { - const [view, setView] = createSignal<'list' | 'detail' | 'form'>('list'); - const [listTab, setListTab] = createSignal<'all' | 'create' | 'view'>('all'); - const [detailTab, setDetailTab] = createSignal<'overview' | 'employees' | 'verification'>('overview'); - + const [rows, setRows] = createSignal([]); const [search, setSearch] = createSignal(''); const [statusFilter, setStatusFilter] = createSignal('all'); - const [sortBy, setSortBy] = createSignal<'name_asc' | 'name_desc' | 'industry_asc' | 'industry_desc'>('name_asc'); - const [sortMenuOpen, setSortMenuOpen] = createSignal(false); - const [filterMenuOpen, setFilterMenuOpen] = createSignal(false); - const [rows, setRows] = createSignal([]); - const [selectedCompany, setSelectedCompany] = createSignal(null); - const [openMenuId, setOpenMenuId] = createSignal(null); + const [sortBy, setSortBy] = createSignal('name_asc'); const load = async () => { try { - const res = await fetch(`${API}/api/admin/companies`); - if (!res.ok) throw new Error(); - const data = await res.json(); - const list = Array.isArray(data) ? data : (data.companies || []); - if (list.length === 0) setRows(FALLBACK_COMPANIES); - else setRows(list.map((c: any) => ({ + const r = await fetch('/api/admin/companies'); + if (!r.ok) throw new Error('Failed to fetch companies'); + const data = await r.json(); + const mapped: CompanyRecord[] = data.map((c: any) => ({ id: c.id, - name: c.company_name || c.companyName || c.name || '—', - industry: c.industry, - city: c.city, - email: c.email, - status: (c.status || 'ACTIVE').toUpperCase(), - updatedAt: c.updated_at || c.createdAt || '' - } as CompanyRecord))); - } catch { - setRows(FALLBACK_COMPANIES); + companyCode: c.id.slice(0, 8).toUpperCase(), + name: c.company_name, + registrationNumber: c.registration_number || 'Pending Registration', + industry: c.industry || 'Not Specified', + location: 'Not Specified', + joinedOn: new Date(c.created_at).toLocaleDateString(), + adminContact: { name: 'Company Admin', email: '...', phone: '...' }, + accountStatus: c.status.toUpperCase(), + verificationStatus: c.status === 'APPROVED' ? 'VERIFIED' : 'PENDING', + subscriptionType: 'STANDARD', + jobPostingsCount: 0, + totalHires: 0, + updatedAt: c.updated_at, + })); + setRows(mapped); + } catch (e) { + console.error(e); + setRows([]); } }; @@ -67,231 +62,77 @@ export default function CompanyManagementPage() { const filteredRows = createMemo(() => { let r = rows(); - if (statusFilter() !== 'all') r = r.filter((d) => d.status === statusFilter().toUpperCase()); + if (statusFilter() !== 'all') r = r.filter((d) => d.accountStatus === statusFilter().toUpperCase()); const q = search().toLowerCase(); if (q) { - r = r.filter(r => r.name.toLowerCase().includes(q) || (r.email || '').toLowerCase().includes(q)); + r = r.filter(it => it.name.toLowerCase().includes(q) || it.companyCode.toLowerCase().includes(q)); } const sorted = [...r]; - const mode = sortBy(); sorted.sort((a, b) => { - if (mode === 'name_desc') return b.name.localeCompare(a.name); - if (mode === 'industry_desc') return (b.industry || '').localeCompare(a.industry || ''); - if (mode === 'industry_asc') return (a.industry || '').localeCompare(b.industry || ''); + if (sortBy() === 'name_desc') return b.name.localeCompare(a.name); return a.name.localeCompare(b.name); }); return sorted; }); - const exportCsv = () => { - const headers = ['Company Name', 'Industry', 'City', 'Email', 'Status']; - const body = filteredRows().map((row) => [ - row.name || '', - row.industry || '', - row.city || '', - row.email || '', - row.status || '', - ]); - const csv = [headers, ...body] - .map((line) => line.map((cell) => `"${String(cell).replace(/"/g, '""')}"`).join(',')) - .join('\n'); - - const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' }); - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = 'companies.csv'; - link.click(); - URL.revokeObjectURL(url); - }; - - const openDetail = (row: CompanyRecord) => { setSelectedCompany(row); setListTab('view'); setOpenMenuId(null); }; - return (
-
-

Company Management

-

Manage and monitor all corporate accounts and business entities

+
+
+

Companies Management

+

Manage all registered companies and their verification status.

+
- {/* ── LIST VIEW ── */} -
- {/* Tabs */} -
- {([ - { key: 'all', label: 'All Companies', action: () => { setListTab('all'); setStatusFilter('all'); } }, - { key: 'create', label: 'Create Company', action: () => { setListTab('create'); setView('form'); } }, - { key: 'view', label: 'View Profile', action: () => setListTab('view') }, - ] as const).map((tab) => ( - - ))} -
+
+ setSearch(e.currentTarget.value)} + /> + +
- {/* View Profile panel */} - - -
-

No company selected

-

Click the menu on any company row and choose View Profile.

-
-
- -
-
-
-

{selectedCompany()!.name}

-

{selectedCompany()!.industry} • {selectedCompany()!.city}

-
- -
- -
- {(['overview', 'employees', 'verification'] as const).map((tab, i) => { - const labels = ['Overview', 'Employee List', 'Verification']; - const active = () => detailTab() === tab; - return ( - - ); - })} -
- -
- -
-
-

Company Profile

-
- {[ - { l: 'Industry', v: selectedCompany()!.industry || '—' }, - { l: 'City', v: selectedCompany()!.city || '—' }, - { l: 'Email', v: selectedCompany()!.email || '—' }, - { l: 'Last Updated', v: selectedCompany()!.updatedAt || '—' }, - ].map(item => ( -
- {item.l} - {item.v} -
- ))} -
-
-
-
-
- -
- - -
-
-
-
- -
-
-
- setSearch(e.currentTarget.value)} - placeholder="Search companies..." - style="height:34px;flex:1;border-radius:8px;border:1px solid #E5E7EB;background:white;padding:0 12px;font-size:13px;color:#111827;outline:none" - /> -
- - -
- {(['name_asc', 'name_desc', 'industry_asc', 'industry_desc'] as const).map((s, i) => ( - - ))} -
-
-
-
- - -
- {(['all', 'active', 'pending', 'inactive'] as const).map((s) => ( - - ))} -
-
-
- -
- -
- - - - {['Company Name', 'Industry', 'City', 'Email', 'Status', 'Actions'].map(h => ( - - ))} - - - - - {(row) => ( - - - - - - - - - )} - - -
{h}
{row.name}{row.industry || '—'}{row.city || '—'}{row.email || '—'} - - -
- - - -
-
-
-
-
-
+
+ + + + + + + + + + + {(c) => ( + + + + + + + )} + +
CompanyIndustryStatusJoined
+
{c.name}
+
{c.companyCode}
+
{c.industry} + + {c.accountStatus} + + {c.joinedOn}
diff --git a/src/routes/admin/customer.tsx b/src/routes/admin/customer.tsx index 473acd6..74dd6d6 100644 --- a/src/routes/admin/customer.tsx +++ b/src/routes/admin/customer.tsx @@ -13,12 +13,6 @@ type CustomerRecord = CrudRecord & { registeredDate?: string; }; -const FALLBACK_CUSTOMERS: CustomerRecord[] = [ - { id: 'cs1', name: 'Arjun Sharma', email: 'arjun.s@example.com', phone: '+91 98765 43210', location: 'Mumbai', totalOrders: 12, status: 'ACTIVE', registeredDate: '2026-01-15', updatedAt: '2026-03-27' }, - { id: 'cs2', name: 'Priya Nair', email: 'priya.n@example.com', phone: '+91 98765 43211', location: 'Bangalore', totalOrders: 5, status: 'ACTIVE', registeredDate: '2026-02-10', updatedAt: '2026-03-27' }, - { id: 'cs3', name: 'Rahul Verma', email: 'rahul.v@example.com', phone: '+91 98765 43212', location: 'Delhi', totalOrders: 0, status: 'PENDING', registeredDate: '2026-03-05', updatedAt: '2026-03-27' }, -]; - function StatusBadge(props: { status: string }) { const active = () => props.status === 'ACTIVE'; const pending = () => props.status === 'PENDING'; @@ -46,22 +40,23 @@ export default function CustomerManagementPage() { const load = async () => { try { - const res = await fetch(`${API}/api/admin/users?role=customer`); - if (!res.ok) throw new Error(); + const res = await fetch(`${API}/api/admin/users?role=CUSTOMER`); + if (!res.ok) throw new Error('Fetch failed'); const data = await res.json(); - const list = Array.isArray(data) ? data : (data.users || []); - if (list.length === 0) setRows(FALLBACK_CUSTOMERS); - else setRows(list.map((u: any) => ({ + const list = (Array.isArray(data) ? data : []).map((u: any) => ({ id: u.id, - name: u.name || u.full_name || '—', + name: u.full_name || u.email.split('@')[0], email: u.email, status: (u.status || 'ACTIVE').toUpperCase(), - updatedAt: u.updated_at || '', registeredDate: u.created_at ? new Date(u.created_at).toLocaleDateString() : '—', - totalOrders: u.total_orders || 0 - } as CustomerRecord))); - } catch { - setRows(FALLBACK_CUSTOMERS); + updatedAt: u.updated_at || u.created_at || '—', + location: 'Not Specified', + totalOrders: 0 + } as CustomerRecord)); + setRows(list); + } catch (e) { + console.error('Customer load error:', e); + setRows([]); } }; @@ -72,7 +67,7 @@ export default function CustomerManagementPage() { if (statusFilter() !== 'all') r = r.filter((d) => d.status === statusFilter().toUpperCase()); const q = search().toLowerCase(); if (q) { - r = r.filter(r => r.name.toLowerCase().includes(q) || r.email.toLowerCase().includes(q)); + r = r.filter(it => it.name.toLowerCase().includes(q) || it.email.toLowerCase().includes(q)); } const sorted = [...r]; const mode = sortBy(); diff --git a/src/routes/admin/employees/create.tsx b/src/routes/admin/employees/create.tsx index 0241dee..d866ddc 100644 --- a/src/routes/admin/employees/create.tsx +++ b/src/routes/admin/employees/create.tsx @@ -157,68 +157,7 @@ export default function CreateEmployeePage() { const accessToken = typeof sessionStorage !== 'undefined' ? (sessionStorage.getItem('nxtgauge_admin_access_token') || '').trim() : ''; - const getUsersByEmail = async () => { - const userRes = await fetch(`${API}/api/admin/users?q=${encodeURIComponent(email().trim())}&per_page=100`, { - headers: { - Accept: 'application/json', - ...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}), - }, - credentials: 'include', - }).catch(() => null); - const userPayload = await userRes?.json().catch(() => null); - const users = Array.isArray(userPayload) - ? userPayload - : Array.isArray(userPayload?.users) - ? userPayload.users - : Array.isArray(userPayload?.items) - ? userPayload.items - : []; - const exact = users.find((u: any) => String(u?.email || '').trim().toLowerCase() === email().trim().toLowerCase()); - const resolvedId = - userPayload?.user?.id - || userPayload?.data?.user?.id - || userPayload?.data?.id - || exact?.id - || userPayload?.id - || users?.[0]?.id; - return resolvedId; - }; - - let userId = await getUsersByEmail(); - if (!userId && createLoginCreds()) { - const regRes = await fetch(`${API}/auth/register`, { - method: 'POST', - headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, - credentials: 'include', - body: JSON.stringify({ - full_name: fullName().trim() || email().trim(), - email: email().trim().toLowerCase(), - password: loginPassword().trim(), - }), - }); - const regRaw = await regRes.text(); - let regPayload: any = {}; - if (regRaw) { - try { regPayload = JSON.parse(regRaw); } catch { regPayload = { message: regRaw }; } - } - if (!regRes.ok && (regPayload?.code || '').toString().toUpperCase() !== 'EMAIL_EXISTS') { - throw new Error(regPayload?.error || regPayload?.message || `Failed to create login credentials (${regRes.status})`); - } - userId = - regPayload?.user_id - || regPayload?.id - || regPayload?.user?.id - || regPayload?.data?.user?.id - || regPayload?.data?.id; - - if (!userId) { - userId = await getUsersByEmail(); - } - } - - if (!userId) throw new Error('Unable to resolve or create login user for this employee.'); - - const res = await fetch(`${API}/api/admin/employees`, { + const res = await fetch(`${API}/api/admin/employees/provision`, { headers: { 'Content-Type': 'application/json', Accept: 'application/json', @@ -227,16 +166,19 @@ export default function CreateEmployeePage() { method: 'POST', credentials: 'include', body: JSON.stringify({ - user_id: userId, + email: email().trim(), + full_name: fullName().trim(), role_id: roleId(), department_id: deptId(), designation_id: desigId(), employee_code: employeeCode() || undefined, + generate_login: createLoginCreds(), + password: createLoginCreds() ? loginPassword().trim() : undefined, }), }); if (!res.ok) { const body = await res.json().catch(() => ({})); - throw new Error((body as any).message || 'Failed to create employee'); + throw new Error((body as any).error || (body as any).message || 'Failed to create employee'); } navigate('/admin/employees'); } catch (err: any) { diff --git a/src/routes/admin/external-roles.tsx b/src/routes/admin/external-roles.tsx index 2b2df67..ef9f4cb 100644 --- a/src/routes/admin/external-roles.tsx +++ b/src/routes/admin/external-roles.tsx @@ -64,7 +64,8 @@ const USER_TYPE_OPTIONS = ['COMPANY', 'CANDIDATE', 'PHOTOGRAPHER', 'MAKEUP_ARTIS const ONBOARDING_SCHEMAS = [ 'company_onboarding_v1', 'job_seeker_onboarding_v1', 'customer_onboarding_v1', 'photographer_onboarding_v1', - 'makeup_artist_onboarding_v1', 'tutor_onboarding_v1', 'developer_onboarding_v1', 'video_editor_onboarding_v1', 'ugc_content_creator_onboarding_v1' + 'makeup_artist_onboarding_v1', 'tutor_onboarding_v1', 'developer_onboarding_v1', 'video_editor_onboarding_v1', + 'ugc_content_creator_onboarding_v1' ]; const MODULES_BY_VERTICAL = { @@ -173,7 +174,13 @@ export default function ExternalRoleManagementPage() { const [reqOnbAppr, setReqOnbAppr] = createSignal(true); const [reqLeadAppr, setReqLeadAppr] = createSignal(false); const [reqJobAppr, setReqJobAppr] = createSignal(false); - const [limitsJson, setLimitsJson] = createSignal('{}'); + + // Structured Limits + const [limitMaxLeadRequests, setLimitMaxLeadRequests] = createSignal(20); + const [limitMaxLeadAcceptances, setLimitMaxLeadAcceptances] = createSignal(10); + const [limitMaxActiveRequirements, setLimitMaxActiveRequirements] = createSignal(2); + const [limitMonthlyFreeJobs, setLimitMonthlyFreeJobs] = createSignal(1); + const [status, setStatus] = createSignal<'ACTIVE' | 'INACTIVE'>('ACTIVE'); const [isSaving, setIsSaving] = createSignal(false); const [error, setError] = createSignal(''); @@ -268,7 +275,8 @@ export default function ExternalRoleManagementPage() { const resetForm = () => { setEditingId(null); setName(''); setCode(''); setVertical('marketplace'); setCategory('provider'); setAssignedUserTypes([]); setOnboardingId(ONBOARDING_SCHEMAS[0]); setEnabledModules([]); setPermissions({}); - setReqOnbAppr(true); setReqLeadAppr(false); setReqJobAppr(false); setLimitsJson('{}'); + setReqOnbAppr(true); setReqLeadAppr(false); setReqJobAppr(false); + setLimitMaxLeadRequests(20); setLimitMaxLeadAcceptances(10); setLimitMaxActiveRequirements(2); setLimitMonthlyFreeJobs(1); setStatus('ACTIVE'); setFormTab('general'); setSearchParams({ view: undefined, editingId: undefined }); }; @@ -287,7 +295,19 @@ export default function ExternalRoleManagementPage() { setCategory(row.category); setAssignedUserTypes(row.assignedUserTypes || []); setOnboardingId(row.onboardingSchemaId); setEnabledModules(row.modules); setPermissions(row.permissions); setReqOnbAppr(row.requiresOnboardingApproval); setReqLeadAppr(row.requiresLeadApproval); - setReqJobAppr(row.requiresJobApproval); setLimitsJson(row.featureLimits); + setReqJobAppr(row.requiresJobApproval); + + // Parse limits + try { + const parsed = JSON.parse(row.featureLimits || '{}'); + setLimitMaxLeadRequests(parsed.maxLeadRequests ?? 20); + setLimitMaxLeadAcceptances(parsed.maxLeadAcceptances ?? 10); + setLimitMaxActiveRequirements(parsed.maxActiveRequirements ?? 2); + setLimitMonthlyFreeJobs(parsed.monthlyFreeJobs ?? 1); + } catch { + setLimitMaxLeadRequests(20); setLimitMaxLeadAcceptances(10); setLimitMaxActiveRequirements(2); setLimitMonthlyFreeJobs(1); + } + setStatus(row.status); setView('form'); setOpenMenuId(null); }; @@ -328,11 +348,6 @@ export default function ExternalRoleManagementPage() { setFormTab('general'); return; } - if (!validateJson(limitsJson())) { - setError('Invalid JSON in feature limits.'); - setFormTab('settings'); - return; - } setIsSaving(true); setError(''); @@ -353,7 +368,12 @@ export default function ExternalRoleManagementPage() { lead: reqLeadAppr(), job: reqJobAppr(), }, - feature_limits: JSON.parse(limitsJson()), + feature_limits: { + maxLeadRequests: limitMaxLeadRequests(), + maxLeadAcceptances: limitMaxLeadAcceptances(), + maxActiveRequirements: limitMaxActiveRequirements(), + monthlyFreeJobs: limitMonthlyFreeJobs(), + }, }; const endpoint = editingId() ? `${API}/api/admin/roles/${editingId()}` @@ -853,11 +873,27 @@ export default function ExternalRoleManagementPage() {
+
- - -

Invalid JSON format

-
+

Marketplace & Job Limits

+
+ + + + +
diff --git a/src/routes/admin/index.tsx b/src/routes/admin/index.tsx index 53fb34e..b22aed5 100644 --- a/src/routes/admin/index.tsx +++ b/src/routes/admin/index.tsx @@ -1,4 +1,4 @@ -import { For, Show, createEffect, createMemo, createSignal, onCleanup, onMount } from 'solid-js'; +import { For, Show, createEffect, createMemo, createSignal, onCleanup, onMount, createResource } from 'solid-js'; import { useSearchParams } from '@solidjs/router'; import { BarChart3, @@ -25,6 +25,23 @@ import { import type { RuntimeDashboardLayout } from '~/lib/runtime/types'; import { loadAdminDashboardLayout, saveAdminDashboardLayout } from '~/lib/runtime/storage'; +const API = import.meta.env.VITE_API_BASE_URL || 'http://localhost:8000'; + +async function fetchMetrics() { + const accessToken = typeof sessionStorage !== 'undefined' + ? (sessionStorage.getItem('nxtgauge_admin_access_token') || '').trim() + : ''; + const res = await fetch(`${API}/api/admin/dashboard/metrics`, { + headers: { + Accept: 'application/json', + ...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}), + }, + credentials: 'include', + }); + if (!res.ok) throw new Error('Failed to load metrics'); + return res.json(); +} + type WidgetStateKind = 'live' | 'empty' | 'pending'; type WidgetType = 'summary' | 'analytics'; type SortMode = 'layout' | 'name' | 'status'; @@ -191,11 +208,13 @@ function PendingPreview() { ); } -function LivePreview() { +function LivePreview(props: { value?: string; trend?: string; trendUp?: boolean }) { return (
-

12,458

-

↗ +12.5%

+

{props.value || '0'}

+

+ {props.trendUp ? '↗' : '↘'} {props.trend || '0%'} +

); } @@ -216,6 +235,25 @@ export default function AdminHomePage() { const [sortMode, setSortMode] = createSignal('layout'); const [gridLayout, setGridLayout] = createSignal('3x4'); + const [metrics] = createResource(fetchMetrics); + + const getWidgetState = (key: string) => { + if (key.startsWith('kpi_')) { + const idMap: Record = { + kpi_total_users: 'users', + kpi_active_companies: 'companies', + kpi_open_leads: 'leads', + kpi_credits_purchased: 'credits', + }; + if (metrics.loading) return { state: 'pending', statusLabel: 'Loading...' }; + const m = metrics()?.kpis?.find((k: any) => k.id === idMap[key]); + if (m) return { state: 'live', statusLabel: 'Live Data', data: m }; + return { state: 'empty', statusLabel: 'No Data' }; + } + const meta = WIDGET_META[key]; + return { state: meta?.state || 'empty', statusLabel: meta?.statusLabel || 'No Data' }; + }; + const orderedWidgets = createMemo(() => { const current = layout(); const rows = current.order @@ -243,9 +281,9 @@ export default function AdminHomePage() { next.sort((a, b) => { if (mode === 'name') return a.title.localeCompare(b.title); const rank = (key: string) => { - const state = WIDGET_META[key]?.state || 'empty'; - if (state === 'live') return 1; - if (state === 'empty') return 2; + const info = getWidgetState(key); + if (info.state === 'live') return 1; + if (info.state === 'empty') return 2; return 3; }; return rank(a.widgetKey) - rank(b.widgetKey); @@ -420,7 +458,8 @@ export default function AdminHomePage() { {(definition) => { const visible = () => layout().visibility[definition.widgetKey] !== false; const meta = WIDGET_META[definition.widgetKey]; - const state = meta?.state || 'empty'; + const stateInfo = getWidgetState(definition.widgetKey); + const state = stateInfo.state; return (
@@ -434,8 +473,8 @@ export default function AdminHomePage() {
- - {meta?.statusLabel || 'No Data'} + + {stateInfo.statusLabel}
diff --git a/src/routes/admin/jobs.tsx b/src/routes/admin/jobs.tsx index fd0b26b..942b2ad 100644 --- a/src/routes/admin/jobs.tsx +++ b/src/routes/admin/jobs.tsx @@ -13,12 +13,6 @@ type JobRecord = CrudRecord & { postedDate?: string; }; -const FALLBACK_JOBS: JobRecord[] = [ - { id: 'j1', name: 'Senior UI/UX Designer', title: 'Senior UI/UX Designer', company: 'Creative Designs', location: 'Remote', rate: '₹800–₹1200/hr', status: 'ACTIVE', postedDate: '2026-03-25', updatedAt: '2026-03-27' }, - { id: 'j2', name: 'Full Stack Developer', title: 'Full Stack Developer', company: 'Tech Solutions Inc', location: 'Mumbai', rate: '₹1000–₹1500/hr', status: 'PENDING_APPROVAL', postedDate: '2026-03-24', updatedAt: '2026-03-27' }, - { id: 'j3', name: 'Marketing Specialist', title: 'Marketing Specialist', company: 'Global Brands', location: 'Delhi', rate: '₹500–₹700/hr', status: 'DRAFT', postedDate: '2026-03-26', updatedAt: '2026-03-27' }, -]; - function StatusBadge(props: { status: string }) { const getColors = () => { switch (props.status) { @@ -56,11 +50,10 @@ export default function JobsManagementPage() { const load = async () => { try { const res = await fetch(`${API}/api/jobs?limit=100`); - if (!res.ok) throw new Error(); + if (!res.ok) throw new Error('Fetch failed'); const data = await res.json(); const list = Array.isArray(data) ? data : (data.jobs || []); - if (list.length === 0) setRows(FALLBACK_JOBS); - else setRows(list.map(j => ({ + setRows(list.map((j: any) => ({ id: j.id, name: j.title || '—', title: j.title || '—', @@ -71,8 +64,9 @@ export default function JobsManagementPage() { postedDate: j.created_at ? new Date(j.created_at).toLocaleDateString() : '—', updatedAt: j.updated_at || '' } as JobRecord))); - } catch { - setRows(FALLBACK_JOBS); + } catch (e) { + console.error('Jobs load error:', e); + setRows([]); } }; @@ -92,7 +86,7 @@ export default function JobsManagementPage() { list = list.filter((r) => r.status === map[statusFilter()]); } const q = search().toLowerCase(); - if (q) list = list.filter(r => r.title.toLowerCase().includes(q) || r.company?.toLowerCase().includes(q)); + if (q) list = list.filter(r => r.title.toLowerCase().includes(q) || (r.company || '').toLowerCase().includes(q)); const sorted = [...list]; sorted.sort((a, b) => { if (sortBy() === 'title_asc') return a.title.localeCompare(b.title); @@ -102,8 +96,7 @@ export default function JobsManagementPage() { if (sortBy() === 'posted_oldest') return aDate - bDate; return bDate - aDate; }); - list = sorted; - return list; + return sorted; }); const exportCsv = () => { diff --git a/src/routes/admin/leads.tsx b/src/routes/admin/leads.tsx index 462895c..8033140 100644 --- a/src/routes/admin/leads.tsx +++ b/src/routes/admin/leads.tsx @@ -7,7 +7,7 @@ const API = '/api/gateway'; const ROLE_OPTIONS = [ 'company', 'job_seeker', 'customer', 'photographer', 'video_editor', 'graphic_designer', 'social_media_manager', 'fitness_trainer', - 'catering_services', 'makeup_artist', 'tutor', 'developer', + 'catering_services', 'makeup_artist', 'tutor', 'developer', 'ugc_content_creator', ]; async function loadLeads(): Promise { diff --git a/src/routes/admin/onboarding-schemas/index.tsx b/src/routes/admin/onboarding-schemas/index.tsx index 597ff3f..294054a 100644 --- a/src/routes/admin/onboarding-schemas/index.tsx +++ b/src/routes/admin/onboarding-schemas/index.tsx @@ -315,8 +315,33 @@ export default function OnboardingManagementPage() { const [auditSearch, setAuditSearch] = createSignal(''); + const API = '/api/gateway'; + const load = async () => { - setRows(FALLBACK_SCHEMAS); + try { + const res = await fetch(`${API}/api/admin/onboarding-config`); + if (!res.ok) throw new Error('Fetch failed'); + const data = await res.json(); + const items = Array.isArray(data) ? data : (data.items || []); + const list = items.map((c: any) => ({ + id: c.id, + name: `${c.role_key} Onboarding Flow`, + code: `ONB-${c.role_key.toUpperCase()}-${c.version}`, + userType: 'PROFESSIONAL', + role: c.role_key, + description: `Standard onboarding flow for ${c.role_key}`, + steps: [], + requiredDocuments: [], + verificationType: 'IDENTITY', + status: (c.is_active ? 'ACTIVE' : 'DRAFT') as 'ACTIVE' | 'DRAFT', + version: `v${c.version}`, + updatedAt: new Date(c.updated_at).toLocaleDateString() + } as OnboardingSchema)); + setRows(list); + } catch (e) { + console.error('Onboarding load error:', e); + setRows(FALLBACK_SCHEMAS); + } }; onMount(() => void load()); diff --git a/src/routes/admin/ugc-content-creator.tsx b/src/routes/admin/ugc-content-creator.tsx new file mode 100644 index 0000000..a16fd27 --- /dev/null +++ b/src/routes/admin/ugc-content-creator.tsx @@ -0,0 +1,13 @@ +import RoleUserManagementTablePage from '~/components/admin/RoleUserManagementTablePage'; + +export default function UgcContentCreatorManagementPage() { + return ( + `/admin/users?id=${id}&tab=view`} + /> + ); +} diff --git a/src/routes/admin/users.tsx b/src/routes/admin/users.tsx index 073b97c..231dd3b 100644 --- a/src/routes/admin/users.tsx +++ b/src/routes/admin/users.tsx @@ -27,120 +27,6 @@ type ExternalUserRecord = { updatedAt: string; }; -const FALLBACK_USERS: ExternalUserRecord[] = [ - { - id: 'u1', - userCode: 'U-102348', - name: 'Marcus Thorne', - email: 'm.thorne@creative.co', - phone: '+91 98765 43210', - location: 'T. Nagar, Chennai', - joinedOn: '2026-01-10', - lastActive: '2 hours ago', - userType: 'PROFESSIONAL', - accountStatus: 'ACTIVE', - verificationStatus: 'VERIFIED', - onboardingStatus: 'COMPLETED', - registeredRoles: [ - { key: 'photographer', name: 'Photographer', status: 'ACTIVE', registeredOn: '2026-01-12' }, - { key: 'designer', name: 'Designer', status: 'ACTIVE', registeredOn: '2026-01-20' }, - ], - portfolioCount: 15, - notes: 'High response rate profile.', - updatedAt: '2026-04-02', - }, - { - id: 'u2', - userCode: 'U-102389', - name: 'Elena Rodriguez', - email: 'elena.rodriguez@techhub.io', - phone: '+91 98765 43211', - location: 'Guindy, Chennai', - joinedOn: '2026-02-04', - lastActive: '5 hours ago', - userType: 'PROFESSIONAL', - accountStatus: 'ACTIVE', - verificationStatus: 'IN_REVIEW', - onboardingStatus: 'SUBMITTED', - registeredRoles: [{ key: 'developer', name: 'Developer', status: 'PENDING', registeredOn: '2026-02-06' }], - portfolioCount: 4, - notes: 'Role pending verification checklist.', - updatedAt: '2026-04-02', - }, - { - id: 'u3', - userCode: 'U-102452', - name: 'Sam Jenkins', - email: 'sam.j@no-agency.net', - phone: '+91 98765 43212', - location: 'Adyar, Chennai', - joinedOn: '2026-03-01', - lastActive: '1 day ago', - userType: 'JOBSEEKER', - accountStatus: 'SUSPENDED', - verificationStatus: 'UNVERIFIED', - onboardingStatus: 'NOT_STARTED', - registeredRoles: [], - portfolioCount: 0, - notes: 'No documents submitted. Follow-up campaign candidate.', - updatedAt: '2026-04-01', - }, - { - id: 'u4', - userCode: 'U-102510', - name: 'Nodal Agency Ltd', - email: 'billing@nodal.agency', - phone: '+91 98765 43213', - location: 'Velachery, Chennai', - joinedOn: '2026-01-25', - lastActive: '20 mins ago', - userType: 'COMPANY', - accountStatus: 'ACTIVE', - verificationStatus: 'VERIFIED', - onboardingStatus: 'COMPLETED', - registeredRoles: [{ key: 'company', name: 'Company', status: 'ACTIVE', registeredOn: '2026-01-26' }], - portfolioCount: 0, - notes: 'Company account in good standing.', - updatedAt: '2026-04-02', - }, - { - id: 'u5', - userCode: 'U-102555', - name: 'Victor Vance', - email: 'vance@archive.io', - phone: '+91 98765 43214', - location: 'Anna Nagar, Chennai', - joinedOn: '2026-02-14', - lastActive: '10 mins ago', - userType: 'PROFESSIONAL', - accountStatus: 'ACTIVE', - verificationStatus: 'PENDING', - onboardingStatus: 'IN_PROGRESS', - registeredRoles: [{ key: 'archivist', name: 'Archivist', status: 'PENDING', registeredOn: '2026-02-18' }], - portfolioCount: 2, - notes: 'Awaiting ID re-upload.', - updatedAt: '2026-04-02', - }, - { - id: 'u6', - userCode: 'U-102640', - name: 'Jameson Lee', - email: 'jlee@global.net', - phone: '+91 98765 43215', - location: 'Porur, Chennai', - joinedOn: '2026-02-28', - lastActive: '3 hours ago', - userType: 'CUSTOMER', - accountStatus: 'ACTIVE', - verificationStatus: 'VERIFIED', - onboardingStatus: 'COMPLETED', - registeredRoles: [{ key: 'service-seeker', name: 'Service Seeker', status: 'ACTIVE', registeredOn: '2026-03-01' }], - portfolioCount: 0, - notes: 'Posts requirements regularly.', - updatedAt: '2026-04-02', - }, -]; - function StatusBadge(props: { status: string }) { const active = () => props.status === 'ACTIVE' || props.status === 'VERIFIED' || props.status === 'COMPLETED'; const pending = () => props.status === 'PENDING' || props.status === 'IN_REVIEW' || props.status === 'SUBMITTED' || props.status === 'IN_PROGRESS'; @@ -175,10 +61,40 @@ export default function UsersManagementPage() { const [filterOpen, setFilterOpen] = createSignal(false); const [openMenuId, setOpenMenuId] = createSignal(null); const [selectedUser, setSelectedUser] = createSignal(null); - const currentUser = createMemo(() => selectedUser() ?? FALLBACK_USERS[0]); + + const currentUser = createMemo(() => selectedUser()); const load = async () => { - setRows(FALLBACK_USERS); + try { + const r = await fetch('/api/gateway/api/admin/users'); + if (!r.ok) throw new Error('Failed to fetch users'); + const data = await r.json(); + + const mapped: ExternalUserRecord[] = (Array.isArray(data) ? data : []).map((u: any) => ({ + id: u.id, + userCode: u.id.slice(0, 8).toUpperCase(), + name: u.full_name || u.email.split('@')[0], + email: u.email, + location: 'Not Specified', + joinedOn: u.created_at ? u.created_at.slice(0, 10) : '—', + userType: u.roles.includes('COMPANY') ? 'COMPANY' : u.roles.includes('JOBSEEKER') ? 'JOBSEEKER' : u.roles.includes('CUSTOMER') ? 'CUSTOMER' : 'PROFESSIONAL', + accountStatus: (u.status || 'ACTIVE').toUpperCase(), + verificationStatus: 'VERIFIED', + onboardingStatus: 'COMPLETED', + registeredRoles: (u.roles || []).map((r: string) => ({ + key: r.toLowerCase(), + name: r.split('_').map(w => w.charAt(0) + w.slice(1).toLowerCase()).join(' '), + status: 'ACTIVE' + })), + portfolioCount: 0, + updatedAt: u.updated_at || u.created_at || '—', + })); + + setRows(mapped); + } catch (e) { + console.error(e); + setRows([]); + } }; onMount(() => void load()); @@ -339,43 +255,43 @@ export default function UsersManagementPage() {
-

User Profile: {currentUser().name}

+

User Profile: {currentUser()?.name}

View and manage account information, registered roles, and activity history.

- - + +
-
{currentUser().name.charAt(0)}
+
{currentUser()?.name.charAt(0)}

User ID

-

{currentUser().userCode}

+

{currentUser()?.userCode}

Account Status

- +

Email Address

-

{currentUser().email}

+

{currentUser()?.email}

Joined Date

-

{currentUser().joinedOn}

+

{currentUser()?.joinedOn}

Phone

-

{currentUser().phone || '—'}

+

{currentUser()?.phone || '—'}

Location

-

{currentUser().location}

+

{currentUser()?.location}

-

Total Roles

{currentUser().registeredRoles.length}

-

Active Roles

{currentUser().registeredRoles.filter((r) => r.status === 'ACTIVE').length}

-

Pending

{currentUser().registeredRoles.filter((r) => r.status === 'PENDING').length}

-

Portfolio

{currentUser().portfolioCount}

+

Total Roles

{currentUser()?.registeredRoles.length || 0}

+

Active Roles

{currentUser()?.registeredRoles.filter((r) => r.status === 'ACTIVE').length || 0}

+

Pending

{currentUser()?.registeredRoles.filter((r) => r.status === 'PENDING').length || 0}

+

Portfolio

{currentUser()?.portfolioCount || 0}

@@ -401,16 +317,16 @@ export default function UsersManagementPage() {

Personal Summary

-
Full Name{currentUser().name}
-
User Type{currentUser().userType}
-
Last Active{currentUser().lastActive || '—'}
+
Full Name{currentUser()?.name}
+
User Type{currentUser()?.userType}
+
Last Active{currentUser()?.lastActive || '—'}

Registered Roles

- 0} fallback={

No role registered yet. Use this list for re-engagement campaigns.

}> + 0} fallback={

No role registered yet.

}>
- {(role) => } + {(role) => }
@@ -419,18 +335,18 @@ export default function UsersManagementPage() {
-

Name

{currentUser().name}

-

Email

{currentUser().email}

-

Phone

{currentUser().phone || '—'}

-

Location

{currentUser().location}

+

Name

{currentUser()?.name}

+

Email

{currentUser()?.email}

+

Phone

{currentUser()?.phone || '—'}

+

Location

{currentUser()?.location}

- 0} fallback={

No role registrations yet.

}> + 0} fallback={

No role registrations yet.

}>
- + {(role) => (

{role.name}

@@ -445,27 +361,27 @@ export default function UsersManagementPage() {
-

Portfolio assets submitted: {currentUser().portfolioCount}

+

Portfolio assets submitted: {currentUser()?.portfolioCount || 0}

- - Onboarding: {currentUser().onboardingStatus.split('_').join(' ')} + + Onboarding: {currentUser()?.onboardingStatus.split('_').join(' ') || 'COMPLETED'}
-

Last Active: {currentUser().lastActive || '—'}

-

Joined on {currentUser().joinedOn}

+

Last Active: {currentUser()?.lastActive || '—'}

+

Joined on {currentUser()?.joinedOn}

-

{currentUser().notes || 'No notes yet.'}

+

{currentUser()?.notes || 'No notes yet.'}

diff --git a/src/routes/admin/verification.tsx b/src/routes/admin/verification.tsx index 283a36d..b91fdd3 100644 --- a/src/routes/admin/verification.tsx +++ b/src/routes/admin/verification.tsx @@ -148,100 +148,6 @@ const normalizeRoleSpecKey = (value: string) => { return 'PROFESSIONAL'; }; -const FALLBACK_VERIFICATION_ROWS: VerificationRow[] = [ - { - id: 'VR-92841', - applicantName: 'Sarah Jenkins', - requestType: 'Portfolio Approval', - roleLabel: 'Photographer', - submittedOn: '2026-04-01', - status: 'UNDER_REVIEW', - priority: 'HIGH', - userType: 'PROFESSIONAL', - area: 'T. Nagar, Chennai', - userId: 'u-1001', - roleKey: 'PHOTOGRAPHER', - }, - { - id: 'VR-92839', - applicantName: 'Zenith Tech Hub', - requestType: 'Company Approval', - roleLabel: 'Company', - submittedOn: '2026-04-01', - status: 'DOCUMENTS_REQUESTED', - priority: 'MEDIUM', - userType: 'COMPANY', - area: 'Guindy, Chennai', - userId: 'u-1002', - roleKey: 'COMPANY', - }, - { - id: 'VR-92835', - applicantName: 'Marcus Davis', - requestType: 'Profile Approval', - roleLabel: 'Graphic Designer', - submittedOn: '2026-03-31', - status: 'REVISION_REQUESTED', - priority: 'LOW', - userType: 'PROFESSIONAL', - area: 'Velachery, Chennai', - userId: 'u-1003', - roleKey: 'GRAPHIC_DESIGNER', - }, - { - id: 'VR-92812', - applicantName: 'Wedding Shoot Request', - requestType: 'Service Seeker Requirement', - roleLabel: 'Service Seeker', - submittedOn: '2026-03-31', - status: 'APPROVED', - priority: 'MEDIUM', - userType: 'CUSTOMER', - area: 'Adyar, Chennai', - userId: 'u-1004', - roleKey: 'CUSTOMER', - }, - { - id: 'VR-92798', - applicantName: 'Elena Petrova', - requestType: 'Job Seeker Approval', - roleLabel: 'Job Seeker', - submittedOn: '2026-03-30', - status: 'PENDING', - priority: 'MEDIUM', - userType: 'JOBSEEKER', - area: 'Anna Nagar, Chennai', - userId: 'u-1005', - roleKey: 'JOB_SEEKER', - }, - { - id: 'VR-92772', - applicantName: 'Arjun Service Seeker', - requestType: 'Service Seeker Profile Approval', - roleLabel: 'Service Seeker', - submittedOn: '2026-03-30', - status: 'UNDER_REVIEW', - priority: 'MEDIUM', - userType: 'CUSTOMER', - area: 'T. Nagar, Chennai', - userId: 'u-1006', - roleKey: 'CUSTOMER', - }, - { - id: 'VR-92744', - applicantName: 'Zenith Tech Hub - Senior Architect', - requestType: 'Job Approval', - roleLabel: 'Company', - submittedOn: '2026-03-29', - status: 'PENDING', - priority: 'HIGH', - userType: 'COMPANY', - area: 'Guindy, Chennai', - userId: 'u-1007', - roleKey: 'COMPANY', - }, -]; - export default function VerificationManagementPage() { const [rows, setRows] = createSignal([]); const [search, setSearch] = createSignal(''); @@ -379,10 +285,10 @@ export default function VerificationManagementPage() { }); const mergedRows = [...profileRows, ...portfolioRows, ...jobRows, ...requirementRows]; - setRows(mergedRows.length ? mergedRows : FALLBACK_VERIFICATION_ROWS); + setRows(mergedRows); } catch (e: any) { - setRows(FALLBACK_VERIFICATION_ROWS); - setError(e?.message ? `${e.message} Showing demo queue data.` : 'Could not load verification queue. Showing demo queue data.'); + setRows([]); + setError(e?.message ? e.message : 'Could not load verification queue.'); } }; @@ -436,7 +342,6 @@ export default function VerificationManagementPage() { }); const displayRows = createMemo(() => { - if (rows().length === 0) return FALLBACK_VERIFICATION_ROWS; return filteredRows(); }); @@ -678,15 +583,72 @@ export default function VerificationManagementPage() { window.localStorage.setItem(APPROVAL_QUEUE_STORAGE_KEY, JSON.stringify([item, ...filtered])); }; - const applySelectedStatus = (nextStatus: VerificationStatus) => { + const applySelectedStatus = async (nextStatus: VerificationStatus) => { const current = selectedRow(); if (!current) return; - const nextRow = { ...current, status: nextStatus }; - setSelectedRow(nextRow); - setRows((prev) => prev.map((item) => (item.id === current.id ? { ...item, status: nextStatus } : item))); - if (nextStatus === 'APPROVED') { - pushToApprovalQueue(nextRow); - setActionMessage('Verified and sent to Approval Management for final approval.'); + + const isApprove = nextStatus === 'APPROVED'; + const isReject = nextStatus === 'REJECTED'; + + if (!isApprove && !isReject) { + // local update only for intermediate states if needed, but usually we skip backend call here + setRows((prev) => prev.map((item) => (item.id === current.id ? { ...item, status: nextStatus } : item))); + setSelectedRow({ ...current, status: nextStatus }); + return; + } + + try { + const accessToken = typeof sessionStorage !== 'undefined' + ? sessionStorage.getItem('nxtgauge_admin_access_token') || '' + : ''; + const common = { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + ...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}), + }, + credentials: 'include' as const, + body: isReject ? JSON.stringify({ reason: requestNote() }) : undefined, + }; + + let endpoint = ''; + const rawId = current.id.split('-').pop() || ''; + const userId = current.userId; + + if (current.requestType === 'Job Approval') { + const jobId = current.payload?.id || rawId; + endpoint = `/api/admin/approvals/jobs/${jobId}/${isApprove ? 'approve' : 'reject'}`; + } else if (current.requestType === 'Service Seeker Requirement') { + const reqId = current.payload?.id || rawId; + endpoint = `/api/admin/approvals/requirements/${reqId}/${isApprove ? 'approve' : 'reject'}`; + } else if (current.requestType === 'Company Approval') { + endpoint = `/api/admin/approvals/profiles/company/${userId}/${isApprove ? 'approve' : 'reject'}`; + } else if (current.requestType === 'Service Seeker Profile Approval') { + endpoint = `/api/admin/approvals/profiles/customer/${userId}/${isApprove ? 'approve' : 'reject'}`; + } else if (current.requestType === 'Job Seeker Approval') { + endpoint = `/api/admin/approvals/profiles/job_seeker/${userId}/${isApprove ? 'approve' : 'reject'}`; + } else { + endpoint = `/api/admin/approvals/profiles/professional/${current.roleKey}/${userId}/${isApprove ? 'approve' : 'reject'}`; + } + + const res = await fetch(`${API}${endpoint}`, common); + if (!res.ok) { + const txt = await res.text(); + throw new Error(`Failed to update status (${res.status}): ${txt}`); + } + + setRows((prev) => prev.map((item) => (item.id === current.id ? { ...item, status: nextStatus } : item))); + setSelectedRow({ ...current, status: nextStatus }); + + if (isApprove) { + pushToApprovalQueue({ ...current, status: nextStatus }); + setActionMessage('Successfully verified and sent to Approval Management.'); + } else { + setActionMessage('Successfully rejected submission.'); + } + } catch (e: any) { + setError(e.message || 'Failed to update backend status'); } }; @@ -1028,28 +990,46 @@ export default function VerificationManagementPage() {
- 0}> -
-
-

Portfolio Photos

- {selectedPortfolio().length} images -
-
- - {(asset) => ( - - )} - +
+
+

Verification Requirements Checklist

+ System Audit +
+
+ + {(doc) => ( +
+
+
+ }> + + +
+ {doc.title} +
+ + {doc.status === 'SUBMITTED' ? 'RECEIVED' : 'MISSING'} + +
+ )} +
+ +
+

Profile Completeness

+
+ + {(field) => ( +
+
+ {field.label}: + {field.value && field.value !== '—' ? 'Filled' : 'Empty'} +
+ )} + +
- +

Reviewer Actions

diff --git a/src/routes/login.tsx b/src/routes/login.tsx index 4547258..eb10d5f 100644 --- a/src/routes/login.tsx +++ b/src/routes/login.tsx @@ -76,11 +76,9 @@ export default function LoginPage() { const body = JSON.stringify({ email: email().trim().toLowerCase(), password: password(), loginTarget: 'admin' }); const headers = { 'Content-Type': 'application/json', Accept: 'application/json', 'x-portal-target': 'admin' }; let payload: any = {}; let status = 500; let success = false; - for (const url of ['/api/gateway/users/auth/internal/login', '/api/gateway/auth/internal/login']) { - const r = await fetch(url, { method: 'POST', headers, credentials: 'include', body }); - status = r.status; payload = await r.json().catch(() => ({})); - if (r.ok) { success = true; break; } - } + const r = await fetch('/api/admin/auth/login', { method: 'POST', headers, credentials: 'include', body }); + status = r.status; payload = await r.json().catch(() => ({})); + if (r.ok) { success = true; } if (!success) { const fallback = status === 502 ? 'Auth service unavailable (502). Please retry in 1–2 minutes.' : 'Sign in failed.'; throw new Error(pickManagementLoginError(payload) || fallback);