scrabble-solver 2.18.10-alpha.2 → 2.19.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/{packages/scrabble-solver/.next → .next}/build-manifest.json +16 -16
- package/{packages/scrabble-solver/.next → .next}/prerender-manifest.json +4 -4
- package/{packages/scrabble-solver/.next → .next}/react-loadable-manifest.json +27 -21
- package/{packages/scrabble-solver/.next → .next}/routes-manifest.json +7 -17
- package/.next/server/chunks/309.js +1 -0
- package/.next/server/chunks/344.js +1 -0
- package/.next/server/chunks/371.js +1 -0
- package/.next/server/chunks/465.js +1 -0
- package/.next/server/chunks/612.js +5 -0
- package/.next/server/chunks/623.js +1 -0
- package/.next/server/chunks/641.js +1 -0
- package/.next/server/chunks/67.js +1 -0
- package/{packages/scrabble-solver/.next → .next}/server/chunks/692.js +1 -1
- package/.next/server/chunks/705.js +1 -0
- package/.next/server/chunks/712.js +1 -0
- package/.next/server/chunks/715.js +1 -0
- package/.next/server/chunks/812.js +1 -0
- package/.next/server/chunks/846.js +1 -0
- package/.next/server/chunks/886.js +1 -0
- package/.next/server/chunks/923.js +1 -0
- package/.next/server/chunks/942.js +1 -0
- package/.next/server/chunks/953.js +1 -0
- package/.next/server/chunks/961.js +1 -0
- package/.next/server/chunks/97.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/{packages/scrabble-solver/.next/server/pages/not-found.html → .next/server/pages/404.html} +2 -2
- package/.next/server/pages/404.js +28 -0
- package/{packages/scrabble-solver/.next → .next}/server/pages/500.html +2 -2
- package/.next/server/pages/_document.js +28 -0
- package/.next/server/pages/api/dictionary/[locale]/[word].js +2 -0
- package/{packages/scrabble-solver/.next → .next}/server/pages/api/dictionary/[locale].js +1 -1
- package/.next/server/pages/api/solve.js +1 -0
- package/.next/server/pages/api/verify.js +1 -0
- package/.next/server/pages/index.html +29 -0
- package/.next/server/pages/index.js +30 -0
- package/.next/server/pages/index.json +1 -0
- package/{packages/scrabble-solver/.next → .next}/server/pages-manifest.json +3 -4
- package/.next/server/preview-props.json +5 -0
- package/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.html +29 -0
- package/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.json +1 -0
- package/{packages/scrabble-solver/.next → .next}/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.meta +1 -1
- package/.next/server/webpack-api-runtime.js +1 -0
- package/.next/static/Ng_NN9gQywZowmg2O0pgm/_buildManifest.js +1 -0
- package/.next/static/chunks/100.52dda92e5e8a952a.js +1 -0
- package/{packages/scrabble-solver/.next/server/chunks/953.js → .next/static/chunks/307.8fdeb1732d749981.js} +1 -1
- package/.next/static/chunks/363.25b64181ebca205d.js +1 -0
- package/.next/static/chunks/422.8327da4bbddd0842.js +1 -0
- package/.next/static/chunks/519.9f9c2d29933bf2ef.js +1 -0
- package/{packages/scrabble-solver/.next/static/chunks/541.dcd9e8b804f88da5.js → .next/static/chunks/541.c69629e483176ad7.js} +1 -1
- package/.next/static/chunks/628.3175e816bc17d5c7.js +1 -0
- package/{packages/scrabble-solver/.next/static/chunks/631.98d42abad0a60af6.js → .next/static/chunks/631.3623a2830ab30d1e.js} +1 -1
- package/.next/static/chunks/663.cfbde775630d10fd.js +1 -0
- package/.next/static/chunks/693.55a42abad20cbdaa.js +1 -0
- package/.next/static/chunks/73.73bfdde6a7a9b42b.js +1 -0
- package/{packages/scrabble-solver/.next/static/chunks/744-5ad846426b8f4514.js → .next/static/chunks/744-5baf05ff91b58ebe.js} +2 -2
- package/.next/static/chunks/820.e8f3e1c85e1657ec.js +1 -0
- package/.next/static/chunks/865.5265cef552d53595.js +1 -0
- package/.next/static/chunks/912.b802c1066a130cf6.js +1 -0
- package/.next/static/chunks/939.63d71e74e359a311.js +1 -0
- package/.next/static/chunks/pages/404-8013c66eb40999e8.js +1 -0
- package/.next/static/chunks/pages/_app-aee589671f9cc846.js +1 -0
- package/.next/static/chunks/pages/index-a96995844e778716.js +1 -0
- package/.next/static/chunks/webpack-4bca6879a7d98e24.js +1 -0
- package/.next/static/css/90e8d51d917ed7e3.css +1 -0
- package/README.md +5 -217
- package/bin/scrabble-solver.js +35 -4
- package/{packages/scrabble-solver/next.config.js → next.config.js} +3 -3
- package/package.json +92 -52
- package/{packages/scrabble-solver/public → public}/llms.txt +1 -1
- package/{packages/scrabble-solver/public → public}/service-worker.js +1 -1
- package/.gitattributes +0 -2
- package/.next/trace +0 -1
- package/.next/trace-build +0 -1
- package/.oxfmtrc.json +0 -17
- package/.oxlintrc.json +0 -314
- package/CLAUDE.md +0 -134
- package/HISTORY.md +0 -13
- package/bun-test-globals.d.ts +0 -1
- package/bun.lock +0 -2150
- package/bun.test.preload.ts +0 -21
- package/bunfig.toml +0 -9
- package/e2e/app.spec.ts +0 -124
- package/e2e/bugs/112-character-bonus.spec.ts +0 -25
- package/e2e/bugs/129-esc-sidebar.spec.ts +0 -17
- package/e2e/bugs/2-q-tile-in-english.spec.ts +0 -19
- package/e2e/bugs/3-x-tile-in-polish.spec.ts +0 -19
- package/e2e/bugs/30-click-inside-radio-icon.spec.ts +0 -25
- package/e2e/bugs/333-disabled-radio-cursor.spec.ts +0 -18
- package/e2e/bugs/342-results-sorting.spec.ts +0 -30
- package/e2e/bugs/352-dictionary-race-condition.spec.ts +0 -27
- package/e2e/bugs/363-dictionary-input-unique-words.spec.ts +0 -27
- package/e2e/bugs/380-transliteration-when-pasting.spec.ts +0 -55
- package/e2e/bugs/398-digraphs-in-created-words.spec.ts +0 -23
- package/e2e/bugs/401-board-state-on-game-change.spec.ts +0 -24
- package/e2e/bugs/445-tile-text-selection.spec.ts +0 -38
- package/e2e/bugs/451-results-list-gap-hover.spec.ts +0 -35
- package/e2e/bugs/452-stale-translations-cache.spec.ts +0 -32
- package/e2e/bugs/461-regexp-highlight.spec.ts +0 -33
- package/e2e/features/198-highlight-unreachable-cells.spec.ts +0 -84
- package/e2e/features/427-highlight-created-words.spec.ts +0 -86
- package/e2e/features/430-highlight-unreachable-cells-results.spec.ts +0 -74
- package/e2e/features/91-hover-remaining-tile-highlights.spec.ts +0 -97
- package/e2e/features/hidden-coordinates-migration.spec.ts +0 -27
- package/e2e/features/result-candidate-picker.spec.ts +0 -21
- package/e2e/features/results-interactions.spec.ts +0 -170
- package/e2e/features/solver-paths.spec.ts +0 -45
- package/e2e/features/words-dictionary-search.spec.ts +0 -36
- package/e2e/features/words-empty-state.spec.ts +0 -42
- package/e2e/features/words-interactions.spec.ts +0 -179
- package/e2e/features/words-preview.spec.ts +0 -140
- package/e2e/features/words-table-filtering.spec.ts +0 -22
- package/e2e/features/words-table-sorting.spec.ts +0 -33
- package/e2e/lib/actions.ts +0 -202
- package/e2e/lib/index.ts +0 -2
- package/e2e/lib/selectors.ts +0 -108
- package/e2e/tsconfig.json +0 -10
- package/nx.json +0 -39
- package/packages/configs/README.md +0 -3
- package/packages/configs/build/games/crossplay.d.ts +0 -19
- package/packages/configs/build/games/crossplay.js +0 -73
- package/packages/configs/build/games/index.d.ts +0 -9
- package/packages/configs/build/games/index.js +0 -25
- package/packages/configs/build/games/kelimelik.d.ts +0 -19
- package/packages/configs/build/games/kelimelik.js +0 -65
- package/packages/configs/build/games/letterLeague.d.ts +0 -19
- package/packages/configs/build/games/letterLeague.js +0 -161
- package/packages/configs/build/games/literaki.d.ts +0 -26
- package/packages/configs/build/games/literaki.js +0 -110
- package/packages/configs/build/games/scrabble.d.ts +0 -19
- package/packages/configs/build/games/scrabble.js +0 -78
- package/packages/configs/build/games/scrabbleDuel.d.ts +0 -19
- package/packages/configs/build/games/scrabbleDuel.js +0 -50
- package/packages/configs/build/games/superScrabble.d.ts +0 -19
- package/packages/configs/build/games/superScrabble.js +0 -141
- package/packages/configs/build/games/wordfeud.d.ts +0 -19
- package/packages/configs/build/games/wordfeud.js +0 -81
- package/packages/configs/build/games/wyrazy.d.ts +0 -19
- package/packages/configs/build/games/wyrazy.js +0 -73
- package/packages/configs/build/getConfig.d.ts +0 -2
- package/packages/configs/build/getConfig.js +0 -46
- package/packages/configs/build/hasConfig.d.ts +0 -2
- package/packages/configs/build/hasConfig.js +0 -42
- package/packages/configs/build/index.d.ts +0 -5
- package/packages/configs/build/index.js +0 -44
- package/packages/configs/build/languages/english.d.ts +0 -15
- package/packages/configs/build/languages/english.js +0 -456
- package/packages/configs/build/languages/french.d.ts +0 -2
- package/packages/configs/build/languages/french.js +0 -37
- package/packages/configs/build/languages/german.d.ts +0 -2
- package/packages/configs/build/languages/german.js +0 -40
- package/packages/configs/build/languages/index.d.ts +0 -8
- package/packages/configs/build/languages/index.js +0 -24
- package/packages/configs/build/languages/persian.d.ts +0 -2
- package/packages/configs/build/languages/persian.js +0 -43
- package/packages/configs/build/languages/polish.d.ts +0 -4
- package/packages/configs/build/languages/polish.js +0 -119
- package/packages/configs/build/languages/romanian.d.ts +0 -3
- package/packages/configs/build/languages/romanian.js +0 -64
- package/packages/configs/build/languages/spanish.d.ts +0 -2
- package/packages/configs/build/languages/spanish.js +0 -39
- package/packages/configs/build/languages/turkish.d.ts +0 -3
- package/packages/configs/build/languages/turkish.js +0 -75
- package/packages/configs/package.json +0 -41
- package/packages/configs/src/games/crossplay.ts +0 -87
- package/packages/configs/src/games/index.ts +0 -9
- package/packages/configs/src/games/kelimelik.ts +0 -63
- package/packages/configs/src/games/letterLeague.ts +0 -177
- package/packages/configs/src/games/literaki.ts +0 -108
- package/packages/configs/src/games/scrabble.ts +0 -76
- package/packages/configs/src/games/scrabbleDuel.ts +0 -56
- package/packages/configs/src/games/superScrabble.ts +0 -139
- package/packages/configs/src/games/wordfeud.ts +0 -79
- package/packages/configs/src/games/wyrazy.ts +0 -71
- package/packages/configs/src/getConfig.ts +0 -14
- package/packages/configs/src/hasConfig.ts +0 -8
- package/packages/configs/src/index.ts +0 -6
- package/packages/configs/src/languages/english.ts +0 -469
- package/packages/configs/src/languages/french.ts +0 -36
- package/packages/configs/src/languages/german.ts +0 -39
- package/packages/configs/src/languages/index.ts +0 -8
- package/packages/configs/src/languages/persian.ts +0 -42
- package/packages/configs/src/languages/polish.ts +0 -120
- package/packages/configs/src/languages/romanian.ts +0 -64
- package/packages/configs/src/languages/spanish.ts +0 -38
- package/packages/configs/src/languages/turkish.ts +0 -75
- package/packages/configs/tsconfig.json +0 -10
- package/packages/constants/README.md +0 -3
- package/packages/constants/build/index.d.ts +0 -12
- package/packages/constants/build/index.js +0 -12
- package/packages/constants/package.json +0 -30
- package/packages/constants/src/index.ts +0 -17
- package/packages/constants/tsconfig.json +0 -10
- package/packages/dictionaries/README.md +0 -3
- package/packages/dictionaries/bin/remove-dictionaries.js +0 -13
- package/packages/dictionaries/bin/update-dictionaries.js +0 -14
- package/packages/dictionaries/build/Dictionaries.d.ts +0 -12
- package/packages/dictionaries/build/Dictionaries.js +0 -53
- package/packages/dictionaries/build/constants.d.ts +0 -3
- package/packages/dictionaries/build/constants.js +0 -11
- package/packages/dictionaries/build/index.d.ts +0 -3
- package/packages/dictionaries/build/index.js +0 -20
- package/packages/dictionaries/build/lib/DiskCache.d.ts +0 -17
- package/packages/dictionaries/build/lib/DiskCache.js +0 -64
- package/packages/dictionaries/build/lib/LayeredCache.d.ts +0 -12
- package/packages/dictionaries/build/lib/LayeredCache.js +0 -53
- package/packages/dictionaries/build/lib/MemoryCache.d.ts +0 -12
- package/packages/dictionaries/build/lib/MemoryCache.js +0 -33
- package/packages/dictionaries/build/lib/createAsyncProxy.d.ts +0 -3
- package/packages/dictionaries/build/lib/createAsyncProxy.js +0 -19
- package/packages/dictionaries/build/lib/createCacheTimestampComparator.d.ts +0 -4
- package/packages/dictionaries/build/lib/createCacheTimestampComparator.js +0 -20
- package/packages/dictionaries/build/lib/downloadDictionary.d.ts +0 -3
- package/packages/dictionaries/build/lib/downloadDictionary.js +0 -20
- package/packages/dictionaries/build/lib/getDictionaryFilepath.d.ts +0 -2
- package/packages/dictionaries/build/lib/getDictionaryFilepath.js +0 -12
- package/packages/dictionaries/build/lib/index.d.ts +0 -7
- package/packages/dictionaries/build/lib/index.js +0 -17
- package/packages/dictionaries/build/types.d.ts +0 -7
- package/packages/dictionaries/build/types.js +0 -2
- package/packages/dictionaries/package.json +0 -46
- package/packages/dictionaries/src/Dictionaries.ts +0 -65
- package/packages/dictionaries/src/constants.ts +0 -8
- package/packages/dictionaries/src/index.ts +0 -5
- package/packages/dictionaries/src/lib/DiskCache.test.ts +0 -75
- package/packages/dictionaries/src/lib/DiskCache.ts +0 -75
- package/packages/dictionaries/src/lib/LayeredCache.ts +0 -67
- package/packages/dictionaries/src/lib/MemoryCache.ts +0 -40
- package/packages/dictionaries/src/lib/createAsyncProxy.ts +0 -18
- package/packages/dictionaries/src/lib/createCacheTimestampComparator.ts +0 -25
- package/packages/dictionaries/src/lib/downloadDictionary.ts +0 -21
- package/packages/dictionaries/src/lib/getDictionaryFilepath.ts +0 -8
- package/packages/dictionaries/src/lib/index.ts +0 -7
- package/packages/dictionaries/src/types.ts +0 -7
- package/packages/dictionaries/tsconfig.json +0 -10
- package/packages/logger/README.md +0 -21
- package/packages/logger/build/constants.d.ts +0 -4
- package/packages/logger/build/constants.js +0 -12
- package/packages/logger/build/describeError.d.ts +0 -5
- package/packages/logger/build/describeError.js +0 -23
- package/packages/logger/build/events.d.ts +0 -92
- package/packages/logger/build/events.js +0 -13
- package/packages/logger/build/formatCsvRow.d.ts +0 -2
- package/packages/logger/build/formatCsvRow.js +0 -20
- package/packages/logger/build/index.d.ts +0 -5
- package/packages/logger/build/index.js +0 -15
- package/packages/logger/build/logError.d.ts +0 -4
- package/packages/logger/build/logError.js +0 -17
- package/packages/logger/build/logEvent.d.ts +0 -3
- package/packages/logger/build/logEvent.js +0 -29
- package/packages/logger/package.json +0 -34
- package/packages/logger/scripts/export-csv.ts +0 -113
- package/packages/logger/scripts/readEvents.ts +0 -34
- package/packages/logger/scripts/tsconfig.json +0 -10
- package/packages/logger/src/constants.ts +0 -13
- package/packages/logger/src/describeError.test.ts +0 -44
- package/packages/logger/src/describeError.ts +0 -30
- package/packages/logger/src/events.ts +0 -103
- package/packages/logger/src/formatCsvRow.test.ts +0 -41
- package/packages/logger/src/formatCsvRow.ts +0 -24
- package/packages/logger/src/index.ts +0 -13
- package/packages/logger/src/logError.ts +0 -24
- package/packages/logger/src/logEvent.test.ts +0 -59
- package/packages/logger/src/logEvent.ts +0 -26
- package/packages/logger/tsconfig.json +0 -10
- package/packages/scrabble-solver/.next/BUILD_ID +0 -1
- package/packages/scrabble-solver/.next/diagnostics/build-diagnostics.json +0 -6
- package/packages/scrabble-solver/.next/diagnostics/framework.json +0 -1
- package/packages/scrabble-solver/.next/next-minimal-server.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/next-server.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/chunks/309.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/344.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/371.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/465.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/612.js +0 -5
- package/packages/scrabble-solver/.next/server/chunks/623.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/624.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/641.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/67.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/705.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/712.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/715.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/812.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/846.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/886.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/942.js +0 -1
- package/packages/scrabble-solver/.next/server/chunks/961.js +0 -1
- package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +0 -1
- package/packages/scrabble-solver/.next/server/middleware-react-loadable-manifest.js +0 -1
- package/packages/scrabble-solver/.next/server/pages/404.html +0 -29
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/_document.js +0 -28
- package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/_error.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +0 -2
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +0 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js +0 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/api/visit.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/index.html +0 -29
- package/packages/scrabble-solver/.next/server/pages/index.js +0 -30
- package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/index.json +0 -1
- package/packages/scrabble-solver/.next/server/pages/not-found.js.nft.json +0 -1
- package/packages/scrabble-solver/.next/server/preview-props.json +0 -5
- package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.html +0 -29
- package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.json +0 -1
- package/packages/scrabble-solver/.next/server/webpack-api-runtime.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/100.305bdf9c75b1758f.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/256.9fcbd6c03ebdb85b.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/307.92ab8bd0b380a54b.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/363.1e1dca73189c1b3e.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/422.905bb771191013e7.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/601.d6817fd655b959d1.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/663.0b4d7a0e7f8e4ad3.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/693.1f53805be6ad36d1.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/820.c5e57d8b664cf9df.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/865.88d79c2c4b53cc8f.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/912.077603e4f0bc6cca.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/939.f8728029bfdc4515.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-5b1d356edb0d0f78.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/index-c21b524ce1875d6e.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/not-found-a59f9deeeff63d17.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/webpack-c4c264f86e0bb34b.js +0 -1
- package/packages/scrabble-solver/.next/static/css/8b8087461767360a.css +0 -1
- package/packages/scrabble-solver/.next/static/iJDkHROLsX-5CEsv2p6sC/_buildManifest.js +0 -1
- package/packages/scrabble-solver/.next/trace +0 -36
- package/packages/scrabble-solver/.next/trace-build +0 -1
- package/packages/scrabble-solver/.next/types/cache-life.d.ts +0 -114
- package/packages/scrabble-solver/.next/types/root-params.d.ts +0 -3
- package/packages/scrabble-solver/.next/types/routes.d.ts +0 -57
- package/packages/scrabble-solver/.next/types/validator.ts +0 -113
- package/packages/scrabble-solver/AGENTS.md +0 -9
- package/packages/scrabble-solver/CLAUDE.md +0 -1
- package/packages/scrabble-solver/README.md +0 -19
- package/packages/scrabble-solver/empty-module.js +0 -2
- package/packages/scrabble-solver/next-env.d.ts +0 -7
- package/packages/scrabble-solver/package.json +0 -99
- package/packages/scrabble-solver/public/service-worker.js.map +0 -1
- package/packages/scrabble-solver/scripts/generate-scss-types.ts +0 -112
- package/packages/scrabble-solver/src/@types/scss.d.ts +0 -6
- package/packages/scrabble-solver/src/@types/svg.d.ts +0 -7
- package/packages/scrabble-solver/src/api/BadRequestError.ts +0 -6
- package/packages/scrabble-solver/src/api/index.ts +0 -6
- package/packages/scrabble-solver/src/api/isBoardValid.ts +0 -41
- package/packages/scrabble-solver/src/api/isCellValid.ts +0 -25
- package/packages/scrabble-solver/src/api/isCharacterValid.ts +0 -12
- package/packages/scrabble-solver/src/api/isRowValid.ts +0 -17
- package/packages/scrabble-solver/src/api/withApiLog.ts +0 -85
- package/packages/scrabble-solver/src/components/Alert/Alert.module.scss +0 -52
- package/packages/scrabble-solver/src/components/Alert/Alert.module.scss.d.ts +0 -13
- package/packages/scrabble-solver/src/components/Alert/Alert.tsx +0 -44
- package/packages/scrabble-solver/src/components/Alert/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Badge/Badge.module.scss +0 -12
- package/packages/scrabble-solver/src/components/Badge/Badge.module.scss.d.ts +0 -6
- package/packages/scrabble-solver/src/components/Badge/Badge.tsx +0 -13
- package/packages/scrabble-solver/src/components/Badge/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Board/Board.module.scss +0 -83
- package/packages/scrabble-solver/src/components/Board/Board.module.scss.d.ts +0 -17
- package/packages/scrabble-solver/src/components/Board/Board.tsx +0 -221
- package/packages/scrabble-solver/src/components/Board/BoardPure.tsx +0 -166
- package/packages/scrabble-solver/src/components/Board/components/Actions/Actions.module.scss +0 -33
- package/packages/scrabble-solver/src/components/Board/components/Actions/Actions.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/Board/components/Actions/Actions.tsx +0 -103
- package/packages/scrabble-solver/src/components/Board/components/Actions/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Board/components/Actions/lib.ts +0 -32
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss +0 -99
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss.d.ts +0 -13
- package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.tsx +0 -135
- package/packages/scrabble-solver/src/components/Board/components/Cell/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Board/components/InputPrompt/InputPrompt.module.scss +0 -34
- package/packages/scrabble-solver/src/components/Board/components/InputPrompt/InputPrompt.module.scss.d.ts +0 -10
- package/packages/scrabble-solver/src/components/Board/components/InputPrompt/InputPrompt.tsx +0 -87
- package/packages/scrabble-solver/src/components/Board/components/InputPrompt/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.module.scss +0 -21
- package/packages/scrabble-solver/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.module.scss.d.ts +0 -8
- package/packages/scrabble-solver/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.tsx +0 -41
- package/packages/scrabble-solver/src/components/Board/components/ToggleDirectionButton/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Board/components/index.ts +0 -4
- package/packages/scrabble-solver/src/components/Board/getBoardBackground.ts +0 -175
- package/packages/scrabble-solver/src/components/Board/hooks/index.ts +0 -5
- package/packages/scrabble-solver/src/components/Board/hooks/useBoardStyle.ts +0 -24
- package/packages/scrabble-solver/src/components/Board/hooks/useFloatingActions.ts +0 -17
- package/packages/scrabble-solver/src/components/Board/hooks/useFloatingFocus.ts +0 -8
- package/packages/scrabble-solver/src/components/Board/hooks/useFloatingInputPrompt.ts +0 -17
- package/packages/scrabble-solver/src/components/Board/hooks/useGrid.ts +0 -390
- package/packages/scrabble-solver/src/components/Board/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Board/lib.test.ts +0 -106
- package/packages/scrabble-solver/src/components/Board/lib.ts +0 -149
- package/packages/scrabble-solver/src/components/Board/selectors.ts +0 -39
- package/packages/scrabble-solver/src/components/Button/Button.module.scss +0 -96
- package/packages/scrabble-solver/src/components/Button/Button.module.scss.d.ts +0 -12
- package/packages/scrabble-solver/src/components/Button/Button.tsx +0 -50
- package/packages/scrabble-solver/src/components/Button/Link.tsx +0 -45
- package/packages/scrabble-solver/src/components/Button/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Dictionary/Dictionary.module.scss +0 -65
- package/packages/scrabble-solver/src/components/Dictionary/Dictionary.module.scss.d.ts +0 -14
- package/packages/scrabble-solver/src/components/Dictionary/Dictionary.tsx +0 -78
- package/packages/scrabble-solver/src/components/Dictionary/index.ts +0 -1
- package/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.module.scss +0 -12
- package/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.tsx +0 -45
- package/packages/scrabble-solver/src/components/DictionaryInput/index.ts +0 -1
- package/packages/scrabble-solver/src/components/EmptyState/EmptyState.module.scss +0 -14
- package/packages/scrabble-solver/src/components/EmptyState/EmptyState.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/EmptyState/EmptyState.tsx +0 -55
- package/packages/scrabble-solver/src/components/EmptyState/index.ts +0 -1
- package/packages/scrabble-solver/src/components/IconButton/IconButton.module.scss +0 -39
- package/packages/scrabble-solver/src/components/IconButton/IconButton.module.scss.d.ts +0 -8
- package/packages/scrabble-solver/src/components/IconButton/IconButton.tsx +0 -31
- package/packages/scrabble-solver/src/components/IconButton/Link.tsx +0 -26
- package/packages/scrabble-solver/src/components/IconButton/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Key/Key.module.scss +0 -29
- package/packages/scrabble-solver/src/components/Key/Key.module.scss.d.ts +0 -6
- package/packages/scrabble-solver/src/components/Key/Key.tsx +0 -13
- package/packages/scrabble-solver/src/components/Key/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Keys/Arrows/Arrows.module.scss +0 -41
- package/packages/scrabble-solver/src/components/Keys/Arrows/Arrows.module.scss.d.ts +0 -11
- package/packages/scrabble-solver/src/components/Keys/Arrows/Arrows.tsx +0 -32
- package/packages/scrabble-solver/src/components/Keys/Arrows/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Keys/index.tsx +0 -28
- package/packages/scrabble-solver/src/components/Loading/Loading.module.scss +0 -33
- package/packages/scrabble-solver/src/components/Loading/Loading.module.scss.d.ts +0 -9
- package/packages/scrabble-solver/src/components/Loading/Loading.tsx +0 -37
- package/packages/scrabble-solver/src/components/Loading/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Logo/Logo.tsx +0 -12
- package/packages/scrabble-solver/src/components/Logo/LogoBlueprint.tsx +0 -22
- package/packages/scrabble-solver/src/components/Logo/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Modal/Modal.module.scss +0 -119
- package/packages/scrabble-solver/src/components/Modal/Modal.module.scss.d.ts +0 -15
- package/packages/scrabble-solver/src/components/Modal/Modal.tsx +0 -105
- package/packages/scrabble-solver/src/components/Modal/components/Section/Section.module.scss +0 -11
- package/packages/scrabble-solver/src/components/Modal/components/Section/Section.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/Modal/components/Section/Section.tsx +0 -18
- package/packages/scrabble-solver/src/components/Modal/components/Section/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Modal/components/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Modal/index.ts +0 -1
- package/packages/scrabble-solver/src/components/NavButtons/NavButtons.module.scss +0 -53
- package/packages/scrabble-solver/src/components/NavButtons/NavButtons.module.scss.d.ts +0 -13
- package/packages/scrabble-solver/src/components/NavButtons/NavButtons.tsx +0 -127
- package/packages/scrabble-solver/src/components/NavButtons/index.ts +0 -1
- package/packages/scrabble-solver/src/components/NavButtons/selectors.ts +0 -11
- package/packages/scrabble-solver/src/components/NotFound/NotFound.module.scss +0 -37
- package/packages/scrabble-solver/src/components/NotFound/NotFound.module.scss.d.ts +0 -9
- package/packages/scrabble-solver/src/components/NotFound/NotFound.tsx +0 -18
- package/packages/scrabble-solver/src/components/NotFound/index.ts +0 -1
- package/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.module.scss +0 -24
- package/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.module.scss.d.ts +0 -11
- package/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.tsx +0 -53
- package/packages/scrabble-solver/src/components/PlainTiles/Tile.tsx +0 -41
- package/packages/scrabble-solver/src/components/PlainTiles/index.ts +0 -1
- package/packages/scrabble-solver/src/components/PlainTiles/lib.ts +0 -75
- package/packages/scrabble-solver/src/components/PlainTiles/types.ts +0 -22
- package/packages/scrabble-solver/src/components/Progress/Progress.module.scss +0 -16
- package/packages/scrabble-solver/src/components/Progress/Progress.module.scss.d.ts +0 -6
- package/packages/scrabble-solver/src/components/Progress/Progress.tsx +0 -32
- package/packages/scrabble-solver/src/components/Progress/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Rack/Rack.module.scss +0 -95
- package/packages/scrabble-solver/src/components/Rack/Rack.module.scss.d.ts +0 -10
- package/packages/scrabble-solver/src/components/Rack/Rack.tsx +0 -199
- package/packages/scrabble-solver/src/components/Rack/components/InputPrompt/InputPrompt.module.scss +0 -21
- package/packages/scrabble-solver/src/components/Rack/components/InputPrompt/InputPrompt.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/Rack/components/InputPrompt/InputPrompt.tsx +0 -73
- package/packages/scrabble-solver/src/components/Rack/components/InputPrompt/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Rack/components/InputPrompt/lib.test.ts +0 -27
- package/packages/scrabble-solver/src/components/Rack/components/InputPrompt/lib.ts +0 -17
- package/packages/scrabble-solver/src/components/Rack/components/RackTile/RackTile.module.scss +0 -11
- package/packages/scrabble-solver/src/components/Rack/components/RackTile/RackTile.module.scss.d.ts +0 -6
- package/packages/scrabble-solver/src/components/Rack/components/RackTile/RackTile.tsx +0 -165
- package/packages/scrabble-solver/src/components/Rack/components/RackTile/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Rack/components/index.ts +0 -2
- package/packages/scrabble-solver/src/components/Rack/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Rack/selectors.ts +0 -9
- package/packages/scrabble-solver/src/components/Radio/Radio.module.scss +0 -61
- package/packages/scrabble-solver/src/components/Radio/Radio.module.scss.d.ts +0 -12
- package/packages/scrabble-solver/src/components/Radio/Radio.tsx +0 -39
- package/packages/scrabble-solver/src/components/Radio/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Results/Header.tsx +0 -114
- package/packages/scrabble-solver/src/components/Results/Result.tsx +0 -101
- package/packages/scrabble-solver/src/components/Results/Results.module.scss +0 -76
- package/packages/scrabble-solver/src/components/Results/Results.module.scss.d.ts +0 -17
- package/packages/scrabble-solver/src/components/Results/Results.tsx +0 -164
- package/packages/scrabble-solver/src/components/Results/SolveButton.tsx +0 -45
- package/packages/scrabble-solver/src/components/Results/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Results/types.ts +0 -15
- package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +0 -116
- package/packages/scrabble-solver/src/components/Solver/Solver.module.scss.d.ts +0 -20
- package/packages/scrabble-solver/src/components/Solver/Solver.tsx +0 -143
- package/packages/scrabble-solver/src/components/Solver/components/InsertButton/InsertButton.module.scss +0 -15
- package/packages/scrabble-solver/src/components/Solver/components/InsertButton/InsertButton.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/Solver/components/InsertButton/InsertButton.tsx +0 -40
- package/packages/scrabble-solver/src/components/Solver/components/InsertButton/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss +0 -138
- package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss.d.ts +0 -19
- package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +0 -108
- package/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Solver/components/index.ts +0 -2
- package/packages/scrabble-solver/src/components/Solver/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Spinner/Spinner.module.scss +0 -11
- package/packages/scrabble-solver/src/components/Spinner/Spinner.module.scss.d.ts +0 -10
- package/packages/scrabble-solver/src/components/Spinner/Spinner.tsx +0 -17
- package/packages/scrabble-solver/src/components/Spinner/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Table/Cell.tsx +0 -42
- package/packages/scrabble-solver/src/components/Table/Header.tsx +0 -11
- package/packages/scrabble-solver/src/components/Table/HeaderButton.tsx +0 -61
- package/packages/scrabble-solver/src/components/Table/Row.tsx +0 -59
- package/packages/scrabble-solver/src/components/Table/Search.tsx +0 -43
- package/packages/scrabble-solver/src/components/Table/Table.module.scss +0 -147
- package/packages/scrabble-solver/src/components/Table/Table.module.scss.d.ts +0 -19
- package/packages/scrabble-solver/src/components/Table/index.ts +0 -5
- package/packages/scrabble-solver/src/components/Tile/Tile.module.scss +0 -129
- package/packages/scrabble-solver/src/components/Tile/Tile.module.scss.d.ts +0 -19
- package/packages/scrabble-solver/src/components/Tile/Tile.tsx +0 -101
- package/packages/scrabble-solver/src/components/Tile/TilePure.tsx +0 -106
- package/packages/scrabble-solver/src/components/Tile/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Tooltip/Tooltip.module.scss +0 -15
- package/packages/scrabble-solver/src/components/Tooltip/Tooltip.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/components/Tooltip/Tooltip.tsx +0 -42
- package/packages/scrabble-solver/src/components/Tooltip/TooltipContent.tsx +0 -53
- package/packages/scrabble-solver/src/components/Tooltip/TooltipTrigger.tsx +0 -30
- package/packages/scrabble-solver/src/components/Tooltip/context.ts +0 -17
- package/packages/scrabble-solver/src/components/Tooltip/index.ts +0 -1
- package/packages/scrabble-solver/src/components/Tooltip/useTooltip.ts +0 -55
- package/packages/scrabble-solver/src/hooks/useColumns.ts +0 -69
- package/packages/scrabble-solver/src/hooks/useDeferredRender.ts +0 -20
- package/packages/scrabble-solver/src/hooks/useDirection.ts +0 -21
- package/packages/scrabble-solver/src/hooks/useEffectOnce.ts +0 -11
- package/packages/scrabble-solver/src/hooks/useIsTouchDevice.ts +0 -5
- package/packages/scrabble-solver/src/hooks/useLanguage.ts +0 -20
- package/packages/scrabble-solver/src/hooks/useLatest.ts +0 -11
- package/packages/scrabble-solver/src/hooks/useLocalStorage.ts +0 -49
- package/packages/scrabble-solver/src/hooks/useMedia.ts +0 -34
- package/packages/scrabble-solver/src/hooks/useMediaQueries.ts +0 -11
- package/packages/scrabble-solver/src/hooks/useMediaQuery.ts +0 -10
- package/packages/scrabble-solver/src/i18n/constants.ts +0 -106
- package/packages/scrabble-solver/src/i18n/i18n.ts +0 -25
- package/packages/scrabble-solver/src/i18n/languages/english.json +0 -88
- package/packages/scrabble-solver/src/i18n/languages/french.json +0 -88
- package/packages/scrabble-solver/src/i18n/languages/german.json +0 -88
- package/packages/scrabble-solver/src/i18n/languages/persian.json +0 -88
- package/packages/scrabble-solver/src/i18n/languages/polish.json +0 -88
- package/packages/scrabble-solver/src/i18n/languages/romanian.json +0 -88
- package/packages/scrabble-solver/src/i18n/languages/spanish.json +0 -88
- package/packages/scrabble-solver/src/i18n/languages/turkish.json +0 -88
- package/packages/scrabble-solver/src/i18n/localeIcons.ts +0 -24
- package/packages/scrabble-solver/src/icons/ArrowDown.svg +0 -4
- package/packages/scrabble-solver/src/icons/ArrowLeft.svg +0 -4
- package/packages/scrabble-solver/src/icons/ArrowRight.svg +0 -4
- package/packages/scrabble-solver/src/icons/ArrowUp.svg +0 -4
- package/packages/scrabble-solver/src/icons/Ban.svg +0 -4
- package/packages/scrabble-solver/src/icons/BookHalf.svg +0 -4
- package/packages/scrabble-solver/src/icons/CardChecklist.svg +0 -5
- package/packages/scrabble-solver/src/icons/Check.svg +0 -4
- package/packages/scrabble-solver/src/icons/ChevronDown.svg +0 -4
- package/packages/scrabble-solver/src/icons/ChevronLeft.svg +0 -4
- package/packages/scrabble-solver/src/icons/ChevronRight.svg +0 -4
- package/packages/scrabble-solver/src/icons/Cog.svg +0 -4
- package/packages/scrabble-solver/src/icons/Cross.svg +0 -4
- package/packages/scrabble-solver/src/icons/CrossCircleFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/CrossSquareFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/DashCircleFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/Eraser.svg +0 -4
- package/packages/scrabble-solver/src/icons/ExclamationSquareFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/ExclamationTriangleFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/EyeFill.svg +0 -5
- package/packages/scrabble-solver/src/icons/FlagDe.svg +0 -5
- package/packages/scrabble-solver/src/icons/FlagEs.svg +0 -4
- package/packages/scrabble-solver/src/icons/FlagFa.svg +0 -95
- package/packages/scrabble-solver/src/icons/FlagFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/FlagFr.svg +0 -5
- package/packages/scrabble-solver/src/icons/FlagGb.svg +0 -10
- package/packages/scrabble-solver/src/icons/FlagPl.svg +0 -4
- package/packages/scrabble-solver/src/icons/FlagRo.svg +0 -5
- package/packages/scrabble-solver/src/icons/FlagTr.svg +0 -4
- package/packages/scrabble-solver/src/icons/FlagUs.svg +0 -33
- package/packages/scrabble-solver/src/icons/GeoAlt.svg +0 -5
- package/packages/scrabble-solver/src/icons/Github.svg +0 -4
- package/packages/scrabble-solver/src/icons/InfoCircleFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/Keyboard.svg +0 -5
- package/packages/scrabble-solver/src/icons/KeyboardFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/List.svg +0 -4
- package/packages/scrabble-solver/src/icons/OneTwoThree.svg +0 -4
- package/packages/scrabble-solver/src/icons/QuestionSquare.svg +0 -5
- package/packages/scrabble-solver/src/icons/Sack.svg +0 -4
- package/packages/scrabble-solver/src/icons/Search.svg +0 -4
- package/packages/scrabble-solver/src/icons/SortDown.svg +0 -4
- package/packages/scrabble-solver/src/icons/SortUp.svg +0 -4
- package/packages/scrabble-solver/src/icons/Square.svg +0 -4
- package/packages/scrabble-solver/src/icons/SquareA.svg +0 -6
- package/packages/scrabble-solver/src/icons/SquareB.svg +0 -6
- package/packages/scrabble-solver/src/icons/SquareFill.svg +0 -4
- package/packages/scrabble-solver/src/icons/Squares.svg +0 -34
- package/packages/scrabble-solver/src/icons/Words.svg +0 -22
- package/packages/scrabble-solver/src/lib/arrayEquals.ts +0 -3
- package/packages/scrabble-solver/src/lib/createComparator.ts +0 -20
- package/packages/scrabble-solver/src/lib/createCoordinatesComparator.ts +0 -23
- package/packages/scrabble-solver/src/lib/createHighlightWords.test.ts +0 -13
- package/packages/scrabble-solver/src/lib/createHighlightWords.ts +0 -9
- package/packages/scrabble-solver/src/lib/createKeyComparator.ts +0 -23
- package/packages/scrabble-solver/src/lib/createKeyboardNavigation.ts +0 -46
- package/packages/scrabble-solver/src/lib/createNullMovingComparator.test.ts +0 -15
- package/packages/scrabble-solver/src/lib/createNullMovingComparator.ts +0 -17
- package/packages/scrabble-solver/src/lib/createRegExp.ts +0 -11
- package/packages/scrabble-solver/src/lib/createSortComparator.ts +0 -22
- package/packages/scrabble-solver/src/lib/createStringComparator.ts +0 -7
- package/packages/scrabble-solver/src/lib/extractCharacters.test.ts +0 -52
- package/packages/scrabble-solver/src/lib/extractCharacters.ts +0 -42
- package/packages/scrabble-solver/src/lib/extractInputValue.ts +0 -15
- package/packages/scrabble-solver/src/lib/findCell.ts +0 -5
- package/packages/scrabble-solver/src/lib/getCoordinate.test.ts +0 -22
- package/packages/scrabble-solver/src/lib/getCoordinate.ts +0 -17
- package/packages/scrabble-solver/src/lib/getCoordinates.test.ts +0 -21
- package/packages/scrabble-solver/src/lib/getCoordinates.ts +0 -16
- package/packages/scrabble-solver/src/lib/getNextSort.ts +0 -12
- package/packages/scrabble-solver/src/lib/inverseDirection.ts +0 -3
- package/packages/scrabble-solver/src/lib/isCtrl.ts +0 -5
- package/packages/scrabble-solver/src/lib/isMac.ts +0 -7
- package/packages/scrabble-solver/src/lib/isRegExp.ts +0 -9
- package/packages/scrabble-solver/src/lib/isStringArray.ts +0 -3
- package/packages/scrabble-solver/src/lib/localeTransliterate.test.ts +0 -19
- package/packages/scrabble-solver/src/lib/localeTransliterate.ts +0 -38
- package/packages/scrabble-solver/src/lib/memoize.ts +0 -64
- package/packages/scrabble-solver/src/lib/noop.ts +0 -1
- package/packages/scrabble-solver/src/lib/numberComparator.ts +0 -3
- package/packages/scrabble-solver/src/lib/reverseComparator.ts +0 -5
- package/packages/scrabble-solver/src/lib/unorderedArraysEqual.ts +0 -12
- package/packages/scrabble-solver/src/lib/waitForIdleOrFirstIntent.ts +0 -44
- package/packages/scrabble-solver/src/lib/zipCharactersAndTiles.ts +0 -28
- package/packages/scrabble-solver/src/modals/DictionaryModal/DictionaryModal.module.scss +0 -22
- package/packages/scrabble-solver/src/modals/DictionaryModal/DictionaryModal.module.scss.d.ts +0 -8
- package/packages/scrabble-solver/src/modals/DictionaryModal/DictionaryModal.tsx +0 -29
- package/packages/scrabble-solver/src/modals/DictionaryModal/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/KeyMapModal/KeyMapModal.tsx +0 -65
- package/packages/scrabble-solver/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +0 -48
- package/packages/scrabble-solver/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss.d.ts +0 -11
- package/packages/scrabble-solver/src/modals/KeyMapModal/components/Mapping/Mapping.tsx +0 -36
- package/packages/scrabble-solver/src/modals/KeyMapModal/components/Mapping/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/KeyMapModal/components/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/KeyMapModal/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.module.scss +0 -48
- package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.module.scss.d.ts +0 -10
- package/packages/scrabble-solver/src/modals/MenuModal/MenuModal.tsx +0 -93
- package/packages/scrabble-solver/src/modals/MenuModal/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/RemainingTilesModal.module.scss +0 -25
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/RemainingTilesModal.module.scss.d.ts +0 -9
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/RemainingTilesModal.tsx +0 -61
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/Character.module.scss +0 -50
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/Character.module.scss.d.ts +0 -12
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/Character.tsx +0 -89
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/lib.ts +0 -81
- package/packages/scrabble-solver/src/modals/RemainingTilesModal/selectors.ts +0 -7
- package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.module.scss +0 -20
- package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.module.scss.d.ts +0 -8
- package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx +0 -107
- package/packages/scrabble-solver/src/modals/ResultsModal/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/SettingsModal.tsx +0 -65
- package/packages/scrabble-solver/src/modals/SettingsModal/components/AutoGroupTilesSetting/AutoGroupTilesSetting.module.scss +0 -12
- package/packages/scrabble-solver/src/modals/SettingsModal/components/AutoGroupTilesSetting/AutoGroupTilesSetting.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +0 -58
- package/packages/scrabble-solver/src/modals/SettingsModal/components/AutoGroupTilesSetting/constants.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/AutoGroupTilesSetting/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/AutoGroupTilesSetting/lib.ts +0 -15
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.module.scss +0 -12
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.tsx +0 -45
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ConfigSetting/lib.ts +0 -19
- package/packages/scrabble-solver/src/modals/SettingsModal/components/HighlightUnreachableCellsSetting/HighlightUnreachableCellsSetting.module.scss +0 -12
- package/packages/scrabble-solver/src/modals/SettingsModal/components/HighlightUnreachableCellsSetting/HighlightUnreachableCellsSetting.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/HighlightUnreachableCellsSetting/HighlightUnreachableCellsSetting.tsx +0 -51
- package/packages/scrabble-solver/src/modals/SettingsModal/components/HighlightUnreachableCellsSetting/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/InputModeSetting/InputModeSetting.module.scss +0 -12
- package/packages/scrabble-solver/src/modals/SettingsModal/components/InputModeSetting/InputModeSetting.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/InputModeSetting/InputModeSetting.tsx +0 -53
- package/packages/scrabble-solver/src/modals/SettingsModal/components/InputModeSetting/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/InputModeSetting/lib.ts +0 -13
- package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +0 -20
- package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss.d.ts +0 -8
- package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.tsx +0 -54
- package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/RemoveCellFiltersSetting/RemoveCellFiltersSetting.module.scss +0 -12
- package/packages/scrabble-solver/src/modals/SettingsModal/components/RemoveCellFiltersSetting/RemoveCellFiltersSetting.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/RemoveCellFiltersSetting/RemoveCellFiltersSetting.tsx +0 -53
- package/packages/scrabble-solver/src/modals/SettingsModal/components/RemoveCellFiltersSetting/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/RemoveCellFiltersSetting/lib.ts +0 -13
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ShowCoordinatesSetting/ShowCoordinatesSetting.module.scss +0 -12
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ShowCoordinatesSetting/ShowCoordinatesSetting.module.scss.d.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ShowCoordinatesSetting/ShowCoordinatesSetting.tsx +0 -53
- package/packages/scrabble-solver/src/modals/SettingsModal/components/ShowCoordinatesSetting/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/SettingsModal/components/index.ts +0 -7
- package/packages/scrabble-solver/src/modals/SettingsModal/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss +0 -24
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss.d.ts +0 -8
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.tsx +0 -75
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordRow.tsx +0 -97
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.module.scss +0 -69
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.module.scss.d.ts +0 -16
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.tsx +0 -137
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/WordsModal/components/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/WordsModal/index.ts +0 -1
- package/packages/scrabble-solver/src/modals/preload.ts +0 -24
- package/packages/scrabble-solver/src/pages/_app.tsx +0 -52
- package/packages/scrabble-solver/src/pages/_document.tsx +0 -129
- package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/[word].ts +0 -66
- package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/index.ts +0 -123
- package/packages/scrabble-solver/src/pages/api/solve.ts +0 -103
- package/packages/scrabble-solver/src/pages/api/verify.ts +0 -78
- package/packages/scrabble-solver/src/pages/api/visit.ts +0 -44
- package/packages/scrabble-solver/src/pages/index.module.scss +0 -31
- package/packages/scrabble-solver/src/pages/index.module.scss.d.ts +0 -11
- package/packages/scrabble-solver/src/pages/index.tsx +0 -274
- package/packages/scrabble-solver/src/pages/not-found.tsx +0 -16
- package/packages/scrabble-solver/src/parameters/index.ts +0 -83
- package/packages/scrabble-solver/src/sdk/fetch.ts +0 -28
- package/packages/scrabble-solver/src/sdk/fetchJson.ts +0 -9
- package/packages/scrabble-solver/src/sdk/findWordDefinitions.ts +0 -8
- package/packages/scrabble-solver/src/sdk/index.ts +0 -4
- package/packages/scrabble-solver/src/sdk/solve.ts +0 -19
- package/packages/scrabble-solver/src/sdk/verify.ts +0 -20
- package/packages/scrabble-solver/src/sdk/visit.ts +0 -10
- package/packages/scrabble-solver/src/service-worker/appShell.test.ts +0 -86
- package/packages/scrabble-solver/src/service-worker/appShell.ts +0 -39
- package/packages/scrabble-solver/src/service-worker/index.ts +0 -22
- package/packages/scrabble-solver/src/serviceWorkerManager.ts +0 -12
- package/packages/scrabble-solver/src/solver-worker/client.test.ts +0 -158
- package/packages/scrabble-solver/src/solver-worker/client.ts +0 -106
- package/packages/scrabble-solver/src/solver-worker/dictionaries/constants.ts +0 -9
- package/packages/scrabble-solver/src/solver-worker/dictionaries/expirationManager.ts +0 -7
- package/packages/scrabble-solver/src/solver-worker/dictionaries/getDictionary.ts +0 -21
- package/packages/scrabble-solver/src/solver-worker/dictionaries/getDictionaryUrl.ts +0 -5
- package/packages/scrabble-solver/src/solver-worker/dictionaries/index.ts +0 -2
- package/packages/scrabble-solver/src/solver-worker/dictionaries/revalidateDictionary.test.ts +0 -199
- package/packages/scrabble-solver/src/solver-worker/dictionaries/revalidateDictionary.ts +0 -86
- package/packages/scrabble-solver/src/solver-worker/dictionaries/revalidatedAt.ts +0 -43
- package/packages/scrabble-solver/src/solver-worker/getGaddag.test.ts +0 -109
- package/packages/scrabble-solver/src/solver-worker/getGaddag.ts +0 -62
- package/packages/scrabble-solver/src/solver-worker/index.ts +0 -1
- package/packages/scrabble-solver/src/solver-worker/index.worker.ts +0 -124
- package/packages/scrabble-solver/src/solver-worker/messages.ts +0 -20
- package/packages/scrabble-solver/src/state/actions.ts +0 -5
- package/packages/scrabble-solver/src/state/app/index.ts +0 -4
- package/packages/scrabble-solver/src/state/app/initialState.ts +0 -6
- package/packages/scrabble-solver/src/state/app/selectors.ts +0 -5
- package/packages/scrabble-solver/src/state/app/slice.ts +0 -20
- package/packages/scrabble-solver/src/state/app/types.ts +0 -4
- package/packages/scrabble-solver/src/state/board/index.ts +0 -4
- package/packages/scrabble-solver/src/state/board/initialState.ts +0 -38
- package/packages/scrabble-solver/src/state/board/selectors.ts +0 -3
- package/packages/scrabble-solver/src/state/board/slice.ts +0 -101
- package/packages/scrabble-solver/src/state/board/types.ts +0 -3
- package/packages/scrabble-solver/src/state/cellFilters/index.ts +0 -4
- package/packages/scrabble-solver/src/state/cellFilters/initialState.ts +0 -3
- package/packages/scrabble-solver/src/state/cellFilters/lib.ts +0 -8
- package/packages/scrabble-solver/src/state/cellFilters/selectors.ts +0 -13
- package/packages/scrabble-solver/src/state/cellFilters/slice.ts +0 -49
- package/packages/scrabble-solver/src/state/cellFilters/types.ts +0 -3
- package/packages/scrabble-solver/src/state/dictionary/index.ts +0 -4
- package/packages/scrabble-solver/src/state/dictionary/initialState.ts +0 -8
- package/packages/scrabble-solver/src/state/dictionary/selectors.ts +0 -16
- package/packages/scrabble-solver/src/state/dictionary/slice.ts +0 -34
- package/packages/scrabble-solver/src/state/dictionary/types.ts +0 -8
- package/packages/scrabble-solver/src/state/hoveredTile/index.ts +0 -4
- package/packages/scrabble-solver/src/state/hoveredTile/initialState.ts +0 -5
- package/packages/scrabble-solver/src/state/hoveredTile/selectors.ts +0 -3
- package/packages/scrabble-solver/src/state/hoveredTile/slice.ts +0 -16
- package/packages/scrabble-solver/src/state/hoveredTile/types.ts +0 -3
- package/packages/scrabble-solver/src/state/hoveredWord/index.ts +0 -4
- package/packages/scrabble-solver/src/state/hoveredWord/initialState.ts +0 -5
- package/packages/scrabble-solver/src/state/hoveredWord/selectors.ts +0 -5
- package/packages/scrabble-solver/src/state/hoveredWord/slice.ts +0 -18
- package/packages/scrabble-solver/src/state/hoveredWord/types.ts +0 -5
- package/packages/scrabble-solver/src/state/i18n/index.ts +0 -4
- package/packages/scrabble-solver/src/state/i18n/initialState.ts +0 -5
- package/packages/scrabble-solver/src/state/i18n/selectors.ts +0 -3
- package/packages/scrabble-solver/src/state/i18n/slice.ts +0 -16
- package/packages/scrabble-solver/src/state/i18n/types.ts +0 -7
- package/packages/scrabble-solver/src/state/index.ts +0 -19
- package/packages/scrabble-solver/src/state/lib.ts +0 -46
- package/packages/scrabble-solver/src/state/localStorage.ts +0 -142
- package/packages/scrabble-solver/src/state/rack/index.ts +0 -4
- package/packages/scrabble-solver/src/state/rack/initialState.ts +0 -11
- package/packages/scrabble-solver/src/state/rack/selectors.ts +0 -7
- package/packages/scrabble-solver/src/state/rack/slice.ts +0 -56
- package/packages/scrabble-solver/src/state/rack/types.ts +0 -3
- package/packages/scrabble-solver/src/state/results/index.ts +0 -4
- package/packages/scrabble-solver/src/state/results/initialState.ts +0 -13
- package/packages/scrabble-solver/src/state/results/lib.ts +0 -86
- package/packages/scrabble-solver/src/state/results/selectors.ts +0 -83
- package/packages/scrabble-solver/src/state/results/slice.ts +0 -43
- package/packages/scrabble-solver/src/state/results/types.ts +0 -10
- package/packages/scrabble-solver/src/state/sagas.ts +0 -395
- package/packages/scrabble-solver/src/state/selectors.ts +0 -52
- package/packages/scrabble-solver/src/state/settings/index.ts +0 -4
- package/packages/scrabble-solver/src/state/settings/initialState.ts +0 -16
- package/packages/scrabble-solver/src/state/settings/lib.ts +0 -42
- package/packages/scrabble-solver/src/state/settings/selectors.ts +0 -78
- package/packages/scrabble-solver/src/state/settings/slice.ts +0 -54
- package/packages/scrabble-solver/src/state/settings/types.ts +0 -13
- package/packages/scrabble-solver/src/state/solve/index.ts +0 -4
- package/packages/scrabble-solver/src/state/solve/initialState.ts +0 -12
- package/packages/scrabble-solver/src/state/solve/selectors.ts +0 -14
- package/packages/scrabble-solver/src/state/solve/slice.ts +0 -33
- package/packages/scrabble-solver/src/state/solve/types.ts +0 -10
- package/packages/scrabble-solver/src/state/store.ts +0 -38
- package/packages/scrabble-solver/src/state/types.ts +0 -27
- package/packages/scrabble-solver/src/state/useTranslate.ts +0 -32
- package/packages/scrabble-solver/src/state/useTypedSelector.ts +0 -5
- package/packages/scrabble-solver/src/state/useTypedStore.ts +0 -6
- package/packages/scrabble-solver/src/state/verify/index.ts +0 -4
- package/packages/scrabble-solver/src/state/verify/initialState.ts +0 -19
- package/packages/scrabble-solver/src/state/verify/lib.test.ts +0 -55
- package/packages/scrabble-solver/src/state/verify/lib.ts +0 -49
- package/packages/scrabble-solver/src/state/verify/selectors.ts +0 -46
- package/packages/scrabble-solver/src/state/verify/slice.ts +0 -40
- package/packages/scrabble-solver/src/state/verify/types.ts +0 -14
- package/packages/scrabble-solver/src/styles/_tokens.scss +0 -60
- package/packages/scrabble-solver/src/styles/animations.scss +0 -49
- package/packages/scrabble-solver/src/styles/global.scss +0 -61
- package/packages/scrabble-solver/src/styles/mixins.scss +0 -117
- package/packages/scrabble-solver/src/styles/variables.module.scss +0 -32
- package/packages/scrabble-solver/src/styles/variables.module.scss.d.ts +0 -27
- package/packages/scrabble-solver/src/styles/variables.scss +0 -176
- package/packages/scrabble-solver/src/types/api.ts +0 -21
- package/packages/scrabble-solver/src/types/index.ts +0 -177
- package/packages/scrabble-solver/tsconfig.json +0 -27
- package/packages/scrabble-solver/tsconfig.tsbuildinfo +0 -1
- package/packages/solver/README.md +0 -29
- package/packages/solver/benchmarks/index.ts +0 -15
- package/packages/solver/benchmarks/lib.ts +0 -31
- package/packages/solver/benchmarks/renderChart.ts +0 -165
- package/packages/solver/benchmarks/results/chart.svg +0 -65
- package/packages/solver/benchmarks/runBenchmarks.ts +0 -66
- package/packages/solver/benchmarks/scenarios.ts +0 -64
- package/packages/solver/benchmarks/types.ts +0 -16
- package/packages/solver/benchmarks/updateReadme.ts +0 -53
- package/packages/solver/build/MoveGenerator.d.ts +0 -116
- package/packages/solver/build/MoveGenerator.js +0 -686
- package/packages/solver/build/index.d.ts +0 -1
- package/packages/solver/build/index.js +0 -5
- package/packages/solver/build/solve.d.ts +0 -3
- package/packages/solver/build/solve.js +0 -8
- package/packages/solver/package.json +0 -45
- package/packages/solver/src/MoveGenerator.test.ts +0 -1009
- package/packages/solver/src/MoveGenerator.ts +0 -926
- package/packages/solver/src/ReferenceSolver.ts +0 -401
- package/packages/solver/src/index.ts +0 -1
- package/packages/solver/src/solve.test.ts +0 -225
- package/packages/solver/src/solve.ts +0 -8
- package/packages/solver/tsconfig.json +0 -10
- package/packages/types/README.md +0 -3
- package/packages/types/build/Bingo.d.ts +0 -7
- package/packages/types/build/Bingo.js +0 -2
- package/packages/types/build/Board.d.ts +0 -33
- package/packages/types/build/Board.js +0 -106
- package/packages/types/build/BoardJson.d.ts +0 -2
- package/packages/types/build/BoardJson.js +0 -2
- package/packages/types/build/BoardWord.d.ts +0 -7
- package/packages/types/build/BoardWord.js +0 -2
- package/packages/types/build/Bonus.d.ts +0 -22
- package/packages/types/build/Bonus.js +0 -33
- package/packages/types/build/BonusJson.d.ts +0 -7
- package/packages/types/build/BonusJson.js +0 -2
- package/packages/types/build/BonusValue.d.ts +0 -4
- package/packages/types/build/BonusValue.js +0 -2
- package/packages/types/build/Cell.d.ts +0 -22
- package/packages/types/build/Cell.js +0 -52
- package/packages/types/build/CellJson.d.ts +0 -7
- package/packages/types/build/CellJson.js +0 -2
- package/packages/types/build/CharacterBonus.d.ts +0 -10
- package/packages/types/build/CharacterBonus.js +0 -27
- package/packages/types/build/Collision.d.ts +0 -2
- package/packages/types/build/Collision.js +0 -2
- package/packages/types/build/Config.d.ts +0 -36
- package/packages/types/build/Config.js +0 -105
- package/packages/types/build/ConfigJson.d.ts +0 -18
- package/packages/types/build/ConfigJson.js +0 -2
- package/packages/types/build/Dictionary.d.ts +0 -6
- package/packages/types/build/Dictionary.js +0 -2
- package/packages/types/build/Direction.d.ts +0 -1
- package/packages/types/build/Direction.js +0 -2
- package/packages/types/build/Game.d.ts +0 -11
- package/packages/types/build/Game.js +0 -15
- package/packages/types/build/Locale.d.ts +0 -16
- package/packages/types/build/Locale.js +0 -20
- package/packages/types/build/Result.d.ts +0 -32
- package/packages/types/build/Result.js +0 -61
- package/packages/types/build/ResultJson.d.ts +0 -9
- package/packages/types/build/ResultJson.js +0 -2
- package/packages/types/build/ShowCoordinates.d.ts +0 -5
- package/packages/types/build/ShowCoordinates.js +0 -2
- package/packages/types/build/TextDirection.d.ts +0 -1
- package/packages/types/build/TextDirection.js +0 -2
- package/packages/types/build/Tile.d.ts +0 -15
- package/packages/types/build/Tile.js +0 -46
- package/packages/types/build/TileConfig.d.ts +0 -5
- package/packages/types/build/TileConfig.js +0 -2
- package/packages/types/build/TileJson.d.ts +0 -4
- package/packages/types/build/TileJson.js +0 -2
- package/packages/types/build/WordBonus.d.ts +0 -6
- package/packages/types/build/WordBonus.js +0 -18
- package/packages/types/build/WordDefinition.d.ts +0 -17
- package/packages/types/build/WordDefinition.js +0 -38
- package/packages/types/build/WordDefinitionJson.d.ts +0 -12
- package/packages/types/build/WordDefinitionJson.js +0 -2
- package/packages/types/build/index.d.ts +0 -29
- package/packages/types/build/index.js +0 -38
- package/packages/types/build/lib/getBoardWords.d.ts +0 -3
- package/packages/types/build/lib/getBoardWords.js +0 -10
- package/packages/types/build/lib/getCells.d.ts +0 -4
- package/packages/types/build/lib/getCells.js +0 -27
- package/packages/types/build/lib/getCollidingWords.d.ts +0 -3
- package/packages/types/build/lib/getCollidingWords.js +0 -19
- package/packages/types/build/lib/getCollision.d.ts +0 -3
- package/packages/types/build/lib/getCollision.js +0 -31
- package/packages/types/build/lib/getCollisions.d.ts +0 -3
- package/packages/types/build/lib/getCollisions.js +0 -17
- package/packages/types/build/lib/getPlacedCell.d.ts +0 -3
- package/packages/types/build/lib/getPlacedCell.js +0 -10
- package/packages/types/build/lib/getWordThrough.d.ts +0 -4
- package/packages/types/build/lib/getWordThrough.js +0 -23
- package/packages/types/build/lib/getWordsInRows.d.ts +0 -8
- package/packages/types/build/lib/getWordsInRows.js +0 -29
- package/packages/types/build/lib/index.d.ts +0 -5
- package/packages/types/build/lib/index.js +0 -21
- package/packages/types/build/lib/isSameBoardWord.d.ts +0 -2
- package/packages/types/build/lib/isSameBoardWord.js +0 -6
- package/packages/types/build/lib/toBoardWord.d.ts +0 -4
- package/packages/types/build/lib/toBoardWord.js +0 -11
- package/packages/types/build/lib/transpose.d.ts +0 -1
- package/packages/types/build/lib/transpose.js +0 -16
- package/packages/types/build/type-guards/index.d.ts +0 -10
- package/packages/types/build/type-guards/index.js +0 -23
- package/packages/types/build/type-guards/isBingo.d.ts +0 -2
- package/packages/types/build/type-guards/isBingo.js +0 -9
- package/packages/types/build/type-guards/isBoardJson.d.ts +0 -2
- package/packages/types/build/type-guards/isBoardJson.js +0 -21
- package/packages/types/build/type-guards/isCellJson.d.ts +0 -2
- package/packages/types/build/type-guards/isCellJson.js +0 -13
- package/packages/types/build/type-guards/isError.d.ts +0 -1
- package/packages/types/build/type-guards/isError.js +0 -11
- package/packages/types/build/type-guards/isGame.d.ts +0 -2
- package/packages/types/build/type-guards/isGame.js +0 -7
- package/packages/types/build/type-guards/isLocale.d.ts +0 -2
- package/packages/types/build/type-guards/isLocale.js +0 -7
- package/packages/types/build/type-guards/isMultiplierBingo.d.ts +0 -2
- package/packages/types/build/type-guards/isMultiplierBingo.js +0 -8
- package/packages/types/build/type-guards/isObject.d.ts +0 -1
- package/packages/types/build/type-guards/isObject.js +0 -7
- package/packages/types/build/type-guards/isScoreBingo.d.ts +0 -2
- package/packages/types/build/type-guards/isScoreBingo.js +0 -8
- package/packages/types/build/type-guards/isTileJson.d.ts +0 -2
- package/packages/types/build/type-guards/isTileJson.js +0 -8
- package/packages/types/package.json +0 -37
- package/packages/types/src/Bingo.ts +0 -5
- package/packages/types/src/Board.test.ts +0 -85
- package/packages/types/src/Board.ts +0 -141
- package/packages/types/src/BoardJson.ts +0 -3
- package/packages/types/src/BoardWord.ts +0 -8
- package/packages/types/src/Bonus.ts +0 -50
- package/packages/types/src/BonusJson.ts +0 -7
- package/packages/types/src/BonusValue.ts +0 -4
- package/packages/types/src/Cell.ts +0 -66
- package/packages/types/src/CellJson.ts +0 -8
- package/packages/types/src/CharacterBonus.ts +0 -29
- package/packages/types/src/Collision.ts +0 -3
- package/packages/types/src/Config.ts +0 -152
- package/packages/types/src/ConfigJson.ts +0 -19
- package/packages/types/src/Dictionary.ts +0 -7
- package/packages/types/src/Direction.ts +0 -1
- package/packages/types/src/Game.ts +0 -11
- package/packages/types/src/Locale.ts +0 -16
- package/packages/types/src/Result.ts +0 -118
- package/packages/types/src/ResultJson.ts +0 -9
- package/packages/types/src/ShowCoordinates.ts +0 -5
- package/packages/types/src/TextDirection.ts +0 -1
- package/packages/types/src/Tile.ts +0 -56
- package/packages/types/src/TileConfig.ts +0 -5
- package/packages/types/src/TileJson.ts +0 -4
- package/packages/types/src/WordBonus.ts +0 -15
- package/packages/types/src/WordDefinition.ts +0 -54
- package/packages/types/src/WordDefinitionJson.ts +0 -12
- package/packages/types/src/index.ts +0 -40
- package/packages/types/src/lib/getBoardWords.ts +0 -11
- package/packages/types/src/lib/getCells.test.ts +0 -127
- package/packages/types/src/lib/getCells.ts +0 -31
- package/packages/types/src/lib/getCollidingWords.ts +0 -25
- package/packages/types/src/lib/getCollision.ts +0 -38
- package/packages/types/src/lib/getCollisions.test.ts +0 -82
- package/packages/types/src/lib/getCollisions.ts +0 -22
- package/packages/types/src/lib/getPlacedCell.ts +0 -9
- package/packages/types/src/lib/getWordThrough.ts +0 -30
- package/packages/types/src/lib/getWordsInRows.ts +0 -34
- package/packages/types/src/lib/index.ts +0 -5
- package/packages/types/src/lib/isSameBoardWord.ts +0 -5
- package/packages/types/src/lib/toBoardWord.ts +0 -12
- package/packages/types/src/lib/transpose.ts +0 -15
- package/packages/types/src/type-guards/index.ts +0 -10
- package/packages/types/src/type-guards/isBingo.ts +0 -8
- package/packages/types/src/type-guards/isBoardJson.test.ts +0 -33
- package/packages/types/src/type-guards/isBoardJson.ts +0 -23
- package/packages/types/src/type-guards/isCellJson.ts +0 -14
- package/packages/types/src/type-guards/isError.ts +0 -9
- package/packages/types/src/type-guards/isGame.ts +0 -5
- package/packages/types/src/type-guards/isLocale.ts +0 -5
- package/packages/types/src/type-guards/isMultiplierBingo.ts +0 -7
- package/packages/types/src/type-guards/isObject.ts +0 -3
- package/packages/types/src/type-guards/isScoreBingo.ts +0 -7
- package/packages/types/src/type-guards/isTileJson.ts +0 -7
- package/packages/types/tsconfig.json +0 -10
- package/packages/word-definitions/README.md +0 -3
- package/packages/word-definitions/build/crawl.d.ts +0 -2
- package/packages/word-definitions/build/crawl.js +0 -20
- package/packages/word-definitions/build/getWordDefinition.d.ts +0 -2
- package/packages/word-definitions/build/getWordDefinition.js +0 -13
- package/packages/word-definitions/build/index.d.ts +0 -5
- package/packages/word-definitions/build/index.js +0 -21
- package/packages/word-definitions/build/languages/english.d.ts +0 -3
- package/packages/word-definitions/build/languages/english.js +0 -38
- package/packages/word-definitions/build/languages/french.d.ts +0 -3
- package/packages/word-definitions/build/languages/french.js +0 -22
- package/packages/word-definitions/build/languages/german.d.ts +0 -3
- package/packages/word-definitions/build/languages/german.js +0 -70
- package/packages/word-definitions/build/languages/index.d.ts +0 -8
- package/packages/word-definitions/build/languages/index.js +0 -44
- package/packages/word-definitions/build/languages/persian.d.ts +0 -3
- package/packages/word-definitions/build/languages/persian.js +0 -23
- package/packages/word-definitions/build/languages/polish.d.ts +0 -3
- package/packages/word-definitions/build/languages/polish.js +0 -24
- package/packages/word-definitions/build/languages/romanian.d.ts +0 -3
- package/packages/word-definitions/build/languages/romanian.js +0 -26
- package/packages/word-definitions/build/languages/spanish.d.ts +0 -3
- package/packages/word-definitions/build/languages/spanish.js +0 -39
- package/packages/word-definitions/build/languages/turkish.d.ts +0 -3
- package/packages/word-definitions/build/languages/turkish.js +0 -31
- package/packages/word-definitions/build/lib/index.d.ts +0 -3
- package/packages/word-definitions/build/lib/index.js +0 -9
- package/packages/word-definitions/build/lib/normalizeDefinition.d.ts +0 -1
- package/packages/word-definitions/build/lib/normalizeDefinition.js +0 -46
- package/packages/word-definitions/build/lib/request.d.ts +0 -6
- package/packages/word-definitions/build/lib/request.js +0 -28
- package/packages/word-definitions/build/lib/unique.d.ts +0 -1
- package/packages/word-definitions/build/lib/unique.js +0 -5
- package/packages/word-definitions/build/parse.d.ts +0 -3
- package/packages/word-definitions/build/parse.js +0 -25
- package/packages/word-definitions/build/types.d.ts +0 -4
- package/packages/word-definitions/build/types.js +0 -2
- package/packages/word-definitions/package.json +0 -43
- package/packages/word-definitions/src/__tests__/expected/de-DE.hm.json +0 -4
- package/packages/word-definitions/src/__tests__/expected/de-DE.ho.json +0 -9
- package/packages/word-definitions/src/__tests__/expected/de-DE.kolla.json +0 -4
- package/packages/word-definitions/src/__tests__/expected/de-DE.vom.json +0 -16
- package/packages/word-definitions/src/__tests__/expected/en-US.awe.json +0 -12
- package/packages/word-definitions/src/__tests__/expected/en-US.oe.json +0 -7
- package/packages/word-definitions/src/__tests__/expected/en-US.pawn.json +0 -16
- package/packages/word-definitions/src/__tests__/expected/en-US.pawnee.json +0 -6
- package/packages/word-definitions/src/__tests__/expected/en-US.pean.json +0 -9
- package/packages/word-definitions/src/__tests__/expected/en-US.wiz.json +0 -10
- package/packages/word-definitions/src/__tests__/expected/en-US.zzzzqq.json +0 -4
- package/packages/word-definitions/src/__tests__/expected/es-ES.corma.json +0 -7
- package/packages/word-definitions/src/__tests__/expected/es-ES.portero.json +0 -9
- package/packages/word-definitions/src/__tests__/expected/ro-RO.aciua.json +0 -7
- package/packages/word-definitions/src/__tests__/expected/tr-TR.lojik.json +0 -4
- package/packages/word-definitions/src/__tests__/input/de-DE.hm.html +0 -873
- package/packages/word-definitions/src/__tests__/input/de-DE.ho.html +0 -1144
- package/packages/word-definitions/src/__tests__/input/de-DE.kolla.html +0 -980
- package/packages/word-definitions/src/__tests__/input/de-DE.vom.html +0 -738
- package/packages/word-definitions/src/__tests__/input/en-US.awe.json +0 -1
- package/packages/word-definitions/src/__tests__/input/en-US.oe.json +0 -1
- package/packages/word-definitions/src/__tests__/input/en-US.pawn.json +0 -1
- package/packages/word-definitions/src/__tests__/input/en-US.pawnee.json +0 -1
- package/packages/word-definitions/src/__tests__/input/en-US.pean.json +0 -1
- package/packages/word-definitions/src/__tests__/input/en-US.wiz.json +0 -1
- package/packages/word-definitions/src/__tests__/input/en-US.zzzzqq.json +0 -1
- package/packages/word-definitions/src/__tests__/input/es-ES.corma.html +0 -762
- package/packages/word-definitions/src/__tests__/input/es-ES.portero.html +0 -764
- package/packages/word-definitions/src/__tests__/input/ro-RO.aciua.html +0 -31
- package/packages/word-definitions/src/__tests__/input/tr-TR.lojik.html +0 -1
- package/packages/word-definitions/src/crawl.ts +0 -19
- package/packages/word-definitions/src/getWordDefinition.ts +0 -11
- package/packages/word-definitions/src/index.ts +0 -5
- package/packages/word-definitions/src/languages/english.ts +0 -53
- package/packages/word-definitions/src/languages/french.ts +0 -22
- package/packages/word-definitions/src/languages/german.ts +0 -88
- package/packages/word-definitions/src/languages/index.ts +0 -8
- package/packages/word-definitions/src/languages/persian.ts +0 -24
- package/packages/word-definitions/src/languages/polish.ts +0 -24
- package/packages/word-definitions/src/languages/romanian.ts +0 -27
- package/packages/word-definitions/src/languages/spanish.ts +0 -42
- package/packages/word-definitions/src/languages/turkish.ts +0 -32
- package/packages/word-definitions/src/lib/index.ts +0 -3
- package/packages/word-definitions/src/lib/normalizeDefinition.ts +0 -53
- package/packages/word-definitions/src/lib/request.ts +0 -30
- package/packages/word-definitions/src/lib/unique.ts +0 -1
- package/packages/word-definitions/src/parse.test.ts +0 -41
- package/packages/word-definitions/src/parse.ts +0 -26
- package/packages/word-definitions/src/types.ts +0 -4
- package/packages/word-definitions/tsconfig.json +0 -10
- package/packages/word-lists/README.md +0 -3
- package/packages/word-lists/build/getWordList.d.ts +0 -2
- package/packages/word-lists/build/getWordList.js +0 -18
- package/packages/word-lists/build/index.d.ts +0 -3
- package/packages/word-lists/build/index.js +0 -21
- package/packages/word-lists/build/languages/english.d.ts +0 -2
- package/packages/word-lists/build/languages/english.js +0 -15
- package/packages/word-lists/build/languages/french.d.ts +0 -1
- package/packages/word-lists/build/languages/french.js +0 -11
- package/packages/word-lists/build/languages/german.d.ts +0 -1
- package/packages/word-lists/build/languages/german.js +0 -10
- package/packages/word-lists/build/languages/index.d.ts +0 -8
- package/packages/word-lists/build/languages/index.js +0 -44
- package/packages/word-lists/build/languages/persian.d.ts +0 -1
- package/packages/word-lists/build/languages/persian.js +0 -10
- package/packages/word-lists/build/languages/polish.d.ts +0 -1
- package/packages/word-lists/build/languages/polish.js +0 -56
- package/packages/word-lists/build/languages/romanian.d.ts +0 -1
- package/packages/word-lists/build/languages/romanian.js +0 -11
- package/packages/word-lists/build/languages/spanish.d.ts +0 -1
- package/packages/word-lists/build/languages/spanish.js +0 -11
- package/packages/word-lists/build/languages/turkish.d.ts +0 -1
- package/packages/word-lists/build/languages/turkish.js +0 -10
- package/packages/word-lists/build/lib/downloadFile.d.ts +0 -1
- package/packages/word-lists/build/lib/downloadFile.js +0 -38
- package/packages/word-lists/build/lib/downloadHtml.d.ts +0 -1
- package/packages/word-lists/build/lib/downloadHtml.js +0 -21
- package/packages/word-lists/build/lib/extractWords.d.ts +0 -1
- package/packages/word-lists/build/lib/extractWords.js +0 -17
- package/packages/word-lists/build/lib/findFirstWordIndex.d.ts +0 -1
- package/packages/word-lists/build/lib/findFirstWordIndex.js +0 -17
- package/packages/word-lists/build/lib/getHash.d.ts +0 -1
- package/packages/word-lists/build/lib/getHash.js +0 -9
- package/packages/word-lists/build/lib/getTempFilepath.d.ts +0 -1
- package/packages/word-lists/build/lib/getTempFilepath.js +0 -15
- package/packages/word-lists/build/lib/getTxtWordList.d.ts +0 -1
- package/packages/word-lists/build/lib/getTxtWordList.js +0 -17
- package/packages/word-lists/build/lib/index.d.ts +0 -10
- package/packages/word-lists/build/lib/index.js +0 -23
- package/packages/word-lists/build/lib/transliterateDiacritics.d.ts +0 -2
- package/packages/word-lists/build/lib/transliterateDiacritics.js +0 -9
- package/packages/word-lists/build/lib/unique.d.ts +0 -1
- package/packages/word-lists/build/lib/unique.js +0 -5
- package/packages/word-lists/build/lib/unzip.d.ts +0 -1
- package/packages/word-lists/build/lib/unzip.js +0 -24
- package/packages/word-lists/package.json +0 -45
- package/packages/word-lists/src/getWordList.ts +0 -17
- package/packages/word-lists/src/index.ts +0 -3
- package/packages/word-lists/src/languages/english.ts +0 -16
- package/packages/word-lists/src/languages/french.ts +0 -11
- package/packages/word-lists/src/languages/german.ts +0 -10
- package/packages/word-lists/src/languages/index.ts +0 -8
- package/packages/word-lists/src/languages/persian.ts +0 -10
- package/packages/word-lists/src/languages/polish.ts +0 -59
- package/packages/word-lists/src/languages/romanian.ts +0 -10
- package/packages/word-lists/src/languages/spanish.ts +0 -10
- package/packages/word-lists/src/languages/turkish.ts +0 -9
- package/packages/word-lists/src/lib/downloadFile.ts +0 -37
- package/packages/word-lists/src/lib/downloadHtml.ts +0 -18
- package/packages/word-lists/src/lib/extractWords.ts +0 -17
- package/packages/word-lists/src/lib/findFirstWordIndex.ts +0 -16
- package/packages/word-lists/src/lib/getHash.ts +0 -3
- package/packages/word-lists/src/lib/getTempFilepath.ts +0 -11
- package/packages/word-lists/src/lib/getTxtWordList.ts +0 -12
- package/packages/word-lists/src/lib/index.ts +0 -10
- package/packages/word-lists/src/lib/transliterateDiacritics.ts +0 -7
- package/packages/word-lists/src/lib/unique.ts +0 -1
- package/packages/word-lists/src/lib/unzip.ts +0 -18
- package/packages/word-lists/tsconfig.json +0 -10
- package/playwright.config.ts +0 -30
- package/project.json +0 -3
- package/screencast.gif +0 -0
- package/scripts/record-screencast.ts +0 -347
- package/tsconfig.json +0 -19
- /package/{packages/scrabble-solver/.env → .env} +0 -0
- /package/{packages/scrabble-solver/.next → .next}/dynamic-css-manifest.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/export-marker.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/images-manifest.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/package.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/required-server-files.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/required-server-files.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/chunks/30.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/chunks/546.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/chunks/671.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/chunks/853.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/chunks/968.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/dynamic-css-manifest.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/functions-config-manifest.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/interception-route-rewrite-manifest.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/middleware-manifest.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/next-font-manifest.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/next-font-manifest.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/pages/_app.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/pages/_error.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/pages/api/visit.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/pages/index.meta +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/prefetch-hints.json +0 -0
- /package/{packages/scrabble-solver/.next → .next}/server/webpack-runtime.js +0 -0
- /package/{packages/scrabble-solver/.next/static/iJDkHROLsX-5CEsv2p6sC → .next/static/Ng_NN9gQywZowmg2O0pgm}/_ssgManifest.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/277.6785dfaf22fdb0b7.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/341.79535ba85bf1986f.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/827.d01b6d69af340ba4.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/980.dd35e807b18063c1.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/990.61296e5870b91f11.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/framework-86d3b250d278cea9.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/main-738e097cd313908f.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/pages/_error-f0290a98eb3ed0ec.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/2d03f0da2c678dfc.css +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/4dbcacc1122ac6b9.css +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/7b6724d2df70f48f.css +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/98051ed25076b896.css +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/b736be3bd02b5d99.css +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/ca311e6c030663d4.css +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/cd4d7f2458487399.css +0 -0
- /package/{packages/scrabble-solver/.next → .next}/static/css/dee878eb64099d92.css +0 -0
- /package/{packages/scrabble-solver/public → public}/favicon.ico +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-114x114.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-120x120.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-144x144.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-152x152.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-57x57.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-60x60.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-72x72.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/apple-touch-icon-76x76.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/favicon-128.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/favicon-16x16.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/favicon-196x196.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/favicon-32x32.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/favicon-96x96.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/favicon.svg +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/mstile-144x144.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/mstile-150x150.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/mstile-310x150.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/mstile-310x310.png +0 -0
- /package/{packages/scrabble-solver/public → public}/icons/mstile-70x70.png +0 -0
- /package/{packages/scrabble-solver/public → public}/logo.svg +0 -0
- /package/{packages/scrabble-solver/public → public}/og.png +0 -0
- /package/{packages/scrabble-solver/public → public}/robots.txt +0 -0
- /package/{packages/scrabble-solver/public → public}/site.webmanifest +0 -0
- /package/{packages/scrabble-solver/public → public}/sitemap.xml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[332],{95:e=>{e.exports={resultCandidatePicker:"ResultCandidatePicker_resultCandidatePicker__S_aFf",buttons:"ResultCandidatePicker_buttons__dT8pq",bothEnabled:"ResultCandidatePicker_bothEnabled__yX7kU",button:"ResultCandidatePicker_button__ipqiD",resultCandidate:"ResultCandidatePicker_resultCandidate__TffXx",content:"ResultCandidatePicker_content__1i_5T",points:"ResultCandidatePicker_points__86QEQ",word:"ResultCandidatePicker_word___Wi29",placeholder:"ResultCandidatePicker_placeholder__AWWGI",iconContainer:"ResultCandidatePicker_iconContainer__iiYkC",spinnerContainer:"ResultCandidatePicker_spinnerContainer__3nvoz",loading:"ResultCandidatePicker_loading__0iXU_",icon:"ResultCandidatePicker_icon__AyoQE",insert:"ResultCandidatePicker_insert__KAM26"}},542:e=>{e.exports={tile:"Cell_tile__SiBOA",first3:"Cell_first3__7uV8I",last3:"Cell_last3__30aLE",sharpTopLeft:"Cell_sharpTopLeft__7Frqr",sharpTopRight:"Cell_sharpTopRight__eYNVC",sharpBottomLeft:"Cell_sharpBottomLeft__KhIPs",sharpBottomRight:"Cell_sharpBottomRight__R2ZNq",unreachable:"Cell_unreachable__bH4mB"}},820:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n,r=a(5729);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let s=e=>r.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=r.createElement("path",{fill:"currentColor",d:"M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z"})))},1076:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n,r=a(5729);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let s=e=>r.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=r.createElement("path",{fill:"currentColor",d:"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z"})))},1088:(e,t,a)=>{"use strict";a.d(t,{m:()=>_});var n=a(6029),r=a(5729),l=a(7445);let s=(0,r.createContext)(null),o=()=>{let e=(0,r.useContext)(s);if(null===e)throw Error("Tooltip components must be wrapped in <Tooltip />");return e};var i=a(7226),c=a(5227),u=a(7746),d=a.n(u);let h=(0,r.forwardRef)((e,t)=>{let a=o(),{context:r}=a,{isInstantPhase:l,currentId:s}=(0,i.ck)(r,{id:r.floatingId}),u=(0,i.SV)([a.refs.setFloating,t]),h={open:0,close:s===r.floatingId?c.T7:0},{isMounted:p,styles:m}=(0,i.DL)(r,{duration:l?h:c.T7,initial:{opacity:0}});return p?(0,n.jsx)(i.XF,{children:(0,n.jsxs)("div",{className:d().tooltip,ref:u,style:{...a.floatingStyles,...e.style,...m},...a.getFloatingProps(e),children:[(0,n.jsx)("div",{children:e.children}),(0,n.jsx)(i.ie,{className:d().arrow,context:r,ref:a.arrowRef})]})}):null});var p=a(9604);let m=(0,r.forwardRef)((e,t)=>{let{children:a,...n}=e,l=o(),s=(0,r.isValidElement)(a)?a.props.ref:void 0,c=(0,i.SV)([l.refs.setReference,t,s]);if(!(0,r.isValidElement)(a))throw Error("TooltipTrigger's children are not a valid element");return(0,r.cloneElement)(a,l.getReferenceProps({ref:c,...n,...(0,p.isObject)(a.props)?a.props:{},"data-state":l.open?"open":"closed"}))});var g=a(1775),v=a(2309);let f=function(){let{placement:e="top"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[t,a]=(0,r.useState)(!1),n=(0,r.useRef)(null),l=(0,i.we)({placement:e,strategy:"fixed",open:t,onOpenChange:a,whileElementsMounted:g.ll,middleware:[(0,v.UU)(),(0,v.BN)({padding:10}),(0,v.cY)(10),(0,v.UE)({element:n})]}),{context:s}=l,{delay:o}=(0,i.ck)(s),c=(0,i.Mk)(s,{move:!1,delay:o}),u=(0,i.iQ)(s),d=(0,i.s9)(s,{ancestorScroll:!0}),h=(0,i.It)(s,{role:"tooltip"}),p=(0,i.bv)([c,u,d,h]);return(0,r.useMemo)(()=>({arrowRef:n,open:t,setOpen:a,...p,...l}),[n,t,a,p,l])},_=e=>{let{children:t,placement:a,tooltip:s}=e,o=(()=>{let[e,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=window.setTimeout(()=>t(!0),0);return()=>window.clearTimeout(e)},[]),e})(),i=(0,l.J)();return s&&o&&!i?(0,n.jsx)(b,{placement:a,tooltip:s,children:t}):t},b=e=>{let{children:t,placement:a,tooltip:r}=e,l=f({placement:a});return(0,n.jsxs)(s.Provider,{value:l,children:[(0,n.jsx)(m,{children:t}),(0,n.jsx)(h,{children:r})]})}},1090:e=>{e.exports={rack:"Rack_rack__0GhLs",tile:"Rack_tile__jnU1W",hidden:"Rack_hidden__3UrpD",sharpLeft:"Rack_sharpLeft__Zlx5l",sharpRight:"Rack_sharpRight__s2zNJ"}},1248:e=>{e.exports={actions:"Actions_actions__JclIc",action:"Actions_action__zkQOb"}},1274:e=>{e.exports={alert:"Alert_alert__cFBJC",iconContainer:"Alert_iconContainer__rIJ4B",error:"Alert_error__sMv5d",info:"Alert_info__5QGDB",success:"Alert_success__vQBXB",warning:"Alert_warning__6DDhO",icon:"Alert_icon__jUrPr",content:"Alert_content__QyQ78"}},1372:(e,t,a)=>{"use strict";a.d(t,{l:()=>n});let n=()=>void 0},1566:e=>{e.exports={board:"Board_board__Xnuco",floating:"Board_floating__6BuCt",show:"Board_show__qgRUu",focus:"Board_focus__1plN1",hidden:"Board_hidden__HUigM",hide:"Board_hide__3Xn0K",iconContainer:"Board_iconContainer__YELP8",iconBackground:"Board_iconBackground__u0tVi",icon:"Board_icon__0J1Ig",coordinate:"Board_coordinate__LaKUI",rotate:"Board_rotate__dvty2",wave:"Board_wave__YvFwO"}},1667:(e,t,a)=>{"use strict";a.d(t,{X7:()=>b,A_:()=>k,bw:()=>_,A7:()=>j,U4:()=>f,U$:()=>M,qN:()=>x,oe:()=>N});var n=a(1644),r=a(9604),l=a(7577),s=a(8390),o=a(8687),i=a(5759),c=a(9353),u=a(1863),d=a(3354),h=a(8502);let p=(e,t)=>(0,u.I)({isHorizontal:"horizontal"===e.direction,x:e.x,y:e.y},t),m={[h.mh.Coordinates]:(e,t)=>(0,o._)({getItemCoordinates:p,locale:e,showCoordinates:t}),[h.mh.Validity]:()=>(e,t)=>(0,d.U)(Number(e.isValid),Number(t.isValid)),[h.mh.Word]:e=>(0,i.s)("word",e)},g=(e,t)=>t,v=e=>e.verify,f=(0,n.Mz)([v],e=>(0,r.isError)(e.error)?e.error:void 0),_=(0,n.Mz)([v],e=>e.lastSolvedParameters.board),b=(0,n.Mz)([v],e=>e.invalidWords),w=(0,n.Mz)([v],e=>e.validWords),x=(0,n.Mz)([v],e=>e.query),N=(0,n.Mz)([v],e=>e.sort),y=(0,n.Mz)([b,w],(e,t)=>[...e,...t]),C=(0,n.Mz)([y,N,s.JV,s.hN],(e,t,a,n)=>[...e].sort((0,c.D)({comparators:m,locale:a,showCoordinates:n,sort:t}))),j=(0,n.Mz)([C,x],(e,t)=>{let a,{matching:n,other:r}=(a=(0,l.O)(t),e.reduce((e,t)=>(t.word.match(a)?e.matching.push(t):e.other.push(t),e),{matching:[],other:[]}));return[...n,...r]}),k=(0,n.Mz)([j,x,g],(e,t,a)=>(0,l.O)(t).test(e[a].word)),M=(0,n.Mz)([j,s.hN,g],(e,t,a)=>p(e[a],t))},1730:(e,t,a)=>{"use strict";a.d(t,{VZ:()=>M,To:()=>j,jt:()=>f,Sb:()=>x,th:()=>k,i1:()=>N,Xm:()=>E,fI:()=>_,l6:()=>b,Zu:()=>w});var n=a(1644),r=a(7577),l=a(4264),s=a(8390),o=a(8687),i=a(5759),c=a(9353),u=a(1863),d=a(8502);let h=(e,t)=>{let a=e.cells[0];return(0,u.I)({isHorizontal:e.isHorizontal(),x:a.x,y:a.y},t)},p=(e,t)=>{let a=t.filter(e=>"exclude"===e.type).every(t=>{let{x:a,y:n}=t;return e.cells.every(e=>e.x!==a||e.y!==n)});if(!a)return!1;let n=t.filter(e=>"include"===e.type).every(t=>{let{x:a,y:n}=t;return e.cells.some(e=>e.x===a&&e.y===n)});return a&&n},m={[d.NN.BlanksCount]:e=>(0,i.s)("blanksCount",e),[d.NN.ConsonantsCount]:e=>(0,i.s)("consonantsCount",e),[d.NN.Coordinates]:(e,t)=>(0,o._)({getItemCoordinates:h,locale:e,showCoordinates:t}),[d.NN.Points]:e=>(0,i.s)("points",e),[d.NN.TilesCount]:e=>(0,i.s)("tilesCount",e),[d.NN.VowelsCount]:e=>(0,i.s)("vowelsCount",e),[d.NN.Word]:e=>(0,i.s)("word",e),[d.NN.WordsCount]:e=>(0,i.s)("wordsCount",e)},g=(e,t)=>t,v=e=>e.results,f=(0,n.Mz)([v],e=>e.candidate),_=(0,n.Mz)([v],e=>e.query),b=(0,n.Mz)([v],e=>e.results),w=(0,n.Mz)([v],e=>e.sort),x=(0,n.Mz)([f],e=>e?.cells??[]),N=(0,n.Mz)([f],e=>e?.tiles??[]),y=(0,n.Mz)([b,w,s.JV,s.hN],(e,t,a,n)=>{if(void 0!==e)return[...e].sort((0,c.D)({comparators:m,locale:a,showCoordinates:n,sort:t}))}),C=(0,n.Mz)([y,_,l.o],(e,t,a)=>{if(void 0===e)return;let n=(0,r.O)(t),{matching:l,other:s}=e.reduce((e,t)=>(p(t,a)&&t.word.match(n)?e.matching.push(t):e.other.push(t),e),{matching:[],other:[]});return{matching:l,other:s}}),j=(0,n.Mz)([C],e=>e?[...e.matching,...e.other]:void 0),k=(0,n.Mz)([j,f],(e,t)=>{let a=e&&t?e.findIndex(e=>e.id===t.id):-1;return -1===a?void 0:a}),M=(0,n.Mz)([j,_,l.o,g],(e,t,a,n)=>{if(!e)return!1;let l=e[n];return!!(0,r.O)(t).test(l.word)&&p(l,a)}),E=(0,n.Mz)([j,s.hN,g],(e,t,a)=>e?h(e[a],t):"")},1751:(e,t,a)=>{"use strict";a.d(t,{c:()=>n});let n=()=>!!globalThis.navigator&&(globalThis.navigator.platform.startsWith("Mac")||globalThis.navigator.platform.startsWith("iPhone"))},1758:e=>{e.exports={iconButton:"IconButton_iconButton__cz_iA",content:"IconButton_content__9uHMt",icon:"IconButton_icon__WVF0q"}},1863:(e,t,a)=>{"use strict";a.d(t,{I:()=>r});var n=a(3434);let r=(e,t)=>{let{isHorizontal:a,x:r,y:l}=e,s=(0,n.H)(r,"original"===t?"letter":"number"),o=(0,n.H)(l,"original"===t?"number":"letter");return a?`${o}${s}`:`${s}${o}`}},2164:e=>{e.exports={tile:"Tile_tile__Ix_p2",points1:"Tile_points1__Ubc_x",points2:"Tile_points2__d_3CH",points3:"Tile_points3__Q5XVD",points4:"Tile_points4__hu5jg",points5:"Tile_points5__4JVlF",raised:"Tile_raised__ObpSU",blank:"Tile_blank__WIuHs",empty:"Tile_empty__GU8RF",invalid:"Tile_invalid__vYgf3",highlighted:"Tile_highlighted__Xw3Fw",points:"Tile_points__3CAVI",input:"Tile_input__AO_aO",alert:"Tile_alert__0l1_m"}},2237:e=>{e.exports={nav:"index_nav__oayCy",navContent:"index_navContent__puCTa",navLogo:"index_navLogo__iI_za",logoContainer:"index_logoContainer__YyxQp",logo:"index_logo__jZUto",solver:"index_solver__wz8VS"}},2242:(e,t,a)=>{"use strict";a.d(t,{f:()=>h});var n=a(6029),r=a(2988),l=a.n(r),s=a(7809),o=a(5526),i=a(8390),c=a(1088),u=a(5462),d=a.n(u);let h=e=>{let{children:t,className:a,"data-testid":r,primary:u,translationKey:h,tooltip:p,value:m}=e,g=(0,s.W)(),v=(0,o.N)(i.JV),f=m.toLocaleString(v),_=h?`${g(h)}: `:"";return(0,n.jsx)(c.m,{tooltip:`${_}${p||f}`,children:(0,n.jsx)("div",{className:l()(d().cell,a,{[d().primary]:u}),"data-testid":r,children:(0,n.jsx)("span",{className:d().cellValue,children:t||f})})})}},2846:e=>{e.exports={results:"Results_results__RAvy9",emptyState:"Results_emptyState__HkpYj",content:"Results_content__eBfb2",listContainer:"Results_listContainer__y4jAK",list:"Results_list__ep2TB",outdated:"Results_outdated__xbp6D",stat:"Results_stat__zl_Bp",points:"Results_points__vyk3z",coordinates:"Results_coordinates__1Ph_Z",solveButton:"Results_solveButton__V3YrS",input:"Results_input__4Te0e",highlight:"Results_highlight__RIiBE"}},2968:(e,t,a)=>{"use strict";a.d(t,{Q:()=>r});var n=a(5729);let r=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=(0,n.useCallback)(t=>{let a=s(e);return a.addEventListener("change",t),()=>{a.removeEventListener("change",t)}},[e]),r=(0,n.useCallback)(()=>s(e).matches,[e]),l=(0,n.useCallback)(()=>t,[t]);return(0,n.useSyncExternalStore)(a,r,l)},l=new Map;function s(e){let t=l.get(e);return t||(t=window.matchMedia(e),l.set(e,t)),t}},2970:(e,t,a)=>{"use strict";a.d(t,{R:()=>m});var n=a(6029),r=a(2988),l=a.n(r),s=a(5729),o=a(1734),i=a(7809),c=a(5526),u=a(8390),d=a(7786),h=a(4454),p=a.n(h);let m=e=>{let{className:t,wave:a=!0}=e,r=(0,i.W)(),h=(0,c.N)(u.JV),{direction:m}=o.x[h],g=r("common.loading"),v="ltr"===m?g:g.split("").reverse().join(""),f=(0,s.useMemo)(()=>[v.toLocaleUpperCase(h).split(" ")],[h,v]);return(0,n.jsxs)("div",{"aria-label":g,className:l()(p().loading,t),"data-testid":"loading",role:"status",children:[(0,n.jsx)("div",{className:p().dim}),(0,n.jsx)("div",{className:p().text,children:(0,n.jsx)(d.m,{className:l()(p().tiles),content:f,dropShadow:!0,wave:a})})]})}},3117:(e,t,a)=>{"use strict";a.d(t,{$:()=>c});var n=a(6029),r=a(2988),l=a.n(r),s=a(1088),o=a(4580),i=a.n(o);let c=Object.assign(e=>{let{children:t,className:a,Icon:r,iconClassName:o,tooltip:c,variant:u="default",wide:d,...h}=e;return(0,n.jsx)(s.m,{tooltip:c,children:(0,n.jsx)("button",{className:l()(i().button,a,{[i().default]:"default"===u,[i().primary]:"primary"===u,[i().wide]:d}),type:"button",...h,children:(0,n.jsxs)("span",{className:i().content,children:[r&&(0,n.jsx)(r,{"aria-hidden":"true",className:l()(i().icon,o),role:"img"}),t&&(0,n.jsx)("span",{className:i().label,children:t})]})})})},{Link:e=>{let{children:t,className:a,Icon:r,iconClassName:o,tooltip:c,variant:u="default",wide:d,...h}=e;return(0,n.jsx)(s.m,{tooltip:c,children:(0,n.jsx)("a",{className:l()(i().button,a,{[i().default]:"default"===u,[i().primary]:"primary"===u,[i().wide]:d}),...h,children:(0,n.jsxs)("span",{className:i().content,children:[r&&(0,n.jsx)(r,{className:l()(i().icon,o)}),t&&(0,n.jsx)("span",{className:i().label,children:t})]})})})}})},3304:(e,t,a)=>{"use strict";a.d(t,{k:()=>n});let n=e=>e.hoveredWord.word},3354:(e,t,a)=>{"use strict";a.d(t,{U:()=>n});let n=(e,t)=>e-t},3357:(e,t,a)=>{"use strict";a.d(t,{Q:()=>r});var n=a(7577);function r(e){return 0===e.trim().length?[]:[(0,n.O)(e)]}},3434:(e,t,a)=>{"use strict";a.d(t,{H:()=>r});let n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",r=(e,t)=>{if("number"===t)return String(e+1);let a="",r=e;for(;r>=0;)a=n[r%n.length]+a,r=Math.floor(r/n.length)-1;return a}},3644:(e,t,a)=>{"use strict";a.d(t,{R:()=>n});let n=e=>e.hoveredTile.character},3656:e=>{e.exports={emptyState:"EmptyState_emptyState__N2idu",tiles:"EmptyState_tiles__FYVO9"}},3812:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n,r=a(5729);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let s=e=>r.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=r.createElement("path",{fill:"currentColor",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"})))},4056:(e,t,a)=>{"use strict";a.d(t,{b:()=>p});var n=a(6029),r=a(2988),l=a.n(r),s=a(7809),o=a(5526),i=a(5035),c=a(7852),u=a(2970),d=a(8504),h=a.n(d);let p=e=>{let{className:t}=e,a=(0,s.W)(),r=(0,o.N)(i.Fe),d=(0,o.N)(i.dp),p=(0,o.N)(i.nD);return(0,n.jsxs)("div",{className:l()(h().dictionary,t),children:[(0,n.jsxs)("div",{className:h().content,children:[void 0!==p&&!d&&(0,n.jsx)(c.p,{variant:"error",children:p.message}),void 0===p&&!d&&0===r.length&&(0,n.jsx)(c.p,{variant:"info",children:a("dictionary.empty-state.uninitialized")}),r.map(e=>{let{definitions:t,exists:r,isAllowed:s,word:o}=e;return(0,n.jsx)("div",{className:l()(h().result,{[h().isAllowed]:!0===s,[h().isNotAllowed]:!1===s}),children:(0,n.jsxs)("div",{className:h().resultContent,children:[o&&(0,n.jsx)("h2",{className:h().word,children:o}),!1===s&&(0,n.jsx)("div",{children:a("dictionary.empty-state.not-allowed")}),!0===s&&0===t.length&&(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("div",{children:r?a("dictionary.empty-state.no-definitions"):a("dictionary.empty-state.no-results")})}),!0===s&&t.length>0&&(0,n.jsx)("ul",{className:h().definitions,children:t.map((e,t)=>(0,n.jsx)("li",{className:h().definition,children:e},t))}),!d&&null===s&&(0,n.jsx)("div",{children:a("dictionary.empty-state.no-results")})]})},o)})]}),d&&(0,n.jsx)(u.R,{})]})}},4312:e=>{e.exports={button:"ToggleDirectionButton_button__8P075",icon:"ToggleDirectionButton_icon__ZZ78d",right:"ToggleDirectionButton_right__b0_LR"}},4454:e=>{e.exports={loading:"Loading_loading__zKVig",dim:"Loading_dim__sBo77",text:"Loading_text__AUS3o",tiles:"Loading_tiles__5IEHk"}},4580:e=>{e.exports={button:"Button_button__8B4nB",primary:"Button_primary__KcWsb",default:"Button_default__nKr4u",icon:"Button_icon__V37WX",content:"Button_content__gu4us",label:"Button_label__YUlJz",wide:"Button_wide__xwJam"}},4696:e=>{e.exports={navButtons:"NavButtons_navButtons__Ar_TQ",button:"NavButtons_button__UKQU0",separator:"NavButtons_separator__lPmge",group:"NavButtons_group__OiFOK",error:"NavButtons_error__kbe3P",fullNav:"NavButtons_fullNav__ssFBL",shortNav:"NavButtons_shortNav__kzmRS",keyMapButton:"NavButtons_keyMapButton__W6Z_3"}},4735:(e,t,a)=>{"use strict";a.d(t,{J_:()=>f,um:()=>w,Ow:()=>b,x4:()=>_});var n=a(1644),r=a(5481),l=a(3354),s=a(1855),o=a(3304),i=a(900),c=a(5759),u=a(5044),d=a(1730),h=a(8390),p=a(8744),m=a(1667);let g=(0,n.Mz)([p.eC,s.p],(e,t)=>!e.board.equals(t)),v=(0,n.Mz)([p.eC,u.x,h.JV],(e,t,a)=>!((e,t,a)=>{let n;if(e.length!==t.length)return!1;let s=(n=(0,r.U)(a),(e,t)=>"string"==typeof e&&"string"==typeof t?n(e,t):"number"==typeof e&&"number"==typeof t?(0,l.U)(e,t):0),o=[...e].sort(s),i=[...t].sort(s);return o.every((e,t)=>e===i[t])})(e.characters,t,a)),f=(0,n.Mz)([g,v],(e,t)=>e||t),_=(0,n.Mz)([d.l6,f,p.ax],(e,t,a)=>!e||t||a?null:e),b=(0,n.Mz)([o.k,m.bw,s.p],(e,t,a)=>e&&t.equals(a)?e:null),w=(0,n.Mz)([h.zg,s.p,u.x,h.JV],(e,t,a,n)=>{let r=t.rows.flat().filter(e=>!e.isEmpty),l=r.filter(e=>!e.tile.isBlank),s=Object.fromEntries(e.tiles.map(e=>[e.character,{...e,usedCount:0}])),o={character:i.BLANK,count:e.blanksCount,score:e.blankScore,usedCount:r.filter(e=>e.tile.isBlank).length+a.filter(e=>e===i.BLANK).length},u=[...l.map(e=>e.tile.character),...a.filter(e=>e!==i.BLANK)];for(let e of u.filter(e=>void 0===s[e]))s[e]={character:e,count:0,score:0,usedCount:0};for(let e of u)++s[e].usedCount;let d=(0,c.s)("character",n);return[...Object.values(s).sort(d),o]})},5214:e=>{e.exports={dictionaryInput:"DictionaryInput_dictionaryInput__ko75b",input:"DictionaryInput_input__dfsFg"}},5462:e=>{e.exports={header:"Table_header___xDQO",headerButton:"Table_headerButton__zlLa5",primary:"Table_primary__IaJpj",headerButtonLabel:"Table_headerButtonLabel__dYzT_",headerButtonIcon:"Table_headerButtonIcon__joRQg",row:"Table_row__iZMLR",highlighted:"Table_highlighted__uYiL_",clickable:"Table_clickable__FAcx4",rowContent:"Table_rowContent__3NS_l",cell:"Table_cell__1d8Mm",cellValue:"Table_cellValue__cYjXm",search:"Table_search__FugjW",searchField:"Table_searchField__NlV0w",sortIcon:"Table_sortIcon__5dVth"}},5481:(e,t,a)=>{"use strict";a.d(t,{U:()=>n});let n=e=>(t,a)=>t.localeCompare(a,e)},5486:(e,t,a)=>{"use strict";a.d(t,{F:()=>v});var n,r=a(6029),l=a(7226),s=a(900),o=a(5729),i=a(1372),c=a(2988),u=a.n(c);function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let h=e=>o.createElement("svg",d({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=o.createElement("path",{fill:"currentColor",d:"M8 4c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995A.905.905 0 0 1 8 4m.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2"})));var p=a(2164),m=a.n(p);let g=(0,o.memo)(e=>{let{"aria-label":t,autoFocus:a,canShowPoints:n,character:l,className:s,disabled:o,highlighted:i,inputRef:c,isBlank:d,isValid:p,placeholder:g,points:v,pointsFormatted:f,raised:_,tabIndex:b,onChange:w,onFocus:x,onKeyDown:N,onMouseDown:y,onTouchStart:C}=e;return(0,r.jsxs)("div",{className:u()(m().tile,s,{[m().blank]:d,[m().empty]:!l,[m().invalid]:!p,[m().highlighted]:i,[m().points1]:1===v,[m().points2]:2===v,[m().points3]:3===v,[m().points4]:4===v,[m().points5]:"number"==typeof v&&v>=5,[m().raised]:_}),role:i?"mark":void 0,children:[l||g,!o&&(0,r.jsx)("input",{"aria-label":t,autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",autoFocus:a,className:m().input,disabled:o,ref:c,spellCheck:!1,tabIndex:b,value:l||"",onChange:w,onFocus:x,onKeyDown:N,onMouseDown:y,onTouchStart:C}),n&&(0,r.jsx)("span",{className:m().points,children:f}),!p&&(0,r.jsx)(h,{"aria-hidden":"true",className:m().alert,role:"img"})]})}),v=e=>{let{"aria-label":t,autoFocus:a,className:n,character:c="",disabled:u,highlighted:d,inputRef:h,isBlank:p,isValid:m,locale:v,placeholder:f,points:_,raised:b,tabIndex:w,onChange:x,onFocus:N=i.l,onKeyDown:y=i.l,onMouseDown:C=i.l,onTouchStart:j=i.l}=e,k=(0,o.useRef)(null),M=(0,l.SV)(h?[k,h]:[k]),E=(!(!c||c===s.EMPTY_CELL)||p)&&void 0!==_,B="number"==typeof _?_.toLocaleString(v):"",A=(0,o.useCallback)(e=>{k.current?.select(),y(e)},[y]);return(0,r.jsx)(g,{"aria-label":t,autoFocus:a,canShowPoints:E,character:c,className:n,disabled:u,highlighted:d,inputRef:M,isBlank:p,isValid:m,placeholder:f,points:_,pointsFormatted:B,raised:b,tabIndex:w,onChange:x,onFocus:N,onKeyDown:A,onMouseDown:C,onTouchStart:j})}},5526:(e,t,a)=>{"use strict";a.d(t,{N:()=>n});let n=a(9276).d4},5674:e=>{e.exports={solver:"Solver_solver__HgdJ5",container:"Solver_container__ajXif",content:"Solver_content__HOara",boardContainer:"Solver_boardContainer__4GPRC",board:"Solver_board__GI25F",submitInput:"Solver_submitInput__Q3pw9",column:"Solver_column__stLpp",results:"Solver_results__YjM_q",dictionaryContainer:"Solver_dictionaryContainer__v6K0v",dictionary:"Solver_dictionary__R2P0a",dictionaryInput:"Solver_dictionaryInput__kSVRV",bottomContainer:"Solver_bottomContainer___pVNW",bottomContent:"Solver_bottomContent__b8KyY",controls:"Solver_controls__4fjwP",emptyState:"Solver_emptyState__6TEU_"}},5759:(e,t,a)=>{"use strict";a.d(t,{s:()=>l});var n=a(5481),r=a(3354);let l=(e,t)=>{let a=(0,n.U)(t);return(t,n)=>{let l=t[e],s=n[e];return"string"==typeof l&&"string"==typeof s?a(l,s):"number"==typeof l&&"number"==typeof s?(0,r.U)(l,s):0}}},5812:e=>{e.exports={inputPrompt:"InputPrompt_inputPrompt__1_ygJ",toggleDirection:"InputPrompt_toggleDirection__mx8tU",input:"InputPrompt_input__Qdlf_",insert:"InputPrompt_insert__FLC5l",insertIcon:"InputPrompt_insertIcon__aL5tM"}},5902:e=>{e.exports={wave:"PlainTiles_wave__bE4zX",tile:"PlainTiles_tile___NJSM",dropShadow:"PlainTiles_dropShadow__K0PlA",hide:"PlainTiles_hide__A1qMM",show:"PlainTiles_show__tFNGv",rotate:"PlainTiles_rotate__7Jm2X"}},5903:e=>{e.exports={insertButton:"InsertButton_insertButton__t2Y1w",icon:"InsertButton_icon__w3D9r"}},6205:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n,r=a(5729);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let s=e=>r.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=r.createElement("path",{fill:"currentColor",d:"M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0"})))},6474:(e,t,a)=>{"use strict";a.d(t,{$:()=>g});var n=a(6029),r=a(2988),l=a.n(r),s=a(9276),o=a(1734),i=a(7809),c=a(5526),u=a(8390),d=a(5035),h=a(7493),p=a(5214),m=a.n(p);let g=e=>{let{className:t}=e,a=(0,s.wA)(),r=(0,i.W)(),p=(0,c.N)(u.JV),{input:g}=(0,c.N)(d.Tx),{comma:v}=o.x[p];return(0,n.jsx)("form",{className:l()(m().dictionaryInput,t),onSubmit:e=>{e.preventDefault(),a(h.z.actions.submit())},children:(0,n.jsx)("input",{"aria-label":r("dictionary.input.title"),className:m().input,pattern:`.*[^\\s${v}].*`,placeholder:r("dictionary.input.placeholder"),required:!0,title:r("dictionary.input.title"),type:"text",value:g,onChange:e=>{a(h.z.actions.changeInput(e.target.value))}})})}},6905:(e,t,a)=>{"use strict";a.d(t,{Y:()=>s});var n=a(6029),r=a(5462),l=a.n(r);let s=e=>{let{children:t}=e;return(0,n.jsx)("div",{className:l().header,children:t})}},7445:(e,t,a)=>{"use strict";a.d(t,{J:()=>r});var n=a(2968);let r=()=>(0,n.Q)("(hover: none)",!1)},7577:(e,t,a)=>{"use strict";a.d(t,{O:()=>n});let n=e=>{if(0===e.trim().length)return/.*/;try{return RegExp(e,"gi")}catch{return/.*/}}},7624:(e,t,a)=>{"use strict";a.d(t,{n:()=>eb});var n,r,l,s,o,i,c,u,d,h,p,m,g,v=a(6029),f=a(2988),_=a.n(f),b=a(5729),w=a(9276),x=a(2735),N=a(2626),y=a(9311),C=a(1734),j=a(5227),k=a(7809),M=a(5526),E=a(8390),B=a(1730),A=a(8744),S=a(4735),z=a(3203),L=a(7852),P=a(2970),T=a(8334),O=a(6905),R=a(8221),I=a(1644),D=a(8502),V=a(7668);let W=[D.NN.Coordinates,D.NN.Word,D.NN.Points],$=[...W,D.NN.BlanksCount,D.NN.WordsCount],F=[...W],K=[...W],H=(0,I.Mz)([E.JV],e=>{let{consonants:t,vowels:a}=C.x[e],n=[D.NN.Word,D.NN.TilesCount,D.NN.BlanksCount,D.NN.WordsCount,D.NN.Points,D.NN.Coordinates];return a&&n.push(D.NN.VowelsCount),t&&n.push(D.NN.ConsonantsCount),n}),U=()=>{let e,t,a,n=(0,M.N)(H),{isLessThanXs:r,isLessThanS:l,isLessThanM:s,isLessThanL:o}=(e=(0,V.U)("<xs"),t=(0,V.U)("<s"),a=(0,V.U)("<m"),{isLessThanXs:e,isLessThanS:t,isLessThanM:a,isLessThanL:(0,V.U)("<l"),isLessThanXl:(0,V.U)("<xl")}),i=(0,b.useMemo)(()=>r?n.filter(e=>W.includes(e)):l?n.filter(e=>$.includes(e)):s?n.filter(e=>F.includes(e)):o?n.filter(e=>K.includes(e)):n,[n,r,l,s,o]);return(0,b.useMemo)(()=>Object.fromEntries(i.map(e=>[e,!0])),[i])};var J=a(7713);function Z(){return(Z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let Y=e=>b.createElement("svg",Z({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),n||(n=b.createElement("path",{d:"M2.873 11.297V4.142H1.699L0 5.379v1.137l1.64-1.18h.06v5.961zm3.213-5.09v-.063c0-.618.44-1.169 1.196-1.169.676 0 1.174.44 1.174 1.106 0 .624-.42 1.101-.807 1.526L4.99 10.553v.744h4.78v-.99H6.643v-.069L8.41 8.252c.65-.724 1.237-1.332 1.237-2.27C9.646 4.849 8.723 4 7.308 4c-1.573 0-2.36 1.064-2.36 2.15v.057zm6.559 1.883h.786c.823 0 1.374.481 1.379 1.179.01.707-.55 1.216-1.421 1.21-.77-.005-1.326-.419-1.379-.953h-1.095c.042 1.053.938 1.918 2.464 1.918 1.478 0 2.642-.839 2.62-2.144-.02-1.143-.922-1.651-1.551-1.714v-.063c.535-.09 1.347-.66 1.326-1.678-.026-1.053-.933-1.855-2.359-1.845-1.5.005-2.317.88-2.348 1.898h1.116c.032-.498.498-.944 1.206-.944.703 0 1.206.435 1.206 1.07.005.64-.504 1.106-1.2 1.106h-.75z"})));var Q=a(1076);function G(){return(G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let X=e=>b.createElement("svg",G({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),r||(r=b.createElement("path",{d:"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z"})),l||(l=b.createElement("path",{d:"m7.295 4.87-2.057 6.26h1.227l.48-1.61h2.047l.479 1.61h1.29L8.716 4.87Zm.648 1.198h.055l.75 2.532H7.193z"})));function q(){return(q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let ee=e=>b.createElement("svg",q({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),s||(s=b.createElement("path",{d:"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z"})),o||(o=b.createElement("path",{d:"M5.658 4.87v6.26H8.21c1.243 0 2.133-.646 2.133-1.765 0-.94-.63-1.453-1.365-1.527V7.78c.606-.152 1.05-.609 1.05-1.37 0-.959-.718-1.542-1.808-1.542zm1.203.93h1.075c.57 0 .896.311.896.821 0 .545-.358.854-1.17.854h-.8Zm0 2.538h1.15c.714 0 1.096.362 1.096.953 0 .597-.392.908-1.343.908H6.86Z"})));function et(){return(et=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let ea=e=>b.createElement("svg",et({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),i||(i=b.createElement("path",{d:"M2.75 4v.75h7.75a.75.75 0 0 1 .75.75v7.75H12V5.5A1.5 1.5 0 0 0 10.5 4Z"})),c||(c=b.createElement("path",{d:"M12 14h-.75v.5a.75.75 0 0 1-.75.75h-9a.75.75 0 0 1-.75-.75v-9a.75.75 0 0 1 .75-.75H2V4h-.5A1.5 1.5 0 0 0 0 5.5v9A1.5 1.5 0 0 0 1.5 16h9a1.5 1.5 0 0 0 1.5-1.5Z"})),u||(u=b.createElement("path",{d:"M2 4.75h.75V4H2ZM12 14v-.75h-.75V14ZM4.75 2v.75h7.75a.75.75 0 0 1 .75.75v7.75H14V3.5A1.5 1.5 0 0 0 12.5 2ZM4 2.75V2h-.5A1.5 1.5 0 0 0 2 3.5V4h.75v-.5a.75.75 0 0 1 .75-.75ZM14 12h-.75v.5a.75.75 0 0 1-.75.75H12V14h.5a1.5 1.5 0 0 0 1.5-1.5ZM4 2.75h.75V2H4ZM14 12v-.75h-.75V12Z"})),d||(d=b.createElement("path",{d:"M5.5 0A1.5 1.5 0 0 0 4 1.5V2h.75v-.5A.75.75 0 0 1 5.5.75h9a.75.75 0 0 1 .75.75v9a.75.75 0 0 1-.75.75H14V12h.5a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 0Z"})));function en(){return(en=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let er=e=>b.createElement("svg",en({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),h||(h=b.createElement("path",{d:"M7.219.516a.516.516 0 0 1 .515.515V7.22a.516.516 0 0 1-.515.515H1.03a.516.516 0 0 1-.515-.515V1.03A.516.516 0 0 1 1.03.516ZM1.03 0A1.03 1.03 0 0 0 0 1.031V7.22A1.03 1.03 0 0 0 1.031 8.25H7.22A1.03 1.03 0 0 0 8.25 7.219V1.03A1.03 1.03 0 0 0 7.219 0Z"})),p||(p=b.createElement("path",{d:"M14.969 8.266a.516.516 0 0 1 .515.515v6.188a.516.516 0 0 1-.515.515H8.78a.516.516 0 0 1-.515-.515V8.78a.516.516 0 0 1 .515-.515ZM8.78 7.75A1.03 1.03 0 0 0 7.75 8.781v6.188A1.03 1.03 0 0 0 8.781 16h6.188A1.03 1.03 0 0 0 16 14.969V8.78a1.03 1.03 0 0 0-1.031-1.031ZM3.761 2.5l-1.06 3.25h.632l.248-.836h1.056l.246.836h.666L4.494 2.5Zm.335.622h.028l.387 1.314h-.802ZM2.954 10.25v3.25h1.275c.622 0 1.067-.336 1.067-.916 0-.489-.315-.755-.683-.793v-.03c.303-.078.526-.316.526-.711 0-.497-.36-.8-.905-.8zm.602.484h.537c.285 0 .448.16.448.425 0 .283-.179.443-.585.443h-.4Zm0 1.316h.575c.356 0 .548.188.548.495 0 .31-.197.471-.672.471h-.451Z"})),m||(m=b.createElement("path",{d:"M7.219 8.266a.516.516 0 0 1 .515.515v6.188a.516.516 0 0 1-.515.515H1.03a.516.516 0 0 1-.515-.515V8.78a.516.516 0 0 1 .515-.515ZM1.03 7.75A1.03 1.03 0 0 0 0 8.781v6.188A1.03 1.03 0 0 0 1.031 16H7.22a1.03 1.03 0 0 0 1.031-1.031V8.78A1.03 1.03 0 0 0 7.219 7.75ZM11.92 10.25c-.82 0-1.287.548-1.287 1.436v.39c0 .887.463 1.424 1.287 1.424.672 0 1.168-.413 1.197-1.01v-.061h-.586c-.025.32-.254.548-.607.548-.428 0-.673-.324-.673-.902v-.387c0-.58.249-.915.673-.915.348 0 .582.245.607.578h.586v-.057c-.027-.62-.523-1.044-1.197-1.044"})));var el=a(2846),es=a.n(el);let eo=()=>{let e=(0,w.wA)(),t=U(),a=(0,M.N)(B.Zu),n=(0,b.useCallback)(t=>{e(z.N.actions.sort(t))},[e]);return(0,v.jsxs)(O.Y,{children:[t[D.NN.Coordinates]&&(0,v.jsx)(R.I,{className:es().coordinates,Icon:J.A,id:D.NN.Coordinates,sort:a,translationKey:"settings.showCoordinates",onSort:n}),t[D.NN.Word]&&(0,v.jsx)(R.I,{id:D.NN.Word,primary:!0,sort:a,translationKey:"common.word",onSort:n}),t[D.NN.TilesCount]&&(0,v.jsx)(R.I,{className:es().stat,Icon:ea,id:D.NN.TilesCount,sort:a,translationKey:"common.tiles",onSort:n}),t[D.NN.VowelsCount]&&(0,v.jsx)(R.I,{className:es().stat,Icon:X,id:D.NN.VowelsCount,sort:a,translationKey:"common.vowels",onSort:n}),t[D.NN.ConsonantsCount]&&(0,v.jsx)(R.I,{className:es().stat,Icon:ee,id:D.NN.ConsonantsCount,sort:a,translationKey:"common.consonants",onSort:n}),t[D.NN.BlanksCount]&&(0,v.jsx)(R.I,{className:es().stat,Icon:Q.A,id:D.NN.BlanksCount,sort:a,translationKey:"common.blanks",onSort:n}),t[D.NN.WordsCount]&&(0,v.jsx)(R.I,{className:es().stat,Icon:er,id:D.NN.WordsCount,sort:a,translationKey:"common.words",onSort:n}),t[D.NN.Points]&&(0,v.jsx)(R.I,{className:es().points,Icon:Y,id:D.NN.Points,sort:a,translationKey:"common.points",onSort:n})]})};var ei=a(5141),ec=a(8202),eu=a(2242),ed=a(3357);let eh=e=>{let{index:t,highlightedIndex:a,results:n=[],onBlur:r,onClick:l,onFocus:s,onMouseEnter:o,style:i}=e,c=U(),u=(0,M.N)(E.JV),d=(0,M.N)(B.fI),{direction:h,separator:p}=C.x[u],m=n[t],g=(0,M.N)(e=>(0,B.VZ)(e,t)),f="rtl"===h?[...m.words].reverse():m.words,_=(0,M.N)(e=>(0,B.Xm)(e,t)),b=l&&(e=>l(m,e)),w=o&&(e=>o(m,e)),x=r&&(e=>r(m,e)),N=s&&(e=>s(m,e));return(0,v.jsxs)(ec.f,{"aria-label":m.word,"data-testid":"result",highlighted:t===a,inactive:!g,style:i,onBlur:x,onClick:b,onFocus:N,onMouseEnter:w,children:[c[D.NN.Coordinates]&&(0,v.jsx)(eu.f,{className:es().coordinates,translationKey:"settings.showCoordinates",value:_}),c[D.NN.Word]&&(0,v.jsx)(eu.f,{primary:!0,translationKey:"common.word",value:m.word,children:(0,v.jsx)(ei.A,{highlightClassName:es().highlight,searchWords:(0,ed.Q)(d),textToHighlight:m.word})}),c[D.NN.TilesCount]&&(0,v.jsx)(eu.f,{className:es().stat,translationKey:"common.tiles",value:m.tilesCount}),c[D.NN.VowelsCount]&&(0,v.jsx)(eu.f,{className:es().stat,translationKey:"common.vowels",value:m.vowelsCount}),c[D.NN.ConsonantsCount]&&(0,v.jsx)(eu.f,{className:es().stat,translationKey:"common.consonants",value:m.consonantsCount}),c[D.NN.BlanksCount]&&(0,v.jsx)(eu.f,{className:es().stat,translationKey:"common.blanks",value:m.blanksCount}),c[D.NN.WordsCount]&&(0,v.jsx)(eu.f,{className:es().stat,tooltip:`${m.wordsCount.toLocaleString(u)} (${f.join(p)})`,translationKey:"common.words",value:m.wordsCount}),c[D.NN.Points]&&(0,v.jsx)(eu.f,{className:es().points,"data-testid":"points",translationKey:"common.points",value:m.points})]})};function ep(){return(ep=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let em=e=>b.createElement("svg",ep({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),g||(g=b.createElement("path",{fill:"currentColor",d:"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0"})));var eg=a(5044),ev=a(3876),ef=a(3117);let e_=e=>{let{className:t}=e,a=(0,w.wA)(),n=(0,k.W)(),r=(0,M.N)(A.M9),l=(0,M.N)(eg.i),s=(0,M.N)(S.J_),o=l.some(e=>null!==e);return(0,v.jsx)(ef.$,{"aria-label":n("results.solve"),className:t,disabled:r||!s||!o,Icon:em,type:"submit",variant:"primary",onClick:()=>{a(ev.A.actions.submit())},children:n("results.solve")})},eb=e=>{let{callbacks:t,className:a,highlightedIndex:n}=e,r=(0,w.wA)(),l=(0,k.W)(),s=(0,M.N)(E.JV),{direction:o}=C.x[s],i=(0,M.N)(B.To),c=(0,M.N)(B.fI),u=(0,M.N)(B.l6),d=(0,M.N)(A.M9),[h]=(0,N.d7)(d,j.fG),p=(0,M.N)(S.J_),m=(0,M.N)(A.ax),g=(0,b.useMemo)(()=>({highlightedIndex:n,results:i,onBlur:t.onBlur,onClick:t.onClick,onFocus:t.onFocus,onMouseEnter:t.onMouseEnter}),[t,n,i]),f=(0,x.Ut)(null),O=(0,y.F)("number"==typeof n?n:0),R=void 0===m&&void 0!==i,I=R&&i.length>0&&!p,D=(0,b.useCallback)(e=>{r(z.N.actions.changeQuery(e))},[r]);return(0,b.useEffect)(()=>{let e=globalThis.setTimeout(()=>{f.current?.scrollToRow({align:"center",behavior:"instant",index:O.current})},0);return()=>{globalThis.clearTimeout(e)}},[i,f,O]),(0,v.jsxs)("div",{"aria-busy":h,"aria-label":l("results"),className:_()(es().results,a),"data-outdated":p,"data-testid":"results",role:"region",children:[(0,v.jsx)(eo,{}),(0,v.jsxs)("div",{"aria-live":"polite",className:es().content,children:[void 0!==m&&(0,v.jsx)(L.p,{className:es().emptyState,variant:"error",children:m.message}),void 0===m&&void 0===i&&!d&&(0,v.jsxs)(L.p,{className:es().emptyState,variant:"info",children:[l("results.empty-state.uninitialized"),(0,v.jsx)(e_,{className:es().solveButton})]}),R&&(0,v.jsxs)(v.Fragment,{children:[p&&(0,v.jsxs)(L.p,{className:es().emptyState,variant:"info",children:[l("results.empty-state.outdated"),(0,v.jsx)(e_,{className:es().solveButton})]}),!p&&0===i.length&&(0,v.jsx)(L.p,{className:es().emptyState,variant:"warning",children:l("results.empty-state.no-results")}),!p&&i.length>0&&(0,v.jsx)("div",{className:es().listContainer,children:(0,v.jsx)(x.B8,{className:_()(es().list,{[es().outdated]:p}),dir:o,listRef:f,overscanCount:j.tg,rowComponent:eh,rowCount:i.length,rowHeight:j.J2,rowProps:g,onMouseLeave:t.onMouseLeave})})]})]}),I&&(0,v.jsx)(T.v,{className:es().input,placeholder:l("results.input.placeholder"),resetKey:u,value:c,onChange:D}),h&&(0,v.jsx)(P.R,{})]})}},7668:(e,t,a)=>{"use strict";a.d(t,{U:()=>s});var n=a(9855),r=a(5227),l=a(2968);let s=(e,t)=>{let a=(0,n.buildMediaQuery)(r.LO,e);return(0,l.Q)(a,t)}},7703:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return a(8095)}])},7713:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n,r,l=a(5729);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let o=e=>l.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),n||(n=l.createElement("path",{d:"M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A32 32 0 0 1 8 14.58a32 32 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10"})),r||(r=l.createElement("path",{d:"M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4m0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6"})))},7722:e=>{e.exports={spinner:"Spinner_spinner__dYTEm",rotate:"Spinner_rotate__kqx53",hide:"Spinner_hide__NZDja",show:"Spinner_show__ciwNs",wave:"Spinner_wave__IcOlx"}},7746:e=>{e.exports={tooltip:"Tooltip_tooltip__vAjij",arrow:"Tooltip_arrow__uIoGg"}},7786:(e,t,a)=>{"use strict";a.d(t,{m:()=>m});var n=a(6029),r=a(2988),l=a.n(r),s=a(5729),o=a(1790),i=a(9604),c=a(5227);let u=e=>e*(c.Uk+c.dW);var d=a(5902),h=a.n(d);let p=e=>{let{character:t,className:a,color:r,points:l,size:s,x:o,y:i}=e;return(0,n.jsxs)("g",{className:a,style:{fill:"var(--color--foreground)"},children:[(0,n.jsx)("rect",{height:s,rx:.15*s,style:{fill:r},width:s,x:o,y:i}),(0,n.jsx)("text",{dominantBaseline:"central",fontSize:.6*s,fontWeight:"bold",textAnchor:"middle",x:o+s/2,y:i+s/2,children:t}),"number"==typeof l&&(0,n.jsx)("text",{dominantBaseline:"text-after-edge",fontSize:.25*s,fontWeight:"bold",textAnchor:"end",x:o+.9*s,y:i+.95*s,children:l})]})},m=e=>{let t,a,r,{className:d,color:m,content:g,dropShadow:v,showPoints:f,style:_,wave:b}=e,w=(0,s.useMemo)(()=>(e=>{let{color:t,content:a,showPoints:n}=e;return a.map((e,a)=>e.map((r,l)=>{let s=e.slice(0,l).reduce((e,t)=>{let{length:a}=t;return e+a+1},0);return r.split("").map((e,r)=>(e=>{let{cellIndex:t,character:a,color:n,rowIndex:r,showPoints:l}=e,s=(0,o.getConfig)(i.Game.Literaki,i.Locale.EN_US).getCharacterPoints(a.toLowerCase()),d="number"==typeof s?c.wu[s]:c.vK;return{character:a,color:n||d,points:l?s:void 0,size:c.Uk,x:u(t),y:u(r)}})({cellIndex:s+r,character:e,color:t,rowIndex:a,showPoints:n}))})).flat(2)})({color:m,content:g,showPoints:f}),[m,g,f]);return(0,n.jsx)("svg",{className:l()(d,{[h().dropShadow]:v,[h().wave]:b}),style:_,viewBox:(a=(t=g.reduce((e,t)=>Math.max(e,t.reduce((e,t)=>e+t.length,0)+Math.max(t.length-1,0)),0))*(c.Uk+c.dW)-(0===t?0:c.dW),r=g.length*(c.Uk+c.dW)-(0===g.length?0:c.dW),`0 0 ${a} ${r}`),xmlns:"http://www.w3.org/2000/svg",children:w.map((e,t)=>(0,n.jsx)(p,{character:e.character,className:h().tile,color:e.color,points:e.points,size:e.size,x:e.x,y:e.y},t))})}},7809:(e,t,a)=>{"use strict";a.d(t,{W:()=>s});var n=a(5729),r=a(8390),l=a(5526);let s=()=>{let e=(0,l.N)(r.fF),t=(0,l.N)(r.JV);return(0,n.useCallback)((a,n)=>{let r=e[a];if(void 0===r)throw Error(`Untranslated key "${a}" in locale "${t}"`);return n?Object.entries(n).reduce((e,t)=>{let[a,n]=t;return e.replaceAll(`{{${a}}}`,n)},r):r},[e,t])}},7852:(e,t,a)=>{"use strict";a.d(t,{p:()=>_});var n=a(6029),r=a(2988),l=a.n(r),s=a(5729),o=a(1734),i=a(5227),c=a(7809),u=a(5526),d=a(8390),h=a(7786),p=a(3656),m=a.n(p);let g={error:"empty-state.error",info:"empty-state.info",success:"empty-state.success",warning:"empty-state.warning"},v={error:i.oH,info:i.fd,success:i.KG,warning:i.RO},f=new Intl.Segmenter(void 0,{granularity:"grapheme"}),_=e=>{let{children:t,className:a,variant:r}=e,i=(0,c.W)(),p=(0,u.N)(d.JV),{direction:_}=o.x[p],b=i(g[r]),w="ltr"===_?b:Array.from(f.segment(b),e=>e.segment).reverse().join(""),x=(0,s.useMemo)(()=>[w.toLocaleUpperCase(p).split(" ")],[p,w]);return(0,n.jsxs)("div",{className:l()(m().emptyState,a),children:[(0,n.jsx)(h.m,{className:m().tiles,color:v[r],content:x}),(0,n.jsx)("div",{children:t})]})}},8075:e=>{e.exports={rackTile:"RackTile_rackTile__rj6pD"}},8095:(e,t,a)=>{"use strict";a.r(t),a.d(t,{__N_SSG:()=>ap,default:()=>am});var n,r,l,s,o,i,c,u,d,h,p,m,g,v,f=a(6029),_=a(1790),b=a(1024),w=a.n(b),x=a(5729),N=a(9276),y=a(8588),C=a.n(y),j=a(5227);let k=(0,x.forwardRef)((e,t)=>(0,f.jsx)(C(),{...e,alt:"Scrabble Solver 2",height:j._Q,priority:!0,ref:t,src:j.dX,width:j.pw}));var M=a(2988),E=a.n(M),B=a(8655),A=a(820);function S(){return(S=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let z=e=>x.createElement("svg",S({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=x.createElement("path",{fill:"currentColor",d:"M8.086 2.207a2 2 0 0 1 2.828 0l3.879 3.879a2 2 0 0 1 0 2.828l-5.5 5.5A2 2 0 0 1 7.879 15H5.12a2 2 0 0 1-1.414-.586l-2.5-2.5a2 2 0 0 1 0-2.828zm.66 11.34L3.453 8.254 1.914 9.793a1 1 0 0 0 0 1.414l2.5 2.5a1 1 0 0 0 .707.293H7.88a1 1 0 0 0 .707-.293z"})));var L=a(3812);function P(){return(P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let T=e=>x.createElement("svg",P({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),r||(r=x.createElement("path",{d:"M0 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm13 .25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25M2.25 8a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 3 8.75v-.5A.25.25 0 0 0 2.75 8zM4 8.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 5 8.75v-.5A.25.25 0 0 0 4.75 8h-.5a.25.25 0 0 0-.25.25M6.25 8a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 7 8.75v-.5A.25.25 0 0 0 6.75 8zM8 8.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 9 8.75v-.5A.25.25 0 0 0 8.75 8h-.5a.25.25 0 0 0-.25.25M13.25 8a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zm0 2a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zm-3-2a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h1.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zm.75 2.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25M11.25 6a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zM9 6.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5A.25.25 0 0 0 9.75 6h-.5a.25.25 0 0 0-.25.25M7.25 6a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 8 6.75v-.5A.25.25 0 0 0 7.75 6zM5 6.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 6 6.75v-.5A.25.25 0 0 0 5.75 6h-.5a.25.25 0 0 0-.25.25M2.25 6a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h1.5A.25.25 0 0 0 4 6.75v-.5A.25.25 0 0 0 3.75 6zM2 10.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25M4.25 10a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h5.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25z"})));function O(){return(O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let R=e=>x.createElement("svg",O({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),l||(l=x.createElement("path",{fill:"currentColor",d:"M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5"})));var I=a(9115),D=a(7809),V=a(5526),W=a(8390),$=a(8298),F=a(4696),K=a.n(F),H=a(1644),U=a(1667),J=a(4735);let Z=(0,H.Mz)([U.X7],e=>e.length>0),Y=(0,H.Mz)([J.um],e=>e.some(e=>{let{count:t=0,usedCount:a}=e;return a>t})),Q=(0,x.memo)(e=>{let{onClear:t,onShowKeyMap:a,onShowMenu:n,onShowRemainingTiles:r,onShowSettings:l,onShowWords:s}=e,o=(0,D.W)(),i=(0,V.N)(W.zg),c=(0,V.N)(Z),u=(0,V.N)(Y);return(0,f.jsxs)("div",{className:K().navButtons,children:[(0,f.jsx)("div",{className:K().group,children:(0,f.jsx)($.K,{"aria-label":o("common.clear"),className:K().button,Icon:z,tooltip:o("common.clear"),onClick:t})}),(0,f.jsx)("div",{className:K().separator}),(0,f.jsxs)("div",{className:E()(K().group,K().fullNav),children:[i.supportsRemainingTiles&&(0,f.jsx)($.K,{"aria-label":o("remaining-tiles"),className:E()(K().button,{[K().error]:u}),Icon:I.A,tooltip:o("remaining-tiles"),onClick:r}),(0,f.jsx)($.K,{"aria-label":o("words"),className:E()(K().button,{[K().error]:c}),Icon:B.A,tooltip:o("words"),onClick:s})]}),(0,f.jsx)("div",{className:E()(K().separator,K().fullNav)}),(0,f.jsx)("div",{className:E()(K().group,K().fullNav),children:(0,f.jsx)($.K.Link,{"aria-label":o("github"),className:K().button,href:j.g,Icon:L.A,rel:"noopener noreferrer",target:"_blank",tooltip:o("github")})}),(0,f.jsx)("div",{className:E()(K().separator,K().fullNav)}),(0,f.jsxs)("div",{className:E()(K().group,K().fullNav),children:[(0,f.jsx)($.K,{"aria-label":o("keyMap"),className:E()(K().button,K().keyMapButton),Icon:T,tooltip:o("keyMap"),onClick:a}),(0,f.jsx)($.K,{"aria-label":o("settings"),className:K().button,"data-testid":"settings-button",Icon:A.A,tooltip:o("settings"),onClick:l})]}),(0,f.jsx)("div",{className:E()(K().group,K().shortNav),children:(0,f.jsx)($.K,{"aria-label":o("menu"),className:K().button,Icon:R,tooltip:o("menu"),onClick:n})})]})});var G=a(7445),X=a(7668),q=a(8744),ee=a(1730);let et=()=>(0,N.Pj)();var ea=a(3203),en=a(3876),er=a(6205);function el(){return(el=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}function es(){return(es=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}function eo(){return(eo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}var ei=a(1274),ec=a.n(ei);let eu={error:e=>x.createElement("svg",el({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),s||(s=x.createElement("path",{fill:"currentColor",d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293z"}))),info:e=>x.createElement("svg",eo({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),i||(i=x.createElement("path",{fill:"currentColor",d:"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2"}))),success:er.A,warning:e=>x.createElement("svg",es({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),o||(o=x.createElement("path",{fill:"currentColor",d:"M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5m.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2"})))},ed=e=>{let{children:t,className:a,variant:n,...r}=e,l=eu[n];return(0,f.jsxs)("div",{className:E()(ec().alert,a,{[ec().error]:"error"===n,[ec().info]:"info"===n,[ec().success]:"success"===n,[ec().warning]:"warning"===n}),...r,children:[(0,f.jsx)("div",{className:ec().iconContainer,children:(0,f.jsx)(l,{"aria-hidden":"true",className:ec().icon,role:"img"})}),(0,f.jsx)("div",{className:ec().content,children:t})]})};var eh=a(7226),ep=a(900),em=a(9484),eg=a(1734),ev=a(4264),ef=a(3644),e_=a(6303),eb=a(443),ew=a(1566),ex=a.n(ew);function eN(){return(eN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let ey=e=>x.createElement("svg",eN({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),c||(c=x.createElement("path",{fill:"currentColor",d:"M15 8a6.97 6.97 0 0 0-1.71-4.584l-9.874 9.875A7 7 0 0 0 15 8M2.71 12.584l9.874-9.875a7 7 0 0 0-9.874 9.874ZM16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0"})));function eC(){return(eC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let ej=e=>x.createElement("svg",eC({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),u||(u=x.createElement("path",{fill:"currentColor",d:"M14.778.085A.5.5 0 0 1 15 .5V8a.5.5 0 0 1-.314.464L14.5 8l.186.464-.003.001-.006.003-.023.009a12 12 0 0 1-.397.15c-.264.095-.631.223-1.047.35-.816.252-1.879.523-2.71.523-.847 0-1.548-.28-2.158-.525l-.028-.01C7.68 8.71 7.14 8.5 6.5 8.5c-.7 0-1.638.23-2.437.477A20 20 0 0 0 3 9.342V15.5a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 1 0v.282c.226-.079.496-.17.79-.26C4.606.272 5.67 0 6.5 0c.84 0 1.524.277 2.121.519l.043.018C9.286.788 9.828 1 10.5 1c.7 0 1.638-.23 2.437-.477a20 20 0 0 0 1.349-.476l.019-.007.004-.002h.001"})));var ek=a(3434),eM=a(5486),eE=a(542),eB=a.n(eE);let eA=(0,x.memo)(e=>{let{cell:t,cellBottom:a,cellLeft:n,cellRight:r,cellTop:l,className:s,config:o,highlighted:i,inputRef:c,isReachable:u=!0,locale:d,showCoordinates:h,translate:p,onChange:m,onFocus:g}=e,{tile:v,x:_,y:b}=t,w=et(),N=v.character===ep.EMPTY_CELL,y=o.getTilePoints(v),C=!t.hasTile()||o.tiles.some(e=>{let{character:t}=e;return t===v.character}),j=(0,x.useCallback)(e=>{"touchscreen"===(0,W.QN)(w.getState())&&(e.preventDefault(),e.target.blur()),g(_,b)},[w,g,_,b]),k=(0,x.useCallback)(e=>{"touchscreen"===(0,W.QN)(w.getState())&&e.preventDefault(),g(_,b)},[w,g,_,b]),M=(0,x.useCallback)(e=>{"touchscreen"===(0,W.QN)(w.getState())&&e.preventDefault(),g(_,b)},[w,g,_,b]);return(0,f.jsx)(eM.F,{"aria-label":p("cell.tile.location",{coordinates:"alternative"===h?`${(0,ek.H)(_,"number")}${(0,ek.H)(b,"letter")}`:`${(0,ek.H)(_,"letter")}${(0,ek.H)(b,"number")}`}),character:N?void 0:v.character,className:E()(eB().tile,s,{[eB().first3]:_<3,[eB().last3]:o.boardWidth-_-1<3,[eB().sharpTopLeft]:l?.hasTile()||n?.hasTile(),[eB().sharpTopRight]:l?.hasTile()||r?.hasTile(),[eB().sharpBottomLeft]:a?.hasTile()||n?.hasTile(),[eB().sharpBottomRight]:a?.hasTile()||r?.hasTile(),[eB().unreachable]:!u}),highlighted:i,inputRef:c,isBlank:v.isBlank,isValid:C,locale:d,points:y,raised:!N,tabIndex:0===t.x&&0===t.y?void 0:-1,onChange:m,onFocus:j,onMouseDown:k,onTouchStart:M})}),eS=(0,x.forwardRef)((e,t)=>{let{className:a,config:n,direction:r,cellFilters:l,hoveredCharacter:s,hoveredWordCells:o,inputRefs:i,locale:c,reachableCells:u,rows:d,showCoordinates:h,style:p,translate:m,onBlur:g,onChange:v,onFocus:_,onKeyDown:b,onPaste:w}=e;return(0,f.jsxs)("div",{className:E()(ex().board,a),"data-testid":"board",ref:t,style:p,onBlur:g,onKeyDown:b,onPaste:w,children:[(0,f.jsx)("div",{}),d[0].map((e,t)=>(0,f.jsx)("div",{className:ex().coordinate,children:(0,ek.H)(t,"original"===h?"letter":"number")},t)),l.map(e=>{let{x:t,y:a,type:n}=e;return(0,f.jsxs)("div",{className:ex().iconContainer,style:{height:"var(--cell-size)",width:"var(--cell-size)",left:"ltr"===r?eL(t):void 0,right:"rtl"===r?eL(t):void 0,top:eL(a)},children:[(0,f.jsx)("div",{className:ex().iconBackground}),(0,f.jsx)("exclude"===n?ey:ej,{"aria-hidden":"true",className:ex().icon,role:"img"})]},[t,a].join("-"))}),d.map((e,t)=>(0,f.jsxs)(x.Fragment,{children:[(0,f.jsx)("div",{className:ex().coordinate,children:(0,ek.H)(t,"original"===h?"number":"letter")}),e.map((e,a)=>{var r,l;let p=!!o&&o[t][a];return(0,f.jsx)(eA,{cell:e,cellBottom:t<d.length-1?d[t+1][a]:void 0,cellLeft:a>0?d[t][a-1]:void 0,cellRight:a<d[t].length-1?d[t][a+1]:void 0,cellTop:t>0?d[t-1][a]:void 0,config:n,highlighted:e.isCandidate()||(r=e,l=s,r.tile.character!==ep.EMPTY_CELL&&null!==l&&(l===ep.BLANK?r.tile.isBlank:!r.tile.isBlank&&r.tile.character===l))||p,inputRef:i[t][a],isReachable:!u||u[t][a],locale:c,showCoordinates:h,translate:m,onChange:v,onFocus:_},a)})]},t))]})}),ez=(0,x.memo)(eS);function eL(e){return`calc(var(--coordinate-size) + var(--border--width) + ${e} * (var(--cell-size) + var(--border--width)))`}function eP(){return(eP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let eT=e=>x.createElement("svg",eP({xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 16 16"},e),d||(d=x.createElement("path",{d:"M14 5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zM2 4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z"})),h||(h=x.createElement("path",{d:"M13 10.25a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm0-2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-5 0A.25.25 0 0 1 8.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 8 8.75zm2 0a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25zm1 2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-5-2A.25.25 0 0 1 6.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 6 8.75zm-2 0A.25.25 0 0 1 4.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 4 8.75zm-2 0A.25.25 0 0 1 2.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 2 8.75zm11-2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-2 0a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-2 0A.25.25 0 0 1 9.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 9 6.75zm-2 0A.25.25 0 0 1 7.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 7 6.75zm-2 0A.25.25 0 0 1 5.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 5 6.75zm-3 0A.25.25 0 0 1 2.25 6h1.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-1.5A.25.25 0 0 1 2 6.75zm0 4a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm2 0a.25.25 0 0 1 .25-.25h5.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-5.5a.25.25 0 0 1-.25-.25z"})));var eO=a(1076);function eR(){return(eR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let eI=e=>x.createElement("svg",eR({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),p||(p=x.createElement("path",{fill:"currentColor",d:"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2z"}))),eD=(e,t,a)=>e.find(e=>e.x===t&&e.y===a);var eV=a(1751),eW=a(3117),e$=a(8974),eF=a(4312),eK=a.n(eF);let eH=e=>{let{className:t,direction:a,...n}=e,r=(0,D.W)(),l=(0,G.J)();return(0,f.jsx)(eW.$,{"aria-label":r("cell.toggle-direction"),className:E()(eK().button,t),"data-direction":a,"data-testid":"toggle-direction-button",Icon:e$.A,iconClassName:E()(eK().icon,{[eK().right]:"horizontal"===a}),tooltip:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{children:r("cell.toggle-direction")}),!l&&(0,f.jsxs)("span",{children:[" (",r("common.arrows"),")"]})]}),...n})};var eU=a(1248),eJ=a.n(eU);let eZ=(0,x.forwardRef)((e,t)=>{let{cell:a,className:n,direction:r,onDirectionToggle:l,onEnterWord:s,onToggleBlank:o,onToggleFilterCell:i,...c}=e,u=(0,D.W)(),d=(0,G.J)(),h=(0,V.N)(W.QN),p=(0,V.N)(e=>(0,ev.f)(e,a)),m=(0,V.N)(ee.Sb),g=a.tile.isBlank,v=a.tile.character===ep.EMPTY_CELL||!!eD(m,a.x,a.y),{Icon:_,labelTranslationKey:b}=p?.type==="exclude"?{Icon:z,labelTranslationKey:"common.clear"}:p?.type==="include"?{Icon:ey,labelTranslationKey:"cell.filter-cell.exclude"}:{Icon:ej,labelTranslationKey:"cell.filter-cell.include"},w=e=>e.preventDefault();return(0,f.jsxs)("div",{className:E()(eJ().actions,n),ref:t,...c,children:["touchscreen"===h&&(0,f.jsx)(eW.$,{"aria-label":u("cell.enter-word"),className:eJ().action,Icon:eT,tooltip:u("cell.enter-word"),onClick:s,onMouseDown:w}),"keyboard"===h&&(0,f.jsx)(eH,{className:eJ().action,direction:r,onClick:l,onMouseDown:w}),v&&(0,f.jsx)(eW.$,{"aria-label":u(b),className:E()(eJ().action),Icon:_,tooltip:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{children:u(b)}),!d&&(0,f.jsxs)("span",{children:[" (",(0,eV.c)()?"⌘":"Ctrl"," + G)"]})]}),onClick:i,onMouseDown:w}),!v&&(0,f.jsx)(eW.$,{"aria-label":u(g?"cell.set-not-blank":"cell.set-blank"),className:eJ().action,Icon:g?eI:eO.A,tooltip:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{children:u(g?"cell.set-not-blank":"cell.set-blank")}),!d&&(0,f.jsxs)("span",{children:[" (",u("common.space"),")"]})]}),onClick:o,onMouseDown:w})]})});var eY=a(5812),eQ=a.n(eY);let eG=(0,x.forwardRef)((e,t)=>{let{className:a,direction:n,initialValue:r,onDirectionToggle:l,onSubmit:s,...o}=e,i=(0,D.W)(),[c,u]=(0,x.useState)(null),[d,h]=(0,x.useState)(r.trim()),p=e=>e.preventDefault();return(0,x.useEffect)(()=>{c&&(c.focus(),c.select(),c.scrollIntoView({block:"start",inline:"center"}))},[c]),(0,f.jsxs)("form",{className:E()(eQ().inputPrompt,a),ref:t,onSubmit:e=>{e.preventDefault(),e.stopPropagation(),s(d)},...o,children:[(0,f.jsx)(eH,{className:eQ().toggleDirection,direction:n,onClick:l,onMouseDown:p}),(0,f.jsx)("div",{children:(0,f.jsx)("input",{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",className:eQ().input,placeholder:i("rack.placeholder"),ref:u,spellCheck:!1,value:d,onChange:e=>h(e.target.value)})}),(0,f.jsx)(eW.$,{"aria-label":i("results.insert"),className:eQ().insert,Icon:er.A,iconClassName:eQ().insertIcon,tooltip:i("results.insert"),type:"submit",variant:"primary",onMouseDown:p})]})});var eX=a(9604),eq=a(9311),e0=a(1372);let e5=e=>{let{onArrowDown:t=e0.l,onArrowLeft:a=e0.l,onArrowRight:n=e0.l,onArrowUp:r=e0.l,onBackspace:l=e0.l,onDelete:s=e0.l,onEnter:o=e0.l,onKeyDown:i=e0.l,onSpace:c=e0.l}=e,u={ArrowUp:r,ArrowDown:t,ArrowLeft:a,ArrowRight:n,Backspace:l,Delete:s,Enter:o," ":c};return e=>{(u[e.key]||e0.l)(e),i(e)}},e1=/[̀-ͯ]/g,e2=/[.•‧∙⋅]/g,e8={Æ:"AE",Œ:"OE",æ:"ae",œ:"oe"},e7={[eX.Locale.CA_ES]:function(e){return e6(e.replace(e2,"\xb7").replaceAll("ŀ","l\xb7").replaceAll("Ŀ","L\xb7"),["\xe7","\xc7"])},[eX.Locale.DE_DE]:e=>e,[eX.Locale.EN_GB]:e=>e,[eX.Locale.EN_US]:e=>e,[eX.Locale.ES_ES]:e=>e6(e,["\xf1","\xd1"]),[eX.Locale.FA_IR]:e=>e,[eX.Locale.FR_FR]:e=>e6(e),[eX.Locale.PL_PL]:e=>e,[eX.Locale.RO_RO]:e=>e6(e),[eX.Locale.TR_TR]:e=>e};function e6(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Array.from(e).map(e=>t.includes(e)?e:e8[e]??e.normalize("NFD").replace(e1,"")).join("")}let e4=(e,t,a)=>{var n;let r=0,l=[],s=(n=e.locale,e7[n](t.normalize("NFC")));for(;r<s.length;){let t=function(e,t,a){return e.longestFirstDigraphs.find(n=>{let r=t.substring(0,n.length);return r.toLocaleLowerCase(e.locale)===n&&(!a?.upperCaseDigraphsOnly||e3(e.locale,r))})}(e,s.substring(r),a);if(t){l.push(t),r+=t.length;continue}let n=s[r].toLocaleLowerCase(e.locale),o=a?.keepDigraphParts&&e.isDigraphPart(n);(e.hasCharacter(n)||n===ep.BLANK||o)&&l.push(n),++r}return l},e3=(e,t)=>t===t.toLocaleUpperCase(e),e9=(e,t)=>{let a=e.value.toLocaleLowerCase(t);if(null===e.selectionStart||null===e.selectionEnd)return a;let n=Math.min(e.selectionStart,e.selectionEnd);return n>0?a.substring(n-1,n):a},te=(e,t,a)=>Array.from({length:t}).map((t,n)=>Array.from({length:e}).map((e,t)=>a(t,n)));function tt(e,t){return e.x===t.x&&e.y===t.y}function ta(e){return"vertical"===e?"horizontal":"vertical"}function tn(e){let{direction:t}=e;return function(e){let{board:t,character:a,config:n,direction:r,position:l}=e,s=ti(t,l);if(void 0===s)return;let o=td([s],a);if(n.digraphs.includes(o))return ts(e,r,{first:0,last:0},{tilesBefore:[s],value:o})}(e)??tr(e,t)??tl(e)??tr(e,ta(t))}function tr(e,t){let{character:a,config:n}=e,r=to(e,t,-1),l=to(e,t,1);for(let s=0;s<=l.length;++s)for(let o=0;o<=r.length;++o){let i=r.slice(0,o).reverse(),c=td(i,a,l.slice(0,s));if(o+s!==0&&n.digraphs.includes(c))return ts(e,t,{first:-o,last:s>0?s:-1},{tilesBefore:i,value:c})}}function tl(e){let{board:t,character:a,config:n,direction:r,position:l}=e,s=ti(t,l);if(!tc(e)||void 0===s)return;let o=[s,...to(e,r,-1)],i=o.map((e,t)=>{let n=o.slice(0,t+1).reverse();return{tilesBefore:n,value:td(n,a)}}),c=i.find(e=>{let{value:t}=e;return n.digraphs.includes(t)})??i.find(e=>{let{value:t}=e;return n.isDigraphPrefix(t)});if(void 0!==c)return ts(e,r,{first:1-c.tilesBefore.length,last:0},c)}function ts(e,t,a,n){let{tilesBefore:r,value:l}=n,{position:s}=e,o=Array.from({length:a.last-a.first},(e,t)=>a.first+1+t),i=tu(s,t,a.first);return{clearedCells:o.map(e=>tu(s,t,e)),isBlank:r.at(0)?.isBlank??!1,nextPosition:function(e,t,a){let{direction:n,position:r}=e;return t===n||tt(a,r)?tc({...e,position:a})?a:tu(a,n,1):r}(e,t,i),target:i,value:l}}function to(e,t,a){let{board:n,config:r,position:l}=e,s=[];for(;s.length+1<r.longestDigraphLength;){let e=ti(n,tu(l,t,a*(s.length+1)));if(void 0===e)break;s.push(e)}return s}function ti(e,t){let{x:a,y:n}=t,r=e.rows[n]?.[a];return r?.hasTile()?r.tile:void 0}function tc(e){let{board:t,direction:a,position:n}=e;return"horizontal"===a?n.x+1>=t.columnsCount:n.y+1>=t.rowsCount}function tu(e,t,a){let{x:n,y:r}=e;return"horizontal"===t?{x:n+a,y:r}:{x:n,y:r+a}}function td(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return[...e.map(e=>e.character),t,...a.map(e=>e.character)].join("")}let th=48*.6,tp=new WeakMap;function tm(e){return`<text dominant-baseline="central" fill="white" font-family="system-ui, sans-serif" font-size="${th}" font-weight="bold" text-anchor="middle" x="40" y="40">\xd7${e}</text>`}function tg(e,t){return`<line stroke="${j.m4}" stroke-width="1" vector-effect="non-scaling-stroke" x1="0" x2="${t}" y1="${e}" y2="${e}"/>`}function tv(e,t){return`<line stroke="${j.m4}" stroke-width="1" vector-effect="non-scaling-stroke" x1="${e}" x2="${e}" y1="0" y2="${t}"/>`}var tf=a(2309),t_=a(1775),tb=a(1855),tw=a(5044);let tx=(0,H.Mz)([tb.p,ee.Sb],(e,t)=>e.rows.map((e,a)=>e.map((e,n)=>eD(t,n,a)||e))),tN=(0,H.Mz)([tb.p,J.Ow],(e,t)=>t?((e,t)=>{let a=te(e.columnsCount,e.rowsCount,()=>!1),n="horizontal"===t.direction,{x:r,y:l}=t;for(;r<e.columnsCount&&l<e.rowsCount&&e.rows[l][r].hasTile();)a[l][r]=!0,n?r+=1:l+=1;return a})(e,t):null),ty=(0,H.Mz)([tb.p,tw.x,W.u_,J.x4],(e,t,a,n)=>{if(!a||0===t.length)return null;if(n){let t=te(e.columnsCount,e.rowsCount,(t,a)=>e.rows[a][t].hasTile());for(let e of n)for(let a of e.cells)t[a.y][a.x]=!0;return t}return((e,t)=>{let a=e.rowsCount,n=e.columnsCount,r=te(n,a,()=>!1);if(0===t)return r;let l=e.isEmpty(),s=e.center,o=(t,r,o)=>{if(l)return t===s.x&&r===s.y;if("horizontal"===o){let n=r>0&&!e.rows[r-1][t].isEmpty,l=r<a-1&&!e.rows[r+1][t].isEmpty;return n||l}let i=t>0&&!e.rows[r][t-1].isEmpty,c=t<n-1&&!e.rows[r][t+1].isEmpty;return i||c},i=(r,l,s)=>{let i="horizontal"===s,c=i?n:a,u=i?r:l,d=t=>i?e.rows[l][t]:e.rows[t][r];if(o(r,l,s))return!0;for(let e of[-1,1]){let a=1;for(let n=u+e;n>=0&&n<c;n+=e){let e=d(n);if(e.hasTile()){if(a<=t)return!0;break}if((a+=1)>t)break;if(o(e.x,e.y,s))return!0}}return!1};for(let t=0;t<a;++t)for(let a=0;a<n;++a){if(e.rows[t][a].hasTile()){r[t][a]=!0;continue}(i(a,t,"horizontal")||i(a,t,"vertical"))&&(r[t][a]=!0)}return r})(e,t.length)}),tC=e=>{let{className:t}=e,a=(0,N.wA)(),n=(0,D.W)(),r=(0,V.N)(W.JV),l=(0,V.N)(W.zg),s=(0,V.N)(tx),o=(0,V.N)(ty),i=(0,V.N)(tN),c=(0,V.N)(W.QN),u=(0,V.N)(ev.o),d=(0,V.N)(W.hN),h=(0,V.N)(ef.R),[{activeIndex:p,direction:m,inputRefs:g},{insertValue:v,onChange:_,onDirectionToggle:b,onFocus:w,onKeyDown:y,onPaste:C}]=(e=>{let t=e.length,a=e[0].length,n=(0,N.wA)(),r=(0,V.N)(W.zg),l=(0,V.N)(W.JV),s=(0,x.useMemo)(()=>te(a,t,()=>(0,x.createRef)()),[a,t]),[o,i]=(0,x.useState)({x:0,y:0}),[c,u]=(0,x.useState)("horizontal"),d=(0,eq.F)(c),h=(0,eq.F)(e),p=(0,x.useMemo)(()=>({x:Math.min(o.x,a-1),y:Math.min(o.y,t-1)}),[o,a,t]),m=(0,x.useCallback)((e,n)=>{let r=Math.min(Math.max(p.x+e,0),a-1),l=Math.min(Math.max(p.y+n,0),t-1);i({x:r,y:l}),s[l][r].current?.focus()},[p,t,s,a]),g=(0,x.useCallback)(e=>((e,t)=>{for(let a=0;a<e.length;++a)for(let n=0;n<e[0].length;++n)if(t(e[a][n]))return{x:n,y:a}})(s,t=>t.current===e),[s]),v=(0,x.useCallback)(e=>{"horizontal"===d.current?m(e,0):m(0,e)},[m,d]),f=(0,x.useCallback)((e,t)=>{let a=t?e4(r,t,{keepDigraphParts:!0}).filter(e=>e!==ep.BLANK):[ep.BLANK],l=[],s=new eX.Board({rows:h.current.map(e=>e.map(e=>e.clone()))}),{x:o,y:i}=e,c=!1;function u(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e_.h.actions.changeCellValue({...e,isBlank:a,value:t});s=e_.h.reducer(s,n),l.push(n)}function p(e,t){c=tt(e,t),{x:o,y:i}=t}a.forEach(e=>{let t={board:s,character:e,config:r,direction:d.current,position:{x:o,y:i}},a=c?tl(t):tn(t);if(a){u(a.target,a.value,a.isBlank),a.clearedCells.forEach(e=>u(e,ep.EMPTY_CELL)),p(a.target,a.nextPosition);return}!c&&(r.hasCharacter(e)||e===ep.BLANK||function(e){let{character:t,config:a,direction:n}=e,r=to(e,n,-1);return Array.from({length:r.length+1}).some((e,n)=>a.isDigraphPrefix(td(r.slice(0,n).reverse(),t)))}(t))&&(u({x:o,y:i},e),p({x:o,y:i},"horizontal"===d.current?{x:Math.min(o+1,r.boardWidth-1),y:i}:{x:o,y:Math.min(i+1,r.boardHeight-1)}))}),v(o-e.x+i-e.y),l.forEach(n)},[r,d,n,v,h]),_=(0,x.useCallback)(e=>{let t=g(e.target);if(!t)return;let a=e9(e.target,r.locale);if(!a){n(e_.h.actions.changeCellValue({...t,value:ep.EMPTY_CELL})),v(-1);return}if(a===ep.EMPTY_CELL){let{x:e,y:a}=t;if(h.current[a][e].hasTile())return void n(e_.h.actions.toggleCellIsBlank(t))}f(t,a)},[r.locale,n,f,v,h,g]),b=(0,x.useCallback)(()=>u(ta),[]),w=(0,x.useCallback)((e,t)=>{i({x:e,y:t})},[]),y=(0,x.useMemo)(()=>({onArrowDown:e=>{e.preventDefault(),"horizontal"===c?b():m(0,1)},onArrowLeft:e=>{e.preventDefault(),"vertical"===c?(b(),m("ltr"===eg.x[l].direction?-1:0,0)):m("ltr"===eg.x[l].direction?-1:1,0)},onArrowRight:e=>{e.preventDefault(),"vertical"===c?(b(),m("ltr"===eg.x[l].direction?0:-1,0)):m("ltr"===eg.x[l].direction?1:-1,0)},onArrowUp:e=>{e.preventDefault(),"horizontal"===c&&b(),m(0,-1)},onBackspace:e=>{let t=g(e.target);t&&(e.preventDefault(),n(e_.h.actions.changeCellValue({...t,value:ep.EMPTY_CELL})),v(-1))},onDelete:e=>{let t=g(e.target);t&&(e.preventDefault(),n(e_.h.actions.changeCellValue({...t,value:ep.EMPTY_CELL})),v(1))},onKeyDown:e=>{let t=g(e.target);if(!t)return;let{x:a,y:l}=t,s=e.key.toLocaleLowerCase(r.locale),o=r.getDigraphByShortcut(s);if((e.ctrlKey||e.metaKey)&&o){e.preventDefault(),n(e_.h.actions.changeCellValue({x:a,y:l,value:o})),v(1);return}let i=h.current[l][a];if((e.ctrlKey||e.metaKey)&&"g"===s){e.preventDefault(),i.hasTile()||n(eb.g.actions.toggle(t));return}if(!(e.ctrlKey||e.metaKey)&&r.isDigraphPart(s)&&tn({board:new eX.Board({rows:h.current}),character:s,config:r,direction:c,position:t})){e.preventDefault(),f(t,s);return}e.target instanceof HTMLInputElement&&e.target.value.toLocaleLowerCase(r.locale)===s&&(e.preventDefault(),v(1))},onSpace:e=>{let t=g(e.target);t&&(e.preventDefault(),n(e_.h.actions.toggleCellIsBlank(t)))}}),[m,r,c,n,g,f,l,v,b,h]),C=(0,x.useCallback)(e=>e5(y)(e),[y]),j=(0,x.useCallback)(e=>{if(!(e.target instanceof HTMLInputElement))return;let t=g(e.target);t&&(e.preventDefault(),f(t,e.clipboardData.getData("text/plain").toLocaleLowerCase(r.locale)))},[r.locale,g,f]);return[{activeIndex:p,direction:c,inputRefs:s},{insertValue:f,onChange:_,onDirectionToggle:b,onFocus:w,onKeyDown:C,onPaste:j}]})(s),k=(()=>{let e=(0,V.N)(W.zg),t=(0,V.N)(W.JV),{direction:a}=eg.x[t],n=function(e){let{config:t,direction:a}=e,n=tp.get(t)?.get(a);if(n)return n;let r=`data:image/svg+xml,${encodeURIComponent(function(e){var t,a;let n,{config:r,direction:l}=e,s=40+(80+j.gP)*r.boardWidth-j.gP,o=40+(80+j.gP)*r.boardHeight-j.gP,i=e=>40*("ltr"===l)+e.x*(80+j.gP),c=e=>40+e.y*(80+j.gP),u={x:Math.floor(r.boardWidth/2),y:Math.floor(r.boardHeight/2)},d={direction:l,height:o,width:s};return[`<svg height="${o}" viewBox="0 0 ${s} ${o}" width="${s}" xmlns="http://www.w3.org/2000/svg">`,(n='<rect height="64" rx="8" width="64" x="8" y="8"/>',`<defs><symbol id="b">${n}</symbol><symbol id="b2">${n}${tm(2)}</symbol><symbol id="b3">${n}${tm(3)}</symbol><symbol id="b4">${n}${tm(4)}</symbol></defs>`),function(e){let{direction:t,height:a,width:n}=e,r="ltr"===t?0:n-40+j.gP;return`<rect fill="${j.hO}" height="${a}" rx="8" width="${n}" x="0" y="0"/><rect fill="white" height="${a-40}" width="${n-40}" x="${40*("ltr"===t)}" y="40"/><rect fill="${j.hO}" height="40" rx="8" width="${n}" x="0" y="0"/><rect fill="${j.hO}" height="${a}" rx="8" width="40" x="${r}" y="0"/>`}(d),function(e,t){let{direction:a,height:n,width:r}=t,l=[];l.push(tg(40-j.gP/2,r)),l.push(tv("ltr"===a?40-j.gP/2:r-40+j.gP/2,n));for(let t=1;t<e.boardHeight;++t)l.push(tg(40+t*(80+j.gP)-j.gP/2,r));let s=40*("ltr"===a);for(let t=1;t<e.boardWidth;++t)l.push(tv(s+t*(80+j.gP)-j.gP/2,n));return l.join("")}(r,d),function(e){let{config:t,getX:a,getY:n}=e;return t.bonuses.map(e=>`<use fill="${e.type===ep.BONUS_WORD?j.Ln[e.multiplier]:e.score?j.Ip[e.score]:j.Gr[e.multiplier]}" href="#${function(e){if(e.type!==ep.BONUS_WORD)return"b";switch(e.multiplier){case 2:return"b2";case 3:return"b3";case 4:return"b4";default:return"b"}}(e)}" x="${a(e)}" y="${n(e)}"/>`).join("")}({config:r,getX:i,getY:c}),(t=i(u),a=c(u),`<rect fill="${j.Lo}" height="64" rx="8" width="64" x="${t+8}" y="${a+8}"/><svg height="32" viewBox="0 0 16 16" width="32" x="${t+24}" y="${a+24}"><path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z" fill="white"/></svg>`),"</svg>"].join("")}({config:t,direction:a}))}`,l=tp.get(t)??new Map;return l.set(a,r),tp.set(t,l),r}({config:e,direction:a});return(0,x.useMemo)(()=>({backgroundImage:`url(${n})`}),[n])})(),[M,B]=(0,x.useState)(!1),[A,S]=(0,x.useState)(!1),z=g[p.y][p.x],L=s[p.y][p.x],P=(0,eh.we)({middleware:[(0,tf.cY)(e=>{let{rects:t}=e;return{mainAxis:-j.CP,alignmentAxis:j.CP-t.floating.width}}),(0,tf.BN)()],placement:"top-end",whileElementsMounted:t_.ll}),T=(0,eh.we)({middleware:[(0,tf.cY)({mainAxis:-j.CP,alignmentAxis:j.CP}),(0,tf.BN)()],placement:"top",whileElementsMounted:t_.ll}),O=(0,eh.we)({placement:"top-start",whileElementsMounted:t_.ll}),R=(0,x.useCallback)(e=>{let t=P.refs.floating.current?.contains(e.relatedTarget),a=e.currentTarget.contains(e.relatedTarget),n=O.refs.floating.current?.contains(e.relatedTarget),r=T.refs.floating.current?.contains(e.relatedTarget);t||a||n||r||B(!1)},[P.refs.floating,O.refs.floating,T.refs.floating]),I=(0,x.useCallback)(e=>{P.refs.setReference(e),O.refs.setReference(e),T.refs.setReference(e)},[P.refs,O.refs,T.refs]),$=(0,x.useCallback)((e,t)=>{let a=g[t][e].current;I(a?.parentElement||null),w(e,t),B(!0),S(!1)},[g,w,I]),F=(0,x.useCallback)(()=>{S(!0)},[]),K=(0,x.useCallback)(e=>{0===e.trim().length?a(e_.h.actions.changeCellValue({...p,value:ep.EMPTY_CELL})):v(p,e.toLocaleLowerCase(r)),S(!1),a(en.A.actions.submit()),B(!1)},[p,a,v,r]),H=(0,x.useCallback)(()=>{"keyboard"===c&&z.current?.focus(),a(e_.h.actions.toggleCellIsBlank(L))},[L,a,c,z]),U=(0,x.useCallback)(()=>{"keyboard"===c&&z.current?.focus(),b()},[c,z,b]),J=(0,x.useCallback)(()=>{"keyboard"===c&&z.current?.focus(),a(eb.g.actions.toggle(L))},[L,a,c,z]),Z=(0,em.A)(()=>B(!1),{ignoreClass:[ex().floating]});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(ez,{cellFilters:u,className:t,config:l,direction:eg.x[r].direction,hoveredCharacter:h,hoveredWordCells:i,inputRefs:g,locale:r,reachableCells:o,ref:Z,rows:s,showCoordinates:d,style:k,translate:n,onBlur:R,onChange:_,onFocus:$,onKeyDown:y,onPaste:C}),(0,f.jsxs)(eh.XF,{children:[(0,f.jsx)("div",{className:E()(ex().floating,ex().focus,{[ex().hidden]:!M}),ref:O.refs.setFloating,style:{position:O.strategy,top:`calc(${O.y??0}px + var(--cell-size))`,left:O.x,display:O.isPositioned?"block":"none",opacity:+!!M,visibility:null===O.x||null===O.y?"hidden":"visible"},tabIndex:0}),M&&!A&&(0,f.jsx)(eZ,{cell:L,className:ex().floating,direction:m,ref:P.refs.setFloating,style:{position:P.strategy,top:P.y??0,left:P.x??0},onDirectionToggle:U,onEnterWord:F,onToggleBlank:H,onToggleFilterCell:J}),M&&A&&(0,f.jsx)(eG,{className:ex().floating,direction:m,initialValue:L.tile.character,ref:T.refs.setFloating,style:{position:T.strategy,top:T.y??0,left:T.x??0},onDirectionToggle:U,onSubmit:K})]})]})};var tj=a(4056),tk=a(6474),tM=a(2359),tE=a(973),tB=a(9095),tA=a.n(tB);let tS=Object.assign((0,x.forwardRef)((e,t)=>{let{className:a,style:n,value:r,onBlur:l,onChange:s,onSubmit:o,...i}=e,c=(0,N.wA)(),u=(0,D.W)(),d=(0,V.N)(W.zg),[h,p]=(0,x.useState)(null),m=(0,x.useCallback)(e=>{let t;e.preventDefault();let a=(t=e4(d,r,{upperCaseDigraphsOnly:!0}),Array.from({length:d.rackSize},(e,a)=>"string"==typeof t[a]?t[a]:null));c(tE.o.actions.changeCharacters({characters:a,index:0})),o(e)},[d,c,r,o]);return(0,x.useEffect)(()=>{h&&(h.focus(),h.select(),h.scrollIntoView({block:"end",inline:"center"}))},[h]),(0,f.jsx)("form",{className:E()(tA().form,a),ref:t,style:n,onSubmit:m,...i,children:(0,f.jsx)("input",{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",className:tA().input,placeholder:u("rack.touchscreen.placeholder"),ref:p,spellCheck:!1,value:r,onBlur:l,onChange:s})})}),{styles:tA()});var tz=a(8075),tL=a.n(tz);let tP=e=>{let{activeIndexRef:t,character:a,className:n,index:r,inputRef:l,tile:s,onChange:o,onKeyDown:i,onFocus:c}=e,u=(0,N.wA)(),d=(0,D.W)(),h=(0,V.N)(W.JV),p=(0,V.N)(W.zg),m=(0,V.N)(W.QN),g=(0,V.N)(e=>(0,W.fy)(e,a)),v=(0,V.N)(e=>(0,W.sE)(e,a)),_=(0,V.N)(ef.R),b=null!==a&&null!==_&&_===a,w=(0,x.useCallback)(e=>{"touchscreen"===m&&(e.preventDefault(),e.target.blur(),c()),t.current=r},[t,r,m,c]),y=(0,x.useCallback)(e=>{e.preventDefault(),e.stopPropagation();let t=e9(e.target,p.locale),a=t?e4(p,t):[null];u(tE.o.actions.changeCharacters({characters:a,index:r})),o(e)},[p,u,r,o]),C=(0,x.useMemo)(()=>e5({onBackspace:e=>{e.preventDefault(),u(tE.o.actions.changeCharacter({character:null,index:r}))},onKeyDown:e=>{let t=e.ctrlKey||e.metaKey?p.getDigraphByShortcut(e.key):void 0;t&&(e.preventDefault(),e.stopPropagation(),u(tE.o.actions.changeCharacter({character:t,index:r}))),i(e)}}),[p,u,r,i]),j=(0,x.useCallback)(e=>{"touchscreen"===m&&e.preventDefault(),c()},[m,c]),k=(0,x.useCallback)(e=>{"touchscreen"===m&&e.preventDefault(),c()},[m,c]);return(0,f.jsx)(eM.F,{"aria-label":d("rack.tile.location",{index:(r+1).toLocaleString(h)}),autoFocus:"keyboard"===m&&0===r,character:null===a?void 0:a,className:E()(tL().rackTile,n),highlighted:null!==s||b,inputRef:l,isBlank:a===ep.BLANK,isValid:v,locale:h,placeholder:d("rack.placeholder")[r],points:g,raised:!0,tabIndex:0===r?void 0:-1,onChange:y,onFocus:w,onKeyDown:C,onMouseDown:j,onTouchStart:k},r)};var tT=a(1090),tO=a.n(tT),tR=a(8085);let tI=(0,H.Mz)([tw.i,ee.i1],tR._),tD=e=>{let{className:t}=e,a=(0,N.wA)(),n=(0,V.N)(W.zg),r=(0,V.N)(W.JV),l=(0,V.N)(tw.i),s=(0,V.N)(W.QN),o=(0,V.N)(tM.M),i=(0,V.N)(tI),c=i.length,u=(0,x.useMemo)(()=>Array.from({length:c}).map(()=>(0,x.createRef)()),[c]),d=(0,x.useRef)(void 0),[h,p]=(0,x.useState)(!1),[m,g]=(0,x.useState)(""),{direction:v}=eg.x[r],_="touchscreen"===s&&h,b=(0,x.useRef)(null),w=(0,eh.we)({placement:"bottom-start",whileElementsMounted:t_.ll});(0,em.A)(()=>p(!1),{ignoreClass:[tS.styles.form,tS.styles.input],refs:[b]});let y=(0,x.useCallback)(e=>{let t=Math.min(Math.max((d.current||0)+e,0),c-1),a=u[t].current;a&&a.focus(),d.current=t},[d,c,u]);(0,x.useEffect)(()=>{o&&"touchscreen"===s&&u[0].current?.blur()},[s,o,u]);let C=(0,x.useCallback)(e=>{let t=e9(e.target,n.locale),a=t?e4(n,t):[];y(t?a.length:-1)},[y,n]),j=(0,x.useCallback)(e=>{let t=d.current;if(void 0===t)return;e.preventDefault();let r=e.clipboardData.getData("text/plain").toLocaleLowerCase(n.locale),l=r?e4(n,r):[];y(r?l.length:-1),a(tE.o.actions.changeCharacters({characters:l,index:t}))},[y,n,a]),k=(0,x.useCallback)(()=>{p(!0),w.refs.setPositionReference(b.current),g(l.filter(e=>null!==e).map(e=>e.length>1?e.toLocaleUpperCase(r):e).join(""))},[w.refs,r,l,b]),M=(0,x.useMemo)(()=>({onArrowLeft:e=>{e.preventDefault(),y("ltr"===v?-1:1)},onArrowRight:e=>{e.preventDefault(),y("ltr"===v?1:-1)},onBackspace:e=>{e.preventDefault(),y(-1)},onDelete:e=>{let t=d.current;void 0!==t&&(e.preventDefault(),a(tE.o.actions.changeCharacters({characters:[null],index:t})),y(1))},onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&n.isDigraphShortcut(e.key)?y(1):e.currentTarget.value.toLocaleLowerCase(n.locale)===e.key.toLocaleLowerCase(n.locale)&&(e.preventDefault(),e.stopPropagation(),y(1))}}),[y,n,v,a]),B=(0,x.useCallback)(e=>e5(M)(e),[M]);return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:E()(tO().rack,t,{[tO().hidden]:_}),"data-testid":"rack",ref:b,onPaste:j,children:i.map((e,t)=>{let{character:a,tile:n}=e;return(0,f.jsx)(tP,{activeIndexRef:d,character:a,className:E()(tO().tile,{[tO().sharpLeft]:0!==t,[tO().sharpRight]:t!==i.length-1}),index:t,inputRef:u[t],tile:n,onChange:C,onFocus:k,onKeyDown:B},t)})}),_&&(0,f.jsx)(eh.XF,{children:(0,f.jsx)(tS,{ref:w.refs.setFloating,style:{position:w.strategy,top:w.y?`calc(${w.y}px - var(--rack-tile-size))`:0,left:w.x??0},value:m,onBlur:()=>p(!1),onChange:e=>g(e.target.value),onSubmit:()=>p(!1)})})]})};var tV=a(7624),tW=a(2626);function t$(){return(t$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let tF=e=>x.createElement("svg",t$({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),m||(m=x.createElement("path",{fill:"currentColor",d:"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708"})));function tK(){return(tK=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let tH=e=>x.createElement("svg",tK({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),g||(g=x.createElement("path",{fill:"currentColor",d:"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0"})));function tU(){return(tU=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let tJ=e=>x.createElement("svg",tU({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),v||(v=x.createElement("path",{fill:"currentColor",d:"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"})));var tZ=a(7722),tY=a.n(tZ);let tQ=e=>{let{className:t}=e,a=(0,D.W)()("common.loading");return(0,f.jsx)("div",{"aria-label":a,className:E()(tY().spinner,t),role:"status"})};var tG=a(5903),tX=a.n(tG);let tq=e=>{let{className:t}=e,a=(0,N.wA)(),n=(0,D.W)(),r=(0,V.N)(ee.jt),l=(0,V.N)(J.J_);return(0,f.jsx)(eW.$,{"aria-label":n("results.insert"),className:E()(tX().insertButton,t),disabled:l||!r,Icon:er.A,iconClassName:tX().icon,type:"submit",variant:"primary",onClick:()=>{r&&a(ea.N.actions.applyResult(r))}})};var t0=a(95),t5=a.n(t0);let t1=e=>{let{className:t,onResultClick:a,...n}=e,r=(0,N.wA)(),l=(0,D.W)(),s=(0,V.N)(W.JV),o=(0,V.N)(q.M9),[i]=(0,tW.d7)(o,j.fG),c=(0,V.N)(J.J_),u=(0,V.N)(ee.To),d=(0,V.N)(ee.jt),h=d&&u?u.findIndex(e=>e.id===d.id):-1,p=c||!u||0===u.length,m=!u||h<=0||p,g=!u||h>=u.length-1||p;return(0,f.jsxs)("div",{className:E()(t5().resultCandidatePicker,t),...n,children:[(0,f.jsxs)("div",{className:E()(t5().buttons,{[t5().bothEnabled]:!m&&!g}),children:[(0,f.jsx)(eW.$,{"aria-label":l("common.previous"),className:t5().button,disabled:m,Icon:tH,onClick:()=>{if(!m){let e=u[h-1];r(ea.N.actions.changeResultCandidate(e))}}}),(0,f.jsx)(eW.$,{"aria-label":l("common.next"),className:t5().button,disabled:g,Icon:tJ,onClick:()=>{if(!g){let e=u[h+1];r(ea.N.actions.changeResultCandidate(e))}}})]}),(0,f.jsxs)("button",{"aria-label":l("results"),className:t5().resultCandidate,"data-testid":"result-candidate-picker",disabled:p,type:"button",onClick:a,children:[d&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:t5().points,children:d.points.toLocaleString(s)}),(0,f.jsx)("div",{className:t5().word,children:d.word})]}),!d&&(0,f.jsx)("div",{className:E()(t5().word,t5().placeholder),children:l("results.select")}),(0,f.jsxs)("div",{className:t5().iconContainer,children:[i&&(0,f.jsx)(tQ,{className:t5().loading}),!i&&(0,f.jsx)(tF,{"aria-hidden":"true",className:t5().icon,role:"img"})]})]}),(0,f.jsx)(tq,{className:t5().insert})]})};var t2=a(5674),t8=a.n(t2);let t7=(0,x.memo)(e=>{let{className:t,onShowResults:a}=e,n=(0,N.wA)(),r=(0,D.W)(),l=(0,G.J)(),s=(0,X.U)("<l"),o=(0,V.N)(q.ax),i=(0,V.N)(J.J_),c=(0,V.N)(ee.To),u=(0,V.N)(ee.th),d=et(),[h]=c||[],p=(0,x.useMemo)(()=>({onClick:e=>{e===(0,ee.jt)(d.getState())?n(ea.N.actions.applyResult(e)):n(ea.N.actions.changeResultCandidate(e))}}),[n,d]),m=(0,x.useMemo)(()=>({onBlur:()=>{n(ea.N.actions.changeResultCandidate(null))},onClick:e=>{n(ea.N.actions.applyResult(e))},onFocus:e=>{n(ea.N.actions.changeResultCandidate(e))},onMouseEnter:e=>{n(ea.N.actions.changeResultCandidate(e))},onMouseLeave:()=>{n(ea.N.actions.changeResultCandidate(null))}}),[n]),g=e=>{e.preventDefault(),n(en.A.actions.submit())};return(0,x.useEffect)(()=>{s&&h&&!i&&n(ea.N.actions.changeResultCandidate(h))},[h,n,s,i]),(0,f.jsxs)("div",{className:E()(t8().solver,t),children:[(0,f.jsx)("div",{className:t8().container,children:(0,f.jsxs)("div",{className:t8().content,children:[(0,f.jsxs)("form",{className:t8().boardContainer,onSubmit:g,children:[(0,f.jsx)(tC,{className:t8().board}),(0,f.jsx)("input",{className:t8().submitInput,tabIndex:-1,type:"submit"})]}),(0,f.jsxs)("div",{className:t8().column,children:[(0,f.jsx)(tV.n,{callbacks:l?p:m,className:t8().results,highlightedIndex:u}),(0,f.jsxs)("div",{className:t8().dictionaryContainer,"data-testid":"dictionary",children:[(0,f.jsx)(tj.b,{className:t8().dictionary}),(0,f.jsx)(tk.$,{className:t8().dictionaryInput})]})]})]})}),(0,f.jsx)("div",{className:t8().bottomContainer,children:(0,f.jsxs)("div",{className:t8().bottomContent,children:[(0,f.jsxs)("form",{onSubmit:g,children:[(0,f.jsx)(tD,{}),(0,f.jsx)("input",{className:t8().submitInput,tabIndex:-1,type:"submit"})]}),(0,f.jsxs)("div",{className:t8().controls,children:[(0,f.jsx)(t1,{onResultClick:a}),o&&(0,f.jsx)(ed,{className:t8().emptyState,variant:"error",children:o.message}),c&&0===c.length&&!i&&(0,f.jsx)(ed,{className:t8().emptyState,variant:"warning",children:r("results.empty-state.no-results")})]})]})})]})});var t6=a(7137);function t4(e,t){return!e[t]&&(e[t]=!0,!0)}var t3=a(7133);let t9=!1,ae=async()=>{if(!globalThis.navigator||!("serviceWorker"in globalThis.navigator))return;await (0,t3.$J)();let{Workbox:e}=await a.e(990).then(a.bind(a,8990));await new e("/service-worker.js").register()};var at=a(6413),aa=a(164),an=a(2237),ar=a.n(an);let al=w()(()=>Promise.all([a.e(438),a.e(341),a.e(277)]).then(a.bind(a,8277)).then(e=>e.DictionaryModal),{loadableGenerated:{webpack:()=>[8277]},ssr:!1}),as=w()(()=>Promise.all([a.e(802),a.e(438),a.e(341),a.e(912)]).then(a.bind(a,6912)).then(e=>e.KeyMapModal),{loadableGenerated:{webpack:()=>[6912]},ssr:!1}),ao=w()(()=>Promise.all([a.e(224),a.e(438),a.e(341),a.e(519),a.e(541)]).then(a.bind(a,6541)).then(e=>e.MenuModal),{loadableGenerated:{webpack:()=>[6541]},ssr:!1}),ai=w()(()=>Promise.all([a.e(432),a.e(438),a.e(341),a.e(100)]).then(a.bind(a,8100)).then(e=>e.RemainingTilesModal),{loadableGenerated:{webpack:()=>[8100]},ssr:!1}),ac=w()(()=>Promise.all([a.e(368),a.e(438),a.e(341),a.e(980)]).then(a.bind(a,980)).then(e=>e.ResultsModal),{loadableGenerated:{webpack:()=>[980]},ssr:!1}),au=w()(()=>Promise.all([a.e(438),a.e(341),a.e(519),a.e(631)]).then(a.bind(a,8631)).then(e=>e.SettingsModal),{loadableGenerated:{webpack:()=>[8631]},ssr:!1}),ad=w()(()=>Promise.all([a.e(618),a.e(438),a.e(341),a.e(693)]).then(a.bind(a,5693)).then(e=>e.WordsModal),{loadableGenerated:{webpack:()=>[5693]},ssr:!1}),ah=JSON.stringify({"@context":"https://schema.org","@type":"WebApplication",name:"Scrabble Solver",alternateName:"Scrabble Solver 2",url:`${j.W6}/`,description:j.b2,applicationCategory:"GameApplication",operatingSystem:"Any",browserRequirements:"Requires JavaScript",image:`${j.W6}/og.png`,offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},inLanguage:["en-US","en-GB","ca-ES","de-DE","es-ES","fa-IR","fr-FR","pl-PL","ro-RO","tr-TR"],featureList:["Finds the highest-scoring words for a given board and rack","Supports Scrabble, Super Scrabble, Scrabble Duel, Letter League, Crossplay, Literaki, Kelimelik, Wyrazy, and Wordfeud","Dictionaries and word definitions in 9 languages","Works offline once a dictionary is cached","Free, open source, no ads, no sign-up"],sameAs:[j.g,j.v0],author:{"@type":"Person",name:"Kamil Mielnik",url:"https://kamilmielnik.com"}});var ap=!0;let am=e=>{var t,n;let r,l,s,o,i,c,{version:u}=e,d=(0,N.wA)(),h=(0,V.N)(W.zg),p=(0,V.N)(W.JV),m=(0,V.N)(tM.M),g=(0,X.U)("<l"),v=(0,x.useRef)(g),[b,w]=(0,x.useState)({dictionary:!1,keyMap:!1,menu:!1,remainingTiles:!1,results:!1,settings:!1,words:!1}),[y,C]=(0,x.useState)({}),M=(0,x.useCallback)(e=>{w(t=>({...t,...e})),C(t=>{let a=Object.keys(e).filter(a=>e[a]&&!t[a]);if(0===a.length)return t;let n={...t};for(let e of a)n[e]=!0;return n})},[]),E=(0,x.useCallback)(()=>d((0,at.c)()),[d]),B=(0,x.useCallback)(()=>M({dictionary:!0}),[M]),A=(0,x.useCallback)(()=>M({keyMap:!0}),[M]),S=(0,x.useCallback)(()=>M({menu:!0}),[M]),z=(0,x.useCallback)(()=>M({remainingTiles:!0}),[M]),L=(0,x.useCallback)(()=>M({results:!0}),[M]),P=(0,x.useCallback)(()=>M({settings:!0}),[M]),T=(0,x.useCallback)(()=>M({words:!0}),[M]),O=(0,x.useCallback)(()=>M({dictionary:!1}),[M]),R=(0,x.useCallback)(()=>M({keyMap:!1}),[M]),I=(0,x.useCallback)(()=>M({menu:!1}),[M]),D=(0,x.useCallback)(()=>M({remainingTiles:!1}),[M]),$=(0,x.useCallback)(()=>M({results:!1}),[M]),F=(0,x.useCallback)(()=>M({settings:!1}),[M]),K=(0,x.useCallback)(()=>M({words:!1}),[M]),H=(0,x.useCallback)(()=>M({menu:!1,words:!1}),[M]);return t=eg.x[p].direction,(0,x.useEffect)(()=>{let e=document.body.parentElement;if(!e||e.dir===t)return e0.l;let a=e.dir;return e.dir=t,()=>{e.dir=a}},[t]),(0,x.useEffect)(()=>{let e=document.body.parentElement;if(!e||e.lang===p)return e0.l;let t=e.lang;return e.lang=p,()=>{e.lang=t}},[p]),r=(0,V.N)(tM.M),l=(0,V.N)(tb.p),s=(0,V.N)(tw.i),o=(0,V.N)(W.i0),i=(0,x.useRef)({board:!1,rack:!1,settings:!1}),(0,x.useEffect)(()=>{r&&l&&!t4(i.current,"board")&&t6.L.setBoard(l)},[r,l]),(0,x.useEffect)(()=>{r&&s&&!t4(i.current,"rack")&&t6.L.setRack(s)},[r,s]),(0,x.useEffect)(()=>{r&&!t4(i.current,"settings")&&t6.L.setSettings(o)},[r,o]),(0,x.useEffect)(()=>{let e=document.documentElement;for(let{name:t,value:a,defaultValue:n}of[{name:"--board-cols",value:h.boardWidth,defaultValue:_.games.scrabble.boardWidth},{name:"--board-rows",value:h.boardHeight,defaultValue:_.games.scrabble.boardHeight},{name:"--rack-size",value:h.rackSize,defaultValue:_.games.scrabble.rackSize}])(e.style.getPropertyValue(t)||String(n))!==String(a)&&e.style.setProperty(t,String(a))},[h.boardHeight,h.boardWidth,h.rackSize]),(0,x.useEffect)(()=>{m&&document.documentElement.classList.remove(j.Ce)},[m]),(0,x.useEffect)(()=>{v.current!==g&&(v.current=g,d(ea.N.actions.changeResultCandidate(null)),d(aa.Y.actions.clear()))},[d,g]),n=()=>{ae(),d((0,at.n)({version:u})),t9||(t9=!0,(0,t3.cH)().then(()=>Promise.all([Promise.all([a.e(438),a.e(341),a.e(277)]).then(a.bind(a,8277)),Promise.all([a.e(802),a.e(438),a.e(341),a.e(912)]).then(a.bind(a,6912)),Promise.all([a.e(224),a.e(438),a.e(341),a.e(519),a.e(541)]).then(a.bind(a,6541)),Promise.all([a.e(432),a.e(438),a.e(341),a.e(100)]).then(a.bind(a,8100)),Promise.all([a.e(368),a.e(438),a.e(341),a.e(980)]).then(a.bind(a,980)),Promise.all([a.e(438),a.e(341),a.e(519),a.e(631)]).then(a.bind(a,8631)),Promise.all([a.e(618),a.e(438),a.e(341),a.e(693)]).then(a.bind(a,5693))])))},c=(0,eq.F)(n),(0,x.useEffect)(()=>{c.current()},[c]),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("nav",{className:ar().nav,children:(0,f.jsxs)("div",{className:ar().navContent,children:[(0,f.jsx)("h1",{className:ar().navLogo,children:(0,f.jsx)("a",{className:ar().logoContainer,href:"/",title:u,children:(0,f.jsx)(k,{className:ar().logo})})}),(0,f.jsx)(Q,{onClear:E,onShowKeyMap:A,onShowMenu:S,onShowRemainingTiles:z,onShowSettings:P,onShowWords:T})]})}),(0,f.jsx)("main",{children:(0,f.jsx)(t7,{className:ar().solver,onShowResults:L})}),(0,f.jsx)("script",{dangerouslySetInnerHTML:{__html:ah},type:"application/ld+json"}),y.menu&&(0,f.jsx)(ao,{isOpen:b.menu,onClose:I,onShowDictionary:B,onShowRemainingTiles:z,onShowSettings:P,onShowWords:T}),y.settings&&(0,f.jsx)(au,{isOpen:b.settings,onClose:F}),y.keyMap&&(0,f.jsx)(as,{isOpen:b.keyMap,onClose:R}),y.words&&(0,f.jsx)(ad,{isOpen:b.words,onClose:K,onPreview:H}),h.supportsRemainingTiles&&y.remainingTiles&&(0,f.jsx)(ai,{isOpen:b.remainingTiles,onClose:D}),y.results&&(0,f.jsx)(ac,{isOpen:b.results,onClose:$}),y.dictionary&&(0,f.jsx)(al,{isOpen:b.dictionary,onClose:O})]})}},8202:(e,t,a)=>{"use strict";a.d(t,{f:()=>i});var n=a(6029),r=a(2988),l=a.n(r),s=a(5462),o=a.n(s);let i=e=>{let{"aria-label":t,children:a,className:r,"data-testid":s,highlighted:i,inactive:c,style:u,onBlur:d,onClick:h,onFocus:p,onMouseEnter:m}=e;return(0,n.jsx)("button",{"aria-current":i?"true":void 0,"aria-hidden":c?"true":void 0,"aria-label":t,className:l()(o().row,r,{[o().clickable]:!!h,[o().highlighted]:i}),"data-testid":s,style:u,type:"button",onBlur:d,onClick:h,onFocus:p,onMouseEnter:m,children:(0,n.jsx)("span",{className:o().rowContent,children:a})})}},8221:(e,t,a)=>{"use strict";a.d(t,{I:()=>_});var n,r,l=a(6029),s=a(2988),o=a.n(s),i=a(5729);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let u=e=>i.createElement("svg",c({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=i.createElement("path",{fill:"currentColor",d:"M3.5 2.5a.5.5 0 0 0-1 0v8.793l-1.146-1.147a.5.5 0 0 0-.708.708l2 1.999.007.007a.497.497 0 0 0 .7-.006l2-2a.5.5 0 0 0-.707-.708L3.5 11.293zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5M7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1z"})));function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let h=e=>i.createElement("svg",d({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),r||(r=i.createElement("path",{fill:"currentColor",d:"M3.5 12.5a.5.5 0 0 1-1 0V3.707L1.354 4.854a.5.5 0 1 1-.708-.708l2-1.999.007-.007a.5.5 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 3.707zm3.5-9a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5M7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1z"})));var p=a(7809),m=a(8502),g=a(1088),v=a(5462),f=a.n(v);let _=e=>{let{className:t,Icon:a,id:n,primary:r,sort:s,translationKey:c,onSort:d}=e,v=(0,p.W)(),_=(0,i.useCallback)(()=>{d(n)},[n,d]);return(0,l.jsx)(g.m,{tooltip:v(c),children:(0,l.jsx)("button",{"aria-label":v(c),className:o()(f().headerButton,t,{[f().primary]:r}),type:"button",onClick:_,children:(0,l.jsxs)("span",{className:o()(f().cell,{[f().primary]:r}),children:[a&&(0,l.jsx)(a,{"aria-hidden":"true",className:f().headerButtonIcon,role:"img"}),!a&&(0,l.jsx)("span",{className:f().headerButtonLabel,children:v(c)}),s.column===n&&(0,l.jsxs)(l.Fragment,{children:[s.direction===m.UE.Ascending&&(0,l.jsx)(h,{className:f().sortIcon}),s.direction===m.UE.Descending&&(0,l.jsx)(u,{className:f().sortIcon})]})]})})})}},8298:(e,t,a)=>{"use strict";a.d(t,{K:()=>c});var n=a(6029),r=a(2988),l=a.n(r),s=a(1088),o=a(1758),i=a.n(o);let c=Object.assign(e=>{let{className:t,Icon:a,tooltip:r,...o}=e;return(0,n.jsx)(s.m,{tooltip:r,children:(0,n.jsx)("button",{className:l()(i().iconButton,t),type:"button",...o,children:(0,n.jsx)("span",{className:i().content,children:(0,n.jsx)(a,{"aria-hidden":"true",className:i().icon,role:"img"})})})})},{Link:e=>{let{className:t,Icon:a,tooltip:r,...o}=e;return(0,n.jsx)(s.m,{tooltip:r,children:(0,n.jsx)("a",{className:l()(i().iconButton,t),...o,children:(0,n.jsx)("span",{className:i().content,children:(0,n.jsx)(a,{"aria-hidden":"true",className:i().icon,role:"img"})})})})}})},8334:(e,t,a)=>{"use strict";a.d(t,{v:()=>c});var n=a(6029),r=a(2988),l=a.n(r),s=a(5729),o=a(5462),i=a.n(o);let c=e=>{let{className:t,placeholder:a,resetKey:r,value:o,onChange:c}=e,[u,d]=(0,s.useState)(o),[h,p]=(0,s.useState)({resetKey:r,value:o});return(o!==h.value||r!==h.resetKey)&&(p({resetKey:r,value:o}),d(o)),(0,n.jsx)("form",{className:l()(i().search,t),onSubmit:e=>{e.preventDefault()},children:(0,n.jsx)("input",{className:i().searchField,placeholder:a,type:"text",value:u,onChange:e=>{let t=e.target.value;d(t),(e=>{try{return new RegExp(e),!0}catch{return!1}})(t)&&c(t)}})})}},8504:e=>{e.exports={dictionary:"Dictionary_dictionary__FfG3h",content:"Dictionary_content___ZOAM",result:"Dictionary_result__kS3fd",isAllowed:"Dictionary_isAllowed__Jw9sB",isNotAllowed:"Dictionary_isNotAllowed__Y5tLd",resultContent:"Dictionary_resultContent__GBlvP",word:"Dictionary_word__faOui",definitions:"Dictionary_definitions__uU_Zv",definition:"Dictionary_definition__BJGy7"}},8655:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n,r,l=a(5729);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let o=e=>l.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=l.createElement("path",{fill:"currentColor",d:"M14.5 3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5zm-13-1A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2z"})),r||(r=l.createElement("path",{fill:"currentColor",d:"M7 5.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m-1.496-.854a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0l-.5-.5a.5.5 0 1 1 .708-.708l.146.147 1.146-1.147a.5.5 0 0 1 .708 0M7 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m-1.496-.854a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0l-.5-.5a.5.5 0 0 1 .708-.708l.146.147 1.146-1.147a.5.5 0 0 1 .708 0"})))},8687:(e,t,a)=>{"use strict";a.d(t,{_:()=>r});var n=a(5481);function r(e){let{getItemCoordinates:t,locale:a,showCoordinates:r}=e,l=(0,n.U)(a);return(e,a)=>l(t(e,r),t(a,r))}},8744:(e,t,a)=>{"use strict";a.d(t,{M9:()=>o,ax:()=>s,eC:()=>i});var n=a(1644),r=a(9604);let l=e=>e.solve,s=(0,n.Mz)([l],e=>(0,r.isError)(e.error)?e.error:void 0),o=(0,n.Mz)([l],e=>e.isLoading),i=(0,n.Mz)([l],e=>e.lastSolvedParameters)},8974:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n,r=a(5729);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let s=e=>r.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),n||(n=r.createElement("path",{fill:"currentColor",d:"M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1"})))},9095:e=>{e.exports={form:"InputPrompt_form__vuJMa",input:"InputPrompt_input__9jIi3"}},9115:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n,r=a(5729);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(null,arguments)}let s=e=>r.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},e),n||(n=r.createElement("path",{fill:"currentColor",d:"M16 9c4 2 5 9 5 9s1 4-5 4H8c-6 0-5-4-5-4s1-7 5-9m6-5-2-2-2 2-4-2 2 5h8l2-5z"})))},9311:(e,t,a)=>{"use strict";a.d(t,{F:()=>r});var n=a(5729);let r=e=>{let t=(0,n.useRef)(e);return t.current=e,t}},9353:(e,t,a)=>{"use strict";a.d(t,{D:()=>r});var n=a(8502);function r(e){let{comparators:t,locale:a,showCoordinates:r,sort:l}=e,s=t[l.column](a,r);return l.direction===n.UE.Descending?(e,t)=>-s(e,t):s}}},e=>{e.O(0,[744,636,593,792],()=>e(e.s=7703)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";var e,t,r,o,n,a,i,f,l,c={},d={};function u(e){var t=d[e];if(void 0!==t)return t.exports;var r=d[e]={exports:{}},o=!0;try{c[e].call(r.exports,r,r.exports,u),o=!1}finally{o&&delete d[e]}return r.exports}u.m=c,e=[],u.O=(t,r,o,n)=>{if(r){n=n||0;for(var a=e.length;a>0&&e[a-1][2]>n;a--)e[a]=e[a-1];e[a]=[r,o,n];return}for(var i=1/0,a=0;a<e.length;a++){for(var[r,o,n]=e[a],f=!0,l=0;l<r.length;l++)(!1&n||i>=n)&&Object.keys(u.O).every(e=>u.O[e](r[l]))?r.splice(l--,1):(f=!1,n<i&&(i=n));if(f){e.splice(a--,1);var c=o();void 0!==c&&(t=c)}}return t},u.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return u.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,u.t=function(e,o){if(1&o&&(e=this(e)),8&o||"object"==typeof e&&e&&(4&o&&e.__esModule||16&o&&"function"==typeof e.then))return e;var n=Object.create(null);u.r(n);var a={};t=t||[null,r({}),r([]),r(r)];for(var i=2&o&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach(t=>a[t]=()=>e[t]);return a.default=()=>e,u.d(n,a),n},u.d=(e,t)=>{for(var r in t)u.o(t,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},u.f={},u.e=e=>Promise.all(Object.keys(u.f).reduce((t,r)=>(u.f[r](e,t),t),[])),u.u=e=>"static/chunks/"+e+"."+({73:"73bfdde6a7a9b42b",100:"52dda92e5e8a952a",277:"6785dfaf22fdb0b7",307:"8fdeb1732d749981",341:"79535ba85bf1986f",363:"25b64181ebca205d",422:"8327da4bbddd0842",519:"9f9c2d29933bf2ef",541:"c69629e483176ad7",628:"3175e816bc17d5c7",631:"3623a2830ab30d1e",663:"cfbde775630d10fd",693:"55a42abad20cbdaa",820:"e8f3e1c85e1657ec",865:"5265cef552d53595",912:"b802c1066a130cf6",939:"63d71e74e359a311",980:"dd35e807b18063c1",990:"61296e5870b91f11"})[e]+".js",u.miniCssF=e=>"static/css/"+({224:"ca311e6c030663d4",368:"b736be3bd02b5d99",432:"2d03f0da2c678dfc",438:"cd4d7f2458487399",618:"98051ed25076b896",802:"7b6724d2df70f48f"})[e]+".css",u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},u.l=(e,t,r,n)=>{if(o[e])return void o[e].push(t);if(void 0!==r)for(var a,i,f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var c=f[l];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")=="_N_E:"+r){a=c;break}}a||(i=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,u.nc&&a.setAttribute("nonce",u.nc),a.setAttribute("data-webpack","_N_E:"+r),a.src=u.tu(e)),o[e]=[t];var d=(t,r)=>{a.onerror=a.onload=null,clearTimeout(s);var n=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(r)),t)return t(r)},s=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),i&&document.head.appendChild(a)},u.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.tt=()=>(void 0===n&&(n={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(n=trustedTypes.createPolicy("nextjs#bundler",n))),n),u.tu=e=>u.tt().createScriptURL(e),u.p="/_next/",a={68:0},u.f.miniCss=(e,t)=>{if(a[e])t.push(a[e]);else 0!==a[e]&&({224:1,368:1,432:1,438:1,618:1,802:1})[e]&&t.push(a[e]=new Promise((t,r)=>{var o=u.miniCssF(e),n=u.p+o;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),o=0;o<r.length;o++){var n=r[o],a=n.getAttribute("data-href")||n.getAttribute("href");if("stylesheet"===n.rel&&(a===e||a===t))return n}for(var i=document.getElementsByTagName("style"),o=0;o<i.length;o++){var n=i[o],a=n.getAttribute("data-href");if(a===e||a===t)return n}})(o,n))return t();((e,t,r,o)=>{var n=document.createElement("link");n.rel="stylesheet",n.type="text/css",n.onerror=n.onload=a=>{if(n.onerror=n.onload=null,"load"===a.type)r();else{var i=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.href||t,l=Error("Loading CSS chunk "+e+" failed.\n("+f+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=i,l.request=f,n.parentNode.removeChild(n),o(l)}},n.href=t;if("function"==typeof _N_E_STYLE_LOAD){var a=n.href,i=n.onload,f=n.onerror;_N_E_STYLE_LOAD(0===a.indexOf(window.location.origin)?new URL(a).pathname:a).then(function(){i&&i.call(n,{type:"load"})},function(){f&&f.call(n,{})})}else document.head.appendChild(n)})(e,n,t,r)}).then(()=>{a[e]=0},t=>{throw delete a[e],t}))},u.b=document.baseURI||self.location.href,i={68:0},u.f.j=(e,t)=>{var r=u.o(i,e)?i[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(43[28]|(36|6|61)8|224|802)$/.test(e))i[e]=0;else{var o=new Promise((t,o)=>r=i[e]=[t,o]);t.push(r[2]=o);var n=u.p+u.u(e),a=Error();u.l(n,t=>{if(u.o(i,e)&&(0!==(r=i[e])&&(i[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;a.message="Loading chunk "+e+" failed.\n("+o+": "+n+")",a.name="ChunkLoadError",a.type=o,a.request=n,r[1](a)}},"chunk-"+e,e)}},u.O.j=e=>0===i[e],f=(e,t)=>{var r,o,[n,a,f]=t,l=0;if(n.some(e=>0!==i[e])){for(r in a)u.o(a,r)&&(u.m[r]=a[r]);if(f)var c=f(u)}for(e&&e(t);l<n.length;l++)o=n[l],u.o(i,o)&&i[o]&&i[o][0](),i[o]=0;return u.O(c)},(l=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(f.bind(null,0)),l.push=f.bind(null,l.push.bind(l))})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.index_nav__oayCy{position:relative;z-index:1;flex:0 0 auto}.index_navContent__puCTa{width:100%;display:flex;align-items:flex-start;padding:var(--nav--padding)}.index_navLogo__iI_za{display:flex;flex:1 1}.index_logoContainer__YyxQp{display:flex}.index_logo__jZUto{height:var(--logo--height);width:auto;-webkit-user-select:none;user-select:none}.index_solver__wz8VS{flex:1 1}.NavButtons_navButtons__Ar_TQ{display:flex;align-items:center;gap:var(--spacing--l);gap:calc(var(--spacing--l) - var(--spacing--xs))}.NavButtons_button__UKQU0:last-child,.NavButtons_separator__lPmge:last-child{margin-right:0}.NavButtons_group__OiFOK{display:flex;gap:var(--spacing--l)}.NavButtons_separator__lPmge{border-right:var(--border);border-color:var(--color--inactive);height:32px}.NavButtons_error__kbe3P,.NavButtons_error__kbe3P:active,.NavButtons_error__kbe3P:focus,.NavButtons_error__kbe3P:hover{color:var(--color--error)}@media(max-width:767px){.NavButtons_fullNav__ssFBL{display:none}}@media(min-width:768px){.NavButtons_shortNav__kzmRS{display:none}}@media(hover:none){.NavButtons_keyMapButton__W6Z_3{display:none}}.IconButton_iconButton__cz_iA{padding:0;border:none;outline:none;font:inherit;color:inherit;background:none;--focus-effect--size:6px;position:relative}.IconButton_iconButton__cz_iA:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.IconButton_iconButton__cz_iA:focus-within,.IconButton_iconButton__cz_iA:focus-within *{outline:none}.IconButton_iconButton__cz_iA:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.IconButton_iconButton__cz_iA{display:inline-block;color:var(--color--inactive);cursor:pointer;transition:var(--transition)}.IconButton_iconButton__cz_iA:focus,.IconButton_iconButton__cz_iA:hover{text-decoration:none;color:var(--color--foreground--secondary)}.IconButton_iconButton__cz_iA:active{color:var(--color--foreground)}.IconButton_iconButton__cz_iA[disabled]{opacity:var(--opacity--disabled);box-shadow:none;cursor:not-allowed}.IconButton_content__9uHMt{display:flex;align-items:center;justify-content:center}.IconButton_icon__WVF0q{width:var(--square-button--size);height:var(--square-button--size);pointer-events:none;color:inherit;transition:var(--transition)}.Tooltip_tooltip__vAjij{max-width:var(--tooltip--max-width);padding:var(--spacing--s) var(--spacing--m);box-shadow:var(--box-shadow);border-radius:var(--border--radius);background-color:var(--color--tooltip--background);color:var(--color--tooltip--foreground);z-index:var(--z-index--tooltip);text-align:center;pointer-events:none}.Tooltip_arrow__uIoGg{fill:var(--color--tooltip--background)}.Solver_solver__HgdJ5{--spacing:var(--components-spacing);position:relative;margin:0 var(--spacing);display:flex;flex-direction:column}@media(max-width:1199px)and (hover:none){.Solver_solver__HgdJ5{margin-bottom:calc(3*var(--spacing--l) + var(--button--icon--size))}}@media(max-width:479px)and (hover:none){.Solver_solver__HgdJ5{margin-bottom:calc(1*var(--spacing--m) + 2*var(--spacing--l) + var(--button--icon--size))}}.Solver_container__ajXif{position:relative;display:flex;align-items:center;justify-content:center}.Solver_content__HOara{display:grid;grid-template-columns:minmax(0,1fr) var(--solver-column--width);gap:var(--spacing);height:100%;margin:0 auto}@media(max-width:1199px){.Solver_content__HOara{grid-template-columns:1fr}}.Solver_boardContainer__4GPRC{position:relative}.Solver_board__GI25F{margin:0 auto}.Solver_submitInput__Q3pw9{display:none}.Solver_column__stLpp{display:flex;flex-direction:column;flex:0 0 var(--solver-column--width);gap:var(--spacing)}@media(max-width:1199px){.Solver_column__stLpp{display:none}}.Solver_results__YjM_q{box-shadow:var(--box-shadow)}.Solver_dictionaryContainer__v6K0v{flex:0 0 auto;height:var(--dictionary--height);display:flex;flex-direction:column;background-color:var(--color--background--element);border:var(--border);border-radius:var(--border--radius);box-shadow:var(--box-shadow)}.Solver_dictionary__R2P0a{flex:1 1;border-bottom:var(--border);border-top-left-radius:var(--border--radius);border-top-right-radius:var(--border--radius)}.Solver_dictionaryInput__kSVRV{flex:0 0 auto;border-bottom-left-radius:var(--border--radius);border-bottom-right-radius:var(--border--radius)}.Solver_bottomContainer___pVNW{flex:0 0 auto;display:flex;justify-content:center}.Solver_bottomContent__b8KyY{display:inline-flex;flex-direction:column;align-items:center;gap:var(--spacing);margin:var(--spacing) auto;min-width:0}.Solver_controls__4fjwP{width:100%;max-width:var(--controls-max-width)}@media(min-width:1200px){.Solver_controls__4fjwP{display:none}}.Solver_emptyState__6TEU_{margin-top:var(--spacing)}@keyframes Board_hide__3Xn0K{0%{opacity:1}to{opacity:0}}@keyframes Board_show__qgRUu{0%{opacity:0}to{opacity:1}}@keyframes Board_rotate__dvty2{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes Board_wave__YvFwO{0%{transform:translateY(0)}25%{transform:translateY(6px)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}.Board_board__Xnuco{--tile-size:var(--cell-size);--coordinate-track-size:calc(var(--coordinate-size) - var(--border--width));display:grid;grid-template-columns:var(--coordinate-track-size) repeat(var(--board-cols),var(--cell-size));grid-template-rows:var(--coordinate-track-size) repeat(var(--board-rows),var(--cell-size));gap:var(--border--width);box-shadow:var(--box-shadow);background-color:#fff;background-size:100% 100%;border:var(--border);border-radius:var(--border--radius);font-size:max(14px,var(--cell-size)*.6)}.Board_floating__6BuCt{position:absolute;z-index:var(--z-index--actions);width:max-content;height:max-content;animation:var(--transition--duration) var(--transition--easing) Board_show__qgRUu}.Board_focus__1plN1{--focus-effect--size:6px;position:relative}.Board_focus__1plN1:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.Board_focus__1plN1:focus-within,.Board_focus__1plN1:focus-within *{outline:none}.Board_focus__1plN1:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.Board_focus__1plN1{width:var(--cell-size);height:var(--cell-size);cursor:text}.Board_focus__1plN1:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.Board_hidden__HUigM{animation:var(--transition--duration) var(--transition--easing) Board_hide__3Xn0K}.Board_hidden__HUigM,.Board_iconContainer__YELP8{pointer-events:none;-webkit-user-select:none;user-select:none}.Board_iconContainer__YELP8{position:absolute;display:flex;align-items:center;justify-content:center}.Board_iconBackground__u0tVi,.Board_icon__0J1Ig{position:absolute;inset:calc((100% - var(--size))/2);width:var(--size);height:var(--size)}.Board_iconBackground__u0tVi{--size:80%;border-radius:var(--border--radius);background-color:var(--color--foreground--secondary)}.Board_icon__0J1Ig{--size:40%;color:var(--color--white)}.Board_coordinate__LaKUI{position:relative;display:flex;align-items:center;justify-content:center;font-size:calc(.3*var(--cell-size))}.Cell_tile__SiBOA input{position:absolute;inset:-100%;width:300%;height:300%;clip-path:inset(33.3333333333%)}[dir=ltr] .Cell_tile__SiBOA.Cell_first3__7uV8I input{left:0;clip-path:polygon(0 33.3333333333%,33.3333333333% 33.3333333333%,33.3333333333% 66.6666666667%,0 66.6666666667%)}[dir=ltr] .Cell_tile__SiBOA.Cell_last3__30aLE input,[dir=rtl] .Cell_tile__SiBOA.Cell_first3__7uV8I input{left:-200%;clip-path:polygon(66.6666666667% 33.3333333333%,100% 33.3333333333%,100% 66.6666666667%,66.6666666667% 66.6666666667%)}[dir=rtl] .Cell_tile__SiBOA.Cell_first3__7uV8I input{right:0}[dir=rtl] .Cell_tile__SiBOA.Cell_last3__30aLE input{left:0;right:-200%;clip-path:polygon(0 33.3333333333%,33.3333333333% 33.3333333333%,33.3333333333% 66.6666666667%,0 66.6666666667%)}.Cell_tile__SiBOA.Cell_sharpTopLeft__7Frqr{border-start-start-radius:0}.Cell_tile__SiBOA.Cell_sharpTopRight__eYNVC{border-start-end-radius:0}.Cell_tile__SiBOA.Cell_sharpBottomLeft__KhIPs{border-end-start-radius:0}.Cell_tile__SiBOA.Cell_sharpBottomRight__R2ZNq{border-end-end-radius:0}.Cell_tile__SiBOA.Cell_unreachable__bH4mB{background-color:var(--border--color);opacity:.5;border-radius:0}.Cell_tile__SiBOA:focus-within{z-index:2}.Tile_tile__Ix_p2{--background-color:transparent;position:relative;width:var(--tile-size,auto);height:var(--tile-size,auto);display:flex;align-items:center;justify-content:center;padding:0;background-color:var(--background-color);border-radius:var(--border--radius);font-weight:700;text-transform:uppercase;text-align:center;-webkit-user-select:none;user-select:none}@media(max-width:479px){.Tile_tile__Ix_p2{--border--radius:3px}}.Tile_tile__Ix_p2.Tile_points1__Ubc_x{--background-color:var(--color--yellow)}.Tile_tile__Ix_p2.Tile_points2__d_3CH{--background-color:var(--color--green)}.Tile_tile__Ix_p2.Tile_points3__Q5XVD,.Tile_tile__Ix_p2.Tile_points4__hu5jg{--background-color:var(--color--blue)}.Tile_tile__Ix_p2.Tile_points5__4JVlF{--background-color:var(--color--red)}.Tile_tile__Ix_p2.Tile_raised__ObpSU{box-shadow:var(--box-shadow--raised)}@media(max-width:479px){.Tile_tile__Ix_p2.Tile_raised__ObpSU{box-shadow:var(--box-shadow--raised--subtle)}}.Tile_tile__Ix_p2.Tile_blank__WIuHs{--background-color:var(--color--white);color:var(--color--foreground)}.Tile_tile__Ix_p2.Tile_empty__GU8RF{color:var(--color--inactive)}.Tile_tile__Ix_p2.Tile_invalid__vYgf3{--background-color:var(--color--foreground);--shadow--color:var(--box-shadow--color--inverse);color:var(--color--white)}.Tile_tile__Ix_p2.Tile_highlighted__Xw3Fw{--background-color:var(--color--primary);color:var(--color--primary--opposite)}.Tile_tile__Ix_p2.Tile_highlighted__Xw3Fw .Tile_points__3CAVI{color:inherit}.Tile_input__AO_aO{position:absolute;inset:0;width:100%;height:100%;border:none;background-color:rgba(0,0,0,0);color:rgba(0,0,0,0);caret-color:rgba(0,0,0,0);font-size:16px;outline:none;-webkit-user-select:none;user-select:none}.Tile_input__AO_aO::selection{background-color:rgba(0,0,0,0)}.Tile_points__3CAVI{text-shadow:1px 0 var(--background-color),-1px 0 var(--background-color),0 1px var(--background-color),0 -1px var(--background-color),-1px -1px var(--background-color),-1px 1px var(--background-color),1px -1px var(--background-color),1px 1px var(--background-color);font-size:max(10px,var(--tile-size)*.25);position:absolute;inset-block-end:1%;inset-inline-end:9%;font-weight:700;-webkit-user-select:none;user-select:none;pointer-events:none;letter-spacing:-1px}@media(max-width:479px){.Tile_points__3CAVI{display:none}}.Tile_alert__0l1_m{--size:30%;position:absolute;width:var(--size);height:var(--size);inset-block-start:0;inset-inline-end:0;border-radius:12.5%;border-start-end-radius:inherit;background-color:var(--color--error);color:var(--color--error--opposite);pointer-events:none}.Actions_actions__JclIc{display:flex;box-shadow:var(--box-shadow);border-radius:var(--border--radius);transition:var(--transition);transition-property:opacity}.Actions_actions__JclIc .Actions_action__zkQOb{padding:var(--spacing--m);box-shadow:none!important}.Actions_actions__JclIc .Actions_action__zkQOb:active,.Actions_actions__JclIc .Actions_action__zkQOb:hover{color:var(--color--foreground)}.Actions_actions__JclIc .Actions_action__zkQOb+.Actions_action__zkQOb{border-inline-start:none}.Actions_actions__JclIc .Actions_action__zkQOb:first-child{border-start-end-radius:0;border-end-end-radius:0}.Actions_actions__JclIc .Actions_action__zkQOb:last-child{border-start-start-radius:0;border-end-start-radius:0}.Button_button__8B4nB{padding:0;border:none;outline:none;font:inherit;color:inherit;background:none;--focus-effect--size:6px;position:relative}.Button_button__8B4nB:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.Button_button__8B4nB:focus-within,.Button_button__8B4nB:focus-within *{outline:none}.Button_button__8B4nB:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.Button_button__8B4nB{display:inline-block;padding:var(--spacing--m) var(--spacing--l);border:var(--border);border-radius:var(--border--radius);text-transform:uppercase;transition:var(--transition);cursor:pointer}.Button_button__8B4nB,.Button_button__8B4nB:active,.Button_button__8B4nB:focus,.Button_button__8B4nB:hover{box-shadow:var(--box-shadow);text-decoration:none}.Button_button__8B4nB.Button_primary__KcWsb,.Button_button__8B4nB:active.Button_primary__KcWsb,.Button_button__8B4nB:focus.Button_primary__KcWsb,.Button_button__8B4nB:hover.Button_primary__KcWsb{background-color:var(--color--primary);color:var(--color--primary--opposite)}.Button_button__8B4nB.Button_default__nKr4u,.Button_button__8B4nB:active.Button_default__nKr4u,.Button_button__8B4nB:focus.Button_default__nKr4u,.Button_button__8B4nB:hover.Button_default__nKr4u{background-color:var(--color--background--element);color:var(--color--foreground)}.Button_button__8B4nB.Button_default__nKr4u .Button_icon__V37WX,.Button_button__8B4nB:active.Button_default__nKr4u .Button_icon__V37WX,.Button_button__8B4nB:focus.Button_default__nKr4u .Button_icon__V37WX,.Button_button__8B4nB:hover.Button_default__nKr4u .Button_icon__V37WX{color:var(--color--inactive)}.Button_button__8B4nB:focus.Button_default__nKr4u:not(:disabled) .Button_icon__V37WX,.Button_button__8B4nB:hover.Button_default__nKr4u:not(:disabled) .Button_icon__V37WX{color:var(--color--foreground--secondary)}.Button_button__8B4nB:active:not(:disabled) .Button_content__gu4us{position:relative;top:1px}.Button_button__8B4nB[disabled]{opacity:var(--opacity--disabled);box-shadow:none;cursor:not-allowed}.Button_content__gu4us{display:flex;align-items:center;justify-content:center;gap:var(--spacing--l);line-height:var(--button--icon--size)}@media(max-width:1199px){.Button_content__gu4us{gap:var(--spacing--m)}}.Button_icon__V37WX{flex:0 0 auto;width:var(--button--icon--size);height:var(--button--icon--size);transition:var(--transition)}.Button_label__YUlJz{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:var(--font--size--h3);transition:var(--transition);text-align:start}.Button_wide__xwJam .Button_content__gu4us{justify-content:normal;gap:var(--spacing--l)}.Button_wide__xwJam .Button_label__YUlJz{flex:1 1}.ToggleDirectionButton_button__8P075{padding:var(--spacing--m);box-shadow:none!important}.ToggleDirectionButton_button__8P075:active,.ToggleDirectionButton_button__8P075:hover{color:var(--color--foreground)}.ToggleDirectionButton_icon__ZZ78d{transition:var(--transition)}.ToggleDirectionButton_icon__ZZ78d.ToggleDirectionButton_right__b0_LR{transform:rotate(-90deg)}[dir=rtl] .ToggleDirectionButton_icon__ZZ78d.ToggleDirectionButton_right__b0_LR{transform:rotate(90deg)}.InputPrompt_inputPrompt__1_ygJ{display:flex;box-shadow:var(--box-shadow);border-radius:var(--border--radius);transition:var(--transition);transition-property:opacity}.InputPrompt_toggleDirection__mx8tU{border-start-end-radius:0;border-end-end-radius:0}.InputPrompt_input__Qdlf_{width:100%;height:var(--text-input--height);padding:0 var(--spacing--l);transition:var(--transition);font-size:var(--font--size--m);outline:none;height:100%;max-width:200px;border:none;border-top:var(--border);border-bottom:var(--border);border-radius:0}.InputPrompt_insert__FLC5l{border-start-start-radius:0;border-end-start-radius:0}.InputPrompt_insertIcon__aL5tM{transform:scale(1.5)}.Results_results__RAvy9{position:relative;display:flex;flex-direction:column;height:100%;background:var(--color--background--element);border:var(--border);border-radius:var(--border--radius)}.Results_emptyState__HkpYj{flex:1 1}.Results_content__eBfb2{flex:1 1;position:relative;height:100%}.Results_listContainer__y4jAK{position:absolute;inset:0}.Results_list__ep2TB{scrollbar-color:var(--scrollbar--thumb--color) var(--scrollbar--thumb--track);scrollbar-width:thin}.Results_list__ep2TB::-webkit-scrollbar{width:var(--scrollbar--size);background-color:var(--scrollbar--track--color)}.Results_list__ep2TB::-webkit-scrollbar-thumb{background-color:var(--scrollbar--thumb--color)}.Results_list__ep2TB:hover{scrollbar-color:var(--scrollbar--thumb--color--highlight) var(--scrollbar--track--color)}.Results_list__ep2TB:hover::-webkit-scrollbar-thumb{background-color:var(--scrollbar--thumb--color--highlight)}.Results_list__ep2TB{transition:var(--transition)}.Results_list__ep2TB.Results_outdated__xbp6D{filter:blur(2px)}.Results_stat__zl_Bp{flex:0 0 55px;max-width:55px;justify-content:center}.Results_points__vyk3z{flex:0 0 80px;max-width:80px;font-weight:700}.Results_coordinates__1Ph_Z{flex:0 0 55px;max-width:55px}.Results_solveButton__V3YrS{display:block;margin:var(--spacing--xl) auto 0}.Results_input__4Te0e{border-top:var(--border);border-bottom-left-radius:var(--border--radius);border-bottom-right-radius:var(--border--radius)}.Results_highlight__RIiBE{background-color:var(--color--mark);color:var(--color--foreground);border-radius:var(--border--radius)}.Table_header___xDQO{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;border-bottom:var(--border);border-top-left-radius:inherit;border-top-right-radius:inherit}.Table_headerButton__zlLa5{padding:0;border:none;outline:none;font:inherit;color:inherit;background:none;--focus-effect--size:6px;position:relative}.Table_headerButton__zlLa5:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.Table_headerButton__zlLa5:focus-within,.Table_headerButton__zlLa5:focus-within *{outline:none}.Table_headerButton__zlLa5:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.Table_headerButton__zlLa5{cursor:pointer;text-transform:uppercase;transition:background-color var(--transition--duration) var(--transition--easing),color var(--transition--duration) var(--transition--easing);background-color:var(--color--background);height:100%}.Table_headerButton__zlLa5:first-child{border-start-start-radius:inherit}.Table_headerButton__zlLa5:last-child{border-start-end-radius:inherit}.Table_headerButton__zlLa5:focus,.Table_headerButton__zlLa5:hover{background-color:var(--color--primary);color:var(--color--primary--opposite)}.Table_headerButton__zlLa5.Table_primary__IaJpj{flex:1 1;min-width:0;text-transform:uppercase}.Table_headerButtonLabel__dYzT_{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 1 auto;text-align:start}.Table_headerButtonIcon__joRQg{flex:0 0 auto;width:var(--results--icon--size);height:var(--results--icon--size)}.Table_row__iZMLR{padding:0;border:none;outline:none;font:inherit;color:inherit;background:none;-webkit-user-select:none;user-select:none;font-weight:400}.Table_row__iZMLR.Table_highlighted__uYiL_:not(:disabled),.Table_row__iZMLR:focus-visible:not(:disabled),.Table_row__iZMLR:hover:not(:disabled){background-color:var(--color--primary);color:var(--color--primary--opposite)}.Table_row__iZMLR[aria-hidden=true]{color:var(--color--inactive)}.Table_row__iZMLR[aria-hidden=true].Table_highlighted__uYiL_:not(:disabled),.Table_row__iZMLR[aria-hidden=true]:focus-visible:not(:disabled),.Table_row__iZMLR[aria-hidden=true]:hover:not(:disabled){background-color:var(--color--primary--light);color:var(--color--primary--opposite)}.Table_clickable__FAcx4{cursor:pointer}.Table_rowContent__3NS_l{display:flex;align-items:center;justify-content:space-between;height:100%}.Table_cell__1d8Mm{display:flex;align-items:center;justify-content:center;height:100%;gap:var(--spacing--s);line-height:var(--results--item--height)}.Table_cell__1d8Mm.Table_primary__IaJpj{flex:1 1;min-width:0;text-transform:uppercase;justify-content:flex-start;padding-inline-start:calc(var(--spacing--m) + var(--spacing--s))}.Table_cellValue__cYjXm{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;min-width:0}.Table_search__FugjW{--focus-effect--size:6px;position:relative}.Table_search__FugjW:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.Table_search__FugjW:focus-within,.Table_search__FugjW:focus-within *{outline:none}.Table_search__FugjW:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.Table_searchField__NlV0w{width:100%;height:var(--text-input--height);padding:0 var(--spacing--l);transition:var(--transition);font-size:var(--font--size--m);outline:none;border:none;border-radius:inherit}.Table_sortIcon__5dVth{flex:0 0 auto;width:19px;height:19px}.EmptyState_emptyState__N2idu{padding:var(--spacing--xl);color:var(--color--foreground--secondary);text-align:center;text-transform:none}.EmptyState_tiles__FYVO9{display:inline-block;max-width:100%;margin-bottom:var(--spacing--m);height:48px;overflow:visible}@keyframes PlainTiles_hide__A1qMM{0%{opacity:1}to{opacity:0}}@keyframes PlainTiles_show__tFNGv{0%{opacity:0}to{opacity:1}}@keyframes PlainTiles_rotate__7Jm2X{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes PlainTiles_wave__bE4zX{0%{transform:translateY(0)}25%{transform:translateY(6px)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM{animation:PlainTiles_wave__bE4zX .75s infinite;animation-timing-function:linear}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:first-child{animation-delay:-2.85s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(2){animation-delay:-2.7s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(3){animation-delay:-2.55s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(4){animation-delay:-2.4s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(5){animation-delay:-2.25s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(6){animation-delay:-2.1s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(7){animation-delay:-1.95s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(8){animation-delay:-1.8s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(9){animation-delay:-1.65s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(10){animation-delay:-1.5s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(11){animation-delay:-1.35s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(12){animation-delay:-1.2s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(13){animation-delay:-1.05s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(14){animation-delay:-.9s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(15){animation-delay:-.75s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(16){animation-delay:-.6s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(17){animation-delay:-.45s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(18){animation-delay:-.3s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(19){animation-delay:-.15s}.PlainTiles_wave__bE4zX .PlainTiles_tile___NJSM:nth-child(20){animation-delay:0s}.PlainTiles_dropShadow__K0PlA{filter:drop-shadow(0 3px 3px rgba(0,0,0,.4))}.Loading_dim__sBo77,.Loading_loading__zKVig{position:absolute;inset:0;border-radius:inherit}.Loading_loading__zKVig{display:flex;align-items:center;justify-content:center}.Loading_dim__sBo77{background-color:var(--color--background--overlay);z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.Loading_text__AUS3o{position:relative;z-index:2;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.Loading_tiles__5IEHk{width:66.6666666667%;height:100%}.Dictionary_dictionary__FfG3h{position:relative;min-height:0;word-break:break-word}.Dictionary_dictionary__FfG3h:focus-within{--focus-effect--size:6px;position:relative}.Dictionary_dictionary__FfG3h:focus-within:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.Dictionary_dictionary__FfG3h:focus-within:focus-within,.Dictionary_dictionary__FfG3h:focus-within:focus-within *{outline:none}.Dictionary_dictionary__FfG3h:focus-within:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.Dictionary_content___ZOAM{scrollbar-color:var(--scrollbar--thumb--color) var(--scrollbar--thumb--track);scrollbar-width:thin}.Dictionary_content___ZOAM::-webkit-scrollbar{width:var(--scrollbar--size);background-color:var(--scrollbar--track--color)}.Dictionary_content___ZOAM::-webkit-scrollbar-thumb{background-color:var(--scrollbar--thumb--color)}.Dictionary_content___ZOAM:hover{scrollbar-color:var(--scrollbar--thumb--color--highlight) var(--scrollbar--track--color)}.Dictionary_content___ZOAM:hover::-webkit-scrollbar-thumb{background-color:var(--scrollbar--thumb--color--highlight)}.Dictionary_content___ZOAM{display:flex;flex-direction:column;height:100%;overflow-y:auto;border-radius:inherit}.Dictionary_content___ZOAM:focus-visible{outline:none}.Dictionary_result__kS3fd{flex-shrink:0}.Dictionary_result__kS3fd:last-child{flex-grow:1}.Dictionary_result__kS3fd.Dictionary_isAllowed__Jw9sB{background-color:var(--color--green--light)}.Dictionary_result__kS3fd.Dictionary_isNotAllowed__Y5tLd{background-color:var(--color--red--light)}.Dictionary_resultContent__GBlvP{padding:var(--spacing--l)}.Dictionary_word__faOui{margin-bottom:var(--spacing--m);font-size:var(--font--size--h2);text-transform:uppercase}.Dictionary_definitions__uU_Zv{margin:0;padding-inline-start:var(--spacing--l)}.Dictionary_definition__BJGy7{margin-bottom:var(--spacing--s);white-space:pre-wrap}.Dictionary_definition__BJGy7:last-child{margin-bottom:0}.DictionaryInput_dictionaryInput__ko75b{--focus-effect--size:6px;position:relative}.DictionaryInput_dictionaryInput__ko75b:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.DictionaryInput_dictionaryInput__ko75b:focus-within,.DictionaryInput_dictionaryInput__ko75b:focus-within *{outline:none}.DictionaryInput_dictionaryInput__ko75b:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.DictionaryInput_input__dfsFg{width:100%;height:var(--text-input--height);padding:0 var(--spacing--l);transition:var(--transition);font-size:var(--font--size--m);outline:none;border:none;border-radius:inherit}.Rack_rack__0GhLs{--tile-size:var(--rack-tile-size);position:relative;display:flex;box-shadow:var(--box-shadow);border-radius:var(--border--radius);transition:var(--transition);opacity:1;font-size:max(14px,var(--rack-tile-size)*.6)}.Rack_tile__jnU1W input{position:absolute;top:-200%;right:-100%;left:-100%;bottom:0;width:300%;height:300%;clip-path:polygon(33.3333333333% 66.6666666667%,66.6666666667% 66.6666666667%,66.6666666667% 100%,33.3333333333% 100%)}[dir=ltr] .Rack_tile__jnU1W:first-child input,[dir=ltr] .Rack_tile__jnU1W:nth-child(2) input,[dir=ltr] .Rack_tile__jnU1W:nth-child(3) input{left:0;clip-path:polygon(0 66.6666666667%,33.3333333333% 66.6666666667%,33.3333333333% 100%,0 100%)}[dir=ltr] .Rack_tile__jnU1W:last-child input,[dir=ltr] .Rack_tile__jnU1W:nth-last-child(2) input,[dir=ltr] .Rack_tile__jnU1W:nth-last-child(3) input{left:-200%;clip-path:polygon(66.6666666667% 66.6666666667%,100% 66.6666666667%,100% 100%,66.6666666667% 100%)}[dir=rtl] .Rack_tile__jnU1W:first-child input,[dir=rtl] .Rack_tile__jnU1W:nth-child(2) input,[dir=rtl] .Rack_tile__jnU1W:nth-child(3) input{left:-200%;right:0;clip-path:polygon(66.6666666667% 66.6666666667%,100% 66.6666666667%,100% 100%,66.6666666667% 100%)}[dir=rtl] .Rack_tile__jnU1W:last-child input,[dir=rtl] .Rack_tile__jnU1W:nth-last-child(2) input,[dir=rtl] .Rack_tile__jnU1W:nth-last-child(3) input{left:0;right:-200%;clip-path:polygon(0 66.6666666667%,33.3333333333% 66.6666666667%,33.3333333333% 100%,0 100%)}.Rack_hidden__3UrpD{opacity:0}.Rack_sharpLeft__Zlx5l{border-start-start-radius:0;border-end-start-radius:0}.Rack_sharpRight__s2zNJ{border-start-end-radius:0;border-end-end-radius:0}.InputPrompt_form__vuJMa{--focus-effect--size:6px;position:relative}.InputPrompt_form__vuJMa:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.InputPrompt_form__vuJMa:focus-within,.InputPrompt_form__vuJMa:focus-within *{outline:none}.InputPrompt_form__vuJMa:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.InputPrompt_form__vuJMa{width:calc(var(--rack-size)*var(--rack-tile-size));height:var(--rack-tile-size);border-radius:var(--border--radius)}.InputPrompt_input__9jIi3{height:var(--text-input--height);padding:0 var(--spacing--l);transition:var(--transition);font-size:var(--font--size--m);outline:none;position:absolute;inset:0;width:100%;height:100%;border-radius:var(--border--radius);border:none;box-shadow:var(--box-shadow)}.RackTile_rackTile__rj6pD{--focus-effect--size:6px;position:relative}.RackTile_rackTile__rj6pD:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.RackTile_rackTile__rj6pD:focus-within,.RackTile_rackTile__rj6pD:focus-within *{outline:none}.RackTile_rackTile__rj6pD:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.RackTile_rackTile__rj6pD{--background-color:var(--color--background)}.RackTile_rackTile__rj6pD:focus-within{z-index:2}.ResultCandidatePicker_resultCandidatePicker__S_aFf{position:relative;display:flex;gap:var(--spacing--l)}@media(max-width:479px){.ResultCandidatePicker_resultCandidatePicker__S_aFf{gap:var(--spacing--m)}}.ResultCandidatePicker_buttons__dT8pq{flex:0 0 auto;display:flex;border-radius:var(--border--radius)}.ResultCandidatePicker_buttons__dT8pq.ResultCandidatePicker_bothEnabled__yX7kU{box-shadow:var(--box-shadow)}.ResultCandidatePicker_buttons__dT8pq.ResultCandidatePicker_bothEnabled__yX7kU .ResultCandidatePicker_button__ipqiD{box-shadow:none}.ResultCandidatePicker_button__ipqiD{padding:var(--spacing--m)}.ResultCandidatePicker_button__ipqiD:focus-within{z-index:1}.ResultCandidatePicker_button__ipqiD:first-child{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.ResultCandidatePicker_button__ipqiD:last-child{border-top-left-radius:0;border-bottom-left-radius:0}[dir=rtl] .ResultCandidatePicker_button__ipqiD{transform:rotate(180deg)}.ResultCandidatePicker_resultCandidate__TffXx{padding:0;border:none;outline:none;font:inherit;color:inherit;background:none;--focus-effect--size:6px;position:relative}.ResultCandidatePicker_resultCandidate__TffXx:after{position:absolute;inset:0;z-index:var(--z-index--focus-effect);transition:var(--transition);border-radius:var(--border--radius);box-shadow:0 0 0 var(--focus-effect--size) rgba(0,0,0,0);pointer-events:none}.ResultCandidatePicker_resultCandidate__TffXx:focus-within,.ResultCandidatePicker_resultCandidate__TffXx:focus-within *{outline:none}.ResultCandidatePicker_resultCandidate__TffXx:focus-within:after{content:"";box-shadow:0 0 0 var(--focus-effect--size) var(--color--focus)}.ResultCandidatePicker_resultCandidate__TffXx{flex:1 1;display:flex;align-items:center;min-width:0;width:100%;border:var(--border);border-radius:var(--border--radius);background-color:var(--color--white);box-shadow:var(--box-shadow);cursor:pointer}.ResultCandidatePicker_resultCandidate__TffXx[disabled]{opacity:var(--opacity--disabled);box-shadow:none;cursor:not-allowed}.ResultCandidatePicker_content__1i_5T{display:flex;align-items:center;width:100%;overflow:hidden}.ResultCandidatePicker_points__86QEQ,.ResultCandidatePicker_word___Wi29{padding:var(--spacing--m) var(--spacing--l)}.ResultCandidatePicker_points__86QEQ{flex:0 0 auto;font-weight:700;border-inline-end:var(--border)}@media(max-width:479px){.ResultCandidatePicker_points__86QEQ{border-inline-end:none;padding-inline-end:var(--spacing--xs)}}.ResultCandidatePicker_word___Wi29{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:1 1;text-transform:uppercase;text-align:center}@media(max-width:479px){.ResultCandidatePicker_word___Wi29{padding:var(--spacing--m);text-align:start}}.ResultCandidatePicker_placeholder__AWWGI{color:var(--color--foreground--secondary);text-transform:none}.ResultCandidatePicker_iconContainer__iiYkC{flex:0 0 auto;display:flex;padding-inline-end:var(--spacing--l)}.ResultCandidatePicker_spinnerContainer__3nvoz{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.ResultCandidatePicker_icon__AyoQE,.ResultCandidatePicker_loading__0iXU_{width:var(--button--icon--size);height:var(--button--icon--size);color:var(--color--inactive)}.ResultCandidatePicker_loading__0iXU_{border-color:var(--color--inactive)}.ResultCandidatePicker_insert__KAM26{flex:0 0 auto}@keyframes Spinner_hide__NZDja{0%{opacity:1}to{opacity:0}}@keyframes Spinner_show__ciwNs{0%{opacity:0}to{opacity:1}}@keyframes Spinner_rotate__kqx53{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes Spinner_wave__IcOlx{0%{transform:translateY(0)}25%{transform:translateY(6px)}75%{transform:translateY(-6px)}to{transform:translateY(0)}}.Spinner_spinner__dYTEm{width:var(--button--icon--size);height:var(--button--icon--size);border:var(--border);border-width:2px;border-radius:50%;border-right-color:rgba(0,0,0,0)!important;animation:Spinner_rotate__kqx53 .75s linear infinite}@media(min-width:768px){.InsertButton_insertButton__t2Y1w{padding:var(--spacing--m) var(--spacing--xl)}}@media(max-width:479px){.InsertButton_insertButton__t2Y1w{padding:var(--spacing--m)}}.InsertButton_icon__w3D9r{transform:scale(1.5)}.Alert_alert__cFBJC{display:flex;min-width:0;width:100%;border:var(--border);border-radius:var(--border--radius);background-color:var(--color--white);text-align:center}.Alert_iconContainer__rIJ4B{flex:0 0 auto;display:flex;justify-content:center;padding:var(--spacing--m);color:var(--color--foreground--secondary);border-start-start-radius:var(--border--radius);border-end-start-radius:var(--border--radius);border-inline-end:var(--border)}.Alert_error__sMv5d .Alert_iconContainer__rIJ4B{background-color:var(--color--red--light);color:var(--color--error)}.Alert_info__5QGDB .Alert_iconContainer__rIJ4B{background-color:var(--color--blue--light);color:var(--color--info)}.Alert_success__vQBXB .Alert_iconContainer__rIJ4B{background-color:var(--color--green--light);color:var(--color--success)}.Alert_warning__6DDhO .Alert_iconContainer__rIJ4B{background-color:var(--color--yellow--light);color:var(--color--warning)}.Alert_icon__jUrPr{width:24px;height:24px}.Alert_content__QyQ78{flex:1 1;padding:var(--spacing--m) var(--spacing--l)}
|
package/README.md
CHANGED
|
@@ -1,90 +1,8 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
<p>
|
|
3
|
-
<a href="https://scrabble-solver.org">
|
|
4
|
-
<img alt="Scrabble Solver logo" height="120" src="https://raw.githubusercontent.com/kamilmielnik/scrabble-solver/master/packages/scrabble-solver/public/logo.svg" />
|
|
5
|
-
</a>
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
<p>
|
|
9
|
-
Free, open-source, cross-platform, multi-language analysis tool for <a href="https://en.wikipedia.org/wiki/Scrabble">Scrabble</a>, <a href="https://www.scopely.com/en/games/scrabble-go">Scrabble Duel</a>, <a href="https://en.wikipedia.org/wiki/Super_Scrabble">Super Scrabble</a>, <a href="https://support-apps.discord.com/hc/en-us/articles/26502196674583-Letter-League-FAQ">Letter League</a>, <a href="https://www.nytimes.com/games/crossplay">Crossplay</a>, <a href="https://pl.wikipedia.org/wiki/Literaki">Literaki</a>, <a href="https://play.google.com/store/apps/details?id=com.he2apps.kelimelik">Kelimelik</a>, <a href="https://play.google.com/store/apps/details?id=com.foltyn.Wyrazy">Wyrazy</a> & <a href="https://wordfeud.com">Wordfeud</a>
|
|
10
|
-
</p>
|
|
11
|
-
|
|
12
|
-
<p>
|
|
13
|
-
Quickly find the top-scoring words using the given board and tiles
|
|
14
|
-
</p>
|
|
15
|
-
|
|
16
|
-
<p>
|
|
17
|
-
Available at <a href="https://scrabble-solver.org">https://scrabble-solver.org</a> in 8 languages
|
|
18
|
-
</p>
|
|
19
|
-
|
|
20
|
-
<p>
|
|
21
|
-
You can <a href="#run">run</a> it on your machine: <code>bunx scrabble-solver@latest</code>
|
|
22
|
-
</p>
|
|
23
|
-
|
|
24
|
-
<p>
|
|
25
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ec-1f1e7.svg" alt="Flag of United Kingdom" title="English (GB)" />
|
|
26
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1fa-1f1f8.svg" alt="Flag of United States" title="English (US)" />
|
|
27
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1eb-1f1f7.svg" alt="Flag of France" title="French" />
|
|
28
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1e9-1f1ea.svg" alt="Flag of Germany" title="German" />
|
|
29
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ee-1f1f7.svg" alt="Flag of Iran" title="Persian" />
|
|
30
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1f5-1f1f1.svg" alt="Flag of Poland" title="Polish" />
|
|
31
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1f7-1f1f4.svg" alt="Flag of Romania" title="Romanian" />
|
|
32
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ea-1f1f8.svg" alt="Flag of Spain" title="Spanish" />
|
|
33
|
-
<img height="32" src="https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1f9-1f1f7.svg" alt="Flag of Turkey" title="Turkish" />
|
|
34
|
-
</p>
|
|
35
|
-
|
|
36
|
-
<p>
|
|
37
|
-
<img src="https://img.shields.io/github/package-json/v/kamilmielnik/scrabble-solver" alt="Version" />
|
|
38
|
-
<img src="https://img.shields.io/npm/l/scrabble-solver" alt="License" />
|
|
39
|
-
<img src="https://img.shields.io/badge/bun-%3E=1.4-brightgreen.svg" />
|
|
40
|
-
<img src="https://img.shields.io/node/v/scrabble-solver" alt="Node version" />
|
|
41
|
-
</p>
|
|
42
|
-
|
|
43
|
-
<p>
|
|
44
|
-
<img src="https://github.com/kamilmielnik/scrabble-solver/actions/workflows/build.yml/badge.svg" alt="Build" />
|
|
45
|
-
<img src="https://github.com/kamilmielnik/scrabble-solver/actions/workflows/oxlint.yml/badge.svg" alt="Oxlint" />
|
|
46
|
-
<img src="https://github.com/kamilmielnik/scrabble-solver/actions/workflows/oxfmt.yml/badge.svg" alt="Oxfmt" />
|
|
47
|
-
<img src="https://github.com/kamilmielnik/scrabble-solver/actions/workflows/e2e.yml/badge.svg" alt="E2E" />
|
|
48
|
-
<img src="https://github.com/kamilmielnik/scrabble-solver/actions/workflows/unit.yml/badge.svg" alt="Unit" />
|
|
49
|
-
<img src="https://github.com/kamilmielnik/scrabble-solver/actions/workflows/bunx.yml/badge.svg" alt="bunx" />
|
|
50
|
-
<img src="https://github.com/kamilmielnik/scrabble-solver/actions/workflows/npx.yml/badge.svg" alt="npx" />
|
|
51
|
-
</p>
|
|
52
|
-
|
|
53
|
-
<img alt="Screencast GIF showing user interface when solving for oxyphenbutazone, which is a top-scoring word in English version of Scrabble" src="https://raw.githubusercontent.com/kamilmielnik/scrabble-solver/master/screencast.gif" />
|
|
54
|
-
</div>
|
|
55
|
-
|
|
56
1
|
# scrabble-solver
|
|
57
2
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
1. [Dictionaries](#dictionaries)
|
|
61
|
-
2. [Run](#run)
|
|
62
|
-
3. [Uninstall](#uninstall)
|
|
63
|
-
4. [Develop](#develop)
|
|
64
|
-
1. [Setup](#setup)
|
|
65
|
-
2. [Run app dev server](#run-app-dev-server)
|
|
66
|
-
3. [Rebuild the entire project](#rebuild-the-entire-project)
|
|
67
|
-
4. [Rebuild a single package](#rebuild-a-single-package)
|
|
68
|
-
5. [Add a new language](#add-a-new-language)
|
|
69
|
-
5. [Tech stack](#tech-stack)
|
|
70
|
-
6. [Related projects](#related-projects)
|
|
71
|
-
7. [Media](#media)
|
|
72
|
-
|
|
73
|
-
## Dictionaries
|
|
74
|
-
|
|
75
|
-
Some of the word lists below are sourced from the companion repository [kamilmielnik/scrabble-dictionaries](https://github.com/kamilmielnik/scrabble-dictionaries).
|
|
3
|
+
Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki, Kelimelik, Wyrazy, and Wordfeud. Quickly find the top-scoring words using the given board and tiles.
|
|
76
4
|
|
|
77
|
-
|
|
78
|
-
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
79
|
-
| 🇬🇧 English | [💾](https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/sowpods.txt) [SOWPODS](https://en.wikipedia.org/wiki/Collins_Scrabble_Words) | [Wiktionary](https://en.wiktionary.org/) | oxyphenbutazone (1458) |
|
|
80
|
-
| 🇺🇸 English | [💾](https://raw.githubusercontent.com/kamilmielnik/scrabble-dictionaries/refs/heads/master/english/twl06.txt) [TWL06](https://en.wikipedia.org/wiki/NASPA_Word_List) | [Wiktionary](https://en.wiktionary.org/) | oxyphenbutazone (1458) |
|
|
81
|
-
| 🇫🇷 French | [💾](https://raw.githubusercontent.com/Thecoolsim/French-Scrabble-ODS8/main/French%20ODS%20dictionary.txt) [ODS8](https://github.com/Thecoolsim/French-Scrabble-ODS8) | [CNRTL](https://www.cnrtl.fr/) | schizothymiques (1566) |
|
|
82
|
-
| 🇩🇪 German | [💾](https://raw.githubusercontent.com/hippler/german-wordlist/master/words.txt) [hippler/german-wordlist](https://github.com/hippler/german-wordlist) | [DWDS](https://www.dwds.de) | polytoxikomanem (1512) |
|
|
83
|
-
| 🇮🇷 Persian | [💾](https://raw.githubusercontent.com/MansourM/persian-to-persian-dictionary/main/moein/words.txt) [MansourM/persian-to-persian-dictionary](https://github.com/MansourM/persian-to-persian-dictionary) | [واژه یاب](https://vajehyab.com) | (756) اگزیستانسیالیست |
|
|
84
|
-
| 🇵🇱 Polish | [💾](https://sjp.pl/slownik/growy/) [SJP.PL](https://sjp.pl/slownik/dp.phtml) | [SJP.PL](https://sjp.pl) | współposiądźmyż (1512) |
|
|
85
|
-
| 🇷🇴 Romanian | [💾](https://dexonline.ro/static/download/scrabble/loc-flexiuni-5.0.zip) [LOC 5](https://dexonline.ro/scrabble) | [dexonline](https://dexonline.ro/) | luxemburghezele (1944) |
|
|
86
|
-
| 🇪🇸 Spanish | [💾](https://github.com/kamilmielnik/scrabble-dictionaries/blob/master/spanish/file-2017.txt) [FILE 2017](https://www.facebook.com/Escrablistica) | [Diccionarios.com](https://www.diccionarios.com/) | flexibilizabais (1323) |
|
|
87
|
-
| 🇹🇷 Turkish | [💾](https://github.com/kamilmielnik/scrabble-dictionaries/blob/master/turkish/kelimelik.txt) Kelimelik | [Türk Dil Kurumu Sözlükleri](https://sozluk.gov.tr/) | peygamberdevesi (1323) |
|
|
5
|
+
Available at https://scrabble-solver.org in 9 languages.
|
|
88
6
|
|
|
89
7
|
## Run
|
|
90
8
|
|
|
@@ -94,7 +12,8 @@ You can run Scrabble Solver on your machine - all you need is [Bun](https://bun.
|
|
|
94
12
|
bunx scrabble-solver@latest
|
|
95
13
|
```
|
|
96
14
|
|
|
97
|
-
Alternatively you can
|
|
15
|
+
Alternatively you can use [Node.js](https://nodejs.org/) 24 or later instead.
|
|
16
|
+
|
|
98
17
|
```Shell
|
|
99
18
|
npx scrabble-solver@latest
|
|
100
19
|
```
|
|
@@ -103,135 +22,4 @@ Give it a while to install and download dictionaries. When it's done it will aut
|
|
|
103
22
|
|
|
104
23
|
Hit <kbd>Ctrl</kbd> + <kbd>C</kbd> in your terminal to exit the app and shut down the server.
|
|
105
24
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
Dictionaries and logs are stored in `$HOME/.scrabble-solver`.
|
|
109
|
-
`$HOME` location is acquired using [`os.homedir()`](https://nodejs.org/api/os.html#oshomedir).
|
|
110
|
-
|
|
111
|
-
```Shell
|
|
112
|
-
rm -rf $HOME/.scrabble-solver
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Develop
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
> [!WARNING]
|
|
119
|
-
> AI-generated contributions will not be accepted.
|
|
120
|
-
|
|
121
|
-
----
|
|
122
|
-
|
|
123
|
-
The following steps are required only if you want to make changes to the source code.
|
|
124
|
-
|
|
125
|
-
### Setup
|
|
126
|
-
|
|
127
|
-
One-time project setup.
|
|
128
|
-
|
|
129
|
-
```Shell
|
|
130
|
-
git clone https://github.com/kamilmielnik/scrabble-solver.git
|
|
131
|
-
cd scrabble-solver
|
|
132
|
-
bun install
|
|
133
|
-
bun run build
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Run app dev server
|
|
137
|
-
|
|
138
|
-
The following command will serve the app at http://localhost:3000/.
|
|
139
|
-
|
|
140
|
-
```Shell
|
|
141
|
-
bun run dev
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Note: hot code reload works only for the [`scrabble-solver`](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver) package. If you make changes to any other package, you will need to rebuild it ([see below](#rebuild-a-single-package)).
|
|
145
|
-
|
|
146
|
-
### Rebuild the entire project
|
|
147
|
-
|
|
148
|
-
```Shell
|
|
149
|
-
bun run build
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Rebuild a single package
|
|
153
|
-
|
|
154
|
-
For convenience, here's a list of commands to rebuild every package individually.
|
|
155
|
-
|
|
156
|
-
```Shell
|
|
157
|
-
bun run --filter @scrabble-solver/configs build
|
|
158
|
-
bun run --filter @scrabble-solver/constants build
|
|
159
|
-
bun run --filter @scrabble-solver/dictionaries build
|
|
160
|
-
bun run --filter @scrabble-solver/logger build
|
|
161
|
-
bun run --filter @scrabble-solver/scrabble-solver build
|
|
162
|
-
bun run --filter @scrabble-solver/solver build
|
|
163
|
-
bun run --filter @scrabble-solver/types build
|
|
164
|
-
bun run --filter @scrabble-solver/word-definitions build
|
|
165
|
-
bun run --filter @scrabble-solver/word-lists build
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Add a new language
|
|
169
|
-
|
|
170
|
-
1. Find and download a flag representing the locale in an SVG format
|
|
171
|
-
- I usually find them at https://commons.wikimedia.org/
|
|
172
|
-
2. Rename the file to `FlagXX.svg` and put it in [packages/scrabble-solver/src/icons](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver/src/icons)
|
|
173
|
-
3. Export the SVG file in [packages/scrabble-solver/src/icons/index.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/scrabble-solver/src/icons/index.ts)
|
|
174
|
-
4. Add IETF language tag for the new locale in [packages/types/src/Locale.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/types/src/Locale.ts)
|
|
175
|
-
5. Rebuild the types package
|
|
176
|
-
```Shell
|
|
177
|
-
bun run --filter @scrabble-solver/types build
|
|
178
|
-
```
|
|
179
|
-
6. Add locale configuration in [packages/scrabble-solver/src/i18n/constants.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/scrabble-solver/src/i18n/constants.ts)
|
|
180
|
-
7. Update locale-detecting code in [packages/scrabble-solver/src/state/settings/lib.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/scrabble-solver/src/state/settings/lib.ts)
|
|
181
|
-
8. Add game configs for the new locale in [packages/configs/src/languages](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/configs/src/languages)
|
|
182
|
-
9. Add an export for these locale configs in [packages/configs/src/languages/index.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/configs/src/languages/index.ts)
|
|
183
|
-
10. Add a translation file in [packages/scrabble-solver/src/i18n/languages](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver/src/i18n/languages) and fill it with translations
|
|
184
|
-
- Copy any existing file, e.g. `english.json` and modify it
|
|
185
|
-
11. Add an entry for the translations in [packages/scrabble-solver/src/i18n/i18n.ts](https://github.com/kamilmielnik/scrabble-solver/tree/master/packages/scrabble-solver/src/i18n/i18n.ts)
|
|
186
|
-
12. Add a function to fetch the list of words in the new locale in [packages/word-lists/src/getWordList.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-lists/src/getWordList.ts)
|
|
187
|
-
13. Add a function to fetch the word definition in the new locale in [packages/word-definitions/src/crawl.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-definitions/src/crawl.ts)
|
|
188
|
-
14. Add a function to parse the word definition crawled in the previous step in [packages/word-definitions/src/parse.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-definitions/src/parse.ts)
|
|
189
|
-
- Bonus points for adding tests in [packages/word-definitions/src/parse.test.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/word-definitions/src/parse.test.ts)
|
|
190
|
-
15. Add a transliteration function in [packages/scrabble-solver/src/lib/localeTransliterate.ts](https://github.com/kamilmielnik/scrabble-solver/blob/master/packages/scrabble-solver/src/lib/localeTransliterate.ts)
|
|
191
|
-
|
|
192
|
-
## Tech stack
|
|
193
|
-
|
|
194
|
-
- [TypeScript](https://www.typescriptlang.org/)
|
|
195
|
-
- [Bun](https://bun.sh/docs)
|
|
196
|
-
- [Node.js](https://nodejs.org/)
|
|
197
|
-
- [@kamilmielnik/gaddag](https://github.com/kamilmielnik/gaddag)
|
|
198
|
-
- [Next.js](https://nextjs.org/)
|
|
199
|
-
- [Workbox](https://developer.chrome.com/docs/workbox/)
|
|
200
|
-
- [React](https://reactjs.org/)
|
|
201
|
-
- [Redux](https://redux.js.org/)
|
|
202
|
-
- [Redux Toolkit](https://redux-toolkit.js.org/)
|
|
203
|
-
- [Redux-Saga](https://redux-saga.js.org/)
|
|
204
|
-
- [SCSS](https://sass-lang.com/)
|
|
205
|
-
- [CSS Modules](https://github.com/css-modules/css-modules)
|
|
206
|
-
- [include-media](https://eduardoboucas.github.io/include-media/)
|
|
207
|
-
- [Nx](https://nx.dev/)
|
|
208
|
-
- [Playwright](https://playwright.dev/)
|
|
209
|
-
- [Oxlint](https://oxc.rs/docs/guide/usage/linter)
|
|
210
|
-
- [Oxfmt](https://oxc.rs/docs/guide/usage/formatter)
|
|
211
|
-
|
|
212
|
-
## Related projects
|
|
213
|
-
|
|
214
|
-
### @kamilmielnik/gaddag
|
|
215
|
-
|
|
216
|
-
The [GADDAG](https://en.wikipedia.org/wiki/GADDAG) data structure powering the solver. Dictionaries are stored as a GADDAG, which is what makes it possible to generate moves anchored on tiles already placed on the board.
|
|
217
|
-
|
|
218
|
-
- GitHub: https://github.com/kamilmielnik/gaddag
|
|
219
|
-
- npm: https://www.npmjs.com/package/@kamilmielnik/gaddag
|
|
220
|
-
|
|
221
|
-
### Lexatious
|
|
222
|
-
|
|
223
|
-
The user interface and source code for the web front end of Lexatious is based on Scrabble Solver.
|
|
224
|
-
|
|
225
|
-
- Web: https://lexatious.com
|
|
226
|
-
- GitHub: https://github.com/ericgjackson/lexatious_web
|
|
227
|
-
|
|
228
|
-
### ScrabbleBench
|
|
229
|
-
|
|
230
|
-
A benchmark by Sunny Bala measuring how well large language models play Scrabble. Models are asked only for the word they want to play - Scrabble Solver then finds the optimal placement of that word on the board.
|
|
231
|
-
|
|
232
|
-
- Web: https://sunnybala.github.io/scrabblebench/
|
|
233
|
-
- GitHub: https://github.com/sunnybala/scrabblebench
|
|
234
|
-
|
|
235
|
-
## Media
|
|
236
|
-
|
|
237
|
-
- [5 Free Scrabble Solver Websites To Quickly Find Top Scoring Words](https://www.ilovefreesoftware.com/05/featured/free-scrabble-solver-websites-to-quickly-find-top-scoring-words.html)
|
|
25
|
+
See the [project README](https://github.com/kamilmielnik/scrabble-solver#readme) for more.
|