zeroclaw/web
argenis de la rosa 3f5c57634b feat(web): replace native language selects with custom dropdown and fix RTL text alignment
This commit modernizes the language selector UI across the ZeroClaw web dashboard by replacing
native <select> elements with a shared custom dropdown component featuring styled flag icons,
proper RTL/LTR text direction support, and consistent left-aligned text for all languages.

Changes:
- Add LanguageSelector component with custom dropdown, flag badges, and check mark for selected option
- Wire document direction updates on locale change for Arabic, Hebrew, Urdu, and other RTL languages
- Fix RTL text alignment in dropdown options by applying dir attribute only to text spans
- Update pairing dialog and authenticated header to use the shared LanguageSelector
- Add locale metadata helpers: getLanguageOption, getLanguageOptionLabel, getLocaleDirection, applyLocaleToDocument
- Add Vitest configuration and unit tests for i18n helpers
- Add Playwright E2E tests verifying all 31 locales with flag visibility and lang/dir attributes

Testing:
- Unit tests: 5 passed (npm run test:unit)
- Build: passed (npm run build)
- E2E tests: 34 passed (npx playwright test)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:50:21 -04:00
..
dist feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00
e2e feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00
src feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00
.gitignore feat(gateway): add embedded web dashboard with React frontend 2026-02-21 16:14:01 +08:00
index.html Revert "feat(web): port electric dashboard UI from source repo" 2026-03-07 17:56:15 -05:00
package-lock.json feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00
package.json feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00
playwright.config.ts feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00
tsconfig.app.json Revert "feat(web): port electric dashboard UI from source repo" 2026-03-07 17:56:15 -05:00
tsconfig.json feat(gateway): add embedded web dashboard with React frontend 2026-02-21 16:14:01 +08:00
tsconfig.node.json feat(gateway): add embedded web dashboard with React frontend 2026-02-21 16:14:01 +08:00
vite.config.ts feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00
vitest.config.ts feat(web): replace native language selects with custom dropdown and fix RTL text alignment 2026-03-09 13:50:21 -04:00