@scrabble-solver/scrabble-solver 2.8.3 → 2.8.4

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 (52) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +10 -10
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/next-server.js.nft.json +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/server-production/0.pack +0 -0
  9. package/.next/cache/webpack/server-production/index.pack +0 -0
  10. package/.next/next-server.js.nft.json +1 -1
  11. package/.next/prerender-manifest.json +1 -1
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/206.js +98 -97
  14. package/.next/server/chunks/413.js +5 -4
  15. package/.next/server/chunks/515.js +135 -53
  16. package/.next/server/chunks/907.js +2 -2
  17. package/.next/server/middleware-build-manifest.js +1 -1
  18. package/.next/server/pages/404.html +5 -1
  19. package/.next/server/pages/404.js.nft.json +1 -1
  20. package/.next/server/pages/500.html +2 -2
  21. package/.next/server/pages/_app.js.nft.json +1 -1
  22. package/.next/server/pages/_error.js.nft.json +1 -1
  23. package/.next/server/pages/api/solve.js +50 -94
  24. package/.next/server/pages/index.html +17 -1
  25. package/.next/server/pages/index.js +5 -12
  26. package/.next/server/pages/index.js.nft.json +1 -1
  27. package/.next/server/pages/index.json +1 -1
  28. package/.next/static/-UOLkxdxU0PlKbXa09-xO/_buildManifest.js +1 -0
  29. package/.next/static/{OhUvTNKwyrrzmNwKBnpUU → -UOLkxdxU0PlKbXa09-xO}/_ssgManifest.js +0 -0
  30. package/.next/static/chunks/56-2d34867599a0ac66.js +1 -0
  31. package/.next/static/chunks/pages/{404-02d949d2fe59e960.js → 404-30c06e61d256c5b2.js} +1 -1
  32. package/.next/static/chunks/pages/_app-6ffa2ab900772b67.js +1 -0
  33. package/.next/static/chunks/pages/{index-75517525489ab316.js → index-13ea7770a65c69ee.js} +1 -1
  34. package/.next/static/css/{d676d43c6b9c9a57.css → 551d09cac435debb.css} +1 -1
  35. package/.next/static/css/{6a9e5ba3f77c27f2.css → cdbc9e0afcff5473.css} +1 -1
  36. package/.next/trace +42 -42
  37. package/package.json +14 -14
  38. package/src/components/Board/hooks/useGrid.ts +9 -0
  39. package/src/components/KeyMap/KeyMap.tsx +1 -1
  40. package/src/components/KeyMap/components/Mapping/Mapping.module.scss +4 -0
  41. package/src/components/KeyMap/components/Mapping/Mapping.tsx +16 -12
  42. package/src/components/PlainTiles/PlainTiles.tsx +4 -0
  43. package/src/components/SvgFontCss/SvgFontCss.tsx +12 -0
  44. package/src/components/SvgFontCss/index.ts +1 -0
  45. package/src/components/Tile/TilePure.tsx +1 -1
  46. package/src/components/index.ts +1 -0
  47. package/src/lib/createKeyboardNavigation.ts +3 -0
  48. package/src/pages/index.tsx +5 -14
  49. package/src/styles/global.scss +3 -0
  50. package/.next/static/OhUvTNKwyrrzmNwKBnpUU/_buildManifest.js +0 -1
  51. package/.next/static/chunks/195-4b75c9c697b7b455.js +0 -1
  52. package/.next/static/chunks/pages/_app-72522bfb306a8aef.js +0 -1
@@ -119,7 +119,8 @@ module.exports = {
119
119
  "description": "Mapping_description__osefE",
120
120
  "keys": "Mapping_keys__BBLHM",
121
121
  "group": "Mapping_group__4H8Aw",
122
- "plus": "Mapping_plus__aoyZw"
122
+ "plus": "Mapping_plus__aoyZw",
123
+ "slash": "Mapping_slash__xSLL1"
123
124
  };
124
125
 
125
126
 
@@ -1090,6 +1091,13 @@ const useGrid = (rows)=>{
1090
1091
  value: character
1091
1092
  }));
1092
1093
  onMoveFocus("forward");
1094
+ },
1095
+ onSpace: (event)=>{
1096
+ const position = getInputRefPosition(event.target);
1097
+ if (!position) {
1098
+ return;
1099
+ }
1100
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(position));
1093
1101
  }
1094
1102
  });
1095
1103
  }, [
@@ -1651,6 +1659,7 @@ const KeyMap = ({ className , isOpen , onClose })=>{
1651
1659
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_4__/* .Mapping */ .v, {
1652
1660
  description: translate("keyMap.board.toggle-blank"),
1653
1661
  mapping: [
1662
+ _keys__WEBPACK_IMPORTED_MODULE_5__/* .SPACE */ .L_,
1654
1663
  [
1655
1664
  _keys__WEBPACK_IMPORTED_MODULE_5__/* .CTRL */ .HF,
1656
1665
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Key__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
@@ -1704,6 +1713,8 @@ var jsx_runtime_ = __webpack_require__(20997);
1704
1713
  // EXTERNAL MODULE: external "classnames"
1705
1714
  var external_classnames_ = __webpack_require__(59003);
1706
1715
  var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
1716
+ // EXTERNAL MODULE: external "react"
1717
+ var external_react_ = __webpack_require__(16689);
1707
1718
  // EXTERNAL MODULE: ./src/components/KeyMap/components/Mapping/Mapping.module.scss
1708
1719
  var Mapping_module = __webpack_require__(34154);
1709
1720
  var Mapping_module_default = /*#__PURE__*/__webpack_require__.n(Mapping_module);
@@ -1711,6 +1722,7 @@ var Mapping_module_default = /*#__PURE__*/__webpack_require__.n(Mapping_module);
1711
1722
 
1712
1723
 
1713
1724
 
1725
+
1714
1726
  const Mapping = ({ className , description , mapping })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
1715
1727
  className: external_classnames_default()((Mapping_module_default()).mapping, className),
1716
1728
  children: [
@@ -1720,18 +1732,26 @@ const Mapping = ({ className , description , mapping })=>/*#__PURE__*/ (0,jsx_r
1720
1732
  }),
1721
1733
  /*#__PURE__*/ jsx_runtime_.jsx("div", {
1722
1734
  className: (Mapping_module_default()).keys,
1723
- children: mapping.map((key, index)=>/*#__PURE__*/ jsx_runtime_.jsx("div", {
1724
- className: (Mapping_module_default()).group,
1725
- children: Array.isArray(key) ? /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
1726
- children: [
1727
- key[0],
1728
- /*#__PURE__*/ jsx_runtime_.jsx("span", {
1729
- className: (Mapping_module_default()).plus,
1730
- children: "+"
1731
- }),
1732
- key[1]
1733
- ]
1734
- }) : key
1735
+ children: mapping.map((key, index)=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_react_.Fragment, {
1736
+ children: [
1737
+ /*#__PURE__*/ jsx_runtime_.jsx("div", {
1738
+ className: (Mapping_module_default()).group,
1739
+ children: Array.isArray(key) ? /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
1740
+ children: [
1741
+ key[0],
1742
+ /*#__PURE__*/ jsx_runtime_.jsx("span", {
1743
+ className: (Mapping_module_default()).plus,
1744
+ children: "+"
1745
+ }),
1746
+ key[1]
1747
+ ]
1748
+ }) : key
1749
+ }),
1750
+ mapping.length > 1 && index < mapping.length - 1 && /*#__PURE__*/ jsx_runtime_.jsx("span", {
1751
+ className: (Mapping_module_default()).slash,
1752
+ children: "/"
1753
+ })
1754
+ ]
1735
1755
  }, index))
1736
1756
  })
1737
1757
  ]
@@ -2124,6 +2144,8 @@ var external_classnames_ = __webpack_require__(59003);
2124
2144
  var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
2125
2145
  // EXTERNAL MODULE: external "react"
2126
2146
  var external_react_ = __webpack_require__(16689);
2147
+ // EXTERNAL MODULE: ./src/components/SvgFontCss/index.ts + 1 modules
2148
+ var SvgFontCss = __webpack_require__(8895);
2127
2149
  // EXTERNAL MODULE: ../configs/build/index.js
2128
2150
  var build = __webpack_require__(89418);
2129
2151
  // EXTERNAL MODULE: ../types/build/index.js
@@ -2265,6 +2287,7 @@ const Tile = ({ character , className , color , points , size , transform , x ,
2265
2287
 
2266
2288
 
2267
2289
 
2290
+
2268
2291
  const PlainTiles = ({ className , color , content , dropShadow , showPoints , style , wave })=>{
2269
2292
  const tiles = (0,external_react_.useMemo)(()=>lib_createPlainTiles({
2270
2293
  color,
@@ -2275,7 +2298,7 @@ const PlainTiles = ({ className , color , content , dropShadow , showPoints , st
2275
2298
  content,
2276
2299
  showPoints
2277
2300
  ]);
2278
- return /*#__PURE__*/ jsx_runtime_.jsx("svg", {
2301
+ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("svg", {
2279
2302
  className: external_classnames_default()(className, {
2280
2303
  [(PlainTiles_module_default()).dropShadow]: dropShadow,
2281
2304
  [(PlainTiles_module_default()).wave]: wave
@@ -2283,16 +2306,19 @@ const PlainTiles = ({ className , color , content , dropShadow , showPoints , st
2283
2306
  style: style,
2284
2307
  viewBox: lib_getViewbox(content),
2285
2308
  xmlns: "http://www.w3.org/2000/svg",
2286
- children: tiles.map((tile, index)=>/*#__PURE__*/ jsx_runtime_.jsx(PlainTiles_Tile, {
2287
- character: tile.character,
2288
- className: (PlainTiles_module_default()).tile,
2289
- color: tile.color,
2290
- points: tile.points,
2291
- size: tile.size,
2292
- transform: tile.transform,
2293
- x: tile.x,
2294
- y: tile.y
2295
- }, index))
2309
+ children: [
2310
+ /*#__PURE__*/ jsx_runtime_.jsx(SvgFontCss/* default */.Z, {}),
2311
+ tiles.map((tile, index)=>/*#__PURE__*/ jsx_runtime_.jsx(PlainTiles_Tile, {
2312
+ character: tile.character,
2313
+ className: (PlainTiles_module_default()).tile,
2314
+ color: tile.color,
2315
+ points: tile.points,
2316
+ size: tile.size,
2317
+ transform: tile.transform,
2318
+ x: tile.x,
2319
+ y: tile.y
2320
+ }, index))
2321
+ ]
2296
2322
  });
2297
2323
  };
2298
2324
  /* harmony default export */ const PlainTiles_PlainTiles = (PlainTiles);
@@ -4030,6 +4056,38 @@ _SquareButton__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.the
4030
4056
  __webpack_async_result__();
4031
4057
  } catch(e) { __webpack_async_result__(e); } });
4032
4058
 
4059
+ /***/ }),
4060
+
4061
+ /***/ 8895:
4062
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4063
+
4064
+ "use strict";
4065
+
4066
+ // EXPORTS
4067
+ __webpack_require__.d(__webpack_exports__, {
4068
+ "Z": () => (/* reexport */ SvgFontCss_SvgFontCss)
4069
+ });
4070
+
4071
+ // EXTERNAL MODULE: external "react/jsx-runtime"
4072
+ var jsx_runtime_ = __webpack_require__(20997);
4073
+ ;// CONCATENATED MODULE: ./src/components/SvgFontCss/SvgFontCss.tsx
4074
+
4075
+ // eslint-disable-next-line max-len
4076
+ const CSS = `@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Open+Sans:wght@400;700&family=Roboto+Mono&display=swap');
4077
+
4078
+ text {
4079
+ font-family: 'Open Sans';
4080
+ }`;
4081
+ const SvgFontCss = ()=>/*#__PURE__*/ jsx_runtime_.jsx("style", {
4082
+ type: "text/css",
4083
+ children: CSS
4084
+ });
4085
+ /* harmony default export */ const SvgFontCss_SvgFontCss = (SvgFontCss);
4086
+
4087
+ ;// CONCATENATED MODULE: ./src/components/SvgFontCss/index.ts
4088
+
4089
+
4090
+
4033
4091
  /***/ }),
4034
4092
 
4035
4093
  /***/ 54031:
@@ -4076,7 +4134,7 @@ const TilePure = ({ autoFocus , canShowPoints , character , className , disabled
4076
4134
  style: style,
4077
4135
  children: [
4078
4136
  /*#__PURE__*/ jsx_runtime_.jsx("input", {
4079
- autoCapitalize: "off",
4137
+ autoCapitalize: "none",
4080
4138
  autoComplete: "off",
4081
4139
  autoCorrect: "off",
4082
4140
  autoFocus: autoFocus,
@@ -4419,7 +4477,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4419
4477
  /* harmony export */ "d4": () => (/* reexport safe */ _KeyMap__WEBPACK_IMPORTED_MODULE_7__.Z),
4420
4478
  /* harmony export */ "fs": () => (/* reexport safe */ _RemainingTiles__WEBPACK_IMPORTED_MODULE_15__.Z),
4421
4479
  /* harmony export */ "hX": () => (/* reexport safe */ _Splash__WEBPACK_IMPORTED_MODULE_21__.Z),
4422
- /* harmony export */ "tW": () => (/* reexport safe */ _Well__WEBPACK_IMPORTED_MODULE_25__.Z),
4480
+ /* harmony export */ "tW": () => (/* reexport safe */ _Well__WEBPACK_IMPORTED_MODULE_26__.Z),
4423
4481
  /* harmony export */ "u9": () => (/* reexport safe */ _Results__WEBPACK_IMPORTED_MODULE_16__.Z)
4424
4482
  /* harmony export */ });
4425
4483
  /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83774);
@@ -4445,11 +4503,13 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4445
4503
  /* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(714);
4446
4504
  /* harmony import */ var _Splash__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(72617);
4447
4505
  /* harmony import */ var _SquareButton__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(49021);
4448
- /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(54031);
4449
- /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(73778);
4450
- /* harmony import */ var _Well__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(17084);
4451
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Board__WEBPACK_IMPORTED_MODULE_0__, _Button__WEBPACK_IMPORTED_MODULE_1__, _Dictionary__WEBPACK_IMPORTED_MODULE_3__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_4__, _EmptyState__WEBPACK_IMPORTED_MODULE_5__, _KeyMap__WEBPACK_IMPORTED_MODULE_7__, _Loading__WEBPACK_IMPORTED_MODULE_8__, _NavButtons__WEBPACK_IMPORTED_MODULE_10__, _Rack__WEBPACK_IMPORTED_MODULE_13__, _RemainingTiles__WEBPACK_IMPORTED_MODULE_15__, _Results__WEBPACK_IMPORTED_MODULE_16__, _ResultsInput__WEBPACK_IMPORTED_MODULE_17__, _Settings__WEBPACK_IMPORTED_MODULE_19__, _Sidebar__WEBPACK_IMPORTED_MODULE_20__, _SquareButton__WEBPACK_IMPORTED_MODULE_22__, _Tooltip__WEBPACK_IMPORTED_MODULE_24__]);
4452
- ([_Board__WEBPACK_IMPORTED_MODULE_0__, _Button__WEBPACK_IMPORTED_MODULE_1__, _Dictionary__WEBPACK_IMPORTED_MODULE_3__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_4__, _EmptyState__WEBPACK_IMPORTED_MODULE_5__, _KeyMap__WEBPACK_IMPORTED_MODULE_7__, _Loading__WEBPACK_IMPORTED_MODULE_8__, _NavButtons__WEBPACK_IMPORTED_MODULE_10__, _Rack__WEBPACK_IMPORTED_MODULE_13__, _RemainingTiles__WEBPACK_IMPORTED_MODULE_15__, _Results__WEBPACK_IMPORTED_MODULE_16__, _ResultsInput__WEBPACK_IMPORTED_MODULE_17__, _Settings__WEBPACK_IMPORTED_MODULE_19__, _Sidebar__WEBPACK_IMPORTED_MODULE_20__, _SquareButton__WEBPACK_IMPORTED_MODULE_22__, _Tooltip__WEBPACK_IMPORTED_MODULE_24__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4506
+ /* harmony import */ var _SvgFontCss__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(8895);
4507
+ /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(54031);
4508
+ /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(73778);
4509
+ /* harmony import */ var _Well__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(17084);
4510
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Board__WEBPACK_IMPORTED_MODULE_0__, _Button__WEBPACK_IMPORTED_MODULE_1__, _Dictionary__WEBPACK_IMPORTED_MODULE_3__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_4__, _EmptyState__WEBPACK_IMPORTED_MODULE_5__, _KeyMap__WEBPACK_IMPORTED_MODULE_7__, _Loading__WEBPACK_IMPORTED_MODULE_8__, _NavButtons__WEBPACK_IMPORTED_MODULE_10__, _Rack__WEBPACK_IMPORTED_MODULE_13__, _RemainingTiles__WEBPACK_IMPORTED_MODULE_15__, _Results__WEBPACK_IMPORTED_MODULE_16__, _ResultsInput__WEBPACK_IMPORTED_MODULE_17__, _Settings__WEBPACK_IMPORTED_MODULE_19__, _Sidebar__WEBPACK_IMPORTED_MODULE_20__, _SquareButton__WEBPACK_IMPORTED_MODULE_22__, _Tooltip__WEBPACK_IMPORTED_MODULE_25__]);
4511
+ ([_Board__WEBPACK_IMPORTED_MODULE_0__, _Button__WEBPACK_IMPORTED_MODULE_1__, _Dictionary__WEBPACK_IMPORTED_MODULE_3__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_4__, _EmptyState__WEBPACK_IMPORTED_MODULE_5__, _KeyMap__WEBPACK_IMPORTED_MODULE_7__, _Loading__WEBPACK_IMPORTED_MODULE_8__, _NavButtons__WEBPACK_IMPORTED_MODULE_10__, _Rack__WEBPACK_IMPORTED_MODULE_13__, _RemainingTiles__WEBPACK_IMPORTED_MODULE_15__, _Results__WEBPACK_IMPORTED_MODULE_16__, _ResultsInput__WEBPACK_IMPORTED_MODULE_17__, _Settings__WEBPACK_IMPORTED_MODULE_19__, _Sidebar__WEBPACK_IMPORTED_MODULE_20__, _SquareButton__WEBPACK_IMPORTED_MODULE_22__, _Tooltip__WEBPACK_IMPORTED_MODULE_25__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4512
+
4453
4513
 
4454
4514
 
4455
4515
 
@@ -4901,7 +4961,8 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
4901
4961
  var SvgArrowDown = function SvgArrowDown(props) {
4902
4962
  return /*#__PURE__*/external_react_.createElement("svg", _extends({
4903
4963
  viewBox: "0 0 16 16",
4904
- xmlns: "http://www.w3.org/2000/svg"
4964
+ xmlns: "http://www.w3.org/2000/svg",
4965
+ role: "img"
4905
4966
  }, props), _path || (_path = /*#__PURE__*/external_react_.createElement("path", {
4906
4967
  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 1z",
4907
4968
  fill: "currentColor",
@@ -4920,7 +4981,8 @@ function ArrowLeft_extends() { ArrowLeft_extends = Object.assign ? Object.assign
4920
4981
  var SvgArrowLeft = function SvgArrowLeft(props) {
4921
4982
  return /*#__PURE__*/external_react_.createElement("svg", ArrowLeft_extends({
4922
4983
  viewBox: "0 0 16 16",
4923
- xmlns: "http://www.w3.org/2000/svg"
4984
+ xmlns: "http://www.w3.org/2000/svg",
4985
+ role: "img"
4924
4986
  }, props), ArrowLeft_path || (ArrowLeft_path = /*#__PURE__*/external_react_.createElement("path", {
4925
4987
  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 8z",
4926
4988
  fill: "currentColor",
@@ -4939,7 +5001,8 @@ function ArrowRight_extends() { ArrowRight_extends = Object.assign ? Object.assi
4939
5001
  var SvgArrowRight = function SvgArrowRight(props) {
4940
5002
  return /*#__PURE__*/external_react_.createElement("svg", ArrowRight_extends({
4941
5003
  viewBox: "0 0 16 16",
4942
- xmlns: "http://www.w3.org/2000/svg"
5004
+ xmlns: "http://www.w3.org/2000/svg",
5005
+ role: "img"
4943
5006
  }, props), ArrowRight_path || (ArrowRight_path = /*#__PURE__*/external_react_.createElement("path", {
4944
5007
  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 8z",
4945
5008
  fill: "currentColor",
@@ -4958,7 +5021,8 @@ function ArrowUp_extends() { ArrowUp_extends = Object.assign ? Object.assign.bin
4958
5021
  var SvgArrowUp = function SvgArrowUp(props) {
4959
5022
  return /*#__PURE__*/external_react_.createElement("svg", ArrowUp_extends({
4960
5023
  viewBox: "0 0 16 16",
4961
- xmlns: "http://www.w3.org/2000/svg"
5024
+ xmlns: "http://www.w3.org/2000/svg",
5025
+ role: "img"
4962
5026
  }, props), ArrowUp_path || (ArrowUp_path = /*#__PURE__*/external_react_.createElement("path", {
4963
5027
  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.5z",
4964
5028
  fill: "currentColor",
@@ -4977,7 +5041,8 @@ function CheckboxChecked_extends() { CheckboxChecked_extends = Object.assign ? O
4977
5041
  var SvgCheckboxChecked = function SvgCheckboxChecked(props) {
4978
5042
  return /*#__PURE__*/React.createElement("svg", CheckboxChecked_extends({
4979
5043
  viewBox: "0 0 16 16",
4980
- xmlns: "http://www.w3.org/2000/svg"
5044
+ xmlns: "http://www.w3.org/2000/svg",
5045
+ role: "img"
4981
5046
  }, props), CheckboxChecked_path || (CheckboxChecked_path = /*#__PURE__*/React.createElement("path", {
4982
5047
  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-2H2zm10.03 4.97a.75.75 0 0 1 .011 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.75.75 0 0 1 1.08-.022z",
4983
5048
  fill: "currentColor"
@@ -4995,7 +5060,8 @@ function CheckboxEmpty_extends() { CheckboxEmpty_extends = Object.assign ? Objec
4995
5060
  var SvgCheckboxEmpty = function SvgCheckboxEmpty(props) {
4996
5061
  return /*#__PURE__*/React.createElement("svg", CheckboxEmpty_extends({
4997
5062
  viewBox: "0 0 16 16",
4998
- xmlns: "http://www.w3.org/2000/svg"
5063
+ xmlns: "http://www.w3.org/2000/svg",
5064
+ role: "img"
4999
5065
  }, props), CheckboxEmpty_path || (CheckboxEmpty_path = /*#__PURE__*/React.createElement("path", {
5000
5066
  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-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z",
5001
5067
  fill: "currentColor"
@@ -5013,7 +5079,8 @@ function Cog_extends() { Cog_extends = Object.assign ? Object.assign.bind() : fu
5013
5079
  var SvgCog = function SvgCog(props) {
5014
5080
  return /*#__PURE__*/external_react_.createElement("svg", Cog_extends({
5015
5081
  viewBox: "0 0 16 16",
5016
- xmlns: "http://www.w3.org/2000/svg"
5082
+ xmlns: "http://www.w3.org/2000/svg",
5083
+ role: "img"
5017
5084
  }, props), Cog_path || (Cog_path = /*#__PURE__*/external_react_.createElement("path", {
5018
5085
  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-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z",
5019
5086
  fill: "currentColor"
@@ -5031,7 +5098,8 @@ function Cross_extends() { Cross_extends = Object.assign ? Object.assign.bind()
5031
5098
  var SvgCross = function SvgCross(props) {
5032
5099
  return /*#__PURE__*/external_react_.createElement("svg", Cross_extends({
5033
5100
  viewBox: "0 0 16 16",
5034
- xmlns: "http://www.w3.org/2000/svg"
5101
+ xmlns: "http://www.w3.org/2000/svg",
5102
+ role: "img"
5035
5103
  }, props), Cross_path || (Cross_path = /*#__PURE__*/external_react_.createElement("path", {
5036
5104
  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-2H2zm3.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-.708z",
5037
5105
  fill: "currentColor"
@@ -5049,7 +5117,8 @@ function DashCircleFill_extends() { DashCircleFill_extends = Object.assign ? Obj
5049
5117
  var SvgDashCircleFill = function SvgDashCircleFill(props) {
5050
5118
  return /*#__PURE__*/external_react_.createElement("svg", DashCircleFill_extends({
5051
5119
  viewBox: "0 0 16 16",
5052
- xmlns: "http://www.w3.org/2000/svg"
5120
+ xmlns: "http://www.w3.org/2000/svg",
5121
+ role: "img"
5053
5122
  }, props), DashCircleFill_path || (DashCircleFill_path = /*#__PURE__*/external_react_.createElement("path", {
5054
5123
  d: "M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-7z",
5055
5124
  fill: "currentColor"
@@ -5067,7 +5136,8 @@ function Eraser_extends() { Eraser_extends = Object.assign ? Object.assign.bind(
5067
5136
  var SvgEraser = function SvgEraser(props) {
5068
5137
  return /*#__PURE__*/external_react_.createElement("svg", Eraser_extends({
5069
5138
  viewBox: "0 0 16 16",
5070
- xmlns: "http://www.w3.org/2000/svg"
5139
+ xmlns: "http://www.w3.org/2000/svg",
5140
+ role: "img"
5071
5141
  }, props), Eraser_path || (Eraser_path = /*#__PURE__*/external_react_.createElement("path", {
5072
5142
  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.828l6.879-6.879zm.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-.293l.16-.16z",
5073
5143
  fill: "currentColor"
@@ -5085,7 +5155,8 @@ function FlagEs_extends() { FlagEs_extends = Object.assign ? Object.assign.bind(
5085
5155
  var SvgFlagEs = function SvgFlagEs(props) {
5086
5156
  return /*#__PURE__*/external_react_.createElement("svg", FlagEs_extends({
5087
5157
  xmlns: "http://www.w3.org/2000/svg",
5088
- viewBox: "0 0 750 500"
5158
+ viewBox: "0 0 750 500",
5159
+ role: "img"
5089
5160
  }, props), FlagEs_path || (FlagEs_path = /*#__PURE__*/external_react_.createElement("path", {
5090
5161
  fill: "#c60b1e",
5091
5162
  d: "M0 0h750v500H0z"
@@ -5106,7 +5177,8 @@ function FlagFr_extends() { FlagFr_extends = Object.assign ? Object.assign.bind(
5106
5177
  var SvgFlagFr = function SvgFlagFr(props) {
5107
5178
  return /*#__PURE__*/external_react_.createElement("svg", FlagFr_extends({
5108
5179
  viewBox: "0 0 24 15",
5109
- xmlns: "http://www.w3.org/2000/svg"
5180
+ xmlns: "http://www.w3.org/2000/svg",
5181
+ role: "img"
5110
5182
  }, props), FlagFr_path || (FlagFr_path = /*#__PURE__*/external_react_.createElement("path", {
5111
5183
  fill: "#002395",
5112
5184
  d: "M0 0h8v15H0z"
@@ -5130,7 +5202,8 @@ function FlagGb_extends() { FlagGb_extends = Object.assign ? Object.assign.bind(
5130
5202
  var SvgFlagGb = function SvgFlagGb(props) {
5131
5203
  return /*#__PURE__*/external_react_.createElement("svg", FlagGb_extends({
5132
5204
  viewBox: "0 0 60 30",
5133
- xmlns: "http://www.w3.org/2000/svg"
5205
+ xmlns: "http://www.w3.org/2000/svg",
5206
+ role: "img"
5134
5207
  }, props), FlagGb_path || (FlagGb_path = /*#__PURE__*/external_react_.createElement("path", {
5135
5208
  d: "M0 0v30h60V0z",
5136
5209
  fill: "#00247d"
@@ -5164,7 +5237,8 @@ function FlagPl_extends() { FlagPl_extends = Object.assign ? Object.assign.bind(
5164
5237
  var SvgFlagPl = function SvgFlagPl(props) {
5165
5238
  return /*#__PURE__*/external_react_.createElement("svg", FlagPl_extends({
5166
5239
  viewBox: "0 0 16 10",
5167
- xmlns: "http://www.w3.org/2000/svg"
5240
+ xmlns: "http://www.w3.org/2000/svg",
5241
+ role: "img"
5168
5242
  }, props), FlagPl_path || (FlagPl_path = /*#__PURE__*/external_react_.createElement("path", {
5169
5243
  fill: "#fff",
5170
5244
  d: "M0 0h16v10H0z"
@@ -5185,7 +5259,8 @@ function FlagUs_extends() { FlagUs_extends = Object.assign ? Object.assign.bind(
5185
5259
  var SvgFlagUs = function SvgFlagUs(props) {
5186
5260
  return /*#__PURE__*/external_react_.createElement("svg", FlagUs_extends({
5187
5261
  viewBox: "0 0 7410 3900",
5188
- xmlns: "http://www.w3.org/2000/svg"
5262
+ xmlns: "http://www.w3.org/2000/svg",
5263
+ role: "img"
5189
5264
  }, props), FlagUs_path || (FlagUs_path = /*#__PURE__*/external_react_.createElement("path", {
5190
5265
  fill: "#b22234",
5191
5266
  d: "M0 0h7410v3900H0z"
@@ -5270,7 +5345,8 @@ function FlagDe_extends() { FlagDe_extends = Object.assign ? Object.assign.bind(
5270
5345
  var SvgFlagDe = function SvgFlagDe(props) {
5271
5346
  return /*#__PURE__*/external_react_.createElement("svg", FlagDe_extends({
5272
5347
  viewBox: "0 0 20 12",
5273
- xmlns: "http://www.w3.org/2000/svg"
5348
+ xmlns: "http://www.w3.org/2000/svg",
5349
+ role: "img"
5274
5350
  }, props), FlagDe_path || (FlagDe_path = /*#__PURE__*/external_react_.createElement("path", {
5275
5351
  d: "M0 0h20v4H0z"
5276
5352
  })), FlagDe_path2 || (FlagDe_path2 = /*#__PURE__*/external_react_.createElement("path", {
@@ -5293,7 +5369,8 @@ function Github_extends() { Github_extends = Object.assign ? Object.assign.bind(
5293
5369
  var SvgGithub = function SvgGithub(props) {
5294
5370
  return /*#__PURE__*/external_react_.createElement("svg", Github_extends({
5295
5371
  viewBox: "0 0 16 16",
5296
- xmlns: "http://www.w3.org/2000/svg"
5372
+ xmlns: "http://www.w3.org/2000/svg",
5373
+ role: "img"
5297
5374
  }, props), Github_path || (Github_path = /*#__PURE__*/external_react_.createElement("path", {
5298
5375
  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-.27.68 0 1.36.09 2 .27 1.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.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z",
5299
5376
  fill: "currentColor"
@@ -5311,7 +5388,8 @@ function Keyboard_extends() { Keyboard_extends = Object.assign ? Object.assign.b
5311
5388
  var SvgKeyboard = function SvgKeyboard(props) {
5312
5389
  return /*#__PURE__*/external_react_.createElement("svg", Keyboard_extends({
5313
5390
  viewBox: "0 0 16 16",
5314
- xmlns: "http://www.w3.org/2000/svg"
5391
+ xmlns: "http://www.w3.org/2000/svg",
5392
+ role: "img"
5315
5393
  }, props), Keyboard_path || (Keyboard_path = /*#__PURE__*/external_react_.createElement("path", {
5316
5394
  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-2V6zm13 .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.25zM2.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 8h-.5zM4 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.25zM6.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 8h-.5zM8 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.25zM13.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-.25h-.5zm0 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-.25h-.5zm-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-.25h-1.5zm.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.25zM11.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-.25h-.5zM9 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.25zM7.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 6h-.5zM5 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.25zM2.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 6h-1.5zM2 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.25zM4.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-.25h-5.5z",
5317
5395
  fill: "currentColor"
@@ -5329,7 +5407,8 @@ function Play_extends() { Play_extends = Object.assign ? Object.assign.bind() :
5329
5407
  var SvgPlay = function SvgPlay(props) {
5330
5408
  return /*#__PURE__*/external_react_.createElement("svg", Play_extends({
5331
5409
  viewBox: "0 0 16 16",
5332
- xmlns: "http://www.w3.org/2000/svg"
5410
+ xmlns: "http://www.w3.org/2000/svg",
5411
+ role: "img"
5333
5412
  }, props), Play_path || (Play_path = /*#__PURE__*/external_react_.createElement("path", {
5334
5413
  d: "m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z",
5335
5414
  fill: "currentColor"
@@ -5347,7 +5426,8 @@ function Sack_extends() { Sack_extends = Object.assign ? Object.assign.bind() :
5347
5426
  var SvgSack = function SvgSack(props) {
5348
5427
  return /*#__PURE__*/external_react_.createElement("svg", Sack_extends({
5349
5428
  viewBox: "0 0 24 24",
5350
- xmlns: "http://www.w3.org/2000/svg"
5429
+ xmlns: "http://www.w3.org/2000/svg",
5430
+ role: "img"
5351
5431
  }, props), Sack_path || (Sack_path = /*#__PURE__*/external_react_.createElement("path", {
5352
5432
  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-5-4 2Z",
5353
5433
  fill: "currentColor"
@@ -5365,7 +5445,8 @@ function SortDown_extends() { SortDown_extends = Object.assign ? Object.assign.b
5365
5445
  var SvgSortDown = function SvgSortDown(props) {
5366
5446
  return /*#__PURE__*/external_react_.createElement("svg", SortDown_extends({
5367
5447
  viewBox: "0 0 16 16",
5368
- xmlns: "http://www.w3.org/2000/svg"
5448
+ xmlns: "http://www.w3.org/2000/svg",
5449
+ role: "img"
5369
5450
  }, props), SortDown_path || (SortDown_path = /*#__PURE__*/external_react_.createElement("path", {
5370
5451
  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.293V2.5zm3.5 1a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z",
5371
5452
  fill: "currentColor"
@@ -5383,7 +5464,8 @@ function SortUp_extends() { SortUp_extends = Object.assign ? Object.assign.bind(
5383
5464
  var SvgSortUp = function SvgSortUp(props) {
5384
5465
  return /*#__PURE__*/external_react_.createElement("svg", SortUp_extends({
5385
5466
  viewBox: "0 0 16 16",
5386
- xmlns: "http://www.w3.org/2000/svg"
5467
+ xmlns: "http://www.w3.org/2000/svg",
5468
+ role: "img"
5387
5469
  }, props), SortUp_path || (SortUp_path = /*#__PURE__*/external_react_.createElement("path", {
5388
5470
  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.498.498 0 0 1 .7.006l2 2a.5.5 0 1 1-.707.708L3.5 3.707V12.5zm3.5-9a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM7.5 6a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zm0 3a.5.5 0 0 0 0 1h1a.5.5 0 0 0 0-1h-1z",
5389
5471
  fill: "currentColor"
@@ -1333,7 +1333,7 @@ class Cell {
1333
1333
  };
1334
1334
  }
1335
1335
  toString() {
1336
- return String(this.tile);
1336
+ return this.tile.toString();
1337
1337
  }
1338
1338
  }
1339
1339
  Cell.Null = Object.freeze({
@@ -1611,7 +1611,7 @@ class Pattern {
1611
1611
  };
1612
1612
  }
1613
1613
  toString() {
1614
- return this.cells.map(String).join('');
1614
+ return this.cells.reduce((result, cell) => result + cell.toString(), '');
1615
1615
  }
1616
1616
  }
1617
1617
  exports["default"] = Pattern;
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-c67a75d1b6f99dc8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/OhUvTNKwyrrzmNwKBnpUU/_buildManifest.js","static/OhUvTNKwyrrzmNwKBnpUU/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/chunks/758-f333b1dcdb941547.js","static/css/d676d43c6b9c9a57.css","static/chunks/195-4b75c9c697b7b455.js","static/css/3159cfe62ff742a3.css","static/chunks/pages/index-75517525489ab316.js"],"/404":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/chunks/758-f333b1dcdb941547.js","static/css/d676d43c6b9c9a57.css","static/chunks/195-4b75c9c697b7b455.js","static/chunks/pages/404-02d949d2fe59e960.js"],"/_app":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/css/6a9e5ba3f77c27f2.css","static/chunks/pages/_app-72522bfb306a8aef.js"],"/_error":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/chunks/pages/_error-a4ba2246ff8fb532.js"]},ampFirstPages:[]};
1
+ self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-c67a75d1b6f99dc8.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:["static/-UOLkxdxU0PlKbXa09-xO/_buildManifest.js","static/-UOLkxdxU0PlKbXa09-xO/_ssgManifest.js"],rootMainFiles:[],pages:{"/":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/chunks/758-f333b1dcdb941547.js","static/css/551d09cac435debb.css","static/chunks/56-2d34867599a0ac66.js","static/css/3159cfe62ff742a3.css","static/chunks/pages/index-13ea7770a65c69ee.js"],"/404":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/chunks/758-f333b1dcdb941547.js","static/css/551d09cac435debb.css","static/chunks/56-2d34867599a0ac66.js","static/chunks/pages/404-30c06e61d256c5b2.js"],"/_app":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/css/cdbc9e0afcff5473.css","static/chunks/pages/_app-6ffa2ab900772b67.js"],"/_error":["static/chunks/webpack-5752944655d749a0.js","static/chunks/framework-4556c45dd113b893.js","static/chunks/main-a75cf611e061d8f8.js","static/chunks/pages/_error-a4ba2246ff8fb532.js"]},ampFirstPages:[]};
@@ -1 +1,5 @@
1
- <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - The ultimate, open-source cheating app for Scrabble and Literaki"/><meta name="keywords" content="Scrabble,Solver,Open-source,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - The ultimate, open-source cheating app for Scrabble and Literaki"/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - The ultimate, open-source cheating app for Scrabble and Literaki"/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/6a9e5ba3f77c27f2.css" as="style"/><link rel="stylesheet" href="/_next/static/css/6a9e5ba3f77c27f2.css" data-n-g=""/><link rel="preload" href="/_next/static/css/d676d43c6b9c9a57.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d676d43c6b9c9a57.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-5752944655d749a0.js" defer=""></script><script src="/_next/static/chunks/framework-4556c45dd113b893.js" defer=""></script><script src="/_next/static/chunks/main-a75cf611e061d8f8.js" defer=""></script><script src="/_next/static/chunks/pages/_app-72522bfb306a8aef.js" defer=""></script><script src="/_next/static/chunks/758-f333b1dcdb941547.js" defer=""></script><script src="/_next/static/chunks/195-4b75c9c697b7b455.js" defer=""></script><script src="/_next/static/chunks/pages/404-02d949d2fe59e960.js" defer=""></script><script src="/_next/static/OhUvTNKwyrrzmNwKBnpUU/_buildManifest.js" defer=""></script><script src="/_next/static/OhUvTNKwyrrzmNwKBnpUU/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="font-size:0">Scrabble Solver 2 is the most popular, online, open-source, cheating app for Scrabble. It&#x27;s available in English, French, German, Polish &amp; Spanish! Source code is available on GitHub - contributions are welcome!</p><div class="NotFound_notFound__yhPFA"><a class="NotFound_link__a1OqI" href="/"><svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" class="NotFound_icon__zBP4O"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-7z" fill="currentColor"></path></svg><svg class="NotFound_tiles__Nxd8Z" viewBox="0 0 682 80" xmlns="http://www.w3.org/2000/svg"><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#f7c2aa" height="80" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">H</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#c7d8f9" height="80" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">P</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#bae3ba" height="80" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">4</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 556, 40)"><rect fill="#bae3ba" height="80" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">0</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">4</text></g></svg></a></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"OhUvTNKwyrrzmNwKBnpUU","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - The ultimate, open-source cheating app for Scrabble and Literaki"/><meta name="keywords" content="Scrabble,Solver,Open-source,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - The ultimate, open-source cheating app for Scrabble and Literaki"/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - The ultimate, open-source cheating app for Scrabble and Literaki"/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/cdbc9e0afcff5473.css" as="style"/><link rel="stylesheet" href="/_next/static/css/cdbc9e0afcff5473.css" data-n-g=""/><link rel="preload" href="/_next/static/css/551d09cac435debb.css" as="style"/><link rel="stylesheet" href="/_next/static/css/551d09cac435debb.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-5752944655d749a0.js" defer=""></script><script src="/_next/static/chunks/framework-4556c45dd113b893.js" defer=""></script><script src="/_next/static/chunks/main-a75cf611e061d8f8.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6ffa2ab900772b67.js" defer=""></script><script src="/_next/static/chunks/758-f333b1dcdb941547.js" defer=""></script><script src="/_next/static/chunks/56-2d34867599a0ac66.js" defer=""></script><script src="/_next/static/chunks/pages/404-30c06e61d256c5b2.js" defer=""></script><script src="/_next/static/-UOLkxdxU0PlKbXa09-xO/_buildManifest.js" defer=""></script><script src="/_next/static/-UOLkxdxU0PlKbXa09-xO/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="font-size:0">Scrabble Solver 2 is the most popular, online, open-source, cheating app for Scrabble. It&#x27;s available in English, French, German, Polish &amp; Spanish! Source code is available on GitHub - contributions are welcome!</p><div class="NotFound_notFound__yhPFA"><a class="NotFound_link__a1OqI" href="/"><svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" role="img" class="NotFound_icon__zBP4O"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-7z" fill="currentColor"></path></svg><svg class="NotFound_tiles__Nxd8Z" viewBox="0 0 682 80" xmlns="http://www.w3.org/2000/svg"><style type="text/css">@import url(&#x27;https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&amp;family=Open+Sans:wght@400;700&amp;family=Roboto+Mono&amp;display=swap&#x27;);
2
+
3
+ text {
4
+ font-family: &#x27;Open Sans&#x27;;
5
+ }</style><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#f7c2aa" height="80" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">H</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">T</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#c7d8f9" height="80" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">P</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#bae3ba" height="80" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">4</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 556, 40)"><rect fill="#bae3ba" height="80" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">0</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">4</text></g></svg></a></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"-UOLkxdxU0PlKbXa09-xO","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>