@scrabble-solver/scrabble-solver 2.12.1 → 2.12.3

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 (97) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +14 -14
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/next-server.js.nft.json +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  9. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  10. package/.next/cache/webpack/server-production/0.pack +0 -0
  11. package/.next/cache/webpack/server-production/index.pack +0 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/required-server-files.json +1 -1
  15. package/.next/routes-manifest.json +1 -1
  16. package/.next/server/chunks/131.js +478 -106
  17. package/.next/server/chunks/277.js +1202 -1013
  18. package/.next/server/chunks/44.js +36 -6
  19. package/.next/server/chunks/675.js +35 -13
  20. package/.next/server/chunks/859.js +21 -4
  21. package/.next/server/chunks/865.js +478 -106
  22. package/.next/server/chunks/911.js +894 -773
  23. package/.next/server/middleware-build-manifest.js +1 -1
  24. package/.next/server/pages/404.html +1 -1
  25. package/.next/server/pages/404.js.nft.json +1 -1
  26. package/.next/server/pages/500.html +1 -1
  27. package/.next/server/pages/_app.js +3 -1
  28. package/.next/server/pages/_app.js.nft.json +1 -1
  29. package/.next/server/pages/api/dictionary/[locale]/[word].js +4 -2
  30. package/.next/server/pages/api/solve.js +51 -20
  31. package/.next/server/pages/api/verify.js +8 -5
  32. package/.next/server/pages/index.html +1 -1
  33. package/.next/server/pages/index.js +55 -65
  34. package/.next/server/pages/index.js.nft.json +1 -1
  35. package/.next/server/pages/index.json +1 -1
  36. package/.next/server/pages-manifest.json +2 -2
  37. package/.next/static/chunks/{framework-2c5cac93e8c637b5.js → framework-2c29dc3cd933590b.js} +2 -2
  38. package/.next/static/chunks/main-4dcb7f9b52833aba.js +1 -0
  39. package/.next/static/chunks/pages/_app-e7f3d1c9c09c8f91.js +32 -0
  40. package/.next/static/chunks/pages/index-82b2939158c7729f.js +1 -0
  41. package/.next/static/css/4e8b47fe382a8a8f.css +2 -0
  42. package/.next/static/css/cfae5256f1689f57.css +1 -0
  43. package/.next/static/{_yG9K-PD5kWT_p4sMdCSV → wNIKOJJzkMSJYb2nOL21o}/_buildManifest.js +1 -1
  44. package/.next/trace +51 -52
  45. package/package.json +14 -14
  46. package/src/components/Board/Board.module.scss +33 -0
  47. package/src/components/Board/Board.tsx +3 -0
  48. package/src/components/Board/BoardPure.tsx +25 -1
  49. package/src/components/Board/components/Cell/Cell.module.scss +4 -12
  50. package/src/components/Board/components/Cell/Cell.tsx +4 -0
  51. package/src/components/Board/components/InputPrompt/InputPrompt.tsx +1 -0
  52. package/src/components/Board/hooks/useBackgroundImage.tsx +24 -6
  53. package/src/components/PlainTiles/lib/createPlainTile.ts +4 -4
  54. package/src/components/Rack/components/InputPrompt/InputPrompt.tsx +1 -0
  55. package/src/components/Radio/Radio.module.scss +4 -0
  56. package/src/components/Radio/Radio.tsx +1 -0
  57. package/src/components/SeoMessage/SeoMessage.tsx +3 -3
  58. package/src/hooks/useAppLayout.ts +1 -2
  59. package/src/hooks/useLocalStorage.ts +5 -5
  60. package/src/i18n/constants.ts +31 -61
  61. package/src/lib/extractCharacters.test.ts +3 -3
  62. package/src/lib/extractCharactersByCase.test.ts +3 -3
  63. package/src/lib/getCellSize.ts +2 -2
  64. package/src/modals/MenuModal/MenuModal.module.scss +0 -1
  65. package/src/modals/MenuModal/MenuModal.tsx +3 -3
  66. package/src/modals/SettingsModal/SettingsModal.tsx +7 -3
  67. package/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.tsx +16 -7
  68. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +1 -4
  69. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.tsx +8 -8
  70. package/src/pages/_app.tsx +3 -1
  71. package/src/pages/api/dictionary/[locale]/[word].ts +6 -3
  72. package/src/pages/api/solve.ts +11 -7
  73. package/src/pages/api/verify.ts +11 -7
  74. package/src/pages/index.module.scss +0 -1
  75. package/src/parameters/index.ts +4 -6
  76. package/src/sdk/solve.ts +3 -3
  77. package/src/sdk/verify.ts +3 -3
  78. package/src/service-worker/routeSolveRequests.ts +3 -3
  79. package/src/state/localStorage.ts +6 -6
  80. package/src/state/sagas.ts +18 -7
  81. package/src/state/selectors.ts +10 -10
  82. package/src/state/slices/boardInitialState.ts +3 -3
  83. package/src/state/slices/boardSlice.ts +20 -6
  84. package/src/state/slices/settingsInitialState.ts +3 -4
  85. package/src/state/slices/settingsSlice.ts +5 -5
  86. package/src/styles/variables.scss +0 -9
  87. package/.next/static/chunks/main-0ecb9ccfcb6c9b24.js +0 -1
  88. package/.next/static/chunks/pages/_app-bea4539a6b8042de.js +0 -32
  89. package/.next/static/chunks/pages/index-4e8566409753e1c3.js +0 -1
  90. package/.next/static/css/58053f9594647860.css +0 -2
  91. package/.next/static/css/60e8258da7362a1a.css +0 -1
  92. package/src/i18n/i18n.module.scss +0 -27
  93. package/src/modals/SettingsModal/components/ConfigSetting/options.ts +0 -19
  94. package/src/modals/SettingsModal/components/ConfigSetting/types.ts +0 -9
  95. package/src/modals/SettingsModal/components/InputModeSetting/types.ts +0 -7
  96. package/src/modals/SettingsModal/components/LocaleSetting/types.ts +0 -9
  97. /package/.next/static/{_yG9K-PD5kWT_p4sMdCSV → wNIKOJJzkMSJYb2nOL21o}/_ssgManifest.js +0 -0
@@ -742,6 +742,9 @@ class Config {
742
742
  get boardWidth() {
743
743
  return this.config.boardWidth;
744
744
  }
745
+ get game() {
746
+ return this.config.game;
747
+ }
745
748
  get locale() {
746
749
  return this.config.locale;
747
750
  }
@@ -833,6 +836,26 @@ class FinalPattern extends Pattern_1.default {
833
836
  exports["default"] = FinalPattern;
834
837
 
835
838
 
839
+ /***/ }),
840
+
841
+ /***/ 47659:
842
+ /***/ ((__unused_webpack_module, exports) => {
843
+
844
+
845
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
846
+ exports.isGame = void 0;
847
+ var Game;
848
+ (function (Game) {
849
+ Game["Literaki"] = "literaki";
850
+ Game["Scrabble"] = "scrabble";
851
+ Game["SuperScrabble"] = "super-scrabble";
852
+ })(Game || (Game = {}));
853
+ const games = Object.values(Game);
854
+ const isGame = (locale) => games.includes(locale);
855
+ exports.isGame = isGame;
856
+ exports["default"] = Game;
857
+
858
+
836
859
  /***/ }),
837
860
 
838
861
  /***/ 44405:
@@ -884,7 +907,11 @@ exports["default"] = HorizontalPattern;
884
907
 
885
908
  Object.defineProperty(exports, "__esModule", ({ value: true }));
886
909
  exports.isLocale = void 0;
887
- // eslint-disable-next-line no-shadow
910
+ /**
911
+ * Locales are defined using IETF language tags
912
+ * @see https://en.wikipedia.org/wiki/IETF_language_tag
913
+ * @see https://en.wikipedia.org/wiki/ISO_3166-1
914
+ */
888
915
  var Locale;
889
916
  (function (Locale) {
890
917
  Locale["DE_DE"] = "de-DE";
@@ -1211,7 +1238,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1211
1238
  return (mod && mod.__esModule) ? mod : { "default": mod };
1212
1239
  };
1213
1240
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1214
- exports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.isLocale = exports.Locale = exports.isObject = exports.isError = exports.HorizontalPattern = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = void 0;
1241
+ exports.isObject = exports.isError = exports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.isLocale = exports.Locale = exports.HorizontalPattern = exports.isGame = exports.Game = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = void 0;
1215
1242
  var Board_1 = __webpack_require__(83017);
1216
1243
  Object.defineProperty(exports, "Board", ({ enumerable: true, get: function () { return __importDefault(Board_1).default; } }));
1217
1244
  var BoardJson_1 = __webpack_require__(28508);
@@ -1228,12 +1255,11 @@ var Config_1 = __webpack_require__(68725);
1228
1255
  Object.defineProperty(exports, "Config", ({ enumerable: true, get: function () { return __importDefault(Config_1).default; } }));
1229
1256
  var FinalPattern_1 = __webpack_require__(79238);
1230
1257
  Object.defineProperty(exports, "FinalPattern", ({ enumerable: true, get: function () { return __importDefault(FinalPattern_1).default; } }));
1258
+ var Game_1 = __webpack_require__(47659);
1259
+ Object.defineProperty(exports, "Game", ({ enumerable: true, get: function () { return __importDefault(Game_1).default; } }));
1260
+ Object.defineProperty(exports, "isGame", ({ enumerable: true, get: function () { return Game_1.isGame; } }));
1231
1261
  var HorizontalPattern_1 = __webpack_require__(44405);
1232
1262
  Object.defineProperty(exports, "HorizontalPattern", ({ enumerable: true, get: function () { return __importDefault(HorizontalPattern_1).default; } }));
1233
- var isError_1 = __webpack_require__(24075);
1234
- Object.defineProperty(exports, "isError", ({ enumerable: true, get: function () { return __importDefault(isError_1).default; } }));
1235
- var isObject_1 = __webpack_require__(93518);
1236
- Object.defineProperty(exports, "isObject", ({ enumerable: true, get: function () { return __importDefault(isObject_1).default; } }));
1237
1263
  var Locale_1 = __webpack_require__(28044);
1238
1264
  Object.defineProperty(exports, "Locale", ({ enumerable: true, get: function () { return __importDefault(Locale_1).default; } }));
1239
1265
  Object.defineProperty(exports, "isLocale", ({ enumerable: true, get: function () { return Locale_1.isLocale; } }));
@@ -1251,6 +1277,10 @@ var WordBonus_1 = __webpack_require__(39667);
1251
1277
  Object.defineProperty(exports, "WordBonus", ({ enumerable: true, get: function () { return __importDefault(WordBonus_1).default; } }));
1252
1278
  var WordDefinition_1 = __webpack_require__(43184);
1253
1279
  Object.defineProperty(exports, "WordDefinition", ({ enumerable: true, get: function () { return __importDefault(WordDefinition_1).default; } }));
1280
+ var isError_1 = __webpack_require__(24075);
1281
+ Object.defineProperty(exports, "isError", ({ enumerable: true, get: function () { return __importDefault(isError_1).default; } }));
1282
+ var isObject_1 = __webpack_require__(93518);
1283
+ Object.defineProperty(exports, "isObject", ({ enumerable: true, get: function () { return __importDefault(isObject_1).default; } }));
1254
1284
 
1255
1285
 
1256
1286
  /***/ }),
@@ -213,8 +213,26 @@ function handleLoading(img, src, placeholder, onLoadRef, onLoadingCompleteRef, s
213
213
  if (false) {}
214
214
  });
215
215
  }
216
+ function getDynamicProps(fetchPriority) {
217
+ const [majorStr, minorStr] = _react.version.split(".");
218
+ const major = parseInt(majorStr, 10);
219
+ const minor = parseInt(minorStr, 10);
220
+ if (major > 18 || major === 18 && minor >= 3) {
221
+ // In React 18.3.0 or newer, we must use camelCase
222
+ // prop to avoid "Warning: Invalid DOM property".
223
+ // See https://github.com/facebook/react/pull/25927
224
+ return {
225
+ fetchPriority
226
+ };
227
+ }
228
+ // In React 18.2.0 or older, we must use lowercase prop
229
+ // to avoid "Warning: Invalid DOM property".
230
+ return {
231
+ fetchpriority: fetchPriority
232
+ };
233
+ }
216
234
  const ImageElement = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
217
- var { imgAttributes , heightInt , widthInt , qualityInt , className , imgStyle , blurStyle , isLazy , fill , placeholder , loading , srcString , config , unoptimized , loader , onLoadRef , onLoadingCompleteRef , setBlurComplete , setShowAltText , onLoad , onError } = _param, rest = _object_without_properties_loose(_param, [
235
+ var { imgAttributes , heightInt , widthInt , qualityInt , className , imgStyle , blurStyle , isLazy , fetchPriority , fill , placeholder , loading , srcString , config , unoptimized , loader , onLoadRef , onLoadingCompleteRef , setBlurComplete , setShowAltText , onLoad , onError } = _param, rest = _object_without_properties_loose(_param, [
218
236
  "imgAttributes",
219
237
  "heightInt",
220
238
  "widthInt",
@@ -223,6 +241,7 @@ const ImageElement = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)
223
241
  "imgStyle",
224
242
  "blurStyle",
225
243
  "isLazy",
244
+ "fetchPriority",
226
245
  "fill",
227
246
  "placeholder",
228
247
  "loading",
@@ -238,8 +257,8 @@ const ImageElement = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)
238
257
  "onError"
239
258
  ]);
240
259
  loading = isLazy ? "lazy" : loading;
241
- return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("img", Object.assign({}, rest, {
242
- // @ts-ignore - TODO: upgrade to `@types/react@17`
260
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("img", Object.assign({}, rest, getDynamicProps(fetchPriority), {
261
+ // @ts-expect-error - TODO: upgrade to `@types/react@18`
243
262
  loading: loading,
244
263
  width: widthInt,
245
264
  height: heightInt,
@@ -298,7 +317,7 @@ const ImageElement = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)
298
317
  })));
299
318
  });
300
319
  const Image = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
301
- var { src , sizes , unoptimized =false , priority =false , loading , className , quality , width , height , fill , style , onLoad , onLoadingComplete , placeholder ="empty" , blurDataURL , layout , objectFit , objectPosition , lazyBoundary , lazyRoot } = _param, all = _object_without_properties_loose(_param, [
320
+ var { src , sizes , unoptimized =false , priority =false , loading , className , quality , width , height , fill , style , onLoad , onLoadingComplete , placeholder ="empty" , blurDataURL , fetchPriority , layout , objectFit , objectPosition , lazyBoundary , lazyRoot } = _param, all = _object_without_properties_loose(_param, [
302
321
  "src",
303
322
  "sizes",
304
323
  "unoptimized",
@@ -314,6 +333,7 @@ const Image = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
314
333
  "onLoadingComplete",
315
334
  "placeholder",
316
335
  "blurDataURL",
336
+ "fetchPriority",
317
337
  "layout",
318
338
  "objectFit",
319
339
  "objectPosition",
@@ -418,7 +438,7 @@ const Image = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
418
438
  }
419
439
  src = typeof src === "string" ? src : staticSrc;
420
440
  let isLazy = !priority && (loading === "lazy" || typeof loading === "undefined");
421
- if (src.startsWith("data:") || src.startsWith("blob:")) {
441
+ if (!src || src.startsWith("data:") || src.startsWith("blob:")) {
422
442
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
423
443
  unoptimized = true;
424
444
  isLazy = false;
@@ -431,6 +451,9 @@ const Image = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
431
451
  // through the built-in Image Optimization API.
432
452
  unoptimized = true;
433
453
  }
454
+ if (priority) {
455
+ fetchPriority = "high";
456
+ }
434
457
  const [blurComplete, setBlurComplete] = (0, _react).useState(false);
435
458
  const [showAltText, setShowAltText] = (0, _react).useState(false);
436
459
  const qualityInt = getInt(quality);
@@ -473,12 +496,6 @@ const Image = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
473
496
  });
474
497
  let srcString = src;
475
498
  if (false) {}
476
- const linkProps = {
477
- // @ts-expect-error upgrade react types to react 18
478
- imageSrcSet: imgAttributes.srcSet,
479
- imageSizes: imgAttributes.sizes,
480
- crossOrigin: rest.crossOrigin
481
- };
482
499
  const onLoadRef = (0, _react).useRef(onLoad);
483
500
  (0, _react).useEffect(()=>{
484
501
  onLoadRef.current = onLoad;
@@ -502,6 +519,7 @@ const Image = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
502
519
  blurStyle,
503
520
  loading,
504
521
  config,
522
+ fetchPriority,
505
523
  fill,
506
524
  unoptimized,
507
525
  placeholder,
@@ -522,8 +540,12 @@ const Image = /*#__PURE__*/ (0, _react).forwardRef((_param, forwardedRef)=>{
522
540
  key: "__nimg-" + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes,
523
541
  rel: "preload",
524
542
  as: "image",
525
- href: imgAttributes.srcSet ? undefined : imgAttributes.src
526
- }, linkProps))) : null);
543
+ href: imgAttributes.srcSet ? undefined : imgAttributes.src,
544
+ // @ts-expect-error - TODO: upgrade to `@types/react@18`
545
+ imageSrcSet: imgAttributes.srcSet,
546
+ imageSizes: imgAttributes.sizes,
547
+ crossOrigin: rest.crossOrigin
548
+ }, getDynamicProps(fetchPriority)))) : null);
527
549
  });
528
550
  var _default = Image;
529
551
  exports["default"] = _default;
@@ -289,7 +289,9 @@ function getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = ""
289
289
  };
290
290
  }
291
291
  class Head extends _react.default.Component {
292
- static contextType = _htmlContext.HtmlContext;
292
+ static{
293
+ this.contextType = _htmlContext.HtmlContext;
294
+ }
293
295
  getCssLinks(files) {
294
296
  const { assetPrefix , devOnlyCacheBusterQueryString , dynamicImports , crossOrigin , optimizeCss , optimizeFonts } = this.context;
295
297
  const cssFiles = files.allFiles.filter((f)=>f.endsWith(".css"));
@@ -441,10 +443,23 @@ class Head extends _react.default.Component {
441
443
  let otherHeadElements = [];
442
444
  if (head) {
443
445
  head.forEach((c)=>{
446
+ let metaTag;
447
+ if (this.context.strictNextHead) {
448
+ metaTag = /*#__PURE__*/ _react.default.createElement("meta", {
449
+ name: "next-head",
450
+ content: "1"
451
+ });
452
+ }
444
453
  if (c && c.type === "link" && c.props["rel"] === "preload" && c.props["as"] === "style") {
454
+ metaTag && cssPreloads.push(metaTag);
445
455
  cssPreloads.push(c);
446
456
  } else {
447
- c && otherHeadElements.push(c);
457
+ if (c) {
458
+ if (metaTag && (c.type !== "meta" || !c.props["charSet"])) {
459
+ otherHeadElements.push(metaTag);
460
+ }
461
+ otherHeadElements.push(c);
462
+ }
448
463
  }
449
464
  });
450
465
  head = cssPreloads.concat(otherHeadElements);
@@ -507,7 +522,7 @@ class Head extends _react.default.Component {
507
522
  dangerouslySetInnerHTML: {
508
523
  __html: `body{display:block}`
509
524
  }
510
- }))), head, /*#__PURE__*/ _react.default.createElement("meta", {
525
+ }))), head, this.context.strictNextHead ? null : /*#__PURE__*/ _react.default.createElement("meta", {
511
526
  name: "next-head-count",
512
527
  content: _react.default.Children.count(head || []).toString()
513
528
  }), children, optimizeFonts && /*#__PURE__*/ _react.default.createElement("meta", {
@@ -596,7 +611,9 @@ function handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props) {
596
611
  __NEXT_DATA__.scriptLoader = scriptLoaderItems;
597
612
  }
598
613
  class NextScript extends _react.default.Component {
599
- static contextType = _htmlContext.HtmlContext;
614
+ static{
615
+ this.contextType = _htmlContext.HtmlContext;
616
+ }
600
617
  getDynamicChunks(files) {
601
618
  return getDynamicChunks(this.context, this.props, files);
602
619
  }