@scrabble-solver/scrabble-solver 2.8.5 → 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 (93) 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 +111 -78
  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 +3 -2
  23. package/.next/server/pages/_app.js.nft.json +1 -1
  24. package/.next/server/pages/_document.js.nft.json +1 -1
  25. package/.next/server/pages/_error.js.nft.json +1 -1
  26. package/.next/server/pages/api/dictionary/[locale]/[word].js +33 -17
  27. package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  28. package/.next/server/pages/api/solve.js +404 -58
  29. package/.next/server/pages/api/solve.js.nft.json +1 -1
  30. package/.next/server/pages/api/visit.js +3 -2
  31. package/.next/server/pages/api/visit.js.nft.json +1 -1
  32. package/.next/server/pages/index.html +3 -7
  33. package/.next/server/pages/index.js +12 -14
  34. package/.next/server/pages/index.js.nft.json +1 -1
  35. package/.next/server/pages/index.json +1 -1
  36. package/.next/static/chunks/56-cf37c430261bbea5.js +1 -0
  37. package/.next/static/chunks/pages/_app-0b12a65bea70a0df.js +1 -0
  38. package/.next/static/chunks/pages/index-fcb69802550afb81.js +1 -0
  39. package/.next/static/css/1f39b55d50f5b30b.css +1 -0
  40. package/.next/static/css/751e8a14776d05d8.css +1 -0
  41. package/.next/static/z_0_lqfmiI_ISokr6NNRq/_buildManifest.js +1 -0
  42. package/.next/static/{TzKQ3IntkvaYmHBkWpfoi → z_0_lqfmiI_ISokr6NNRq}/_ssgManifest.js +0 -0
  43. package/.next/trace +40 -42
  44. package/package.json +9 -9
  45. package/src/api/index.ts +3 -9
  46. package/src/api/isBoardValid.ts +43 -0
  47. package/src/api/isCellValid.ts +26 -0
  48. package/src/api/isRowValid.ts +19 -0
  49. package/src/components/Board/Board.tsx +3 -1
  50. package/src/components/Board/BoardPure.tsx +4 -1
  51. package/src/components/Board/components/Cell/Cell.module.scss +28 -11
  52. package/src/components/Board/components/Cell/Cell.tsx +12 -1
  53. package/src/components/Board/components/Cell/CellPure.tsx +3 -1
  54. package/src/components/Board/components/Cell/lib.ts +10 -2
  55. package/src/components/Dictionary/Dictionary.module.scss +20 -0
  56. package/src/components/Dictionary/Dictionary.tsx +40 -29
  57. package/src/components/Results/Cell.tsx +3 -2
  58. package/src/components/Results/Result.tsx +16 -6
  59. package/src/components/ResultsInput/ResultsInput.tsx +11 -3
  60. package/src/hooks/useIsTablet.ts +2 -2
  61. package/src/lib/getRemainingTiles.ts +1 -1
  62. package/src/lib/index.ts +2 -1
  63. package/src/lib/isRegExp.ts +11 -0
  64. package/src/lib/isStringArray.ts +5 -0
  65. package/src/lib/sortResults.ts +5 -5
  66. package/src/pages/_app.tsx +6 -3
  67. package/src/pages/api/dictionary/[locale]/[word].ts +35 -11
  68. package/src/pages/api/solve.ts +39 -19
  69. package/src/pages/api/visit.ts +1 -0
  70. package/src/pages/index.module.scss +5 -11
  71. package/src/pages/index.tsx +5 -5
  72. package/src/sdk/{findWordDefinition.ts → findWordDefinitions.ts} +3 -3
  73. package/src/sdk/index.ts +1 -1
  74. package/src/state/sagas.ts +11 -11
  75. package/src/state/selectors.ts +6 -2
  76. package/src/state/slices/dictionaryInitialState.ts +3 -3
  77. package/src/state/slices/dictionarySlice.ts +4 -10
  78. package/.next/static/TzKQ3IntkvaYmHBkWpfoi/_buildManifest.js +0 -1
  79. package/.next/static/chunks/56-2d34867599a0ac66.js +0 -1
  80. package/.next/static/chunks/pages/_app-6ffa2ab900772b67.js +0 -1
  81. package/.next/static/chunks/pages/index-13ea7770a65c69ee.js +0 -1
  82. package/.next/static/css/3159cfe62ff742a3.css +0 -1
  83. package/.next/static/css/551d09cac435debb.css +0 -1
  84. package/src/api/validateBoard.ts +0 -45
  85. package/src/api/validateCell.ts +0 -40
  86. package/src/api/validateCharacter.ts +0 -14
  87. package/src/api/validateCharacters.ts +0 -24
  88. package/src/api/validateConfigId.ts +0 -9
  89. package/src/api/validateLocale.ts +0 -15
  90. package/src/api/validateRow.ts +0 -17
  91. package/src/api/validateTile.ts +0 -21
  92. package/src/api/validateWord.ts +0 -11
  93. package/src/lib/isLocale.ts +0 -7
@@ -20,14 +20,15 @@ module.exports = {
20
20
  // Exports
21
21
  module.exports = {
22
22
  "cell": "Cell_cell__2GOSl",
23
+ "bonusStart": "Cell_bonusStart__zy3BV",
24
+ "bonusWord2": "Cell_bonusWord2__Ztd1C",
25
+ "bonusWord3": "Cell_bonusWord3__eTB6G",
23
26
  "bonusCharacter1": "Cell_bonusCharacter1__zJUuA",
24
27
  "bonusCharacter2": "Cell_bonusCharacter2__HZDn8",
25
28
  "bonusCharacter3": "Cell_bonusCharacter3__pWf1f",
26
29
  "bonusCharacter5": "Cell_bonusCharacter5__LdDrj",
27
30
  "bonusCharacterMultiplier2": "Cell_bonusCharacterMultiplier2__Qpcd7",
28
31
  "bonusCharacterMultiplier3": "Cell_bonusCharacterMultiplier3__0qtZY",
29
- "bonusWord2": "Cell_bonusWord2__Ztd1C",
30
- "bonusWord3": "Cell_bonusWord3__eTB6G",
31
32
  "characterPoints1": "Cell_characterPoints1__CKxm0",
32
33
  "characterPoints2": "Cell_characterPoints2__QkYnj",
33
34
  "characterPoints3": "Cell_characterPoints3___SyO2",
@@ -64,10 +65,11 @@ module.exports = {
64
65
  // Exports
65
66
  module.exports = {
66
67
  "dictionary": "Dictionary_dictionary__0CM4j",
67
- "content": "Dictionary_content__Ehz1U",
68
- "word": "Dictionary_word__Y2PlX",
68
+ "result": "Dictionary_result__eFJ65",
69
69
  "isAllowed": "Dictionary_isAllowed__VfACe",
70
+ "content": "Dictionary_content__Ehz1U",
70
71
  "isNotAllowed": "Dictionary_isNotAllowed__HvWIM",
72
+ "word": "Dictionary_word__Y2PlX",
71
73
  "definitions": "Dictionary_definitions__UBslC",
72
74
  "definition": "Dictionary_definition__lU1Vz"
73
75
  };
@@ -470,10 +472,12 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
470
472
 
471
473
  const Board = ({ cellSize , className , innerRef })=>{
472
474
  const rows = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectRowsWithCandidate */ .ZA);
475
+ const board = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectBoard */ .ZO);
473
476
  const [{ lastDirection , refs }, { onDirectionToggle , onFocus , onKeyDown }] = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__/* .useGrid */ .N)(rows);
474
477
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BoardPure__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
475
478
  className: className,
476
479
  cellSize: cellSize,
480
+ center: board.center,
477
481
  innerRef: innerRef,
478
482
  lastDirection: lastDirection,
479
483
  refs: refs,
@@ -514,7 +518,7 @@ _components__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then
514
518
 
515
519
 
516
520
 
517
- const BoardPure = ({ className , innerRef , lastDirection , refs , rows , cellSize , onDirectionToggle , onFocus , onKeyDown , })=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
521
+ const BoardPure = ({ className , cellSize , center , innerRef , lastDirection , refs , rows , onDirectionToggle , onFocus , onKeyDown , })=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
518
522
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().board), className),
519
523
  ref: innerRef,
520
524
  onKeyDown: onKeyDown,
@@ -525,6 +529,7 @@ const BoardPure = ({ className , innerRef , lastDirection , refs , rows , cellSi
525
529
  cell: cell,
526
530
  direction: lastDirection,
527
531
  inputRef: refs[y][x],
532
+ isCenter: center.x === x && center.y === y,
528
533
  size: cellSize,
529
534
  onDirectionToggle: onDirectionToggle,
530
535
  onFocus: onFocus
@@ -594,7 +599,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
594
599
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
595
600
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
596
601
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
597
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
602
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
598
603
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
599
604
  /* harmony import */ var _CellPure__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80640);
600
605
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _CellPure__WEBPACK_IMPORTED_MODULE_6__]);
@@ -606,7 +611,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
606
611
 
607
612
 
608
613
 
609
- const Cell = ({ cell , className , direction , inputRef , size , onDirectionToggle , onFocus })=>{
614
+ const Cell = ({ cell , className , direction , inputRef , isCenter , size , onDirectionToggle , onFocus , })=>{
610
615
  const { tile , x , y } = cell;
611
616
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
612
617
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
@@ -651,6 +656,7 @@ const Cell = ({ cell , className , direction , inputRef , size , onDirectionTogg
651
656
  className: className,
652
657
  direction: direction,
653
658
  inputRef: inputRef,
659
+ isCenter: isCenter,
654
660
  isEmpty: isEmpty,
655
661
  points: points,
656
662
  size: size,
@@ -699,8 +705,8 @@ _Button__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (a
699
705
 
700
706
 
701
707
 
702
- const CellPure = ({ bonus , cell , className , direction , inputRef , isEmpty , points , size , style , tile , translate , onDirectionToggleClick , onFocus , onToggleBlankClick , })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
703
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Cell_module_scss__WEBPACK_IMPORTED_MODULE_7___default().cell), (0,_lib__WEBPACK_IMPORTED_MODULE_6__/* .getBonusClassname */ .K)(cell, bonus), className, {
708
+ const CellPure = ({ bonus , cell , className , direction , inputRef , isCenter , isEmpty , points , size , style , tile , translate , onDirectionToggleClick , onFocus , onToggleBlankClick , })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
709
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Cell_module_scss__WEBPACK_IMPORTED_MODULE_7___default().cell), (0,_lib__WEBPACK_IMPORTED_MODULE_6__/* .getBonusClassname */ .K)(cell, bonus, isCenter), className, {
704
710
  [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_7___default().candidate)]: cell.isCandidate()
705
711
  }),
706
712
  style: style,
@@ -792,8 +798,14 @@ const CHARACTER_MULTIPLIER_CLASSNAMES = {
792
798
  2: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacterMultiplier2),
793
799
  3: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacterMultiplier3)
794
800
  };
795
- const getBonusClassname = (cell, bonus)=>{
796
- if (!bonus || !cell.isEmpty) {
801
+ const getBonusClassname = (cell, bonus, isCenter)=>{
802
+ if (!cell.isEmpty) {
803
+ return undefined;
804
+ }
805
+ if (isCenter) {
806
+ return (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusStart);
807
+ }
808
+ if (!bonus) {
797
809
  return undefined;
798
810
  }
799
811
  const { type } = bonus;
@@ -869,7 +881,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
869
881
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
870
882
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69755);
871
883
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_3__);
872
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
884
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
873
885
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
874
886
  /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(95137);
875
887
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__]);
@@ -1316,46 +1328,55 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
1316
1328
 
1317
1329
  const Dictionary = ({ className })=>{
1318
1330
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTranslate */ .qM)();
1319
- 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;
1320
1333
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1321
1334
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().dictionary), className, {
1322
- [(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isAllowed)]: isAllowed === true,
1323
- [(_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
1324
1337
  }),
1325
1338
  children: [
1326
- typeof word === "undefined" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
1327
- type: "info",
1328
- children: translate("dictionary.empty-state.uninitialized")
1329
- }),
1330
- typeof word !== "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1331
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().content),
1332
- children: [
1333
- word && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h2", {
1334
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().word),
1335
- children: word
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
1336
1343
  }),
1337
- isAllowed === false && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1338
- children: translate("dictionary.empty-state.not-allowed")
1339
- }),
1340
- isAllowed === true && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1341
- children: [
1342
- definitions.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1343
- children: translate("dictionary.empty-state.no-definitions")
1344
- }),
1345
- definitions.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("ul", {
1346
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().definitions),
1347
- children: definitions.map((result, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("li", {
1348
- className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().definition),
1349
- children: result
1350
- }, index))
1351
- })
1352
- ]
1353
- }),
1354
- !isLoading && isAllowed === null && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1355
- children: translate("dictionary.empty-state.no-results")
1356
- })
1357
- ]
1358
- }),
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)),
1359
1380
  isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Loading__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {})
1360
1381
  ]
1361
1382
  });
@@ -1803,7 +1824,7 @@ __webpack_async_result__();
1803
1824
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
1804
1825
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1805
1826
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46473);
1806
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18729);
1827
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92237);
1807
1828
  /* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50237);
1808
1829
 
1809
1830
 
@@ -2344,7 +2365,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2344
2365
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
2345
2366
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
2346
2367
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
2347
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
2368
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
2348
2369
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
2349
2370
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42687);
2350
2371
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__);
@@ -2442,7 +2463,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2442
2463
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
2443
2464
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
2444
2465
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
2445
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
2466
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
2446
2467
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(90485);
2447
2468
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51413);
2448
2469
  /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54031);
@@ -2755,9 +2776,9 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
2755
2776
 
2756
2777
 
2757
2778
 
2758
- const Cell = ({ className , translationKey , value })=>{
2779
+ const Cell = ({ className , translationKey , tooltip , value })=>{
2759
2780
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTranslate */ .qM)();
2760
- 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}`);
2761
2782
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
2762
2783
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().cell), className),
2763
2784
  ...triggerProps,
@@ -2871,6 +2892,7 @@ const Result = ({ index , style })=>{
2871
2892
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2872
2893
  const results = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectSortedFilteredResults */ .dN);
2873
2894
  const result = results[index];
2895
+ const otherWords = result.words.slice(1).join(" / ").toLocaleUpperCase();
2874
2896
  const handleClick = ()=>{
2875
2897
  dispatch(state__WEBPACK_IMPORTED_MODULE_2__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
2876
2898
  };
@@ -2901,32 +2923,33 @@ const Result = ({ index , style })=>{
2901
2923
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2902
2924
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().word),
2903
2925
  translationKey: "common.word",
2904
- value: result.word
2926
+ value: `${result.word.toLocaleUpperCase()}${otherWords.length > 0 ? ` (${otherWords})` : ""}`
2905
2927
  }),
2906
2928
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2907
2929
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2908
2930
  translationKey: "common.tiles",
2909
- value: result.numberOfTiles
2931
+ value: result.tilesCount
2910
2932
  }),
2911
2933
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2912
2934
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2913
2935
  translationKey: "common.consonants",
2914
- value: result.numberOfConsonants
2936
+ value: result.consonantsCount
2915
2937
  }),
2916
2938
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2917
2939
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2918
2940
  translationKey: "common.vowels",
2919
- value: result.numberOfVowels
2941
+ value: result.vowelsCount
2920
2942
  }),
2921
2943
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2922
2944
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2923
2945
  translationKey: "common.blanks",
2924
- value: result.numberOfBlanks
2946
+ value: result.blanksCount
2925
2947
  }),
2926
2948
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2927
2949
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().stat),
2928
2950
  translationKey: "common.words",
2929
- value: result.numberOfWords
2951
+ tooltip: `${result.wordsCount} (${result.words.join(" / ").toLocaleUpperCase()})`,
2952
+ value: result.wordsCount
2930
2953
  }),
2931
2954
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
2932
2955
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points),
@@ -3191,32 +3214,42 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3191
3214
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3192
3215
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
3193
3216
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
3194
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
3195
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
3196
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51413);
3197
- /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35628);
3198
- /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4__);
3199
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
3200
- 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
+
3201
3229
 
3202
3230
 
3203
3231
 
3204
3232
 
3205
3233
 
3206
3234
  const ResultsInput = ({ className })=>{
3207
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
3208
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTranslate */ .qM)();
3209
- 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);
3210
3239
  const handleChange = (event)=>{
3211
- 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
+ }
3212
3245
  };
3213
3246
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("form", {
3214
- 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),
3215
3248
  children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
3216
- className: (_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_4___default().input),
3249
+ className: (_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default().input),
3217
3250
  placeholder: translate("results.input.placeholder"),
3218
3251
  type: "text",
3219
- value: value,
3252
+ value: localValue,
3220
3253
  onChange: handleChange
3221
3254
  })
3222
3255
  });
@@ -4107,7 +4140,7 @@ var build = __webpack_require__(7618);
4107
4140
  // EXTERNAL MODULE: external "react"
4108
4141
  var external_react_ = __webpack_require__(16689);
4109
4142
  // EXTERNAL MODULE: ./src/lib/index.ts + 27 modules
4110
- var lib = __webpack_require__(18729);
4143
+ var lib = __webpack_require__(92237);
4111
4144
  // EXTERNAL MODULE: external "classnames"
4112
4145
  var external_classnames_ = __webpack_require__(59003);
4113
4146
  var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
@@ -4304,7 +4337,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4304
4337
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
4305
4338
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
4306
4339
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26183);
4307
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(18729);
4340
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92237);
4308
4341
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8550);
4309
4342
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(222);
4310
4343
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__);
@@ -4580,8 +4613,8 @@ __webpack_async_result__();
4580
4613
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_0__);
4581
4614
 
4582
4615
  const useIsTablet = ()=>{
4583
- const isTabletHeight = (0,react_use__WEBPACK_IMPORTED_MODULE_0__.useMedia)("(max-height: 800px)");
4584
- 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);
4585
4618
  const isTablet = isTabletHeight || isTabletWidth;
4586
4619
  return isTablet;
4587
4620
  };
@@ -4745,7 +4778,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4745
4778
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
4746
4779
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
4747
4780
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
4748
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18729);
4781
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92237);
4749
4782
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(51413);
4750
4783
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
4751
4784
  state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
@@ -4844,7 +4877,7 @@ __webpack_async_result__();
4844
4877
  /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_2__);
4845
4878
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63938);
4846
4879
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_portal__WEBPACK_IMPORTED_MODULE_3__);
4847
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18729);
4880
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92237);
4848
4881
 
4849
4882
 
4850
4883