mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-07-14 18:15:56 -04:00
- 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
67 lines
2.0 KiB
JSON
67 lines
2.0 KiB
JSON
{
|
|
"name": "@sofa/web",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite --host 0.0.0.0",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"lint": "oxlint",
|
|
"format": "oxfmt --config ../../.oxfmtrc.json",
|
|
"format:check": "oxfmt --check --config ../../.oxfmtrc.json",
|
|
"check-types": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@base-ui/react": "1.3.0",
|
|
"@fontsource-variable/dm-sans": "5.2.8",
|
|
"@fontsource-variable/geist-mono": "5.2.7",
|
|
"@fontsource/dm-serif-display": "5.2.8",
|
|
"@lingui/react": "catalog:",
|
|
"@orpc/client": "catalog:",
|
|
"@orpc/contract": "catalog:",
|
|
"@orpc/tanstack-query": "catalog:",
|
|
"@player.style/sutro": "0.2.1",
|
|
"@rolldown/plugin-babel": "0.2.2",
|
|
"@sofa/api": "workspace:*",
|
|
"@sofa/i18n": "workspace:*",
|
|
"@tabler/icons-react": "3.40.0",
|
|
"@tanstack/react-hotkeys": "0.4.2",
|
|
"@tanstack/react-query": "catalog:",
|
|
"@tanstack/react-router": "1.168.1",
|
|
"better-auth": "catalog:",
|
|
"class-variance-authority": "0.7.1",
|
|
"clsx": "2.1.1",
|
|
"cmdk": "1.1.1",
|
|
"jotai": "2.18.1",
|
|
"motion": "12.38.0",
|
|
"react": "catalog:",
|
|
"react-dom": "catalog:",
|
|
"shadcn": "4.1.0",
|
|
"sonner": "2.0.7",
|
|
"tailwind-merge": "catalog:",
|
|
"thumbhash": "catalog:",
|
|
"tw-animate-css": "1.4.0",
|
|
"youtube-video-element": "1.9.0"
|
|
},
|
|
"devDependencies": {
|
|
"@lingui/babel-plugin-lingui-macro": "catalog:",
|
|
"@lingui/vite-plugin": "catalog:",
|
|
"@tailwindcss/vite": "4.2.2",
|
|
"@tanstack/devtools-vite": "0.6.0",
|
|
"@tanstack/react-devtools": "0.10.0",
|
|
"@tanstack/react-query-devtools": "5.91.3",
|
|
"@tanstack/react-router-devtools": "1.166.10",
|
|
"@tanstack/router-plugin": "1.167.1",
|
|
"@types/bun": "catalog:",
|
|
"@types/node": "catalog:",
|
|
"@types/react": "catalog:",
|
|
"@types/react-dom": "19.2.3",
|
|
"@vitejs/plugin-react": "6.0.1",
|
|
"babel-plugin-react-compiler": "1.0.0",
|
|
"tailwindcss": "catalog:",
|
|
"typescript": "catalog:",
|
|
"vite": "8.0.1"
|
|
}
|
|
}
|