Files
sofa/package.json
T
jake 5aaf88591b feat(i18n): add RTL layout support for Arabic and other RTL locales
- Export `isLocaleRTL` from `@sofa/i18n` to detect right-to-left locales
- Native: call `I18nManager.allowRTL` / `forceRTL` on locale init and on locale change; reload the app immediately if the current layout direction doesn't match the persisted locale, and prompt the user to restart when switching between LTR and RTL locales
- Native: flip the `SettingsRow` chevron to `IconChevronLeft` when `I18nManager.isRTL` is true
- Native: add Arabic Intl polyfill locale data (PluralRules, NumberFormat, DateTimeFormat, RelativeTimeFormat)
- Web: enable `"rtl": true` in `components.json` and regenerate all shadcn UI components to use CSS logical properties (`ms-*`, `me-*`, `ps-*`, `pe-*`, `text-start`, `text-end`) instead of physical `ml-*`/`mr-*`/`text-left` equivalents
- Web: apply the same logical-property conversions to non-generated components (nav-bar, settings sections, title cards, hero banner, continue-watching card)
- Web: set `document.dir` based on the active locale's RTL flag in the i18n initialiser and root route
- Add `../../packages/i18n/src/po.d.ts` to native `tsconfig.json` includes so TypeScript accepts `.po` imports
2026-03-20 19:25:04 -04:00

63 lines
1.8 KiB
JSON

{
"name": "sofa-monorepo",
"private": true,
"workspaces": {
"packages": [
"apps/*",
"packages/*"
],
"catalog": {
"@better-auth/expo": "1.5.5",
"@orpc/client": "1.13.9",
"@orpc/contract": "1.13.9",
"@orpc/tanstack-query": "1.13.9",
"@tanstack/react-query": "5.91.3",
"@types/bun": "1.3.11",
"@types/node": "25.5.0",
"@types/react": "19.2.14",
"better-auth": "1.5.5",
"@lingui/babel-plugin-lingui-macro": "5.9.3",
"@lingui/cli": "5.9.3",
"@lingui/conf": "5.9.3",
"@lingui/core": "5.9.3",
"@lingui/format-po": "5.9.3",
"@lingui/metro-transformer": "5.9.3",
"@lingui/react": "5.9.3",
"@lingui/vite-plugin": "5.9.3",
"react": "19.2.0",
"react-dom": "19.2.0",
"tailwind-merge": "3.5.0",
"tailwindcss": "4.2.2",
"thumbhash": "0.1.1",
"typescript": "5.9.3",
"zod": "4.3.6"
}
},
"scripts": {
"dev": "turbo run dev",
"dev:web": "turbo run dev --filter=@sofa/web --filter=@sofa/server",
"dev:native": "turbo run dev --filter=@sofa/native",
"dev:docs": "cd docs && bun run dev",
"build": "turbo run build",
"lint": "turbo run lint",
"format": "turbo run format",
"format:check": "turbo run format:check",
"check-types": "turbo run check-types",
"test": "turbo run test",
"generate:openapi": "bun scripts/generate-openapi-spec.ts && cd docs && bun run generate:api-docs",
"i18n:extract": "lingui extract",
"i18n:claude": "bun packages/i18n/scripts/claude.ts"
},
"devDependencies": {
"@lingui/cli": "catalog:",
"@lingui/conf": "catalog:",
"@lingui/format-po": "catalog:",
"eslint-plugin-lingui": "0.11.0",
"oxfmt": "0.41.0",
"oxlint": "1.56.0",
"turbo": "2.8.20",
"typescript": "catalog:"
},
"packageManager": "bun@1.3.11"
}