├── .eslintrc.json ├── .gitignore ├── AGENTS.md ├── LICENSE ├── README.md ├── app ├── [locale] │ ├── layout.tsx │ ├── opengraph-image.tsx │ ├── page.tsx │ └── twitter-image.tsx ├── api │ ├── bangumi-search │ │ └── route.ts │ ├── proxy │ │ └── route.ts │ ├── search │ │ └── route.ts │ └── warmup │ │ └── route.ts ├── components │ ├── GameCanvas.tsx │ ├── GameGrid.tsx │ ├── GameSearchDialog.tsx │ ├── ImageCropDialog.tsx │ ├── TextEditDialog.tsx │ └── ui │ │ └── tooltip.tsx ├── constants │ └── index.ts ├── favicon.ico ├── globals.css ├── hooks │ ├── useCanvasEvents.tsx │ └── useCanvasRenderer.tsx ├── layout.tsx ├── page.tsx ├── types │ └── index.ts └── utils │ ├── canvas.ts │ ├── canvasHelpers.ts │ └── indexedDB.ts ├── components.json ├── components ├── ApiWarmer.tsx ├── GoogleAnalytics.tsx └── ui │ ├── button.tsx │ ├── dialog.tsx │ ├── input.tsx │ ├── tabs.tsx │ └── tooltip.tsx ├── lib ├── analytics.ts ├── i18n │ ├── getMessages.ts │ ├── locales.ts │ └── provider.tsx └── utils.ts ├── messages ├── de.ts ├── en.ts ├── es.ts ├── fr.ts ├── it.ts ├── ja.ts ├── ko.ts ├── nl.ts ├── pl.ts ├── pt.ts ├── ru.ts ├── tr.ts ├── zh-CN.ts └── zh-TW.ts ├── middleware.ts ├── next.config.js ├── next.config.mjs ├── package.json ├── playwright.config.ts ├── postcss.config.mjs ├── public ├── robots.txt └── sitemap.xml ├── screenshot └── me.png ├── tailwind.config.js ├── test-results └── .last-run.json ├── tests └── i18n.spec.ts ├── tsconfig.json └── yarn.lock /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/.gitignore -------------------------------------------------------------------------------- /AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/AGENTS.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/README.md -------------------------------------------------------------------------------- /app/[locale]/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/[locale]/layout.tsx -------------------------------------------------------------------------------- /app/[locale]/opengraph-image.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/[locale]/opengraph-image.tsx -------------------------------------------------------------------------------- /app/[locale]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/[locale]/page.tsx -------------------------------------------------------------------------------- /app/[locale]/twitter-image.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/[locale]/twitter-image.tsx -------------------------------------------------------------------------------- /app/api/bangumi-search/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/api/bangumi-search/route.ts -------------------------------------------------------------------------------- /app/api/proxy/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/api/proxy/route.ts -------------------------------------------------------------------------------- /app/api/search/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/api/search/route.ts -------------------------------------------------------------------------------- /app/api/warmup/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/api/warmup/route.ts -------------------------------------------------------------------------------- /app/components/GameCanvas.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/components/GameCanvas.tsx -------------------------------------------------------------------------------- /app/components/GameGrid.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/components/GameGrid.tsx -------------------------------------------------------------------------------- /app/components/GameSearchDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/components/GameSearchDialog.tsx -------------------------------------------------------------------------------- /app/components/ImageCropDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/components/ImageCropDialog.tsx -------------------------------------------------------------------------------- /app/components/TextEditDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/components/TextEditDialog.tsx -------------------------------------------------------------------------------- /app/components/ui/tooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/components/ui/tooltip.tsx -------------------------------------------------------------------------------- /app/constants/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/constants/index.ts -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/globals.css -------------------------------------------------------------------------------- /app/hooks/useCanvasEvents.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/hooks/useCanvasEvents.tsx -------------------------------------------------------------------------------- /app/hooks/useCanvasRenderer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/hooks/useCanvasRenderer.tsx -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/layout.tsx -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/page.tsx -------------------------------------------------------------------------------- /app/types/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/types/index.ts -------------------------------------------------------------------------------- /app/utils/canvas.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/utils/canvas.ts -------------------------------------------------------------------------------- /app/utils/canvasHelpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/utils/canvasHelpers.ts -------------------------------------------------------------------------------- /app/utils/indexedDB.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/app/utils/indexedDB.ts -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components.json -------------------------------------------------------------------------------- /components/ApiWarmer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components/ApiWarmer.tsx -------------------------------------------------------------------------------- /components/GoogleAnalytics.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components/GoogleAnalytics.tsx -------------------------------------------------------------------------------- /components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components/ui/button.tsx -------------------------------------------------------------------------------- /components/ui/dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components/ui/dialog.tsx -------------------------------------------------------------------------------- /components/ui/input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components/ui/input.tsx -------------------------------------------------------------------------------- /components/ui/tabs.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components/ui/tabs.tsx -------------------------------------------------------------------------------- /components/ui/tooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/components/ui/tooltip.tsx -------------------------------------------------------------------------------- /lib/analytics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/lib/analytics.ts -------------------------------------------------------------------------------- /lib/i18n/getMessages.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/lib/i18n/getMessages.ts -------------------------------------------------------------------------------- /lib/i18n/locales.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/lib/i18n/locales.ts -------------------------------------------------------------------------------- /lib/i18n/provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/lib/i18n/provider.tsx -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/lib/utils.ts -------------------------------------------------------------------------------- /messages/de.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/de.ts -------------------------------------------------------------------------------- /messages/en.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/en.ts -------------------------------------------------------------------------------- /messages/es.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/es.ts -------------------------------------------------------------------------------- /messages/fr.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/fr.ts -------------------------------------------------------------------------------- /messages/it.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/it.ts -------------------------------------------------------------------------------- /messages/ja.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/ja.ts -------------------------------------------------------------------------------- /messages/ko.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/ko.ts -------------------------------------------------------------------------------- /messages/nl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/nl.ts -------------------------------------------------------------------------------- /messages/pl.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/pl.ts -------------------------------------------------------------------------------- /messages/pt.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/pt.ts -------------------------------------------------------------------------------- /messages/ru.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/ru.ts -------------------------------------------------------------------------------- /messages/tr.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/tr.ts -------------------------------------------------------------------------------- /messages/zh-CN.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/zh-CN.ts -------------------------------------------------------------------------------- /messages/zh-TW.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/messages/zh-TW.ts -------------------------------------------------------------------------------- /middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/middleware.ts -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/next.config.js -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/next.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/package.json -------------------------------------------------------------------------------- /playwright.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/playwright.config.ts -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/postcss.config.mjs -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/public/robots.txt -------------------------------------------------------------------------------- /public/sitemap.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/public/sitemap.xml -------------------------------------------------------------------------------- /screenshot/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/screenshot/me.png -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/tailwind.config.js -------------------------------------------------------------------------------- /test-results/.last-run.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/test-results/.last-run.json -------------------------------------------------------------------------------- /tests/i18n.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/tests/i18n.spec.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SomiaWhiteRing/game-grid/HEAD/yarn.lock --------------------------------------------------------------------------------