@scrabble-solver/scrabble-solver 2.11.7 → 2.11.9

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.
Files changed (122) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +7 -7
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/next-server.js.nft.json +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  9. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  10. package/.next/cache/webpack/server-production/0.pack +0 -0
  11. package/.next/cache/webpack/server-production/index.pack +0 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/131.js +153 -115
  16. package/.next/server/chunks/277.js +1430 -691
  17. package/.next/server/chunks/44.js +3 -0
  18. package/.next/server/chunks/50.js +20 -78
  19. package/.next/server/chunks/865.js +153 -115
  20. package/.next/server/chunks/911.js +14 -14
  21. package/.next/server/middleware-build-manifest.js +1 -1
  22. package/.next/server/pages/404.html +1 -1
  23. package/.next/server/pages/404.js.nft.json +1 -1
  24. package/.next/server/pages/500.html +1 -1
  25. package/.next/server/pages/_app.js +8 -0
  26. package/.next/server/pages/_app.js.nft.json +1 -1
  27. package/.next/server/pages/api/solve.js +44 -11
  28. package/.next/server/pages/index.html +1 -1
  29. package/.next/server/pages/index.js +169 -15
  30. package/.next/server/pages/index.js.nft.json +1 -1
  31. package/.next/server/pages/index.json +1 -1
  32. package/.next/static/9oRWxnZ1xFLSs55FJtiYi/_buildManifest.js +1 -0
  33. package/.next/static/chunks/pages/{404-ca203fa27afc37d8.js → 404-b4b5ce15153d4825.js} +1 -1
  34. package/.next/static/chunks/pages/_app-b0231bed954dd413.js +28 -0
  35. package/.next/static/chunks/pages/index-4e8566409753e1c3.js +1 -0
  36. package/.next/static/css/60e8258da7362a1a.css +1 -0
  37. package/.next/static/css/fcc46fec97b11afc.css +2 -0
  38. package/.next/trace +52 -50
  39. package/package.json +14 -13
  40. package/src/components/Board/Board.module.scss +18 -4
  41. package/src/components/Board/Board.tsx +145 -76
  42. package/src/components/Board/BoardPure.tsx +32 -40
  43. package/src/components/Board/components/Actions/Actions.module.scss +6 -17
  44. package/src/components/Board/components/Actions/Actions.tsx +36 -18
  45. package/src/components/Board/components/Cell/Cell.module.scss +12 -13
  46. package/src/components/Board/components/Cell/Cell.tsx +53 -3
  47. package/src/components/Board/components/InputPrompt/InputPrompt.module.scss +47 -0
  48. package/src/components/Board/components/InputPrompt/InputPrompt.tsx +81 -0
  49. package/src/components/Board/components/InputPrompt/index.ts +1 -0
  50. package/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.module.scss +21 -0
  51. package/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.tsx +34 -0
  52. package/src/components/Board/components/ToggleDirectionButton/index.ts +1 -0
  53. package/src/components/Board/components/index.ts +2 -0
  54. package/src/components/Board/hooks/index.ts +4 -0
  55. package/src/components/Board/hooks/useBackgroundImage.tsx +13 -9
  56. package/src/components/Board/hooks/useBoardStyle.ts +27 -0
  57. package/src/components/Board/hooks/useFloatingActions.ts +22 -0
  58. package/src/components/Board/hooks/useFloatingFocus.ts +10 -0
  59. package/src/components/Board/hooks/useFloatingInputPrompt.ts +19 -0
  60. package/src/components/Board/hooks/useGrid.ts +19 -2
  61. package/src/components/Key/Key.module.scss +7 -11
  62. package/src/components/NavButtons/NavButtons.tsx +2 -2
  63. package/src/components/Rack/Rack.module.scss +6 -6
  64. package/src/components/Rack/Rack.tsx +102 -24
  65. package/src/components/Rack/components/InputPrompt/InputPrompt.module.scss +22 -0
  66. package/src/components/Rack/components/InputPrompt/InputPrompt.tsx +89 -0
  67. package/src/components/Rack/components/InputPrompt/index.ts +1 -0
  68. package/src/components/Rack/components/RackTile/RackTile.module.scss +11 -0
  69. package/src/components/Rack/{RackTile.tsx → components/RackTile/RackTile.tsx} +59 -9
  70. package/src/components/Rack/components/RackTile/index.ts +1 -0
  71. package/src/components/Rack/components/index.ts +2 -0
  72. package/src/components/Radio/Radio.module.scss +0 -8
  73. package/src/components/Solver/Solver.module.scss +0 -20
  74. package/src/components/Solver/Solver.tsx +2 -4
  75. package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +2 -10
  76. package/src/components/Solver/components/index.ts +0 -1
  77. package/src/components/Tile/Tile.module.scss +5 -0
  78. package/src/components/Tile/Tile.tsx +8 -6
  79. package/src/components/Tile/TilePure.tsx +8 -0
  80. package/src/hooks/useAppLayout.ts +3 -1
  81. package/src/hooks/useLocalStorage.ts +8 -0
  82. package/src/i18n/de.json +6 -1
  83. package/src/i18n/en.json +6 -1
  84. package/src/i18n/es.json +6 -1
  85. package/src/i18n/fa.json +6 -1
  86. package/src/i18n/fr.json +6 -1
  87. package/src/i18n/pl.json +6 -1
  88. package/src/icons/Keyboard.svg +4 -3
  89. package/src/icons/KeyboardFill.svg +4 -0
  90. package/src/icons/index.ts +1 -0
  91. package/src/lib/extractCharacters.test.ts +26 -0
  92. package/src/lib/extractCharacters.ts +11 -9
  93. package/src/lib/extractCharactersByCase.test.ts +31 -0
  94. package/src/lib/extractCharactersByCase.ts +31 -0
  95. package/src/lib/index.ts +4 -1
  96. package/src/lib/isCtrl.ts +7 -0
  97. package/src/lib/isUpperCase.ts +7 -0
  98. package/src/modals/KeyMapModal/KeyMapModal.tsx +20 -4
  99. package/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +10 -4
  100. package/src/modals/SettingsModal/SettingsModal.tsx +5 -1
  101. package/src/modals/SettingsModal/components/InputModeSetting/InputModeSetting.module.scss +12 -0
  102. package/src/modals/SettingsModal/components/InputModeSetting/InputModeSetting.tsx +55 -0
  103. package/src/modals/SettingsModal/components/InputModeSetting/index.ts +1 -0
  104. package/src/modals/SettingsModal/components/InputModeSetting/lib.ts +13 -0
  105. package/src/modals/SettingsModal/components/InputModeSetting/types.ts +7 -0
  106. package/src/modals/SettingsModal/components/index.ts +1 -0
  107. package/src/state/localStorage.ts +10 -1
  108. package/src/state/selectors.ts +2 -0
  109. package/src/state/slices/settingsInitialState.ts +4 -1
  110. package/src/state/slices/settingsSlice.ts +6 -1
  111. package/src/styles/mixins.scss +1 -0
  112. package/src/styles/variables.scss +2 -0
  113. package/src/types/index.ts +7 -0
  114. package/.next/static/chunks/pages/_app-e89a3c225b87516a.js +0 -28
  115. package/.next/static/chunks/pages/index-58744f49bf6b891f.js +0 -1
  116. package/.next/static/css/34adfcf12a7d9bb6.css +0 -1
  117. package/.next/static/css/edaeaa48321b4cf2.css +0 -2
  118. package/.next/static/uhB6d-q63uRC6RubwepLq/_buildManifest.js +0 -1
  119. package/src/components/Solver/components/FloatingSolveButton/FloatingSolveButton.module.scss +0 -7
  120. package/src/components/Solver/components/FloatingSolveButton/FloatingSolveButton.tsx +0 -53
  121. package/src/components/Solver/components/FloatingSolveButton/index.ts +0 -1
  122. /package/.next/static/{uhB6d-q63uRC6RubwepLq → 9oRWxnZ1xFLSs55FJtiYi}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-c67a75d1b6f99dc8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/uhB6d-q63uRC6RubwepLq/_buildManifest.js","static/uhB6d-q63uRC6RubwepLq/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/css/34adfcf12a7d9bb6.css","static/chunks/pages/index-58744f49bf6b891f.js"],"/404":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/chunks/pages/404-ca203fa27afc37d8.js"],"/_app":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/css/edaeaa48321b4cf2.css","static/chunks/pages/_app-e89a3c225b87516a.js"],"/_error":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/chunks/pages/_error-54de1933a164a1ff.js"]},ampFirstPages:[]};
1
+ self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-c67a75d1b6f99dc8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/9oRWxnZ1xFLSs55FJtiYi/_buildManifest.js","static/9oRWxnZ1xFLSs55FJtiYi/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/css/60e8258da7362a1a.css","static/chunks/pages/index-4e8566409753e1c3.js"],"/404":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/chunks/pages/404-b4b5ce15153d4825.js"],"/_app":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/css/fcc46fec97b11afc.css","static/chunks/pages/_app-b0231bed954dd413.js"],"/_error":["static/chunks/webpack-6ef43a8d4a395f49.js","static/chunks/framework-2c5cac93e8c637b5.js","static/chunks/main-0ecb9ccfcb6c9b24.js","static/chunks/pages/_error-54de1933a164a1ff.js"]},ampFirstPages:[]};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/edaeaa48321b4cf2.css" as="style"/><link rel="stylesheet" href="/_next/static/css/edaeaa48321b4cf2.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c5cac93e8c637b5.js" defer=""></script><script src="/_next/static/chunks/main-0ecb9ccfcb6c9b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-e89a3c225b87516a.js" defer=""></script><script src="/_next/static/chunks/pages/404-ca203fa27afc37d8.js" defer=""></script><script src="/_next/static/uhB6d-q63uRC6RubwepLq/_buildManifest.js" defer=""></script><script src="/_next/static/uhB6d-q63uRC6RubwepLq/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div class="NotFound_notFound__yhPFA"><a class="NotFound_link__a1OqI" href="/"><svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" class="NotFound_icon__zBP4O"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-7z" fill="currentColor"></path></svg><svg class="NotFound_tiles__Nxd8Z" viewBox="0 0 682 80" xmlns="http://www.w3.org/2000/svg"><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#f7c2aa" height="80" rx="12" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">H</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#c7d8f9" height="80" rx="12" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">P</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">4</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 556, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">0</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">4</text></g></svg></a></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"uhB6d-q63uRC6RubwepLq","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/fcc46fec97b11afc.css" as="style"/><link rel="stylesheet" href="/_next/static/css/fcc46fec97b11afc.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c5cac93e8c637b5.js" defer=""></script><script src="/_next/static/chunks/main-0ecb9ccfcb6c9b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b0231bed954dd413.js" defer=""></script><script src="/_next/static/chunks/pages/404-b4b5ce15153d4825.js" defer=""></script><script src="/_next/static/9oRWxnZ1xFLSs55FJtiYi/_buildManifest.js" defer=""></script><script src="/_next/static/9oRWxnZ1xFLSs55FJtiYi/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div class="NotFound_notFound__yhPFA"><a class="NotFound_link__a1OqI" href="/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="NotFound_icon__zBP4O"><path fill="currentColor" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-7z"></path></svg><svg class="NotFound_tiles__Nxd8Z" viewBox="0 0 682 80" xmlns="http://www.w3.org/2000/svg"><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#f7c2aa" height="80" rx="12" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">H</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" rx="12" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#c7d8f9" height="80" rx="12" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">P</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">4</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 556, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">0</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" rx="12" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">4</text></g></svg></a></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"9oRWxnZ1xFLSs55FJtiYi","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"version":1,"files":["../webpack-runtime.js","../chunks/636.js","../chunks/675.js","../chunks/277.js","../../package.json","../../../node_modules/classnames/package.json","../../../node_modules/include-media-query-builder/package.json","../../../node_modules/react-modal/package.json","../../../node_modules/react-portal/package.json","../../../node_modules/react-redux/package.json","../../../node_modules/react-window/package.json","../../../node_modules/store2/package.json","../../../node_modules/@reduxjs/toolkit/package.json","../../../node_modules/next/dist/shared/lib/amp-context.js","../../../node_modules/next/dist/shared/lib/amp-mode.js","../../../node_modules/next/dist/shared/lib/head-manager-context.js","../../../node_modules/next/dist/shared/lib/image-blur-svg.js","../../../node_modules/next/dist/shared/lib/image-config-context.js","../../../node_modules/next/dist/shared/lib/image-config.js","../../../node_modules/next/dist/shared/lib/side-effect.js","../../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../../node_modules/classnames/index.js","../../../node_modules/include-media-query-builder/build/index.js","../../../node_modules/react-modal/lib/index.js","../../../node_modules/react-portal/lib/index.js","../../../node_modules/react-redux/lib/index.js","../../../node_modules/react-window/dist/index.cjs.js","../../../node_modules/store2/dist/store2.js","../../../node_modules/@reduxjs/toolkit/dist/index.js","../../../node_modules/next/dist/shared/lib/image-loader.js","../../../node_modules/next/package.json","../../../node_modules/react/package.json","../../../node_modules/react/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/client.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/redux-saga/package.json","../../../node_modules/redux-saga/import-condition-proxy.mjs","../../../node_modules/redux-saga/dist/redux-saga-core-npm-proxy.cjs.js","../../../node_modules/@floating-ui/react/package.json","../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../../../node_modules/@floating-ui/react/dist/floating-ui.react.umd.js","../../../node_modules/react-dom/server.node.js","../../../node_modules/react-dom/server.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/redux-saga/effects/package.json","../../../node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.cjs.js","../../../node_modules/@swc/helpers/lib/_interop_require_default.js","../../../node_modules/@swc/helpers/lib/_interop_require_wildcard.js","../../../node_modules/@swc/helpers/package.json","../../../node_modules/include-media-query-builder/build/buildParsedQuery.js","../../../node_modules/include-media-query-builder/build/buildMediaQuery.js","../../../node_modules/include-media-query-builder/build/constants.js","../../../node_modules/include-media-query-builder/build/isOperator.js","../../../node_modules/include-media-query-builder/build/isSize.js","../../../node_modules/include-media-query-builder/build/types.js","../../../node_modules/react-redux/lib/exports.js","../../../node_modules/react-portal/lib/PortalCompat.js","../../../node_modules/react-portal/lib/PortalWithState.js","../../../node_modules/react-redux/lib/utils/reactBatchedUpdates.js","../../../node_modules/react-redux/lib/utils/batch.js","../../../node_modules/react-redux/lib/components/connect.js","../../../node_modules/react-redux/lib/hooks/useSelector.js","../../../node_modules/react-modal/lib/components/Modal.js","../../../node_modules/next/dist/shared/lib/match-remote-pattern.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js","../../../node_modules/react-dom/cjs/react-dom-server.node.development.js","../../../node_modules/react-dom/index.js","../../../node_modules/include-media-query-builder/build/parseQuery.js","../../../node_modules/react-redux/lib/components/Provider.js","../../../node_modules/react-redux/lib/components/Context.js","../../../node_modules/react-redux/lib/hooks/useDispatch.js","../../../node_modules/react-redux/lib/hooks/useStore.js","../../../node_modules/react-redux/lib/utils/shallowEqual.js","../../../node_modules/react-redux/lib/types.js","../../../node_modules/react-portal/lib/Portal.js","../../../node_modules/react-portal/lib/LegacyPortal.js","../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-redux/lib/utils/Subscription.js","../../../node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js","../../../node_modules/react-redux/lib/utils/warning.js","../../../node_modules/react-redux/lib/utils/useSyncExternalStore.js","../../../node_modules/react-redux/lib/hooks/useReduxContext.js","../../../node_modules/react-modal/lib/components/ModalPortal.js","../../../node_modules/@babel/runtime/package.json","../../../node_modules/@babel/runtime/helpers/extends.js","../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/react-redux/lib/connect/selectorFactory.js","../../../node_modules/react-redux/lib/connect/mapStateToProps.js","../../../node_modules/react-redux/lib/connect/mergeProps.js","../../../node_modules/react-redux/lib/connect/mapDispatchToProps.js","../../../node_modules/react-modal/lib/helpers/ariaAppHider.js","../../../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../../node_modules/memoize-one/package.json","../../../node_modules/memoize-one/dist/memoize-one.cjs.js","../../../node_modules/@floating-ui/react-dom/package.json","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js","../../../node_modules/tabbable/package.json","../../../node_modules/tabbable/dist/index.js","../../../node_modules/@redux-saga/core/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-core.cjs.js","../../../node_modules/aria-hidden/package.json","../../../node_modules/aria-hidden/dist/es5/index.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../node_modules/react-portal/lib/utils.js","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@redux-saga/core/effects/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.cjs.js","../../../node_modules/next/dist/compiled/micromatch/package.json","../../../node_modules/next/dist/compiled/micromatch/index.js","../../../node_modules/use-sync-external-store/package.json","../../../node_modules/prop-types/package.json","../../../node_modules/prop-types/index.js","../../../node_modules/react-modal/lib/helpers/scopeTab.js","../../../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../../../node_modules/react-modal/lib/helpers/bodyTrap.js","../../../node_modules/react-modal/lib/helpers/classList.js","../../../node_modules/react-modal/lib/helpers/focusManager.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/immer/package.json","../../../node_modules/immer/dist/index.js","../../../node_modules/redux/package.json","../../../node_modules/redux/lib/redux.js","../../../node_modules/reselect/package.json","../../../node_modules/reselect/lib/index.js","../../../node_modules/redux-thunk/package.json","../../../node_modules/redux-thunk/lib/index.js","../../../node_modules/react-redux/node_modules/react-is/package.json","../../../node_modules/react-redux/node_modules/react-is/index.js","../../../node_modules/react-redux/lib/utils/verifyPlainObject.js","../../../node_modules/react-redux/lib/connect/invalidArgFactory.js","../../../node_modules/react-redux/lib/connect/verifySubselectors.js","../../../node_modules/react-redux/lib/connect/wrapMapToProps.js","../../../node_modules/react-redux/lib/utils/bindActionCreators.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/react-lifecycles-compat/package.json","../../../node_modules/react-lifecycles-compat/react-lifecycles-compat.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.dev.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.dev.cjs.js","../../../node_modules/scheduler/package.json","../../../node_modules/scheduler/index.js","../../../node_modules/hoist-non-react-statics/package.json","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","../../../node_modules/react-modal/lib/helpers/tabbable.js","../../../node_modules/immer/dist/immer.cjs.production.min.js","../../../node_modules/immer/dist/immer.cjs.development.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/react-redux/lib/utils/isPlainObject.js","../../../node_modules/@redux-saga/core/dist/io-d39dbb58.js","../../../node_modules/@redux-saga/core/dist/io-a03c6210.js","../../../node_modules/reselect/lib/defaultMemoize.js","../../../node_modules/warning/package.json","../../../node_modules/warning/warning.js","../../../node_modules/exenv/package.json","../../../node_modules/exenv/index.js","../../../node_modules/@babel/runtime/helpers/objectSpread2.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/cjs/scheduler.development.js","../../../node_modules/@floating-ui/dom/package.json","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/react-is/package.json","../../../node_modules/react-is/index.js","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@babel/runtime/helpers/defineProperty.js","../../../node_modules/@redux-saga/symbols/package.json","../../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.cjs.js","../../../node_modules/@redux-saga/is/package.json","../../../node_modules/@redux-saga/is/dist/redux-saga-is.cjs.js","../../../node_modules/@redux-saga/delay-p/package.json","../../../node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.cjs.js","../../../node_modules/@redux-saga/deferred/package.json","../../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.cjs.js","../../../node_modules/@babel/runtime/helpers/toPropertyKey.js","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/cjs/react-is.development.js","../../../node_modules/object-assign/index.js","../../../node_modules/object-assign/package.json","../../../node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/@babel/runtime/helpers/toPrimitive.js","../../../node_modules/@floating-ui/core/package.json","../../../node_modules/@floating-ui/core/dist/floating-ui.core.umd.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../package.json","../../../src/i18n/de.json","../../../src/i18n/en.json","../../../src/i18n/es.json","../../../src/i18n/fa.json","../../../src/i18n/fr.json","../../../src/i18n/pl.json"]}
1
+ {"version":1,"files":["../webpack-runtime.js","../chunks/636.js","../chunks/675.js","../chunks/277.js","../../package.json","../../../node_modules/classnames/package.json","../../../node_modules/include-media-query-builder/package.json","../../../node_modules/react-cool-onclickoutside/package.json","../../../node_modules/react-modal/package.json","../../../node_modules/react-portal/package.json","../../../node_modules/react-redux/package.json","../../../node_modules/react-window/package.json","../../../node_modules/store2/package.json","../../../node_modules/@reduxjs/toolkit/package.json","../../../node_modules/next/dist/shared/lib/amp-context.js","../../../node_modules/next/dist/shared/lib/amp-mode.js","../../../node_modules/next/dist/shared/lib/head-manager-context.js","../../../node_modules/next/dist/shared/lib/image-blur-svg.js","../../../node_modules/next/dist/shared/lib/image-config-context.js","../../../node_modules/next/dist/shared/lib/image-config.js","../../../node_modules/next/dist/shared/lib/side-effect.js","../../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../../node_modules/classnames/index.js","../../../node_modules/include-media-query-builder/build/index.js","../../../node_modules/react-cool-onclickoutside/dist/index.js","../../../node_modules/react-modal/lib/index.js","../../../node_modules/react-portal/lib/index.js","../../../node_modules/react-redux/lib/index.js","../../../node_modules/react-window/dist/index.cjs.js","../../../node_modules/store2/dist/store2.js","../../../node_modules/@reduxjs/toolkit/dist/index.js","../../../node_modules/next/dist/shared/lib/image-loader.js","../../../node_modules/next/package.json","../../../node_modules/react/package.json","../../../node_modules/react/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/client.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/redux-saga/package.json","../../../node_modules/redux-saga/import-condition-proxy.mjs","../../../node_modules/redux-saga/dist/redux-saga-core-npm-proxy.cjs.js","../../../node_modules/@floating-ui/react/package.json","../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../../../node_modules/@floating-ui/react/dist/floating-ui.react.umd.js","../../../node_modules/react-dom/server.node.js","../../../node_modules/react-dom/server.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js","../../../node_modules/redux-saga/effects/package.json","../../../node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.cjs.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/@swc/helpers/lib/_interop_require_default.js","../../../node_modules/@swc/helpers/lib/_interop_require_wildcard.js","../../../node_modules/@swc/helpers/package.json","../../../node_modules/include-media-query-builder/build/buildMediaQuery.js","../../../node_modules/include-media-query-builder/build/buildParsedQuery.js","../../../node_modules/include-media-query-builder/build/constants.js","../../../node_modules/include-media-query-builder/build/isSize.js","../../../node_modules/include-media-query-builder/build/isOperator.js","../../../node_modules/include-media-query-builder/build/types.js","../../../node_modules/react-redux/lib/exports.js","../../../node_modules/react-portal/lib/PortalCompat.js","../../../node_modules/react-portal/lib/PortalWithState.js","../../../node_modules/react-redux/lib/utils/batch.js","../../../node_modules/react-redux/lib/utils/reactBatchedUpdates.js","../../../node_modules/react-redux/lib/hooks/useSelector.js","../../../node_modules/react-redux/lib/components/connect.js","../../../node_modules/react-modal/lib/components/Modal.js","../../../node_modules/next/dist/shared/lib/match-remote-pattern.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js","../../../node_modules/react-dom/cjs/react-dom-server.node.development.js","../../../node_modules/react-dom/index.js","../../../node_modules/include-media-query-builder/build/parseQuery.js","../../../node_modules/react-redux/lib/components/Provider.js","../../../node_modules/react-redux/lib/hooks/useDispatch.js","../../../node_modules/react-redux/lib/hooks/useStore.js","../../../node_modules/react-redux/lib/components/Context.js","../../../node_modules/react-redux/lib/utils/shallowEqual.js","../../../node_modules/react-redux/lib/types.js","../../../node_modules/react-portal/lib/Portal.js","../../../node_modules/react-portal/lib/LegacyPortal.js","../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-redux/lib/hooks/useReduxContext.js","../../../node_modules/react-redux/lib/utils/useSyncExternalStore.js","../../../node_modules/react-redux/lib/utils/Subscription.js","../../../node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js","../../../node_modules/react-redux/lib/utils/warning.js","../../../node_modules/react-modal/lib/components/ModalPortal.js","../../../node_modules/@babel/runtime/package.json","../../../node_modules/@babel/runtime/helpers/extends.js","../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../node_modules/react-redux/lib/connect/selectorFactory.js","../../../node_modules/react-redux/lib/connect/mapStateToProps.js","../../../node_modules/react-redux/lib/connect/mapDispatchToProps.js","../../../node_modules/react-redux/lib/connect/mergeProps.js","../../../node_modules/react-modal/lib/helpers/ariaAppHider.js","../../../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../../node_modules/memoize-one/package.json","../../../node_modules/memoize-one/dist/memoize-one.cjs.js","../../../node_modules/@floating-ui/react-dom/package.json","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js","../../../node_modules/tabbable/package.json","../../../node_modules/tabbable/dist/index.js","../../../node_modules/@redux-saga/core/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-core.cjs.js","../../../node_modules/aria-hidden/package.json","../../../node_modules/aria-hidden/dist/es5/index.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../node_modules/react-portal/lib/utils.js","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@redux-saga/core/effects/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.cjs.js","../../../node_modules/next/dist/compiled/micromatch/package.json","../../../node_modules/next/dist/compiled/micromatch/index.js","../../../node_modules/use-sync-external-store/package.json","../../../node_modules/react-modal/lib/helpers/focusManager.js","../../../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../../../node_modules/react-modal/lib/helpers/scopeTab.js","../../../node_modules/react-modal/lib/helpers/bodyTrap.js","../../../node_modules/react-modal/lib/helpers/classList.js","../../../node_modules/prop-types/package.json","../../../node_modules/prop-types/index.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/immer/package.json","../../../node_modules/immer/dist/index.js","../../../node_modules/redux/package.json","../../../node_modules/redux/lib/redux.js","../../../node_modules/redux-thunk/package.json","../../../node_modules/redux-thunk/lib/index.js","../../../node_modules/reselect/package.json","../../../node_modules/reselect/lib/index.js","../../../node_modules/react-redux/node_modules/react-is/package.json","../../../node_modules/react-redux/node_modules/react-is/index.js","../../../node_modules/react-redux/lib/connect/invalidArgFactory.js","../../../node_modules/react-redux/lib/connect/wrapMapToProps.js","../../../node_modules/react-redux/lib/connect/verifySubselectors.js","../../../node_modules/react-redux/lib/utils/verifyPlainObject.js","../../../node_modules/react-redux/lib/utils/bindActionCreators.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/react-lifecycles-compat/package.json","../../../node_modules/react-lifecycles-compat/react-lifecycles-compat.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.dev.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.dev.cjs.js","../../../node_modules/scheduler/package.json","../../../node_modules/scheduler/index.js","../../../node_modules/hoist-non-react-statics/package.json","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","../../../node_modules/react-modal/lib/helpers/tabbable.js","../../../node_modules/immer/dist/immer.cjs.production.min.js","../../../node_modules/immer/dist/immer.cjs.development.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/react-redux/lib/utils/isPlainObject.js","../../../node_modules/@redux-saga/core/dist/io-d39dbb58.js","../../../node_modules/@redux-saga/core/dist/io-a03c6210.js","../../../node_modules/reselect/lib/defaultMemoize.js","../../../node_modules/warning/package.json","../../../node_modules/warning/warning.js","../../../node_modules/exenv/package.json","../../../node_modules/exenv/index.js","../../../node_modules/@babel/runtime/helpers/objectSpread2.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/cjs/scheduler.development.js","../../../node_modules/@floating-ui/dom/package.json","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/react-is/package.json","../../../node_modules/react-is/index.js","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@babel/runtime/helpers/defineProperty.js","../../../node_modules/@redux-saga/symbols/package.json","../../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.cjs.js","../../../node_modules/@redux-saga/is/package.json","../../../node_modules/@redux-saga/is/dist/redux-saga-is.cjs.js","../../../node_modules/@redux-saga/deferred/package.json","../../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.cjs.js","../../../node_modules/@redux-saga/delay-p/package.json","../../../node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.cjs.js","../../../node_modules/@babel/runtime/helpers/toPropertyKey.js","../../../node_modules/object-assign/index.js","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/cjs/react-is.development.js","../../../node_modules/object-assign/package.json","../../../node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/@babel/runtime/helpers/toPrimitive.js","../../../node_modules/@floating-ui/core/package.json","../../../node_modules/@floating-ui/core/dist/floating-ui.core.umd.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../package.json","../../../src/i18n/de.json","../../../src/i18n/en.json","../../../src/i18n/es.json","../../../src/i18n/fa.json","../../../src/i18n/fr.json","../../../src/i18n/pl.json"]}
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><title>500: Internal Server Error</title><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/edaeaa48321b4cf2.css" as="style"/><link rel="stylesheet" href="/_next/static/css/edaeaa48321b4cf2.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c5cac93e8c637b5.js" defer=""></script><script src="/_next/static/chunks/main-0ecb9ccfcb6c9b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-e89a3c225b87516a.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54de1933a164a1ff.js" defer=""></script><script src="/_next/static/uhB6d-q63uRC6RubwepLq/_buildManifest.js" defer=""></script><script src="/_next/static/uhB6d-q63uRC6RubwepLq/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">500</h1><div style="display:inline-block;text-align:left"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"uhB6d-q63uRC6RubwepLq","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><title>500: Internal Server Error</title><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/fcc46fec97b11afc.css" as="style"/><link rel="stylesheet" href="/_next/static/css/fcc46fec97b11afc.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c5cac93e8c637b5.js" defer=""></script><script src="/_next/static/chunks/main-0ecb9ccfcb6c9b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b0231bed954dd413.js" defer=""></script><script src="/_next/static/chunks/pages/_error-54de1933a164a1ff.js" defer=""></script><script src="/_next/static/9oRWxnZ1xFLSs55FJtiYi/_buildManifest.js" defer=""></script><script src="/_next/static/9oRWxnZ1xFLSs55FJtiYi/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">500</h1><div style="display:inline-block;text-align:left"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"9oRWxnZ1xFLSs55FJtiYi","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -261,6 +261,14 @@ module.exports = require("react");
261
261
 
262
262
  /***/ }),
263
263
 
264
+ /***/ 54620:
265
+ /***/ ((module) => {
266
+
267
+ "use strict";
268
+ module.exports = require("react-cool-onclickoutside");
269
+
270
+ /***/ }),
271
+
264
272
  /***/ 7849:
265
273
  /***/ ((module) => {
266
274
 
@@ -1 +1 @@
1
- {"version":1,"files":["../webpack-runtime.js","../chunks/636.js","../chunks/675.js","../chunks/277.js","../../package.json","../../../node_modules/classnames/package.json","../../../node_modules/include-media-query-builder/package.json","../../../node_modules/react-modal/package.json","../../../node_modules/react-portal/package.json","../../../node_modules/react-redux/package.json","../../../node_modules/react-window/package.json","../../../node_modules/store2/package.json","../../../node_modules/@reduxjs/toolkit/package.json","../../../node_modules/next/dist/shared/lib/amp-context.js","../../../node_modules/next/dist/shared/lib/amp-mode.js","../../../node_modules/next/dist/shared/lib/head-manager-context.js","../../../node_modules/next/dist/shared/lib/image-blur-svg.js","../../../node_modules/next/dist/shared/lib/image-config-context.js","../../../node_modules/next/dist/shared/lib/image-config.js","../../../node_modules/next/dist/shared/lib/side-effect.js","../../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../../node_modules/classnames/index.js","../../../node_modules/include-media-query-builder/build/index.js","../../../node_modules/react-modal/lib/index.js","../../../node_modules/react-portal/lib/index.js","../../../node_modules/react-redux/lib/index.js","../../../node_modules/react-window/dist/index.cjs.js","../../../node_modules/store2/dist/store2.js","../../../node_modules/@reduxjs/toolkit/dist/index.js","../../../node_modules/next/dist/shared/lib/image-loader.js","../../../node_modules/next/head.js","../../../node_modules/next/package.json","../../../node_modules/react/package.json","../../../node_modules/react/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/client.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/redux-saga/package.json","../../../node_modules/redux-saga/import-condition-proxy.mjs","../../../node_modules/redux-saga/dist/redux-saga-core-npm-proxy.cjs.js","../../../node_modules/@floating-ui/react/package.json","../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../../../node_modules/@floating-ui/react/dist/floating-ui.react.umd.js","../../../node_modules/react-dom/server.node.js","../../../node_modules/react-dom/server.js","../../../node_modules/next/dist/shared/lib/head.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/redux-saga/effects/package.json","../../../node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.cjs.js","../../../node_modules/@swc/helpers/lib/_interop_require_default.js","../../../node_modules/@swc/helpers/lib/_interop_require_wildcard.js","../../../node_modules/@swc/helpers/package.json","../../../node_modules/include-media-query-builder/build/buildParsedQuery.js","../../../node_modules/include-media-query-builder/build/buildMediaQuery.js","../../../node_modules/include-media-query-builder/build/constants.js","../../../node_modules/include-media-query-builder/build/isOperator.js","../../../node_modules/include-media-query-builder/build/isSize.js","../../../node_modules/include-media-query-builder/build/types.js","../../../node_modules/react-redux/lib/exports.js","../../../node_modules/react-portal/lib/PortalCompat.js","../../../node_modules/react-portal/lib/PortalWithState.js","../../../node_modules/react-redux/lib/utils/reactBatchedUpdates.js","../../../node_modules/react-redux/lib/utils/batch.js","../../../node_modules/react-redux/lib/components/connect.js","../../../node_modules/react-redux/lib/hooks/useSelector.js","../../../node_modules/react-modal/lib/components/Modal.js","../../../node_modules/@swc/helpers/lib/_extends.js","../../../node_modules/next/dist/shared/lib/match-remote-pattern.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js","../../../node_modules/react-dom/cjs/react-dom-server.node.development.js","../../../node_modules/react-dom/index.js","../../../node_modules/include-media-query-builder/build/parseQuery.js","../../../node_modules/react-redux/lib/components/Provider.js","../../../node_modules/react-redux/lib/components/Context.js","../../../node_modules/react-redux/lib/hooks/useDispatch.js","../../../node_modules/react-redux/lib/hooks/useStore.js","../../../node_modules/react-redux/lib/utils/shallowEqual.js","../../../node_modules/react-redux/lib/types.js","../../../node_modules/react-portal/lib/Portal.js","../../../node_modules/react-portal/lib/LegacyPortal.js","../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-redux/lib/utils/Subscription.js","../../../node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js","../../../node_modules/react-redux/lib/utils/warning.js","../../../node_modules/react-redux/lib/utils/useSyncExternalStore.js","../../../node_modules/react-redux/lib/hooks/useReduxContext.js","../../../node_modules/react-modal/lib/components/ModalPortal.js","../../../node_modules/@babel/runtime/package.json","../../../node_modules/@babel/runtime/helpers/extends.js","../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/react-redux/lib/connect/selectorFactory.js","../../../node_modules/react-redux/lib/connect/mapStateToProps.js","../../../node_modules/react-redux/lib/connect/mergeProps.js","../../../node_modules/react-redux/lib/connect/mapDispatchToProps.js","../../../node_modules/react-modal/lib/helpers/ariaAppHider.js","../../../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../../node_modules/memoize-one/package.json","../../../node_modules/memoize-one/dist/memoize-one.cjs.js","../../../node_modules/@floating-ui/react-dom/package.json","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js","../../../node_modules/tabbable/package.json","../../../node_modules/tabbable/dist/index.js","../../../node_modules/@redux-saga/core/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-core.cjs.js","../../../node_modules/aria-hidden/package.json","../../../node_modules/aria-hidden/dist/es5/index.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../node_modules/react-portal/lib/utils.js","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@redux-saga/core/effects/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.cjs.js","../../../node_modules/next/dist/compiled/micromatch/package.json","../../../node_modules/next/dist/compiled/micromatch/index.js","../../../node_modules/use-sync-external-store/package.json","../../../node_modules/prop-types/package.json","../../../node_modules/prop-types/index.js","../../../node_modules/react-modal/lib/helpers/scopeTab.js","../../../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../../../node_modules/react-modal/lib/helpers/bodyTrap.js","../../../node_modules/react-modal/lib/helpers/classList.js","../../../node_modules/react-modal/lib/helpers/focusManager.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/immer/package.json","../../../node_modules/immer/dist/index.js","../../../node_modules/redux/package.json","../../../node_modules/redux/lib/redux.js","../../../node_modules/reselect/package.json","../../../node_modules/reselect/lib/index.js","../../../node_modules/redux-thunk/package.json","../../../node_modules/redux-thunk/lib/index.js","../../../node_modules/react-redux/node_modules/react-is/package.json","../../../node_modules/react-redux/node_modules/react-is/index.js","../../../node_modules/react-redux/lib/utils/verifyPlainObject.js","../../../node_modules/react-redux/lib/connect/invalidArgFactory.js","../../../node_modules/react-redux/lib/connect/verifySubselectors.js","../../../node_modules/react-redux/lib/connect/wrapMapToProps.js","../../../node_modules/react-redux/lib/utils/bindActionCreators.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/react-lifecycles-compat/package.json","../../../node_modules/react-lifecycles-compat/react-lifecycles-compat.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.dev.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.dev.cjs.js","../../../node_modules/scheduler/package.json","../../../node_modules/scheduler/index.js","../../../node_modules/hoist-non-react-statics/package.json","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","../../../node_modules/react-modal/lib/helpers/tabbable.js","../../../node_modules/immer/dist/immer.cjs.production.min.js","../../../node_modules/immer/dist/immer.cjs.development.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/react-redux/lib/utils/isPlainObject.js","../../../node_modules/@redux-saga/core/dist/io-d39dbb58.js","../../../node_modules/@redux-saga/core/dist/io-a03c6210.js","../../../node_modules/reselect/lib/defaultMemoize.js","../../../node_modules/warning/package.json","../../../node_modules/warning/warning.js","../../../node_modules/exenv/package.json","../../../node_modules/exenv/index.js","../../../node_modules/@babel/runtime/helpers/objectSpread2.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/cjs/scheduler.development.js","../../../node_modules/@floating-ui/dom/package.json","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/react-is/package.json","../../../node_modules/react-is/index.js","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@babel/runtime/helpers/defineProperty.js","../../../node_modules/@redux-saga/symbols/package.json","../../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.cjs.js","../../../node_modules/@redux-saga/is/package.json","../../../node_modules/@redux-saga/is/dist/redux-saga-is.cjs.js","../../../node_modules/@redux-saga/delay-p/package.json","../../../node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.cjs.js","../../../node_modules/@redux-saga/deferred/package.json","../../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.cjs.js","../../../node_modules/@babel/runtime/helpers/toPropertyKey.js","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/cjs/react-is.development.js","../../../node_modules/object-assign/index.js","../../../node_modules/object-assign/package.json","../../../node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/@babel/runtime/helpers/toPrimitive.js","../../../node_modules/@floating-ui/core/package.json","../../../node_modules/@floating-ui/core/dist/floating-ui.core.umd.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../package.json","../../../src/i18n/de.json","../../../src/i18n/en.json","../../../src/i18n/es.json","../../../src/i18n/fa.json","../../../src/i18n/fr.json","../../../src/i18n/pl.json"]}
1
+ {"version":1,"files":["../webpack-runtime.js","../chunks/636.js","../chunks/675.js","../chunks/277.js","../../package.json","../../../node_modules/classnames/package.json","../../../node_modules/include-media-query-builder/package.json","../../../node_modules/react-cool-onclickoutside/package.json","../../../node_modules/react-modal/package.json","../../../node_modules/react-portal/package.json","../../../node_modules/react-redux/package.json","../../../node_modules/react-window/package.json","../../../node_modules/store2/package.json","../../../node_modules/@reduxjs/toolkit/package.json","../../../node_modules/next/dist/shared/lib/amp-context.js","../../../node_modules/next/dist/shared/lib/amp-mode.js","../../../node_modules/next/dist/shared/lib/head-manager-context.js","../../../node_modules/next/dist/shared/lib/image-blur-svg.js","../../../node_modules/next/dist/shared/lib/image-config-context.js","../../../node_modules/next/dist/shared/lib/image-config.js","../../../node_modules/next/dist/shared/lib/side-effect.js","../../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../../node_modules/classnames/index.js","../../../node_modules/include-media-query-builder/build/index.js","../../../node_modules/react-cool-onclickoutside/dist/index.js","../../../node_modules/react-modal/lib/index.js","../../../node_modules/react-portal/lib/index.js","../../../node_modules/react-redux/lib/index.js","../../../node_modules/react-window/dist/index.cjs.js","../../../node_modules/store2/dist/store2.js","../../../node_modules/@reduxjs/toolkit/dist/index.js","../../../node_modules/next/dist/shared/lib/image-loader.js","../../../node_modules/next/head.js","../../../node_modules/next/package.json","../../../node_modules/react/package.json","../../../node_modules/react/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/client.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/redux-saga/package.json","../../../node_modules/redux-saga/import-condition-proxy.mjs","../../../node_modules/redux-saga/dist/redux-saga-core-npm-proxy.cjs.js","../../../node_modules/@floating-ui/react/package.json","../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../../../node_modules/@floating-ui/react/dist/floating-ui.react.umd.js","../../../node_modules/react-dom/server.node.js","../../../node_modules/react-dom/server.js","../../../node_modules/next/dist/shared/lib/head.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js","../../../node_modules/redux-saga/effects/package.json","../../../node_modules/redux-saga/dist/redux-saga-effects-npm-proxy.cjs.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/@swc/helpers/lib/_interop_require_default.js","../../../node_modules/@swc/helpers/lib/_interop_require_wildcard.js","../../../node_modules/@swc/helpers/package.json","../../../node_modules/include-media-query-builder/build/buildMediaQuery.js","../../../node_modules/include-media-query-builder/build/buildParsedQuery.js","../../../node_modules/include-media-query-builder/build/constants.js","../../../node_modules/include-media-query-builder/build/isSize.js","../../../node_modules/include-media-query-builder/build/isOperator.js","../../../node_modules/include-media-query-builder/build/types.js","../../../node_modules/react-redux/lib/exports.js","../../../node_modules/react-portal/lib/PortalCompat.js","../../../node_modules/react-portal/lib/PortalWithState.js","../../../node_modules/react-redux/lib/utils/batch.js","../../../node_modules/react-redux/lib/utils/reactBatchedUpdates.js","../../../node_modules/react-redux/lib/hooks/useSelector.js","../../../node_modules/react-redux/lib/components/connect.js","../../../node_modules/react-modal/lib/components/Modal.js","../../../node_modules/@swc/helpers/lib/_extends.js","../../../node_modules/next/dist/shared/lib/match-remote-pattern.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.node.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js","../../../node_modules/react-dom/cjs/react-dom-server.node.development.js","../../../node_modules/react-dom/index.js","../../../node_modules/include-media-query-builder/build/parseQuery.js","../../../node_modules/react-redux/lib/components/Provider.js","../../../node_modules/react-redux/lib/hooks/useDispatch.js","../../../node_modules/react-redux/lib/hooks/useStore.js","../../../node_modules/react-redux/lib/components/Context.js","../../../node_modules/react-redux/lib/utils/shallowEqual.js","../../../node_modules/react-redux/lib/types.js","../../../node_modules/react-portal/lib/Portal.js","../../../node_modules/react-portal/lib/LegacyPortal.js","../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-redux/lib/hooks/useReduxContext.js","../../../node_modules/react-redux/lib/utils/useSyncExternalStore.js","../../../node_modules/react-redux/lib/utils/Subscription.js","../../../node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js","../../../node_modules/react-redux/lib/utils/warning.js","../../../node_modules/react-modal/lib/components/ModalPortal.js","../../../node_modules/@babel/runtime/package.json","../../../node_modules/@babel/runtime/helpers/extends.js","../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../node_modules/react-redux/lib/connect/selectorFactory.js","../../../node_modules/react-redux/lib/connect/mapStateToProps.js","../../../node_modules/react-redux/lib/connect/mapDispatchToProps.js","../../../node_modules/react-redux/lib/connect/mergeProps.js","../../../node_modules/react-modal/lib/helpers/ariaAppHider.js","../../../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../../node_modules/memoize-one/package.json","../../../node_modules/memoize-one/dist/memoize-one.cjs.js","../../../node_modules/@floating-ui/react-dom/package.json","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js","../../../node_modules/tabbable/package.json","../../../node_modules/tabbable/dist/index.js","../../../node_modules/@redux-saga/core/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-core.cjs.js","../../../node_modules/aria-hidden/package.json","../../../node_modules/aria-hidden/dist/es5/index.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../node_modules/react-portal/lib/utils.js","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@redux-saga/core/effects/package.json","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.cjs.js","../../../node_modules/next/dist/compiled/micromatch/package.json","../../../node_modules/next/dist/compiled/micromatch/index.js","../../../node_modules/use-sync-external-store/package.json","../../../node_modules/react-modal/lib/helpers/focusManager.js","../../../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../../../node_modules/react-modal/lib/helpers/scopeTab.js","../../../node_modules/react-modal/lib/helpers/bodyTrap.js","../../../node_modules/react-modal/lib/helpers/classList.js","../../../node_modules/prop-types/package.json","../../../node_modules/prop-types/index.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/immer/package.json","../../../node_modules/immer/dist/index.js","../../../node_modules/redux/package.json","../../../node_modules/redux/lib/redux.js","../../../node_modules/redux-thunk/package.json","../../../node_modules/redux-thunk/lib/index.js","../../../node_modules/reselect/package.json","../../../node_modules/reselect/lib/index.js","../../../node_modules/react-redux/node_modules/react-is/package.json","../../../node_modules/react-redux/node_modules/react-is/index.js","../../../node_modules/react-redux/lib/connect/invalidArgFactory.js","../../../node_modules/react-redux/lib/connect/wrapMapToProps.js","../../../node_modules/react-redux/lib/connect/verifySubselectors.js","../../../node_modules/react-redux/lib/utils/verifyPlainObject.js","../../../node_modules/react-redux/lib/utils/bindActionCreators.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/react-lifecycles-compat/package.json","../../../node_modules/react-lifecycles-compat/react-lifecycles-compat.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.dev.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.prod.cjs.js","../../../node_modules/@redux-saga/core/dist/redux-saga-effects.dev.cjs.js","../../../node_modules/scheduler/package.json","../../../node_modules/scheduler/index.js","../../../node_modules/hoist-non-react-statics/package.json","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","../../../node_modules/react-modal/lib/helpers/tabbable.js","../../../node_modules/immer/dist/immer.cjs.production.min.js","../../../node_modules/immer/dist/immer.cjs.development.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/react-redux/lib/utils/isPlainObject.js","../../../node_modules/@redux-saga/core/dist/io-d39dbb58.js","../../../node_modules/@redux-saga/core/dist/io-a03c6210.js","../../../node_modules/reselect/lib/defaultMemoize.js","../../../node_modules/warning/package.json","../../../node_modules/warning/warning.js","../../../node_modules/exenv/package.json","../../../node_modules/exenv/index.js","../../../node_modules/@babel/runtime/helpers/objectSpread2.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/cjs/scheduler.development.js","../../../node_modules/@floating-ui/dom/package.json","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/react-is/package.json","../../../node_modules/react-is/index.js","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@babel/runtime/helpers/defineProperty.js","../../../node_modules/@redux-saga/symbols/package.json","../../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.cjs.js","../../../node_modules/@redux-saga/is/package.json","../../../node_modules/@redux-saga/is/dist/redux-saga-is.cjs.js","../../../node_modules/@redux-saga/deferred/package.json","../../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.cjs.js","../../../node_modules/@redux-saga/delay-p/package.json","../../../node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.cjs.js","../../../node_modules/@babel/runtime/helpers/toPropertyKey.js","../../../node_modules/object-assign/index.js","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/cjs/react-is.development.js","../../../node_modules/object-assign/package.json","../../../node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/@babel/runtime/helpers/toPrimitive.js","../../../node_modules/@floating-ui/core/package.json","../../../node_modules/@floating-ui/core/dist/floating-ui.core.umd.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../package.json","../../../src/i18n/de.json","../../../src/i18n/en.json","../../../src/i18n/es.json","../../../src/i18n/fa.json","../../../src/i18n/fr.json","../../../src/i18n/pl.json"]}
@@ -117,7 +117,7 @@ module.exports = require("zlib");
117
117
 
118
118
  /***/ }),
119
119
 
120
- /***/ 72066:
120
+ /***/ 33478:
121
121
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
122
122
 
123
123
  // ESM COMPAT FLAG
@@ -174,23 +174,52 @@ const detectLocale = ()=>{
174
174
  ;// CONCATENATED MODULE: ./src/lib/extractCharacters.ts
175
175
 
176
176
  const extractCharacters = (config, value)=>{
177
+ let index = 0;
178
+ const characters = [];
179
+ const valueLowercase = value.toLocaleLowerCase(config.locale);
180
+ while(index < valueLowercase.length){
181
+ const character = valueLowercase[index];
182
+ const nextCharacter = valueLowercase[index + 1];
183
+ const digraph = `${character}${nextCharacter}`;
184
+ if (config.twoCharacterTiles.includes(digraph)) {
185
+ characters.push(digraph);
186
+ index += digraph.length;
187
+ } else if (config.hasCharacter(character) || character === BLANK) {
188
+ characters.push(character);
189
+ ++index;
190
+ } else {
191
+ ++index;
192
+ }
193
+ }
194
+ return characters;
195
+ };
196
+ /* harmony default export */ const lib_extractCharacters = ((/* unused pure expression or super */ null && (extractCharacters)));
197
+
198
+ ;// CONCATENATED MODULE: ./src/lib/extractCharactersByCase.ts
199
+
200
+
201
+ const extractCharactersByCase = (config, value)=>{
177
202
  let index = 0;
178
203
  const characters = [];
179
204
  while(index < value.length){
180
205
  const character = value[index];
206
+ const characterLowercase = value[index].toLocaleLowerCase(config.locale);
181
207
  const nextCharacter = value[index + 1];
182
- const twoCharacterTileCandidate = `${character}${nextCharacter}`;
183
- if (config.twoCharacterTiles.includes(twoCharacterTileCandidate)) {
184
- characters.push(twoCharacterTileCandidate);
208
+ const digraph = `${character}${nextCharacter}`;
209
+ const digraphLowercase = digraph.toLocaleLowerCase(config.locale);
210
+ if (isUpperCase(config.locale, digraph) && config.twoCharacterTiles.includes(digraphLowercase)) {
211
+ characters.push(digraphLowercase);
212
+ index += digraphLowercase.length;
213
+ } else if (config.hasCharacter(characterLowercase) || characterLowercase === BLANK) {
214
+ characters.push(characterLowercase);
215
+ ++index;
216
+ } else {
185
217
  ++index;
186
- } else if (config.hasCharacter(character) || character === BLANK) {
187
- characters.push(character);
188
218
  }
189
- ++index;
190
219
  }
191
220
  return characters;
192
221
  };
193
- /* harmony default export */ const lib_extractCharacters = ((/* unused pure expression or super */ null && (extractCharacters)));
222
+ /* harmony default export */ const lib_extractCharactersByCase = ((/* unused pure expression or super */ null && (extractCharactersByCase)));
194
223
 
195
224
  ;// CONCATENATED MODULE: ./src/parameters/index.ts
196
225
  const BREAKPOINTS = {
@@ -576,6 +605,9 @@ const zipCharactersAndTiles = (characters, tiles)=>{
576
605
 
577
606
 
578
607
 
608
+
609
+
610
+
579
611
 
580
612
 
581
613
 
@@ -891,10 +923,11 @@ const getCellsScore = (config, cells) => {
891
923
  const total = cells.reduce(({ multiplier, score }, cell) => {
892
924
  const bonus = config.getCellBonus(cell);
893
925
  const { characterMultiplier, wordMultiplier } = bonus && bonus.canApply(config, cell) ? bonus.value : constants_1.NO_BONUS;
894
- const characterScore = cell.tile.isBlank ? config.blankScore : config.pointsMap[cell.tile.character];
926
+ const characterScore = config.pointsMap[cell.tile.character] || 0;
927
+ const tileScore = cell.tile.isBlank ? config.blankScore : characterScore;
895
928
  return {
896
929
  multiplier: multiplier * wordMultiplier,
897
- score: score + characterScore * characterMultiplier,
930
+ score: score + tileScore * characterMultiplier,
898
931
  };
899
932
  }, { multiplier: 1, score: 0 });
900
933
  return total.score * total.multiplier;
@@ -1047,7 +1080,7 @@ exports["default"] = solve;
1047
1080
  var __webpack_require__ = require("../../webpack-api-runtime.js");
1048
1081
  __webpack_require__.C(exports);
1049
1082
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
1050
- var __webpack_exports__ = __webpack_require__.X(0, [50,131,987,44,911,210], () => (__webpack_exec__(72066)));
1083
+ var __webpack_exports__ = __webpack_require__.X(0, [50,131,987,44,911,210], () => (__webpack_exec__(33478)));
1051
1084
  module.exports = __webpack_exports__;
1052
1085
 
1053
1086
  })();
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/edaeaa48321b4cf2.css" as="style"/><link rel="stylesheet" href="/_next/static/css/edaeaa48321b4cf2.css" data-n-g=""/><link rel="preload" href="/_next/static/css/34adfcf12a7d9bb6.css" as="style"/><link rel="stylesheet" href="/_next/static/css/34adfcf12a7d9bb6.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c5cac93e8c637b5.js" defer=""></script><script src="/_next/static/chunks/main-0ecb9ccfcb6c9b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-e89a3c225b87516a.js" defer=""></script><script src="/_next/static/chunks/pages/index-58744f49bf6b891f.js" defer=""></script><script src="/_next/static/uhB6d-q63uRC6RubwepLq/_buildManifest.js" defer=""></script><script src="/_next/static/uhB6d-q63uRC6RubwepLq/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.11.6"},"__N_SSG":true},"page":"/","query":{},"buildId":"uhB6d-q63uRC6RubwepLq","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/fcc46fec97b11afc.css" as="style"/><link rel="stylesheet" href="/_next/static/css/fcc46fec97b11afc.css" data-n-g=""/><link rel="preload" href="/_next/static/css/60e8258da7362a1a.css" as="style"/><link rel="stylesheet" href="/_next/static/css/60e8258da7362a1a.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c5cac93e8c637b5.js" defer=""></script><script src="/_next/static/chunks/main-0ecb9ccfcb6c9b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b0231bed954dd413.js" defer=""></script><script src="/_next/static/chunks/pages/index-4e8566409753e1c3.js" defer=""></script><script src="/_next/static/9oRWxnZ1xFLSs55FJtiYi/_buildManifest.js" defer=""></script><script src="/_next/static/9oRWxnZ1xFLSs55FJtiYi/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.11.8"},"__N_SSG":true},"page":"/","query":{},"buildId":"9oRWxnZ1xFLSs55FJtiYi","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>