@scrabble-solver/scrabble-solver 2.15.13 → 2.15.15

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 (216) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build/chunks/[root-of-the-server]__6e020478._.js +441 -0
  3. package/.next/build/chunks/[root-of-the-server]__6e020478._.js.map +7 -0
  4. package/.next/build/chunks/[root-of-the-server]__c7ae8543._.js +500 -0
  5. package/.next/build/chunks/[root-of-the-server]__c7ae8543._.js.map +11 -0
  6. package/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_c84aa21a._.js +12 -0
  7. package/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_c84aa21a._.js.map +5 -0
  8. package/.next/build/chunks/[turbopack]_runtime.js +770 -0
  9. package/.next/build/chunks/[turbopack]_runtime.js.map +10 -0
  10. package/.next/build/package.json +1 -0
  11. package/.next/build/webpack-loaders.js +6 -0
  12. package/.next/build/webpack-loaders.js.map +5 -0
  13. package/.next/build-manifest.json +29 -32
  14. package/.next/cache/.previewinfo +1 -1
  15. package/.next/cache/.rscinfo +1 -1
  16. package/.next/cache/.tsbuildinfo +1 -1
  17. package/.next/diagnostics/build-diagnostics.json +1 -1
  18. package/.next/diagnostics/framework.json +1 -1
  19. package/.next/fallback-build-manifest.json +24 -0
  20. package/.next/images-manifest.json +12 -3
  21. package/.next/next-minimal-server.js.nft.json +1 -1
  22. package/.next/next-server.js.nft.json +1 -1
  23. package/.next/prerender-manifest.json +4 -4
  24. package/.next/required-server-files.json +104 -73
  25. package/.next/routes-manifest.json +30 -9
  26. package/.next/server/chunks/[root-of-the-server]__378b5933._.js +3 -0
  27. package/.next/server/chunks/[root-of-the-server]__378b5933._.js.map +1 -0
  28. package/.next/server/chunks/[root-of-the-server]__51a21f60._.js +3 -0
  29. package/.next/server/chunks/[root-of-the-server]__51a21f60._.js.map +1 -0
  30. package/.next/server/chunks/[root-of-the-server]__53eb4a3b._.js +4 -0
  31. package/.next/server/chunks/[root-of-the-server]__53eb4a3b._.js.map +1 -0
  32. package/.next/server/chunks/[root-of-the-server]__7e4e99cd._.js +3 -0
  33. package/.next/server/chunks/[root-of-the-server]__7e4e99cd._.js.map +1 -0
  34. package/.next/server/chunks/[root-of-the-server]__a6a82e19._.js +3 -0
  35. package/.next/server/chunks/[root-of-the-server]__a6a82e19._.js.map +1 -0
  36. package/.next/server/chunks/[root-of-the-server]__a84df743._.js +3 -0
  37. package/.next/server/chunks/[root-of-the-server]__a84df743._.js.map +1 -0
  38. package/.next/server/chunks/[root-of-the-server]__a99303dc._.js +3 -0
  39. package/.next/server/chunks/[root-of-the-server]__a99303dc._.js.map +1 -0
  40. package/.next/server/chunks/[root-of-the-server]__bfa4320b._.js +3 -0
  41. package/.next/server/chunks/[root-of-the-server]__bfa4320b._.js.map +1 -0
  42. package/.next/server/chunks/[turbopack]_runtime.js +770 -0
  43. package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  44. package/.next/server/chunks/scrabble-solver_b903dbba._.js +3 -0
  45. package/.next/server/chunks/scrabble-solver_b903dbba._.js.map +1 -0
  46. package/.next/server/chunks/scrabble-solver_packages_configs_build_5accd600._.js +3 -0
  47. package/.next/server/chunks/scrabble-solver_packages_configs_build_5accd600._.js.map +1 -0
  48. package/.next/server/chunks/ssr/1b834_next_d69de9fa._.js +3 -0
  49. package/.next/server/chunks/ssr/1b834_next_d69de9fa._.js.map +1 -0
  50. package/.next/server/chunks/ssr/[externals]_fs_54ffce70._.js +3 -0
  51. package/.next/server/chunks/ssr/[externals]_fs_54ffce70._.js.map +1 -0
  52. package/.next/server/chunks/ssr/[externals]_transliteration_b8916dda._.js +3 -0
  53. package/.next/server/chunks/ssr/[externals]_transliteration_b8916dda._.js.map +1 -0
  54. package/.next/server/chunks/ssr/[root-of-the-server]__1115f13a._.js +3 -0
  55. package/.next/server/chunks/ssr/[root-of-the-server]__1115f13a._.js.map +1 -0
  56. package/.next/server/chunks/ssr/[root-of-the-server]__421f2b10._.js +3 -0
  57. package/.next/server/chunks/ssr/[root-of-the-server]__421f2b10._.js.map +1 -0
  58. package/.next/server/chunks/ssr/[root-of-the-server]__b87cf431._.js +3 -0
  59. package/.next/server/chunks/ssr/[root-of-the-server]__b87cf431._.js.map +1 -0
  60. package/.next/server/chunks/ssr/[root-of-the-server]__bdcde4df._.js +5 -0
  61. package/.next/server/chunks/ssr/[root-of-the-server]__bdcde4df._.js.map +1 -0
  62. package/.next/server/chunks/ssr/[root-of-the-server]__c803ce2b._.js +3 -0
  63. package/.next/server/chunks/ssr/[root-of-the-server]__c803ce2b._.js.map +1 -0
  64. package/.next/server/chunks/ssr/[turbopack]_runtime.js +770 -0
  65. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  66. package/.next/server/chunks/ssr/scrabble-solver_1bf76a93._.js +3 -0
  67. package/.next/server/chunks/ssr/scrabble-solver_1bf76a93._.js.map +1 -0
  68. package/.next/server/chunks/ssr/scrabble-solver_a6d23152._.js +8 -0
  69. package/.next/server/chunks/ssr/scrabble-solver_a6d23152._.js.map +1 -0
  70. package/.next/server/chunks/ssr/scrabble-solver_packages_scrabble-solver_src_i18n_languages_1f0474f1._.js +3 -0
  71. package/.next/server/chunks/ssr/scrabble-solver_packages_scrabble-solver_src_i18n_languages_1f0474f1._.js.map +1 -0
  72. package/.next/server/middleware-build-manifest.js +40 -1
  73. package/.next/server/middleware-manifest.json +2 -2
  74. package/.next/server/next-font-manifest.js +1 -1
  75. package/.next/server/next-font-manifest.json +6 -1
  76. package/.next/server/pages/404.html +1 -1
  77. package/.next/server/pages/500.html +1 -1
  78. package/.next/server/pages/_app/build-manifest.json +18 -0
  79. package/.next/server/pages/_app/client-build-manifest.json +5 -0
  80. package/.next/server/pages/_app/next-font-manifest.json +6 -0
  81. package/.next/server/pages/_app/pages-manifest.json +3 -0
  82. package/.next/server/pages/_app/react-loadable-manifest.json +1 -0
  83. package/.next/server/pages/_app.js +6 -1
  84. package/.next/server/pages/_app.js.map +5 -0
  85. package/.next/server/pages/_app.js.nft.json +1 -1
  86. package/.next/server/pages/_document/next-font-manifest.json +6 -0
  87. package/.next/server/pages/_document/pages-manifest.json +3 -0
  88. package/.next/server/pages/_document/react-loadable-manifest.json +1 -0
  89. package/.next/server/pages/_document.js +5 -1
  90. package/.next/server/pages/_document.js.map +5 -0
  91. package/.next/server/pages/_document.js.nft.json +1 -1
  92. package/.next/server/pages/_error/build-manifest.json +15 -0
  93. package/.next/server/pages/_error/client-build-manifest.json +5 -0
  94. package/.next/server/pages/_error/next-font-manifest.json +6 -0
  95. package/.next/server/pages/_error/pages-manifest.json +3 -0
  96. package/.next/server/pages/_error/react-loadable-manifest.json +1 -0
  97. package/.next/server/pages/_error.js +10 -1
  98. package/.next/server/pages/_error.js.map +5 -0
  99. package/.next/server/pages/_error.js.nft.json +1 -1
  100. package/.next/server/pages/api/dictionary/[locale]/[word]/pages-manifest.json +3 -0
  101. package/.next/server/pages/api/dictionary/[locale]/[word].js +8 -2
  102. package/.next/server/pages/api/dictionary/[locale]/[word].js.map +5 -0
  103. package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  104. package/.next/server/pages/api/dictionary/[locale]/pages-manifest.json +3 -0
  105. package/.next/server/pages/api/dictionary/[locale].js +6 -1
  106. package/.next/server/pages/api/dictionary/[locale].js.map +5 -0
  107. package/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  108. package/.next/server/pages/api/solve/pages-manifest.json +3 -0
  109. package/.next/server/pages/api/solve.js +8 -1
  110. package/.next/server/pages/api/solve.js.map +5 -0
  111. package/.next/server/pages/api/solve.js.nft.json +1 -1
  112. package/.next/server/pages/api/verify/pages-manifest.json +3 -0
  113. package/.next/server/pages/api/verify.js +7 -1
  114. package/.next/server/pages/api/verify.js.map +5 -0
  115. package/.next/server/pages/api/verify.js.nft.json +1 -1
  116. package/.next/server/pages/api/visit/pages-manifest.json +3 -0
  117. package/.next/server/pages/api/visit.js +5 -1
  118. package/.next/server/pages/api/visit.js.map +5 -0
  119. package/.next/server/pages/api/visit.js.nft.json +1 -1
  120. package/.next/server/pages/index/build-manifest.json +18 -0
  121. package/.next/server/pages/index/client-build-manifest.json +5 -0
  122. package/.next/server/pages/index/next-font-manifest.json +6 -0
  123. package/.next/server/pages/index/pages-manifest.json +3 -0
  124. package/.next/server/pages/index/react-loadable-manifest.json +1 -0
  125. package/.next/server/pages/index.html +1 -1
  126. package/.next/server/pages/index.js +11 -1
  127. package/.next/server/pages/index.js.map +5 -0
  128. package/.next/server/pages/index.js.nft.json +1 -1
  129. package/.next/server/pages/index.json +1 -1
  130. package/.next/server/pages/not-found/build-manifest.json +17 -0
  131. package/.next/server/pages/not-found/client-build-manifest.json +5 -0
  132. package/.next/server/pages/not-found/next-font-manifest.json +6 -0
  133. package/.next/server/pages/not-found/pages-manifest.json +3 -0
  134. package/.next/server/pages/not-found/react-loadable-manifest.json +1 -0
  135. package/.next/server/pages/not-found.html +1 -0
  136. package/.next/server/pages/not-found.js.map +5 -0
  137. package/.next/server/pages/not-found.js.nft.json +1 -0
  138. package/.next/server/pages-manifest.json +6 -5
  139. package/.next/server/server-reference-manifest.js +1 -0
  140. package/.next/server/server-reference-manifest.json +5 -0
  141. package/.next/static/7kzTSHcrJ7tE47btIJcLO/_buildManifest.js +27 -0
  142. package/.next/static/chunks/060b82a3f336704f.js +3 -0
  143. package/.next/static/chunks/18159e87dc14f3cf.js +1 -0
  144. package/.next/static/chunks/27692b9d65f8b241.js +8 -0
  145. package/.next/static/chunks/2f5ae49118c8c86e.js +1 -0
  146. package/.next/static/chunks/339ed8704781040d.js +5 -0
  147. package/.next/static/chunks/3c8b810de7908416.js +3 -0
  148. package/.next/static/chunks/50e709cb7765c2f9.js +1 -0
  149. package/.next/static/chunks/69fdc9801e177051.js +1 -0
  150. package/.next/static/chunks/77bd0d5f1fb6eeba.js +3 -0
  151. package/.next/static/chunks/88b0985f454c1075.js +1 -0
  152. package/.next/static/chunks/95230bbbdd629d16.js +1 -0
  153. package/.next/static/chunks/997907c5fccf02bb.js +5 -0
  154. package/.next/static/chunks/9b2e7a689e581b58.js +7 -0
  155. package/.next/static/chunks/a4580bbcd72cf165.css +2 -0
  156. package/.next/static/chunks/e37c75eaddd8268a.css +47 -0
  157. package/.next/static/chunks/e75d2aeb209c3d8c.js +8 -0
  158. package/.next/static/chunks/eebac312ab720248.js +1 -0
  159. package/.next/static/chunks/turbopack-3eaa540498b1c1e9.js +3 -0
  160. package/.next/static/chunks/turbopack-6422aba52462ed1d.js +3 -0
  161. package/.next/static/chunks/turbopack-c70c4122d677e1a8.js +3 -0
  162. package/.next/static/chunks/turbopack-cc316a12eadf598b.js +3 -0
  163. package/.next/trace +1 -24
  164. package/.next/trace-build +1 -0
  165. package/.next/turbopack +0 -0
  166. package/.next/types/routes.d.ts +57 -0
  167. package/.next/types/validator.ts +106 -0
  168. package/next-env.d.ts +1 -0
  169. package/next.config.js +9 -32
  170. package/package.json +27 -27
  171. package/src/components/Modal/Modal.tsx +1 -0
  172. package/src/components/Results/Result.tsx +13 -17
  173. package/src/components/Results/Results.tsx +23 -24
  174. package/src/hooks/useMedia.ts +1 -0
  175. package/src/pages/_app.tsx +1 -1
  176. package/src/pages/{404.tsx → not-found.tsx} +2 -0
  177. package/src/state/cellFilters/slice.ts +1 -2
  178. package/src/state/settings/selectors.ts +0 -1
  179. package/src/styles/global.scss +1 -1
  180. package/src/styles/variables.scss +2 -2
  181. package/.next/cache/webpack/client-production/0.pack +0 -0
  182. package/.next/cache/webpack/client-production/index.pack +0 -0
  183. package/.next/cache/webpack/client-production/index.pack.old +0 -0
  184. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  185. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  186. package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  187. package/.next/cache/webpack/server-production/0.pack +0 -0
  188. package/.next/cache/webpack/server-production/index.pack +0 -0
  189. package/.next/cache/webpack/server-production/index.pack.old +0 -0
  190. package/.next/server/InjectManifest.js.nft.json +0 -1
  191. package/.next/server/chunks/106.js +0 -1
  192. package/.next/server/chunks/30.js +0 -6
  193. package/.next/server/chunks/318.js +0 -1
  194. package/.next/server/chunks/50.js +0 -19
  195. package/.next/server/chunks/812.js +0 -1
  196. package/.next/server/chunks/929.js +0 -1
  197. package/.next/server/chunks/974.js +0 -1
  198. package/.next/server/dynamic-css-manifest.js +0 -1
  199. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  200. package/.next/server/pages/404.js.nft.json +0 -1
  201. package/.next/server/webpack-api-runtime.js +0 -1
  202. package/.next/server/webpack-runtime.js +0 -1
  203. package/.next/static/MhrqAqLI9_L8obb7tgjvi/_buildManifest.js +0 -1
  204. package/.next/static/chunks/framework-aad31c68dd0bb0ea.js +0 -1
  205. package/.next/static/chunks/main-eab5847b41f0af4a.js +0 -1
  206. package/.next/static/chunks/pages/404-04457ede98c6b53e.js +0 -1
  207. package/.next/static/chunks/pages/_app-bf81f201c021fdc1.js +0 -1
  208. package/.next/static/chunks/pages/_error-a9800cedd835bcad.js +0 -1
  209. package/.next/static/chunks/pages/index-79a390f3c2a2499f.js +0 -1
  210. package/.next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
  211. package/.next/static/chunks/webpack-6224d37324e372cb.js +0 -1
  212. package/.next/static/css/04a3767982ec10e8.css +0 -1
  213. package/.next/static/css/1fae874a25934f54.css +0 -2
  214. /package/.next/{react-loadable-manifest.json → server/app-paths-manifest.json} +0 -0
  215. /package/.next/{dynamic-css-manifest.json → static/7kzTSHcrJ7tE47btIJcLO/_clientMiddlewareManifest.json} +0 -0
  216. /package/.next/static/{MhrqAqLI9_L8obb7tgjvi → 7kzTSHcrJ7tE47btIJcLO}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../scrabble-solver/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/side-effect.tsx","../../../../../../../scrabble-solver/node_modules/next/src/server/route-modules/pages/vendored/contexts/head-manager-context.ts","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/head.tsx","../../../../../../../scrabble-solver/node_modules/next/head.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ArrowDown.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Ban.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/BookHalf.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/CardChecklist.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Check.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ChevronDown.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ChevronLeft.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ChevronRight.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Cog.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Cross.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/CrossSquareFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Eraser.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/EyeFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/GeoAlt.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Github.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Keyboard.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/KeyboardFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/List.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/OneTwoThree.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Sack.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Search.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/SortDown.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/SortUp.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Square.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/SquareA.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/SquareB.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/SquareFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Squares.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Star.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Words.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ArrowLeft.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ArrowRight.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ArrowUp.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/CrossCircleFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/DashCircleFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ExclamationSquareFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/ExclamationTriangleFill.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/Flag.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagDe.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagEs.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagFa.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagFr.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagGb.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagPl.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagRo.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagTr.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/FlagUs.svg.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/icons/InfoCircleFill.svg.js","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Alert/Alert.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Alert/Alert.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Alert/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Badge/Badge.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Badge/Badge.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Badge/index.ts","../../../../../../../scrabble-solver/packages/constants/build/index.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/types/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/parameters/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/actions.ts","../../../../../../../scrabble-solver/packages/types/build/isObject.js","../../../../../../../scrabble-solver/packages/types/build/Bingo.js","../../../../../../../scrabble-solver/packages/types/build/Tile.js","../../../../../../../scrabble-solver/packages/types/build/Cell.js","../../../../../../../scrabble-solver/packages/types/build/Board.js","../../../../../../../scrabble-solver/packages/types/build/TileJson.js","../../../../../../../scrabble-solver/packages/types/build/CellJson.js","../../../../../../../scrabble-solver/packages/types/build/BoardJson.js","../../../../../../../scrabble-solver/packages/types/build/Bonus.js","../../../../../../../scrabble-solver/packages/types/build/CharacterBonus.js","../../../../../../../scrabble-solver/packages/types/build/WordBonus.js","../../../../../../../scrabble-solver/packages/types/build/Config.js","../../../../../../../scrabble-solver/packages/types/build/Pattern.js","../../../../../../../scrabble-solver/packages/types/build/FinalPattern.js","../../../../../../../scrabble-solver/packages/types/build/Game.js","../../../../../../../scrabble-solver/packages/types/build/HorizontalPattern.js","../../../../../../../scrabble-solver/packages/types/build/isError.js","../../../../../../../scrabble-solver/packages/types/build/Locale.js","../../../../../../../scrabble-solver/packages/types/build/Result.js","../../../../../../../scrabble-solver/packages/types/build/VerticalPattern.js","../../../../../../../scrabble-solver/packages/types/build/WordDefinition.js","../../../../../../../scrabble-solver/packages/types/build/index.js","../../../../../../../scrabble-solver/packages/configs/build/games/kelimelik.js","../../../../../../../scrabble-solver/packages/configs/build/games/letterLeague.js","../../../../../../../scrabble-solver/packages/configs/build/games/literaki.js","../../../../../../../scrabble-solver/packages/configs/build/games/scrabble.js","../../../../../../../scrabble-solver/packages/configs/build/games/scrabbleDuel.js","../../../../../../../scrabble-solver/packages/configs/build/games/superScrabble.js","../../../../../../../scrabble-solver/packages/configs/build/games/index.js","../../../../../../../scrabble-solver/packages/configs/build/languages/english.js","../../../../../../../scrabble-solver/packages/configs/build/languages/german.js","../../../../../../../scrabble-solver/packages/configs/build/languages/french.js","../../../../../../../scrabble-solver/packages/configs/build/languages/persian.js","../../../../../../../scrabble-solver/packages/configs/build/languages/polish.js","../../../../../../../scrabble-solver/packages/configs/build/languages/romanian.js","../../../../../../../scrabble-solver/packages/configs/build/languages/spanish.js","../../../../../../../scrabble-solver/packages/configs/build/languages/turkish.js","../../../../../../../scrabble-solver/packages/configs/build/languages/index.js","../../../../../../../scrabble-solver/packages/configs/build/getConfig.js","../../../../../../../scrabble-solver/packages/configs/build/hasConfig.js","../../../../../../../scrabble-solver/packages/configs/build/index.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/localStorage.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/settings/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/settings/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/i18n/constants.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/i18n/i18n.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/i18n/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/settings/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/settings/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/settings/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/board/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/board/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/board/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/board/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/cellFilters/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/cellFilters/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/cellFilters/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/cellFilters/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/cellFilters/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/dictionary/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/dictionary/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/dictionary/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/dictionary/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/rack/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/rack/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/arrayEquals.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/noop.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/createKeyboardNavigation.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/createNullMovingComparator.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/createRegExp.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/extractCharacters.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/localeTransliterate.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/extractInputValue.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/findCell.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/getCoordinate.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/getTileSizes.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/inverseDirection.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/isCtrl.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/isMac.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/isRegExp.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/memoize.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/createStringComparator.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/numberComparator.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/createComparator.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/unorderedArraysEqual.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/zipCharactersAndTiles.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/createKeyComparator.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/isStringArray.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/lib/reverseComparator.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/rack/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/rack/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/results/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/results/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/results/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/results/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/results/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/solve/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/solve/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/solve/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/solve/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/sdk/fetch.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/sdk/fetchJson.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/sdk/findWordDefinitions.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/sdk/solve.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/sdk/verify.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/sdk/visit.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/sdk/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/verify/initialState.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/verify/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/verify/slice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/verify/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/sagas.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/store.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/useTypedSelector.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/useTranslate.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/state/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useMedia.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useMediaQuery.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useMediaQueries.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useColumns.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useIsTouchDevice.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useOnWindowResize.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useViewportSize.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useAppLayout.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useDirection.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useLatest.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useEffectOnce.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useLanguage.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/useLocalStorage.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/hooks/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Board/Board.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tooltip/context.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Tooltip/Tooltip.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tooltip/TooltipContent.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tooltip/TooltipTrigger.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tooltip/useTooltip.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tooltip/Tooltip.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tooltip/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Button/Button.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Button/Link.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Button/Button.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Button/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/ToggleDirectionButton/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Board/components/Actions/Actions.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/Actions/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/Actions/Actions.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/Actions/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Tile/Tile.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tile/TilePure.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tile/Tile.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Tile/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/Cell/Cell.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/Cell/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Board/components/InputPrompt/InputPrompt.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/InputPrompt/InputPrompt.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/InputPrompt/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/components/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/BoardPure.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/hooks/useBackgroundImage.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/hooks/useBoardStyle.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/hooks/useFloatingActions.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/hooks/useFloatingFocus.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/hooks/useFloatingInputPrompt.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/hooks/useGrid.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/hooks/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/Board.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Board/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/PlainTiles/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/PlainTiles/Tile.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/PlainTiles/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/EmptyState/EmptyState.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/EmptyState/EmptyState.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/EmptyState/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Loading/Loading.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Loading/Loading.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Loading/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Dictionary/Dictionary.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Dictionary/Dictionary.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Dictionary/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/DictionaryInput/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/IconButton/IconButton.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/IconButton/Link.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/IconButton/IconButton.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/IconButton/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Key/Key.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Key/Key.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Key/index.ts","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/image-blur-svg.ts","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/image-config.ts","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/get-img-props.ts","../../../../../../../scrabble-solver/node_modules/next/src/server/route-modules/pages/vendored/contexts/image-config-context.ts","../../../../../../../scrabble-solver/node_modules/next/src/server/route-modules/pages/vendored/contexts/router-context.ts","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/find-closest-quality.ts","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/image-loader.ts","../../../../../../../scrabble-solver/node_modules/next/src/client/use-merged-ref.ts","../../../../../../../scrabble-solver/node_modules/next/src/client/image-component.tsx","../../../../../../../scrabble-solver/node_modules/next/src/shared/lib/image-external.tsx","../../../../../../../scrabble-solver/node_modules/next/image.js","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Logo/Logo.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Logo/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Modal/components/Section/Section.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Modal/components/Section/Section.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Modal/components/Section/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Modal/Modal.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Modal/Modal.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Modal/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/NavButtons/NavButtons.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/NavButtons/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/NavButtons/NavButtons.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/NavButtons/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/NotFound/NotFound.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/NotFound/NotFound.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/NotFound/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Progress/Progress.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Progress/Progress.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Progress/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Rack/components/InputPrompt/InputPrompt.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/components/InputPrompt/lib.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/components/InputPrompt/InputPrompt.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/components/InputPrompt/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Rack/components/RackTile/RackTile.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/components/RackTile/RackTile.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/components/RackTile/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/components/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Rack/Rack.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/selectors.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/Rack.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Rack/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Radio/Radio.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Radio/Radio.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Radio/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/ResultsInput/ResultsInput.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/ResultsInput/ResultsInput.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/ResultsInput/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Results/Results.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Results/HeaderButton.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Results/Header.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Results/Cell.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Results/Result.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Results/SolveButton.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Results/Results.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Results/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/SeoMessage/SeoMessage.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/SeoMessage/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Solver/components/InsertButton/InsertButton.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Solver/components/InsertButton/InsertButton.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Solver/components/InsertButton/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Spinner/Spinner.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Spinner/Spinner.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Spinner/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Solver/components/ResultCandidatePicker/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Solver/components/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Solver/Solver.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Solver/Solver.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Solver/index.ts","turbopack:///[project]/scrabble-solver/packages/scrabble-solver/src/components/Keys/Arrows/Arrows.module.scss [ssr] (css module)","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Keys/Arrows/Arrows.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Keys/Arrows/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/Keys/index.tsx","../../../../../../../scrabble-solver/packages/scrabble-solver/src/components/index.ts","../../../../../../../scrabble-solver/packages/scrabble-solver/src/pages/_app.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array<React.ReactElement<any>>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n <meta charSet=\"utf-8\" key=\"charset\" />,\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","module.exports = require('./dist/shared/lib/head')\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgArrowDown = function SvgArrowDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1\"\n })));\n};\nexport default SvgArrowDown;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBan = function SvgBan(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M15 8a6.97 6.97 0 0 0-1.71-4.584l-9.874 9.875A7 7 0 0 0 15 8M2.71 12.584l9.874-9.875a7 7 0 0 0-9.874 9.874ZM16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0\"\n })));\n};\nexport default SvgBan;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBookHalf = function SvgBookHalf(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8.5 2.687c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783\"\n })));\n};\nexport default SvgBookHalf;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCardChecklist = function SvgCardChecklist(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M14.5 3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5zm-13-1A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M7 5.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m-1.496-.854a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0l-.5-.5a.5.5 0 1 1 .708-.708l.146.147 1.146-1.147a.5.5 0 0 1 .708 0M7 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m-1.496-.854a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0l-.5-.5a.5.5 0 0 1 .708-.708l.146.147 1.146-1.147a.5.5 0 0 1 .708 0\"\n })));\n};\nexport default SvgCardChecklist;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheck = function SvgCheck(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0\"\n })));\n};\nexport default SvgCheck;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgChevronDown = function SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708\"\n })));\n};\nexport default SvgChevronDown;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgChevronLeft = function SvgChevronLeft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0\"\n })));\n};\nexport default SvgChevronLeft;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgChevronRight = function SvgChevronRight(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708\"\n })));\n};\nexport default SvgChevronRight;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCog = function SvgCog(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z\"\n })));\n};\nexport default SvgCog;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCross = function SvgCross(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708\"\n })));\n};\nexport default SvgCross;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCrossSquareFill = function SvgCrossSquareFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm3.354 4.646L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 1 1 .708-.708\"\n })));\n};\nexport default SvgCrossSquareFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEraser = function SvgEraser(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8.086 2.207a2 2 0 0 1 2.828 0l3.879 3.879a2 2 0 0 1 0 2.828l-5.5 5.5A2 2 0 0 1 7.879 15H5.12a2 2 0 0 1-1.414-.586l-2.5-2.5a2 2 0 0 1 0-2.828zm.66 11.34L3.453 8.254 1.914 9.793a1 1 0 0 0 0 1.414l2.5 2.5a1 1 0 0 0 .707.293H7.88a1 1 0 0 0 .707-.293z\"\n })));\n};\nexport default SvgEraser;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEyeFill = function SvgEyeFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M10.5 8a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M0 8s3-5.5 8-5.5S16 8 16 8s-3 5.5-8 5.5S0 8 0 8m8 3.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7\"\n })));\n};\nexport default SvgEyeFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagFill = function SvgFlagFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M14.778.085A.5.5 0 0 1 15 .5V8a.5.5 0 0 1-.314.464L14.5 8l.186.464-.003.001-.006.003-.023.009a12 12 0 0 1-.397.15c-.264.095-.631.223-1.047.35-.816.252-1.879.523-2.71.523-.847 0-1.548-.28-2.158-.525l-.028-.01C7.68 8.71 7.14 8.5 6.5 8.5c-.7 0-1.638.23-2.437.477A20 20 0 0 0 3 9.342V15.5a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 1 0v.282c.226-.079.496-.17.79-.26C4.606.272 5.67 0 6.5 0c.84 0 1.524.277 2.121.519l.043.018C9.286.788 9.828 1 10.5 1c.7 0 1.638-.23 2.437-.477a20 20 0 0 0 1.349-.476l.019-.007.004-.002h.001\"\n })));\n};\nexport default SvgFlagFill;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGeoAlt = function SvgGeoAlt(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A32 32 0 0 1 8 14.58a32 32 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4m0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6\"\n })));\n};\nexport default SvgGeoAlt;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGithub = function SvgGithub(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8\"\n })));\n};\nexport default SvgGithub;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgKeyboard = function SvgKeyboard(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zM2 4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 10.25a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm0-2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-5 0A.25.25 0 0 1 8.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 8 8.75zm2 0a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25zm1 2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-5-2A.25.25 0 0 1 6.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 6 8.75zm-2 0A.25.25 0 0 1 4.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 4 8.75zm-2 0A.25.25 0 0 1 2.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 2 8.75zm11-2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-2 0a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm-2 0A.25.25 0 0 1 9.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 9 6.75zm-2 0A.25.25 0 0 1 7.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 7 6.75zm-2 0A.25.25 0 0 1 5.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 5 6.75zm-3 0A.25.25 0 0 1 2.25 6h1.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-1.5A.25.25 0 0 1 2 6.75zm0 4a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25zm2 0a.25.25 0 0 1 .25-.25h5.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-5.5a.25.25 0 0 1-.25-.25z\"\n })));\n};\nexport default SvgKeyboard;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgKeyboardFill = function SvgKeyboardFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm13 .25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25M2.25 8a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 3 8.75v-.5A.25.25 0 0 0 2.75 8zM4 8.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 5 8.75v-.5A.25.25 0 0 0 4.75 8h-.5a.25.25 0 0 0-.25.25M6.25 8a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 7 8.75v-.5A.25.25 0 0 0 6.75 8zM8 8.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 9 8.75v-.5A.25.25 0 0 0 8.75 8h-.5a.25.25 0 0 0-.25.25M13.25 8a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zm0 2a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zm-3-2a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h1.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zm.75 2.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25M11.25 6a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25zM9 6.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5A.25.25 0 0 0 9.75 6h-.5a.25.25 0 0 0-.25.25M7.25 6a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 8 6.75v-.5A.25.25 0 0 0 7.75 6zM5 6.25v.5c0 .138.112.25.25.25h.5A.25.25 0 0 0 6 6.75v-.5A.25.25 0 0 0 5.75 6h-.5a.25.25 0 0 0-.25.25M2.25 6a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h1.5A.25.25 0 0 0 4 6.75v-.5A.25.25 0 0 0 3.75 6zM2 10.25v.5c0 .138.112.25.25.25h.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25h-.5a.25.25 0 0 0-.25.25M4.25 10a.25.25 0 0 0-.25.25v.5c0 .138.112.25.25.25h5.5a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25z\"\n })));\n};\nexport default SvgKeyboardFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgList = function SvgList(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5\"\n })));\n};\nexport default SvgList;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgOneTwoThree = function SvgOneTwoThree(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.873 11.297V4.142H1.699L0 5.379v1.137l1.64-1.18h.06v5.961zm3.213-5.09v-.063c0-.618.44-1.169 1.196-1.169.676 0 1.174.44 1.174 1.106 0 .624-.42 1.101-.807 1.526L4.99 10.553v.744h4.78v-.99H6.643v-.069L8.41 8.252c.65-.724 1.237-1.332 1.237-2.27C9.646 4.849 8.723 4 7.308 4c-1.573 0-2.36 1.064-2.36 2.15v.057zm6.559 1.883h.786c.823 0 1.374.481 1.379 1.179.01.707-.55 1.216-1.421 1.21-.77-.005-1.326-.419-1.379-.953h-1.095c.042 1.053.938 1.918 2.464 1.918 1.478 0 2.642-.839 2.62-2.144-.02-1.143-.922-1.651-1.551-1.714v-.063c.535-.09 1.347-.66 1.326-1.678-.026-1.053-.933-1.855-2.359-1.845-1.5.005-2.317.88-2.348 1.898h1.116c.032-.498.498-.944 1.206-.944.703 0 1.206.435 1.206 1.07.005.64-.504 1.106-1.2 1.106h-.75z\"\n })));\n};\nexport default SvgOneTwoThree;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSack = function SvgSack(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M16 9c4 2 5 9 5 9s1 4-5 4H8c-6 0-5-4-5-4s1-7 5-9m6-5-2-2-2 2-4-2 2 5h8l2-5z\"\n })));\n};\nexport default SvgSack;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSearch = function SvgSearch(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0\"\n })));\n};\nexport default SvgSearch;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSortDown = function SvgSortDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M3.5 2.5a.5.5 0 0 0-1 0v8.793l-1.146-1.147a.5.5 0 0 0-.708.708l2 1.999.007.007a.497.497 0 0 0 .7-.006l2-2a.5.5 0 0 0-.707-.708L3.5 11.293zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5M7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1z\"\n })));\n};\nexport default SvgSortDown;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSortUp = function SvgSortUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M3.5 12.5a.5.5 0 0 1-1 0V3.707L1.354 4.854a.5.5 0 1 1-.708-.708l2-1.999.007-.007a.5.5 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 3.707zm3.5-9a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5M7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1z\"\n })));\n};\nexport default SvgSortUp;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSquare = function SvgSquare(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z\"\n })));\n};\nexport default SvgSquare;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSquareA = function SvgSquareA(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7.295 4.87-2.057 6.26h1.227l.48-1.61h2.047l.479 1.61h1.29L8.716 4.87Zm.648 1.198h.055l.75 2.532H7.193z\"\n })));\n};\nexport default SvgSquareA;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSquareB = function SvgSquareB(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.658 4.87v6.26H8.21c1.243 0 2.133-.646 2.133-1.765 0-.94-.63-1.453-1.365-1.527V7.78c.606-.152 1.05-.609 1.05-1.37 0-.959-.718-1.542-1.808-1.542zm1.203.93h1.075c.57 0 .896.311.896.821 0 .545-.358.854-1.17.854h-.8Zm0 2.538h1.15c.714 0 1.096.362 1.096.953 0 .597-.392.908-1.343.908H6.86Z\"\n })));\n};\nexport default SvgSquareB;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSquareFill = function SvgSquareFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2z\"\n })));\n};\nexport default SvgSquareFill;","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSquares = function SvgSquares(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.75 4v.75h7.75a.75.75 0 0 1 .75.75v7.75H12V5.5A1.5 1.5 0 0 0 10.5 4Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 14h-.75v.5a.75.75 0 0 1-.75.75h-9a.75.75 0 0 1-.75-.75v-9a.75.75 0 0 1 .75-.75H2V4h-.5A1.5 1.5 0 0 0 0 5.5v9A1.5 1.5 0 0 0 1.5 16h9a1.5 1.5 0 0 0 1.5-1.5Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 4.75h.75V4H2ZM12 14v-.75h-.75V14ZM4.75 2v.75h7.75a.75.75 0 0 1 .75.75v7.75H14V3.5A1.5 1.5 0 0 0 12.5 2ZM4 2.75V2h-.5A1.5 1.5 0 0 0 2 3.5V4h.75v-.5a.75.75 0 0 1 .75-.75ZM14 12h-.75v.5a.75.75 0 0 1-.75.75H12V14h.5a1.5 1.5 0 0 0 1.5-1.5ZM4 2.75h.75V2H4ZM14 12v-.75h-.75V12Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5 0A1.5 1.5 0 0 0 4 1.5V2h.75v-.5A.75.75 0 0 1 5.5.75h9a.75.75 0 0 1 .75.75v9a.75.75 0 0 1-.75.75H14V12h.5a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 0Z\"\n })));\n};\nexport default SvgSquares;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgStar = function SvgStar(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\"\n })));\n};\nexport default SvgStar;","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgWords = function SvgWords(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.219.516a.516.516 0 0 1 .515.515V7.22a.516.516 0 0 1-.515.515H1.03a.516.516 0 0 1-.515-.515V1.03A.516.516 0 0 1 1.03.516ZM1.03 0A1.03 1.03 0 0 0 0 1.031V7.22A1.03 1.03 0 0 0 1.031 8.25H7.22A1.03 1.03 0 0 0 8.25 7.219V1.03A1.03 1.03 0 0 0 7.219 0Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.969 8.266a.516.516 0 0 1 .515.515v6.188a.516.516 0 0 1-.515.515H8.78a.516.516 0 0 1-.515-.515V8.78a.516.516 0 0 1 .515-.515ZM8.78 7.75A1.03 1.03 0 0 0 7.75 8.781v6.188A1.03 1.03 0 0 0 8.781 16h6.188A1.03 1.03 0 0 0 16 14.969V8.78a1.03 1.03 0 0 0-1.031-1.031ZM3.761 2.5l-1.06 3.25h.632l.248-.836h1.056l.246.836h.666L4.494 2.5Zm.335.622h.028l.387 1.314h-.802ZM2.954 10.25v3.25h1.275c.622 0 1.067-.336 1.067-.916 0-.489-.315-.755-.683-.793v-.03c.303-.078.526-.316.526-.711 0-.497-.36-.8-.905-.8zm.602.484h.537c.285 0 .448.16.448.425 0 .283-.179.443-.585.443h-.4Zm0 1.316h.575c.356 0 .548.188.548.495 0 .31-.197.471-.672.471h-.451Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.219 8.266a.516.516 0 0 1 .515.515v6.188a.516.516 0 0 1-.515.515H1.03a.516.516 0 0 1-.515-.515V8.78a.516.516 0 0 1 .515-.515ZM1.03 7.75A1.03 1.03 0 0 0 0 8.781v6.188A1.03 1.03 0 0 0 1.031 16H7.22a1.03 1.03 0 0 0 1.031-1.031V8.78A1.03 1.03 0 0 0 7.219 7.75ZM11.92 10.25c-.82 0-1.287.548-1.287 1.436v.39c0 .887.463 1.424 1.287 1.424.672 0 1.168-.413 1.197-1.01v-.061h-.586c-.025.32-.254.548-.607.548-.428 0-.673-.324-.673-.902v-.387c0-.58.249-.915.673-.915.348 0 .582.245.607.578h.586v-.057c-.027-.62-.523-1.044-1.197-1.044\"\n })));\n};\nexport default SvgWords;","export { default as ArrowDown } from './ArrowDown.svg';\nexport { default as ArrowLeft } from './ArrowLeft.svg';\nexport { default as ArrowRight } from './ArrowRight.svg';\nexport { default as ArrowUp } from './ArrowUp.svg';\nexport { default as Ban } from './Ban.svg';\nexport { default as BookHalf } from './BookHalf.svg';\nexport { default as CardChecklist } from './CardChecklist.svg';\nexport { default as Check } from './Check.svg';\nexport { default as ChevronDown } from './ChevronDown.svg';\nexport { default as ChevronLeft } from './ChevronLeft.svg';\nexport { default as ChevronRight } from './ChevronRight.svg';\nexport { default as Cog } from './Cog.svg';\nexport { default as Cross } from './Cross.svg';\nexport { default as CrossCircleFill } from './CrossCircleFill.svg';\nexport { default as CrossSquareFill } from './CrossSquareFill.svg';\nexport { default as DashCircleFill } from './DashCircleFill.svg';\nexport { default as Eraser } from './Eraser.svg';\nexport { default as ExclamationSquareFill } from './ExclamationSquareFill.svg';\nexport { default as ExclamationTriangleFill } from './ExclamationTriangleFill.svg';\nexport { default as EyeFill } from './EyeFill.svg';\nexport { default as Flag } from './Flag.svg';\nexport { default as FlagDe } from './FlagDe.svg';\nexport { default as FlagEs } from './FlagEs.svg';\nexport { default as FlagFa } from './FlagFa.svg';\nexport { default as FlagFill } from './FlagFill.svg';\nexport { default as FlagFr } from './FlagFr.svg';\nexport { default as FlagGb } from './FlagGb.svg';\nexport { default as FlagPl } from './FlagPl.svg';\nexport { default as FlagRo } from './FlagRo.svg';\nexport { default as FlagTr } from './FlagTr.svg';\nexport { default as FlagUs } from './FlagUs.svg';\nexport { default as GeoAlt } from './GeoAlt.svg';\nexport { default as Github } from './Github.svg';\nexport { default as InfoCircleFill } from './InfoCircleFill.svg';\nexport { default as Keyboard } from './Keyboard.svg';\nexport { default as KeyboardFill } from './KeyboardFill.svg';\nexport { default as List } from './List.svg';\nexport { default as OneTwoThree } from './OneTwoThree.svg';\nexport { default as Sack } from './Sack.svg';\nexport { default as Search } from './Search.svg';\nexport { default as SortDown } from './SortDown.svg';\nexport { default as SortUp } from './SortUp.svg';\nexport { default as Square } from './Square.svg';\nexport { default as SquareA } from './SquareA.svg';\nexport { default as SquareB } from './SquareB.svg';\nexport { default as SquareFill } from './SquareFill.svg';\nexport { default as Squares } from './Squares.svg';\nexport { default as Star } from './Star.svg';\nexport { default as Words } from './Words.svg';\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgArrowLeft = function SvgArrowLeft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8\"\n })));\n};\nexport default SvgArrowLeft;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgArrowRight = function SvgArrowRight(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8\"\n })));\n};\nexport default SvgArrowRight;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgArrowUp = function SvgArrowUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5\"\n })));\n};\nexport default SvgArrowUp;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCrossCircleFill = function SvgCrossCircleFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293z\"\n })));\n};\nexport default SvgCrossCircleFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDashCircleFill = function SvgDashCircleFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1z\"\n })));\n};\nexport default SvgDashCircleFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgExclamationSquareFill = function SvgExclamationSquareFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm6 4c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995A.905.905 0 0 1 8 4m.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2\"\n })));\n};\nexport default SvgExclamationSquareFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgExclamationTriangleFill = function SvgExclamationTriangleFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5m.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2\"\n })));\n};\nexport default SvgExclamationTriangleFill;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlag = function SvgFlag(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M14.778.085A.5.5 0 0 1 15 .5V8a.5.5 0 0 1-.314.464L14.5 8l.186.464-.003.001-.006.003-.023.009a12 12 0 0 1-.397.15c-.264.095-.631.223-1.047.35-.816.252-1.879.523-2.71.523-.847 0-1.548-.28-2.158-.525l-.028-.01C7.68 8.71 7.14 8.5 6.5 8.5c-.7 0-1.638.23-2.437.477A20 20 0 0 0 3 9.342V15.5a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 1 0v.282c.226-.079.496-.17.79-.26C4.606.272 5.67 0 6.5 0c.84 0 1.524.277 2.121.519l.043.018C9.286.788 9.828 1 10.5 1c.7 0 1.638-.23 2.437-.477a20 20 0 0 0 1.349-.476l.019-.007.004-.002h.001M14 1.221c-.22.078-.48.167-.766.255-.81.252-1.872.523-2.734.523-.886 0-1.592-.286-2.203-.534l-.008-.003C7.662 1.21 7.139 1 6.5 1c-.669 0-1.606.229-2.415.478A21 21 0 0 0 3 1.845v6.433c.22-.078.48-.167.766-.255C4.576 7.77 5.638 7.5 6.5 7.5c.847 0 1.548.28 2.158.525l.028.01C9.32 8.29 9.86 8.5 10.5 8.5c.668 0 1.606-.229 2.415-.478A21 21 0 0 0 14 7.655V1.222z\"\n })));\n};\nexport default SvgFlag;","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagDe = function SvgFlagDe(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 12\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h20v4H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"red\",\n d: \"M0 4h20v4H0z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fc0\",\n d: \"M0 8h20v4H0z\"\n })));\n};\nexport default SvgFlagDe;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagEs = function SvgFlagEs(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 750 500\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#c60b1e\",\n d: \"M0 0h750v500H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffc400\",\n d: \"M0 125h750v250H0z\"\n })));\n};\nexport default SvgFlagEs;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path0, _path1, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagFa = function SvgFlagFa(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 630 360\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h630v360H0Z\",\n style: {\n fill: \"#da0000\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h630v240H0Z\",\n style: {\n fill: \"#fff\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h630v120H0Z\",\n style: {\n fill: \"#239f40\"\n }\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 2\n }, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M8.4 101.8h36.4m-35 12.6v-7H21v5.6h11.2v-5.6h-7M14 113h2.8m28 0h-7v-5.6H49m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M8.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(8.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(8.4 100.4)\"\n }), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M64.4 101.8h36.4m-35 12.6v-7H77v5.6h11.2v-5.6h-7M70 113h2.8m28 0h-7v-5.6H105m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M64.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(64.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(64.4 100.4)\"\n }), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M120.4 101.8h36.4m-35 12.6v-7H133v5.6h11.2v-5.6h-7M126 113h2.8m28 0h-7v-5.6H161m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M120.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(120.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(120.4 100.4)\"\n }), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M176.4 101.8h36.4m-35 12.6v-7H189v5.6h11.2v-5.6h-7M182 113h2.8m28 0h-7v-5.6H217m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M176.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(176.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(176.4 100.4)\"\n }), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M232.4 101.8h36.4m-35 12.6v-7H245v5.6h11.2v-5.6h-7M238 113h2.8m28 0h-7v-5.6H273m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path0 || (_path0 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M232.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(232.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(232.4 100.4)\"\n }), _path1 || (_path1 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M288.4 101.8h36.4m-35 12.6v-7H301v5.6h11.2v-5.6h-7M294 113h2.8m28 0h-7v-5.6H329m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M288.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(288.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(288.4 100.4)\"\n }), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M344.4 101.8h36.4m-35 12.6v-7H357v5.6h11.2v-5.6h-7M350 113h2.8m28 0h-7v-5.6H385m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M344.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(344.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(344.4 100.4)\"\n }), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M400.4 101.8h36.4m-35 12.6v-7H413v5.6h11.2v-5.6h-7M406 113h2.8m28 0h-7v-5.6H441m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M400.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(400.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(400.4 100.4)\"\n }), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M456.4 101.8h36.4m-35 12.6v-7H469v5.6h11.2v-5.6h-7M462 113h2.8m28 0h-7v-5.6H497m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M456.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(456.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(456.4 100.4)\"\n }), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M512.4 101.8h36.4m-35 12.6v-7H525v5.6h11.2v-5.6h-7M518 113h2.8m28 0h-7v-5.6H553m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M512.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(512.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(512.4 100.4)\"\n }), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 2.8,\n d: \"M568.4 101.8h36.4m-35 12.6v-7H581v5.6h11.2v-5.6h-7M574 113h2.8m28 0h-7v-5.6H609m0-7V113h11.2v-12.6m-5.6 0V113\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 5.6,\n d: \"M568.4 120h25.2m2.8 0h25.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 139.6h25.2m2.8 0h25.2\",\n style: {\n strokeWidth: 5.6\n },\n transform: \"translate(568.4 100.4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 146.6h36.4m-35 12.6v-7h11.2v5.6h11.2v-5.6h-7m-11.2 5.6h2.8m28 0h-7v-5.6h11.2m0-7v12.6h11.2v-12.6m-5.6 0v12.6\",\n style: {\n strokeWidth: 2.8\n },\n transform: \"translate(568.4 100.4)\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#da0000\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M290.333 217.637a41.042 41.042 0 0 0 39.451-70.144 45 45 0 0 1-39.45 70.144\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M342.825 209.763a34.377 34.377 0 0 0-8.851-63.11 45 45 0 0 1 8.851 63.11M315 225l-2.25-45 2.25-35.428a13.95 13.95 0 0 0 5.312 4.46v26.45l-1.81 44.699zM314.1 141.75l.9.845a6.494 6.494 0 0 0 11.343-6.142A6.138 6.138 0 0 1 315 138.391\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M339.667 217.637a41.042 41.042 0 0 1-39.451-70.144 45 45 0 0 0 39.45 70.144\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M287.175 209.763a34.377 34.377 0 0 1 8.851-63.11 45 45 0 0 0-8.851 63.11M315 225l2.25-45-2.25-35.428a13.95 13.95 0 0 1-5.312 4.46v26.45l1.81 44.699ZM315.9 141.75l-.9.845a6.494 6.494 0 0 1-11.343-6.142A6.138 6.138 0 0 0 315 138.391\"\n }))));\n};\nexport default SvgFlagFa;","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagFr = function SvgFlagFr(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 15\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002395\",\n d: \"M0 0h8v15H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M8 0h8v15H8z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ED2939\",\n d: \"M16 0h8v15h-8z\"\n })));\n};\nexport default SvgFlagFr;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagGb = function SvgFlagGb(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 60 30\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00247d\",\n d: \"M0 0v30h60V0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 6,\n d: \"m0 0 60 30m0-30L0 30\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#cf142b\",\n strokeWidth: 4,\n d: \"m0 0 60 30m0-30L0 30\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 10,\n d: \"M30 0v30M0 15h60\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#cf142b\",\n strokeWidth: 6,\n d: \"M30 0v30M0 15h60\"\n })));\n};\nexport default SvgFlagGb;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagPl = function SvgFlagPl(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 10\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h16v10H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#dc143c\",\n d: \"M0 5h16v5H0z\"\n })));\n};\nexport default SvgFlagPl;","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagRo = function SvgFlagRo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 3 2\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002B7F\",\n d: \"M0 0h3v2H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FCD116\",\n d: \"M1 0h2v2H1z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CE1126\",\n d: \"M2 0h1v2H2z\"\n })));\n};\nexport default SvgFlagRo;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagTr = function SvgFlagTr(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 -30000 90000 60000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e30a17\",\n d: \"M0-30000h90000v60000H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m41750 0 13568-4408-8386 11541V-7133l8386 11541zm925 8021a15000 15000 0 1 1 0-16042 12000 12000 0 1 0 0 16042\"\n })));\n};\nexport default SvgFlagTr;","var _path, _path2, _path3, _g, _path4, _path5, _path6, _path7, _path8;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFlagUs = function SvgFlagUs(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 7410 3900\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#b22234\",\n d: \"M0 0h7410v3900H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 300,\n d: \"M0 450h7410m0 600H0m0 600h7410m0 600H0m0 600h7410m0 600H0\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3c3b6e\",\n d: \"M0 0h2964v2100H0z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"FlagUs_svg__d\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"FlagUs_svg__c\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"FlagUs_svg__e\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"FlagUs_svg__b\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"FlagUs_svg__a\",\n d: \"m247 90 70.534 217.082-184.66-134.164h228.253L176.466 307.082z\"\n }), /*#__PURE__*/React.createElement(\"use\", {\n y: 420,\n href: \"#FlagUs_svg__a\"\n }), /*#__PURE__*/React.createElement(\"use\", {\n y: 840,\n href: \"#FlagUs_svg__a\"\n }), /*#__PURE__*/React.createElement(\"use\", {\n y: 1260,\n href: \"#FlagUs_svg__a\"\n })), /*#__PURE__*/React.createElement(\"use\", {\n y: 1680,\n href: \"#FlagUs_svg__a\"\n })), /*#__PURE__*/React.createElement(\"use\", {\n x: 247,\n y: 210,\n href: \"#FlagUs_svg__b\"\n })), /*#__PURE__*/React.createElement(\"use\", {\n x: 494,\n href: \"#FlagUs_svg__c\"\n })), /*#__PURE__*/React.createElement(\"use\", {\n x: 988,\n href: \"#FlagUs_svg__d\"\n }), /*#__PURE__*/React.createElement(\"use\", {\n x: 1976,\n href: \"#FlagUs_svg__c\"\n }), /*#__PURE__*/React.createElement(\"use\", {\n x: 2470,\n href: \"#FlagUs_svg__e\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00247d\",\n d: \"M0 0v30h60V0z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 6,\n d: \"m0 0 60 30m0-30L0 30\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#cf142b\",\n strokeWidth: 4,\n d: \"m0 0 60 30m0-30L0 30\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeWidth: 10,\n d: \"M30 0v30M0 15h60\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#cf142b\",\n strokeWidth: 6,\n d: \"M30 0v30M0 15h60\"\n })));\n};\nexport default SvgFlagUs;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgInfoCircleFill = function SvgInfoCircleFill(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2\"\n })));\n};\nexport default SvgInfoCircleFill;","__turbopack_context__.v({\n \"alert\": \"Alert-module-scss-module__yQtkaq__alert\",\n \"content\": \"Alert-module-scss-module__yQtkaq__content\",\n \"error\": \"Alert-module-scss-module__yQtkaq__error\",\n \"icon\": \"Alert-module-scss-module__yQtkaq__icon\",\n \"iconContainer\": \"Alert-module-scss-module__yQtkaq__iconContainer\",\n \"info\": \"Alert-module-scss-module__yQtkaq__info\",\n \"success\": \"Alert-module-scss-module__yQtkaq__success\",\n \"warning\": \"Alert-module-scss-module__yQtkaq__warning\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type HTMLProps, type ReactNode, type SVGAttributes } from 'react';\n\nimport { Check, CrossCircleFill, ExclamationTriangleFill, InfoCircleFill } from 'icons';\n\nimport styles from './Alert.module.scss';\n\ninterface Props extends HTMLProps<HTMLDivElement> {\n children: ReactNode;\n className?: string;\n variant: 'error' | 'info' | 'success' | 'warning';\n}\n\nconst ICON_PER_TYPE: Record<Props['variant'], FunctionComponent<SVGAttributes<SVGElement>>> = {\n error: CrossCircleFill,\n info: InfoCircleFill,\n success: Check,\n warning: ExclamationTriangleFill,\n};\n\nexport const Alert: FunctionComponent<Props> = ({ children, className, variant, ...props }) => {\n const Icon = ICON_PER_TYPE[variant];\n\n return (\n <div\n className={classNames(styles.alert, className, {\n [styles.error]: variant === 'error',\n [styles.info]: variant === 'info',\n [styles.success]: variant === 'success',\n [styles.warning]: variant === 'warning',\n })}\n {...props}\n >\n <div className={styles.iconContainer}>\n <Icon aria-hidden=\"true\" className={styles.icon} role=\"img\" />\n </div>\n\n <div className={styles.content}>{children}</div>\n </div>\n );\n};\n","export { Alert } from './Alert';\n","__turbopack_context__.v({\n \"badge\": \"Badge-module-scss-module__xmO4EG__badge\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type ReactNode } from 'react';\n\nimport styles from './Badge.module.scss';\n\ninterface Props {\n children?: ReactNode;\n className?: string;\n}\n\nexport const Badge: FunctionComponent<Props> = ({ children, className }) => (\n <div className={classNames(styles.badge, className)}>{children}</div>\n);\n","export { Badge } from './Badge';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VOWELS = exports.CONSONANTS = exports.NO_BONUS = exports.EMPTY_CELL = exports.BONUS_WORD = exports.BONUS_CHARACTER = exports.BLANK = exports.COMMA_LATIN = exports.COMMA_ARABIC = void 0;\nexports.COMMA_ARABIC = '،';\nexports.COMMA_LATIN = ',';\nexports.BLANK = ' ';\nexports.BONUS_CHARACTER = 'BONUS_CHARACTER';\nexports.BONUS_WORD = 'BONUS_WORD';\nexports.EMPTY_CELL = ' ';\nexports.NO_BONUS = { characterMultiplier: 1, wordMultiplier: 1 };\nexports.CONSONANTS = 'bcçćdfgğhjklłmnńñpqrsşśtvwxzźż'.split('');\nexports.VOWELS = 'aąäeęioóöuüyı'.split('');\n","import { type Result } from '@scrabble-solver/types';\nimport { type FunctionComponent, type SVGAttributes } from 'react';\n\nexport type Comparator<T> = (a: T, B: T) => number;\n\nexport type AutoGroupTiles = 'left' | 'right' | null;\n\nexport type CellFilterType = 'include' | 'exclude';\n\nexport type CellFilter = {\n x: Point['x'];\n y: Point['y'];\n type: CellFilterType;\n};\n\nexport type RemoveCellFilters = 'always' | 'never' | null;\n\nexport type Direction = 'horizontal' | 'vertical';\n\nexport type InputMode = 'keyboard' | 'touchscreen';\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport type Rack = (string | null)[];\n\nexport interface Sort {\n column: ResultColumnId;\n direction: SortDirection;\n}\n\nexport enum SortDirection {\n Ascending = 'ascending',\n Descending = 'descending',\n}\n\nexport interface RemainingTile {\n character: string;\n count?: number;\n score: number;\n usedCount: number;\n}\n\nexport interface RemainingTilesGroup {\n remainingCount: number;\n tiles: RemainingTile[];\n translationKey: TranslationKey;\n totalCount: number;\n}\n\nexport enum ResultColumnId {\n BlanksCount = 'blanks-count',\n ConsonantsCount = 'consonants-count',\n Coordinates = 'coordinates',\n Points = 'points',\n TilesCount = 'tiles-count',\n VowelsCount = 'vowels-count',\n Word = 'word',\n WordsCount = 'words-count',\n}\n\nexport interface ResultColumn {\n className: string;\n Icon?: FunctionComponent<SVGAttributes<SVGElement>>;\n id: ResultColumnId;\n translationKey: TranslationKey;\n width?: number;\n}\n\nexport interface GroupedResults {\n matching: Result[];\n other: Result[];\n}\n\nexport type TranslationKey =\n | 'cell.enter-word'\n | 'cell.filter-cell.exclude'\n | 'cell.filter-cell.include'\n | 'cell.set-blank'\n | 'cell.set-not-blank'\n | 'cell.tile.location'\n | 'cell.toggle-direction'\n | 'common.arrows'\n | 'common.clear'\n | 'common.close'\n | 'common.loading'\n | 'common.blanks'\n | 'common.consonants'\n | 'common.next'\n | 'common.points'\n | 'common.previous'\n | 'common.space'\n | 'common.tiles'\n | 'common.two-letter-tiles'\n | 'common.vowels'\n | 'common.word'\n | 'common.words'\n | 'dictionary'\n | 'dictionary.empty-state.no-definitions'\n | 'dictionary.empty-state.no-results'\n | 'dictionary.empty-state.not-allowed'\n | 'dictionary.empty-state.uninitialized'\n | 'dictionary.input.placeholder'\n | 'dictionary.input.title'\n | 'empty-state.error'\n | 'empty-state.info'\n | 'empty-state.success'\n | 'empty-state.warning'\n | 'github'\n | 'keyMap'\n | 'keyMap.board'\n | 'keyMap.board.toggle-blank'\n | 'keyMap.board.toggle-cell-filter'\n | 'keyMap.board.toggle-direction'\n | 'keyMap.board-and-rack'\n | 'keyMap.board-and-rack.insert-two-letter-tile'\n | 'keyMap.board-and-rack.navigate'\n | 'keyMap.board-and-rack.remove-tile'\n | 'keyMap.board-and-rack.submit'\n | 'keyMap.rack'\n | 'keyMap.rack.insert-blank'\n | 'menu'\n | 'rack.placeholder'\n | 'rack.tile.location'\n | 'rack.touchscreen.placeholder'\n | 'remaining-tiles'\n | 'results'\n | 'results.empty-state.no-results'\n | 'results.empty-state.outdated'\n | 'results.empty-state.uninitialized'\n | 'results.input.placeholder'\n | 'results.insert'\n | 'results.preview'\n | 'results.solve'\n | 'settings'\n | 'settings.autoGroupTiles'\n | 'settings.autoGroupTiles.left'\n | 'settings.autoGroupTiles.right'\n | 'settings.autoGroupTiles.null'\n | 'settings.game'\n | 'settings.inputMode'\n | 'settings.inputMode.keyboard'\n | 'settings.inputMode.touchscreen'\n | 'settings.removeCellFilters'\n | 'settings.removeCellFilters.always'\n | 'settings.removeCellFilters.never'\n | 'settings.language'\n | 'settings.showCoordinates'\n | 'settings.showCoordinates.alternative'\n | 'settings.showCoordinates.hidden'\n | 'settings.showCoordinates.original'\n | 'words'\n | 'words.invalid'\n | 'words.valid';\n\nexport type Translate = (key: TranslationKey, replacements?: Record<string, string>) => string;\n\nexport type Translations = Record<TranslationKey, string>;\n\nexport * from './api';\n","import { ResultColumnId } from 'types';\n\nexport const BREAKPOINTS = {\n xs: 480,\n s: 768,\n m: 992,\n l: 1200,\n xl: 1400,\n};\n\nexport const TRANSITION = 'var(--transition)';\n\nexport const GITHUB_PROJECT_URL = 'https://github.com/kamilmielnik/scrabble-solver';\n\nexport const TRANSITION_DURATION = 100;\nexport const TRANSITION_DURATION_LONG = 250;\n\nexport const COLOR_BLUE = '#c7d8f9';\nexport const COLOR_GREEN = '#bae3ba';\nexport const COLOR_RED = '#f7c2aa';\nexport const COLOR_YELLOW = '#efe3ae';\n\nexport const COLOR_BONUS_CHARACTER_1 = '#f7f1d6';\nexport const COLOR_BONUS_CHARACTER_2 = '#d6ebd6';\nexport const COLOR_BONUS_CHARACTER_3 = '#dde4f6';\nexport const COLOR_BONUS_CHARACTER_5 = '#fbe0d4';\nexport const COLOR_BONUS_CHARACTER_MULTIPLIER_2 = '#b8d5ed';\nexport const COLOR_BONUS_CHARACTER_MULTIPLIER_3 = '#86aed1';\nexport const COLOR_BONUS_CHARACTER_MULTIPLIER_4 = '#3477b2';\nexport const COLOR_BONUS_START = '#b284b8';\nexport const COLOR_BONUS_WORD_MULTIPLIER_2 = '#fbc997';\nexport const COLOR_BONUS_WORD_MULTIPLIER_3 = '#f19393';\nexport const COLOR_BONUS_WORD_MULTIPLIER_4 = '#ed5e5e';\nexport const COLOR_FILTERED = '#444';\nexport const COLOR_BACKGROUND = '#f4f4f4';\n\nexport const COLOR_BONUS_CHARACTER: Record<number, string> = {\n 1: COLOR_BONUS_CHARACTER_1,\n 2: COLOR_BONUS_CHARACTER_2,\n 3: COLOR_BONUS_CHARACTER_3,\n 5: COLOR_BONUS_CHARACTER_5,\n};\n\nexport const COLOR_BONUS_CHARACTER_MULTIPLIER: Record<number, string> = {\n 2: COLOR_BONUS_CHARACTER_MULTIPLIER_2,\n 3: COLOR_BONUS_CHARACTER_MULTIPLIER_3,\n 4: COLOR_BONUS_CHARACTER_MULTIPLIER_4,\n};\n\nexport const COLOR_BONUS_WORD: Record<number, string> = {\n 2: COLOR_BONUS_WORD_MULTIPLIER_2,\n 3: COLOR_BONUS_WORD_MULTIPLIER_3,\n 4: COLOR_BONUS_WORD_MULTIPLIER_4,\n};\n\nexport const SPACING_XS = 2;\nexport const SPACING_S = 5;\nexport const SPACING_M = 10;\nexport const SPACING_L = 20;\nexport const SPACING_XL = 40;\n\nexport const COMPONENTS_SPACING = SPACING_XL;\nexport const COMPONENTS_SPACING_SMALL = SPACING_L;\n\nexport const BOARD_CELL_ACTIONS_OFFSET = 3;\nexport const BOARD_CELL_BORDER_WIDTH = 1;\nexport const BOARD_TILE_FONT_SIZE_MIN = 14;\nexport const BOARD_TILE_FONT_SIZE_POINTS_MIN = 10;\nexport const BOARD_TILE_SIZE_MAX = 64;\n\nexport const BORDER_COLOR = '#cdcdcd';\nexport const BORDER_COLOR_LIGHT = '#d9d9d9';\nexport const BORDER_RADIUS = 5;\nexport const BORDER_WIDTH = 1;\n\nexport const BUTTON_ICON_SIZE = 24;\nexport const BUTTON_PADDING_VERTICAL = SPACING_M;\nexport const BUTTON_HEIGHT = BUTTON_ICON_SIZE + 2 * BUTTON_PADDING_VERTICAL + 2 * BORDER_WIDTH;\n\nexport const DICTIONARY_HEIGHT = 260;\nexport const DICTIONARY_HEIGHT_MOBILE = 110;\n\nexport const LOGO_ASPECT_RATIO = 682 / 166;\nexport const LOGO_HEIGHT = 60;\nexport const LOGO_HEIGHT_SMALL = 48;\nexport const LOGO_SRC = '/logo.svg';\n\nexport const MODAL_WIDTH = 370;\nexport const MODAL_HEADER_HEIGHT = 45;\n\nexport const NAV_PADDING = SPACING_L;\n\nexport const TILE_SIZE = 80;\n\nexport const TOOLTIP_DURATION = TRANSITION_DURATION;\n\nexport const PLAIN_TILES_COLOR_DEFAULT = COLOR_GREEN;\nexport const PLAIN_TILES_PADDING_HORIZONTAL = 0;\nexport const PLAIN_TILES_PADDING_VERTICAL = 0;\nexport const PLAIN_TILES_POINTS_COLORS: Record<number, string> = {\n 1: COLOR_YELLOW,\n 2: COLOR_GREEN,\n 3: COLOR_BLUE,\n 4: COLOR_RED,\n 5: COLOR_RED,\n 6: COLOR_RED,\n 7: COLOR_RED,\n 8: COLOR_RED,\n 9: COLOR_RED,\n 10: COLOR_RED,\n};\nexport const PLAIN_TILES_TILE_MARGIN = 6;\nexport const PLAIN_TILES_TILE_MAX_ROTATE = 0;\nexport const PLAIN_TILES_TILE_MAX_SCATTER = 0;\nexport const PLAIN_TILES_TILE_SIZE = 80;\nexport const PLAIN_TILES_VERSION_TILE_COLOR = COLOR_GREEN;\nexport const PLAIN_TILES_VERSION_TILE_SIZE = TILE_SIZE;\n\nexport const PROGRESS_COLOR_VALUE = 'var(--color--violet--light)';\nexport const PROGRESS_COLOR_BACKGROUND = 'var(--color--inactive)';\n\nexport const RACK_TILE_SIZE_MAX = 80;\n\nexport const REMAINING_TILES_TILE_SIZE = 50;\n\nexport const RESULTS_COLUMN_WIDTH: Record<ResultColumnId, number | undefined> = {\n [ResultColumnId.BlanksCount]: 55,\n [ResultColumnId.ConsonantsCount]: 55,\n [ResultColumnId.Coordinates]: 55,\n [ResultColumnId.Points]: 80,\n [ResultColumnId.TilesCount]: 55,\n [ResultColumnId.VowelsCount]: 55,\n [ResultColumnId.Word]: undefined,\n [ResultColumnId.WordsCount]: 55,\n};\nexport const RESULTS_ITEM_HEIGHT = 40;\n\nexport const RESULTS_HEADER_HEIGHT = RESULTS_ITEM_HEIGHT;\n\nexport const SOLVER_COLUMN_WIDTH = 580;\n\nexport const TEXT_INPUT_HEIGHT = 40;\n","import { createAction } from '@reduxjs/toolkit';\n\nexport const initialize = createAction('initialize');\n\nexport const reset = createAction('reset');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObject = void 0;\nconst isObject = (value) => {\n return typeof value === 'object' && value !== null;\n};\nexports.isObject = isObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMultiplierBingo = exports.isScoreBingo = exports.isBingo = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst isBingo = (value) => {\n return (0, exports.isScoreBingo)(value) || (0, exports.isMultiplierBingo)(value);\n};\nexports.isBingo = isBingo;\nconst isScoreBingo = (value) => {\n return (0, isObject_1.isObject)(value) && 'score' in value && typeof value.score === 'number';\n};\nexports.isScoreBingo = isScoreBingo;\nconst isMultiplierBingo = (value) => {\n return (0, isObject_1.isObject)(value) && 'multiplier' in value && typeof value.multiplier === 'number';\n};\nexports.isMultiplierBingo = isMultiplierBingo;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tile = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nclass Tile {\n constructor({ character, isBlank = false }) {\n this.character = character;\n this.isBlank = isBlank;\n }\n clone() {\n return new Tile({\n character: this.character,\n isBlank: this.isBlank,\n });\n }\n equals(other) {\n return this.character === other.character && this.isBlank === other.isBlank;\n }\n toJson() {\n return {\n character: this.character,\n isBlank: this.isBlank,\n };\n }\n toString() {\n return this.character;\n }\n}\nexports.Tile = Tile;\nTile.fromJson = (json) => {\n if (!json) {\n return Tile.Null;\n }\n return new Tile({\n character: json.character,\n isBlank: json.isBlank,\n });\n};\nTile.Null = Object.freeze({\n character: constants_1.EMPTY_CELL,\n isBlank: false,\n clone: () => Tile.Null,\n equals: (other) => other === Tile.Null,\n toJson: () => null,\n toString: () => constants_1.EMPTY_CELL,\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Cell = void 0;\nconst Tile_1 = require(\"./Tile\");\nclass Cell {\n constructor({ isEmpty = true, tile = Tile_1.Tile.Null, x, y }) {\n this.isEmpty = isEmpty;\n this.tile = tile;\n this.x = x;\n this.y = y;\n }\n clone() {\n return new Cell({\n isEmpty: this.isEmpty,\n tile: this.tile.clone(),\n x: this.x,\n y: this.y,\n });\n }\n equals(other) {\n return this.x === other.x && this.y === other.y && this.isEmpty === other.isEmpty && this.tile.equals(other.tile);\n }\n hasTile() {\n return this.tile !== Tile_1.Tile.Null;\n }\n isCandidate() {\n return this.isEmpty && this.hasTile();\n }\n toJson() {\n return {\n isEmpty: this.isEmpty,\n tile: this.tile.toJson(),\n x: this.x,\n y: this.y,\n };\n }\n toString() {\n return this.tile.toString();\n }\n}\nexports.Cell = Cell;\nCell.fromJson = (json) => {\n return new Cell({\n isEmpty: json.isEmpty,\n tile: Tile_1.Tile.fromJson(json.tile),\n x: json.x,\n y: json.y,\n });\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Board = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Cell_1 = require(\"./Cell\");\nconst Tile_1 = require(\"./Tile\");\nclass Board {\n static fromStringArray(stringArray) {\n return new Board({\n rows: stringArray.map((row, y) => row.split('').map((character, x) => new Cell_1.Cell({\n isEmpty: !character || character === constants_1.EMPTY_CELL,\n tile: character === constants_1.EMPTY_CELL ? Tile_1.Tile.Null : new Tile_1.Tile({ character }),\n x,\n y,\n }))),\n });\n }\n constructor({ rows }) {\n this.rows = rows;\n this.columnsCount = rows[0].length;\n this.rowsCount = rows.length;\n }\n get center() {\n const x = Math.floor(this.columnsCount / 2);\n const y = Math.floor(this.rowsCount / 2);\n return this.rows[y][x];\n }\n clone() {\n const rows = this.rows.map((row) => row.map((cell) => cell.clone()));\n return new Board({ rows });\n }\n collides(cell) {\n return this.collidesUp(cell) || this.collidesDown(cell) || this.collidesLeft(cell) || this.collidesRight(cell);\n }\n collidesDown({ x, y }) {\n return y < this.rowsCount - 1 && !this.rows[y + 1][x].isEmpty;\n }\n collidesLeft({ x, y }) {\n return x > 0 && !this.rows[y][x - 1].isEmpty;\n }\n collidesRight({ x, y }) {\n return x < this.columnsCount - 1 && !this.rows[y][x + 1].isEmpty;\n }\n collidesUp({ x, y }) {\n return y > 0 && !this.rows[y - 1][x].isEmpty;\n }\n equals(other) {\n return (this.columnsCount === other.columnsCount &&\n this.rowsCount === other.rowsCount &&\n this.rows.every((row, rowIndex) => {\n return row.every((cell, cellIndex) => {\n return cell.equals(other.rows[rowIndex][cellIndex]);\n });\n }));\n }\n getBlanksCount() {\n return this.rows.reduce((count, row) => {\n return count + row.reduce((rowCount, cell) => rowCount + (cell.tile.isBlank ? 1 : 0), 0);\n }, 0);\n }\n getColumn(index) {\n return this.rows.map((row) => row[index]);\n }\n getRow(index) {\n return this.rows[index];\n }\n getTilesCount() {\n return this.rows.reduce((count, row) => {\n return count + row.reduce((rowCount, cell) => rowCount + (cell.hasTile() ? 1 : 0), 0);\n }, 0);\n }\n getWords() {\n const horizontalWords = getHorizontalWords(this.rows);\n const verticalWords = getHorizontalWords(transpose(this.rows));\n return [...horizontalWords, ...verticalWords];\n }\n isEmpty() {\n return this.rows.every((row) => row.every(({ isEmpty }) => isEmpty));\n }\n toJson() {\n return this.rows.map((row) => row.map((cell) => cell.toJson()));\n }\n toString() {\n return this.rows.map((row) => row.map(String).join('')).join('\\n');\n }\n updateCell(x, y, updateCell) {\n this.rows[y][x] = updateCell(this.rows[y][x]);\n }\n updateRow(y, updateRow) {\n this.rows[y] = updateRow(this.rows[y]);\n }\n}\nexports.Board = Board;\nBoard.create = (width, height) => {\n const rows = Array(height);\n const emptyRow = Array(width).fill(' ').join('');\n const emptyRows = rows.fill(emptyRow);\n return Board.fromStringArray(emptyRows);\n};\nBoard.fromJson = (json) => {\n return new Board({\n rows: json.map((row) => row.map(Cell_1.Cell.fromJson)),\n });\n};\nconst transpose = (array) => {\n const rows = array.length;\n const cols = array[0].length;\n const transposed = Array(cols)\n .fill(null)\n .map(() => Array(rows));\n for (let y = 0; y < rows; ++y) {\n for (let x = 0; x < cols; ++x) {\n transposed[x][y] = array[y][x];\n }\n }\n return transposed;\n};\nconst getHorizontalWords = (cells) => {\n const words = [];\n for (const row of cells) {\n let currentWord = [];\n for (const cell of row) {\n if (!cell.isEmpty) {\n currentWord.push(cell);\n }\n else if (currentWord.length > 0) {\n if (currentWord.length > 1) {\n words.push(wordToString(currentWord));\n }\n currentWord = [];\n }\n }\n if (currentWord.length > 1) {\n words.push(wordToString(currentWord));\n }\n }\n return words;\n};\nconst wordToString = (word) => {\n return word.map((cell) => cell.tile.character).join('');\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTileJson = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst isTileJson = (value) => {\n return (0, isObject_1.isObject)(value) && typeof value.character === 'string' && typeof value.isBlank === 'boolean';\n};\nexports.isTileJson = isTileJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCellJson = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst TileJson_1 = require(\"./TileJson\");\nconst isCellJson = (value) => {\n return ((0, isObject_1.isObject)(value) &&\n typeof value.isEmpty === 'boolean' &&\n ((0, TileJson_1.isTileJson)(value.tile) || value.tile === null) &&\n typeof value.x === 'number' &&\n typeof value.y === 'number');\n};\nexports.isCellJson = isCellJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBoardJson = void 0;\nconst CellJson_1 = require(\"./CellJson\");\nconst isBoardJson = (value) => {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const row of value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const cell of row) {\n if (!(0, CellJson_1.isCellJson)(cell)) {\n return false;\n }\n }\n }\n return true;\n};\nexports.isBoardJson = isBoardJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bonus = void 0;\nclass Bonus {\n constructor({ multiplier, score, x, y }) {\n this.multiplier = multiplier;\n this.score = score;\n this.x = x;\n this.y = y;\n }\n canApply(_config, cell) {\n return cell.isEmpty && this.matchesCellCoordinates(cell);\n }\n matchesCellCoordinates(cell) {\n return this.x === cell.x && this.y === cell.y;\n }\n toJson() {\n return {\n multiplier: this.multiplier,\n score: this.score,\n type: this.type,\n x: this.x,\n y: this.y,\n };\n }\n get value() {\n return {\n characterMultiplier: 1,\n wordMultiplier: 1,\n };\n }\n}\nexports.Bonus = Bonus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CharacterBonus = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Bonus_1 = require(\"./Bonus\");\nclass CharacterBonus extends Bonus_1.Bonus {\n constructor() {\n super(...arguments);\n this.type = constants_1.BONUS_CHARACTER;\n }\n canApply(config, cell) {\n return super.canApply(config, cell) && this.matchesCellTileScore(config, cell);\n }\n matchesCellTileScore(config, cell) {\n if (typeof this.score === 'undefined') {\n return true;\n }\n return this.score === config.pointsMap[cell.tile.character];\n }\n get value() {\n return {\n characterMultiplier: this.multiplier,\n wordMultiplier: 1,\n };\n }\n}\nexports.CharacterBonus = CharacterBonus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WordBonus = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Bonus_1 = require(\"./Bonus\");\nclass WordBonus extends Bonus_1.Bonus {\n constructor() {\n super(...arguments);\n this.type = constants_1.BONUS_WORD;\n }\n get value() {\n return {\n characterMultiplier: 1,\n wordMultiplier: this.multiplier,\n };\n }\n}\nexports.WordBonus = WordBonus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Config = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst CharacterBonus_1 = require(\"./CharacterBonus\");\nconst WordBonus_1 = require(\"./WordBonus\");\nclass Config {\n constructor(config) {\n this.bonuses = getBonuses(config);\n this.config = config;\n this.pointsMap = getPointsMap(this.config);\n }\n get alphabet() {\n return getAlphabet(this.config);\n }\n get bingo() {\n return this.config.bingo;\n }\n get blankScore() {\n return this.config.blankScore;\n }\n get blanksCount() {\n return this.config.blanksCount;\n }\n get boardHeight() {\n return this.config.boardHeight;\n }\n get boardWidth() {\n return this.config.boardWidth;\n }\n get game() {\n return this.config.game;\n }\n get locale() {\n return this.config.locale;\n }\n get twoCharacterTiles() {\n return this.config.tiles.filter((tile) => tile.character.length === 2).map((tile) => tile.character);\n }\n getCellBonus(cell) {\n return this.bonuses.find((bonus) => bonus.matchesCellCoordinates(cell));\n }\n getCellBonusValue(cell) {\n return this.getCellBonus(cell)?.value || constants_1.NO_BONUS;\n }\n getCharacterPoints(character) {\n if (character === null) {\n return undefined;\n }\n if (character === constants_1.BLANK) {\n return this.blankScore;\n }\n return this.pointsMap[character];\n }\n getTwoCharacterTileByPrefix(character) {\n if (character.length !== 1) {\n return undefined;\n }\n return this.twoCharacterTiles.find((characters) => characters.startsWith(character));\n }\n getTilePoints(tile) {\n if (tile === null) {\n return undefined;\n }\n return tile.isBlank ? this.blankScore : this.getCharacterPoints(tile.character);\n }\n hasCharacter(character) {\n return character in this.pointsMap;\n }\n isTwoCharacterTilePrefix(character) {\n return typeof this.getTwoCharacterTileByPrefix(character) !== 'undefined';\n }\n get rackSize() {\n return this.config.rackSize;\n }\n get supportsRemainingTiles() {\n return this.tiles.every((tile) => typeof tile.count === 'number');\n }\n get tiles() {\n return this.config.tiles;\n }\n toJson() {\n return this.config;\n }\n}\nexports.Config = Config;\nConfig.fromJson = (json) => {\n return new Config(json);\n};\nconst getBonuses = (config) => {\n return config.bonuses.map((bonus) => {\n if (bonus.type === constants_1.BONUS_CHARACTER) {\n return new CharacterBonus_1.CharacterBonus(bonus);\n }\n if (bonus.type === constants_1.BONUS_WORD) {\n return new WordBonus_1.WordBonus(bonus);\n }\n throw new Error(`Unsupported Bonus type: \"${bonus.type}\"`);\n });\n};\nconst getAlphabet = (config) => config.tiles.map(({ character }) => character);\nconst getPointsMap = (config) => config.tiles.reduce((pointsMap, { character, score }) => ({\n ...pointsMap,\n [character]: score,\n}), {});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pattern = void 0;\nclass Pattern {\n constructor(board, cells) {\n this.board = board;\n this.cells = cells;\n }\n canBePlaced(config) {\n const emptyCellsCount = this.getEmptyCellsCount();\n const isUsedCellsCountInRange = emptyCellsCount >= 1 && emptyCellsCount <= config.rackSize;\n return (isUsedCellsCountInRange &&\n (this.hasAtLeast1NonEmptyCell() || this.collides() || (this.goesThroughBoardCenter() && this.board.isEmpty())));\n }\n clone() {\n return new Pattern(this.board, this.cells.map((cell) => cell.clone()));\n }\n collides() {\n return this.cells.some((cell) => cell.isEmpty && this.board.collides(cell));\n }\n getIndexOfFirstCellWithoutTile() {\n return this.cells.findIndex((cell) => !cell.hasTile());\n }\n getEmptyCellsCount() {\n return this.cells.filter((cell) => cell.isEmpty).length;\n }\n goesThroughBoardCenter() {\n return this.cells.some((cell) => cell.x === this.board.center.x && cell.y === this.board.center.y && cell.isEmpty);\n }\n hasAtLeast1EmptyCell() {\n return this.cells.some((cell) => cell.isEmpty);\n }\n hasAtLeast1NonEmptyCell() {\n return this.cells.some((cell) => !cell.isEmpty);\n }\n getCollisions() {\n return [];\n }\n toJson() {\n return {\n cells: this.cells.map((cell) => cell.toJson()),\n collisions: this.getCollisions().map((collision) => collision.toJson()),\n word: this.toString(),\n };\n }\n toString() {\n return this.cells.reduce((result, cell) => result + cell.toString(), '');\n }\n}\nexports.Pattern = Pattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalPattern = void 0;\nconst Pattern_1 = require(\"./Pattern\");\nclass FinalPattern extends Pattern_1.Pattern {\n constructor(pattern) {\n super(pattern.board, pattern.cells);\n this.collisions = pattern.getCollisions();\n }\n getCollisions() {\n return this.collisions;\n }\n}\nexports.FinalPattern = FinalPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isGame = exports.Game = void 0;\nvar Game;\n(function (Game) {\n Game[\"Kelimelik\"] = \"kelimelik\";\n Game[\"LetterLeague\"] = \"letter-league\";\n Game[\"Literaki\"] = \"literaki\";\n Game[\"Scrabble\"] = \"scrabble\";\n Game[\"ScrabbleDuel\"] = \"scrabble-duel\";\n Game[\"SuperScrabble\"] = \"super-scrabble\";\n})(Game || (exports.Game = Game = {}));\nconst games = Object.values(Game);\nconst isGame = (locale) => games.includes(locale);\nexports.isGame = isGame;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HorizontalPattern = void 0;\nconst Pattern_1 = require(\"./Pattern\");\nclass HorizontalPattern extends Pattern_1.Pattern {\n clone() {\n return new HorizontalPattern(this.board, this.cells.map((cell) => cell.clone()));\n }\n getCollisions() {\n const collisions = [];\n this.cells\n .filter((cell) => cell.isEmpty && (this.board.collidesUp(cell) || this.board.collidesDown(cell)))\n .forEach((cell) => {\n const column = this.board.getColumn(cell.x);\n let y = cell.y - 1;\n while (y >= 0 && column[y].hasTile()) {\n --y;\n }\n const previousCells = column.slice(y + 1, cell.y);\n y = cell.y + 1;\n while (y < column.length && column[y].hasTile()) {\n ++y;\n }\n const nextCells = column.slice(cell.y + 1, y);\n const cells = [...previousCells, cell, ...nextCells];\n if (cells.length > 1) {\n const pattern = new Pattern_1.Pattern(this.board, cells);\n collisions.push(pattern);\n }\n });\n return collisions;\n }\n}\nexports.HorizontalPattern = HorizontalPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isError = void 0;\nconst isObject_1 = require(\"./isObject\");\nconst isError = (value) => {\n if (!(0, isObject_1.isObject)(value)) {\n return false;\n }\n return typeof value.message === 'string';\n};\nexports.isError = isError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isLocale = exports.Locale = void 0;\n/**\n * Locales are defined using IETF language tags\n * @see https://en.wikipedia.org/wiki/IETF_language_tag\n * @see https://en.wikipedia.org/wiki/ISO_3166-1\n */\nvar Locale;\n(function (Locale) {\n Locale[\"DE_DE\"] = \"de-DE\";\n Locale[\"EN_GB\"] = \"en-GB\";\n Locale[\"EN_US\"] = \"en-US\";\n Locale[\"ES_ES\"] = \"es-ES\";\n Locale[\"FA_IR\"] = \"fa-IR\";\n Locale[\"FR_FR\"] = \"fr-FR\";\n Locale[\"PL_PL\"] = \"pl-PL\";\n Locale[\"RO_RO\"] = \"ro-RO\";\n Locale[\"TR_TR\"] = \"tr-TR\";\n})(Locale || (exports.Locale = Locale = {}));\nconst locales = Object.values(Locale);\nconst isLocale = (locale) => locales.includes(locale);\nexports.isLocale = isLocale;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Result = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst Cell_1 = require(\"./Cell\");\nclass Result {\n constructor({ cells, id, collisions, points, }) {\n const tiles = getTiles(cells);\n this.blanksCount = getBlanks(tiles).length;\n this.cells = cells;\n this.collisions = collisions;\n this.consonantsCount = getConsonants(tiles).length;\n this.id = id;\n this.length = cells.length;\n this.points = points;\n this.pointsRatio = getPointsRatio(tiles, points);\n this.tiles = tiles;\n this.tilesCount = tiles.length;\n this.vowelsCount = getVowels(tiles).length;\n this.word = getWord(cells);\n this.words = getWords(cells, collisions);\n this.wordsCount = 1 + this.collisions.length;\n }\n toJson() {\n return {\n cells: this.cells.map((cell) => cell.toJson()),\n id: this.id,\n collisions: this.collisions.map((collision) => collision.map((cell) => cell.toJson())),\n points: this.points,\n };\n }\n isHorizontal() {\n return this.cells[0].y === this.cells[1].y;\n }\n isVertical() {\n return this.cells[0].x === this.cells[1].x;\n }\n}\nexports.Result = Result;\nResult.fromJson = (json) => {\n return new Result({\n id: json.id,\n cells: json.cells.map(Cell_1.Cell.fromJson),\n collisions: json.collisions.map((collision) => collision.map(Cell_1.Cell.fromJson)),\n points: json.points,\n });\n};\nconst getBlanks = (tiles) => tiles.filter(({ isBlank }) => isBlank);\nconst getConsonants = (tiles) => tiles.filter(isConsonant);\nconst getVowels = (tiles) => tiles.filter(isVowel);\nconst getPointsRatio = (tiles, points) => points / tiles.length;\nconst getTiles = (cells) => cells.filter(({ isEmpty }) => isEmpty).map(({ tile }) => tile);\nconst getWord = (cells) => cells.reduce((word, cell) => word + cell.toString(), '');\nconst getWords = (cells, collisions) => [cells, ...collisions].map(getWord);\nconst isConsonant = ({ character, isBlank }) => constants_1.CONSONANTS.includes(character) && !isBlank;\nconst isVowel = ({ character, isBlank }) => constants_1.VOWELS.includes(character) && !isBlank;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VerticalPattern = void 0;\nconst Pattern_1 = require(\"./Pattern\");\nclass VerticalPattern extends Pattern_1.Pattern {\n clone() {\n return new VerticalPattern(this.board, this.cells.map((cell) => cell.clone()));\n }\n getCollisions() {\n const collisions = [];\n this.cells\n .filter((cell) => cell.isEmpty && (this.board.collidesLeft(cell) || this.board.collidesRight(cell)))\n .forEach((cell) => {\n const row = this.board.getRow(cell.y);\n let x = cell.x - 1;\n while (x >= 0 && row[x].hasTile()) {\n --x;\n }\n const previousCells = row.slice(x + 1, cell.x);\n x = cell.x + 1;\n while (x < row.length && row[x].hasTile()) {\n ++x;\n }\n const nextCells = row.slice(cell.x + 1, x);\n const cells = [...previousCells, cell, ...nextCells];\n if (cells.length > 1) {\n const pattern = new Pattern_1.Pattern(this.board, cells);\n collisions.push(pattern);\n }\n });\n return collisions;\n }\n}\nexports.VerticalPattern = VerticalPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WordDefinition = void 0;\nclass WordDefinition {\n constructor({ definitions, exists, isAllowed, word }) {\n this.definitions = definitions;\n this.exists = exists;\n this.isAllowed = isAllowed;\n this.word = word;\n }\n toJson() {\n return {\n definitions: this.definitions,\n exists: this.exists,\n isAllowed: this.isAllowed,\n word: this.word,\n };\n }\n}\nexports.WordDefinition = WordDefinition;\nWordDefinition.fromJson = (json) => {\n if (!json) {\n return WordDefinition.Null;\n }\n return new WordDefinition({\n definitions: json.definitions,\n exists: json.exists,\n isAllowed: json.isAllowed,\n word: json.word,\n });\n};\nWordDefinition.Null = Object.freeze({\n definitions: [],\n exists: false,\n isAllowed: false,\n word: '',\n toJson: () => null,\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.Locale = exports.isLocale = exports.isObject = exports.isError = exports.HorizontalPattern = exports.isGame = exports.Game = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = exports.isScoreBingo = exports.isMultiplierBingo = exports.isBingo = void 0;\nvar Bingo_1 = require(\"./Bingo\");\nObject.defineProperty(exports, \"isBingo\", { enumerable: true, get: function () { return Bingo_1.isBingo; } });\nObject.defineProperty(exports, \"isMultiplierBingo\", { enumerable: true, get: function () { return Bingo_1.isMultiplierBingo; } });\nObject.defineProperty(exports, \"isScoreBingo\", { enumerable: true, get: function () { return Bingo_1.isScoreBingo; } });\nvar Board_1 = require(\"./Board\");\nObject.defineProperty(exports, \"Board\", { enumerable: true, get: function () { return Board_1.Board; } });\nvar BoardJson_1 = require(\"./BoardJson\");\nObject.defineProperty(exports, \"isBoardJson\", { enumerable: true, get: function () { return BoardJson_1.isBoardJson; } });\nvar Bonus_1 = require(\"./Bonus\");\nObject.defineProperty(exports, \"Bonus\", { enumerable: true, get: function () { return Bonus_1.Bonus; } });\nvar Cell_1 = require(\"./Cell\");\nObject.defineProperty(exports, \"Cell\", { enumerable: true, get: function () { return Cell_1.Cell; } });\nvar CellJson_1 = require(\"./CellJson\");\nObject.defineProperty(exports, \"isCellJson\", { enumerable: true, get: function () { return CellJson_1.isCellJson; } });\nvar CharacterBonus_1 = require(\"./CharacterBonus\");\nObject.defineProperty(exports, \"CharacterBonus\", { enumerable: true, get: function () { return CharacterBonus_1.CharacterBonus; } });\nvar Config_1 = require(\"./Config\");\nObject.defineProperty(exports, \"Config\", { enumerable: true, get: function () { return Config_1.Config; } });\nvar FinalPattern_1 = require(\"./FinalPattern\");\nObject.defineProperty(exports, \"FinalPattern\", { enumerable: true, get: function () { return FinalPattern_1.FinalPattern; } });\nvar Game_1 = require(\"./Game\");\nObject.defineProperty(exports, \"Game\", { enumerable: true, get: function () { return Game_1.Game; } });\nObject.defineProperty(exports, \"isGame\", { enumerable: true, get: function () { return Game_1.isGame; } });\nvar HorizontalPattern_1 = require(\"./HorizontalPattern\");\nObject.defineProperty(exports, \"HorizontalPattern\", { enumerable: true, get: function () { return HorizontalPattern_1.HorizontalPattern; } });\nvar isError_1 = require(\"./isError\");\nObject.defineProperty(exports, \"isError\", { enumerable: true, get: function () { return isError_1.isError; } });\nvar isObject_1 = require(\"./isObject\");\nObject.defineProperty(exports, \"isObject\", { enumerable: true, get: function () { return isObject_1.isObject; } });\nvar Locale_1 = require(\"./Locale\");\nObject.defineProperty(exports, \"isLocale\", { enumerable: true, get: function () { return Locale_1.isLocale; } });\nObject.defineProperty(exports, \"Locale\", { enumerable: true, get: function () { return Locale_1.Locale; } });\nvar Pattern_1 = require(\"./Pattern\");\nObject.defineProperty(exports, \"Pattern\", { enumerable: true, get: function () { return Pattern_1.Pattern; } });\nvar Result_1 = require(\"./Result\");\nObject.defineProperty(exports, \"Result\", { enumerable: true, get: function () { return Result_1.Result; } });\nvar Tile_1 = require(\"./Tile\");\nObject.defineProperty(exports, \"Tile\", { enumerable: true, get: function () { return Tile_1.Tile; } });\nvar TileJson_1 = require(\"./TileJson\");\nObject.defineProperty(exports, \"isTileJson\", { enumerable: true, get: function () { return TileJson_1.isTileJson; } });\nvar VerticalPattern_1 = require(\"./VerticalPattern\");\nObject.defineProperty(exports, \"VerticalPattern\", { enumerable: true, get: function () { return VerticalPattern_1.VerticalPattern; } });\nvar WordBonus_1 = require(\"./WordBonus\");\nObject.defineProperty(exports, \"WordBonus\", { enumerable: true, get: function () { return WordBonus_1.WordBonus; } });\nvar WordDefinition_1 = require(\"./WordDefinition\");\nObject.defineProperty(exports, \"WordDefinition\", { enumerable: true, get: function () { return WordDefinition_1.WordDefinition; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.kelimelik = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst types_1 = require(\"@scrabble-solver/types\");\nexports.kelimelik = {\n bingo: { score: 30 },\n blankScore: 0,\n blanksCount: 2,\n boardHeight: 15,\n boardWidth: 15,\n game: types_1.Game.Kelimelik,\n name: 'Kelimelik',\n rackSize: 7,\n bonuses: [\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 1 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 1 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 2 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 10, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 9 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 10, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 11 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 13 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 13 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 14 },\n ],\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.letterLeague = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst types_1 = require(\"@scrabble-solver/types\");\nexports.letterLeague = {\n bingo: { multiplier: 2 },\n blankScore: 0,\n blanksCount: 2,\n boardHeight: 19,\n boardWidth: 27,\n game: types_1.Game.LetterLeague,\n name: 'Letter League',\n rackSize: 7,\n bonuses: [\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 18, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 23, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 17, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 21, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 25, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 2 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 2 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 16, y: 2 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 18, y: 2 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 20, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 22, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 19, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 24, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 25, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 26, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 16, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 18, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 20, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 22, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 17, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 21, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 25, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 18, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 23, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 22, y: 7 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 0, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 2, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 14, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 19, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 24, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 26, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 15, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 23, y: 9 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 0, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 2, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 14, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 19, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 24, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 26, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 22, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 18, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 23, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 17, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 21, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 25, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 16, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 18, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 20, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 22, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 15 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 15 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 19, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 24, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 25, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 26, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 16 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 16 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 16 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 16 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 16, y: 16 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 18, y: 16 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 20, y: 16 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 22, y: 16 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 17, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 21, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 25, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 18, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 23, y: 18 },\n ],\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.literaki = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst types_1 = require(\"@scrabble-solver/types\");\nexports.literaki = {\n bingo: { score: 50 },\n blankScore: 0,\n blanksCount: 2,\n boardHeight: 15,\n boardWidth: 15,\n game: types_1.Game.Literaki,\n name: 'Literaki',\n rackSize: 7,\n bonuses: [\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 0 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 0 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 0 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 0 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 0 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 1 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 1 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 1 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 1 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 2 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 2 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 2 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 2 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 2 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 3 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 3 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 3 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 3 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 4 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 4 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 4 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 4 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 5 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 5 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 5 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 5 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 5 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 6 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 6 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 6 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 7 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 2, y: 7 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 7 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 7 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 7 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 12, y: 7 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 7 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 8 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 8 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 8 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 8 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 9 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 9 },\n { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 9 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 9 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 9 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 10 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 10 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 10 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 10 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 11 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 11 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 11 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 11 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 12 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 12 },\n { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 12 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 12 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 13 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 13 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 13 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 13 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 14 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 14 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 14 },\n { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 14 },\n { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 14 },\n ],\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scrabble = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst types_1 = require(\"@scrabble-solver/types\");\nexports.scrabble = {\n bingo: { score: 50 },\n blankScore: 0,\n blanksCount: 2,\n boardHeight: 15,\n boardWidth: 15,\n game: types_1.Game.Scrabble,\n name: 'Scrabble',\n rackSize: 7,\n bonuses: [\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 1 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 5 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 5 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 6 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 7 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 9 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 13 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 13 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 13 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 14 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 14 },\n ],\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scrabbleDuel = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst types_1 = require(\"@scrabble-solver/types\");\nexports.scrabbleDuel = {\n bingo: { score: 50 },\n blankScore: 0,\n blanksCount: 2,\n boardHeight: 11,\n boardWidth: 11,\n game: types_1.Game.ScrabbleDuel,\n name: 'Scrabble Duel',\n rackSize: 7,\n bonuses: [\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 5 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 3, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 3, y: 7 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },\n ],\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.superScrabble = void 0;\nconst constants_1 = require(\"@scrabble-solver/constants\");\nconst types_1 = require(\"@scrabble-solver/types\");\nexports.superScrabble = {\n bingo: { score: 50 },\n blankScore: 0,\n blanksCount: 4,\n boardHeight: 21,\n boardWidth: 21,\n game: types_1.Game.SuperScrabble,\n name: 'Super Scrabble',\n rackSize: 7,\n bonuses: [\n { multiplier: 4, type: constants_1.BONUS_WORD, x: 0, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 0 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 13, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 0 },\n { multiplier: 4, type: constants_1.BONUS_WORD, x: 20, y: 0 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 1 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 1 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 5, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 2 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 15, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 2 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 3 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 3 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 4 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 4 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 19, y: 4 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 2, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 15, y: 5 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 18, y: 5 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 6, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 14, y: 6 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 6 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 7 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 20, y: 7 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 8 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 9 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 10 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 10 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 11 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 12 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 12 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 13 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 20, y: 13 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 6, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 14, y: 14 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 14 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 2, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 15 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 15, y: 15 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 18, y: 15 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 16 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 16 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 16 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 16 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 16 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 19, y: 16 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 17 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 17 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 17 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 17 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 18 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 5, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 18 },\n { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 15, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 18 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 19 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 19 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 19 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 19 },\n { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 19 },\n { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 19 },\n { multiplier: 4, type: constants_1.BONUS_WORD, x: 0, y: 20 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 20 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 20 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 20 },\n { multiplier: 3, type: constants_1.BONUS_WORD, x: 13, y: 20 },\n { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 20 },\n { multiplier: 4, type: constants_1.BONUS_WORD, x: 20, y: 20 },\n ],\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./kelimelik\"), exports);\n__exportStar(require(\"./letterLeague\"), exports);\n__exportStar(require(\"./literaki\"), exports);\n__exportStar(require(\"./scrabble\"), exports);\n__exportStar(require(\"./scrabbleDuel\"), exports);\n__exportStar(require(\"./superScrabble\"), exports);\n","\"use strict\";\n/* eslint-disable max-lines */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.englishUsSuperScrabble = exports.englishUsScrabbleDuel = exports.englishUsScrabble = exports.englishUsLiteraki = exports.englishUsLetterLeague = exports.englishGbSuperScrabble = exports.englishGbScrabbleDuel = exports.englishGbScrabble = exports.englishGbLiteraki = exports.englishGbLetterLeague = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.englishGbLetterLeague = new types_1.Config({\n ...games_1.letterLeague,\n locale: types_1.Locale.EN_GB,\n tiles: [\n { character: 'a', score: 1 },\n { character: 'b', score: 3 },\n { character: 'c', score: 3 },\n { character: 'd', score: 2 },\n { character: 'e', score: 1 },\n { character: 'f', score: 4 },\n { character: 'g', score: 2 },\n { character: 'h', score: 4 },\n { character: 'i', score: 1 },\n { character: 'j', score: 8 },\n { character: 'k', score: 5 },\n { character: 'l', score: 2 },\n { character: 'm', score: 3 },\n { character: 'n', score: 1 },\n { character: 'o', score: 1 },\n { character: 'p', score: 3 },\n { character: 'q', score: 10 },\n { character: 'r', score: 1 },\n { character: 's', score: 1 },\n { character: 't', score: 1 },\n { character: 'u', score: 1 },\n { character: 'v', score: 4 },\n { character: 'w', score: 4 },\n { character: 'x', score: 8 },\n { character: 'y', score: 4 },\n { character: 'z', score: 10 },\n ],\n});\nexports.englishGbLiteraki = new types_1.Config({\n ...games_1.literaki,\n locale: types_1.Locale.EN_GB,\n name: 'Literaxx',\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 3 },\n { character: 'd', count: 4, score: 2 },\n { character: 'e', count: 12, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 3, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 9, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'k', count: 1, score: 5 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 2, score: 3 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 8, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 10 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 4, score: 1 },\n { character: 'v', count: 2, score: 4 },\n { character: 'w', count: 2, score: 4 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 2, score: 4 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\nexports.englishGbScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.EN_GB,\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 3 },\n { character: 'd', count: 4, score: 2 },\n { character: 'e', count: 12, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 3, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 9, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'k', count: 1, score: 5 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 2, score: 3 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 8, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 10 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 4, score: 1 },\n { character: 'v', count: 2, score: 4 },\n { character: 'w', count: 2, score: 4 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 2, score: 4 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\nexports.englishGbScrabbleDuel = new types_1.Config({\n ...games_1.scrabbleDuel,\n locale: types_1.Locale.EN_GB,\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 3 },\n { character: 'd', count: 4, score: 2 },\n { character: 'e', count: 12, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 3, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 9, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'k', count: 1, score: 5 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 2, score: 3 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 8, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 10 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 4, score: 1 },\n { character: 'v', count: 2, score: 4 },\n { character: 'w', count: 2, score: 4 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 2, score: 4 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\nexports.englishGbSuperScrabble = new types_1.Config({\n ...games_1.superScrabble,\n locale: types_1.Locale.EN_GB,\n tiles: [\n { character: 'a', count: 16, score: 1 },\n { character: 'b', count: 4, score: 3 },\n { character: 'c', count: 6, score: 3 },\n { character: 'd', count: 8, score: 2 },\n { character: 'e', count: 24, score: 1 },\n { character: 'f', count: 4, score: 4 },\n { character: 'g', count: 5, score: 2 },\n { character: 'h', count: 5, score: 4 },\n { character: 'i', count: 13, score: 1 },\n { character: 'j', count: 2, score: 8 },\n { character: 'k', count: 2, score: 5 },\n { character: 'l', count: 7, score: 1 },\n { character: 'm', count: 6, score: 3 },\n { character: 'n', count: 13, score: 1 },\n { character: 'o', count: 15, score: 1 },\n { character: 'p', count: 4, score: 3 },\n { character: 'q', count: 2, score: 10 },\n { character: 'r', count: 13, score: 1 },\n { character: 's', count: 10, score: 1 },\n { character: 't', count: 15, score: 1 },\n { character: 'u', count: 7, score: 1 },\n { character: 'v', count: 3, score: 4 },\n { character: 'w', count: 4, score: 4 },\n { character: 'x', count: 2, score: 8 },\n { character: 'y', count: 4, score: 4 },\n { character: 'z', count: 2, score: 10 },\n ],\n});\nexports.englishUsLetterLeague = new types_1.Config({\n ...games_1.letterLeague,\n locale: types_1.Locale.EN_US,\n tiles: [\n { character: 'a', score: 1 },\n { character: 'b', score: 3 },\n { character: 'c', score: 3 },\n { character: 'd', score: 2 },\n { character: 'e', score: 1 },\n { character: 'f', score: 4 },\n { character: 'g', score: 2 },\n { character: 'h', score: 4 },\n { character: 'i', score: 1 },\n { character: 'j', score: 8 },\n { character: 'k', score: 5 },\n { character: 'l', score: 2 },\n { character: 'm', score: 3 },\n { character: 'n', score: 1 },\n { character: 'o', score: 1 },\n { character: 'p', score: 3 },\n { character: 'q', score: 10 },\n { character: 'r', score: 1 },\n { character: 's', score: 1 },\n { character: 't', score: 1 },\n { character: 'u', score: 1 },\n { character: 'v', score: 4 },\n { character: 'w', score: 4 },\n { character: 'x', score: 8 },\n { character: 'y', score: 4 },\n { character: 'z', score: 10 },\n ],\n});\nexports.englishUsLiteraki = new types_1.Config({\n ...games_1.literaki,\n locale: types_1.Locale.EN_US,\n name: 'Literaxx',\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 3 },\n { character: 'd', count: 4, score: 2 },\n { character: 'e', count: 12, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 3, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 9, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'k', count: 1, score: 5 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 2, score: 3 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 8, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 10 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 4, score: 1 },\n { character: 'v', count: 2, score: 4 },\n { character: 'w', count: 2, score: 4 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 2, score: 4 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\nexports.englishUsScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.EN_US,\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 3 },\n { character: 'd', count: 4, score: 2 },\n { character: 'e', count: 12, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 3, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 9, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'k', count: 1, score: 5 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 2, score: 3 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 8, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 10 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 4, score: 1 },\n { character: 'v', count: 2, score: 4 },\n { character: 'w', count: 2, score: 4 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 2, score: 4 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\nexports.englishUsScrabbleDuel = new types_1.Config({\n ...games_1.scrabbleDuel,\n locale: types_1.Locale.EN_US,\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 3 },\n { character: 'd', count: 4, score: 2 },\n { character: 'e', count: 12, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 3, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 9, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'k', count: 1, score: 5 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 2, score: 3 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 8, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 10 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 4, score: 1 },\n { character: 'v', count: 2, score: 4 },\n { character: 'w', count: 2, score: 4 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 2, score: 4 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\nexports.englishUsSuperScrabble = new types_1.Config({\n ...games_1.superScrabble,\n locale: types_1.Locale.EN_US,\n tiles: [\n { character: 'a', count: 16, score: 1 },\n { character: 'b', count: 4, score: 3 },\n { character: 'c', count: 6, score: 3 },\n { character: 'd', count: 8, score: 2 },\n { character: 'e', count: 24, score: 1 },\n { character: 'f', count: 4, score: 4 },\n { character: 'g', count: 5, score: 2 },\n { character: 'h', count: 5, score: 4 },\n { character: 'i', count: 13, score: 1 },\n { character: 'j', count: 2, score: 8 },\n { character: 'k', count: 2, score: 5 },\n { character: 'l', count: 7, score: 1 },\n { character: 'm', count: 6, score: 3 },\n { character: 'n', count: 13, score: 1 },\n { character: 'o', count: 15, score: 1 },\n { character: 'p', count: 4, score: 3 },\n { character: 'q', count: 2, score: 10 },\n { character: 'r', count: 13, score: 1 },\n { character: 's', count: 10, score: 1 },\n { character: 't', count: 15, score: 1 },\n { character: 'u', count: 7, score: 1 },\n { character: 'v', count: 3, score: 4 },\n { character: 'w', count: 4, score: 4 },\n { character: 'x', count: 2, score: 8 },\n { character: 'y', count: 4, score: 4 },\n { character: 'z', count: 2, score: 10 },\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.germanScrabble = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.germanScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.DE_DE,\n tiles: [\n { character: 'a', count: 5, score: 1 },\n { character: 'ä', count: 1, score: 6 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 4 },\n { character: 'd', count: 4, score: 1 },\n { character: 'e', count: 15, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 3, score: 2 },\n { character: 'h', count: 4, score: 2 },\n { character: 'i', count: 6, score: 1 },\n { character: 'j', count: 1, score: 6 },\n { character: 'k', count: 2, score: 4 },\n { character: 'l', count: 3, score: 2 },\n { character: 'm', count: 4, score: 3 },\n { character: 'n', count: 9, score: 1 },\n { character: 'o', count: 3, score: 2 },\n { character: 'ö', count: 1, score: 8 },\n { character: 'p', count: 1, score: 4 },\n { character: 'q', count: 1, score: 10 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 7, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 6, score: 1 },\n { character: 'ü', count: 1, score: 6 },\n { character: 'v', count: 1, score: 6 },\n { character: 'w', count: 1, score: 3 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 1, score: 10 },\n { character: 'z', count: 1, score: 3 },\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.frenchScrabble = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.frenchScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.FR_FR,\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 3 },\n { character: 'd', count: 3, score: 2 },\n { character: 'e', count: 15, score: 1 },\n { character: 'f', count: 2, score: 4 },\n { character: 'g', count: 2, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 8, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'k', count: 1, score: 10 },\n { character: 'l', count: 5, score: 1 },\n { character: 'm', count: 3, score: 2 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 6, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 8 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 6, score: 1 },\n { character: 't', count: 6, score: 1 },\n { character: 'u', count: 6, score: 1 },\n { character: 'v', count: 2, score: 4 },\n { character: 'w', count: 1, score: 10 },\n { character: 'x', count: 1, score: 10 },\n { character: 'y', count: 1, score: 10 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.persianScrabble = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.persianScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.FA_IR,\n tiles: [\n { character: 'ا', count: 12, score: 1 },\n { character: 'ب', count: 4, score: 1 },\n { character: 'پ', count: 1, score: 6 },\n { character: 'ت', count: 4, score: 1 },\n { character: 'ث', count: 1, score: 10 },\n { character: 'ج', count: 2, score: 5 },\n { character: 'چ', count: 1, score: 6 },\n { character: 'ح', count: 1, score: 6 },\n { character: 'خ', count: 2, score: 5 },\n { character: 'د', count: 6, score: 1 },\n { character: 'ذ', count: 1, score: 10 },\n { character: 'ر', count: 7, score: 1 },\n { character: 'ز', count: 3, score: 4 },\n { character: 'ژ', count: 1, score: 10 },\n { character: 'س', count: 3, score: 2 },\n { character: 'ش', count: 3, score: 3 },\n { character: 'ص', count: 1, score: 6 },\n { character: 'ض', count: 1, score: 8 },\n { character: 'ط', count: 1, score: 8 },\n { character: 'ظ', count: 1, score: 10 },\n { character: 'ع', count: 2, score: 5 },\n { character: 'غ', count: 1, score: 8 },\n { character: 'ف', count: 2, score: 4 },\n { character: 'ق', count: 2, score: 5 },\n { character: 'ک', count: 3, score: 3 },\n { character: 'گ', count: 2, score: 4 },\n { character: 'ل', count: 3, score: 2 },\n { character: 'م', count: 5, score: 1 },\n { character: 'ن', count: 6, score: 1 },\n { character: 'و', count: 5, score: 1 },\n { character: 'ه', count: 5, score: 1 },\n { character: 'ی', count: 8, score: 1 },\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.polishLiteraki = exports.polishScrabble = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.polishScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.PL_PL,\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'ą', count: 1, score: 5 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 3, score: 2 },\n { character: 'ć', count: 1, score: 6 },\n { character: 'd', count: 3, score: 2 },\n { character: 'e', count: 7, score: 1 },\n { character: 'ę', count: 1, score: 5 },\n { character: 'f', count: 1, score: 5 },\n { character: 'g', count: 2, score: 3 },\n { character: 'h', count: 2, score: 3 },\n { character: 'i', count: 8, score: 1 },\n { character: 'j', count: 2, score: 3 },\n { character: 'k', count: 3, score: 2 },\n { character: 'l', count: 3, score: 2 },\n { character: 'ł', count: 2, score: 3 },\n { character: 'm', count: 3, score: 2 },\n { character: 'n', count: 5, score: 1 },\n { character: 'ń', count: 1, score: 7 },\n { character: 'o', count: 6, score: 1 },\n { character: 'ó', count: 1, score: 5 },\n { character: 'p', count: 3, score: 2 },\n { character: 'r', count: 4, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 'ś', count: 1, score: 5 },\n { character: 't', count: 3, score: 2 },\n { character: 'u', count: 2, score: 3 },\n { character: 'w', count: 4, score: 1 },\n { character: 'y', count: 4, score: 2 },\n { character: 'z', count: 5, score: 1 },\n { character: 'ź', count: 1, score: 9 },\n { character: 'ż', count: 1, score: 5 },\n ],\n});\nexports.polishLiteraki = new types_1.Config({\n ...games_1.literaki,\n locale: types_1.Locale.PL_PL,\n tiles: [\n { character: 'a', count: 9, score: 1 },\n { character: 'ą', count: 1, score: 5 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 3, score: 2 },\n { character: 'ć', count: 1, score: 5 },\n { character: 'd', count: 3, score: 2 },\n { character: 'e', count: 7, score: 1 },\n { character: 'ę', count: 1, score: 5 },\n { character: 'f', count: 1, score: 5 },\n { character: 'g', count: 2, score: 3 },\n { character: 'h', count: 2, score: 3 },\n { character: 'i', count: 8, score: 1 },\n { character: 'j', count: 2, score: 3 },\n { character: 'k', count: 3, score: 2 },\n { character: 'l', count: 3, score: 2 },\n { character: 'ł', count: 2, score: 3 },\n { character: 'm', count: 3, score: 2 },\n { character: 'n', count: 5, score: 1 },\n { character: 'ń', count: 1, score: 5 },\n { character: 'o', count: 6, score: 1 },\n { character: 'ó', count: 1, score: 5 },\n { character: 'p', count: 3, score: 2 },\n { character: 'r', count: 4, score: 1 },\n { character: 's', count: 4, score: 1 },\n { character: 'ś', count: 1, score: 5 },\n { character: 't', count: 3, score: 2 },\n { character: 'u', count: 2, score: 3 },\n { character: 'w', count: 4, score: 1 },\n { character: 'y', count: 4, score: 2 },\n { character: 'z', count: 5, score: 1 },\n { character: 'ź', count: 1, score: 5 },\n { character: 'ż', count: 1, score: 5 },\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.romanianSuperScrabble = exports.romanianScrabble = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.romanianScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.RO_RO,\n /**\n * @see https://frsc1.fortunecity.ws/reg6scr.htm#vallit\n */\n tiles: [\n { character: 'a', count: 11, score: 1 },\n { character: 'b', count: 2, score: 9 },\n { character: 'c', count: 5, score: 1 },\n { character: 'd', count: 4, score: 2 },\n { character: 'e', count: 9, score: 1 },\n { character: 'f', count: 2, score: 8 },\n { character: 'g', count: 2, score: 9 },\n { character: 'h', count: 1, score: 10 },\n { character: 'i', count: 10, score: 1 },\n { character: 'j', count: 1, score: 10 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 3, score: 4 },\n { character: 'n', count: 6, score: 1 },\n { character: 'o', count: 5, score: 1 },\n { character: 'p', count: 4, score: 2 },\n { character: 'r', count: 7, score: 1 },\n { character: 's', count: 5, score: 1 },\n { character: 't', count: 7, score: 1 },\n { character: 'u', count: 6, score: 1 },\n { character: 'v', count: 2, score: 8 },\n { character: 'x', count: 1, score: 10 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\nexports.romanianSuperScrabble = new types_1.Config({\n ...games_1.superScrabble,\n locale: types_1.Locale.RO_RO,\n tiles: [\n { character: 'a', count: 22, score: 1 },\n { character: 'b', count: 4, score: 9 },\n { character: 'c', count: 10, score: 1 },\n { character: 'd', count: 8, score: 2 },\n { character: 'e', count: 18, score: 1 },\n { character: 'f', count: 4, score: 8 },\n { character: 'g', count: 4, score: 9 },\n { character: 'h', count: 2, score: 10 },\n { character: 'i', count: 20, score: 1 },\n { character: 'j', count: 2, score: 10 },\n { character: 'l', count: 8, score: 1 },\n { character: 'm', count: 6, score: 4 },\n { character: 'n', count: 12, score: 1 },\n { character: 'o', count: 10, score: 1 },\n { character: 'p', count: 8, score: 2 },\n { character: 'r', count: 14, score: 1 },\n { character: 's', count: 10, score: 1 },\n { character: 't', count: 14, score: 1 },\n { character: 'u', count: 12, score: 1 },\n { character: 'v', count: 4, score: 8 },\n { character: 'x', count: 2, score: 10 },\n { character: 'z', count: 2, score: 10 },\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.spanishScrabble = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.spanishScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.ES_ES,\n tiles: [\n { character: 'a', count: 12, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 4, score: 3 },\n { character: 'ch', count: 1, score: 5 },\n { character: 'd', count: 5, score: 2 },\n { character: 'e', count: 12, score: 1 },\n { character: 'f', count: 1, score: 4 },\n { character: 'g', count: 2, score: 2 },\n { character: 'h', count: 2, score: 4 },\n { character: 'i', count: 6, score: 1 },\n { character: 'j', count: 1, score: 8 },\n { character: 'll', count: 1, score: 8 },\n { character: 'l', count: 4, score: 1 },\n { character: 'm', count: 2, score: 3 },\n { character: 'n', count: 5, score: 1 },\n { character: 'ñ', count: 1, score: 8 },\n { character: 'o', count: 9, score: 1 },\n { character: 'p', count: 2, score: 3 },\n { character: 'q', count: 1, score: 5 },\n { character: 'r', count: 5, score: 1 },\n { character: 'rr', count: 1, score: 8 },\n { character: 's', count: 6, score: 1 },\n { character: 't', count: 4, score: 1 },\n { character: 'u', count: 5, score: 1 },\n { character: 'v', count: 1, score: 4 },\n { character: 'x', count: 1, score: 8 },\n { character: 'y', count: 1, score: 4 },\n { character: 'z', count: 1, score: 10 },\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.turkishScrabble = exports.turkishKelimelik = void 0;\nconst types_1 = require(\"@scrabble-solver/types\");\nconst games_1 = require(\"../games\");\nexports.turkishKelimelik = new types_1.Config({\n ...games_1.kelimelik,\n locale: types_1.Locale.TR_TR,\n tiles: [\n { character: 'a', count: 12, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 4 },\n { character: 'ç', count: 2, score: 4 },\n { character: 'd', count: 2, score: 3 },\n { character: 'e', count: 8, score: 1 },\n { character: 'f', count: 1, score: 7 },\n { character: 'g', count: 1, score: 5 },\n { character: 'ğ', count: 1, score: 8 },\n { character: 'h', count: 1, score: 5 },\n { character: 'ı', count: 4, score: 2 },\n { character: 'i', count: 7, score: 1 },\n { character: 'j', count: 1, score: 10 },\n { character: 'k', count: 7, score: 1 },\n { character: 'l', count: 7, score: 1 },\n { character: 'm', count: 4, score: 2 },\n { character: 'n', count: 5, score: 1 },\n { character: 'o', count: 3, score: 2 },\n { character: 'ö', count: 1, score: 7 },\n { character: 'p', count: 1, score: 5 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 3, score: 2 },\n { character: 'ş', count: 2, score: 4 },\n { character: 't', count: 5, score: 1 },\n { character: 'u', count: 3, score: 2 },\n { character: 'ü', count: 2, score: 3 },\n { character: 'v', count: 1, score: 7 },\n { character: 'y', count: 2, score: 3 },\n { character: 'z', count: 2, score: 4 },\n ],\n});\nexports.turkishScrabble = new types_1.Config({\n ...games_1.scrabble,\n locale: types_1.Locale.TR_TR,\n tiles: [\n { character: 'a', count: 12, score: 1 },\n { character: 'b', count: 2, score: 3 },\n { character: 'c', count: 2, score: 4 },\n { character: 'ç', count: 2, score: 4 },\n { character: 'd', count: 2, score: 3 },\n { character: 'e', count: 8, score: 1 },\n { character: 'f', count: 1, score: 7 },\n { character: 'g', count: 1, score: 5 },\n { character: 'ğ', count: 1, score: 8 },\n { character: 'h', count: 1, score: 5 },\n { character: 'ı', count: 4, score: 2 },\n { character: 'i', count: 7, score: 1 },\n { character: 'j', count: 1, score: 10 },\n { character: 'k', count: 7, score: 1 },\n { character: 'l', count: 7, score: 1 },\n { character: 'm', count: 4, score: 2 },\n { character: 'n', count: 5, score: 1 },\n { character: 'o', count: 3, score: 2 },\n { character: 'ö', count: 1, score: 7 },\n { character: 'p', count: 1, score: 5 },\n { character: 'r', count: 6, score: 1 },\n { character: 's', count: 3, score: 2 },\n { character: 'ş', count: 2, score: 4 },\n { character: 't', count: 5, score: 1 },\n { character: 'u', count: 3, score: 2 },\n { character: 'ü', count: 2, score: 3 },\n { character: 'v', count: 1, score: 7 },\n { character: 'y', count: 2, score: 3 },\n { character: 'z', count: 2, score: 4 },\n ],\n});\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./english\"), exports);\n__exportStar(require(\"./german\"), exports);\n__exportStar(require(\"./french\"), exports);\n__exportStar(require(\"./persian\"), exports);\n__exportStar(require(\"./polish\"), exports);\n__exportStar(require(\"./romanian\"), exports);\n__exportStar(require(\"./spanish\"), exports);\n__exportStar(require(\"./turkish\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConfig = void 0;\nconst languages = __importStar(require(\"./languages\"));\nconst getConfig = (game, locale) => {\n const configs = Object.values(languages);\n const localeConfig = configs.find((config) => config.game === game && config.locale === locale);\n if (typeof localeConfig === 'undefined') {\n throw new Error(`No game \"${game}\" in \"${locale}\"`);\n }\n return localeConfig;\n};\nexports.getConfig = getConfig;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasConfig = void 0;\nconst languages = __importStar(require(\"./languages\"));\nconst hasConfig = (game, locale) => {\n const configs = Object.values(languages);\n return configs.some((config) => config.game === game && config.locale === locale);\n};\nexports.hasConfig = hasConfig;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.languages = exports.games = exports.hasConfig = exports.getConfig = void 0;\nconst games = __importStar(require(\"./games\"));\nexports.games = games;\nconst languages = __importStar(require(\"./languages\"));\nexports.languages = languages;\nvar getConfig_1 = require(\"./getConfig\");\nObject.defineProperty(exports, \"getConfig\", { enumerable: true, get: function () { return getConfig_1.getConfig; } });\nvar hasConfig_1 = require(\"./hasConfig\");\nObject.defineProperty(exports, \"hasConfig\", { enumerable: true, get: function () { return hasConfig_1.hasConfig; } });\n","import { Board, type BoardJson, type Game, type Locale, type ShowCoordinates } from '@scrabble-solver/types';\nimport store2 from 'store2';\n\nimport type { AutoGroupTiles, InputMode, Rack, RemoveCellFilters } from 'types';\n\nconst AUTO_GROUP_TILES = 'auto-group-tiles';\nconst BOARD = 'board';\nconst GAME_ID = 'config-id';\nconst INPUT_MODE = 'input-mode';\nconst REMOVE_CELL_FILTERS = 'remove-cell-filters';\nconst LOCALE = 'locale';\nconst RACK = 'rack';\nconst SHOW_COORDINATES = 'show-coordinates';\n\nconst store = store2.namespace('scrabble-solver');\n\nexport const localStorage = {\n getAutoGroupTiles(): AutoGroupTiles | undefined {\n return store.get(AUTO_GROUP_TILES) as AutoGroupTiles | undefined;\n },\n\n setAutoGroupTiles(autoGroupTiles: AutoGroupTiles | undefined): void {\n store.set(AUTO_GROUP_TILES, autoGroupTiles, true);\n },\n\n getBoard(): Board | undefined {\n const serialized = store.get(BOARD) as string | undefined;\n return serialized ? Board.fromJson(JSON.parse(serialized) as BoardJson) : undefined;\n },\n\n setBoard(board: Board | undefined): void {\n const serialized = board ? JSON.stringify(board.toJson()) : board;\n store.set(BOARD, serialized, true);\n },\n\n getGame(): Game | undefined {\n return store.get(GAME_ID) as Game | undefined;\n },\n\n setGame(game: Game | undefined): void {\n store.set(GAME_ID, game, true);\n },\n\n getInputMode(): InputMode | undefined {\n return store.get(INPUT_MODE) as InputMode | undefined;\n },\n\n setInputMode(inputMode: InputMode | undefined): void {\n store.set(INPUT_MODE, inputMode, true);\n },\n\n getLocale(): Locale | undefined {\n return store.get(LOCALE) as Locale | undefined;\n },\n\n setLocale(locale: Locale | undefined): void {\n store.set(LOCALE, locale, true);\n },\n\n getRack(): Rack | undefined {\n return store.get(RACK) as Rack | undefined;\n },\n\n setRack(rack: Rack | undefined): void {\n store.set(RACK, rack, true);\n },\n\n getShowCoordinates(): ShowCoordinates | undefined {\n return store.get(SHOW_COORDINATES) as ShowCoordinates | undefined;\n },\n\n setShowCoordinates(showCoordinates: ShowCoordinates | undefined): void {\n store.set(SHOW_COORDINATES, showCoordinates, true);\n },\n\n getRemoveCellFilters(): RemoveCellFilters | undefined {\n return store.get(REMOVE_CELL_FILTERS) as RemoveCellFilters | undefined;\n },\n\n setRemoveCellFilters(removeCellFilters: RemoveCellFilters | undefined): void {\n store.set(REMOVE_CELL_FILTERS, removeCellFilters, true);\n },\n};\n","import { Game } from '@scrabble-solver/types';\n\nimport { localStorage } from '../localStorage';\n\nimport { guessLocale } from './lib';\nimport type { SettingsState } from './types';\n\nconst localStorageAutoGroupTiles = localStorage.getAutoGroupTiles();\nconst isTouchScreen = typeof globalThis.matchMedia !== 'undefined' && globalThis.matchMedia('(hover: none)').matches;\n\nexport const settingsInitialState: SettingsState = {\n autoGroupTiles: typeof localStorageAutoGroupTiles === 'undefined' ? 'left' : localStorageAutoGroupTiles,\n game: localStorage.getGame() ?? Game.Scrabble,\n inputMode: localStorage.getInputMode() ?? (isTouchScreen ? 'touchscreen' : 'keyboard'),\n locale: localStorage.getLocale() ?? guessLocale(),\n showCoordinates: localStorage.getShowCoordinates() ?? 'hidden',\n removeCellFilters: localStorage.getRemoveCellFilters() ?? 'always',\n};\n","import { Locale } from '@scrabble-solver/types';\n\nexport const guessLocale = (): Locale => {\n if (!globalThis.navigator) {\n return Locale.EN_US;\n }\n\n const languages = globalThis.navigator.languages;\n\n if (languages.includes('pl') || languages.includes('pl-PL')) {\n return Locale.PL_PL;\n }\n\n if (languages.includes('en-GB')) {\n return Locale.EN_GB;\n }\n\n if (languages.includes('fa') || languages.includes('fa-IR')) {\n return Locale.FA_IR;\n }\n\n if (languages.includes('fr-FR')) {\n return Locale.FR_FR;\n }\n\n if (languages.includes('ro') || languages.includes('ro-RO')) {\n return Locale.RO_RO;\n }\n\n const locales = Object.values(Locale);\n const exactMatch = locales.find((locale) => globalThis.navigator.language === String(locale));\n\n if (exactMatch) {\n return exactMatch;\n }\n\n const partialMatch = locales.find((locale) => {\n return globalThis.navigator.language === locale.substring(0, 2);\n });\n\n return partialMatch ?? Locale.EN_US;\n};\n","import { COMMA_ARABIC, COMMA_LATIN } from '@scrabble-solver/constants';\nimport { Locale } from '@scrabble-solver/types';\nimport { type FunctionComponent, type SVGAttributes } from 'react';\n\nimport { FlagDe, FlagEs, FlagFa, FlagFr, FlagGb, FlagPl, FlagRo, FlagTr, FlagUs } from 'icons';\n\ninterface LocaleFeatures {\n comma: string;\n consonants: boolean;\n direction: 'ltr' | 'rtl';\n Icon: FunctionComponent<SVGAttributes<SVGElement>>;\n label: string;\n locale: Locale;\n name: string;\n separator: string;\n vowels: boolean;\n}\n\nexport const LOCALE_FEATURES: Record<Locale, LocaleFeatures> = {\n [Locale.DE_DE]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagDe,\n label: 'Deutsch',\n locale: Locale.DE_DE,\n name: 'German',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n [Locale.EN_GB]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagGb,\n label: 'English (GB)',\n locale: Locale.EN_GB,\n name: 'English (GB)',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n [Locale.EN_US]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagUs,\n label: 'English (US)',\n locale: Locale.EN_US,\n name: 'English (US)',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n [Locale.ES_ES]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagEs,\n label: 'Español',\n locale: Locale.ES_ES,\n name: 'Spanish',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n [Locale.FA_IR]: {\n comma: COMMA_ARABIC,\n consonants: false,\n direction: 'rtl',\n Icon: FlagFa,\n label: 'فارسی',\n locale: Locale.FA_IR,\n name: 'Persian',\n separator: `${COMMA_ARABIC} `,\n vowels: false,\n },\n [Locale.FR_FR]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagFr,\n label: 'Français',\n locale: Locale.FR_FR,\n name: 'French',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n [Locale.PL_PL]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagPl,\n label: 'Polski',\n locale: Locale.PL_PL,\n name: 'Polish',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n [Locale.RO_RO]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagRo,\n label: 'Română',\n locale: Locale.RO_RO,\n name: 'Romanian',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n [Locale.TR_TR]: {\n comma: COMMA_LATIN,\n consonants: true,\n direction: 'ltr',\n Icon: FlagTr,\n label: 'Türkçe',\n locale: Locale.TR_TR,\n name: 'Turkish',\n separator: `${COMMA_LATIN} `,\n vowels: true,\n },\n};\n","import { Locale } from '@scrabble-solver/types';\n\nimport { type Translations } from 'types';\n\nimport english from './languages/english.json';\nimport french from './languages/french.json';\nimport german from './languages/german.json';\nimport persian from './languages/persian.json';\nimport polish from './languages/polish.json';\nimport romanian from './languages/romanian.json';\nimport spanish from './languages/spanish.json';\nimport turkish from './languages/turkish.json';\n\nexport const i18n: Record<Locale, Translations> = {\n [Locale.DE_DE]: german,\n [Locale.EN_GB]: english,\n [Locale.EN_US]: english,\n [Locale.ES_ES]: spanish,\n [Locale.FA_IR]: persian,\n [Locale.FR_FR]: french,\n [Locale.PL_PL]: polish,\n [Locale.RO_RO]: romanian,\n [Locale.TR_TR]: turkish,\n};\n","export * from './constants';\nexport { i18n } from './i18n';\n","import { createSelector } from '@reduxjs/toolkit';\nimport { getConfig } from '@scrabble-solver/configs';\nimport { BLANK } from '@scrabble-solver/constants';\nimport { type Cell, type Tile } from '@scrabble-solver/types';\n\nimport { i18n, LOCALE_FEATURES } from 'i18n';\n\nimport type { RootState } from '../types';\n\nconst selectCell = (_: unknown, cell: Cell): Cell => cell;\n\nconst selectCharacter = (_: unknown, character: string | null): string | null => character;\n\nconst selectTile = (_: unknown, tile: Tile | null): Tile | null => tile;\n\nexport const selectSettings = (state: RootState) => state.settings;\n\nexport const selectAutoGroupTiles = createSelector([selectSettings], (settings) => settings.autoGroupTiles);\n\nexport const selectGame = createSelector([selectSettings], (settings) => settings.game);\n\nexport const selectInputMode = createSelector([selectSettings], (settings) => settings.inputMode);\n\nexport const selectLocale = createSelector([selectSettings], (settings) => settings.locale);\n\nexport const selectLocaleAutoGroupTiles = createSelector([selectLocale, selectSettings], (locale, settings) => {\n if (LOCALE_FEATURES[locale].direction === 'ltr' || settings.autoGroupTiles === null) {\n return settings.autoGroupTiles;\n }\n\n return settings.autoGroupTiles === 'left' ? 'right' : 'left';\n});\n\nexport const selectShowCoordinates = createSelector([selectSettings], (settings) => settings.showCoordinates);\n\nexport const selectConfig = createSelector([selectGame, selectLocale], getConfig);\n\nexport const selectCharacterPoints = createSelector([selectConfig, selectCharacter], (config, character) => {\n return config.getCharacterPoints(character);\n});\n\nexport const selectCharacterIsValid = createSelector([selectConfig, selectCharacter], (config, character) => {\n if (character === null || character === BLANK) {\n return true;\n }\n\n return config.tiles.some((tile) => tile.character === character);\n});\n\nexport const selectCellBonus = createSelector([selectConfig, selectCell], (config, cell) => {\n return config.getCellBonus(cell);\n});\n\nexport const selectTilePoints = createSelector([selectConfig, selectTile], (config, tile) => {\n return config.getTilePoints(tile);\n});\n\nexport const selectCellIsValid = createSelector([selectConfig, selectCell], (config, cell) => {\n if (!cell.hasTile()) {\n return true;\n }\n\n return config.tiles.some((tile) => tile.character === cell.tile.character);\n});\n\nexport const selectTranslations = createSelector([selectLocale], (locale) => i18n[locale]);\n\nexport const selectRemoveCellFilters = createSelector([selectSettings], (settings) => settings.removeCellFilters);\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { type Game, type Locale, type ShowCoordinates } from '@scrabble-solver/types';\n\nimport type { AutoGroupTiles, InputMode, RemoveCellFilters } from 'types';\n\nimport { settingsInitialState } from './initialState';\n\nexport const settingsSlice = createSlice({\n initialState: settingsInitialState,\n name: 'settings',\n reducers: {\n changeAutoGroupTiles: (state, action: PayloadAction<AutoGroupTiles>) => {\n const autoGroupTiles = action.payload;\n return { ...state, autoGroupTiles };\n },\n\n changeGame: (state, action: PayloadAction<Game>) => {\n const game = action.payload;\n return { ...state, game };\n },\n\n changeInputMode: (state, action: PayloadAction<InputMode>) => {\n const inputMode = action.payload;\n return { ...state, inputMode };\n },\n\n changeLocale: (state, action: PayloadAction<Locale>) => {\n const locale = action.payload;\n return { ...state, locale };\n },\n\n changeShowCoordinates: (state, action: PayloadAction<ShowCoordinates>) => {\n const showCoordinates = action.payload;\n return { ...state, showCoordinates };\n },\n\n changeRemoveCellFilters: (state, action: PayloadAction<RemoveCellFilters>) => {\n const removeCellFilters = action.payload;\n return { ...state, removeCellFilters };\n },\n\n init: (state, action: PayloadAction<Partial<Pick<typeof settingsInitialState, 'game' | 'locale'>>>) => {\n return { ...state, ...action.payload };\n },\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","import { getConfig } from '@scrabble-solver/configs';\nimport { Board } from '@scrabble-solver/types';\n\nimport { localStorage } from '../localStorage';\nimport { settingsInitialState } from '../settings';\n\nimport type { BoardState } from './types';\n\nconst { game, locale } = settingsInitialState;\nconst { boardHeight, boardWidth } = getConfig(game, locale);\n\nexport const boardInitialState: BoardState = localStorage.getBoard() ?? Board.create(boardWidth, boardHeight);\n\n// const createOxyphenbutazone = () => {\n// // Tiles: oypbaze\n\n// const board = Board.fromStringArray([\n// ' x hen ut on ',\n// 'puer or amas j',\n// 'a led a er a',\n// 'c ki i elf c',\n// 'i snot n is u',\n// 'f t o w do l',\n// 'y e moa er a',\n// 'i r solar t',\n// 'n v h t i',\n// 'g i i bitten',\n// ' e n v g',\n// ' w g e ',\n// ' e ',\n// ' d ',\n// ' ',\n// ]);\n\n// board.rows[4][3].tile.isBlank = true;\n// board.rows[9][11].tile.isBlank = true;\n\n// return board;\n// };\n","import type { RootState } from '../types';\n\nexport const selectBoard = (state: RootState) => state.board;\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { games } from '@scrabble-solver/configs';\nimport { EMPTY_CELL } from '@scrabble-solver/constants';\nimport { Board, Cell, type Result, Tile } from '@scrabble-solver/types';\n\nimport { settingsSlice } from '../settings';\n\nimport { boardInitialState } from './initialState';\n\nexport const boardSlice = createSlice({\n initialState: boardInitialState,\n name: 'board',\n reducers: {\n applyResult: (state, action: PayloadAction<Result>) => {\n const newBoard = state.clone();\n const result = action.payload;\n\n result.cells.forEach((cell) => {\n newBoard.updateCell(cell.x, cell.y, () => new Cell({ ...cell, isEmpty: false }));\n });\n\n return newBoard;\n },\n\n change: (_state, action: PayloadAction<Board>) => {\n const board = action.payload;\n return board;\n },\n\n changeCellValue: (state, action: PayloadAction<{ value: string; x: number; y: number }>) => {\n const newBoard = state.clone();\n const { value, x, y } = action.payload;\n const isEmpty = !value || value === EMPTY_CELL;\n const tile = isEmpty ? Tile.Null : new Tile({ character: value });\n\n newBoard.updateCell(x, y, (cell) => {\n return new Cell({ ...cell, isEmpty, tile });\n });\n\n return newBoard;\n },\n\n init: (_state, action: PayloadAction<Board>) => {\n const board = action.payload;\n return board;\n },\n\n toggleCellIsBlank: (state, action: PayloadAction<{ x: number; y: number }>) => {\n const newBoard = state.clone();\n const { x, y } = action.payload;\n\n newBoard.updateCell(x, y, (cell) => {\n const tile = cell.isEmpty ? cell.tile : new Tile({ ...cell.tile, isBlank: !cell.tile.isBlank });\n return new Cell({ ...cell, tile });\n });\n\n return newBoard;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(settingsSlice.actions.changeGame, (state, action) => {\n const game = action.payload;\n const config = Object.values(games).find((gameConfig) => gameConfig.game === game);\n\n if (!config) {\n throw new Error(`Cannot find config for game \"${game}\"`);\n }\n\n if (state.rows.length !== config.boardHeight || state.rows[0].length !== config.boardWidth) {\n return Board.create(config.boardWidth, config.boardHeight);\n }\n\n return state;\n });\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","import type { CellFiltersState } from './types';\n\nexport const cellFiltersInitialState: CellFiltersState = [];\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport type { Point } from 'types';\n\nimport type { RootState } from '../types';\n\nconst selectPoint = (_: unknown, point: Point): Point => point;\n\nexport const selectCellFilters = (state: RootState) => state.cellFilters;\n\nexport const selectCellFilter = createSelector([selectCellFilters, selectPoint], (cellFilters, point) => {\n return cellFilters.find((cell) => cell.x === point.x && cell.y === point.y);\n});\n","import type { CellFilterType } from 'types';\n\nexport const toggleCellFilterState = (type: CellFilterType): CellFilterType | null => {\n const chain: (CellFilterType | null)[] = ['include', 'exclude', null];\n const index = chain.indexOf(type);\n const nextIndex = (index + 1) % chain.length;\n return chain[nextIndex];\n};\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport type { Cell } from '@scrabble-solver/types';\n\nimport type { Point } from 'types';\n\nimport { cellFiltersInitialState } from './initialState';\nimport { toggleCellFilterState } from './lib';\n\nexport const cellFiltersSlice = createSlice({\n initialState: cellFiltersInitialState,\n name: 'cellFilters',\n reducers: {\n toggle: (state, action: PayloadAction<Point>) => {\n const { x, y } = action.payload;\n const currentEntry = state.find((point) => point.x === x && point.y === y);\n const has = Boolean(currentEntry);\n const nextType = currentEntry ? toggleCellFilterState(currentEntry.type) : 'include';\n\n if (nextType === null) {\n return state.filter((point) => point.x !== x || point.y !== y);\n }\n\n if (!has) {\n return [...state, { ...action.payload, type: nextType }];\n }\n\n return state.map((entry) => {\n if (entry.x === x && entry.y === y) {\n return { ...entry, type: nextType };\n }\n\n return entry;\n });\n },\n\n cancel: (state, action: PayloadAction<Point>) => {\n const { x, y } = action.payload;\n\n return state.filter((point) => point.x !== x || point.y !== y);\n },\n\n removeCells: (state, action: PayloadAction<Cell[]>) => {\n const cellsToRemove = action.payload;\n return state.filter((entry) => cellsToRemove.every((cell) => cell.x !== entry.x || cell.y !== entry.y));\n },\n\n reset: () => cellFiltersInitialState,\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","import { type DictionaryState } from './types';\n\nexport const dictionaryInitialState: DictionaryState = {\n error: undefined,\n input: '',\n isLoading: false,\n results: [],\n};\n","import { createSelector } from '@reduxjs/toolkit';\nimport { isError } from '@scrabble-solver/types';\n\nimport type { RootState } from '../types';\n\nexport const selectDictionary = (state: RootState) => state.dictionary;\n\nexport const selectDictionaryInput = createSelector([selectDictionary], (dictionary) => dictionary.input);\n\nexport const selectDictionaryResults = createSelector([selectDictionary], (dictionary) => dictionary.results);\n\nexport const selectDictionaryIsLoading = createSelector([selectDictionary], (dictionary) => dictionary.isLoading);\n\nexport const selectDictionaryError = createSelector([selectDictionary], (dictionary) => {\n return isError(dictionary.error) ? dictionary.error : undefined;\n});\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { type WordDefinition } from '@scrabble-solver/types';\n\nimport { dictionaryInitialState } from './initialState';\n\nexport const dictionarySlice = createSlice({\n initialState: dictionaryInitialState,\n name: 'dictionary',\n reducers: {\n changeInput: (state, action: PayloadAction<string>) => {\n return { ...state, input: action.payload };\n },\n\n reset: () => dictionaryInitialState,\n\n submit: (state) => {\n const error = dictionaryInitialState.error;\n const results = dictionaryInitialState.results;\n return { ...state, error, isLoading: true, results };\n },\n\n submitFailure: (state, action: PayloadAction<unknown>) => {\n const error = action.payload;\n const results = dictionaryInitialState.results;\n return { ...state, error, isLoading: false, results };\n },\n\n submitSuccess: (state, action: PayloadAction<WordDefinition[]>) => {\n const error = dictionaryInitialState.error;\n const results = action.payload;\n return { ...state, error, isLoading: false, results };\n },\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","import { getConfig } from '@scrabble-solver/configs';\n\nimport { localStorage } from '../localStorage';\nimport { settingsInitialState } from '../settings';\n\nimport type { RackState } from './types';\n\nconst defaultConfig = getConfig(settingsInitialState.game, settingsInitialState.locale);\n\nexport const rackDefaultState: RackState = Array(defaultConfig.rackSize).fill(null);\n\nexport const rackInitialState: RackState = localStorage.getRack() ?? rackDefaultState;\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { type RootState } from '../types';\n\nexport const selectRack = (state: RootState) => state.rack;\n\nexport const selectCharacters = createSelector(selectRack, (rack) => rack.filter((tile) => tile !== null));\n","export const arrayEquals = <T>(array1: T[], array2: T[]): boolean => {\n return array1.length === array2.length && array1.every((value, index) => value === array2[index]);\n};\n","export const noop = (): void => undefined;\n","import { type KeyboardEventHandler } from 'react';\n\nimport { noop } from './noop';\n\ninterface Parameters {\n onArrowDown?: KeyboardEventHandler<HTMLInputElement>;\n onArrowLeft?: KeyboardEventHandler<HTMLInputElement>;\n onArrowRight?: KeyboardEventHandler<HTMLInputElement>;\n onArrowUp?: KeyboardEventHandler<HTMLInputElement>;\n onBackspace?: KeyboardEventHandler<HTMLInputElement>;\n onDelete?: KeyboardEventHandler<HTMLInputElement>;\n onEnter?: KeyboardEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onSpace?: KeyboardEventHandler<HTMLInputElement>;\n}\n\nexport const createKeyboardNavigation = ({\n onArrowDown = noop,\n onArrowLeft = noop,\n onArrowRight = noop,\n onArrowUp = noop,\n onBackspace = noop,\n onDelete = noop,\n onEnter = noop,\n onKeyDown = noop,\n onSpace = noop,\n}: Parameters): KeyboardEventHandler<HTMLInputElement> => {\n const handlers: Record<string, KeyboardEventHandler<HTMLInputElement>> = {\n ArrowUp: onArrowUp,\n ArrowDown: onArrowDown,\n ArrowLeft: onArrowLeft,\n ArrowRight: onArrowRight,\n Backspace: onBackspace,\n Delete: onDelete,\n Enter: onEnter,\n ' ': onSpace,\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n const handler = handlers[event.key] || noop;\n handler(event);\n onKeyDown(event);\n };\n\n return handleKeyDown;\n};\n","export const createNullMovingComparator = <T>(direction: 'left' | 'right') => {\n return (a: T | null, b: T | null): number => {\n if (a === b) {\n return 0;\n }\n\n if (a === null) {\n return direction === 'right' ? 1 : -1;\n }\n\n if (b === null) {\n return direction === 'right' ? -1 : 1;\n }\n\n return 0;\n };\n};\n","export const createRegExp = (input: string): RegExp => {\n if (input.trim().length === 0) {\n return /.*/;\n }\n\n try {\n return new RegExp(input, 'gi');\n } catch {\n return /.*/;\n }\n};\n","import { BLANK } from '@scrabble-solver/constants';\nimport { type Config, type Locale } from '@scrabble-solver/types';\n\nimport { localeTransliterate } from './localeTransliterate';\n\ninterface Options {\n upperCaseDigraphsOnly?: boolean;\n}\n\nexport const extractCharacters = (config: Config, value: string, options?: Options): string[] => {\n let index = 0;\n const characters: string[] = [];\n const finalValue = localeTransliterate(config.locale, value);\n\n while (index < finalValue.length) {\n const character = finalValue[index];\n const characterLowercase = character.toLocaleLowerCase(config.locale);\n const nextCharacter = finalValue[index + 1];\n const digraph = `${character}${nextCharacter}`;\n const digraphLowercase = digraph.toLocaleLowerCase(config.locale);\n\n const isValidDigraph = options?.upperCaseDigraphsOnly\n ? config.twoCharacterTiles.includes(digraphLowercase) && isUpperCase(config.locale, digraph)\n : config.twoCharacterTiles.includes(digraphLowercase);\n\n if (isValidDigraph) {\n characters.push(digraphLowercase);\n index += digraphLowercase.length;\n } else if (config.hasCharacter(characterLowercase) || characterLowercase === BLANK) {\n characters.push(characterLowercase);\n ++index;\n } else {\n ++index;\n }\n }\n\n return characters;\n};\n\nconst isUpperCase = (locale: Locale, value: string): boolean => {\n return value === value.toLocaleUpperCase(locale);\n};\n","import { Locale } from '@scrabble-solver/types';\nimport { transliterate } from 'transliteration';\n\nconst transliteratePerLocale: Record<Locale, (word: string) => string> = {\n [Locale.DE_DE]: (word) => word,\n [Locale.EN_GB]: (word) => word,\n [Locale.EN_US]: (word) => word,\n [Locale.ES_ES]: (word) => transliterate(word, { ignore: ['ñ', 'Ñ'] }),\n [Locale.FA_IR]: (word) => word,\n [Locale.FR_FR]: (word) => transliterate(word),\n [Locale.PL_PL]: (word) => word,\n [Locale.RO_RO]: (word) => transliterate(word),\n [Locale.TR_TR]: (word) => word,\n};\n\nexport const localeTransliterate = (locale: Locale, value: string): string => {\n return transliteratePerLocale[locale](value);\n};\n","export const extractInputValue = (input: HTMLInputElement) => {\n const value = input.value.toLocaleLowerCase();\n\n if (input.selectionStart === null || input.selectionEnd === null) {\n return value;\n }\n\n const index = Math.min(input.selectionStart, input.selectionEnd);\n\n if (index > 0) {\n return value.substring(index - 1, index);\n }\n\n return value;\n};\n","import { type Cell } from '@scrabble-solver/types';\n\nexport const findCell = (cells: Cell[], x: number, y: number): Cell | undefined => {\n return cells.find((cell) => cell.x === x && cell.y === y);\n};\n","const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\nexport const getCoordinate = (index: number, type: 'letter' | 'number'): string => {\n if (type === 'number') {\n return String(index + 1);\n }\n\n let result = '';\n let nextIndex = index;\n\n while (nextIndex >= 0) {\n result = alphabet[nextIndex % alphabet.length] + result;\n nextIndex = Math.floor(nextIndex / alphabet.length) - 1;\n }\n\n return result;\n};\n","import { BOARD_TILE_FONT_SIZE_MIN, BOARD_TILE_FONT_SIZE_POINTS_MIN } from 'parameters';\n\ninterface TileSizes {\n pointsFontSize: number;\n tileFontSize: number;\n tileSize: number;\n}\n\nexport const getTileSizes = (tileSize: number): TileSizes => ({\n pointsFontSize: Math.max(Math.round(tileSize * 0.25), BOARD_TILE_FONT_SIZE_POINTS_MIN),\n tileFontSize: Math.max(Math.round(tileSize * 0.6), BOARD_TILE_FONT_SIZE_MIN),\n tileSize,\n});\n","export const inverseDirection = (direction: 'left' | 'right'): 'left' | 'right' => {\n return direction === 'left' ? 'right' : 'left';\n};\n","import { type KeyboardEvent } from 'react';\n\nexport const isCtrl = <T>(event: KeyboardEvent<T> | globalThis.KeyboardEvent): boolean => {\n return event.ctrlKey || event.metaKey;\n};\n","export const isMac = (): boolean => {\n if (!globalThis.navigator) {\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return globalThis.navigator.platform.startsWith('Mac') || globalThis.navigator.platform === 'iPhone';\n};\n","export const isRegExp = (value: string): boolean => {\n try {\n // eslint-disable-next-line no-new\n new RegExp(value);\n return true;\n } catch {\n return false;\n }\n};\n","interface AnyFunction<Args extends unknown[], Result> {\n (...parameters: Args): Result;\n}\n\ninterface Entry<Args extends unknown[], Result> {\n parameters: Args;\n result: Result;\n}\n\nexport const memoize = <Args extends unknown[], Result>(\n fn: AnyFunction<Args, Result>,\n): AnyFunction<Args, Result> & {\n hasCache: (...parameters: Args) => boolean;\n} => {\n const cache: Entry<Args, Result>[] = [];\n\n const hasCache = (...parameters: Args): boolean => Boolean(readCache(parameters));\n\n const readCache = (parameters: Args): Result | undefined => {\n return cache.find((entry) => parametersEqual(entry.parameters, parameters))?.result;\n };\n\n const removeCache = (parameters: Args): void => {\n const index = cache.findIndex((entry) => parametersEqual(entry.parameters, parameters));\n\n if (index >= 0) {\n cache.splice(index, 1);\n }\n };\n\n const writeCache = (parameters: Args, result: Result): void => {\n cache.push({ parameters, result });\n };\n\n const memoized = (...parameters: Args): Result => {\n const cached = readCache(parameters);\n\n if (cached) {\n return cached;\n }\n\n const result = fn(...parameters);\n\n if (result instanceof Promise) {\n result.catch(() => {\n removeCache(parameters);\n });\n }\n\n writeCache(parameters, result);\n\n return result;\n };\n\n return Object.assign(memoized, { hasCache });\n};\n\nconst parametersEqual = <Args extends unknown[]>(a: Args, b: Args): boolean => {\n if (a.length !== b.length) {\n return false;\n }\n\n return a.every((parameter: Args[typeof index], index: number) => parameter === b[index]);\n};\n","import { type Comparator } from 'types';\n\nexport const createStringComparator: (locale: string) => Comparator<string> = (locale) => {\n return (a, b) => {\n return a.localeCompare(b, locale);\n };\n};\n","import { type Comparator } from 'types';\n\nexport const numberComparator: Comparator<number> = (a, b) => a - b;\n","import type { Comparator } from 'types';\n\nimport { createStringComparator } from './createStringComparator';\nimport { numberComparator } from './numberComparator';\n\nexport const createComparator = <T>(locale: string): Comparator<T> => {\n const stringComparator = createStringComparator(locale);\n\n return (a: T, b: T): number => {\n if (typeof a === 'string' && typeof b === 'string') {\n return stringComparator(a, b);\n }\n\n if (typeof a === 'number' && typeof b === 'number') {\n return numberComparator(a, b);\n }\n\n return 0;\n };\n};\n","import { createComparator } from './createComparator';\n\nexport const unorderedArraysEqual = <T>(a: T[], b: T[], locale: string): boolean => {\n if (a.length !== b.length) {\n return false;\n }\n\n const comparator = createComparator(locale);\n const aSorted = [...a].sort(comparator);\n const bSorted = [...b].sort(comparator);\n return aSorted.every((character, index) => character === bSorted[index]);\n};\n","import { BLANK } from '@scrabble-solver/constants';\nimport { type Tile } from '@scrabble-solver/types';\n\nimport { type Rack } from 'types';\n\ninterface CharacterTilePair {\n character: string | null;\n tile: Tile | null;\n}\n\nexport const zipCharactersAndTiles = (characters: Rack, tiles: Tile[]): CharacterTilePair[] => {\n let remainingTiles = [...tiles];\n\n return characters.map((character) => {\n const index = remainingTiles.findIndex((tile) =>\n character === BLANK ? tile.isBlank : character === tile.character,\n );\n\n if (index >= 0) {\n const tile = remainingTiles[index];\n remainingTiles = [...remainingTiles.slice(0, index), ...remainingTiles.slice(index + 1)];\n\n return { character, tile };\n }\n\n return { character, tile: null };\n });\n};\n","export { arrayEquals } from './arrayEquals';\nexport { createComparator } from './createComparator';\nexport { createKeyboardNavigation } from './createKeyboardNavigation';\nexport { createKeyComparator } from './createKeyComparator';\nexport { createNullMovingComparator } from './createNullMovingComparator';\nexport { createRegExp } from './createRegExp';\nexport { createStringComparator } from './createStringComparator';\nexport { extractCharacters } from './extractCharacters';\nexport { extractInputValue } from './extractInputValue';\nexport { findCell } from './findCell';\nexport { getCoordinate } from './getCoordinate';\nexport { getTileSizes } from './getTileSizes';\nexport { inverseDirection } from './inverseDirection';\nexport { isCtrl } from './isCtrl';\nexport { isMac } from './isMac';\nexport { isRegExp } from './isRegExp';\nexport { isStringArray } from './isStringArray';\nexport { localeTransliterate } from './localeTransliterate';\nexport { memoize } from './memoize';\nexport { noop } from './noop';\nexport { numberComparator } from './numberComparator';\nexport { reverseComparator } from './reverseComparator';\nexport { unorderedArraysEqual } from './unorderedArraysEqual';\nexport { zipCharactersAndTiles } from './zipCharactersAndTiles';\n","import { type Comparator } from 'types';\n\nimport { createStringComparator } from './createStringComparator';\nimport { numberComparator } from './numberComparator';\n\nexport const createKeyComparator = <T extends Record<keyof T, unknown>>(\n key: keyof T,\n locale: string,\n): Comparator<T> => {\n const stringComparator = createStringComparator(locale);\n\n return (a: T, b: T): number => {\n const aValue = a[key];\n const bValue = b[key];\n\n if (typeof aValue === 'string' && typeof bValue === 'string') {\n return stringComparator(aValue, bValue);\n }\n\n if (typeof aValue === 'number' && typeof bValue === 'number') {\n return numberComparator(aValue, bValue);\n }\n\n return 0;\n };\n};\n","export const isStringArray = (value: unknown): value is string[] => {\n return Array.isArray(value) && value.every((item) => typeof item === 'string');\n};\n","import { type Comparator } from 'types';\n\nexport const reverseComparator = <T>(comparator: Comparator<T>): Comparator<T> => {\n return (a: T, b: T): number => -comparator(a, b);\n};\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { type Tile } from '@scrabble-solver/types';\n\nimport { arrayEquals, createNullMovingComparator, inverseDirection, zipCharactersAndTiles } from 'lib';\nimport { type AutoGroupTiles, type Rack } from 'types';\n\nimport { rackDefaultState, rackInitialState } from './initialState';\n\nexport const rackSlice = createSlice({\n initialState: rackInitialState,\n name: 'rack',\n reducers: {\n changeCharacter: (state, action: PayloadAction<{ character: string | null; index: number }>) => {\n const { character, index } = action.payload;\n return [...state.slice(0, index), character, ...state.slice(index + 1)];\n },\n\n changeCharacters: (state, action: PayloadAction<{ characters: Rack; index: number }>) => {\n const { characters, index } = action.payload;\n\n if (characters.length === 0) {\n return state;\n }\n\n const expectedRackLength = state.length;\n const rack = [...state.slice(0, index), ...characters, ...state.slice(index + characters.length)];\n return rack.slice(0, expectedRackLength);\n },\n\n groupTiles: (state, action: PayloadAction<AutoGroupTiles>) => {\n if (action.payload === null) {\n return state;\n }\n\n const nullMovingComparator = createNullMovingComparator(inverseDirection(action.payload));\n const sortedTiles = [...state].sort(nullMovingComparator);\n return arrayEquals(state, sortedTiles) ? state : sortedTiles;\n },\n\n init: (state, action: PayloadAction<Rack>) => {\n return arrayEquals(state, action.payload) ? state : action.payload;\n },\n\n removeTiles: (state, action: PayloadAction<Tile[]>) => {\n const tilesToRemove = action.payload;\n const charactersAndTiles = zipCharactersAndTiles(state, tilesToRemove);\n const charactersWithoutMatchingTiles = charactersAndTiles.map(({ character, tile }) => (tile ? null : character));\n return charactersWithoutMatchingTiles;\n },\n\n reset: () => rackDefaultState,\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","import { ResultColumnId, SortDirection } from 'types';\n\nimport type { ResultsState } from './types';\n\nexport const resultsInitialState: ResultsState = {\n candidate: null,\n query: '',\n results: undefined,\n sort: {\n column: ResultColumnId.Points,\n direction: SortDirection.Descending,\n },\n};\n","import { type Result, type ShowCoordinates } from '@scrabble-solver/types';\n\nimport { createKeyComparator, createRegExp, createStringComparator, getCoordinate, reverseComparator } from 'lib';\nimport { type CellFilter, type Comparator, type GroupedResults, ResultColumnId, type Sort, SortDirection } from 'types';\n\nexport const getCoordinates = (result: Result, showCoordinates: ShowCoordinates): string => {\n if (showCoordinates === 'hidden') {\n return '';\n }\n\n const firstCell = result.cells[0];\n const x = getCoordinate(firstCell.x, showCoordinates === 'original' ? 'letter' : 'number');\n const y = getCoordinate(firstCell.y, showCoordinates === 'original' ? 'number' : 'letter');\n\n return result.isHorizontal() ? `${y}${x}` : `${x}${y}`;\n};\n\nexport const groupResults = (\n results: Result[] | undefined,\n query: string,\n cellFilters: CellFilter[],\n): GroupedResults | undefined => {\n if (typeof results === 'undefined') {\n return undefined;\n }\n\n const regExp = createRegExp(query);\n\n const { matching, other } = results.reduce<GroupedResults>(\n (groupedResults, result) => {\n const matchesQuery = () => Boolean(result.word.match(regExp));\n\n if (resultMatchesCellFilter(result, cellFilters) && matchesQuery()) {\n groupedResults.matching.push(result);\n } else {\n groupedResults.other.push(result);\n }\n\n return groupedResults;\n },\n { matching: [], other: [] },\n );\n\n return { matching, other };\n};\n\nexport const resultMatchesCellFilter = (result: Result, cellFilters: CellFilter[]): boolean => {\n const excludeFilters = cellFilters.filter((filter) => filter.type === 'exclude');\n const matchesExcludeFilters = excludeFilters.every(({ x, y }) => {\n return result.cells.every((cell) => cell.x !== x || cell.y !== y);\n });\n\n if (!matchesExcludeFilters) {\n return false;\n }\n\n const includeFilter = cellFilters.filter((filter) => filter.type === 'include');\n const matchesIncludeFilters = includeFilter.every(({ x, y }) => {\n return result.cells.some((cell) => cell.x === x && cell.y === y);\n });\n\n return matchesExcludeFilters && matchesIncludeFilters;\n};\n\nconst comparators: Record<ResultColumnId, (locale: string, showCoordinates: ShowCoordinates) => Comparator<Result>> = {\n [ResultColumnId.BlanksCount]: (locale: string) => createKeyComparator('blanksCount', locale),\n [ResultColumnId.ConsonantsCount]: (locale: string) => createKeyComparator('consonantsCount', locale),\n [ResultColumnId.Coordinates]: (locale: string, showCoordinates: ShowCoordinates) => (a, b) => {\n const stringComparator = createStringComparator(locale);\n const aValue = getCoordinates(a, showCoordinates);\n const bValue = getCoordinates(b, showCoordinates);\n return stringComparator(aValue, bValue);\n },\n [ResultColumnId.Points]: (locale: string) => createKeyComparator('points', locale),\n [ResultColumnId.TilesCount]: (locale: string) => createKeyComparator('tilesCount', locale),\n [ResultColumnId.VowelsCount]: (locale: string) => createKeyComparator('vowelsCount', locale),\n [ResultColumnId.Word]: (locale: string) => createKeyComparator('word', locale),\n [ResultColumnId.WordsCount]: (locale: string) => createKeyComparator('wordsCount', locale),\n};\n\nexport const sortResults = (\n results: Result[] | undefined,\n sort: Sort,\n locale: string,\n showCoordinates: ShowCoordinates,\n): Result[] | undefined => {\n if (typeof results === 'undefined') {\n return undefined;\n }\n\n const createComparator = comparators[sort.column];\n const comparator = createComparator(locale, showCoordinates);\n const finalComparator = sort.direction === SortDirection.Descending ? reverseComparator(comparator) : comparator;\n const sortedResults = [...results].sort(finalComparator);\n return sortedResults;\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { createRegExp } from 'lib';\n\nimport { selectCellFilters } from '../cellFilters';\nimport { selectLocale, selectShowCoordinates } from '../settings';\nimport type { RootState } from '../types';\n\nimport { getCoordinates, groupResults, resultMatchesCellFilter, sortResults } from './lib';\n\nconst selectResultIndex = (_: unknown, index: number): number => index;\n\nexport const selectResults = (state: RootState) => state.results;\n\nexport const selectResultCandidate = createSelector([selectResults], (results) => results.candidate);\n\nexport const selectResultsQuery = createSelector([selectResults], (results) => results.query);\n\nconst selectResultsResults = createSelector([selectResults], (results) => results.results);\n\nexport const selectResultsSort = createSelector([selectResults], (results) => results.sort);\n\nexport const selectResultCandidateCells = createSelector(\n [selectResultCandidate],\n (resultCandidate) => resultCandidate?.cells ?? [],\n);\n\nexport const selectResultCandidateTiles = createSelector(\n [selectResultCandidate],\n (resultCandidate) => resultCandidate?.tiles ?? [],\n);\n\nconst selectSortedResults = createSelector(\n [selectResultsResults, selectResultsSort, selectLocale, selectShowCoordinates],\n sortResults,\n);\n\nconst selectGroupedSortedResults = createSelector(\n [selectSortedResults, selectResultsQuery, selectCellFilters],\n groupResults,\n);\n\nexport const selectProcessedResults = createSelector([selectGroupedSortedResults], (results) => {\n return results ? [...results.matching, ...results.other] : undefined;\n});\n\nexport const selectIsResultMatching = createSelector(\n [selectProcessedResults, selectResultsQuery, selectCellFilters, selectResultIndex],\n (results, query, cellFilters, index) => {\n if (!results) {\n return false;\n }\n\n const result = results[index];\n const regExp = createRegExp(query);\n\n if (!regExp.test(result.word)) {\n return false;\n }\n\n return resultMatchesCellFilter(result, cellFilters);\n },\n);\n\nexport const selectResultCoordinates = createSelector(\n [selectProcessedResults, selectShowCoordinates, selectResultIndex],\n (results, showCoordinates, index) => {\n if (!results) {\n return '';\n }\n\n const result = results[index];\n return getCoordinates(result, showCoordinates);\n },\n);\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { type Result } from '@scrabble-solver/types';\n\nimport { type ResultColumnId, SortDirection } from 'types';\n\nimport { resultsInitialState } from './initialState';\n\nconst toggleDirection = (direction: SortDirection): SortDirection => {\n return direction === SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending;\n};\n\nexport const resultsSlice = createSlice({\n initialState: resultsInitialState,\n name: 'results',\n reducers: {\n applyResult: (_state, _action: PayloadAction<Result>) => {\n return resultsInitialState;\n },\n\n changeQuery: (state, action: PayloadAction<string>) => {\n const newQuery = action.payload;\n return { ...state, query: newQuery };\n },\n\n changeResultCandidate: (state, action: PayloadAction<Result | null>) => {\n const candidate = action.payload;\n return { ...state, candidate };\n },\n\n changeResults: (state, action: PayloadAction<Result[]>) => {\n const newResults = action.payload;\n return {\n ...state,\n candidate: resultsInitialState.candidate,\n query: resultsInitialState.query,\n results: newResults,\n };\n },\n\n sort: (state, action: PayloadAction<ResultColumnId>) => {\n const columndId = action.payload;\n const { column, direction } = state.sort;\n\n return {\n ...state,\n sort: {\n column: columndId,\n direction: column === columndId ? toggleDirection(direction) : direction,\n },\n };\n },\n\n reset: () => resultsInitialState,\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","import { BLANK } from '@scrabble-solver/constants';\nimport { type Board, type Config } from '@scrabble-solver/types';\n\nimport { createKeyComparator } from 'lib';\nimport { type RemainingTile } from 'types';\n\nexport const getRemainingTiles = (\n config: Config,\n board: Board,\n characters: string[],\n locale: string,\n): RemainingTile[] => {\n const nonEmptyCells = board.rows.flat().filter((cell) => !cell.isEmpty);\n const letterCells = nonEmptyCells.filter((cell) => !cell.tile.isBlank);\n const remainingTiles = Object.fromEntries(config.tiles.map((tile) => [tile.character, { ...tile, usedCount: 0 }]));\n const blank: RemainingTile = {\n character: BLANK,\n count: config.blanksCount,\n score: config.blankScore,\n usedCount:\n nonEmptyCells.filter((cell) => cell.tile.isBlank).length +\n characters.filter((character) => character === BLANK).length,\n };\n const letters = [\n ...letterCells.map((cell) => cell.tile.character),\n ...characters.filter((letter) => letter !== BLANK),\n ];\n const unknownLetters = letters.filter((letter) => typeof remainingTiles[letter] === 'undefined');\n\n for (const letter of unknownLetters) {\n remainingTiles[letter] = {\n character: letter,\n count: 0,\n score: 0,\n usedCount: 0,\n };\n }\n\n for (const letter of letters) {\n ++remainingTiles[letter].usedCount;\n }\n\n const comparator = createKeyComparator('character', locale);\n\n return [...Object.values(remainingTiles).sort(comparator), blank];\n};\n","import { boardInitialState } from '../board';\n\nimport type { SolveState } from './types';\n\nexport const solveInitialState: SolveState = {\n error: undefined,\n isLoading: false,\n lastSolvedParameters: {\n board: boardInitialState,\n characters: [],\n },\n};\n","import { createSelector } from '@reduxjs/toolkit';\nimport { isError } from '@scrabble-solver/types';\n\nimport type { RootState } from '../types';\n\nexport const selectSolve = (state: RootState) => state.solve;\n\nexport const selectSolveError = createSelector([selectSolve], (solve) => {\n return isError(solve.error) ? solve.error : undefined;\n});\n\nexport const selectSolveIsLoading = createSelector([selectSolve], (solve) => solve.isLoading);\n\nexport const selectLastSolvedParameters = createSelector([selectSolve], (solve) => solve.lastSolvedParameters);\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { type Board } from '@scrabble-solver/types';\n\nimport { solveInitialState } from './initialState';\n\ninterface SolveParameters {\n board: Board;\n characters: string[];\n}\n\nexport const solveSlice = createSlice({\n initialState: solveInitialState,\n name: 'solve',\n reducers: {\n reset: () => solveInitialState,\n\n submit: (state) => {\n const error = solveInitialState.error;\n return { ...state, error, isLoading: true };\n },\n\n submitFailure: (state, action: PayloadAction<unknown>) => {\n const error = action.payload;\n return { ...state, error, isLoading: false };\n },\n\n submitSuccess: (state, action: PayloadAction<SolveParameters>) => {\n const error = solveInitialState.error;\n const lastSolvedParameters = action.payload;\n return { ...state, error, isLoading: false, lastSolvedParameters };\n },\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { unorderedArraysEqual } from 'lib';\n\nimport { selectBoard } from './board';\nimport { getRemainingTiles } from './lib';\nimport { selectCharacters } from './rack';\nimport { selectConfig, selectLocale } from './settings';\nimport { selectLastSolvedParameters } from './solve';\n\nconst selectHasBoardChanged = createSelector(\n [selectLastSolvedParameters, selectBoard],\n (lastSolvedParameters, board) => {\n return !lastSolvedParameters.board.equals(board);\n },\n);\n\nconst selectHaveCharactersChanged = createSelector(\n [selectLastSolvedParameters, selectCharacters, selectLocale],\n (lastSolvedParameters, characters, locale) => {\n return !unorderedArraysEqual(lastSolvedParameters.characters, characters, locale);\n },\n);\n\nexport const selectAreResultsOutdated = createSelector(\n [selectHasBoardChanged, selectHaveCharactersChanged],\n (hasBoardChanged, haveCharactersChanged) => {\n return hasBoardChanged || haveCharactersChanged;\n },\n);\n\nexport const selectRemainingTiles = createSelector(\n [selectConfig, selectBoard, selectCharacters, selectLocale],\n getRemainingTiles,\n);\n","import { isError } from '@scrabble-solver/types';\n\nexport const fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n let response: Response;\n\n try {\n response = await window.fetch(input, init);\n } catch (error) {\n const message = isError(error) ? error.message : 'Unknown error';\n throw new Error(`Network error: ${message}`);\n }\n\n if (response.ok) {\n return response;\n }\n\n try {\n const json = await response.json();\n\n if (isError(json)) {\n throw new Error(json.message);\n }\n } finally {\n // do nothing\n }\n\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n};\n","import { fetch } from './fetch';\n\nexport const fetchJson = async <T>(input: RequestInfo | URL, init?: RequestInit): Promise<T> => {\n const response = await fetch(input, {\n ...init,\n headers: {\n 'Content-Type': 'application/json',\n ...init?.headers,\n },\n });\n\n return response.json();\n};\n","import { type Locale, WordDefinition, type WordDefinitionJson } from '@scrabble-solver/types';\n\nimport { fetchJson } from './fetchJson';\n\nexport const findWordDefinitions = async (locale: Locale, word: string): Promise<WordDefinition[]> => {\n const json = await fetchJson<WordDefinitionJson[]>(`/api/dictionary/${locale}/${encodeURIComponent(word)}`);\n return json.map(WordDefinition.fromJson);\n};\n","import { type BoardJson, type Locale, Result, type ResultJson } from '@scrabble-solver/types';\n\nimport { fetchJson } from './fetchJson';\n\ninterface Payload {\n board: BoardJson;\n characters: string[];\n game: string;\n locale: Locale;\n}\n\nexport const solve = async ({ board, characters, game, locale }: Payload): Promise<Result[]> => {\n const json = await fetchJson<ResultJson[]>('/api/solve', {\n method: 'POST',\n body: JSON.stringify({ board, characters, game, locale }),\n });\n\n return json.map(Result.fromJson);\n};\n","import { type BoardJson, type Locale } from '@scrabble-solver/types';\n\nimport { fetchJson } from './fetchJson';\n\ninterface Payload {\n board: BoardJson;\n game: string;\n locale: Locale;\n}\n\ninterface Response {\n invalidWords: string[];\n validWords: string[];\n}\n\nexport const verify = async ({ board, game, locale }: Payload): Promise<Response> => {\n return fetchJson<Response>('/api/verify', {\n method: 'POST',\n body: JSON.stringify({ board, game, locale }),\n });\n};\n","export const visit = (): Promise<Response> => {\n return fetch('/api/visit', {\n method: 'PUT',\n });\n};\n","export { findWordDefinitions } from './findWordDefinitions';\nexport { solve } from './solve';\nexport { verify } from './verify';\nexport { visit } from './visit';\n","import { boardInitialState } from '../board';\n\nimport type { VerifyState } from './types';\n\nexport const verifyInitialState: VerifyState = {\n isLoading: false,\n lastSolvedParameters: {\n board: boardInitialState,\n },\n invalidWords: [],\n validWords: [],\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../types';\n\nexport const selectVerify = (state: RootState) => state.verify;\n\nexport const selectInvalidWords = createSelector([selectVerify], (verify) => verify.invalidWords);\n\nexport const selectValidWords = createSelector([selectVerify], (verify) => verify.validWords);\n","import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { type Board } from '@scrabble-solver/types';\n\nimport { verifyInitialState } from './initialState';\n\ninterface VerifyParameters {\n board: Board;\n invalidWords: string[];\n validWords: string[];\n}\n\nexport const verifySlice = createSlice({\n initialState: verifyInitialState,\n name: 'verify',\n reducers: {\n submit: (state) => {\n return { ...state, isLoading: true };\n },\n\n submitFailure: (state) => {\n return { ...state, isLoading: false };\n },\n\n submitSuccess: (state, action: PayloadAction<VerifyParameters>) => {\n const { board, invalidWords, validWords } = action.payload;\n return { ...state, isLoading: false, lastSolvedParameters: { board }, invalidWords, validWords };\n },\n },\n});\n","export * from './initialState';\nexport * from './selectors';\nexport * from './slice';\nexport * from './types';\n","/* eslint-disable max-lines, no-implicit-globals */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\nimport { type PayloadAction } from '@reduxjs/toolkit';\nimport { hasConfig, languages } from '@scrabble-solver/configs';\nimport { Board, type Locale, type Result } from '@scrabble-solver/types';\nimport { call, delay, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\n\nimport { LOCALE_FEATURES } from 'i18n';\nimport { memoize } from 'lib';\nimport { findWordDefinitions, solve, verify, visit } from 'sdk';\n\nimport { initialize, reset } from './actions';\nimport { boardSlice, selectBoard } from './board';\nimport { cellFiltersSlice, selectCellFilter } from './cellFilters';\nimport { dictionarySlice, selectDictionary } from './dictionary';\nimport { rackSlice, selectCharacters, selectRack } from './rack';\nimport { resultsSlice } from './results';\nimport {\n selectConfig,\n selectGame,\n selectLocale,\n selectLocaleAutoGroupTiles,\n selectRemoveCellFilters,\n settingsSlice,\n} from './settings';\nimport { solveSlice } from './solve';\nimport { verifySlice } from './verify';\n\nconst SUBMIT_DELAY = 150;\n\nconst memoizedFindWordDefinitions = memoize(findWordDefinitions);\n\n// Can't conveniently type generators for sagas yet,\n// see: https://github.com/microsoft/TypeScript/issues/43632\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyGenerator = Generator<any, any, any>;\n\nexport function* rootSaga(): AnyGenerator {\n yield takeEvery(boardSlice.actions.changeCellValue.type, onCellValueChange);\n yield takeEvery([rackSlice.actions.changeCharacter.type, rackSlice.actions.changeCharacters.type], onRackValueChange);\n yield takeEvery(resultsSlice.actions.applyResult.type, onApplyResult);\n yield takeEvery(resultsSlice.actions.changeResultCandidate.type, onResultCandidateChange);\n yield takeEvery(settingsSlice.actions.changeGame.type, onGameChange);\n yield takeEvery(settingsSlice.actions.changeLocale.type, onLocaleChange);\n yield takeLatest(dictionarySlice.actions.submit.type, onDictionarySubmit);\n yield takeLatest(initialize.type, onInitialize);\n yield takeLatest(reset.type, onReset);\n yield takeLatest(solveSlice.actions.submit.type, onSolve);\n yield takeLatest(verifySlice.actions.submit.type, onVerify);\n}\n\nfunction* onCellValueChange({ payload }: PayloadAction<{ value: string; x: number; y: number }>): AnyGenerator {\n const filter = yield select((state) => selectCellFilter(state, payload));\n\n if (filter) {\n yield put(cellFiltersSlice.actions.cancel(payload));\n }\n\n yield put(resultsSlice.actions.changeResultCandidate(null));\n yield put(verifySlice.actions.submit());\n}\n\nfunction* onRackValueChange(): AnyGenerator {\n yield put(resultsSlice.actions.changeResultCandidate(null));\n}\n\nfunction* onApplyResult({ payload: result }: PayloadAction<Result>): AnyGenerator {\n const autoGroupTiles = yield select(selectLocaleAutoGroupTiles);\n const removeCellFilters = yield select(selectRemoveCellFilters);\n yield put(boardSlice.actions.applyResult(result));\n if (removeCellFilters === 'never') {\n yield put(cellFiltersSlice.actions.removeCells(result.cells));\n } else {\n yield put(cellFiltersSlice.actions.reset());\n }\n yield put(rackSlice.actions.removeTiles(result.tiles));\n yield put(rackSlice.actions.groupTiles(autoGroupTiles));\n yield put(verifySlice.actions.submit());\n}\n\nfunction* onGameChange(): AnyGenerator {\n const characters = yield select(selectCharacters);\n\n if (characters.length > 0) {\n yield put(solveSlice.actions.submit());\n } else {\n yield put(resultsSlice.actions.reset());\n }\n\n yield put(resultsSlice.actions.reset());\n yield* resetRack();\n yield put(verifySlice.actions.submit());\n}\n\nfunction* onDictionarySubmit(): AnyGenerator {\n const { input: word } = yield select(selectDictionary);\n const locale = yield select(selectLocale);\n\n if (!memoizedFindWordDefinitions.hasCache(locale, word)) {\n yield delay(SUBMIT_DELAY);\n }\n\n try {\n const wordDefinitions = yield call(memoizedFindWordDefinitions, locale, word);\n const { input: currentWord } = yield select(selectDictionary);\n\n if (word === currentWord) {\n yield put(dictionarySlice.actions.submitSuccess(wordDefinitions));\n }\n } catch (error) {\n const { input: currentWord } = yield select(selectDictionary);\n\n if (word === currentWord) {\n yield put(dictionarySlice.actions.submitFailure(error));\n }\n }\n}\n\nfunction* onInitialize(): AnyGenerator {\n const board = yield select(selectBoard);\n\n yield call(visit);\n\n if (!board.isEmpty()) {\n yield* resetRack();\n yield put(verifySlice.actions.submit());\n }\n}\n\nfunction* onReset(): AnyGenerator {\n const config = yield select(selectConfig);\n\n yield put(boardSlice.actions.init(Board.create(config.boardWidth, config.boardHeight)));\n yield put(cellFiltersSlice.actions.reset());\n yield put(dictionarySlice.actions.reset());\n yield put(rackSlice.actions.reset());\n yield put(resultsSlice.actions.reset());\n yield put(solveSlice.actions.reset());\n yield put(verifySlice.actions.submit());\n}\n\nfunction* onLocaleChange({ payload: locale }: PayloadAction<Locale>): AnyGenerator {\n const game = yield select(selectGame);\n\n if (!hasConfig(game, locale)) {\n const defaultConfig = Object.values(languages).find((config) => config.locale === locale);\n\n if (defaultConfig) {\n yield put(settingsSlice.actions.changeGame(defaultConfig.game));\n }\n }\n\n const characters = yield select(selectCharacters);\n\n if (characters.length > 0) {\n yield put(solveSlice.actions.submit());\n } else {\n yield put(resultsSlice.actions.reset());\n }\n\n yield put(dictionarySlice.actions.reset());\n yield put(resultsSlice.actions.changeResultCandidate(null));\n yield put(verifySlice.actions.submit());\n}\n\nfunction* onResultCandidateChange({ payload: result }: PayloadAction<Result | null>): AnyGenerator {\n if (result) {\n const locale: Locale = yield select(selectLocale);\n const uniqueWords = Array.from(new Set(result.words));\n const input = uniqueWords.join(LOCALE_FEATURES[locale].separator);\n yield put(dictionarySlice.actions.changeInput(input));\n yield put(dictionarySlice.actions.submit());\n }\n}\n\nfunction* onSolve(): AnyGenerator {\n const board = yield select(selectBoard);\n const { config } = yield select(selectConfig);\n const locale = yield select(selectLocale);\n const characters = yield select(selectCharacters);\n\n if (characters.length === 0) {\n yield put(solveSlice.actions.submitSuccess({ board, characters }));\n yield put(resultsSlice.actions.changeResults([]));\n return;\n }\n\n try {\n const results = yield call(solve, {\n board: board.toJson(),\n characters,\n game: config.game,\n locale,\n });\n yield put(resultsSlice.actions.changeResults(results));\n yield put(solveSlice.actions.submitSuccess({ board, characters }));\n } catch (error) {\n yield put(resultsSlice.actions.changeResults([]));\n yield put(solveSlice.actions.submitFailure(error));\n }\n}\n\nfunction* onVerify(): AnyGenerator {\n yield delay(SUBMIT_DELAY);\n\n const board = yield select(selectBoard);\n const { config } = yield select(selectConfig);\n const locale = yield select(selectLocale);\n\n try {\n const { invalidWords, validWords } = yield call(verify, {\n board: board.toJson(),\n game: config.game,\n locale,\n });\n yield put(verifySlice.actions.submitSuccess({ board, invalidWords, validWords }));\n } catch (_error) {\n yield put(verifySlice.actions.submitFailure());\n }\n}\n\nfunction* resetRack(): AnyGenerator {\n const { config } = yield select(selectConfig);\n const rack = yield select(selectRack);\n\n if (config.rackSize > rack.length) {\n const differenceCount = Math.abs(config.rackSize - rack.length);\n yield put(rackSlice.actions.init([...rack, ...Array(differenceCount).fill(null)]));\n } else if (config.rackSize < rack.length) {\n const nonNulls = rack.filter(Boolean).slice(0, config.rackSize);\n const differenceCount = Math.abs(config.rackSize - nonNulls.length);\n const autoGroupTiles = yield select(selectLocaleAutoGroupTiles);\n yield put(rackSlice.actions.init([...nonNulls, ...Array(differenceCount).fill(null)]));\n yield put(rackSlice.actions.groupTiles(autoGroupTiles));\n }\n}\n","import { configureStore } from '@reduxjs/toolkit';\nimport reduxSaga from 'redux-saga';\n\nimport { boardSlice } from './board';\nimport { cellFiltersSlice } from './cellFilters';\nimport { dictionarySlice } from './dictionary';\nimport { rackSlice } from './rack';\nimport { resultsSlice } from './results';\nimport { rootSaga } from './sagas';\nimport { settingsSlice } from './settings';\nimport { solveSlice } from './solve';\nimport { verifySlice } from './verify';\n\nconst sagaMiddleware = reduxSaga();\n\nexport const store = configureStore({\n reducer: {\n board: boardSlice.reducer,\n cellFilters: cellFiltersSlice.reducer,\n dictionary: dictionarySlice.reducer,\n rack: rackSlice.reducer,\n results: resultsSlice.reducer,\n settings: settingsSlice.reducer,\n solve: solveSlice.reducer,\n verify: verifySlice.reducer,\n },\n middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: false }).concat([sagaMiddleware]),\n});\n\nsagaMiddleware.run(rootSaga);\n","import { type TypedUseSelectorHook, useSelector } from 'react-redux';\n\nimport type { RootState } from './types';\n\nexport const useTypedSelector: TypedUseSelectorHook<RootState> = useSelector;\n","import { useCallback } from 'react';\n\nimport type { Translate } from 'types';\n\nimport { selectLocale, selectTranslations } from './settings';\nimport { useTypedSelector } from './useTypedSelector';\n\nexport const useTranslate = (): Translate => {\n const translations = useTypedSelector(selectTranslations);\n const locale = useTypedSelector(selectLocale);\n const translate: Translate = useCallback(\n (id, replacements) => {\n const translation = translations[id];\n\n if (typeof translation === 'undefined') {\n throw new Error(`Untranslated key \"${id}\" in locale \"${locale}\"`);\n }\n\n if (!replacements) {\n return translation;\n }\n\n return Object.entries(replacements).reduce(\n (result, [key, value]) => result.replaceAll(`{{${key}}}`, value),\n translation,\n );\n },\n [translations, locale],\n );\n\n return translate;\n};\n","export * from './actions';\nexport * from './board';\nexport * from './cellFilters';\nexport * from './dictionary';\nexport * from './localStorage';\nexport * from './rack';\nexport * from './results';\nexport * from './selectors';\nexport * from './settings';\nexport * from './solve';\nexport * from './store';\nexport * from './useTranslate';\nexport * from './useTypedSelector';\nexport * from './verify';\n","import { useEffect, useState } from 'react';\n\nconst getInitialState = (query: string, defaultState?: boolean) => {\n if (typeof defaultState !== 'undefined') {\n return defaultState;\n }\n\n if (typeof window === 'undefined') {\n return false;\n }\n\n return window.matchMedia(query).matches;\n};\n\nexport const useMedia = (query: string, defaultState?: boolean) => {\n const [state, setState] = useState(getInitialState(query, defaultState));\n\n useEffect(() => {\n const mediaQuery = window.matchMedia(query);\n\n const handleChange = () => {\n setState(mediaQuery.matches);\n };\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setState(mediaQuery.matches);\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, [query]);\n\n return state;\n};\n","import { buildMediaQuery } from 'include-media-query-builder';\n\nimport { BREAKPOINTS } from 'parameters';\n\nimport { useMedia } from './useMedia';\n\nexport const useMediaQuery = (query: string | string[], defaultState?: boolean): boolean => {\n const mediaQuery = buildMediaQuery(BREAKPOINTS, query);\n return useMedia(mediaQuery, defaultState);\n};\n","import { useMediaQuery } from './useMediaQuery';\n\nexport const useMediaQueries = () => {\n const isLessThanXs = useMediaQuery('<xs');\n const isLessThanS = useMediaQuery('<s');\n const isLessThanM = useMediaQuery('<m');\n const isLessThanL = useMediaQuery('<l');\n const isLessThanXl = useMediaQuery('<xl');\n\n return { isLessThanXs, isLessThanS, isLessThanM, isLessThanL, isLessThanXl };\n};\n","import { createSelector } from '@reduxjs/toolkit';\nimport { useMemo } from 'react';\n\nimport { LOCALE_FEATURES } from 'i18n';\nimport { selectLocale, selectShowCoordinates, useTypedSelector } from 'state';\nimport { ResultColumnId } from 'types';\n\nimport { useMediaQueries } from './useMediaQueries';\n\nconst COLUMNS_XS = [ResultColumnId.Coordinates, ResultColumnId.Word, ResultColumnId.Points];\n\nconst COLUMNS_S = [...COLUMNS_XS, ResultColumnId.BlanksCount, ResultColumnId.WordsCount];\n\nconst COLUMNS_M = [...COLUMNS_XS];\n\nconst COLUMNS_L = [...COLUMNS_XS];\n\nconst selectColumns = createSelector([selectLocale, selectShowCoordinates], (locale, showCoordinates) => {\n const { consonants, vowels } = LOCALE_FEATURES[locale];\n const columns: ResultColumnId[] = [\n ResultColumnId.Word,\n ResultColumnId.TilesCount,\n ResultColumnId.BlanksCount,\n ResultColumnId.WordsCount,\n ResultColumnId.Points,\n ];\n\n if (showCoordinates !== 'hidden') {\n columns.push(ResultColumnId.Coordinates);\n }\n\n if (vowels) {\n columns.push(ResultColumnId.VowelsCount);\n }\n\n if (consonants) {\n columns.push(ResultColumnId.ConsonantsCount);\n }\n\n return columns;\n});\n\nexport const useColumns = (): Partial<Record<ResultColumnId, boolean>> => {\n const columns = useTypedSelector(selectColumns);\n const { isLessThanXs, isLessThanS, isLessThanM, isLessThanL } = useMediaQueries();\n\n const filteredColumns = useMemo(() => {\n if (isLessThanXs) {\n return columns.filter((columnId) => COLUMNS_XS.includes(columnId));\n }\n\n if (isLessThanS) {\n return columns.filter((columnId) => COLUMNS_S.includes(columnId));\n }\n\n if (isLessThanM) {\n return columns.filter((columnId) => COLUMNS_M.includes(columnId));\n }\n\n if (isLessThanL) {\n return columns.filter((columnId) => COLUMNS_L.includes(columnId));\n }\n\n return columns;\n }, [columns, isLessThanXs, isLessThanS, isLessThanM, isLessThanL]);\n\n const columnsMap = useMemo(() => {\n return Object.fromEntries(filteredColumns.map((column) => [column, true]));\n }, [filteredColumns]);\n\n return columnsMap;\n};\n","import { useMedia } from './useMedia';\n\nexport const useIsTouchDevice = () => {\n return useMedia('(hover: none)', false);\n};\n","import { useEffect } from 'react';\n\nexport const useOnWindowResize = (onResize: (event: Event) => void) => {\n useEffect(() => {\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [onResize]);\n};\n","import { useCallback, useState } from 'react';\n\nimport { useOnWindowResize } from './useOnWindowResize';\n\nexport const useViewportSize = () => {\n const [viewportHeight, setViewportHeight] = useState(typeof window === 'undefined' ? 0 : window.innerHeight);\n const [viewportWidth, setViewportWidth] = useState(typeof window === 'undefined' ? 0 : window.innerWidth);\n\n const handleWindowResize = useCallback(() => {\n setViewportHeight(window.innerHeight);\n setViewportWidth(window.innerWidth);\n }, []);\n\n useOnWindowResize(handleWindowResize);\n\n return { viewportHeight, viewportWidth };\n};\n","/* eslint-disable max-statements */\n\nimport {\n BOARD_TILE_SIZE_MAX,\n BORDER_WIDTH,\n BUTTON_HEIGHT,\n COMPONENTS_SPACING,\n COMPONENTS_SPACING_SMALL,\n DICTIONARY_HEIGHT,\n DICTIONARY_HEIGHT_MOBILE,\n LOGO_ASPECT_RATIO,\n LOGO_HEIGHT,\n LOGO_HEIGHT_SMALL,\n MODAL_HEADER_HEIGHT,\n MODAL_WIDTH,\n NAV_PADDING,\n RACK_TILE_SIZE_MAX,\n RESULTS_COLUMN_WIDTH,\n SOLVER_COLUMN_WIDTH,\n TEXT_INPUT_HEIGHT,\n} from 'parameters';\nimport { selectConfig, selectShowCoordinates, useTypedSelector } from 'state';\nimport { type ResultColumnId } from 'types';\n\nimport { useColumns } from './useColumns';\nimport { useIsTouchDevice } from './useIsTouchDevice';\nimport { useMediaQueries } from './useMediaQueries';\nimport { useViewportSize } from './useViewportSize';\n\nexport const useAppLayout = () => {\n const { viewportHeight, viewportWidth } = useViewportSize();\n const config = useTypedSelector(selectConfig);\n const showCoordinates = useTypedSelector(selectShowCoordinates);\n const isTouchDevice = useIsTouchDevice();\n const { isLessThanXs, isLessThanS, isLessThanM, isLessThanL, isLessThanXl } = useMediaQueries();\n const columns = useColumns();\n const isBoardFullWidth = isLessThanM;\n const showResultCandidatePicker = isLessThanL;\n const componentsSpacing = isLessThanXl ? COMPONENTS_SPACING_SMALL : COMPONENTS_SPACING;\n const showColumn = !isLessThanL;\n const columnWidth = showColumn ? SOLVER_COLUMN_WIDTH : 0;\n const logoHeight = isLessThanL ? LOGO_HEIGHT_SMALL : LOGO_HEIGHT;\n const navHeight = 2 * NAV_PADDING + logoHeight;\n const solverHeight = viewportHeight - navHeight;\n const solverWidth = viewportWidth;\n const maxBoardWidth = solverWidth - columnWidth - (showColumn ? componentsSpacing : 0) - 2 * componentsSpacing;\n const tileSize = Math.min((maxBoardWidth - 2 * BORDER_WIDTH) / config.rackSize, RACK_TILE_SIZE_MAX);\n const candidatePickerHeight = showResultCandidatePicker ? BUTTON_HEIGHT + componentsSpacing : 0;\n const bottomContainerHeight = candidatePickerHeight + tileSize + 2 * componentsSpacing;\n const maxBoardHeight = isBoardFullWidth\n ? Number.POSITIVE_INFINITY\n : Math.max(solverHeight - bottomContainerHeight, 0);\n\n const coordinatesSizeRatio = showCoordinates === 'hidden' ? 0 : 0.5;\n const coordinatesBorderWidth = showCoordinates === 'hidden' ? 0 : 1;\n const cellWidth =\n (maxBoardWidth - (config.boardWidth + 1 + coordinatesBorderWidth) * BORDER_WIDTH) /\n (config.boardWidth + coordinatesSizeRatio);\n const cellHeight =\n (maxBoardHeight - (config.boardHeight + 1 + coordinatesBorderWidth) * BORDER_WIDTH) /\n (config.boardHeight + coordinatesSizeRatio);\n const cellSize = Math.min(Math.min(cellWidth, cellHeight), BOARD_TILE_SIZE_MAX);\n const coordinatesSize = coordinatesSizeRatio * cellSize;\n const boardWidth =\n (cellSize + BORDER_WIDTH) * config.boardWidth +\n BORDER_WIDTH +\n (showCoordinates === 'hidden' ? 0 : coordinatesSize + BORDER_WIDTH);\n const boardHeight =\n (cellSize + BORDER_WIDTH) * config.boardHeight +\n BORDER_WIDTH +\n (showCoordinates === 'hidden' ? 0 : coordinatesSize + BORDER_WIDTH);\n\n const maxControlsWidth = tileSize * config.rackSize + 2 * BORDER_WIDTH;\n const showResultsInModal = isLessThanL;\n const dictionaryHeight = showResultsInModal ? DICTIONARY_HEIGHT_MOBILE : DICTIONARY_HEIGHT;\n const dictionaryResultsHeight = dictionaryHeight - TEXT_INPUT_HEIGHT - 2 * BORDER_WIDTH;\n const modalWidth = isLessThanS ? viewportWidth : MODAL_WIDTH;\n const resultsHeight = isLessThanL\n ? viewportHeight - dictionaryHeight - BUTTON_HEIGHT - MODAL_HEADER_HEIGHT - 5 * componentsSpacing\n : boardHeight - componentsSpacing - dictionaryHeight;\n const rackWidth = tileSize * config.rackSize;\n const resultsWidth = isLessThanL ? modalWidth - 2 * componentsSpacing : SOLVER_COLUMN_WIDTH;\n const columnsWidth = Object.keys(columns).reduce(\n (sum, column) => sum + (RESULTS_COLUMN_WIDTH[column as ResultColumnId] ?? 0),\n 0,\n );\n const resultWordWidth = resultsWidth - 2 * BORDER_WIDTH - columnsWidth;\n\n return {\n actionsWidth: 2 * BUTTON_HEIGHT - BORDER_WIDTH,\n boardHeight,\n boardWidth,\n cellSize,\n coordinatesFontSize: coordinatesSize * 0.6,\n coordinatesSize,\n dictionaryHeight,\n dictionaryResultsHeight,\n isModalFullWidth: isLessThanS,\n logoHeight,\n logoWidth: logoHeight * LOGO_ASPECT_RATIO,\n maxControlsWidth,\n rackHeight: tileSize,\n rackWidth,\n resultsHeight,\n resultsWidth,\n resultWordWidth,\n showCompactControls: !showColumn,\n showKeyMap: !isTouchDevice,\n showResultsInModal,\n showShortNav: isLessThanS,\n showTilePoints: !isLessThanXs,\n tileSize,\n };\n};\n","import { useEffect } from 'react';\n\nimport { noop } from 'lib';\n\nexport const useDirection = (direction: 'ltr' | 'rtl') => {\n useEffect(() => {\n const html = document.body.parentElement;\n\n if (!html) {\n return noop;\n }\n\n const old = html.dir;\n html.dir = direction;\n\n return () => {\n html.dir = old;\n };\n }, [direction]);\n};\n","import { useRef } from 'react';\n\ninterface Latest<T> {\n readonly current: T;\n}\n\nexport const useLatest = <T>(value: T): Latest<T> => {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n};\n","import { type EffectCallback, useEffect } from 'react';\n\nimport { useLatest } from './useLatest';\n\nexport const useEffectOnce = (effect: EffectCallback) => {\n const effectRef = useLatest(effect);\n\n return useEffect(() => {\n effectRef.current();\n }, [effectRef]);\n};\n","import { useEffect } from 'react';\n\nimport { noop } from 'lib';\n\nexport const useLanguage = (language: string) => {\n useEffect(() => {\n const html = document.body.parentElement;\n\n if (!html) {\n return noop;\n }\n\n const old = html.lang;\n html.lang = language;\n\n return () => {\n html.lang = old;\n };\n }, [language]);\n};\n","import { useEffect } from 'react';\n\nimport {\n localStorage,\n selectAutoGroupTiles,\n selectBoard,\n selectGame,\n selectInputMode,\n selectLocale,\n selectRack,\n selectShowCoordinates,\n selectRemoveCellFilters,\n useTypedSelector,\n} from 'state';\n\nexport const useLocalStorage = () => {\n const autoGroupTiles = useTypedSelector(selectAutoGroupTiles);\n const board = useTypedSelector(selectBoard);\n const game = useTypedSelector(selectGame);\n const inputMode = useTypedSelector(selectInputMode);\n const locale = useTypedSelector(selectLocale);\n const rack = useTypedSelector(selectRack);\n const showCoordinates = useTypedSelector(selectShowCoordinates);\n const removeCellFilters = useTypedSelector(selectRemoveCellFilters);\n\n useEffect(() => {\n if (autoGroupTiles) {\n localStorage.setAutoGroupTiles(autoGroupTiles);\n }\n }, [autoGroupTiles]);\n\n useEffect(() => {\n if (board) {\n localStorage.setBoard(board);\n }\n }, [board]);\n\n useEffect(() => {\n if (game) {\n localStorage.setGame(game);\n }\n }, [game]);\n\n useEffect(() => {\n if (inputMode) {\n localStorage.setInputMode(inputMode);\n }\n }, [inputMode]);\n\n useEffect(() => {\n if (locale) {\n localStorage.setLocale(locale);\n }\n }, [locale]);\n\n useEffect(() => {\n if (rack) {\n localStorage.setRack(rack);\n }\n }, [rack]);\n\n useEffect(() => {\n if (showCoordinates) {\n localStorage.setShowCoordinates(showCoordinates);\n }\n }, [showCoordinates]);\n\n useEffect(() => {\n if (removeCellFilters) {\n localStorage.setRemoveCellFilters(removeCellFilters);\n }\n }, [removeCellFilters]);\n};\n","export { useAppLayout } from './useAppLayout';\nexport { useColumns } from './useColumns';\nexport { useDirection } from './useDirection';\nexport { useEffectOnce } from './useEffectOnce';\nexport { useIsTouchDevice } from './useIsTouchDevice';\nexport { useLanguage } from './useLanguage';\nexport { useLatest } from './useLatest';\nexport { useLocalStorage } from './useLocalStorage';\nexport { useMedia } from './useMedia';\nexport { useMediaQueries } from './useMediaQueries';\nexport { useMediaQuery } from './useMediaQuery';\nexport { useOnWindowResize } from './useOnWindowResize';\nexport { useViewportSize } from './useViewportSize';\n","__turbopack_context__.v({\n \"board\": \"Board-module-scss-module__8iZv5G__board\",\n \"coordinate\": \"Board-module-scss-module__8iZv5G__coordinate\",\n \"floating\": \"Board-module-scss-module__8iZv5G__floating\",\n \"focus\": \"Board-module-scss-module__8iZv5G__focus\",\n \"hidden\": \"Board-module-scss-module__8iZv5G__hidden\",\n \"hide\": \"Board-module-scss-module__8iZv5G__hide\",\n \"icon\": \"Board-module-scss-module__8iZv5G__icon\",\n \"iconBackground\": \"Board-module-scss-module__8iZv5G__iconBackground\",\n \"iconContainer\": \"Board-module-scss-module__8iZv5G__iconContainer\",\n \"rotate\": \"Board-module-scss-module__8iZv5G__rotate\",\n \"show\": \"Board-module-scss-module__8iZv5G__show\",\n \"wave\": \"Board-module-scss-module__8iZv5G__wave\",\n});\n","import { createContext, useContext } from 'react';\n\nimport { type useTooltip } from './useTooltip';\n\ntype TooltipContextType = ReturnType<typeof useTooltip> | null;\n\nexport const TooltipContext = createContext<TooltipContextType>(null);\n\nexport const useTooltipContext = () => {\n const context = useContext(TooltipContext);\n\n if (context === null) {\n throw new Error('Tooltip components must be wrapped in <Tooltip />');\n }\n\n return context;\n};\n","__turbopack_context__.v({\n \"arrow\": \"Tooltip-module-scss-module__7hrzja__arrow\",\n \"tooltip\": \"Tooltip-module-scss-module__7hrzja__tooltip\",\n});\n","import { FloatingArrow, FloatingPortal, useDelayGroup, useMergeRefs, useTransitionStyles } from '@floating-ui/react';\nimport { forwardRef, type HTMLProps } from 'react';\n\nimport { TOOLTIP_DURATION } from 'parameters';\n\nimport { useTooltipContext } from './context';\nimport styles from './Tooltip.module.scss';\n\ntype Props = HTMLProps<HTMLDivElement>;\n\nconst INSTANT_DURATION = 0;\n\nexport const TooltipContent = forwardRef<HTMLDivElement, Props>((props, ref) => {\n const state = useTooltipContext();\n const { context } = state;\n const { isInstantPhase, currentId } = useDelayGroup(context, { id: context.floatingId });\n const finalRef = useMergeRefs([state.refs.setFloating, ref]);\n\n const instantPhaseDuration = {\n open: INSTANT_DURATION,\n close: currentId === context.floatingId ? TOOLTIP_DURATION : INSTANT_DURATION,\n };\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n duration: isInstantPhase ? instantPhaseDuration : TOOLTIP_DURATION,\n initial: {\n opacity: 0,\n },\n });\n\n if (!isMounted) {\n return null;\n }\n\n return (\n <FloatingPortal>\n <div\n className={styles.tooltip}\n ref={finalRef}\n style={{\n ...state.floatingStyles,\n ...props.style,\n ...transitionStyles,\n }}\n {...state.getFloatingProps(props)}\n >\n <div>{props.children}</div>\n\n <FloatingArrow className={styles.arrow} context={context} ref={state.arrowRef} />\n </div>\n </FloatingPortal>\n );\n});\n","import { useMergeRefs } from '@floating-ui/react';\nimport { isObject } from '@scrabble-solver/types';\nimport { type HTMLProps, type ReactElement, type RefObject, cloneElement, forwardRef, isValidElement } from 'react';\n\nimport { useTooltipContext } from './context';\n\ntype Props = HTMLProps<HTMLElement>;\n\nexport const TooltipTrigger = forwardRef<HTMLElement, Props>(({ children, ...props }, ref) => {\n const state = useTooltipContext();\n const childrenElement = children as ReactElement<{\n ref: RefObject<HTMLElement>;\n }>;\n const finalRef = useMergeRefs([state.refs.setReference, ref, childrenElement.props.ref]);\n\n if (!isValidElement(children)) {\n throw new Error(\"TooltipTrigger's children are not a valid element\");\n }\n\n return cloneElement(\n children,\n state.getReferenceProps({\n ref: finalRef,\n ...props,\n ...(isObject(children.props) ? children.props : {}),\n // @ts-expect-error incorrect @floating-ui typings\n 'data-state': state.open ? 'open' : 'closed',\n }),\n );\n});\n","import {\n type Placement,\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useDelayGroup,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { useMemo, useRef, useState } from 'react';\n\nconst ARROW_SIZE = 7;\nconst ARROW_GAP = 3;\nconst PADDING = 10;\n\ninterface TooltipOptions {\n placement?: Placement;\n}\n\nexport const useTooltip = ({ placement = 'top' }: TooltipOptions = {}) => {\n const [isOpen, setIsOpen] = useState(false);\n const arrowRef = useRef(null);\n const data = useFloating({\n placement,\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [flip(), shift({ padding: PADDING }), offset(ARROW_SIZE + ARROW_GAP), arrow({ element: arrowRef })],\n });\n const { context } = data;\n const { delay } = useDelayGroup(context);\n const hover = useHover(context, { move: false, delay });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n const interactions = useInteractions([hover, focus, dismiss, role]);\n\n return useMemo(\n () => ({\n arrowRef,\n open: isOpen,\n setOpen: setIsOpen,\n ...interactions,\n ...data,\n }),\n [arrowRef, isOpen, setIsOpen, interactions, data],\n );\n};\n","import type { Placement } from '@floating-ui/react';\nimport { type FunctionComponent, type ReactNode } from 'react';\n\nimport { TooltipContext } from './context';\nimport { TooltipContent } from './TooltipContent';\nimport { TooltipTrigger } from './TooltipTrigger';\nimport { useTooltip } from './useTooltip';\n\ninterface Props {\n children: ReactNode;\n placement?: Placement;\n tooltip?: ReactNode;\n}\n\nexport const Tooltip: FunctionComponent<Props> = ({ children, placement, tooltip }) => {\n const state = useTooltip({ placement });\n\n if (!tooltip) {\n return children;\n }\n\n return (\n <TooltipContext.Provider value={state}>\n <TooltipTrigger>{children}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </TooltipContext.Provider>\n );\n};\n","export { Tooltip } from './Tooltip';\n","__turbopack_context__.v({\n \"button\": \"Button-module-scss-module__9DF8oG__button\",\n \"content\": \"Button-module-scss-module__9DF8oG__content\",\n \"default\": \"Button-module-scss-module__9DF8oG__default\",\n \"icon\": \"Button-module-scss-module__9DF8oG__icon\",\n \"label\": \"Button-module-scss-module__9DF8oG__label\",\n \"primary\": \"Button-module-scss-module__9DF8oG__primary\",\n \"wide\": \"Button-module-scss-module__9DF8oG__wide\",\n});\n","import classNames from 'classnames';\nimport { type AnchorHTMLAttributes, type FunctionComponent, type ReactNode, type SVGAttributes } from 'react';\n\nimport { Tooltip } from '../Tooltip';\n\nimport styles from './Button.module.scss';\n\ninterface Props extends AnchorHTMLAttributes<HTMLAnchorElement> {\n 'aria-label': string;\n href: string;\n Icon: FunctionComponent<SVGAttributes<SVGElement>>;\n iconClassName?: string;\n tooltip?: ReactNode;\n variant?: 'default' | 'primary';\n wide?: boolean;\n}\n\nexport const Link: FunctionComponent<Props> = ({\n children,\n className,\n Icon,\n iconClassName,\n tooltip,\n variant = 'default',\n wide,\n ...props\n}) => {\n return (\n <Tooltip tooltip={tooltip}>\n <a\n className={classNames(styles.button, className, {\n [styles.default]: variant === 'default',\n [styles.primary]: variant === 'primary',\n [styles.wide]: wide,\n })}\n {...props}\n >\n <span className={styles.content}>\n {Icon && <Icon className={classNames(styles.icon, iconClassName)} />}\n {children && <span className={styles.label}>{children}</span>}\n </span>\n </a>\n </Tooltip>\n );\n};\n","import classNames from 'classnames';\nimport { type ButtonHTMLAttributes, type FunctionComponent, type ReactNode, type SVGAttributes } from 'react';\n\nimport { Tooltip } from '../Tooltip';\n\nimport styles from './Button.module.scss';\nimport { Link } from './Link';\n\ninterface Props extends ButtonHTMLAttributes<HTMLButtonElement> {\n 'aria-label': string;\n Icon?: FunctionComponent<SVGAttributes<SVGElement>>;\n iconClassName?: string;\n tooltip?: ReactNode;\n variant?: 'default' | 'primary';\n wide?: boolean;\n}\n\nconst ButtonBase: FunctionComponent<Props> = ({\n children,\n className,\n Icon,\n iconClassName,\n tooltip,\n variant = 'default',\n wide,\n ...props\n}) => {\n return (\n <Tooltip tooltip={tooltip}>\n <button\n className={classNames(styles.button, className, {\n [styles.default]: variant === 'default',\n [styles.primary]: variant === 'primary',\n [styles.wide]: wide,\n })}\n type=\"button\"\n {...props}\n >\n <span className={styles.content}>\n {Icon && <Icon aria-hidden=\"true\" className={classNames(styles.icon, iconClassName)} role=\"img\" />}\n {children && <span className={styles.label}>{children}</span>}\n </span>\n </button>\n </Tooltip>\n );\n};\n\nexport const Button = Object.assign(ButtonBase, {\n Link,\n});\n","export { Button } from './Button';\n","__turbopack_context__.v({\n \"button\": \"ToggleDirectionButton-module-scss-module__RMelDq__button\",\n \"icon\": \"ToggleDirectionButton-module-scss-module__RMelDq__icon\",\n \"right\": \"ToggleDirectionButton-module-scss-module__RMelDq__right\",\n});\n","import classNames from 'classnames';\nimport { type ButtonHTMLAttributes, type FunctionComponent } from 'react';\n\nimport { useIsTouchDevice } from 'hooks';\nimport { ArrowDown } from 'icons';\nimport { useTranslate } from 'state';\nimport { type Direction } from 'types';\n\nimport { Button } from '../../../Button';\n\nimport styles from './ToggleDirectionButton.module.scss';\n\ninterface Props extends ButtonHTMLAttributes<HTMLButtonElement> {\n className?: string;\n direction: Direction;\n}\n\nexport const ToggleDirectionButton: FunctionComponent<Props> = ({ className, direction, ...props }) => {\n const translate = useTranslate();\n const isTouchDevice = useIsTouchDevice();\n\n return (\n <Button\n aria-label={translate('cell.toggle-direction')}\n className={classNames(styles.button, className)}\n data-direction={direction}\n data-testid=\"toggle-direction-button\"\n Icon={ArrowDown}\n iconClassName={classNames(styles.icon, {\n [styles.right]: direction === 'horizontal',\n })}\n tooltip={\n <>\n <span>{translate('cell.toggle-direction')}</span>\n {!isTouchDevice && <span> ({translate('common.arrows')})</span>}\n </>\n }\n {...props}\n />\n );\n};\n","export { ToggleDirectionButton } from './ToggleDirectionButton';\n","__turbopack_context__.v({\n \"action\": \"Actions-module-scss-module__UwBE5q__action\",\n \"actions\": \"Actions-module-scss-module__UwBE5q__actions\",\n});\n","import { type FunctionComponent, type SVGAttributes } from 'react';\n\nimport { Ban, Eraser, FlagFill } from 'icons';\nimport { type CellFilter, type TranslationKey } from 'types';\n\nexport const getNextCellFilter = (\n filter: CellFilter | undefined,\n): {\n Icon: FunctionComponent<SVGAttributes<SVGElement>>;\n labelTranslationKey: TranslationKey;\n} => {\n if (filter?.type === 'exclude') {\n return {\n Icon: Eraser,\n labelTranslationKey: 'common.clear',\n };\n }\n\n if (filter?.type === 'include') {\n return {\n Icon: Ban,\n labelTranslationKey: 'cell.filter-cell.exclude',\n };\n }\n\n return {\n Icon: FlagFill,\n labelTranslationKey: 'cell.filter-cell.include',\n };\n};\n","import { EMPTY_CELL } from '@scrabble-solver/constants';\nimport { type Cell } from '@scrabble-solver/types';\nimport classNames from 'classnames';\nimport { forwardRef, type HTMLProps, type MouseEventHandler } from 'react';\n\nimport { useIsTouchDevice } from 'hooks';\nimport { Keyboard, Square, SquareFill } from 'icons';\nimport { findCell, isMac } from 'lib';\nimport { selectCellFilter, selectInputMode, selectResultCandidateCells, useTranslate, useTypedSelector } from 'state';\nimport { type Direction } from 'types';\n\nimport { Button } from '../../../Button';\nimport { ToggleDirectionButton } from '../ToggleDirectionButton';\n\nimport styles from './Actions.module.scss';\nimport { getNextCellFilter } from './lib';\n\ninterface Props extends HTMLProps<HTMLDivElement> {\n cell: Cell;\n direction: Direction;\n onDirectionToggle: MouseEventHandler<HTMLButtonElement>;\n onEnterWord: MouseEventHandler<HTMLButtonElement>;\n onToggleBlank: MouseEventHandler<HTMLButtonElement>;\n onToggleFilterCell: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const Actions = forwardRef<HTMLDivElement, Props>(\n (\n { cell, className, direction, onDirectionToggle, onEnterWord, onToggleBlank, onToggleFilterCell, ...props },\n ref,\n ) => {\n const translate = useTranslate();\n const isTouchDevice = useIsTouchDevice();\n const inputMode = useTypedSelector(selectInputMode);\n const filter = useTypedSelector((state) => selectCellFilter(state, cell));\n const resultCandidateCells = useTypedSelector(selectResultCandidateCells);\n const isBlank = cell.tile.isBlank;\n const isEmpty = cell.tile.character === EMPTY_CELL || Boolean(findCell(resultCandidateCells, cell.x, cell.y));\n const { Icon, labelTranslationKey } = getNextCellFilter(filter);\n\n // On iOS it helps with losing focus too early which makes Actions disappear\n const handleMouseDown: MouseEventHandler = (event) => event.preventDefault();\n\n return (\n <div className={classNames(styles.actions, className)} ref={ref} {...props}>\n {inputMode === 'touchscreen' && (\n <Button\n aria-label={translate('cell.enter-word')}\n className={styles.action}\n Icon={Keyboard}\n tooltip={translate('cell.enter-word')}\n onClick={onEnterWord}\n onMouseDown={handleMouseDown}\n />\n )}\n\n {inputMode === 'keyboard' && (\n <ToggleDirectionButton\n className={styles.action}\n direction={direction}\n onClick={onDirectionToggle}\n onMouseDown={handleMouseDown}\n />\n )}\n\n {isEmpty && (\n <Button\n aria-label={translate(labelTranslationKey)}\n className={classNames(styles.action)}\n Icon={Icon}\n tooltip={\n <>\n <span>{translate(labelTranslationKey)}</span>\n {!isTouchDevice && <span> ({isMac() ? '⌘' : 'Ctrl'} + G)</span>}\n </>\n }\n onClick={onToggleFilterCell}\n onMouseDown={handleMouseDown}\n />\n )}\n\n {!isEmpty && (\n <Button\n aria-label={isBlank ? translate('cell.set-not-blank') : translate('cell.set-blank')}\n className={styles.action}\n Icon={isBlank ? SquareFill : Square}\n tooltip={\n <>\n <span>{isBlank ? translate('cell.set-not-blank') : translate('cell.set-blank')}</span>\n {!isTouchDevice && <span> ({translate('common.space')})</span>}\n </>\n }\n onClick={onToggleBlank}\n onMouseDown={handleMouseDown}\n />\n )}\n </div>\n );\n },\n);\n","export { Actions } from './Actions';\n","__turbopack_context__.v({\n \"alert\": \"Tile-module-scss-module__tJ60nW__alert\",\n \"blank\": \"Tile-module-scss-module__tJ60nW__blank\",\n \"empty\": \"Tile-module-scss-module__tJ60nW__empty\",\n \"highlighted\": \"Tile-module-scss-module__tJ60nW__highlighted\",\n \"input\": \"Tile-module-scss-module__tJ60nW__input\",\n \"invalid\": \"Tile-module-scss-module__tJ60nW__invalid\",\n \"points\": \"Tile-module-scss-module__tJ60nW__points\",\n \"points1\": \"Tile-module-scss-module__tJ60nW__points1\",\n \"points2\": \"Tile-module-scss-module__tJ60nW__points2\",\n \"points3\": \"Tile-module-scss-module__tJ60nW__points3\",\n \"points4\": \"Tile-module-scss-module__tJ60nW__points4\",\n \"points5\": \"Tile-module-scss-module__tJ60nW__points5\",\n \"raised\": \"Tile-module-scss-module__tJ60nW__raised\",\n \"tile\": \"Tile-module-scss-module__tJ60nW__tile\",\n});\n","import classNames from 'classnames';\nimport {\n type ChangeEventHandler,\n type CSSProperties,\n type FocusEventHandler,\n type FunctionComponent,\n type KeyboardEventHandler,\n memo,\n type MouseEventHandler,\n type Ref,\n type TouchEventHandler,\n} from 'react';\n\nimport { ExclamationSquareFill } from 'icons';\n\nimport styles from './Tile.module.scss';\n\ninterface Props {\n 'aria-label': string;\n autoFocus?: boolean;\n canShowPoints?: boolean;\n character?: string;\n className?: string;\n disabled?: boolean;\n highlighted?: boolean;\n inputRef: Ref<HTMLInputElement>;\n isBlank?: boolean;\n isValid?: boolean;\n placeholder?: string;\n points?: number;\n pointsFormatted?: string;\n pointsStyle?: CSSProperties;\n raised?: boolean;\n style?: CSSProperties;\n tabIndex?: number;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onFocus?: FocusEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onMouseDown?: MouseEventHandler<HTMLInputElement>;\n onTouchStart?: TouchEventHandler<HTMLInputElement>;\n}\n\nconst TilePureBase: FunctionComponent<Props> = ({\n 'aria-label': ariaLabel,\n autoFocus,\n canShowPoints,\n character,\n className,\n disabled,\n highlighted,\n inputRef,\n isBlank,\n isValid,\n placeholder,\n points,\n pointsFormatted,\n pointsStyle,\n raised,\n style,\n tabIndex,\n onChange,\n onFocus,\n onKeyDown,\n onMouseDown,\n onTouchStart,\n}) => (\n <div\n className={classNames(styles.tile, className, {\n [styles.blank]: isBlank,\n [styles.empty]: !character,\n [styles.invalid]: !isValid,\n [styles.highlighted]: highlighted,\n [styles.points1]: points === 1,\n [styles.points2]: points === 2,\n [styles.points3]: points === 3,\n [styles.points4]: points === 4,\n [styles.points5]: typeof points === 'number' && points >= 5,\n [styles.raised]: raised,\n })}\n role={highlighted ? 'mark' : undefined}\n style={style}\n >\n {character || placeholder}\n\n <input\n aria-label={ariaLabel}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoFocus={autoFocus}\n className={styles.input}\n disabled={disabled}\n ref={inputRef}\n spellCheck={false}\n tabIndex={tabIndex}\n value={character || ''}\n onChange={onChange}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n />\n\n {canShowPoints && (\n <span className={styles.points} style={pointsStyle}>\n {pointsFormatted}\n </span>\n )}\n\n {!isValid && <ExclamationSquareFill aria-hidden=\"true\" className={styles.alert} role=\"img\" />}\n </div>\n);\n\nexport const TilePure = memo(TilePureBase);\n","import { useMergeRefs } from '@floating-ui/react';\nimport { EMPTY_CELL } from '@scrabble-solver/constants';\nimport {\n type ChangeEventHandler,\n type FocusEventHandler,\n type FunctionComponent,\n type KeyboardEventHandler,\n type MouseEventHandler,\n type Ref,\n type TouchEventHandler,\n useCallback,\n useMemo,\n useRef,\n} from 'react';\n\nimport { useAppLayout } from 'hooks';\nimport { getTileSizes, noop } from 'lib';\nimport { selectLocale, useTypedSelector } from 'state';\n\nimport { TilePure } from './TilePure';\n\ninterface Props {\n 'aria-label': string;\n autoFocus?: boolean;\n character?: string;\n className?: string;\n disabled?: boolean;\n highlighted?: boolean;\n inputRef?: Ref<HTMLInputElement | null>;\n isBlank?: boolean;\n isValid?: boolean;\n placeholder?: string;\n points?: number;\n raised?: boolean;\n size: number;\n tabIndex?: number;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n onFocus?: FocusEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onMouseDown?: MouseEventHandler<HTMLInputElement>;\n onTouchStart?: TouchEventHandler<HTMLInputElement>;\n}\n\nexport const Tile: FunctionComponent<Props> = ({\n 'aria-label': ariaLabel,\n autoFocus,\n className,\n character = '',\n disabled,\n highlighted,\n inputRef,\n isBlank,\n isValid,\n placeholder,\n points,\n raised,\n size,\n tabIndex,\n onChange,\n onFocus = noop,\n onKeyDown = noop,\n onMouseDown = noop,\n onTouchStart = noop,\n}) => {\n const locale = useTypedSelector(selectLocale);\n const { showTilePoints } = useAppLayout();\n const { pointsFontSize, tileSize } = getTileSizes(size);\n const style = useMemo(() => ({ height: tileSize, width: tileSize }), [tileSize]);\n const pointsStyle = useMemo(() => ({ fontSize: pointsFontSize }), [pointsFontSize]);\n const ref = useRef<HTMLInputElement>(null);\n const mergedRef = useMergeRefs(inputRef ? [ref, inputRef] : [ref]);\n const isEmpty = !character || character === EMPTY_CELL;\n const canShowPoints = showTilePoints && (!isEmpty || isBlank) && typeof points !== 'undefined';\n const pointsFormatted = typeof points === 'number' ? points.toLocaleString(locale) : '';\n\n const handleKeyDown: KeyboardEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n ref.current?.select();\n onKeyDown(event);\n },\n [onKeyDown],\n );\n\n return (\n <TilePure\n aria-label={ariaLabel}\n autoFocus={autoFocus}\n canShowPoints={canShowPoints}\n character={character}\n className={className}\n disabled={disabled}\n highlighted={highlighted}\n inputRef={mergedRef}\n isBlank={isBlank}\n isValid={isValid}\n placeholder={placeholder}\n points={points}\n pointsFormatted={pointsFormatted}\n pointsStyle={pointsStyle}\n raised={raised}\n style={style}\n tabIndex={tabIndex}\n onChange={onChange}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n />\n );\n};\n","export { Tile } from './Tile';\n","__turbopack_context__.v({\n \"first3\": \"Cell-module-scss-module__bRbqCG__first3\",\n \"last3\": \"Cell-module-scss-module__bRbqCG__last3\",\n \"sharpBottomLeft\": \"Cell-module-scss-module__bRbqCG__sharpBottomLeft\",\n \"sharpBottomRight\": \"Cell-module-scss-module__bRbqCG__sharpBottomRight\",\n \"sharpTopLeft\": \"Cell-module-scss-module__bRbqCG__sharpTopLeft\",\n \"sharpTopRight\": \"Cell-module-scss-module__bRbqCG__sharpTopRight\",\n \"tile\": \"Cell-module-scss-module__bRbqCG__tile\",\n});\n","import { EMPTY_CELL } from '@scrabble-solver/constants';\nimport { type Cell as CellModel } from '@scrabble-solver/types';\nimport classNames from 'classnames';\nimport {\n type ChangeEventHandler,\n type FocusEventHandler,\n type FunctionComponent,\n type MouseEventHandler,\n type RefObject,\n type TouchEventHandler,\n useCallback,\n} from 'react';\n\nimport {\n selectCellIsValid,\n selectConfig,\n selectInputMode,\n selectLocale,\n selectTilePoints,\n useTranslate,\n useTypedSelector,\n} from 'state';\n\nimport { Tile } from '../../../Tile';\n\nimport styles from './Cell.module.scss';\n\ninterface Props {\n cell: CellModel;\n cellBottom?: CellModel;\n cellLeft?: CellModel;\n cellRight?: CellModel;\n cellTop?: CellModel;\n className?: string;\n inputRef: RefObject<HTMLInputElement | null>;\n size: number;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onFocus: (x: number, y: number) => void;\n}\n\nexport const Cell: FunctionComponent<Props> = ({\n cell,\n cellBottom,\n cellLeft,\n cellRight,\n cellTop,\n className,\n inputRef,\n size,\n onChange,\n onFocus,\n}) => {\n const { tile, x, y } = cell;\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const config = useTypedSelector(selectConfig);\n const inputMode = useTypedSelector(selectInputMode);\n const points = useTypedSelector((state) => selectTilePoints(state, cell.tile));\n const isValid = useTypedSelector((state) => selectCellIsValid(state, cell));\n const isEmpty = tile.character === EMPTY_CELL;\n\n const handleFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n if (inputMode === 'touchscreen') {\n event.preventDefault();\n event.target.blur();\n }\n\n onFocus(x, y);\n },\n [inputMode, onFocus, x, y],\n );\n\n const handleMouseDown: MouseEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n if (inputMode === 'touchscreen') {\n event.preventDefault();\n }\n\n onFocus(x, y);\n },\n [inputMode, onFocus, x, y],\n );\n\n const handleTouchStart: TouchEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n if (inputMode === 'touchscreen') {\n event.preventDefault();\n }\n\n onFocus(x, y);\n },\n [inputMode, onFocus, x, y],\n );\n\n return (\n <Tile\n aria-label={translate('cell.tile.location', {\n x: (x + 1).toLocaleString(locale),\n y: (y + 1).toLocaleString(locale),\n })}\n className={classNames(styles.tile, className, {\n [styles.first3]: x < 3,\n [styles.last3]: config.boardWidth - x - 1 < 3,\n [styles.sharpTopLeft]: cellTop?.hasTile() || cellLeft?.hasTile(),\n [styles.sharpTopRight]: cellTop?.hasTile() || cellRight?.hasTile(),\n [styles.sharpBottomLeft]: cellBottom?.hasTile() || cellLeft?.hasTile(),\n [styles.sharpBottomRight]: cellBottom?.hasTile() || cellRight?.hasTile(),\n })}\n character={isEmpty ? undefined : tile.character}\n highlighted={cell.isCandidate()}\n inputRef={inputRef}\n isBlank={tile.isBlank}\n isValid={isValid}\n points={points}\n raised={!isEmpty}\n size={size}\n tabIndex={cell.x === 0 && cell.y === 0 ? undefined : -1}\n onChange={onChange}\n onFocus={handleFocus}\n onMouseDown={handleMouseDown}\n onTouchStart={handleTouchStart}\n />\n );\n};\n","export { Cell } from './Cell';\n","__turbopack_context__.v({\n \"input\": \"InputPrompt-module-scss-module__xu6LDq__input\",\n \"inputPrompt\": \"InputPrompt-module-scss-module__xu6LDq__inputPrompt\",\n \"insert\": \"InputPrompt-module-scss-module__xu6LDq__insert\",\n \"insertIcon\": \"InputPrompt-module-scss-module__xu6LDq__insertIcon\",\n \"toggleDirection\": \"InputPrompt-module-scss-module__xu6LDq__toggleDirection\",\n});\n","import classNames from 'classnames';\nimport { type FormEventHandler, forwardRef, type HTMLProps, type MouseEventHandler, useEffect, useState } from 'react';\n\nimport { Check } from 'icons';\nimport { useTranslate } from 'state';\nimport { type Direction } from 'types';\n\nimport { Button } from '../../../Button';\nimport { ToggleDirectionButton } from '../ToggleDirectionButton';\n\nimport styles from './InputPrompt.module.scss';\n\ninterface Props extends Omit<HTMLProps<HTMLFormElement>, 'onSubmit'> {\n className?: string;\n direction: Direction;\n initialValue: string;\n onDirectionToggle: MouseEventHandler<HTMLButtonElement>;\n onSubmit: (input: string) => void;\n}\n\nexport const InputPrompt = forwardRef<HTMLFormElement, Props>(\n ({ className, direction, initialValue, onDirectionToggle, onSubmit, ...props }, ref) => {\n const translate = useTranslate();\n const [inputRef, setInputRef] = useState<HTMLInputElement | null>(null);\n const [input, setInput] = useState(initialValue.trim());\n\n // On iOS it helps with losing focus too early which makes Actions disappear\n const handleMouseDown: MouseEventHandler = (event) => event.preventDefault();\n\n const handleSubmit: FormEventHandler<HTMLFormElement> = (event) => {\n event.preventDefault();\n event.stopPropagation();\n onSubmit(input);\n };\n\n useEffect(() => {\n if (inputRef) {\n inputRef.focus();\n inputRef.select();\n inputRef.scrollIntoView({ block: 'start', inline: 'center' });\n }\n }, [inputRef]);\n\n return (\n <form className={classNames(styles.inputPrompt, className)} ref={ref} onSubmit={handleSubmit} {...props}>\n <ToggleDirectionButton\n className={styles.toggleDirection}\n direction={direction}\n onClick={onDirectionToggle}\n onMouseDown={handleMouseDown}\n />\n\n <div>\n <input\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n className={styles.input}\n placeholder={translate('rack.placeholder')}\n spellCheck={false}\n ref={setInputRef}\n value={input}\n onChange={(event) => setInput(event.target.value)}\n />\n </div>\n\n <Button\n aria-label={translate('results.insert')}\n className={styles.insert}\n Icon={Check}\n iconClassName={styles.insertIcon}\n tooltip={translate('results.insert')}\n type=\"submit\"\n variant=\"primary\"\n onMouseDown={handleMouseDown}\n />\n </form>\n );\n },\n);\n","export { InputPrompt } from './InputPrompt';\n","export { Actions } from './Actions';\nexport { Cell } from './Cell';\nexport { InputPrompt } from './InputPrompt';\nexport { ToggleDirectionButton } from './ToggleDirectionButton';\n","import { type Cell as CellModel, type ShowCoordinates } from '@scrabble-solver/types';\nimport classNames from 'classnames';\nimport {\n type CSSProperties,\n type ChangeEventHandler,\n type ClipboardEventHandler,\n type FocusEventHandler,\n Fragment,\n type KeyboardEventHandler,\n type RefObject,\n forwardRef,\n memo,\n} from 'react';\n\nimport { Ban, FlagFill } from 'icons';\nimport { getCoordinate } from 'lib';\nimport { BORDER_WIDTH } from 'parameters';\nimport { type CellFilter } from 'types';\n\nimport styles from './Board.module.scss';\nimport { Cell } from './components';\n\ninterface Props {\n className?: string;\n cellFilters: CellFilter[];\n cellSize: number;\n coordinatesFontSize: number;\n coordinatesSize: number;\n direction: 'ltr' | 'rtl';\n inputRefs: RefObject<HTMLInputElement | null>[][];\n rows: CellModel[][];\n showCoordinates: ShowCoordinates;\n style?: CSSProperties;\n onBlur: FocusEventHandler;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onFocus: (x: number, y: number) => void;\n onKeyDown: KeyboardEventHandler<HTMLInputElement>;\n onPaste: ClipboardEventHandler<HTMLInputElement>;\n}\n\nconst BoardPureBase = forwardRef<HTMLDivElement, Props>(\n (\n {\n className,\n cellSize,\n coordinatesFontSize,\n coordinatesSize,\n direction,\n cellFilters,\n inputRefs,\n rows,\n showCoordinates,\n style,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onPaste,\n },\n ref,\n ) => (\n <div\n className={classNames(styles.board, className)}\n data-testid=\"board\"\n ref={ref}\n style={style}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onPaste={onPaste}\n >\n {showCoordinates !== 'hidden' && (\n <>\n <div style={{ width: coordinatesSize, height: coordinatesSize }} />\n\n {rows[0].map((_column, index) => (\n <div\n className={styles.coordinate}\n key={index}\n style={{\n width: cellSize,\n height: coordinatesSize,\n fontSize: coordinatesFontSize,\n }}\n >\n {getCoordinate(index, showCoordinates === 'original' ? 'letter' : 'number')}\n </div>\n ))}\n </>\n )}\n\n {/* The dynamic changes to the board presentation need to be outside of useBackgroundImage\n to prevent flickering on blob URL change (i.e. when flagging a field,\n but not when changing game type since user's attention is not on the board\n when that happens)*/}\n {cellFilters.map(({ x, y, type }) => {\n const Icon = type === 'exclude' ? Ban : FlagFill;\n\n return (\n <div\n className={styles.iconContainer}\n key={[x, y].join('-')}\n style={{\n height: cellSize,\n width: cellSize,\n left: direction === 'ltr' ? coordinatesSize + BORDER_WIDTH + x * (cellSize + BORDER_WIDTH) : undefined,\n right: direction === 'rtl' ? coordinatesSize + BORDER_WIDTH + x * (cellSize + BORDER_WIDTH) : undefined,\n top: coordinatesSize + BORDER_WIDTH + y * (cellSize + BORDER_WIDTH),\n }}\n >\n <div className={styles.iconBackground} />\n <Icon aria-hidden=\"true\" className={styles.icon} role=\"img\" />\n </div>\n );\n })}\n\n {rows.map((cells, y) => (\n <Fragment key={y}>\n {showCoordinates !== 'hidden' && (\n <div\n className={styles.coordinate}\n style={{\n width: coordinatesSize,\n height: cellSize,\n fontSize: coordinatesFontSize,\n }}\n >\n {getCoordinate(y, showCoordinates === 'original' ? 'number' : 'letter')}\n </div>\n )}\n\n {cells.map((cell, x) => (\n <Cell\n className={styles.cell}\n cell={cell}\n cellBottom={y < rows.length - 1 ? rows[y + 1][x] : undefined}\n cellLeft={x > 0 ? rows[y][x - 1] : undefined}\n cellRight={x < rows[y].length - 1 ? rows[y][x + 1] : undefined}\n cellTop={y > 0 ? rows[y - 1][x] : undefined}\n inputRef={inputRefs[y][x]}\n key={x}\n size={cellSize}\n onChange={onChange}\n onFocus={onFocus}\n />\n ))}\n </Fragment>\n ))}\n </div>\n ),\n);\n\nexport const BoardPure = memo(BoardPureBase);\n","import { BONUS_WORD } from '@scrabble-solver/constants';\nimport { type Bonus } from '@scrabble-solver/types';\n\nimport { COLOR_BONUS_CHARACTER, COLOR_BONUS_CHARACTER_MULTIPLIER, COLOR_BONUS_WORD } from 'parameters';\nimport { type Point } from 'types';\n\nexport const createGrid = <T>(width: number, height: number, getInitialValue: (x: number, y: number) => T): T[][] => {\n return Array.from({ length: height }).map((_row, y) => {\n return Array.from({ length: width }).map((_cell, x) => {\n return getInitialValue(x, y);\n });\n });\n};\n\nexport const getBonusColor = (bonus: Bonus): string => {\n if (bonus.type === BONUS_WORD) {\n return COLOR_BONUS_WORD[bonus.multiplier];\n }\n\n if (bonus.score) {\n return COLOR_BONUS_CHARACTER[bonus.score];\n }\n\n return COLOR_BONUS_CHARACTER_MULTIPLIER[bonus.multiplier];\n};\n\nexport const getPositionInGrid = <T>(grid: T[][], constraint: (value: T) => boolean): Point | undefined => {\n for (let y = 0; y < grid.length; ++y) {\n for (let x = 0; x < grid[0].length; ++x) {\n if (constraint(grid[y][x])) {\n return { x, y };\n }\n }\n }\n\n return undefined;\n};\n","/* eslint-disable max-lines, max-statements */\n\nimport { BONUS_CHARACTER, BONUS_WORD } from '@scrabble-solver/constants';\nimport { useMemo } from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { Provider } from 'react-redux';\n\nimport { useAppLayout, useMediaQueries } from 'hooks';\nimport { LOCALE_FEATURES } from 'i18n';\nimport { Star } from 'icons';\nimport { getTileSizes } from 'lib';\nimport { BORDER_COLOR_LIGHT, BORDER_RADIUS, BORDER_WIDTH, COLOR_BACKGROUND, COLOR_BONUS_START } from 'parameters';\nimport { selectConfig, selectLocale, selectShowCoordinates, store, useTypedSelector } from 'state';\nimport { type Point } from 'types';\n\nimport { getBonusColor } from '../lib';\n\nconst BORDER_RADIUS_XS = 3;\nconst GRID_LINE_SIZE = 1;\nconst HORIZONTAL_LINE = 'h';\nconst VERTICAL_LINE = 'v';\nconst BONUS = 'b';\nconst BONUS_WORD_2 = 'b2';\nconst BONUS_WORD_3 = 'b3';\nconst BONUS_WORD_4 = 'b4';\n\nexport const useBackgroundImage = () => {\n const { boardHeight, boardWidth, cellSize, coordinatesSize } = useAppLayout();\n const locale = useTypedSelector(selectLocale);\n const { direction } = LOCALE_FEATURES[locale];\n const showCoordinates = useTypedSelector(selectShowCoordinates);\n const { isLessThanXs } = useMediaQueries();\n const borderRadius = isLessThanXs ? BORDER_RADIUS_XS : BORDER_RADIUS;\n const config = useTypedSelector(selectConfig);\n const center = { x: Math.floor(config.boardWidth / 2), y: Math.floor(config.boardHeight / 2) };\n const viewBoxHeight = boardHeight;\n const viewBoxWidth = boardWidth;\n const bonusSize = cellSize * 0.8;\n const bonusOffset = cellSize * 0.1;\n const iconSize = cellSize * 0.4;\n const iconOffset = (cellSize - iconSize) / 2;\n const { tileFontSize } = getTileSizes(cellSize);\n const fontSize = tileFontSize * 0.6;\n const fontOffset = cellSize / 2;\n const characterBonuses = config.bonuses.filter((bonus) => bonus.type === BONUS_CHARACTER);\n const word2Bonuses = config.bonuses.filter((bonus) => bonus.type === BONUS_WORD && bonus.multiplier === 2);\n const word3Bonuses = config.bonuses.filter((bonus) => bonus.type === BONUS_WORD && bonus.multiplier === 3);\n const word4Bonuses = config.bonuses.filter((bonus) => bonus.type === BONUS_WORD && bonus.multiplier === 4);\n\n const getX = (point: Point): number =>\n (direction === 'ltr' ? coordinatesSize : 0) + point.x * (cellSize + BORDER_WIDTH);\n\n const getY = (point: Point): number => coordinatesSize + point.y * (cellSize + BORDER_WIDTH);\n\n const backgroundSvg = renderToString(\n <Provider store={store}>\n <svg\n height={viewBoxHeight}\n viewBox={`0 0 ${viewBoxWidth} ${viewBoxHeight}`}\n width={viewBoxWidth}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <symbol id={HORIZONTAL_LINE}>\n <rect fill={BORDER_COLOR_LIGHT} height={GRID_LINE_SIZE} width={viewBoxWidth} />\n </symbol>\n\n <symbol id={VERTICAL_LINE}>\n <rect fill={BORDER_COLOR_LIGHT} height={viewBoxHeight} width={GRID_LINE_SIZE} />\n </symbol>\n\n <symbol id={BONUS}>\n <rect height={bonusSize} rx={borderRadius} width={bonusSize} x={bonusOffset} y={bonusOffset} />\n </symbol>\n\n <symbol id={BONUS_WORD_2}>\n <rect height={bonusSize} rx={borderRadius} width={bonusSize} x={bonusOffset} y={bonusOffset} />\n\n <text\n dominantBaseline=\"central\"\n fill=\"white\"\n fontFamily=\"system-ui, sans-serif\"\n fontSize={fontSize}\n fontWeight=\"bold\"\n textAnchor=\"middle\"\n x={fontOffset}\n y={fontOffset}\n >\n x2\n </text>\n </symbol>\n\n <symbol id={BONUS_WORD_3}>\n <rect height={bonusSize} rx={borderRadius} width={bonusSize} x={bonusOffset} y={bonusOffset} />\n\n <text\n dominantBaseline=\"central\"\n fill=\"white\"\n fontFamily=\"system-ui, sans-serif\"\n fontSize={fontSize}\n fontWeight=\"bold\"\n textAnchor=\"middle\"\n x={fontOffset}\n y={fontOffset}\n >\n x3\n </text>\n </symbol>\n\n <symbol id={BONUS_WORD_4}>\n <rect height={bonusSize} rx={borderRadius} width={bonusSize} x={bonusOffset} y={bonusOffset} />\n\n <text\n dominantBaseline=\"central\"\n fill=\"white\"\n fontFamily=\"system-ui, sans-serif\"\n fontSize={fontSize}\n fontWeight=\"bold\"\n textAnchor=\"middle\"\n x={fontOffset}\n y={fontOffset}\n >\n x4\n </text>\n </symbol>\n </defs>\n\n {showCoordinates === 'hidden' && (\n <rect fill=\"white\" height={viewBoxHeight} rx={borderRadius} width={viewBoxWidth} x=\"0\" y=\"0\" />\n )}\n\n {showCoordinates !== 'hidden' && (\n <>\n <rect fill={COLOR_BACKGROUND} height={viewBoxHeight} rx={borderRadius} width={viewBoxWidth} x=\"0\" y=\"0\" />\n <rect\n fill=\"white\"\n height={viewBoxHeight - coordinatesSize}\n width={viewBoxWidth - coordinatesSize}\n x={direction === 'ltr' ? coordinatesSize : 0}\n y={coordinatesSize}\n />\n\n <rect fill={COLOR_BACKGROUND} height={coordinatesSize} rx={borderRadius} width={viewBoxWidth} x=\"0\" y=\"0\" />\n <rect\n fill={COLOR_BACKGROUND}\n height={viewBoxHeight}\n rx={borderRadius}\n x={direction === 'ltr' ? 0 : viewBoxWidth - coordinatesSize}\n y=\"0\"\n width={coordinatesSize}\n />\n <use href={`#${HORIZONTAL_LINE}`} y={coordinatesSize - BORDER_WIDTH} />\n <use\n href={`#${VERTICAL_LINE}`}\n x={direction === 'ltr' ? coordinatesSize - BORDER_WIDTH : viewBoxWidth - coordinatesSize - BORDER_WIDTH}\n />\n </>\n )}\n\n {Array.from({ length: config.boardHeight - 1 }).map((_value, index) => (\n <use\n key={index}\n href={`#${HORIZONTAL_LINE}`}\n y={coordinatesSize + (index + 1) * (cellSize + BORDER_WIDTH) - BORDER_WIDTH}\n />\n ))}\n\n {Array.from({ length: config.boardWidth - 1 }).map((_value, index) => (\n <use\n key={index}\n href={`#${VERTICAL_LINE}`}\n x={(direction === 'ltr' ? coordinatesSize : 0) + (index + 1) * (cellSize + BORDER_WIDTH) - BORDER_WIDTH}\n />\n ))}\n\n {characterBonuses.map((bonus, index) => (\n <use fill={getBonusColor(bonus)} key={index} href={`#${BONUS}`} x={getX(bonus)} y={getY(bonus)} />\n ))}\n\n {word2Bonuses.map((bonus, index) => (\n <use fill={getBonusColor(bonus)} key={index} href={`#${BONUS_WORD_2}`} x={getX(bonus)} y={getY(bonus)} />\n ))}\n\n {word3Bonuses.map((bonus, index) => (\n <use fill={getBonusColor(bonus)} key={index} href={`#${BONUS_WORD_3}`} x={getX(bonus)} y={getY(bonus)} />\n ))}\n\n {word4Bonuses.map((bonus, index) => (\n <use fill={getBonusColor(bonus)} key={index} href={`#${BONUS_WORD_4}`} x={getX(bonus)} y={getY(bonus)} />\n ))}\n\n <rect\n fill={COLOR_BONUS_START}\n height={bonusSize}\n rx={borderRadius}\n width={bonusSize}\n x={getX(center) + bonusOffset}\n y={getY(center) + bonusOffset}\n />\n\n <Star\n color=\"white\"\n height={iconSize}\n width={iconSize}\n x={getX(center) + iconOffset}\n y={getY(center) + iconOffset}\n />\n </svg>\n </Provider>,\n );\n\n const encodedSvg = useMemo(() => globalThis.btoa(backgroundSvg), [backgroundSvg]);\n const dataUrl = `data:image/svg+xml;base64,${encodedSvg}`;\n return dataUrl;\n};\n","import { type CSSProperties, useMemo } from 'react';\n\nimport { useAppLayout } from 'hooks';\nimport { getTileSizes } from 'lib';\nimport { BORDER_WIDTH } from 'parameters';\nimport { selectConfig, selectShowCoordinates, useTypedSelector } from 'state';\n\nimport { useBackgroundImage } from './useBackgroundImage';\n\nexport const useBoardStyle = () => {\n const config = useTypedSelector(selectConfig);\n const { cellSize } = useAppLayout();\n const { tileFontSize } = getTileSizes(cellSize);\n const showCoordinates = useTypedSelector(selectShowCoordinates);\n const backgroundImage = useBackgroundImage();\n const coordinatesSize = 0.5 * cellSize - BORDER_WIDTH;\n const boardStyle = useMemo<CSSProperties>(\n () => ({\n backgroundImage: `url(${backgroundImage})`,\n fontSize: tileFontSize,\n gridTemplateColumns:\n showCoordinates === 'hidden'\n ? `repeat(${config.boardWidth}, 1fr)`\n : `${coordinatesSize}px repeat(${config.boardWidth}, 1fr)`,\n gridTemplateRows:\n showCoordinates === 'hidden'\n ? `repeat(${config.boardHeight}, 1fr)`\n : `${coordinatesSize}px repeat(${config.boardHeight}, 1fr)`,\n }),\n [backgroundImage, config.boardHeight, config.boardWidth, coordinatesSize, showCoordinates, tileFontSize],\n );\n\n return boardStyle;\n};\n","import { autoUpdate, offset, shift, useFloating } from '@floating-ui/react';\n\nimport { useAppLayout } from 'hooks';\nimport { BOARD_CELL_ACTIONS_OFFSET } from 'parameters';\n\nexport const useFloatingActions = () => {\n const { actionsWidth } = useAppLayout();\n\n return useFloating({\n middleware: [\n offset({\n mainAxis: -BOARD_CELL_ACTIONS_OFFSET,\n alignmentAxis: BOARD_CELL_ACTIONS_OFFSET - actionsWidth,\n }),\n shift(),\n ],\n placement: 'top-end',\n whileElementsMounted: autoUpdate,\n });\n};\n","import { autoUpdate, useFloating } from '@floating-ui/react';\n\nexport const useFloatingFocus = () => {\n return useFloating({\n placement: 'top-start',\n whileElementsMounted: autoUpdate,\n });\n};\n","import { autoUpdate, offset, shift, useFloating } from '@floating-ui/react';\n\nimport { BOARD_CELL_ACTIONS_OFFSET } from 'parameters';\n\nexport const useFloatingInputPrompt = () => {\n return useFloating({\n middleware: [\n offset({\n mainAxis: -BOARD_CELL_ACTIONS_OFFSET,\n alignmentAxis: BOARD_CELL_ACTIONS_OFFSET,\n }),\n shift(),\n ],\n placement: 'top',\n whileElementsMounted: autoUpdate,\n });\n};\n","/* eslint-disable max-lines, max-statements */\nimport { type PayloadAction } from '@reduxjs/toolkit';\nimport { BLANK, EMPTY_CELL } from '@scrabble-solver/constants';\nimport { Board, type Cell } from '@scrabble-solver/types';\nimport {\n type ChangeEvent,\n type ChangeEventHandler,\n type ClipboardEventHandler,\n type KeyboardEventHandler,\n type RefObject,\n createRef,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { useLatest } from 'hooks';\nimport { LOCALE_FEATURES } from 'i18n';\nimport { createKeyboardNavigation, extractCharacters, extractInputValue, isCtrl } from 'lib';\nimport { boardSlice, cellFiltersSlice, selectConfig, selectLocale, useTypedSelector } from 'state';\nimport { type Direction, type Point } from 'types';\n\nimport { createGrid, getPositionInGrid } from '../lib';\n\nconst toggleDirection = (direction: Direction) => (direction === 'vertical' ? 'horizontal' : 'vertical');\n\ninterface State {\n activeIndex: Point;\n direction: Direction;\n inputRefs: RefObject<HTMLInputElement | null>[][];\n}\n\ninterface Actions {\n insertValue: (position: Point, value: string) => void;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onDirectionToggle: () => void;\n onFocus: (x: number, y: number) => void;\n onKeyDown: KeyboardEventHandler<HTMLInputElement>;\n onPaste: ClipboardEventHandler<HTMLInputElement>;\n}\n\nexport const useGrid = (rows: Cell[][]): [State, Actions] => {\n const height = rows.length;\n const width = rows[0].length;\n const dispatch = useDispatch();\n const config = useTypedSelector(selectConfig);\n const locale = useTypedSelector(selectLocale);\n const inputRefs = useMemo(\n () => createGrid<RefObject<HTMLInputElement | null>>(width, height, () => createRef()),\n [width, height],\n );\n const [activeIndex, setActiveIndex] = useState<Point>({ x: 0, y: 0 });\n const [direction, setLastDirection] = useState<Direction>('horizontal');\n const directionRef = useLatest(direction);\n\n const safeActiveIndex = useMemo(\n () => ({\n x: Math.min(activeIndex.x, width - 1),\n y: Math.min(activeIndex.y, height - 1),\n }),\n [activeIndex, width, height],\n );\n\n const changeActiveIndex = useCallback(\n (offsetX: number, offsetY: number) => {\n const x = Math.min(Math.max(safeActiveIndex.x + offsetX, 0), width - 1);\n const y = Math.min(Math.max(safeActiveIndex.y + offsetY, 0), height - 1);\n setActiveIndex({ x, y });\n inputRefs[y][x].current?.focus();\n },\n [safeActiveIndex, height, inputRefs, width],\n );\n\n const getInputRefPosition = useCallback(\n (inputRef: HTMLInputElement): Point | undefined => {\n return getPositionInGrid(inputRefs, (ref) => ref.current === inputRef);\n },\n [inputRefs],\n );\n\n const moveFocus = useCallback(\n (offset: number) => {\n if (directionRef.current === 'horizontal') {\n changeActiveIndex(offset, 0);\n } else {\n changeActiveIndex(0, offset);\n }\n },\n [changeActiveIndex, directionRef],\n );\n\n const insertValue = useCallback(\n (position: Point, value: string) => {\n const characters = value ? extractCharacters(config, value).filter((character) => character !== BLANK) : [BLANK];\n const actions: PayloadAction<unknown>[] = [];\n let board = new Board({ rows: rows.map((row) => row.map((cell) => cell.clone())) });\n let { x, y } = position;\n\n const scheduleMoveFocus = () => {\n if (directionRef.current === 'horizontal') {\n ++x;\n } else {\n ++y;\n }\n };\n\n characters.forEach((character) => {\n if (x >= config.boardWidth || y >= config.boardHeight) {\n return;\n }\n\n const canCheckUp = y - 1 > 0;\n const canCheckLeft = x > 0;\n const canCheckRight = x + 1 < width;\n const canCheckDown = y + 1 < height;\n\n if (canCheckUp) {\n const cellUp = board.rows[y - 1][x];\n const twoCharacterCandidate = cellUp.tile.character + character;\n\n if (!cellUp.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate)) {\n const action = boardSlice.actions.changeCellValue({ x, y: y - 1, value: twoCharacterCandidate });\n board = boardSlice.reducer(board, action);\n actions.push(action);\n return;\n }\n }\n\n if (canCheckDown) {\n const cellDown = board.rows[y + 1][x];\n const twoCharacterCandidate = character + cellDown.tile.character;\n\n if (!cellDown.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate)) {\n const action1 = boardSlice.actions.changeCellValue({ x, y, value: character });\n const action2 = boardSlice.actions.changeCellValue({ x, y: y + 1, value: EMPTY_CELL });\n board = boardSlice.reducer(boardSlice.reducer(board, action1), action2);\n actions.push(action1, action2);\n scheduleMoveFocus();\n return;\n }\n }\n\n if (canCheckLeft) {\n const cellLeft = board.rows[y][x - 1];\n const twoCharacterCandidate = cellLeft.tile.character + character;\n\n if (!cellLeft.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate)) {\n const action = boardSlice.actions.changeCellValue({ x: x - 1, y, value: twoCharacterCandidate });\n board = boardSlice.reducer(board, action);\n actions.push(action);\n return;\n }\n }\n\n if (canCheckRight) {\n const cellRight = board.rows[y][x + 1];\n const twoCharacterCandidate = character + cellRight.tile.character;\n\n if (!cellRight.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate)) {\n const action1 = boardSlice.actions.changeCellValue({ x, y, value: character });\n const action2 = boardSlice.actions.changeCellValue({ x: x + 1, y, value: EMPTY_CELL });\n board = boardSlice.reducer(boardSlice.reducer(board, action1), action2);\n actions.push(action1, action2);\n scheduleMoveFocus();\n return;\n }\n }\n\n if (!canCheckDown || !canCheckRight) {\n const cell = board.rows[y][x];\n const twoCharacterCandidate = cell.tile.character + character;\n\n if (!cell.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate)) {\n const action = boardSlice.actions.changeCellValue({ x, y, value: twoCharacterCandidate });\n board = boardSlice.reducer(board, action);\n actions.push(action);\n return;\n }\n }\n\n const action = boardSlice.actions.changeCellValue({ x, y, value: character });\n board = boardSlice.reducer(board, action);\n actions.push(action);\n scheduleMoveFocus();\n });\n\n moveFocus(Math.abs(position.x - x) + Math.abs(position.y - y));\n actions.forEach(dispatch);\n },\n [config, directionRef, dispatch, height, moveFocus, rows, width],\n );\n\n const onChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const position = getInputRefPosition(event.target);\n\n if (!position) {\n return;\n }\n\n const value = extractInputValue(event.target);\n\n if (!value) {\n dispatch(boardSlice.actions.changeCellValue({ ...position, value: EMPTY_CELL }));\n moveFocus(-1);\n return;\n }\n\n if (value === EMPTY_CELL) {\n const { x, y } = position;\n const cell = rows[y][x];\n\n if (cell.hasTile()) {\n dispatch(boardSlice.actions.toggleCellIsBlank(position));\n return;\n }\n }\n\n insertValue(position, value);\n },\n [dispatch, insertValue, moveFocus, rows, getInputRefPosition],\n );\n\n const onDirectionToggle = useCallback(() => setLastDirection(toggleDirection), []);\n\n const onFocus = useCallback((x: number, y: number) => {\n setActiveIndex({ x, y });\n }, []);\n\n const onKeyDown = useMemo(() => {\n return createKeyboardNavigation({\n onArrowDown: (event) => {\n event.preventDefault();\n\n if (direction === 'horizontal') {\n onDirectionToggle();\n } else {\n changeActiveIndex(0, 1);\n }\n },\n onArrowLeft: (event) => {\n event.preventDefault();\n\n if (direction === 'vertical') {\n onDirectionToggle();\n changeActiveIndex(LOCALE_FEATURES[locale].direction === 'ltr' ? -1 : 0, 0);\n } else {\n changeActiveIndex(LOCALE_FEATURES[locale].direction === 'ltr' ? -1 : 1, 0);\n }\n },\n onArrowRight: (event) => {\n event.preventDefault();\n\n if (direction === 'vertical') {\n onDirectionToggle();\n changeActiveIndex(LOCALE_FEATURES[locale].direction === 'ltr' ? 0 : -1, 0);\n } else {\n changeActiveIndex(LOCALE_FEATURES[locale].direction === 'ltr' ? 1 : -1, 0);\n }\n },\n onArrowUp: (event) => {\n event.preventDefault();\n\n if (direction === 'horizontal') {\n onDirectionToggle();\n }\n\n changeActiveIndex(0, -1);\n },\n onBackspace: (event) => {\n const position = getInputRefPosition(event.target as HTMLInputElement);\n\n if (!position) {\n return;\n }\n\n event.preventDefault();\n dispatch(boardSlice.actions.changeCellValue({ ...position, value: EMPTY_CELL }));\n moveFocus(-1);\n },\n onDelete: (event) => {\n const position = getInputRefPosition(event.target as HTMLInputElement);\n\n if (!position) {\n return;\n }\n\n event.preventDefault();\n dispatch(boardSlice.actions.changeCellValue({ ...position, value: EMPTY_CELL }));\n moveFocus(1);\n },\n onKeyDown: (event) => {\n const position = getInputRefPosition(event.target as HTMLInputElement);\n\n if (!position) {\n return;\n }\n\n const { x, y } = position;\n const character = event.key.toLowerCase();\n const twoCharacterTile = config.getTwoCharacterTileByPrefix(character);\n\n if (isCtrl(event) && twoCharacterTile) {\n event.preventDefault();\n dispatch(boardSlice.actions.changeCellValue({ x, y, value: twoCharacterTile }));\n moveFocus(1);\n return;\n }\n\n const cell = rows[y][x];\n\n if (isCtrl(event) && character === 'g') {\n event.preventDefault();\n\n if (!cell.hasTile()) {\n dispatch(cellFiltersSlice.actions.toggle(position));\n }\n\n return;\n }\n\n const twoCharacterCandidate = cell.tile.character + character;\n\n if (config.twoCharacterTiles.includes(twoCharacterCandidate)) {\n event.preventDefault();\n dispatch(boardSlice.actions.changeCellValue({ ...position, value: twoCharacterCandidate }));\n moveFocus(1);\n return;\n }\n\n if (event.target instanceof HTMLInputElement && event.target.value === event.key) {\n // change event did not fire because the same character was typed over the current one\n // but we still want to move the caret\n event.preventDefault();\n moveFocus(1);\n }\n },\n onSpace: (event) => {\n const position = getInputRefPosition(event.target as HTMLInputElement);\n\n if (!position) {\n return;\n }\n\n event.preventDefault();\n dispatch(boardSlice.actions.toggleCellIsBlank(position));\n },\n });\n }, [changeActiveIndex, config, direction, dispatch, getInputRefPosition, locale, moveFocus, onDirectionToggle, rows]);\n\n const onPaste = useCallback<ClipboardEventHandler>(\n (event) => {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n\n const position = getInputRefPosition(event.target);\n\n if (!position) {\n return;\n }\n\n event.preventDefault();\n\n const value = event.clipboardData.getData('text/plain').toLocaleLowerCase();\n insertValue(position, value);\n },\n [getInputRefPosition, insertValue],\n );\n\n return [\n { activeIndex: safeActiveIndex, direction, inputRefs },\n { insertValue, onChange, onDirectionToggle, onFocus, onKeyDown, onPaste },\n ];\n};\n","export { useBackgroundImage } from './useBackgroundImage';\nexport { useBoardStyle } from './useBoardStyle';\nexport { useFloatingActions } from './useFloatingActions';\nexport { useFloatingFocus } from './useFloatingFocus';\nexport { useFloatingInputPrompt } from './useFloatingInputPrompt';\nexport { useGrid } from './useGrid';\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { findCell } from 'lib';\nimport { selectBoard, selectResultCandidateCells } from 'state';\n\nexport const selectRowsWithCandidate = createSelector([selectBoard, selectResultCandidateCells], (board, cells) => {\n return board.rows.map((row, y) => row.map((cell, x) => findCell(cells, x, y) || cell));\n});\n","/* eslint-disable max-lines, max-statements */\n\nimport { FloatingPortal, type ReferenceType } from '@floating-ui/react';\nimport { EMPTY_CELL } from '@scrabble-solver/constants';\nimport classNames from 'classnames';\nimport { type CSSProperties, type FocusEventHandler, type FunctionComponent, useCallback, useState } from 'react';\nimport useOnclickOutside from 'react-cool-onclickoutside';\nimport { useDispatch } from 'react-redux';\n\nimport { useAppLayout } from 'hooks';\nimport { LOCALE_FEATURES } from 'i18n';\nimport { TRANSITION } from 'parameters';\nimport {\n boardSlice,\n cellFiltersSlice,\n selectCellFilters,\n selectInputMode,\n selectLocale,\n selectShowCoordinates,\n solveSlice,\n useTypedSelector,\n} from 'state';\n\nimport styles from './Board.module.scss';\nimport { BoardPure } from './BoardPure';\nimport { Actions, InputPrompt } from './components';\nimport { useBoardStyle, useFloatingActions, useFloatingFocus, useFloatingInputPrompt, useGrid } from './hooks';\nimport { selectRowsWithCandidate } from './selectors';\n\ninterface Props {\n className?: string;\n}\n\nexport const Board: FunctionComponent<Props> = ({ className }) => {\n const dispatch = useDispatch();\n const locale = useTypedSelector(selectLocale);\n const rows = useTypedSelector(selectRowsWithCandidate);\n const inputMode = useTypedSelector(selectInputMode);\n const cellFilters = useTypedSelector(selectCellFilters);\n const showCoordinates = useTypedSelector(selectShowCoordinates);\n const { cellSize, coordinatesFontSize, coordinatesSize } = useAppLayout();\n const [\n { activeIndex, direction, inputRefs },\n { insertValue, onChange, onDirectionToggle, onFocus, onKeyDown, onPaste },\n ] = useGrid(rows);\n const boardStyle = useBoardStyle();\n const [hasFocus, setHasFocus] = useState(false);\n const [showInputPrompt, setShowInputPrompt] = useState(false);\n const [transition, setTransition] = useState<CSSProperties['transition']>(TRANSITION);\n const inputRef = inputRefs[activeIndex.y][activeIndex.x];\n const cell = rows[activeIndex.y][activeIndex.x];\n const floatingActions = useFloatingActions();\n const floatingInputPrompt = useFloatingInputPrompt();\n const floatingFocus = useFloatingFocus();\n\n const handleBlur: FocusEventHandler = useCallback(\n (event) => {\n const comesFromActions = floatingActions.refs.floating.current?.contains(event.relatedTarget);\n const comesFromBoard = event.currentTarget.contains(event.relatedTarget);\n const comesFromFocus = floatingFocus.refs.floating.current?.contains(event.relatedTarget);\n const comesFromInputPrompt = floatingInputPrompt.refs.floating.current?.contains(event.relatedTarget);\n const isLocalEvent = comesFromActions || comesFromBoard || comesFromFocus || comesFromInputPrompt;\n\n if (!isLocalEvent) {\n setHasFocus(false);\n }\n },\n [floatingActions.refs.floating, floatingFocus.refs.floating, floatingInputPrompt.refs.floating],\n );\n\n const updateFloatingReference = useCallback(\n (newReference: ReferenceType | null) => {\n floatingActions.refs.setReference(newReference);\n floatingFocus.refs.setReference(newReference);\n floatingInputPrompt.refs.setReference(newReference);\n },\n [floatingActions.refs, floatingFocus.refs, floatingInputPrompt.refs],\n );\n\n const handleFocus: typeof onFocus = useCallback(\n (newX, newY) => {\n const isFirstFocus = !hasFocus;\n const originalTransition = floatingActions.refs.floating.current?.style.transition || '';\n const newInputRef = inputRefs[newY][newX].current;\n const newTileElement = newInputRef?.parentElement || null;\n\n updateFloatingReference(newTileElement);\n onFocus(newX, newY);\n setHasFocus(true);\n setShowInputPrompt(false);\n\n if (isFirstFocus) {\n setTransition('none');\n\n globalThis.setTimeout(() => {\n setTransition(originalTransition);\n }, 0);\n }\n },\n [floatingActions.refs.floating, hasFocus, inputRefs, onFocus, updateFloatingReference],\n );\n\n const handleEnterWord = useCallback(() => {\n setShowInputPrompt(true);\n }, []);\n\n const handleInsertWord = useCallback(\n (word: string) => {\n if (word.trim().length === 0) {\n dispatch(boardSlice.actions.changeCellValue({ ...activeIndex, value: EMPTY_CELL }));\n } else {\n insertValue(activeIndex, word.toLocaleLowerCase(locale));\n }\n\n setShowInputPrompt(false);\n dispatch(solveSlice.actions.submit());\n setHasFocus(false);\n },\n [activeIndex, dispatch, insertValue, locale],\n );\n\n const handleToggleBlank = useCallback(() => {\n if (inputMode === 'keyboard') {\n inputRef.current?.focus();\n }\n\n dispatch(boardSlice.actions.toggleCellIsBlank(cell));\n }, [cell, dispatch, inputMode, inputRef]);\n\n const handleToggleDirection = useCallback(() => {\n if (inputMode === 'keyboard') {\n inputRef.current?.focus();\n }\n\n onDirectionToggle();\n }, [inputMode, inputRef, onDirectionToggle]);\n\n const handleToggleFilterCell = useCallback(() => {\n if (inputMode === 'keyboard') {\n inputRef.current?.focus();\n }\n\n dispatch(cellFiltersSlice.actions.toggle(cell));\n }, [cell, dispatch, inputMode, inputRef]);\n\n const ref = useOnclickOutside(() => setHasFocus(false), {\n ignoreClass: [styles.floating],\n });\n\n return (\n <>\n <BoardPure\n className={className}\n cellFilters={cellFilters}\n cellSize={cellSize}\n coordinatesFontSize={coordinatesFontSize}\n coordinatesSize={coordinatesSize}\n direction={LOCALE_FEATURES[locale].direction}\n inputRefs={inputRefs}\n ref={ref}\n rows={rows}\n showCoordinates={showCoordinates}\n style={boardStyle}\n onBlur={handleBlur}\n onChange={onChange}\n onFocus={handleFocus}\n onKeyDown={onKeyDown}\n onPaste={onPaste}\n />\n\n <FloatingPortal>\n <div\n className={classNames(styles.floating, styles.focus, {\n [styles.hidden]: !hasFocus,\n })}\n ref={floatingFocus.refs.setFloating}\n style={{\n position: floatingFocus.strategy,\n top: floatingFocus.y + cellSize,\n left: floatingFocus.x,\n display: floatingFocus.isPositioned ? 'block' : 'none',\n width: cellSize,\n height: cellSize,\n opacity: hasFocus ? 1 : 0,\n visibility: floatingFocus.x === null || floatingFocus.y === null ? 'hidden' : 'visible',\n transition,\n }}\n tabIndex={0}\n />\n\n {hasFocus && !showInputPrompt && (\n <Actions\n cell={cell}\n className={styles.floating}\n direction={direction}\n ref={floatingActions.refs.setFloating}\n style={{\n position: floatingActions.strategy,\n top: floatingActions.y ?? 0,\n left: floatingActions.x ?? 0,\n transition,\n }}\n onDirectionToggle={handleToggleDirection}\n onEnterWord={handleEnterWord}\n onToggleBlank={handleToggleBlank}\n onToggleFilterCell={handleToggleFilterCell}\n />\n )}\n\n {hasFocus && showInputPrompt && (\n <InputPrompt\n className={styles.floating}\n direction={direction}\n initialValue={cell.tile.character}\n ref={floatingInputPrompt.refs.setFloating}\n style={{\n position: floatingInputPrompt.strategy,\n top: floatingInputPrompt.y ?? 0,\n left: floatingInputPrompt.x ?? 0,\n transition,\n }}\n onDirectionToggle={handleToggleDirection}\n onSubmit={handleInsertWord}\n />\n )}\n </FloatingPortal>\n </>\n );\n};\n","export { Board } from './Board';\n","__turbopack_context__.v({\n \"dropShadow\": \"PlainTiles-module-scss-module__a1Ievq__dropShadow\",\n \"hide\": \"PlainTiles-module-scss-module__a1Ievq__hide\",\n \"rotate\": \"PlainTiles-module-scss-module__a1Ievq__rotate\",\n \"show\": \"PlainTiles-module-scss-module__a1Ievq__show\",\n \"tile\": \"PlainTiles-module-scss-module__a1Ievq__tile\",\n \"wave\": \"PlainTiles-module-scss-module__a1Ievq__wave\",\n});\n","import classNames from 'classnames';\nimport { type CSSProperties, type FunctionComponent, useMemo } from 'react';\n\nimport { createPlainTiles, getViewbox } from './lib';\nimport styles from './PlainTiles.module.scss';\nimport { Tile } from './Tile';\n\ninterface Props {\n className?: string;\n color?: string;\n content: string[][];\n dropShadow?: boolean;\n showPoints?: boolean;\n style?: CSSProperties;\n wave?: boolean;\n}\n\nexport const PlainTiles: FunctionComponent<Props> = ({\n className,\n color,\n content,\n dropShadow,\n showPoints,\n style,\n wave,\n}) => {\n const tiles = useMemo(() => createPlainTiles({ color, content, showPoints }), [color, content, showPoints]);\n\n return (\n <svg\n className={classNames(className, {\n [styles.dropShadow]: dropShadow,\n [styles.wave]: wave,\n })}\n style={style}\n viewBox={getViewbox(content)}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {tiles.map((tile, index) => (\n <Tile\n character={tile.character}\n className={styles.tile}\n color={tile.color}\n key={index}\n points={tile.points}\n size={tile.size}\n transform={tile.transform}\n x={tile.x}\n y={tile.y}\n />\n ))}\n </svg>\n );\n};\n","import { getConfig } from '@scrabble-solver/configs';\nimport { Game, Locale } from '@scrabble-solver/types';\n\nimport {\n PLAIN_TILES_COLOR_DEFAULT,\n PLAIN_TILES_PADDING_HORIZONTAL,\n PLAIN_TILES_PADDING_VERTICAL,\n PLAIN_TILES_POINTS_COLORS,\n PLAIN_TILES_TILE_MARGIN,\n PLAIN_TILES_TILE_MAX_ROTATE,\n PLAIN_TILES_TILE_MAX_SCATTER,\n PLAIN_TILES_TILE_SIZE,\n} from 'parameters';\n\nimport type { CreatePlainTileOptions, CreatePlainTilesOptions, PlainTile } from './types';\n\nexport const createPlainTiles = ({ color, content, showPoints }: CreatePlainTilesOptions): PlainTile[] => {\n const rows = content.map((words, rowIndex) => {\n return words.map((word, wordIndex) => {\n const cellOffset = words.slice(0, wordIndex).reduce((result, { length }) => result + length + ' '.length, 0);\n const characters = word.split('');\n\n return characters.map((character, cellIndex) => {\n return createPlainTile({\n cellIndex: cellOffset + cellIndex,\n character,\n color,\n rowIndex,\n showPoints,\n });\n });\n });\n });\n\n const tiles = rows.flat(2);\n return tiles;\n};\n\nexport const createPlainTile = ({\n cellIndex,\n character,\n color,\n rowIndex,\n showPoints,\n}: CreatePlainTileOptions): PlainTile => {\n const configPoints = getConfig(Game.Literaki, Locale.EN_US).getCharacterPoints(character.toLowerCase());\n const points = showPoints ? configPoints : undefined;\n const defaultColor =\n typeof configPoints === 'number' ? PLAIN_TILES_POINTS_COLORS[configPoints] : PLAIN_TILES_COLOR_DEFAULT;\n const x = getX(cellIndex) + PLAIN_TILES_TILE_SIZE / 2;\n const y = getY(0) + PLAIN_TILES_TILE_SIZE / 2;\n\n return {\n character,\n color: color || defaultColor,\n points,\n size: PLAIN_TILES_TILE_SIZE,\n transform: `rotate(${randomize(0, PLAIN_TILES_TILE_MAX_ROTATE)}, ${x}, ${y})`,\n x: randomize(getX(cellIndex), PLAIN_TILES_TILE_MAX_SCATTER),\n y: randomize(getY(rowIndex), PLAIN_TILES_TILE_MAX_SCATTER),\n };\n};\n\nexport const getViewbox = (content: string[][]): string => {\n const longestRowLength = content.reduce((result, words) => {\n const wordsLength = words.reduce((sum, word) => sum + word.length, 0);\n const rowLength = wordsLength + Math.max(words.length - 1, 0);\n return Math.max(result, rowLength);\n }, 0);\n const width =\n longestRowLength * (PLAIN_TILES_TILE_SIZE + PLAIN_TILES_TILE_MARGIN) -\n (longestRowLength === 0 ? 0 : PLAIN_TILES_TILE_MARGIN);\n const height =\n content.length * (PLAIN_TILES_TILE_SIZE + PLAIN_TILES_TILE_MARGIN) -\n (content.length === 0 ? 0 : PLAIN_TILES_TILE_MARGIN);\n\n return `0 0 ${width} ${height}`;\n};\n\nexport const getX = (index: number): number => {\n return PLAIN_TILES_PADDING_HORIZONTAL + index * (PLAIN_TILES_TILE_SIZE + PLAIN_TILES_TILE_MARGIN);\n};\n\nexport const getY = (index: number): number => {\n return PLAIN_TILES_PADDING_VERTICAL + index * (PLAIN_TILES_TILE_SIZE + PLAIN_TILES_TILE_MARGIN);\n};\n\nexport const randomize = (value: number, maxChange: number): number => {\n return value + maxChange * 2 * (0.5 - Math.random());\n};\n","import { type FunctionComponent } from 'react';\n\ninterface Props {\n character: string;\n className?: string;\n color: string;\n points?: number;\n size: number;\n transform?: string;\n x: number;\n y: number;\n}\n\nexport const Tile: FunctionComponent<Props> = ({ character, className, color, points, size, transform, x, y }) => (\n <g className={className} fill=\"#222\" transform={transform}>\n <rect fill={color} height={size} rx={size * 0.15} width={size} x={x} y={y} />\n\n <text\n dominantBaseline=\"central\"\n fontSize={size * 0.6}\n fontWeight=\"bold\"\n textAnchor=\"middle\"\n x={x + size / 2}\n y={y + size / 2}\n >\n {character}\n </text>\n\n {typeof points === 'number' && (\n <text\n dominantBaseline=\"text-after-edge\"\n fontSize={size * 0.25}\n fontWeight=\"bold\"\n textAnchor=\"end\"\n x={x + size * 0.9}\n y={y + size * 0.95}\n >\n {points}\n </text>\n )}\n </g>\n);\n","export { PlainTiles } from './PlainTiles';\n","__turbopack_context__.v({\n \"emptyState\": \"EmptyState-module-scss-module__q-r8Vq__emptyState\",\n \"tiles\": \"EmptyState-module-scss-module__q-r8Vq__tiles\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type ReactNode, useMemo } from 'react';\n\nimport { LOCALE_FEATURES } from 'i18n';\nimport { COLOR_BLUE, COLOR_GREEN, COLOR_RED, COLOR_YELLOW } from 'parameters';\nimport { selectLocale, useTranslate, useTypedSelector } from 'state';\nimport { type Translations } from 'types';\n\nimport { PlainTiles } from '../PlainTiles';\n\nimport styles from './EmptyState.module.scss';\n\ninterface Props {\n children: ReactNode;\n className?: string;\n variant: 'error' | 'info' | 'success' | 'warning';\n}\n\nconst TITLE_KEY_PER_TYPE: Record<Props['variant'], keyof Translations> = {\n error: 'empty-state.error',\n info: 'empty-state.info',\n success: 'empty-state.success',\n warning: 'empty-state.warning',\n};\n\nconst COLORS_PER_TYPE: Record<Props['variant'], string> = {\n error: COLOR_RED,\n info: COLOR_BLUE,\n success: COLOR_GREEN,\n warning: COLOR_YELLOW,\n};\n\nexport const EmptyState: FunctionComponent<Props> = ({ children, className, variant }) => {\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const { direction } = LOCALE_FEATURES[locale];\n const title = translate(TITLE_KEY_PER_TYPE[variant]);\n const message = direction === 'ltr' ? title : title.split('').reverse().join('');\n const content = useMemo(() => [message.toUpperCase().split(' ')], [message]);\n\n return (\n <div className={classNames(styles.emptyState, className)}>\n <PlainTiles className={styles.tiles} color={COLORS_PER_TYPE[variant]} content={content} />\n <div>{children}</div>\n </div>\n );\n};\n","export { EmptyState } from './EmptyState';\n","__turbopack_context__.v({\n \"dim\": \"Loading-module-scss-module__uWaT0q__dim\",\n \"loading\": \"Loading-module-scss-module__uWaT0q__loading\",\n \"text\": \"Loading-module-scss-module__uWaT0q__text\",\n \"tiles\": \"Loading-module-scss-module__uWaT0q__tiles\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, useMemo } from 'react';\n\nimport { LOCALE_FEATURES } from 'i18n';\nimport { selectLocale, useTranslate, useTypedSelector } from 'state';\n\nimport { PlainTiles } from '../PlainTiles';\n\nimport styles from './Loading.module.scss';\n\ninterface Props {\n children?: never;\n className?: string;\n wave?: boolean;\n}\n\nexport const Loading: FunctionComponent<Props> = ({ className, wave = true }) => {\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const { direction } = LOCALE_FEATURES[locale];\n const translation = translate('common.loading');\n const message = direction === 'ltr' ? translation : translation.split('').reverse().join('');\n const content = useMemo(() => {\n const uppercased = message.toLocaleUpperCase();\n const parts = uppercased.split(' ');\n return [parts];\n }, [message]);\n\n return (\n <div aria-label={translation} className={classNames(styles.loading, className)} data-testid=\"loading\" role=\"status\">\n <div className={styles.dim} />\n <div className={styles.text}>\n <PlainTiles className={classNames(styles.tiles)} content={content} dropShadow wave={wave} />\n </div>\n </div>\n );\n};\n","export { Loading } from './Loading';\n","__turbopack_context__.v({\n \"content\": \"Dictionary-module-scss-module__fRUSJa__content\",\n \"definition\": \"Dictionary-module-scss-module__fRUSJa__definition\",\n \"definitions\": \"Dictionary-module-scss-module__fRUSJa__definitions\",\n \"dictionary\": \"Dictionary-module-scss-module__fRUSJa__dictionary\",\n \"isAllowed\": \"Dictionary-module-scss-module__fRUSJa__isAllowed\",\n \"isNotAllowed\": \"Dictionary-module-scss-module__fRUSJa__isNotAllowed\",\n \"result\": \"Dictionary-module-scss-module__fRUSJa__result\",\n \"resultContent\": \"Dictionary-module-scss-module__fRUSJa__resultContent\",\n \"word\": \"Dictionary-module-scss-module__fRUSJa__word\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent } from 'react';\n\nimport { useAppLayout } from 'hooks';\nimport {\n selectDictionaryError,\n selectDictionaryIsLoading,\n selectDictionaryResults,\n useTranslate,\n useTypedSelector,\n} from 'state';\n\nimport { EmptyState } from '../EmptyState';\nimport { Loading } from '../Loading';\n\nimport styles from './Dictionary.module.scss';\n\ninterface Props {\n className?: string;\n}\n\nexport const Dictionary: FunctionComponent<Props> = ({ className }) => {\n const translate = useTranslate();\n const { dictionaryResultsHeight } = useAppLayout();\n const results = useTypedSelector(selectDictionaryResults);\n const isLoading = useTypedSelector(selectDictionaryIsLoading);\n const error = useTypedSelector(selectDictionaryError);\n const isLastAllowed = results.at(-1)?.isAllowed;\n\n return (\n <div\n className={classNames(styles.dictionary, className, {\n [styles.isAllowed]: isLastAllowed === true,\n [styles.isNotAllowed]: isLastAllowed === false,\n })}\n style={{ height: dictionaryResultsHeight }}\n >\n <div className={styles.content}>\n {typeof error !== 'undefined' && !isLoading && <EmptyState variant=\"error\">{error.message}</EmptyState>}\n\n {typeof error === 'undefined' && !isLoading && results.length === 0 && (\n <EmptyState variant=\"info\">{translate('dictionary.empty-state.uninitialized')}</EmptyState>\n )}\n\n {results.map(({ definitions, exists, isAllowed, word }) => (\n <div\n className={classNames(styles.result, {\n [styles.isAllowed]: isAllowed === true,\n [styles.isNotAllowed]: isAllowed === false,\n })}\n key={word}\n >\n <div className={styles.resultContent}>\n {word && <h2 className={styles.word}>{word}</h2>}\n\n {isAllowed === false && <div>{translate('dictionary.empty-state.not-allowed')}</div>}\n\n {isAllowed === true && definitions.length === 0 && (\n <>\n <div>\n {exists\n ? translate('dictionary.empty-state.no-definitions')\n : translate('dictionary.empty-state.no-results')}\n </div>\n </>\n )}\n\n {isAllowed === true && definitions.length > 0 && (\n <ul className={styles.definitions}>\n {definitions.map((result, index) => (\n <li key={index} className={styles.definition}>\n {result}\n </li>\n ))}\n </ul>\n )}\n\n {!isLoading && isAllowed === null && <div>{translate('dictionary.empty-state.no-results')}</div>}\n </div>\n </div>\n ))}\n </div>\n\n {isLoading && <Loading />}\n </div>\n );\n};\n","export { Dictionary } from './Dictionary';\n","__turbopack_context__.v({\n \"dictionaryInput\": \"DictionaryInput-module-scss-module__b3eRjG__dictionaryInput\",\n \"input\": \"DictionaryInput-module-scss-module__b3eRjG__input\",\n});\n","import classNames from 'classnames';\nimport { type ChangeEvent, type FormEvent, type FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LOCALE_FEATURES } from 'i18n';\nimport { dictionarySlice, selectDictionary, selectLocale, useTranslate, useTypedSelector } from 'state';\n\nimport styles from './DictionaryInput.module.scss';\n\ninterface Props {\n className?: string;\n}\n\nexport const DictionaryInput: FunctionComponent<Props> = ({ className }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const { input } = useTypedSelector(selectDictionary);\n const { comma } = LOCALE_FEATURES[locale];\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n dispatch(dictionarySlice.actions.changeInput(event.target.value));\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n dispatch(dictionarySlice.actions.submit());\n };\n\n return (\n <form className={classNames(styles.dictionaryInput, className)} onSubmit={handleSubmit}>\n <input\n className={styles.input}\n pattern={`.*[^\\\\s${comma}].*`}\n placeholder={translate('dictionary.input.placeholder')}\n required\n title={translate('dictionary.input.title')}\n type=\"text\"\n value={input}\n onChange={handleChange}\n />\n </form>\n );\n};\n","export { DictionaryInput } from './DictionaryInput';\n","__turbopack_context__.v({\n \"content\": \"IconButton-module-scss-module__-reAMq__content\",\n \"icon\": \"IconButton-module-scss-module__-reAMq__icon\",\n \"iconButton\": \"IconButton-module-scss-module__-reAMq__iconButton\",\n});\n","import classNames from 'classnames';\nimport { type AnchorHTMLAttributes, type FunctionComponent, type SVGAttributes } from 'react';\n\nimport { Tooltip } from '../Tooltip';\n\nimport styles from './IconButton.module.scss';\n\ninterface Props extends AnchorHTMLAttributes<HTMLAnchorElement> {\n 'aria-label': string;\n children?: never;\n href: string;\n Icon: FunctionComponent<SVGAttributes<SVGElement>>;\n tooltip: string;\n}\n\nexport const Link: FunctionComponent<Props> = ({ className, Icon, tooltip, ...props }) => {\n return (\n <Tooltip tooltip={tooltip}>\n <a className={classNames(styles.iconButton, className)} {...props}>\n <span className={styles.content}>\n <Icon aria-hidden=\"true\" className={styles.icon} role=\"img\" />\n </span>\n </a>\n </Tooltip>\n );\n};\n","import classNames from 'classnames';\nimport { type ButtonHTMLAttributes, type FunctionComponent, type MouseEventHandler, type SVGAttributes } from 'react';\n\nimport { Tooltip } from '../Tooltip';\n\nimport styles from './IconButton.module.scss';\nimport { Link } from './Link';\n\ninterface Props extends ButtonHTMLAttributes<HTMLButtonElement> {\n 'aria-label': string;\n children?: never;\n Icon: FunctionComponent<SVGAttributes<SVGElement>>;\n tooltip: string;\n onClick: MouseEventHandler<HTMLButtonElement>;\n}\n\nconst IconButtonBase: FunctionComponent<Props> = ({ className, Icon, tooltip, ...props }) => {\n return (\n <Tooltip tooltip={tooltip}>\n <button className={classNames(styles.iconButton, className)} type=\"button\" {...props}>\n <span className={styles.content}>\n <Icon aria-hidden=\"true\" className={styles.icon} role=\"img\" />\n </span>\n </button>\n </Tooltip>\n );\n};\n\nexport const IconButton = Object.assign(IconButtonBase, {\n Link,\n});\n","export { IconButton } from './IconButton';\n","__turbopack_context__.v({\n \"key\": \"Key-module-scss-module__pWvU3W__key\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type ReactNode } from 'react';\n\nimport styles from './Key.module.scss';\n\ninterface Props {\n children: ReactNode;\n className?: string;\n}\n\nexport const Key: FunctionComponent<Props> = ({ children, className }) => (\n <kbd className={classNames(styles.key, className)}>{children}</kbd>\n);\n","export { Key } from './Key';\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Maximum Redirects](https://nextjs.org/docs/api-reference/next/image#maximumredirects) */\n maximumRedirects: number\n\n /** @see [Dangerously Allow Local IP](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-local-ip) */\n dangerouslyAllowLocalIP: boolean\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n /**\n * @deprecated Use `remotePatterns` instead to protect your application from malicious users.\n */\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 14400, // 4 hours\n formats: ['image/webp'],\n maximumRedirects: 3,\n dangerouslyAllowLocalIP: false,\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: [75],\n unoptimized: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n preload?: boolean\n /**\n * @deprecated Use `preload` prop instead.\n * See https://nextjs.org/docs/app/api-reference/components/image#preload\n */\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n preload = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n preload: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority &&\n !preload &&\n (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n lcpImage.loading === 'lazy' &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n const loadingFinal = isLazy ? 'lazy' : loading\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, loading: loadingFinal, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: loadingFinal,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, preload: preload || priority, placeholder, fill }\n return { props, meta }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ImageConfigContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].RouterContext\n","import type { NextConfig } from '../../server/config-shared'\n\n/**\n * Find the closest matching `quality` in the list of `config.qualities`\n * @param quality the quality prop passed to the image component\n * @param config the \"images\" configuration from next.config.js\n * @returns the closest matching quality value\n */\nexport function findClosestQuality(\n quality: number | undefined,\n config: NextConfig['images'] | undefined\n): number {\n const q = quality || 75\n if (!config?.qualities?.length) {\n return q\n }\n return config.qualities.reduce(\n (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),\n 0\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\nimport { findClosestQuality } from './find-closest-quality'\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n config.localPatterns?.length === 1 &&\n config.localPatterns[0].pathname === '**' &&\n config.localPatterns[0].search === ''\n ) {\n throw new Error(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/_next/static/media/') && process.env.NEXT_DEPLOYMENT_ID\n ? `&dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities,\n // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include\n // security sensitive configs like `localPatterns`, which is needed\n // during the server render to ensure it's validated. Therefore use\n // configContext, which holds the config from the server for validation.\n localPatterns:\n typeof window === 'undefined'\n ? configContext?.localPatterns\n : c.localPatterns,\n }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.preload ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","import Image from 'next/image';\nimport { forwardRef } from 'react';\n\nimport { useAppLayout } from 'hooks';\nimport { LOGO_SRC } from 'parameters';\n\ninterface Props {\n className?: string;\n}\n\nexport const Logo = forwardRef<HTMLImageElement, Props>((props, ref) => {\n const { logoHeight, logoWidth } = useAppLayout();\n\n return (\n <Image {...props} alt=\"Scrabble Solver 2\" height={logoHeight} priority ref={ref} src={LOGO_SRC} width={logoWidth} />\n );\n});\n","export { Logo } from './Logo';\n","__turbopack_context__.v({\n \"heading\": \"Section-module-scss-module__fmAc-W__heading\",\n \"section\": \"Section-module-scss-module__fmAc-W__section\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type ReactNode } from 'react';\n\nimport styles from './Section.module.scss';\n\ninterface Props {\n children: ReactNode;\n className?: string;\n label: string;\n title: ReactNode;\n}\n\nexport const Section: FunctionComponent<Props> = ({ children, className, label, title }) => (\n <section aria-label={label} className={classNames(styles.section, className)}>\n <h2 className={styles.heading}>{title}</h2>\n <div>{children}</div>\n </section>\n);\n","export { Section } from './Section';\n","__turbopack_context__.v({\n \"afterOpen\": \"Modal-module-scss-module__V8kNZq__afterOpen\",\n \"beforeClose\": \"Modal-module-scss-module__V8kNZq__beforeClose\",\n \"closeButton\": \"Modal-module-scss-module__V8kNZq__closeButton\",\n \"container\": \"Modal-module-scss-module__V8kNZq__container\",\n \"content\": \"Modal-module-scss-module__V8kNZq__content\",\n \"footer\": \"Modal-module-scss-module__V8kNZq__footer\",\n \"header\": \"Modal-module-scss-module__V8kNZq__header\",\n \"modal\": \"Modal-module-scss-module__V8kNZq__modal\",\n \"overlay\": \"Modal-module-scss-module__V8kNZq__overlay\",\n \"title\": \"Modal-module-scss-module__V8kNZq__title\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type ReactNode, useCallback, useEffect, useState } from 'react';\nimport ReactModal from 'react-modal';\n\nimport { CrossSquareFill } from 'icons';\nimport { TRANSITION_DURATION_LONG } from 'parameters';\nimport { useTranslate } from 'state';\n\nimport { IconButton } from '../IconButton';\n\nimport { Section } from './components';\nimport styles from './Modal.module.scss';\n\nexport interface Props {\n children: ReactNode;\n className?: string;\n footer?: ReactNode;\n isOpen: boolean;\n title: string;\n onClose: () => void;\n}\n\nconst ModalBase: FunctionComponent<Props> = ({ children, className, footer, isOpen, title, onClose }) => {\n const translate = useTranslate();\n const [shouldReturnFocusAfterClose, setShouldReturnFocusAfterClose] = useState(true);\n\n const handleEscape = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setShouldReturnFocusAfterClose(false);\n setTimeout(() => {\n onClose();\n }, 0);\n }\n },\n [onClose],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', handleEscape);\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [handleEscape]);\n\n useEffect(() => {\n if (isOpen) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setShouldReturnFocusAfterClose(true);\n }\n }, [isOpen]);\n\n return (\n <ReactModal\n className={{\n afterOpen: styles.afterOpen,\n base: styles.modal,\n beforeClose: styles.beforeClose,\n }}\n closeTimeoutMS={TRANSITION_DURATION_LONG}\n contentLabel={title}\n isOpen={isOpen}\n overlayClassName={styles.overlay}\n shouldReturnFocusAfterClose={shouldReturnFocusAfterClose}\n onRequestClose={onClose}\n >\n <div className={classNames(styles.container, className)}>\n <div className={styles.header}>\n <h1 className={styles.title}>{title}</h1>\n\n <IconButton\n aria-label={translate('common.close')}\n className={styles.closeButton}\n Icon={CrossSquareFill}\n tooltip={translate('common.close')}\n onClick={onClose}\n />\n </div>\n\n <div className={styles.content}>{children}</div>\n\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n </ReactModal>\n );\n};\n\nexport const Modal = Object.assign(ModalBase, {\n Section,\n});\n","export { Modal } from './Modal';\n","__turbopack_context__.v({\n \"button\": \"NavButtons-module-scss-module__wjrpSG__button\",\n \"error\": \"NavButtons-module-scss-module__wjrpSG__error\",\n \"group\": \"NavButtons-module-scss-module__wjrpSG__group\",\n \"navButtons\": \"NavButtons-module-scss-module__wjrpSG__navButtons\",\n \"separator\": \"NavButtons-module-scss-module__wjrpSG__separator\",\n});\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { selectInvalidWords, selectRemainingTiles } from 'state';\n\nexport const selectHasInvalidWords = createSelector([selectInvalidWords], (invalidWords) => {\n return invalidWords.length > 0;\n});\n\nexport const selectHasOverusedTiles = createSelector([selectRemainingTiles], (remainingTiles) => {\n return remainingTiles.some(({ count = 0, usedCount }) => usedCount > count);\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, memo } from 'react';\n\nimport { useAppLayout } from 'hooks';\nimport { CardChecklist, Cog, Eraser, Github, KeyboardFill, List, Sack } from 'icons';\nimport { GITHUB_PROJECT_URL } from 'parameters';\nimport { selectConfig, useTranslate, useTypedSelector } from 'state';\n\nimport { IconButton } from '../IconButton';\n\nimport styles from './NavButtons.module.scss';\nimport { selectHasInvalidWords, selectHasOverusedTiles } from './selectors';\n\ninterface Props {\n onClear: () => void;\n onShowKeyMap: () => void;\n onShowMenu: () => void;\n onShowRemainingTiles: () => void;\n onShowSettings: () => void;\n onShowWords: () => void;\n}\n\nconst NavButtonsBase: FunctionComponent<Props> = ({\n onClear,\n onShowKeyMap,\n onShowMenu,\n onShowRemainingTiles,\n onShowSettings,\n onShowWords,\n}) => {\n const translate = useTranslate();\n const config = useTypedSelector(selectConfig);\n const hasInvalidWords = useTypedSelector(selectHasInvalidWords);\n const hasOverusedTiles = useTypedSelector(selectHasOverusedTiles);\n const { showKeyMap, showShortNav } = useAppLayout();\n\n if (showShortNav) {\n return (\n <div className={styles.navButtons}>\n <div className={styles.group}>\n <IconButton\n aria-label={translate('common.clear')}\n className={styles.button}\n Icon={Eraser}\n tooltip={translate('common.clear')}\n onClick={onClear}\n />\n </div>\n\n <div className={styles.separator} />\n\n <div className={styles.group}>\n <IconButton\n aria-label={translate('menu')}\n className={styles.button}\n Icon={List}\n tooltip={translate('menu')}\n onClick={onShowMenu}\n />\n </div>\n </div>\n );\n }\n\n return (\n <div className={styles.navButtons}>\n <div className={styles.group}>\n <IconButton\n aria-label={translate('common.clear')}\n className={styles.button}\n Icon={Eraser}\n tooltip={translate('common.clear')}\n onClick={onClear}\n />\n </div>\n\n <div className={styles.separator} />\n\n <div className={styles.group}>\n {config.supportsRemainingTiles && (\n <IconButton\n aria-label={translate('remaining-tiles')}\n className={classNames(styles.button, {\n [styles.error]: hasOverusedTiles,\n })}\n Icon={Sack}\n tooltip={translate('remaining-tiles')}\n onClick={onShowRemainingTiles}\n />\n )}\n\n <IconButton\n aria-label={translate('words')}\n className={classNames(styles.button, {\n [styles.error]: hasInvalidWords,\n })}\n Icon={CardChecklist}\n tooltip={translate('words')}\n onClick={onShowWords}\n />\n </div>\n\n <div className={styles.separator} />\n\n <div className={styles.group}>\n <IconButton.Link\n aria-label={translate('github')}\n className={styles.button}\n href={GITHUB_PROJECT_URL}\n Icon={Github}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n tooltip={translate('github')}\n />\n </div>\n\n <div className={styles.separator} />\n\n <div className={styles.group}>\n {showKeyMap && (\n <IconButton\n aria-label={translate('keyMap')}\n className={styles.button}\n Icon={KeyboardFill}\n tooltip={translate('keyMap')}\n onClick={onShowKeyMap}\n />\n )}\n\n <IconButton\n aria-label={translate('settings')}\n data-testid=\"settings-button\"\n className={styles.button}\n Icon={Cog}\n tooltip={translate('settings')}\n onClick={onShowSettings}\n />\n </div>\n </div>\n );\n};\n\nexport const NavButtons = memo(NavButtonsBase);\n","export { NavButtons } from './NavButtons';\n","__turbopack_context__.v({\n \"icon\": \"NotFound-module-scss-module__x7AazG__icon\",\n \"link\": \"NotFound-module-scss-module__x7AazG__link\",\n \"notFound\": \"NotFound-module-scss-module__x7AazG__notFound\",\n \"tiles\": \"NotFound-module-scss-module__x7AazG__tiles\",\n});\n","import { type FunctionComponent } from 'react';\n\nimport { DashCircleFill } from 'icons';\n\nimport { PlainTiles } from '../PlainTiles';\n\nimport styles from './NotFound.module.scss';\n\nconst CONTENT = [['HTTP', '404']];\n\nexport const NotFound: FunctionComponent = () => (\n <div className={styles.notFound}>\n <a className={styles.link} href=\"/\">\n <DashCircleFill aria-hidden=\"true\" className={styles.icon} role=\"img\" />\n <PlainTiles className={styles.tiles} content={CONTENT} />\n </a>\n </div>\n);\n","export { NotFound } from './NotFound';\n","__turbopack_context__.v({\n \"progress\": \"Progress-module-scss-module__lEk9-a__progress\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type HTMLProps } from 'react';\n\nimport { PROGRESS_COLOR_BACKGROUND, PROGRESS_COLOR_VALUE } from 'parameters';\nimport { selectLocale, useTypedSelector } from 'state';\n\nimport styles from './Progress.module.scss';\n\ninterface Props extends HTMLProps<HTMLDivElement> {\n max: number;\n min?: number;\n value: number;\n}\n\nconst getGradient = (progress: number, color: string, background: string) => {\n const percent = 100 * progress;\n return `linear-gradient(90deg, ${color} 0%, ${color} ${percent}%, ${background} ${percent}%, ${background} 100%)`;\n};\n\nexport const Progress: FunctionComponent<Props> = ({ className, max, min = 0, style, value, ...props }) => {\n const locale = useTypedSelector(selectLocale);\n const progress = value / (max - min);\n const percent = Math.round(100 * progress);\n\n return (\n <div\n {...props}\n className={classNames(styles.progress, className)}\n style={{\n ...style,\n backgroundImage: getGradient(progress, PROGRESS_COLOR_VALUE, PROGRESS_COLOR_BACKGROUND),\n }}\n title={`${percent.toLocaleString(locale)}%`}\n />\n );\n};\n","export { Progress } from './Progress';\n","__turbopack_context__.v({\n \"form\": \"InputPrompt-module-scss-module__H21djG__form\",\n \"input\": \"InputPrompt-module-scss-module__H21djG__input\",\n});\n","import { type Config } from '@scrabble-solver/types';\n\n// eslint-disable-next-line no-warning-comments\n// TODO: https://github.com/kamilmielnik/scrabble-solver/issues/393\nimport { extractCharacters } from '../../../../lib/extractCharacters';\n\nexport const extractRack = (config: Config, value: string): (string | null)[] => {\n const charactersByCase = extractCharacters(config, value, {\n /**\n * This is to allow inserting digraphs on the rack in touchscreen input mode.\n * This is not necessary on the board.\n */\n upperCaseDigraphsOnly: true,\n });\n const characters = Array.from({ length: config.rackSize }, (_, index) => {\n return typeof charactersByCase[index] === 'string' ? charactersByCase[index] : null;\n });\n return characters;\n};\n","import classNames from 'classnames';\nimport {\n type CSSProperties,\n type ChangeEventHandler,\n type FormEventHandler,\n forwardRef,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { useAppLayout } from 'hooks';\nimport { rackSlice, selectConfig, useTranslate, useTypedSelector } from 'state';\n\nimport styles from './InputPrompt.module.scss';\nimport { extractRack } from './lib';\n\ninterface Props {\n className?: string;\n style?: CSSProperties;\n value: string;\n onBlur: () => void;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onSubmit: FormEventHandler<HTMLFormElement>;\n}\n\nconst InputPromptBase = forwardRef<HTMLFormElement, Props>(\n ({ className, style, value, onBlur, onChange, onSubmit, ...props }, ref) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const { rackHeight, rackWidth } = useAppLayout();\n const config = useTypedSelector(selectConfig);\n const [inputRef, setInputRef] = useState<HTMLInputElement | null>(null);\n\n const handleSubmit: FormEventHandler<HTMLFormElement> = useCallback(\n (event) => {\n event.preventDefault();\n const characters = extractRack(config, value);\n dispatch(rackSlice.actions.changeCharacters({ characters, index: 0 }));\n onSubmit(event);\n },\n [config, dispatch, value, onSubmit],\n );\n\n useEffect(() => {\n if (inputRef) {\n inputRef.focus();\n inputRef.select();\n inputRef.scrollIntoView({ block: 'end', inline: 'center' });\n }\n }, [inputRef]);\n\n return (\n <form\n className={classNames(styles.form, className)}\n ref={ref}\n style={{\n width: rackWidth,\n height: rackHeight,\n ...style,\n }}\n onSubmit={handleSubmit}\n {...props}\n >\n <input\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n className={styles.input}\n placeholder={translate('rack.touchscreen.placeholder')}\n ref={setInputRef}\n spellCheck={false}\n value={value}\n onBlur={onBlur}\n onChange={onChange}\n />\n </form>\n );\n },\n);\n\nexport const InputPrompt = Object.assign(InputPromptBase, {\n styles,\n});\n","export { InputPrompt } from './InputPrompt';\n","__turbopack_context__.v({\n \"rackTile\": \"RackTile-module-scss-module__piL4Eq__rackTile\",\n});\n","import { BLANK } from '@scrabble-solver/constants';\nimport { type Tile as TileModel } from '@scrabble-solver/types';\nimport classNames from 'classnames';\nimport {\n type ChangeEvent,\n type ChangeEventHandler,\n type FocusEventHandler,\n type FunctionComponent,\n type KeyboardEventHandler,\n type MouseEventHandler,\n type RefObject,\n type TouchEventHandler,\n useCallback,\n useMemo,\n} from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { createKeyboardNavigation, extractCharacters, extractInputValue, isCtrl } from 'lib';\nimport {\n rackSlice,\n selectCharacterIsValid,\n selectCharacterPoints,\n selectConfig,\n selectInputMode,\n selectLocale,\n useTranslate,\n useTypedSelector,\n} from 'state';\n\nimport { Tile } from '../../../Tile';\n\nimport styles from './RackTile.module.scss';\n\ninterface Props {\n activeIndexRef: RefObject<number | undefined>;\n character: string | null;\n className?: string;\n index: number;\n inputRef: RefObject<HTMLInputElement | null>;\n size: number;\n tile: TileModel | null;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onKeyDown: KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n}\n\nexport const RackTile: FunctionComponent<Props> = ({\n activeIndexRef,\n character,\n className,\n index,\n inputRef,\n size,\n tile,\n onChange,\n onKeyDown,\n onFocus,\n}) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const config = useTypedSelector(selectConfig);\n const inputMode = useTypedSelector(selectInputMode);\n const points = useTypedSelector((state) => selectCharacterPoints(state, character));\n const isValid = useTypedSelector((state) => selectCharacterIsValid(state, character));\n\n const handleFocus: FocusEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n if (inputMode === 'touchscreen') {\n event.preventDefault();\n event.target.blur();\n onFocus();\n }\n\n activeIndexRef.current = index;\n },\n [activeIndexRef, index, inputMode, onFocus],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const value = extractInputValue(event.target);\n const characters = value ? extractCharacters(config, value) : [null];\n dispatch(rackSlice.actions.changeCharacters({ characters, index }));\n onChange(event);\n },\n [config, dispatch, index, onChange],\n );\n\n const handleKeyDown = useMemo(() => {\n return createKeyboardNavigation({\n onBackspace: (event) => {\n event.preventDefault();\n dispatch(rackSlice.actions.changeCharacter({ character: null, index }));\n },\n onKeyDown: (event) => {\n if (isCtrl(event) && config.isTwoCharacterTilePrefix(event.key)) {\n event.preventDefault();\n event.stopPropagation();\n const twoTilesCharacter = config.getTwoCharacterTileByPrefix(event.key);\n\n if (twoTilesCharacter) {\n dispatch(rackSlice.actions.changeCharacter({ character: twoTilesCharacter, index }));\n }\n }\n\n onKeyDown(event);\n },\n });\n }, [config, dispatch, index, onKeyDown]);\n\n const handleMouseDown: MouseEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n if (inputMode === 'touchscreen') {\n event.preventDefault();\n }\n\n onFocus();\n },\n [inputMode, onFocus],\n );\n\n const handleTouchStart: TouchEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n if (inputMode === 'touchscreen') {\n event.preventDefault();\n }\n\n onFocus();\n },\n [inputMode, onFocus],\n );\n\n return (\n <Tile\n aria-label={translate('rack.tile.location', {\n index: (index + 1).toLocaleString(locale),\n })}\n autoFocus={inputMode === 'keyboard' && index === 0}\n className={classNames(styles.rackTile, className)}\n character={character === null ? undefined : character}\n highlighted={tile !== null}\n inputRef={inputRef}\n isBlank={character === BLANK}\n isValid={isValid}\n key={index}\n placeholder={translate('rack.placeholder')[index]}\n points={points}\n raised\n size={size}\n tabIndex={index === 0 ? undefined : -1}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onMouseDown={handleMouseDown}\n onTouchStart={handleTouchStart}\n />\n );\n};\n","export { RackTile } from './RackTile';\n","export { InputPrompt } from './InputPrompt';\nexport { RackTile } from './RackTile';\n","__turbopack_context__.v({\n \"hidden\": \"Rack-module-scss-module__zSgJvG__hidden\",\n \"rack\": \"Rack-module-scss-module__zSgJvG__rack\",\n \"sharpLeft\": \"Rack-module-scss-module__zSgJvG__sharpLeft\",\n \"sharpRight\": \"Rack-module-scss-module__zSgJvG__sharpRight\",\n \"tile\": \"Rack-module-scss-module__zSgJvG__tile\",\n});\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { zipCharactersAndTiles } from 'lib';\nimport { selectRack, selectResultCandidateTiles } from 'state';\n\nexport const selectRemainingTilesGroups = createSelector(\n [selectRack, selectResultCandidateTiles],\n zipCharactersAndTiles,\n);\n","/* eslint-disable max-lines, max-statements */\n\nimport { FloatingPortal, autoUpdate, useFloating } from '@floating-ui/react';\nimport classNames from 'classnames';\nimport {\n type ChangeEvent,\n type ClipboardEvent,\n type FunctionComponent,\n type RefObject,\n createRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport useOnclickOutside from 'react-cool-onclickoutside';\nimport { useDispatch } from 'react-redux';\n\nimport { useAppLayout } from 'hooks';\nimport { LOCALE_FEATURES } from 'i18n';\nimport { createKeyboardNavigation, extractCharacters, extractInputValue, getTileSizes, isCtrl } from 'lib';\nimport { rackSlice, selectConfig, selectInputMode, selectLocale, selectRack, useTypedSelector } from 'state';\n\nimport { InputPrompt, RackTile } from './components';\nimport styles from './Rack.module.scss';\nimport { selectRemainingTilesGroups } from './selectors';\n\ninterface Props {\n className?: string;\n tileSize: number;\n}\n\nexport const Rack: FunctionComponent<Props> = ({ className, tileSize }) => {\n const dispatch = useDispatch();\n const { rackHeight } = useAppLayout();\n const config = useTypedSelector(selectConfig);\n const locale = useTypedSelector(selectLocale);\n const rack = useTypedSelector(selectRack);\n const inputMode = useTypedSelector(selectInputMode);\n const tiles = useTypedSelector(selectRemainingTilesGroups);\n const tilesCount = tiles.length;\n const tilesRefs = useMemo(\n () => Array.from({ length: tilesCount }).map(() => createRef<HTMLInputElement | null>()),\n [tilesCount],\n );\n const activeIndexRef = useRef<number | undefined>(undefined);\n const [hasFocus, setHasFocus] = useState(false);\n const [input, setInput] = useState('');\n const { direction } = LOCALE_FEATURES[locale];\n const { tileFontSize } = getTileSizes(tileSize);\n const showInputPrompt = inputMode === 'touchscreen' && hasFocus;\n const ref = useRef<HTMLDivElement>(null);\n\n const floatingInputPrompt = useFloating({\n placement: 'bottom-start',\n whileElementsMounted: autoUpdate,\n });\n\n useOnclickOutside(() => setHasFocus(false), {\n ignoreClass: [InputPrompt.styles.form, InputPrompt.styles.input],\n refs: ref.current ? [ref as RefObject<HTMLDivElement>] : [],\n });\n\n const changeActiveIndex = useCallback(\n (offset: number) => {\n const nextActiveIndex = Math.min(Math.max((activeIndexRef.current || 0) + offset, 0), tilesCount - 1);\n const tileRef = tilesRefs[nextActiveIndex].current;\n\n if (tileRef) {\n tileRef.focus();\n }\n\n activeIndexRef.current = nextActiveIndex;\n },\n [activeIndexRef, tilesCount, tilesRefs],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const value = extractInputValue(event.target);\n const characters = value ? extractCharacters(config, value) : [];\n changeActiveIndex(value ? characters.length : -1);\n },\n [changeActiveIndex, config],\n );\n\n const handlePaste = useCallback(\n (event: ClipboardEvent<HTMLInputElement>) => {\n const index = activeIndexRef.current;\n\n if (typeof index === 'undefined') {\n return;\n }\n\n event.preventDefault();\n const value = event.clipboardData.getData('text/plain').toLocaleLowerCase();\n const characters = value ? extractCharacters(config, value) : [];\n changeActiveIndex(value ? characters.length : -1);\n dispatch(rackSlice.actions.changeCharacters({ characters, index }));\n },\n [changeActiveIndex, config, dispatch],\n );\n\n const handleFocus = useCallback(() => {\n setHasFocus(true);\n floatingInputPrompt.refs.setPositionReference(ref.current);\n const characters = rack.filter((character) => character !== null);\n const uppercasedDigraphs = characters.map((character) => {\n return character.length > 1 ? character.toLocaleUpperCase(locale) : character;\n });\n setInput(uppercasedDigraphs.join(''));\n }, [floatingInputPrompt.refs, locale, rack, ref]);\n\n const handleKeyDown = useMemo(() => {\n return createKeyboardNavigation({\n onArrowLeft: (event) => {\n event.preventDefault();\n changeActiveIndex(direction === 'ltr' ? -1 : 1);\n },\n onArrowRight: (event) => {\n event.preventDefault();\n changeActiveIndex(direction === 'ltr' ? 1 : -1);\n },\n onBackspace: (event) => {\n event.preventDefault();\n changeActiveIndex(-1);\n },\n onDelete: (event) => {\n const index = activeIndexRef.current;\n\n if (typeof index === 'undefined') {\n return;\n }\n\n event.preventDefault();\n dispatch(rackSlice.actions.changeCharacters({ characters: [null], index }));\n changeActiveIndex(1);\n },\n onKeyDown: (event) => {\n if (isCtrl(event) && config.isTwoCharacterTilePrefix(event.key)) {\n changeActiveIndex(1);\n } else if (event.currentTarget.value === event.key) {\n // change event did not fire because the same character was typed over the current one\n // but we still want to move the caret\n event.preventDefault();\n event.stopPropagation();\n changeActiveIndex(1);\n }\n },\n });\n }, [changeActiveIndex, config, direction, dispatch]);\n\n return (\n <>\n <div\n className={classNames(styles.rack, className, {\n [styles.hidden]: showInputPrompt,\n })}\n data-testid=\"rack\"\n ref={ref}\n style={{ fontSize: tileFontSize }}\n onPaste={handlePaste}\n >\n {tiles.map(({ character, tile }, index) => (\n <RackTile\n activeIndexRef={activeIndexRef}\n character={character}\n className={classNames(styles.tile, {\n [styles.sharpLeft]: index !== 0,\n [styles.sharpRight]: index !== tiles.length - 1,\n })}\n index={index}\n inputRef={tilesRefs[index]}\n key={index}\n size={tileSize}\n tile={tile}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n />\n ))}\n </div>\n\n {showInputPrompt && (\n <FloatingPortal>\n <InputPrompt\n ref={floatingInputPrompt.refs.setFloating}\n style={{\n position: floatingInputPrompt.strategy,\n top: floatingInputPrompt.y ? floatingInputPrompt.y - rackHeight : 0,\n left: floatingInputPrompt.x ?? 0,\n }}\n value={input}\n onBlur={() => setHasFocus(false)}\n onChange={(event) => setInput(event.target.value)}\n onSubmit={() => setHasFocus(false)}\n />\n </FloatingPortal>\n )}\n </>\n );\n};\n","export { Rack } from './Rack';\n","__turbopack_context__.v({\n \"checked\": \"Radio-module-scss-module__mPYBZG__checked\",\n \"content\": \"Radio-module-scss-module__mPYBZG__content\",\n \"disabled\": \"Radio-module-scss-module__mPYBZG__disabled\",\n \"icon\": \"Radio-module-scss-module__mPYBZG__icon\",\n \"iconContent\": \"Radio-module-scss-module__mPYBZG__iconContent\",\n \"input\": \"Radio-module-scss-module__mPYBZG__input\",\n \"radio\": \"Radio-module-scss-module__mPYBZG__radio\",\n});\n","import classNames from 'classnames';\nimport { type ChangeEventHandler, type FunctionComponent, type ReactNode } from 'react';\n\nimport styles from './Radio.module.scss';\n\ninterface Props {\n checked: boolean;\n children?: ReactNode;\n className?: string;\n disabled?: boolean;\n name: string;\n value: string;\n onChange: ChangeEventHandler<HTMLInputElement>;\n}\n\nexport const Radio: FunctionComponent<Props> = ({ checked, children, className, disabled, name, value, onChange }) => (\n <label\n className={classNames(styles.radio, className, {\n [styles.checked]: checked,\n [styles.disabled]: disabled,\n })}\n >\n <input\n checked={checked}\n className={styles.input}\n disabled={disabled}\n name={name}\n type=\"radio\"\n value={value}\n onChange={onChange}\n />\n\n <div aria-hidden=\"true\" className={styles.icon} role=\"img\">\n <div className={styles.iconContent} />\n </div>\n\n <div className={styles.content}>{children}</div>\n </label>\n);\n","export { Radio } from './Radio';\n","__turbopack_context__.v({\n \"input\": \"ResultsInput-module-scss-module__5ezZzG__input\",\n \"resultsInput\": \"ResultsInput-module-scss-module__5ezZzG__resultsInput\",\n});\n","import classNames from 'classnames';\nimport { type ChangeEvent, type FormEventHandler, type FunctionComponent, useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { isRegExp } from 'lib';\nimport { resultsSlice, selectResultsQuery, useTranslate, useTypedSelector } from 'state';\n\nimport styles from './ResultsInput.module.scss';\n\ninterface Props {\n className?: string;\n}\n\nexport const ResultsInput: FunctionComponent<Props> = ({ className }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const value = useTypedSelector(selectResultsQuery);\n const [localValue, setLocalValue] = useState(value);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value;\n\n setLocalValue(newValue);\n\n if (isRegExp(newValue)) {\n dispatch(resultsSlice.actions.changeQuery(newValue));\n }\n };\n\n const handleSubmit: FormEventHandler = (event) => {\n event.preventDefault();\n };\n\n return (\n <form className={classNames(styles.resultsInput, className)} onSubmit={handleSubmit}>\n <input\n className={styles.input}\n placeholder={translate('results.input.placeholder')}\n type=\"text\"\n value={localValue}\n onChange={handleChange}\n />\n </form>\n );\n};\n","export { ResultsInput } from './ResultsInput';\n","__turbopack_context__.v({\n \"cell\": \"Results-module-scss-module__PzfRcq__cell\",\n \"content\": \"Results-module-scss-module__PzfRcq__content\",\n \"coordinates\": \"Results-module-scss-module__PzfRcq__coordinates\",\n \"emptyState\": \"Results-module-scss-module__PzfRcq__emptyState\",\n \"header\": \"Results-module-scss-module__PzfRcq__header\",\n \"headerButton\": \"Results-module-scss-module__PzfRcq__headerButton\",\n \"headerButtonIcon\": \"Results-module-scss-module__PzfRcq__headerButtonIcon\",\n \"headerButtonLabel\": \"Results-module-scss-module__PzfRcq__headerButtonLabel\",\n \"highlight\": \"Results-module-scss-module__PzfRcq__highlight\",\n \"highlighted\": \"Results-module-scss-module__PzfRcq__highlighted\",\n \"input\": \"Results-module-scss-module__PzfRcq__input\",\n \"list\": \"Results-module-scss-module__PzfRcq__list\",\n \"listContainer\": \"Results-module-scss-module__PzfRcq__listContainer\",\n \"outdated\": \"Results-module-scss-module__PzfRcq__outdated\",\n \"points\": \"Results-module-scss-module__PzfRcq__points\",\n \"result\": \"Results-module-scss-module__PzfRcq__result\",\n \"resultContent\": \"Results-module-scss-module__PzfRcq__resultContent\",\n \"results\": \"Results-module-scss-module__PzfRcq__results\",\n \"solveButton\": \"Results-module-scss-module__PzfRcq__solveButton\",\n \"sortIcon\": \"Results-module-scss-module__PzfRcq__sortIcon\",\n \"stat\": \"Results-module-scss-module__PzfRcq__stat\",\n \"word\": \"Results-module-scss-module__PzfRcq__word\",\n});\n","import classNames from 'classnames';\nimport { type CSSProperties, type FunctionComponent, type ReactElement, type SVGAttributes, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { SortDown, SortUp } from 'icons';\nimport { resultsSlice, selectResultsSort, useTranslate, useTypedSelector } from 'state';\nimport { type ResultColumnId, SortDirection, type TranslationKey } from 'types';\n\nimport { Tooltip } from '../Tooltip';\n\nimport styles from './Results.module.scss';\n\ninterface Props {\n className: string;\n Icon?: FunctionComponent<SVGAttributes<SVGElement>>;\n id: ResultColumnId;\n translationKey: TranslationKey;\n style?: CSSProperties;\n}\n\nexport const HeaderButton = ({ className, Icon, id, translationKey, style }: Props): ReactElement => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const sort = useTypedSelector(selectResultsSort);\n\n const handleClick = useCallback(() => {\n dispatch(resultsSlice.actions.sort(id));\n }, [dispatch, id]);\n\n return (\n <Tooltip tooltip={translate(translationKey)}>\n <button\n aria-label={translate(translationKey)}\n className={classNames(styles.headerButton, className)}\n style={style}\n type=\"button\"\n onClick={handleClick}\n >\n <span className={styles.cell}>\n {Icon && <Icon aria-hidden=\"true\" className={styles.headerButtonIcon} role=\"img\" />}\n\n {!Icon && <span className={styles.headerButtonLabel}>{translate(translationKey)}</span>}\n\n {sort.column === id && (\n <>\n {sort.direction === SortDirection.Ascending && <SortUp className={styles.sortIcon} />}\n {sort.direction === SortDirection.Descending && <SortDown className={styles.sortIcon} />}\n </>\n )}\n </span>\n </button>\n </Tooltip>\n );\n};\n","import { type FunctionComponent } from 'react';\n\nimport { useAppLayout, useColumns } from 'hooks';\nimport { GeoAlt, OneTwoThree, Square, SquareA, SquareB, Squares, Words } from 'icons';\nimport { RESULTS_COLUMN_WIDTH } from 'parameters';\nimport { ResultColumnId } from 'types';\n\nimport { HeaderButton } from './HeaderButton';\nimport styles from './Results.module.scss';\n\nexport const Header: FunctionComponent = () => {\n const { resultWordWidth } = useAppLayout();\n const columns = useColumns();\n\n return (\n <div className={styles.header}>\n {columns[ResultColumnId.Coordinates] && (\n <HeaderButton\n className={styles.coordinates}\n Icon={GeoAlt}\n id={ResultColumnId.Coordinates}\n style={{ flexBasis: RESULTS_COLUMN_WIDTH[ResultColumnId.Coordinates] }}\n translationKey=\"settings.showCoordinates\"\n />\n )}\n\n {columns[ResultColumnId.Word] && (\n <HeaderButton\n className={styles.word}\n id={ResultColumnId.Word}\n style={{ flexBasis: resultWordWidth }}\n translationKey=\"common.word\"\n />\n )}\n\n {columns[ResultColumnId.TilesCount] && (\n <HeaderButton\n className={styles.stat}\n Icon={Squares}\n id={ResultColumnId.TilesCount}\n style={{ flexBasis: RESULTS_COLUMN_WIDTH[ResultColumnId.TilesCount] }}\n translationKey=\"common.tiles\"\n />\n )}\n\n {columns[ResultColumnId.VowelsCount] && (\n <HeaderButton\n className={styles.stat}\n Icon={SquareA}\n id={ResultColumnId.VowelsCount}\n style={{ flexBasis: RESULTS_COLUMN_WIDTH[ResultColumnId.VowelsCount] }}\n translationKey=\"common.vowels\"\n />\n )}\n\n {columns[ResultColumnId.ConsonantsCount] && (\n <HeaderButton\n className={styles.stat}\n Icon={SquareB}\n id={ResultColumnId.ConsonantsCount}\n style={{ flexBasis: RESULTS_COLUMN_WIDTH[ResultColumnId.ConsonantsCount] }}\n translationKey=\"common.consonants\"\n />\n )}\n\n {columns[ResultColumnId.BlanksCount] && (\n <HeaderButton\n className={styles.stat}\n Icon={Square}\n id={ResultColumnId.BlanksCount}\n style={{ flexBasis: RESULTS_COLUMN_WIDTH[ResultColumnId.BlanksCount] }}\n translationKey=\"common.blanks\"\n />\n )}\n\n {columns[ResultColumnId.WordsCount] && (\n <HeaderButton\n className={styles.stat}\n Icon={Words}\n id={ResultColumnId.WordsCount}\n style={{ flexBasis: RESULTS_COLUMN_WIDTH[ResultColumnId.WordsCount] }}\n translationKey=\"common.words\"\n />\n )}\n\n {columns[ResultColumnId.Points] && (\n <HeaderButton\n className={styles.points}\n Icon={OneTwoThree}\n id={ResultColumnId.Points}\n style={{ flexBasis: RESULTS_COLUMN_WIDTH[ResultColumnId.Points] }}\n translationKey=\"common.points\"\n />\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport { type CSSProperties, type FunctionComponent, type ReactNode } from 'react';\n\nimport { selectLocale, useTranslate, useTypedSelector } from 'state';\nimport { type TranslationKey } from 'types';\n\nimport { Tooltip } from '../Tooltip';\n\nimport styles from './Results.module.scss';\n\ninterface Props {\n children?: ReactNode;\n className?: string;\n dataTestId?: string;\n style?: CSSProperties;\n translationKey: TranslationKey;\n tooltip?: string | number;\n value: string | number;\n}\n\nexport const Cell: FunctionComponent<Props> = ({\n children,\n className,\n dataTestId,\n style,\n translationKey,\n tooltip,\n value,\n}) => {\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const formattedValue = value.toLocaleString(locale);\n\n return (\n <Tooltip tooltip={`${translate(translationKey)}: ${tooltip || formattedValue}`}>\n <div className={classNames(styles.cell, className)} data-testid={dataTestId} style={style}>\n {children || formattedValue}\n </div>\n </Tooltip>\n );\n};\n","import classNames from 'classnames';\nimport { type FocusEventHandler, type MouseEventHandler, type ReactElement, useRef } from 'react';\nimport Highlighter from 'react-highlight-words';\nimport { type RowComponentProps } from 'react-window';\n\nimport { useAppLayout, useColumns } from 'hooks';\nimport { LOCALE_FEATURES } from 'i18n';\nimport { noop } from 'lib';\nimport {\n selectIsResultMatching,\n selectLocale,\n selectResultCoordinates,\n selectResultsQuery,\n useTypedSelector,\n} from 'state';\nimport { ResultColumnId } from 'types';\n\nimport { Cell } from './Cell';\nimport styles from './Results.module.scss';\nimport { type ResultData } from './types';\n\nexport const Result = ({\n index,\n highlightedIndex,\n results = [],\n onBlur = noop,\n onClick = noop,\n onFocus = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n style,\n}: RowComponentProps<ResultData>): ReactElement => {\n const { resultWordWidth } = useAppLayout();\n const ref = useRef<HTMLButtonElement>(null);\n const columns = useColumns();\n const locale = useTypedSelector(selectLocale);\n const query = useTypedSelector(selectResultsQuery);\n const { direction, separator } = LOCALE_FEATURES[locale];\n const result = results[index];\n const isMatching = useTypedSelector((state) => selectIsResultMatching(state, index));\n const words = direction === 'rtl' ? [...result.words].reverse() : result.words;\n const coordinates = useTypedSelector((state) => selectResultCoordinates(state, index));\n\n const handleClick: MouseEventHandler = (event) => onClick(result, event);\n const handleMouseEnter: MouseEventHandler = (event) => onMouseEnter(result, event);\n const handleMouseLeave: MouseEventHandler = (event) => onMouseLeave(result, event);\n const handleBlur: FocusEventHandler = (event) => onBlur(result, event);\n const handleFocus: FocusEventHandler = (event) => onFocus(result, event);\n\n return (\n <button\n aria-hidden={isMatching ? undefined : 'true'}\n aria-label={result.word}\n className={classNames(styles.result, {\n [styles.highlighted]: index === highlightedIndex,\n [styles.notMatching]: !isMatching,\n })}\n data-testid=\"result\"\n ref={ref}\n style={style}\n type=\"button\"\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <span className={styles.resultContent}>\n {columns[ResultColumnId.Coordinates] && (\n <Cell className={styles.coordinates} translationKey=\"settings.showCoordinates\" value={coordinates} />\n )}\n\n {columns[ResultColumnId.Word] && (\n <Cell\n className={styles.word}\n style={{ flexBasis: resultWordWidth }}\n translationKey=\"common.word\"\n value={result.word}\n >\n <Highlighter highlightClassName={styles.highlight} searchWords={[query]} textToHighlight={result.word} />\n </Cell>\n )}\n\n {columns[ResultColumnId.TilesCount] && (\n <Cell className={styles.stat} translationKey=\"common.tiles\" value={result.tilesCount} />\n )}\n\n {columns[ResultColumnId.VowelsCount] && (\n <Cell className={styles.stat} translationKey=\"common.vowels\" value={result.vowelsCount} />\n )}\n\n {columns[ResultColumnId.ConsonantsCount] && (\n <Cell className={styles.stat} translationKey=\"common.consonants\" value={result.consonantsCount} />\n )}\n\n {columns[ResultColumnId.BlanksCount] && (\n <Cell className={styles.stat} translationKey=\"common.blanks\" value={result.blanksCount} />\n )}\n\n {columns[ResultColumnId.WordsCount] && (\n <Cell\n className={styles.stat}\n translationKey=\"common.words\"\n tooltip={`${result.wordsCount.toLocaleString(locale)} (${words.join(separator)})`}\n value={result.wordsCount}\n />\n )}\n\n {columns[ResultColumnId.Points] && (\n <Cell className={styles.points} dataTestId=\"points\" translationKey=\"common.points\" value={result.points} />\n )}\n </span>\n </button>\n );\n};\n","import { type FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Search } from 'icons';\nimport {\n selectAreResultsOutdated,\n selectSolveIsLoading,\n selectRack,\n solveSlice,\n useTranslate,\n useTypedSelector,\n} from 'state';\n\nimport { Button } from '../Button';\n\ninterface Props {\n className?: string;\n}\n\nexport const SolveButton: FunctionComponent<Props> = ({ className }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const isLoading = useTypedSelector(selectSolveIsLoading);\n const rack = useTypedSelector(selectRack);\n const isOutdated = useTypedSelector(selectAreResultsOutdated);\n const hasTiles = rack.some((tile) => tile !== null);\n\n const handleClick = () => {\n dispatch(solveSlice.actions.submit());\n };\n\n return (\n <Button\n aria-label={translate('results.solve')}\n className={className}\n disabled={isLoading || !isOutdated || !hasTiles}\n Icon={Search}\n type=\"submit\"\n variant=\"primary\"\n onClick={handleClick}\n >\n {translate('results.solve')}\n </Button>\n );\n};\n","import classNames from 'classnames';\nimport { useEffect, useMemo, type FunctionComponent } from 'react';\nimport { List, useListRef } from 'react-window';\nimport { useDebounce } from 'use-debounce';\n\nimport { useLatest } from 'hooks';\nimport { LOCALE_FEATURES } from 'i18n';\nimport { RESULTS_ITEM_HEIGHT } from 'parameters';\nimport {\n selectAreResultsOutdated,\n selectLocale,\n selectProcessedResults,\n selectSolveError,\n selectSolveIsLoading,\n useTranslate,\n useTypedSelector,\n} from 'state';\n\nimport { EmptyState } from '../EmptyState';\nimport { Loading } from '../Loading';\nimport { ResultsInput } from '../ResultsInput';\n\nimport { Header } from './Header';\nimport { Result } from './Result';\nimport styles from './Results.module.scss';\nimport { SolveButton } from './SolveButton';\nimport { type ResultCallbacks, type ResultData } from './types';\n\ninterface Props {\n callbacks: ResultCallbacks;\n className?: string;\n highlightedIndex?: number;\n}\n\nconst IS_LOADING_DEBOUNCE = 100;\n\nexport const Results: FunctionComponent<Props> = ({ callbacks, className, highlightedIndex }) => {\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const { direction } = LOCALE_FEATURES[locale];\n const results = useTypedSelector(selectProcessedResults);\n const isLoading = useTypedSelector(selectSolveIsLoading);\n const [isLoadingDebounced] = useDebounce(isLoading, IS_LOADING_DEBOUNCE);\n const isOutdated = useTypedSelector(selectAreResultsOutdated);\n const error = useTypedSelector(selectSolveError);\n const itemData = useMemo<ResultData>(\n () => ({ ...callbacks, highlightedIndex, results }),\n [callbacks, highlightedIndex, results],\n );\n const listRef = useListRef(null);\n const scrollToIndex = typeof highlightedIndex === 'number' ? highlightedIndex : 0;\n const scrollToIndexRef = useLatest(scrollToIndex);\n const hasResults = typeof error === 'undefined' && typeof results !== 'undefined';\n const showInput = hasResults && results.length > 0 && !isOutdated;\n\n useEffect(() => {\n // without setTimeout, the initial scrolling offset is calculated\n // incorrectly, as the list is not fully rendered by the browser yet\n const timeout = globalThis.setTimeout(() => {\n listRef.current?.scrollToRow({\n align: 'center',\n behavior: 'instant',\n index: scrollToIndexRef.current,\n });\n }, 0);\n\n return () => {\n globalThis.clearTimeout(timeout);\n };\n }, [results, listRef, scrollToIndexRef]);\n\n return (\n <div className={classNames(styles.results, className)} data-testid=\"results\">\n <Header />\n\n <div className={styles.content}>\n {typeof error !== 'undefined' && (\n <EmptyState className={styles.emptyState} variant=\"error\">\n {error.message}\n </EmptyState>\n )}\n\n {typeof error === 'undefined' && typeof results === 'undefined' && (\n <EmptyState className={styles.emptyState} variant=\"info\">\n {translate('results.empty-state.uninitialized')}\n\n <SolveButton className={styles.solveButton} />\n </EmptyState>\n )}\n\n {hasResults && (\n <>\n {isOutdated && (\n <EmptyState className={styles.emptyState} variant=\"info\">\n {translate('results.empty-state.outdated')}\n\n <SolveButton className={styles.solveButton} />\n </EmptyState>\n )}\n\n {!isOutdated && results.length === 0 && (\n <EmptyState className={styles.emptyState} variant=\"warning\">\n {translate('results.empty-state.no-results')}\n </EmptyState>\n )}\n\n {!isOutdated && results.length > 0 && (\n <div className={styles.listContainer}>\n <List\n className={classNames(styles.list, {\n [styles.outdated]: isOutdated,\n })}\n dir={direction}\n listRef={listRef}\n rowComponent={Result}\n rowCount={results.length}\n rowHeight={RESULTS_ITEM_HEIGHT}\n rowProps={itemData}\n />\n </div>\n )}\n </>\n )}\n </div>\n\n {showInput && <ResultsInput className={styles.input} />}\n\n {isLoadingDebounced && <Loading />}\n </div>\n );\n};\n","export { Results } from './Results';\n","import { type CSSProperties, type FunctionComponent } from 'react';\n\nconst INVISIBLE_STYLE: CSSProperties = {\n color: 'transparent',\n pointerEvents: 'none',\n position: 'absolute',\n userSelect: 'none',\n transform: 'translateY(-9999px)',\n};\n\nexport const SeoMessage: FunctionComponent = () => (\n <p style={INVISIBLE_STYLE}>\n Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter\n League, Literaki, and Kelimelik. Quickly find top scoring words using given letters and board state. Available in\n English, French, German, Persian, Polish, Romanian, Spanish, and Turkish. Source code is available on GitHub -\n contributions are welcome!\n </p>\n);\n","export { SeoMessage } from './SeoMessage';\n","__turbopack_context__.v({\n \"icon\": \"InsertButton-module-scss-module__BbvdGW__icon\",\n \"insertButton\": \"InsertButton-module-scss-module__BbvdGW__insertButton\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Check } from 'icons';\nimport { resultsSlice, selectAreResultsOutdated, selectResultCandidate, useTranslate, useTypedSelector } from 'state';\n\nimport { Button } from '../../../Button';\n\nimport styles from './InsertButton.module.scss';\n\ninterface Props {\n className?: string;\n}\n\nexport const InsertButton: FunctionComponent<Props> = ({ className }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const resultCandidate = useTypedSelector(selectResultCandidate);\n const isOutdated = useTypedSelector(selectAreResultsOutdated);\n\n const handleClick = () => {\n if (resultCandidate) {\n dispatch(resultsSlice.actions.applyResult(resultCandidate));\n }\n };\n\n return (\n <Button\n aria-label={translate('results.insert')}\n className={classNames(styles.insertButton, className)}\n disabled={isOutdated || !resultCandidate}\n Icon={Check}\n iconClassName={styles.icon}\n type=\"submit\"\n variant=\"primary\"\n onClick={handleClick}\n />\n );\n};\n","export { InsertButton } from './InsertButton';\n","__turbopack_context__.v({\n \"hide\": \"Spinner-module-scss-module__EdRaRa__hide\",\n \"rotate\": \"Spinner-module-scss-module__EdRaRa__rotate\",\n \"show\": \"Spinner-module-scss-module__EdRaRa__show\",\n \"spinner\": \"Spinner-module-scss-module__EdRaRa__spinner\",\n \"wave\": \"Spinner-module-scss-module__EdRaRa__wave\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent } from 'react';\n\nimport { useTranslate } from 'state';\n\nimport styles from './Spinner.module.scss';\n\ninterface Props {\n className?: string;\n}\n\nexport const Spinner: FunctionComponent<Props> = ({ className }) => {\n const translate = useTranslate();\n const translation = translate('common.loading');\n\n return <div aria-label={translation} className={classNames(styles.spinner, className)} role=\"status\" />;\n};\n","export { Spinner } from './Spinner';\n","__turbopack_context__.v({\n \"bothEnabled\": \"ResultCandidatePicker-module-scss-module__GLW1_a__bothEnabled\",\n \"button\": \"ResultCandidatePicker-module-scss-module__GLW1_a__button\",\n \"buttons\": \"ResultCandidatePicker-module-scss-module__GLW1_a__buttons\",\n \"content\": \"ResultCandidatePicker-module-scss-module__GLW1_a__content\",\n \"icon\": \"ResultCandidatePicker-module-scss-module__GLW1_a__icon\",\n \"iconContainer\": \"ResultCandidatePicker-module-scss-module__GLW1_a__iconContainer\",\n \"insert\": \"ResultCandidatePicker-module-scss-module__GLW1_a__insert\",\n \"loading\": \"ResultCandidatePicker-module-scss-module__GLW1_a__loading\",\n \"points\": \"ResultCandidatePicker-module-scss-module__GLW1_a__points\",\n \"resultCandidate\": \"ResultCandidatePicker-module-scss-module__GLW1_a__resultCandidate\",\n \"resultCandidatePicker\": \"ResultCandidatePicker-module-scss-module__GLW1_a__resultCandidatePicker\",\n \"spinnerContainer\": \"ResultCandidatePicker-module-scss-module__GLW1_a__spinnerContainer\",\n \"word\": \"ResultCandidatePicker-module-scss-module__GLW1_a__word\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent, type HTMLProps, type MouseEventHandler } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { ChevronDown, ChevronLeft, ChevronRight } from 'icons';\nimport {\n resultsSlice,\n selectAreResultsOutdated,\n selectSolveIsLoading,\n selectLocale,\n selectProcessedResults,\n selectResultCandidate,\n useTranslate,\n useTypedSelector,\n} from 'state';\n\nimport { Button } from '../../../Button';\nimport { Spinner } from '../../../Spinner';\nimport { InsertButton } from '../InsertButton';\n\nimport styles from './ResultCandidatePicker.module.scss';\n\ninterface Props extends HTMLProps<HTMLDivElement> {\n onResultClick: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const ResultCandidatePicker: FunctionComponent<Props> = ({ className, onResultClick, ...props }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const locale = useTypedSelector(selectLocale);\n const isLoading = useTypedSelector(selectSolveIsLoading);\n const isOutdated = useTypedSelector(selectAreResultsOutdated);\n const results = useTypedSelector(selectProcessedResults);\n const resultCandidate = useTypedSelector(selectResultCandidate);\n const index = resultCandidate && results ? results.findIndex((result) => result.id === resultCandidate.id) : -1;\n const disabled = isOutdated || !resultCandidate;\n const isPreviousDisabled = !results || index <= 0 || disabled;\n const isNextDisabled = !results || index >= results.length - 1 || disabled;\n const bothEnabled = !isPreviousDisabled && !isNextDisabled;\n\n const handleNextClick = () => {\n if (!isNextDisabled) {\n const nextResult = results[index + 1];\n dispatch(resultsSlice.actions.changeResultCandidate(nextResult));\n }\n };\n\n const handlePreviousClick = () => {\n if (!isPreviousDisabled) {\n const previousResult = results[index - 1];\n dispatch(resultsSlice.actions.changeResultCandidate(previousResult));\n }\n };\n\n return (\n <div className={classNames(styles.resultCandidatePicker, className)} {...props}>\n <div className={classNames(styles.buttons, { [styles.bothEnabled]: bothEnabled })}>\n <Button\n aria-label={translate('common.previous')}\n className={styles.button}\n disabled={isPreviousDisabled}\n Icon={ChevronLeft}\n onClick={handlePreviousClick}\n />\n\n <Button\n aria-label={translate('common.next')}\n className={styles.button}\n disabled={isNextDisabled}\n Icon={ChevronRight}\n onClick={handleNextClick}\n />\n </div>\n\n <button\n aria-label={translate('results')}\n className={styles.resultCandidate}\n disabled={disabled}\n type=\"button\"\n onClick={onResultClick}\n >\n {resultCandidate && (\n <>\n <div className={styles.points}>{resultCandidate.points.toLocaleString(locale)}</div>\n <div className={styles.word}>{resultCandidate.word}</div>\n </>\n )}\n\n {!resultCandidate && <div className={styles.word}> </div>}\n\n <div className={styles.iconContainer}>\n {isLoading && <Spinner className={styles.loading} />}\n {!isLoading && <ChevronDown aria-hidden=\"true\" className={styles.icon} role=\"img\" />}\n </div>\n </button>\n\n <InsertButton className={styles.insert} />\n </div>\n );\n};\n","export { ResultCandidatePicker } from './ResultCandidatePicker';\n","export { InsertButton } from './InsertButton';\nexport { ResultCandidatePicker } from './ResultCandidatePicker';\n","__turbopack_context__.v({\n \"board\": \"Solver-module-scss-module__XToFFW__board\",\n \"boardContainer\": \"Solver-module-scss-module__XToFFW__boardContainer\",\n \"bottomContainer\": \"Solver-module-scss-module__XToFFW__bottomContainer\",\n \"bottomContent\": \"Solver-module-scss-module__XToFFW__bottomContent\",\n \"column\": \"Solver-module-scss-module__XToFFW__column\",\n \"container\": \"Solver-module-scss-module__XToFFW__container\",\n \"content\": \"Solver-module-scss-module__XToFFW__content\",\n \"controls\": \"Solver-module-scss-module__XToFFW__controls\",\n \"dictionary\": \"Solver-module-scss-module__XToFFW__dictionary\",\n \"dictionaryContainer\": \"Solver-module-scss-module__XToFFW__dictionaryContainer\",\n \"dictionaryInput\": \"Solver-module-scss-module__XToFFW__dictionaryInput\",\n \"emptyState\": \"Solver-module-scss-module__XToFFW__emptyState\",\n \"results\": \"Solver-module-scss-module__XToFFW__results\",\n \"solver\": \"Solver-module-scss-module__XToFFW__solver\",\n \"submitInput\": \"Solver-module-scss-module__XToFFW__submitInput\",\n});\n","import { type Result } from '@scrabble-solver/types';\nimport classNames from 'classnames';\nimport { type FunctionComponent, memo, type SyntheticEvent, useEffect, useMemo } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { useAppLayout, useIsTouchDevice } from 'hooks';\nimport {\n resultsSlice,\n selectAreResultsOutdated,\n selectProcessedResults,\n selectResultCandidate,\n selectSolveError,\n solveSlice,\n useTranslate,\n useTypedSelector,\n} from 'state';\n\nimport { Alert } from '../Alert';\nimport { Board } from '../Board';\nimport { Dictionary } from '../Dictionary';\nimport { DictionaryInput } from '../DictionaryInput';\nimport { Rack } from '../Rack';\nimport { Results } from '../Results';\n\nimport { ResultCandidatePicker } from './components';\nimport styles from './Solver.module.scss';\n\ninterface Props {\n className?: string;\n onShowResults: () => void;\n}\n\nconst SolverBase: FunctionComponent<Props> = ({ className, onShowResults }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const isTouchDevice = useIsTouchDevice();\n const { maxControlsWidth, showCompactControls, tileSize } = useAppLayout();\n const error = useTypedSelector(selectSolveError);\n const isOutdated = useTypedSelector(selectAreResultsOutdated);\n const resultCandidate = useTypedSelector(selectResultCandidate);\n const results = useTypedSelector(selectProcessedResults);\n const [bestResult] = results || [];\n const touchCallbacks = useMemo(\n () => ({\n onClick: (result: Result) => {\n const isSelected = result === resultCandidate;\n\n if (isSelected) {\n dispatch(resultsSlice.actions.applyResult(result));\n } else {\n dispatch(resultsSlice.actions.changeResultCandidate(result));\n }\n },\n }),\n [dispatch, resultCandidate],\n );\n const mouseCallbacks = useMemo(\n () => ({\n onBlur: () => {\n dispatch(resultsSlice.actions.changeResultCandidate(null));\n },\n onClick: (result: Result) => {\n dispatch(resultsSlice.actions.applyResult(result));\n },\n onFocus: (result: Result) => {\n dispatch(resultsSlice.actions.changeResultCandidate(result));\n },\n onMouseEnter: (result: Result) => {\n dispatch(resultsSlice.actions.changeResultCandidate(result));\n },\n onMouseLeave: () => {\n dispatch(resultsSlice.actions.changeResultCandidate(null));\n },\n }),\n [dispatch],\n );\n const callbacks = isTouchDevice ? touchCallbacks : mouseCallbacks;\n\n const handleSubmit = (event: SyntheticEvent) => {\n event.preventDefault();\n\n dispatch(solveSlice.actions.submit());\n };\n\n useEffect(() => {\n if (showCompactControls && bestResult && !isOutdated) {\n dispatch(resultsSlice.actions.changeResultCandidate(bestResult));\n }\n }, [bestResult, dispatch, showCompactControls, isOutdated]);\n\n return (\n <div className={classNames(styles.solver, className)}>\n <div className={styles.container}>\n <div className={styles.content}>\n <form className={styles.boardContainer} onSubmit={handleSubmit}>\n <Board className={styles.board} />\n <input className={styles.submitInput} tabIndex={-1} type=\"submit\" />\n </form>\n\n <div className={styles.column}>\n <Results callbacks={callbacks} className={styles.results} />\n\n <div data-testid=\"dictionary\" className={styles.dictionaryContainer}>\n <Dictionary className={styles.dictionary} />\n <DictionaryInput className={styles.dictionaryInput} />\n </div>\n </div>\n </div>\n </div>\n\n <div className={styles.bottomContainer}>\n <div className={styles.bottomContent}>\n <form onSubmit={handleSubmit}>\n <Rack className={styles.rack} tileSize={tileSize} />\n <input className={styles.submitInput} tabIndex={-1} type=\"submit\" />\n </form>\n\n {showCompactControls && (\n <div className={styles.controls} style={{ maxWidth: maxControlsWidth }}>\n <ResultCandidatePicker onResultClick={onShowResults} />\n\n {error && (\n <Alert className={styles.emptyState} variant=\"error\">\n {error.message}\n </Alert>\n )}\n\n {results && results.length === 0 && !isOutdated && (\n <Alert className={styles.emptyState} variant=\"warning\">\n {translate('results.empty-state.no-results')}\n </Alert>\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport const Solver = memo(SolverBase);\n","export { Solver } from './Solver';\n","__turbopack_context__.v({\n \"arrow\": \"Arrows-module-scss-module__Jj2CNG__arrow\",\n \"arrows\": \"Arrows-module-scss-module__Jj2CNG__arrows\",\n \"down\": \"Arrows-module-scss-module__Jj2CNG__down\",\n \"left\": \"Arrows-module-scss-module__Jj2CNG__left\",\n \"right\": \"Arrows-module-scss-module__Jj2CNG__right\",\n \"up\": \"Arrows-module-scss-module__Jj2CNG__up\",\n});\n","import classNames from 'classnames';\nimport { type FunctionComponent } from 'react';\n\nimport { ArrowDown, ArrowLeft, ArrowRight, ArrowUp } from 'icons';\n\nimport { Key } from '../../Key';\n\nimport styles from './Arrows.module.scss';\n\ninterface Props {\n className?: string;\n}\n\nexport const Arrows: FunctionComponent<Props> = ({ className }) => (\n <div className={classNames(styles.arrows, className)}>\n <Key className={classNames(styles.arrow, styles.left)}>\n <ArrowLeft aria-hidden=\"true\" role=\"img\" />\n </Key>\n <Key className={classNames(styles.arrow, styles.up)}>\n <ArrowUp aria-hidden=\"true\" role=\"img\" />\n </Key>\n <Key className={classNames(styles.arrow, styles.right)}>\n <ArrowRight aria-hidden=\"true\" role=\"img\" />\n </Key>\n <Key className={classNames(styles.arrow, styles.down)}>\n <ArrowDown aria-hidden=\"true\" role=\"img\" />\n </Key>\n </div>\n);\n","export { Arrows } from './Arrows';\n","import { type FunctionComponent } from 'react';\n\nimport { isMac } from 'lib';\nimport { useTranslate } from 'state';\n\nimport { Key } from '../Key';\n\ninterface Props {\n className?: string;\n}\n\nexport const Backspace: FunctionComponent<Props> = ({ className }) => <Key className={className}>← Backspace</Key>;\n\nexport const Ctrl: FunctionComponent<Props> = ({ className }) => (\n <Key className={className}>{isMac() ? '⌘' : 'Ctrl'}</Key>\n);\n\nexport const Del: FunctionComponent<Props> = ({ className }) => <Key className={className}>Del</Key>;\n\nexport const Enter: FunctionComponent<Props> = ({ className }) => <Key className={className}>Enter ⏎</Key>;\n\nexport const Space: FunctionComponent<Props> = ({ className }) => {\n const translate = useTranslate();\n\n return <Key className={className}>{` ${translate('common.space')} `}</Key>;\n};\n\nexport { Arrows } from './Arrows';\n","export { Alert } from './Alert';\nexport { Badge } from './Badge';\nexport { Board } from './Board';\nexport { Button } from './Button';\nexport { Dictionary } from './Dictionary';\nexport { DictionaryInput } from './DictionaryInput';\nexport { EmptyState } from './EmptyState';\nexport { IconButton } from './IconButton';\nexport { Key } from './Key';\nexport { Loading } from './Loading';\nexport { Logo } from './Logo';\nexport { Modal } from './Modal';\nexport { NavButtons } from './NavButtons';\nexport { NotFound } from './NotFound';\nexport { PlainTiles } from './PlainTiles';\nexport { Progress } from './Progress';\nexport { Rack } from './Rack';\nexport { Radio } from './Radio';\nexport { Results } from './Results';\nexport { ResultsInput } from './ResultsInput';\nexport { SeoMessage } from './SeoMessage';\nexport { Solver } from './Solver';\nexport { Spinner } from './Spinner';\nexport { Tile } from './Tile';\nexport * from './Keys';\nexport * from './Tooltip';\n","import { FloatingDelayGroup } from '@floating-ui/react';\nimport { type AppProps } from 'next/app';\nimport Head from 'next/head';\nimport { type FunctionComponent } from 'react';\nimport { Provider } from 'react-redux';\n\nimport { SeoMessage } from 'components';\nimport { store } from 'state';\n\nimport '../styles/global.scss';\n\nconst DESCRIPTION =\n // eslint-disable-next-line max-len\n 'Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League & Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Persian, Polish, Romanian, Spanish, and Turkish.';\n\nconst KEYWORDS = [\n 'Scrabble Solver',\n 'Scrabble',\n 'Scrabble Duel',\n 'Solver',\n 'Super Scrabble',\n 'Kelimelik',\n 'Letter League',\n 'Literaki',\n 'Board',\n 'Open-source',\n 'Open',\n 'Source',\n 'Word',\n 'Finder',\n 'Cheating',\n 'Word',\n 'English',\n 'Français',\n 'French',\n 'Deutsch',\n 'German',\n 'Polski',\n 'Polish',\n 'فارسی',\n 'Farsi',\n 'Español',\n 'Spanish',\n 'Română',\n 'Romanian',\n 'Türkçe',\n 'Turkish',\n 'SOWPODS',\n 'TWL06',\n 'SJP',\n 'FISE-2017',\n 'FISE-2',\n 'CNRTL',\n 'Kamil Mielnik',\n].join(',');\n\nconst App: FunctionComponent<AppProps> = ({ Component, pageProps }) => (\n <>\n <Head>\n <title>Scrabble Solver 2 by Kamil Mielnik</title>\n <meta charSet=\"utf-8\" />\n <meta name=\"author\" content=\"Kamil Mielnik\" />\n <meta name=\"description\" content={DESCRIPTION} />\n <meta name=\"keywords\" content={KEYWORDS} />\n <meta name=\"robots\" content=\"index, follow, notranslate, noimageindex\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta property=\"og:title\" content={DESCRIPTION} />\n <meta property=\"og:type\" content=\"website\" />\n <meta property=\"og:url\" content=\"https://scrabble-solver.org\" />\n <meta property=\"og:image\" content=\"https://scrabble-solver.org/og.png\" />\n <meta property=\"og:image:type\" content=\"image/png\" />\n <meta property=\"og:image:width\" content=\"1200\" />\n <meta property=\"og:image:height\" content=\"630\" />\n <meta property=\"og:image:alt\" content={DESCRIPTION} />\n </Head>\n\n <Provider store={store}>\n <SeoMessage />\n\n <FloatingDelayGroup delay={0}>\n <Component {...pageProps} />\n </FloatingDelayGroup>\n </Provider>\n </>\n);\n\nexport default App;\n"],"names":["SideEffect","isServer","window","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","props","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","Boolean","updateHead","add","children","delete","_pendingUpdate","module","exports","require","vendored","HeadManagerContext","warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","defaultHead","head","meta","charSet","name","content","onlyReactElement","list","child","type","React","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","map","c","srcMessage","cloneElement","Head","useContext","Effect","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","maximumRedirects","dangerouslyAllowLocalIP","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","allSizes","width","sizes","viewportWidthRe","percentSizes","match","exec","push","smallestRatio","Math","min","widths","s","kind","w","find","p","generateImgAttrs","config","quality","srcSet","last","join","priority","preload","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","_state","imgConf","showAltText","blurComplete","defaultLoader","sort","a","b","Error","isDefaultLoader","customImageLoader","obj","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","startsWith","split","endsWith","qualityInt","output","position","isNaN","includes","String","VALID_BLUR_EXT","urlStr","url","URL","err","pathname","search","legacyKey","legacyValue","Object","entries","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","buffered","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","loadingFinal","fullUrl","e","location","href","set","ImageConfigContext","RouterContext","findClosestQuality","q","prev","cur","abs","missingValues","NEXT_RUNTIME","hasLocalMatch","parsedSrc","hasRemoteMatch","hostname","encodeURIComponent","NEXT_DEPLOYMENT_ID","__next_img_default","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","toString","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","setShowAltText","onError","forwardedRef","ownRef","complete","ref","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","link","rel","pagesRouter","configContext","useMemo","useState","imgMeta","getImageProps","imgProps"],"mappings":"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","ignoreList":[0,1,2,3,4,5,265,266,267,268,269,270,271,272,273,274,275]}