@scrabble-solver/scrabble-solver 2.8.6 → 2.8.7

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 (85) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +9 -9
  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/413.js +183 -94
  14. package/.next/server/chunks/{206.js → 429.js} +2 -4137
  15. package/.next/server/chunks/515.js +92 -70
  16. package/.next/server/chunks/{907.js → 911.js} +134 -367
  17. package/.next/server/chunks/939.js +218 -0
  18. package/.next/server/middleware-build-manifest.js +1 -1
  19. package/.next/server/pages/404.html +2 -2
  20. package/.next/server/pages/404.js.nft.json +1 -1
  21. package/.next/server/pages/500.html +2 -2
  22. package/.next/server/pages/_app.js.nft.json +1 -1
  23. package/.next/server/pages/_document.js.nft.json +1 -1
  24. package/.next/server/pages/_error.js.nft.json +1 -1
  25. package/.next/server/pages/api/dictionary/[locale]/[word].js +33 -17
  26. package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  27. package/.next/server/pages/api/solve.js +399 -56
  28. package/.next/server/pages/api/solve.js.nft.json +1 -1
  29. package/.next/server/pages/api/visit.js +3 -2
  30. package/.next/server/pages/api/visit.js.nft.json +1 -1
  31. package/.next/server/pages/index.html +3 -7
  32. package/.next/server/pages/index.js +12 -14
  33. package/.next/server/pages/index.js.nft.json +1 -1
  34. package/.next/server/pages/index.json +1 -1
  35. package/.next/static/chunks/56-cf37c430261bbea5.js +1 -0
  36. package/.next/static/chunks/pages/_app-0b12a65bea70a0df.js +1 -0
  37. package/.next/static/chunks/pages/index-fcb69802550afb81.js +1 -0
  38. package/.next/static/css/1f39b55d50f5b30b.css +1 -0
  39. package/.next/static/css/751e8a14776d05d8.css +1 -0
  40. package/.next/static/z_0_lqfmiI_ISokr6NNRq/_buildManifest.js +1 -0
  41. package/.next/static/{VjSpyGDWyVaO0muz54q_j → z_0_lqfmiI_ISokr6NNRq}/_ssgManifest.js +0 -0
  42. package/.next/trace +40 -42
  43. package/package.json +9 -9
  44. package/src/api/index.ts +3 -9
  45. package/src/api/isBoardValid.ts +43 -0
  46. package/src/api/isCellValid.ts +26 -0
  47. package/src/api/isRowValid.ts +19 -0
  48. package/src/components/Dictionary/Dictionary.module.scss +20 -0
  49. package/src/components/Dictionary/Dictionary.tsx +40 -29
  50. package/src/components/Results/Cell.tsx +3 -2
  51. package/src/components/Results/Result.tsx +16 -6
  52. package/src/components/ResultsInput/ResultsInput.tsx +11 -3
  53. package/src/hooks/useIsTablet.ts +2 -2
  54. package/src/lib/getRemainingTiles.ts +1 -1
  55. package/src/lib/index.ts +2 -1
  56. package/src/lib/isRegExp.ts +11 -0
  57. package/src/lib/isStringArray.ts +5 -0
  58. package/src/lib/sortResults.ts +5 -5
  59. package/src/pages/api/dictionary/[locale]/[word].ts +35 -11
  60. package/src/pages/api/solve.ts +39 -19
  61. package/src/pages/api/visit.ts +1 -0
  62. package/src/pages/index.module.scss +5 -11
  63. package/src/pages/index.tsx +5 -5
  64. package/src/sdk/{findWordDefinition.ts → findWordDefinitions.ts} +3 -3
  65. package/src/sdk/index.ts +1 -1
  66. package/src/state/sagas.ts +11 -11
  67. package/src/state/selectors.ts +6 -2
  68. package/src/state/slices/dictionaryInitialState.ts +3 -3
  69. package/src/state/slices/dictionarySlice.ts +4 -10
  70. package/.next/static/VjSpyGDWyVaO0muz54q_j/_buildManifest.js +0 -1
  71. package/.next/static/chunks/56-e2797384ae4b0fc0.js +0 -1
  72. package/.next/static/chunks/pages/_app-5136d33b9b007fd7.js +0 -1
  73. package/.next/static/chunks/pages/index-13ea7770a65c69ee.js +0 -1
  74. package/.next/static/css/3159cfe62ff742a3.css +0 -1
  75. package/.next/static/css/729bb37fe8f9bee6.css +0 -1
  76. package/src/api/validateBoard.ts +0 -45
  77. package/src/api/validateCell.ts +0 -40
  78. package/src/api/validateCharacter.ts +0 -14
  79. package/src/api/validateCharacters.ts +0 -24
  80. package/src/api/validateConfigId.ts +0 -9
  81. package/src/api/validateLocale.ts +0 -15
  82. package/src/api/validateRow.ts +0 -17
  83. package/src/api/validateTile.ts +0 -21
  84. package/src/api/validateWord.ts +0 -11
  85. package/src/lib/isLocale.ts +0 -7
@@ -65,10 +65,11 @@ module.exports = {
65
65
  // Exports
66
66
  module.exports = {
67
67
  "dictionary": "Dictionary_dictionary__0CM4j",
68
- "content": "Dictionary_content__Ehz1U",
69
- "word": "Dictionary_word__Y2PlX",
68
+ "result": "Dictionary_result__eFJ65",
70
69
  "isAllowed": "Dictionary_isAllowed__VfACe",
70
+ "content": "Dictionary_content__Ehz1U",
71
71
  "isNotAllowed": "Dictionary_isNotAllowed__HvWIM",
72
+ "word": "Dictionary_word__Y2PlX",
72
73
  "definitions": "Dictionary_definitions__UBslC",
73
74
  "definition": "Dictionary_definition__lU1Vz"
74
75
  };
@@ -598,7 +599,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
598
599
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
599
600
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
600
601
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
601
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
602
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
602
603
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
603
604
  /* harmony import */ var _CellPure__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80640);
604
605
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _CellPure__WEBPACK_IMPORTED_MODULE_6__]);
@@ -880,7 +881,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
880
881
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
881
882
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69755);
882
883
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_3__);
883
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
884
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
884
885
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
885
886
  /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(95137);
886
887
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__]);
@@ -1327,46 +1328,55 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
1327
1328
 
1328
1329
  const Dictionary = ({ className })=>{
1329
1330
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTranslate */ .qM)();
1330
- const { definitions , isAllowed , isLoading , word } = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectDictionary */ .w1);
1331
+ const { results , isLoading } = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectDictionary */ .w1);
1332
+ const isFirstAllowed = results.length > 0 ? results[0].isAllowed : undefined;
1331
1333
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1332
1334
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().dictionary), className, {
1333
- [(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isAllowed)]: isAllowed === true,
1334
- [(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isNotAllowed)]: isAllowed === false
1335
+ [(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isAllowed)]: isFirstAllowed === true,
1336
+ [(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isNotAllowed)]: isFirstAllowed === false
1335
1337
  }),
1336
1338
  children: [
1337
- typeof word === "undefined" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
1338
- type: "info",
1339
- children: translate("dictionary.empty-state.uninitialized")
1340
- }),
1341
- typeof word !== "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1342
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().content),
1343
- children: [
1344
- word && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h2", {
1345
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().word),
1346
- children: word
1347
- }),
1348
- isAllowed === false && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1349
- children: translate("dictionary.empty-state.not-allowed")
1339
+ results.map(({ definitions , isAllowed , word })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1340
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().result), {
1341
+ [(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isAllowed)]: isAllowed === true,
1342
+ [(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isNotAllowed)]: isAllowed === false
1350
1343
  }),
1351
- isAllowed === true && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1352
- children: [
1353
- definitions.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1354
- children: translate("dictionary.empty-state.no-definitions")
1355
- }),
1356
- definitions.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("ul", {
1357
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().definitions),
1358
- children: definitions.map((result, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("li", {
1359
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().definition),
1360
- children: result
1361
- }, index))
1362
- })
1363
- ]
1364
- }),
1365
- !isLoading && isAllowed === null && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1366
- children: translate("dictionary.empty-state.no-results")
1367
- })
1368
- ]
1369
- }),
1344
+ children: [
1345
+ typeof word === "undefined" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
1346
+ type: "info",
1347
+ children: translate("dictionary.empty-state.uninitialized")
1348
+ }),
1349
+ typeof word !== "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1350
+ className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().content),
1351
+ children: [
1352
+ word && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h2", {
1353
+ className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().word),
1354
+ children: word
1355
+ }),
1356
+ isAllowed === false && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1357
+ children: translate("dictionary.empty-state.not-allowed")
1358
+ }),
1359
+ isAllowed === true && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1360
+ children: [
1361
+ definitions.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1362
+ children: translate("dictionary.empty-state.no-definitions")
1363
+ }),
1364
+ definitions.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("ul", {
1365
+ className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().definitions),
1366
+ children: definitions.map((result, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("li", {
1367
+ className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().definition),
1368
+ children: result
1369
+ }, index))
1370
+ })
1371
+ ]
1372
+ }),
1373
+ !isLoading && isAllowed === null && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1374
+ children: translate("dictionary.empty-state.no-results")
1375
+ })
1376
+ ]
1377
+ })
1378
+ ]
1379
+ }, word)),
1370
1380
  isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Loading__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {})
1371
1381
  ]
1372
1382
  });
@@ -1814,7 +1824,7 @@ __webpack_async_result__();
1814
1824
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
1815
1825
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1816
1826
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46473);
1817
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18729);
1827
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92237);
1818
1828
  /* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50237);
1819
1829
 
1820
1830
 
@@ -2355,7 +2365,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2355
2365
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
2356
2366
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
2357
2367
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
2358
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
2368
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
2359
2369
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
2360
2370
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42687);
2361
2371
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__);
@@ -2453,7 +2463,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2453
2463
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
2454
2464
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
2455
2465
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
2456
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
2466
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
2457
2467
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(90485);
2458
2468
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51413);
2459
2469
  /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54031);
@@ -2766,9 +2776,9 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
2766
2776
 
2767
2777
 
2768
2778
 
2769
- const Cell = ({ className , translationKey , value })=>{
2779
+ const Cell = ({ className , translationKey , tooltip , value })=>{
2770
2780
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTranslate */ .qM)();
2771
- const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_3__/* .useTooltip */ .l)(`${translate(translationKey)}: ${value}`);
2781
+ const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_3__/* .useTooltip */ .l)(`${translate(translationKey)}: ${tooltip || value}`);
2772
2782
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
2773
2783
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().cell), className),
2774
2784
  ...triggerProps,
@@ -2882,6 +2892,7 @@ const Result = ({ index , style })=>{
2882
2892
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2883
2893
  const results = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectSortedFilteredResults */ .dN);
2884
2894
  const result = results[index];
2895
+ const otherWords = result.words.slice(1).join(" / ").toLocaleUpperCase();
2885
2896
  const handleClick = ()=>{
2886
2897
  dispatch(state__WEBPACK_IMPORTED_MODULE_2__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
2887
2898
  };
@@ -2912,32 +2923,33 @@ const Result = ({ index , style })=>{
2912
2923
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2913
2924
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().word),
2914
2925
  translationKey: "common.word",
2915
- value: result.word
2926
+ value: `${result.word.toLocaleUpperCase()}${otherWords.length > 0 ? ` (${otherWords})` : ""}`
2916
2927
  }),
2917
2928
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2918
2929
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2919
2930
  translationKey: "common.tiles",
2920
- value: result.numberOfTiles
2931
+ value: result.tilesCount
2921
2932
  }),
2922
2933
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2923
2934
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2924
2935
  translationKey: "common.consonants",
2925
- value: result.numberOfConsonants
2936
+ value: result.consonantsCount
2926
2937
  }),
2927
2938
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2928
2939
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2929
2940
  translationKey: "common.vowels",
2930
- value: result.numberOfVowels
2941
+ value: result.vowelsCount
2931
2942
  }),
2932
2943
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2933
2944
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2934
2945
  translationKey: "common.blanks",
2935
- value: result.numberOfBlanks
2946
+ value: result.blanksCount
2936
2947
  }),
2937
2948
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2938
2949
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2939
2950
  translationKey: "common.words",
2940
- value: result.numberOfWords
2951
+ tooltip: `${result.wordsCount} (${result.words.join(" / ").toLocaleUpperCase()})`,
2952
+ value: result.wordsCount
2941
2953
  }),
2942
2954
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2943
2955
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points),
@@ -3202,32 +3214,42 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3202
3214
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3203
3215
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
3204
3216
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
3205
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
3206
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
3207
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51413);
3208
- /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35628);
3209
- /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4__);
3210
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
3211
- state__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3217
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
3218
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3219
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
3220
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
3221
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
3222
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
3223
+ /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35628);
3224
+ /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__);
3225
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__]);
3226
+ state__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3227
+
3228
+
3212
3229
 
3213
3230
 
3214
3231
 
3215
3232
 
3216
3233
 
3217
3234
  const ResultsInput = ({ className })=>{
3218
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
3219
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTranslate */ .qM)();
3220
- const value = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_3__/* .selectResultsQuery */ .QL);
3235
+ const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
3236
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
3237
+ const value = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultsQuery */ .QL);
3238
+ const { 0: localValue , 1: setLocalValue } = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(value);
3221
3239
  const handleChange = (event)=>{
3222
- dispatch(state__WEBPACK_IMPORTED_MODULE_3__/* .resultsSlice.actions.changeQuery */ ._C.actions.changeQuery(event.target.value));
3240
+ const newValue = event.target.value;
3241
+ setLocalValue(newValue);
3242
+ if ((0,lib__WEBPACK_IMPORTED_MODULE_4__/* .isRegExp */ .Kj)(newValue)) {
3243
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeQuery */ ._C.actions.changeQuery(newValue));
3244
+ }
3223
3245
  };
3224
3246
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("form", {
3225
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4___default().resultsInput), className),
3247
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default().resultsInput), className),
3226
3248
  children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
3227
- className: (_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4___default().input),
3249
+ className: (_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default().input),
3228
3250
  placeholder: translate("results.input.placeholder"),
3229
3251
  type: "text",
3230
- value: value,
3252
+ value: localValue,
3231
3253
  onChange: handleChange
3232
3254
  })
3233
3255
  });
@@ -4118,7 +4140,7 @@ var build = __webpack_require__(7618);
4118
4140
  // EXTERNAL MODULE: external "react"
4119
4141
  var external_react_ = __webpack_require__(16689);
4120
4142
  // EXTERNAL MODULE: ./src/lib/index.ts + 27 modules
4121
- var lib = __webpack_require__(18729);
4143
+ var lib = __webpack_require__(92237);
4122
4144
  // EXTERNAL MODULE: external "classnames"
4123
4145
  var external_classnames_ = __webpack_require__(59003);
4124
4146
  var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
@@ -4315,7 +4337,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4315
4337
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
4316
4338
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
4317
4339
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26183);
4318
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(18729);
4340
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92237);
4319
4341
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8550);
4320
4342
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(222);
4321
4343
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__);
@@ -4591,8 +4613,8 @@ __webpack_async_result__();
4591
4613
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_0__);
4592
4614
 
4593
4615
  const useIsTablet = ()=>{
4594
- const isTabletHeight = (0,react_use__WEBPACK_IMPORTED_MODULE_0__.useMedia)("(max-height: 800px)");
4595
- const isTabletWidth = (0,react_use__WEBPACK_IMPORTED_MODULE_0__.useMedia)("(max-width: 1024px)");
4616
+ const isTabletHeight = (0,react_use__WEBPACK_IMPORTED_MODULE_0__.useMedia)("(max-height: 800px)", false);
4617
+ const isTabletWidth = (0,react_use__WEBPACK_IMPORTED_MODULE_0__.useMedia)("(max-width: 1024px)", false);
4596
4618
  const isTablet = isTabletHeight || isTabletWidth;
4597
4619
  return isTablet;
4598
4620
  };
@@ -4756,7 +4778,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4756
4778
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
4757
4779
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
4758
4780
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
4759
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18729);
4781
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92237);
4760
4782
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(51413);
4761
4783
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
4762
4784
  state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
@@ -4855,7 +4877,7 @@ __webpack_async_result__();
4855
4877
  /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_2__);
4856
4878
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63938);
4857
4879
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_portal__WEBPACK_IMPORTED_MODULE_3__);
4858
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
4880
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
4859
4881
 
4860
4882
 
4861
4883