@scrabble-solver/scrabble-solver 2.11.3 → 2.11.5

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 (137) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +7 -7
  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/export-marker.json +1 -1
  13. package/.next/next-server.js.nft.json +1 -1
  14. package/.next/prerender-manifest.json +1 -1
  15. package/.next/routes-manifest.json +1 -1
  16. package/.next/server/chunks/131.js +1 -1
  17. package/.next/server/chunks/277.js +736 -913
  18. package/.next/server/chunks/44.js +2 -30
  19. package/.next/server/chunks/636.js +286 -0
  20. package/.next/server/chunks/675.js +550 -0
  21. package/.next/server/middleware-build-manifest.js +1 -1
  22. package/.next/server/pages/404.html +2 -2
  23. package/.next/server/pages/404.js.nft.json +1 -1
  24. package/.next/server/pages/500.html +1 -1
  25. package/.next/server/pages/_app.js +73 -9
  26. package/.next/server/pages/_app.js.nft.json +1 -1
  27. package/.next/server/pages/_document.js.nft.json +1 -1
  28. package/.next/server/pages/_error.js +1 -280
  29. package/.next/server/pages/_error.js.nft.json +1 -1
  30. package/.next/server/pages/api/solve.js +22 -2
  31. package/.next/server/pages/index.html +1 -1
  32. package/.next/server/pages/index.js +382 -313
  33. package/.next/server/pages/index.js.nft.json +1 -1
  34. package/.next/server/pages/index.json +1 -1
  35. package/.next/static/UzQCOB6CHhyOupkEq8oZM/_buildManifest.js +1 -0
  36. package/.next/static/chunks/pages/{404-448ba28510855455.js → 404-d30fe85d005ce32b.js} +1 -1
  37. package/.next/static/chunks/pages/_app-e27464a187a58684.js +28 -0
  38. package/.next/static/chunks/pages/index-3fd280f406cc00fd.js +1 -0
  39. package/.next/static/css/4bd04cebe207859c.css +1 -0
  40. package/.next/static/css/5b3b78170f4c5875.css +2 -0
  41. package/.next/trace +50 -53
  42. package/next.config.js +1 -0
  43. package/package.json +12 -13
  44. package/src/@types/svg.d.ts +1 -1
  45. package/src/components/Board/Board.tsx +48 -44
  46. package/src/components/Board/components/Actions/Actions.tsx +4 -2
  47. package/src/components/Board/components/Cell/Cell.module.scss +59 -1
  48. package/src/components/Board/hooks/useGrid.ts +5 -3
  49. package/src/components/Button/Button.module.scss +1 -1
  50. package/src/components/Loading/Loading.module.scss +1 -1
  51. package/src/components/Loading/Loading.tsx +1 -1
  52. package/src/components/Logo/Logo.tsx +10 -12
  53. package/src/components/Logo/LogoBlueprint.tsx +21 -0
  54. package/src/components/Logo/index.ts +1 -1
  55. package/src/components/Modal/Modal.module.scss +1 -6
  56. package/src/components/Modal/Modal.tsx +15 -8
  57. package/src/components/NavButtons/NavButtons.tsx +2 -2
  58. package/src/components/Rack/Rack.module.scss +59 -0
  59. package/src/components/Results/HeaderButton.tsx +6 -6
  60. package/src/components/Results/Results.module.scss +3 -0
  61. package/src/components/Results/Results.tsx +7 -7
  62. package/src/components/Results/useColumns.ts +2 -5
  63. package/src/components/Solver/Solver.tsx +6 -23
  64. package/src/components/Tile/Tile.module.scss +2 -1
  65. package/src/components/Tile/Tile.tsx +8 -4
  66. package/src/components/index.ts +0 -3
  67. package/src/hooks/index.ts +6 -0
  68. package/src/hooks/useAppLayout.ts +62 -12
  69. package/src/hooks/useEffectOnce.ts +5 -0
  70. package/src/hooks/useIsTouchDevice.ts +1 -1
  71. package/src/hooks/useLatest.ts +13 -0
  72. package/src/hooks/useLocalStorage.ts +51 -0
  73. package/src/hooks/useMedia.ts +36 -0
  74. package/src/hooks/useMediaQueries.ts +13 -0
  75. package/src/hooks/useMediaQuery.ts +2 -1
  76. package/src/hooks/useOnWindowResize.ts +13 -0
  77. package/src/hooks/useViewportSize.ts +19 -0
  78. package/src/i18n/constants.ts +14 -14
  79. package/src/i18n/de.json +2 -2
  80. package/src/i18n/en.json +2 -2
  81. package/src/i18n/es.json +2 -2
  82. package/src/i18n/fa.json +1 -1
  83. package/src/i18n/fr.json +2 -2
  84. package/src/i18n/pl.json +2 -2
  85. package/src/lib/arrayEquals.ts +5 -0
  86. package/src/lib/index.ts +1 -0
  87. package/src/lib/zipCharactersAndTiles.ts +3 -1
  88. package/src/modals/DictionaryModal/DictionaryModal.tsx +2 -2
  89. package/src/modals/KeyMapModal/KeyMapModal.tsx +2 -2
  90. package/src/modals/KeyMapModal/keys.tsx +0 -2
  91. package/src/modals/MenuModal/MenuModal.module.scss +28 -4
  92. package/src/modals/MenuModal/MenuModal.tsx +4 -4
  93. package/src/modals/RemainingTilesModal/RemainingTilesModal.tsx +2 -2
  94. package/src/modals/ResultsModal/ResultsModal.module.scss +1 -5
  95. package/src/modals/ResultsModal/ResultsModal.tsx +10 -2
  96. package/src/modals/SettingsModal/SettingsModal.tsx +2 -2
  97. package/src/modals/SettingsModal/components/AutoGroupTilesSetting/lib.ts +3 -1
  98. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +1 -1
  99. package/src/modals/WordsModal/WordsModal.tsx +2 -2
  100. package/src/pages/index.module.scss +3 -21
  101. package/src/pages/index.tsx +51 -67
  102. package/src/parameters/index.ts +29 -2
  103. package/src/state/localStorage.ts +13 -2
  104. package/src/state/sagas.ts +16 -8
  105. package/src/state/slices/boardInitialState.ts +5 -1
  106. package/src/state/slices/boardSlice.ts +2 -2
  107. package/src/state/slices/rackInitialState.ts +8 -2
  108. package/src/state/slices/rackSlice.ts +16 -13
  109. package/src/state/slices/settingsInitialState.ts +9 -4
  110. package/src/state/slices/settingsSlice.ts +3 -1
  111. package/src/styles/animations.scss +0 -20
  112. package/src/styles/global.scss +0 -7
  113. package/src/styles/mixins.scss +0 -59
  114. package/src/styles/variables.scss +11 -0
  115. package/src/types/index.ts +4 -0
  116. package/.next/static/USLkKOoHbITebIEHkMGX_/_buildManifest.js +0 -1
  117. package/.next/static/chunks/pages/_app-21c83ddb81fc09d0.js +0 -28
  118. package/.next/static/chunks/pages/index-0858deea02b2a417.js +0 -1
  119. package/.next/static/css/885da289cec275b3.css +0 -1
  120. package/.next/static/css/ea1c8134fe9a143e.css +0 -2
  121. package/src/components/LogoSplashScreen/LogoSplashScreen.module.scss +0 -65
  122. package/src/components/LogoSplashScreen/LogoSplashScreen.tsx +0 -31
  123. package/src/components/LogoSplashScreen/index.ts +0 -1
  124. package/src/components/Sizer/Sizer.module.scss +0 -10
  125. package/src/components/Sizer/Sizer.tsx +0 -10
  126. package/src/components/Sizer/index.ts +0 -1
  127. package/src/components/SplashScreen/SplashScreen.module.scss +0 -14
  128. package/src/components/SplashScreen/SplashScreen.tsx +0 -19
  129. package/src/components/SplashScreen/index.ts +0 -1
  130. package/src/hooks/useLocalStorage/index.ts +0 -1
  131. package/src/hooks/useLocalStorage/useLocalStorage.ts +0 -13
  132. package/src/hooks/useLocalStorage/useLocalStorageBoard.ts +0 -29
  133. package/src/hooks/useLocalStorage/useLocalStorageConfigId.ts +0 -29
  134. package/src/hooks/useLocalStorage/useLocalStorageLocale.ts +0 -32
  135. package/src/hooks/useLocalStorage/useLocalStorageRack.ts +0 -29
  136. /package/.next/static/{USLkKOoHbITebIEHkMGX_ → UzQCOB6CHhyOupkEq8oZM}/_ssgManifest.js +0 -0
  137. /package/{src/components/Logo/Logo.svg → public/logo.svg} +0 -0
@@ -948,36 +948,8 @@ exports.BONUS_CHARACTER = 'BONUS_CHARACTER';
948
948
  exports.BONUS_WORD = 'BONUS_WORD';
949
949
  exports.EMPTY_CELL = ' ';
950
950
  exports.NO_BONUS = { characterMultiplier: 1, wordMultiplier: 1 };
951
- exports.CONSONANTS = [
952
- 'b',
953
- 'c',
954
- 'ć',
955
- 'd',
956
- 'f',
957
- 'g',
958
- 'h',
959
- 'j',
960
- 'k',
961
- 'l',
962
- 'ł',
963
- 'm',
964
- 'n',
965
- 'ń',
966
- 'ñ',
967
- 'p',
968
- 'q',
969
- 'r',
970
- 's',
971
- 'ś',
972
- 't',
973
- 'v',
974
- 'w',
975
- 'x',
976
- 'z',
977
- 'ź',
978
- 'ż',
979
- ];
980
- exports.VOWELS = ['a', 'ą', 'ä', 'e', 'ę', 'i', 'o', 'ó', 'ö', 'u', 'ü', 'y'];
951
+ exports.CONSONANTS = 'bcćdfghjklłmnńñpqrsśtvwxzźż'.split('');
952
+ exports.VOWELS = 'aąäeęioóöuüy'.split('');
981
953
 
982
954
 
983
955
  /***/ }),
@@ -1023,9 +995,7 @@ module.exports = {
1023
995
  "hide": "Board_hide__Fskbc",
1024
996
  "shown": "Board_shown__T9Txa",
1025
997
  "show": "Board_show__1ChIu",
1026
- "progress": "Board_progress__3ImeV",
1027
998
  "rotate": "Board_rotate__ynCR2",
1028
- "pulse": "Board_pulse__RoNSE",
1029
999
  "wave": "Board_wave__NDbpN"
1030
1000
  };
1031
1001
 
@@ -1164,33 +1134,11 @@ module.exports = {
1164
1134
  module.exports = {
1165
1135
  "loading": "Loading_loading__RkVCa",
1166
1136
  "dim": "Loading_dim__H3eXg",
1167
- "logo": "Loading_logo__1hwt4",
1137
+ "text": "Loading_text__qKHb5",
1168
1138
  "tiles": "Loading_tiles__RNn33"
1169
1139
  };
1170
1140
 
1171
1141
 
1172
- /***/ }),
1173
-
1174
- /***/ 44744:
1175
- /***/ ((module) => {
1176
-
1177
- // Exports
1178
- module.exports = {
1179
- "logoSplashScreen": "LogoSplashScreen_logoSplashScreen__pRvmG",
1180
- "animated": "LogoSplashScreen_animated__FLtGf",
1181
- "hide": "LogoSplashScreen_hide__O6VWM",
1182
- "logos": "LogoSplashScreen_logos__x48g1",
1183
- "pulse": "LogoSplashScreen_pulse__xzhLz",
1184
- "logoColor": "LogoSplashScreen_logoColor__yxa6j",
1185
- "progress": "LogoSplashScreen_progress__m0bkB",
1186
- "logoGrayscale": "LogoSplashScreen_logoGrayscale__zDa_H",
1187
- "author": "LogoSplashScreen_author__jDI5k",
1188
- "show": "LogoSplashScreen_show__N_vWU",
1189
- "rotate": "LogoSplashScreen_rotate__LocRV",
1190
- "wave": "LogoSplashScreen_wave__Trjnf"
1191
- };
1192
-
1193
-
1194
1142
  /***/ }),
1195
1143
 
1196
1144
  /***/ 61218:
@@ -1264,9 +1212,7 @@ module.exports = {
1264
1212
  "dropShadow": "PlainTiles_dropShadow__TjPAL",
1265
1213
  "hide": "PlainTiles_hide__ZXQ7t",
1266
1214
  "show": "PlainTiles_show__KuWdS",
1267
- "progress": "PlainTiles_progress__GEq5G",
1268
- "rotate": "PlainTiles_rotate__mHx2k",
1269
- "pulse": "PlainTiles_pulse__MTQRB"
1215
+ "rotate": "PlainTiles_rotate__mHx2k"
1270
1216
  };
1271
1217
 
1272
1218
 
@@ -1352,17 +1298,6 @@ module.exports = {
1352
1298
  };
1353
1299
 
1354
1300
 
1355
- /***/ }),
1356
-
1357
- /***/ 76872:
1358
- /***/ ((module) => {
1359
-
1360
- // Exports
1361
- module.exports = {
1362
- "sizer": "Sizer_sizer__6ihcO"
1363
- };
1364
-
1365
-
1366
1301
  /***/ }),
1367
1302
 
1368
1303
  /***/ 41674:
@@ -1399,9 +1334,7 @@ module.exports = {
1399
1334
  "floatingSolveButton": "FloatingSolveButton_floatingSolveButton__ylG5R",
1400
1335
  "hide": "FloatingSolveButton_hide__Xjdvf",
1401
1336
  "show": "FloatingSolveButton_show__hjyNU",
1402
- "progress": "FloatingSolveButton_progress__VlrJL",
1403
1337
  "rotate": "FloatingSolveButton_rotate__VJaNr",
1404
- "pulse": "FloatingSolveButton_pulse__Sklml",
1405
1338
  "wave": "FloatingSolveButton_wave__Ce4rm"
1406
1339
  };
1407
1340
 
@@ -1452,24 +1385,10 @@ module.exports = {
1452
1385
  "rotate": "Spinner_rotate__trb0p",
1453
1386
  "hide": "Spinner_hide__oSP5z",
1454
1387
  "show": "Spinner_show__iasps",
1455
- "progress": "Spinner_progress__mXCAs",
1456
- "pulse": "Spinner_pulse__xW7PT",
1457
1388
  "wave": "Spinner_wave__QVNeH"
1458
1389
  };
1459
1390
 
1460
1391
 
1461
- /***/ }),
1462
-
1463
- /***/ 37675:
1464
- /***/ ((module) => {
1465
-
1466
- // Exports
1467
- module.exports = {
1468
- "splashScreen": "SplashScreen_splashScreen__1t_F7",
1469
- "content": "SplashScreen_content__YuPB1"
1470
- };
1471
-
1472
-
1473
1392
  /***/ }),
1474
1393
 
1475
1394
  /***/ 35516:
@@ -1650,8 +1569,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1650
1569
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
1651
1570
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
1652
1571
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
1653
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69755);
1654
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_5__);
1572
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
1655
1573
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
1656
1574
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
1657
1575
  /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33791);
@@ -1659,8 +1577,8 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1659
1577
  /* harmony import */ var _BoardPure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(86058);
1660
1578
  /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(94347);
1661
1579
  /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(48327);
1662
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, state__WEBPACK_IMPORTED_MODULE_7__, _BoardPure__WEBPACK_IMPORTED_MODULE_8__, _components__WEBPACK_IMPORTED_MODULE_9__, _hooks__WEBPACK_IMPORTED_MODULE_10__]);
1663
- ([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, state__WEBPACK_IMPORTED_MODULE_7__, _BoardPure__WEBPACK_IMPORTED_MODULE_8__, _components__WEBPACK_IMPORTED_MODULE_9__, _hooks__WEBPACK_IMPORTED_MODULE_10__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1580
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _BoardPure__WEBPACK_IMPORTED_MODULE_8__, _components__WEBPACK_IMPORTED_MODULE_9__, _hooks__WEBPACK_IMPORTED_MODULE_10__]);
1581
+ ([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _BoardPure__WEBPACK_IMPORTED_MODULE_8__, _components__WEBPACK_IMPORTED_MODULE_9__, _hooks__WEBPACK_IMPORTED_MODULE_10__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1664
1582
 
1665
1583
 
1666
1584
 
@@ -1677,7 +1595,7 @@ const Board = ({ cellSize , className })=>{
1677
1595
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
1678
1596
  const rows = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectRowsWithCandidate */ .ZA);
1679
1597
  const board = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectBoard */ .ZO);
1680
- const [actionsMeasureRef, { width: actionsWidth }] = (0,react_use__WEBPACK_IMPORTED_MODULE_5__.useMeasure)();
1598
+ const { actionsWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
1681
1599
  const [{ activeIndex , direction , inputRefs }, { onChange , onDirectionToggle , onFocus , onKeyDown , onPaste }] = (0,_hooks__WEBPACK_IMPORTED_MODULE_10__/* .useGrid */ .N)(rows);
1682
1600
  const inputRef = inputRefs[activeIndex.y][activeIndex.x];
1683
1601
  const cell = rows[activeIndex.y][activeIndex.x];
@@ -1694,23 +1612,24 @@ const Board = ({ cellSize , className })=>{
1694
1612
  placement: "top-end",
1695
1613
  whileElementsMounted: _floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.autoUpdate
1696
1614
  });
1697
- const actionsRef = (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.useMergeRefs)([
1698
- actionsMeasureRef,
1699
- refs.setFloating
1700
- ]);
1701
- const handleBlur = (event)=>{
1615
+ const handleBlur = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
1702
1616
  const eventComesFromActions = refs.floating.current?.contains(event.relatedTarget);
1703
1617
  const eventComesFromBoard = event.currentTarget.contains(event.relatedTarget);
1704
1618
  const isLocalEvent = eventComesFromActions || eventComesFromBoard;
1705
1619
  if (!isLocalEvent) {
1706
1620
  setShowActions(false);
1707
1621
  }
1708
- };
1709
- const handleDirectionToggle = ()=>{
1622
+ }, [
1623
+ refs.floating
1624
+ ]);
1625
+ const handleDirectionToggle = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1710
1626
  inputRef.current?.focus();
1711
1627
  onDirectionToggle();
1712
- };
1713
- const handleFocus = (newX, newY)=>{
1628
+ }, [
1629
+ inputRef,
1630
+ onDirectionToggle
1631
+ ]);
1632
+ const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((newX, newY)=>{
1714
1633
  const isFirstFocus = !showActions;
1715
1634
  const originalTransition = refs.floating.current?.style.transition || "";
1716
1635
  const newInputRef = inputRefs[newY][newX].current;
@@ -1726,15 +1645,29 @@ const Board = ({ cellSize , className })=>{
1726
1645
  setTransition(originalTransition);
1727
1646
  }, 0);
1728
1647
  }
1729
- };
1730
- const handleToggleBlank = ()=>{
1648
+ }, [
1649
+ inputRefs,
1650
+ onFocus,
1651
+ refs.floating,
1652
+ refs.setReference,
1653
+ showActions
1654
+ ]);
1655
+ const handleToggleBlank = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1731
1656
  inputRef.current?.focus();
1732
1657
  dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(cell));
1733
- };
1734
- const handleToggleFilterCell = ()=>{
1658
+ }, [
1659
+ cell,
1660
+ dispatch,
1661
+ inputRef
1662
+ ]);
1663
+ const handleToggleFilterCell = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1735
1664
  inputRef.current?.focus();
1736
1665
  dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .cellFilterSlice.actions.toggle */ .mO.actions.toggle(cell));
1737
- };
1666
+ }, [
1667
+ cell,
1668
+ dispatch,
1669
+ inputRef
1670
+ ]);
1738
1671
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1739
1672
  children: [
1740
1673
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BoardPure__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
@@ -1757,7 +1690,7 @@ const Board = ({ cellSize , className })=>{
1757
1690
  }),
1758
1691
  disabled: !showActions,
1759
1692
  direction: direction,
1760
- ref: actionsRef,
1693
+ ref: refs.setFloating,
1761
1694
  style: {
1762
1695
  position: strategy,
1763
1696
  top: y ?? 0,
@@ -1854,12 +1787,14 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1854
1787
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
1855
1788
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
1856
1789
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
1857
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
1858
- /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83900);
1859
- /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(79739);
1860
- /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7__);
1861
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _Button__WEBPACK_IMPORTED_MODULE_6__]);
1862
- ([state__WEBPACK_IMPORTED_MODULE_5__, _Button__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1790
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
1791
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
1792
+ /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83900);
1793
+ /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(79739);
1794
+ /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8__);
1795
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_6__, _Button__WEBPACK_IMPORTED_MODULE_7__]);
1796
+ ([state__WEBPACK_IMPORTED_MODULE_6__, _Button__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1797
+
1863
1798
 
1864
1799
 
1865
1800
 
@@ -1869,41 +1804,42 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
1869
1804
 
1870
1805
 
1871
1806
  const Actions = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_3__.forwardRef)(({ cell , className , direction , disabled , onDirectionToggle , onToggleBlank , onToggleFilterCell , ...props }, ref)=>{
1872
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
1873
- const isFiltered = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_5__/* .selectCellIsFiltered */ .id)(state, cell));
1807
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
1808
+ const isFiltered = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_6__/* .selectCellIsFiltered */ .id)(state, cell));
1809
+ const resultCandidateCells = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectResultCandidateCells */ .GL);
1874
1810
  const isBlank = cell.tile.isBlank;
1875
- const isEmpty = cell.tile.character === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.EMPTY_CELL;
1811
+ const isEmpty = cell.tile.character === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.EMPTY_CELL || Boolean((0,lib__WEBPACK_IMPORTED_MODULE_5__/* .findCell */ .Jp)(resultCandidateCells, cell.x, cell.y));
1876
1812
  // On iOS it helps with losing focus too early which makes Actions disappear
1877
1813
  const handleMouseDown = (event)=>event.preventDefault();
1878
1814
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1879
- className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().actions), className),
1815
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().actions), className),
1880
1816
  ref: ref,
1881
1817
  ...props,
1882
1818
  children: [
1883
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1819
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
1884
1820
  "aria-label": translate("cell.toggle-direction"),
1885
- className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().action),
1821
+ className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().action),
1886
1822
  Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .ArrowDown */ .K5,
1887
- iconClassName: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().toggleDirection), {
1888
- [(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().right)]: direction === "horizontal"
1823
+ iconClassName: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().toggleDirection), {
1824
+ [(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().right)]: direction === "horizontal"
1889
1825
  }),
1890
1826
  tabIndex: disabled ? -1 : undefined,
1891
1827
  tooltip: translate("cell.toggle-direction"),
1892
1828
  onClick: onDirectionToggle,
1893
1829
  onMouseDown: handleMouseDown
1894
1830
  }),
1895
- isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1831
+ isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
1896
1832
  "aria-label": translate("cell.filter-cell"),
1897
- className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().action)),
1833
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().action)),
1898
1834
  Icon: isFiltered ? icons__WEBPACK_IMPORTED_MODULE_4__/* .Flag */ .WN : icons__WEBPACK_IMPORTED_MODULE_4__/* .FlagFill */ .aR,
1899
1835
  tabIndex: disabled ? -1 : undefined,
1900
1836
  tooltip: translate("cell.filter-cell"),
1901
1837
  onClick: onToggleFilterCell,
1902
1838
  onMouseDown: handleMouseDown
1903
1839
  }),
1904
- !isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1840
+ !isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
1905
1841
  "aria-label": isBlank ? translate("cell.set-not-blank") : translate("cell.set-blank"),
1906
- className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().action),
1842
+ className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().action),
1907
1843
  Icon: isBlank ? icons__WEBPACK_IMPORTED_MODULE_4__/* .SquareFill */ .uX : icons__WEBPACK_IMPORTED_MODULE_4__/* .Square */ .bK,
1908
1844
  tabIndex: disabled ? -1 : undefined,
1909
1845
  tooltip: isBlank ? translate("cell.set-not-blank") : translate("cell.set-blank"),
@@ -1951,7 +1887,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1951
1887
  /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7618);
1952
1888
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
1953
1889
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1954
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10129);
1890
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65175);
1955
1891
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
1956
1892
  /* harmony import */ var _CellPure__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12418);
1957
1893
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _CellPure__WEBPACK_IMPORTED_MODULE_5__]);
@@ -2216,14 +2152,13 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2216
2152
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
2217
2153
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
2218
2154
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
2219
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
2220
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
2155
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
2221
2156
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36743);
2222
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10129);
2157
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65175);
2223
2158
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
2224
2159
  /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97792);
2225
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_7__]);
2226
- state__WEBPACK_IMPORTED_MODULE_7__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
2160
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__]);
2161
+ ([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
2227
2162
  /* eslint-disable max-lines, max-statements */
2228
2163
 
2229
2164
 
@@ -2249,7 +2184,7 @@ const useGrid = (rows)=>{
2249
2184
  y: 0
2250
2185
  });
2251
2186
  const [direction, setLastDirection] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)("horizontal");
2252
- const directionRef = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useLatest)(direction);
2187
+ const directionRef = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useLatest */ .dU)(direction);
2253
2188
  const changeActiveIndex = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((offsetX, offsetY)=>{
2254
2189
  const x = Math.min(Math.max(activeIndex.x + offsetX, 0), width - 1);
2255
2190
  const y = Math.min(Math.max(activeIndex.y + offsetY, 0), height - 1);
@@ -2451,6 +2386,7 @@ const useGrid = (rows)=>{
2451
2386
  event.preventDefault();
2452
2387
  if (direction === "vertical") {
2453
2388
  onDirectionToggle();
2389
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? -1 : 0, 0);
2454
2390
  } else {
2455
2391
  changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? -1 : 1, 0);
2456
2392
  }
@@ -2459,6 +2395,7 @@ const useGrid = (rows)=>{
2459
2395
  event.preventDefault();
2460
2396
  if (direction === "vertical") {
2461
2397
  onDirectionToggle();
2398
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? 0 : -1, 0);
2462
2399
  } else {
2463
2400
  changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? 1 : -1, 0);
2464
2401
  }
@@ -2467,9 +2404,8 @@ const useGrid = (rows)=>{
2467
2404
  event.preventDefault();
2468
2405
  if (direction === "horizontal") {
2469
2406
  onDirectionToggle();
2470
- } else {
2471
- changeActiveIndex(0, -1);
2472
2407
  }
2408
+ changeActiveIndex(0, -1);
2473
2409
  },
2474
2410
  onBackspace: (event)=>{
2475
2411
  const position = getInputRefPosition(event.target);
@@ -3275,7 +3211,7 @@ const Loading = ({ className , wave =true })=>{
3275
3211
  className: (_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().dim)
3276
3212
  }),
3277
3213
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3278
- className: (_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().logo),
3214
+ className: (_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().text),
3279
3215
  children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_PlainTiles__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
3280
3216
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().tiles)),
3281
3217
  content: content,
@@ -3311,166 +3247,63 @@ __webpack_async_result__();
3311
3247
 
3312
3248
  /***/ }),
3313
3249
 
3314
- /***/ 8023:
3315
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3250
+ /***/ 36888:
3251
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
3316
3252
 
3317
3253
  "use strict";
3318
-
3319
- // EXPORTS
3320
- __webpack_require__.d(__webpack_exports__, {
3321
- "Z": () => (/* reexport */ Logo)
3322
- });
3323
-
3324
- // EXTERNAL MODULE: external "react"
3325
- var external_react_ = __webpack_require__(16689);
3326
- ;// CONCATENATED MODULE: ./src/components/Logo/Logo.svg
3327
- var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30;
3328
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3329
-
3330
- var SvgLogo = function SvgLogo(props) {
3331
- return /*#__PURE__*/external_react_.createElement("svg", _extends({
3332
- viewBox: "0 0 682 166",
3333
- xmlns: "http://www.w3.org/2000/svg"
3334
- }, props), _path || (_path = /*#__PURE__*/external_react_.createElement("path", {
3335
- fill: "#efe3ae",
3336
- d: "M0 0h80v80H0Z"
3337
- })), _path2 || (_path2 = /*#__PURE__*/external_react_.createElement("path", {
3338
- d: "M51.168 47.629q0 3.047-1.477 5.297-1.476 2.25-4.312 3.469-2.813 1.218-6.844 1.218-1.781 0-3.492-.234-1.688-.234-3.258-.68-1.547-.469-2.953-1.148V48.8q2.438 1.078 5.063 1.945 2.625.867 5.203.867 1.78 0 2.859-.468 1.102-.47 1.594-1.29.492-.82.492-1.875 0-1.289-.867-2.203-.867-.914-2.39-1.71-1.5-.797-3.4-1.712-1.195-.562-2.6-1.359-1.407-.82-2.673-1.992-1.265-1.172-2.086-2.836-.797-1.688-.797-4.031 0-3.07 1.407-5.25 1.406-2.18 4.008-3.328 2.625-1.172 6.187-1.172 2.672 0 5.086.633 2.437.609 5.086 1.78l-2.344 5.65q-2.367-.962-4.242-1.477-1.875-.54-3.82-.54-1.36 0-2.32.446-.962.422-1.454 1.219-.492.773-.492 1.804 0 1.22.703 2.063.727.82 2.156 1.594 1.454.773 3.61 1.804 2.625 1.242 4.476 2.602 1.875 1.336 2.883 3.164 1.008 1.805 1.008 4.5z"
3339
- })), _path3 || (_path3 = /*#__PURE__*/external_react_.createElement("path", {
3340
- fill: "#c7d8f9",
3341
- d: "M86 0h80v80H86Z"
3342
- })), _path4 || (_path4 = /*#__PURE__*/external_react_.createElement("path", {
3343
- d: "M129.574 28.434q-2.086 0-3.703.82-1.594.797-2.695 2.32-1.078 1.524-1.64 3.68-.563 2.156-.563 4.851 0 3.633.89 6.211.914 2.555 2.813 3.914 1.898 1.336 4.898 1.336 2.086 0 4.172-.468 2.11-.47 4.57-1.336v6.093q-2.273.938-4.476 1.336-2.203.422-4.945.422-5.297 0-8.72-2.18-3.398-2.203-5.038-6.14-1.64-3.961-1.64-9.234 0-3.891 1.054-7.125 1.054-3.235 3.094-5.602 2.039-2.367 5.039-3.656 3-1.29 6.89-1.29 2.555 0 5.11.657 2.578.633 4.921 1.758l-2.343 5.906q-1.922-.914-3.867-1.594-1.946-.68-3.82-.68z"
3344
- })), _path5 || (_path5 = /*#__PURE__*/external_react_.createElement("path", {
3345
- fill: "#efe3ae",
3346
- d: "M172 0h80v80h-80z"
3347
- })), _path6 || (_path6 = /*#__PURE__*/external_react_.createElement("path", {
3348
- d: "M210.453 22.867q4.664 0 7.688 1.125 3.047 1.125 4.523 3.399 1.477 2.273 1.477 5.742 0 2.344-.891 4.101-.89 1.758-2.344 2.977-1.453 1.219-3.14 1.992l10.078 14.93h-8.063l-8.18-13.149h-3.867v13.149h-7.265V22.867Zm-.515 5.953h-2.204v9.258h2.344q3.61 0 5.156-1.195 1.57-1.219 1.57-3.563 0-2.437-1.687-3.468-1.664-1.032-5.18-1.032z"
3349
- })), _path7 || (_path7 = /*#__PURE__*/external_react_.createElement("path", {
3350
- fill: "#efe3ae",
3351
- d: "M258 0h80v80h-80z"
3352
- })), _path8 || (_path8 = /*#__PURE__*/external_react_.createElement("path", {
3353
- d: "m306.73 57.203-2.484-8.156h-12.492l-2.484 8.156h-7.829l12.094-34.406h8.883l12.14 34.406zm-4.218-14.25-2.485-7.969q-.234-.796-.632-2.039-.375-1.265-.774-2.554-.375-1.313-.61-2.274-.234.961-.656 2.39-.398 1.407-.773 2.673-.375 1.265-.539 1.804l-2.461 7.97z"
3354
- })), _path9 || (_path9 = /*#__PURE__*/external_react_.createElement("path", {
3355
- fill: "#c7d8f9",
3356
- d: "M344 0h80v80h-80z"
3357
- })), _path10 || (_path10 = /*#__PURE__*/external_react_.createElement("path", {
3358
- d: "M372.188 22.867h10.664q6.843 0 10.359 1.922t3.516 6.75q0 1.945-.633 3.516-.61 1.57-1.781 2.578-1.172 1.008-2.86 1.312v.235q1.711.351 3.094 1.218 1.383.844 2.203 2.485.844 1.617.844 4.312 0 3.118-1.524 5.344-1.523 2.227-4.36 3.422-2.812 1.172-6.702 1.172h-12.82Zm7.265 13.57h4.219q3.164 0 4.383-.984 1.218-1.008 1.218-2.953 0-1.969-1.453-2.812-1.43-.868-4.547-.868h-3.82zm0 5.766v8.93h4.735q3.28 0 4.57-1.266 1.289-1.265 1.289-3.398 0-1.266-.563-2.227-.562-.96-1.898-1.5-1.313-.539-3.633-.539z"
3359
- })), _path11 || (_path11 = /*#__PURE__*/external_react_.createElement("path", {
3360
- fill: "#c7d8f9",
3361
- d: "M430 0h80v80h-80z"
3362
- })), _path12 || (_path12 = /*#__PURE__*/external_react_.createElement("path", {
3363
- d: "M458.188 22.867h10.664q6.843 0 10.359 1.922t3.516 6.75q0 1.945-.633 3.516-.61 1.57-1.781 2.578-1.172 1.008-2.86 1.312v.235q1.711.351 3.094 1.218 1.383.844 2.203 2.485.844 1.617.844 4.312 0 3.118-1.524 5.344-1.523 2.227-4.36 3.422-2.812 1.172-6.702 1.172h-12.82Zm7.265 13.57h4.219q3.164 0 4.383-.984 1.218-1.008 1.218-2.953 0-1.969-1.453-2.812-1.43-.868-4.547-.868h-3.82zm0 5.766v8.93h4.735q3.28 0 4.57-1.266 1.289-1.265 1.289-3.398 0-1.266-.563-2.227-.562-.96-1.898-1.5-1.313-.539-3.633-.539z"
3364
- })), _path13 || (_path13 = /*#__PURE__*/external_react_.createElement("path", {
3365
- fill: "#efe3ae",
3366
- d: "M516 0h80v80h-80z"
3367
- })), _path14 || (_path14 = /*#__PURE__*/external_react_.createElement("path", {
3368
- d: "M546.754 57.133V22.867h7.266v28.266h13.898v6z"
3369
- })), _path15 || (_path15 = /*#__PURE__*/external_react_.createElement("path", {
3370
- fill: "#efe3ae",
3371
- d: "M602 0h80v80h-80z"
3372
- })), _path16 || (_path16 = /*#__PURE__*/external_react_.createElement("path", {
3373
- d: "M652.605 57.133h-19.734V22.867h19.734v5.953h-12.468v7.524h11.601v5.953h-11.601v8.836h12.468z"
3374
- })), _path17 || (_path17 = /*#__PURE__*/external_react_.createElement("path", {
3375
- fill: "#efe3ae",
3376
- d: "M0 86h80v80H0Z"
3377
- })), _path18 || (_path18 = /*#__PURE__*/external_react_.createElement("path", {
3378
- d: "M51.32 133.629q0 3.047-1.476 5.297-1.477 2.25-4.313 3.469-2.812 1.218-6.843 1.218-1.782 0-3.493-.234-1.687-.234-3.257-.68-1.547-.469-2.954-1.148v-6.75q2.438 1.078 5.063 1.945 2.625.867 5.203.867 1.781 0 2.86-.468 1.1-.47 1.593-1.29.492-.82.492-1.875 0-1.289-.867-2.203-.867-.914-2.39-1.71-1.5-.797-3.399-1.712-1.195-.562-2.602-1.359-1.406-.82-2.671-1.992-1.266-1.172-2.086-2.836-.797-1.688-.797-4.031 0-3.07 1.406-5.25t4.008-3.328q2.625-1.172 6.187-1.172 2.672 0 5.086.633 2.438.609 5.086 1.78l-2.343 5.65q-2.368-.962-4.243-1.477-1.875-.54-3.82-.54-1.36 0-2.32.446-.961.422-1.453 1.219-.493.773-.493 1.804 0 1.22.703 2.063.727.82 2.157 1.594 1.453.773 3.61 1.804 2.624 1.242 4.476 2.602 1.875 1.336 2.883 3.164 1.007 1.805 1.007 4.5z"
3379
- })), _path19 || (_path19 = /*#__PURE__*/external_react_.createElement("path", {
3380
- fill: "#efe3ae",
3381
- d: "M86 86h80v80H86Z"
3382
- })), _path20 || (_path20 = /*#__PURE__*/external_react_.createElement("path", {
3383
- d: "M142.313 125.988q0 3.961-.985 7.219-.984 3.234-3 5.578-1.992 2.344-5.062 3.61-3.07 1.242-7.266 1.242-4.195 0-7.266-1.242-3.07-1.266-5.086-3.61-1.992-2.344-2.976-5.601-.984-3.258-.984-7.243 0-5.32 1.734-9.257 1.758-3.961 5.39-6.141 3.633-2.18 9.235-2.18 5.578 0 9.164 2.18 3.61 2.18 5.344 6.14 1.758 3.962 1.758 9.305zm-25.008 0q0 3.586.89 6.188.914 2.578 2.836 3.984 1.922 1.383 4.969 1.383 3.094 0 5.016-1.383 1.921-1.406 2.789-3.984.89-2.602.89-6.188 0-5.39-2.015-8.484-2.016-3.094-6.633-3.094-3.07 0-5.016 1.406-1.922 1.383-2.836 3.985-.89 2.578-.89 6.187z"
3384
- })), _path21 || (_path21 = /*#__PURE__*/external_react_.createElement("path", {
3385
- fill: "#efe3ae",
3386
- d: "M172 86h80v80h-80z"
3387
- })), _path22 || (_path22 = /*#__PURE__*/external_react_.createElement("path", {
3388
- d: "M202.754 143.133v-34.266h7.266v28.266h13.898v6z"
3389
- })), _path23 || (_path23 = /*#__PURE__*/external_react_.createElement("path", {
3390
- fill: "#f7c2aa",
3391
- d: "M258 86h80v80h-80z"
3392
- })), _path24 || (_path24 = /*#__PURE__*/external_react_.createElement("path", {
3393
- d: "m313.598 108.867-11.649 34.266h-7.922l-11.625-34.266h7.336l6.446 20.39q.164.516.539 1.946.375 1.406.75 3 .398 1.57.539 2.602.14-1.032.492-2.602.375-1.57.726-2.976.375-1.43.54-1.97l6.492-20.39z"
3394
- })), _path25 || (_path25 = /*#__PURE__*/external_react_.createElement("path", {
3395
- fill: "#efe3ae",
3396
- d: "M344 86h80v80h-80z"
3397
- })), _path26 || (_path26 = /*#__PURE__*/external_react_.createElement("path", {
3398
- d: "M394.605 143.133h-19.734v-34.266h19.734v5.953h-12.468v7.524h11.601v5.953h-11.601v8.836h12.468z"
3399
- })), _path27 || (_path27 = /*#__PURE__*/external_react_.createElement("path", {
3400
- fill: "#efe3ae",
3401
- d: "M430 86h80v80h-80z"
3402
- })), _path28 || (_path28 = /*#__PURE__*/external_react_.createElement("path", {
3403
- d: "M468.453 108.867q4.664 0 7.688 1.125 3.046 1.125 4.523 3.399 1.477 2.273 1.477 5.742 0 2.344-.891 4.101-.89 1.758-2.344 2.977-1.453 1.219-3.14 1.992l10.078 14.93h-8.063l-8.18-13.149h-3.867v13.149h-7.265v-34.266zm-.515 5.953h-2.204v9.258h2.344q3.61 0 5.156-1.195 1.57-1.219 1.57-3.563 0-2.437-1.687-3.468-1.664-1.032-5.18-1.032z"
3404
- })), _path29 || (_path29 = /*#__PURE__*/external_react_.createElement("path", {
3405
- fill: "#bae3ba",
3406
- d: "M602 86h80v80h-80z"
3407
- })), _path30 || (_path30 = /*#__PURE__*/external_react_.createElement("path", {
3408
- d: "M654.152 143.379H630.2v-5.04l8.602-8.694q2.601-2.672 4.172-4.454 1.593-1.804 2.297-3.28.726-1.477.726-3.165 0-2.039-1.148-3.047-1.125-1.031-3.024-1.031-1.992 0-3.867.914t-3.914 2.602l-3.938-4.664q1.477-1.266 3.118-2.391 1.664-1.125 3.843-1.805 2.204-.703 5.274-.703 3.375 0 5.789 1.219 2.437 1.219 3.75 3.328 1.312 2.086 1.312 4.734 0 2.836-1.125 5.18t-3.28 4.64q-2.134 2.298-5.157 5.087l-4.406 4.148v.328h14.93z"
3409
- })));
3410
- };
3411
- /* harmony default export */ const Logo = (SvgLogo);
3412
- ;// CONCATENATED MODULE: ./src/components/Logo/index.ts
3413
-
3254
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3255
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3256
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3257
+ /* harmony export */ });
3258
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
3259
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3260
+ /* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25675);
3261
+ /* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_image__WEBPACK_IMPORTED_MODULE_1__);
3262
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
3263
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3264
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75704);
3265
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64534);
3266
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_3__]);
3267
+ hooks__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3414
3268
 
3415
3269
 
3416
- /***/ }),
3417
3270
 
3418
- /***/ 6436:
3419
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3420
3271
 
3421
- "use strict";
3422
3272
 
3423
- // EXPORTS
3424
- __webpack_require__.d(__webpack_exports__, {
3425
- "Z": () => (/* reexport */ LogoSplashScreen_LogoSplashScreen)
3273
+ const Logo = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.forwardRef)((props, ref)=>{
3274
+ const { logoHeight , logoWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_3__/* .useAppLayout */ .Ft)();
3275
+ return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_image__WEBPACK_IMPORTED_MODULE_1___default()), {
3276
+ ...props,
3277
+ alt: "Scrabble Solver 2",
3278
+ height: logoHeight,
3279
+ priority: true,
3280
+ ref: ref,
3281
+ src: parameters__WEBPACK_IMPORTED_MODULE_4__/* .LOGO_SRC */ .sk,
3282
+ width: logoWidth
3283
+ });
3426
3284
  });
3285
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Logo);
3427
3286
 
3428
- // EXTERNAL MODULE: external "react/jsx-runtime"
3429
- var jsx_runtime_ = __webpack_require__(20997);
3430
- // EXTERNAL MODULE: external "classnames"
3431
- var external_classnames_ = __webpack_require__(59003);
3432
- var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
3433
- // EXTERNAL MODULE: ./src/components/Logo/index.ts + 1 modules
3434
- var Logo = __webpack_require__(8023);
3435
- // EXTERNAL MODULE: ./src/components/SplashScreen/index.ts + 1 modules
3436
- var SplashScreen = __webpack_require__(8984);
3437
- // EXTERNAL MODULE: ./src/components/LogoSplashScreen/LogoSplashScreen.module.scss
3438
- var LogoSplashScreen_module = __webpack_require__(44744);
3439
- var LogoSplashScreen_module_default = /*#__PURE__*/__webpack_require__.n(LogoSplashScreen_module);
3440
- ;// CONCATENATED MODULE: ./src/components/LogoSplashScreen/LogoSplashScreen.tsx
3441
-
3442
-
3443
-
3287
+ __webpack_async_result__();
3288
+ } catch(e) { __webpack_async_result__(e); } });
3444
3289
 
3290
+ /***/ }),
3445
3291
 
3446
- const LogoSplashScreen = ({ className , forceShow , onAnimationEnd })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)(SplashScreen/* default */.Z, {
3447
- className: external_classnames_default()((LogoSplashScreen_module_default()).logoSplashScreen, className, {
3448
- [(LogoSplashScreen_module_default()).animated]: !forceShow
3449
- }),
3450
- onAnimationEnd: onAnimationEnd,
3451
- children: [
3452
- /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
3453
- className: (LogoSplashScreen_module_default()).logos,
3454
- children: [
3455
- /*#__PURE__*/ jsx_runtime_.jsx(Logo/* default */.Z, {
3456
- className: (LogoSplashScreen_module_default()).logoGrayscale
3457
- }),
3458
- /*#__PURE__*/ jsx_runtime_.jsx(Logo/* default */.Z, {
3459
- className: (LogoSplashScreen_module_default()).logoColor
3460
- })
3461
- ]
3462
- }),
3463
- /*#__PURE__*/ jsx_runtime_.jsx("h1", {
3464
- className: (LogoSplashScreen_module_default()).author,
3465
- children: "by Kamil Mielnik"
3466
- })
3467
- ]
3468
- });
3469
- /* harmony default export */ const LogoSplashScreen_LogoSplashScreen = (LogoSplashScreen);
3292
+ /***/ 18801:
3293
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
3470
3294
 
3471
- ;// CONCATENATED MODULE: ./src/components/LogoSplashScreen/index.ts
3295
+ "use strict";
3296
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3297
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3298
+ /* harmony export */ "Z": () => (/* reexport safe */ _Logo__WEBPACK_IMPORTED_MODULE_0__.Z)
3299
+ /* harmony export */ });
3300
+ /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36888);
3301
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Logo__WEBPACK_IMPORTED_MODULE_0__]);
3302
+ _Logo__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3472
3303
 
3473
3304
 
3305
+ __webpack_async_result__();
3306
+ } catch(e) { __webpack_async_result__(e); } });
3474
3307
 
3475
3308
  /***/ }),
3476
3309
 
@@ -3490,18 +3323,15 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3490
3323
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3491
3324
  /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19931);
3492
3325
  /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_modal__WEBPACK_IMPORTED_MODULE_3__);
3493
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
3494
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
3495
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(58966);
3496
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
3497
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
3498
- /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(95975);
3499
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(32465);
3500
- /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61218);
3501
- /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10__);
3502
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__]);
3503
- ([state__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3504
-
3326
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
3327
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64534);
3328
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
3329
+ /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(95975);
3330
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(32465);
3331
+ /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61218);
3332
+ /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9__);
3333
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__]);
3334
+ ([state__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3505
3335
 
3506
3336
 
3507
3337
 
@@ -3513,14 +3343,24 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
3513
3343
 
3514
3344
 
3515
3345
  const Modal = ({ children , className , footer , isOpen , title , onClose })=>{
3516
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
3346
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
3517
3347
  const [shouldReturnFocusAfterClose, setShouldReturnFocusAfterClose] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);
3518
- (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useKey)("Escape", ()=>{
3519
- setShouldReturnFocusAfterClose(false);
3520
- onClose();
3521
- }, undefined, [
3348
+ const handleEscape = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
3349
+ if (event.key === "Escape") {
3350
+ setShouldReturnFocusAfterClose(false);
3351
+ onClose();
3352
+ }
3353
+ }, [
3522
3354
  onClose
3523
3355
  ]);
3356
+ (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
3357
+ document.addEventListener("keydown", handleEscape);
3358
+ return ()=>{
3359
+ document.removeEventListener("keydown", handleEscape);
3360
+ };
3361
+ }, [
3362
+ handleEscape
3363
+ ]);
3524
3364
  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
3525
3365
  if (isOpen) {
3526
3366
  setShouldReturnFocusAfterClose(true);
@@ -3530,41 +3370,41 @@ const Modal = ({ children , className , footer , isOpen , title , onClose })=>{
3530
3370
  ]);
3531
3371
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((react_modal__WEBPACK_IMPORTED_MODULE_3___default()), {
3532
3372
  className: {
3533
- afterOpen: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().afterOpen),
3534
- base: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().modal),
3535
- beforeClose: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().beforeClose)
3373
+ afterOpen: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().afterOpen),
3374
+ base: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().modal),
3375
+ beforeClose: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().beforeClose)
3536
3376
  },
3537
- closeTimeoutMS: parameters__WEBPACK_IMPORTED_MODULE_6__/* .TRANSITION_DURATION_LONG */ .MA,
3377
+ closeTimeoutMS: parameters__WEBPACK_IMPORTED_MODULE_5__/* .TRANSITION_DURATION_LONG */ .MA,
3538
3378
  contentLabel: title,
3539
3379
  isOpen: isOpen,
3540
- overlayClassName: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().overlay),
3380
+ overlayClassName: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().overlay),
3541
3381
  shouldReturnFocusAfterClose: shouldReturnFocusAfterClose,
3542
3382
  onRequestClose: onClose,
3543
3383
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3544
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().container), className),
3384
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().container), className),
3545
3385
  children: [
3546
3386
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3547
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().header),
3387
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().header),
3548
3388
  children: [
3549
3389
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h1", {
3550
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().title),
3390
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().title),
3551
3391
  children: title
3552
3392
  }),
3553
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
3393
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3554
3394
  "aria-label": translate("common.close"),
3555
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().closeButton),
3556
- Icon: icons__WEBPACK_IMPORTED_MODULE_5__/* .CrossSquareFill */ .vK,
3395
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().closeButton),
3396
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .CrossSquareFill */ .vK,
3557
3397
  tooltip: translate("common.close"),
3558
3398
  onClick: onClose
3559
3399
  })
3560
3400
  ]
3561
3401
  }),
3562
3402
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3563
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().content),
3403
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().content),
3564
3404
  children: children
3565
3405
  }),
3566
3406
  footer && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3567
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().footer),
3407
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().footer),
3568
3408
  children: footer
3569
3409
  })
3570
3410
  ]
@@ -3572,7 +3412,7 @@ const Modal = ({ children , className , footer , isOpen , title , onClose })=>{
3572
3412
  });
3573
3413
  };
3574
3414
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Object.assign(Modal, {
3575
- Section: _components__WEBPACK_IMPORTED_MODULE_9__/* .Section */ .$
3415
+ Section: _components__WEBPACK_IMPORTED_MODULE_8__/* .Section */ .$
3576
3416
  }));
3577
3417
 
3578
3418
  __webpack_async_result__();
@@ -3655,15 +3495,18 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3655
3495
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3656
3496
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
3657
3497
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
3658
- /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75704);
3659
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
3660
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64534);
3661
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
3662
- /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(95975);
3663
- /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(107);
3664
- /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7__);
3665
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_2__, state__WEBPACK_IMPORTED_MODULE_5__, _IconButton__WEBPACK_IMPORTED_MODULE_6__]);
3666
- ([hooks__WEBPACK_IMPORTED_MODULE_2__, state__WEBPACK_IMPORTED_MODULE_5__, _IconButton__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3498
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
3499
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3500
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75704);
3501
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
3502
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64534);
3503
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
3504
+ /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(95975);
3505
+ /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(107);
3506
+ /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8__);
3507
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_3__, state__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__]);
3508
+ ([hooks__WEBPACK_IMPORTED_MODULE_3__, state__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3509
+
3667
3510
 
3668
3511
 
3669
3512
 
@@ -3673,33 +3516,33 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hook
3673
3516
 
3674
3517
 
3675
3518
  const NavButtons = ({ onClear , onShowKeyMap , onShowMenu , onShowRemainingTiles , onShowSettings , onShowWords })=>{
3676
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
3677
- const hasOverusedTiles = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectHasOverusedTiles */ .En);
3678
- const hasInvalidWords = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectHasInvalidWords */ .bs);
3679
- const { showKeyMap , showShortNav } = (0,hooks__WEBPACK_IMPORTED_MODULE_2__/* .useAppLayout */ .Ft)();
3519
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
3520
+ const hasOverusedTiles = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectHasOverusedTiles */ .En);
3521
+ const hasInvalidWords = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectHasInvalidWords */ .bs);
3522
+ const { showKeyMap , showShortNav } = (0,hooks__WEBPACK_IMPORTED_MODULE_3__/* .useAppLayout */ .Ft)();
3680
3523
  if (showShortNav) {
3681
3524
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3682
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().navButtons),
3525
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().navButtons),
3683
3526
  children: [
3684
3527
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3685
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3686
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3528
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3529
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3687
3530
  "aria-label": translate("common.clear"),
3688
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3689
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Eraser */ .Gs,
3531
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3532
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Eraser */ .Gs,
3690
3533
  tooltip: translate("common.clear"),
3691
3534
  onClick: onClear
3692
3535
  })
3693
3536
  }),
3694
3537
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3695
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3538
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3696
3539
  }),
3697
3540
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3698
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3699
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3541
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3542
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3700
3543
  "aria-label": translate("menu"),
3701
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3702
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .List */ .aV,
3544
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3545
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .List */ .aV,
3703
3546
  tooltip: translate("menu"),
3704
3547
  onClick: onShowMenu
3705
3548
  })
@@ -3708,76 +3551,76 @@ const NavButtons = ({ onClear , onShowKeyMap , onShowMenu , onShowRemainingTiles
3708
3551
  });
3709
3552
  }
3710
3553
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3711
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().navButtons),
3554
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().navButtons),
3712
3555
  children: [
3713
3556
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3714
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3715
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3557
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3558
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3716
3559
  "aria-label": translate("common.clear"),
3717
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3718
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Eraser */ .Gs,
3560
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3561
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Eraser */ .Gs,
3719
3562
  tooltip: translate("common.clear"),
3720
3563
  onClick: onClear
3721
3564
  })
3722
3565
  }),
3723
3566
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3724
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3567
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3725
3568
  }),
3726
3569
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3727
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3570
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3728
3571
  children: [
3729
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3572
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3730
3573
  "aria-label": translate("remaining-tiles"),
3731
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button), {
3732
- [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().error)]: hasOverusedTiles
3574
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button), {
3575
+ [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().error)]: hasOverusedTiles
3733
3576
  }),
3734
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Sack */ .xy,
3577
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Sack */ .xy,
3735
3578
  tooltip: translate("remaining-tiles"),
3736
3579
  onClick: onShowRemainingTiles
3737
3580
  }),
3738
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3581
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3739
3582
  "aria-label": translate("words"),
3740
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button), {
3741
- [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().error)]: hasInvalidWords
3583
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button), {
3584
+ [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().error)]: hasInvalidWords
3742
3585
  }),
3743
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .CardChecklist */ .Kz,
3586
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .CardChecklist */ .Kz,
3744
3587
  tooltip: translate("words"),
3745
3588
  onClick: onShowWords
3746
3589
  })
3747
3590
  ]
3748
3591
  }),
3749
3592
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3750
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3593
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3751
3594
  }),
3752
3595
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3753
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3754
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"].Link */ .Z.Link, {
3596
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3597
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"].Link */ .Z.Link, {
3755
3598
  "aria-label": translate("github"),
3756
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3757
- href: parameters__WEBPACK_IMPORTED_MODULE_4__/* .GITHUB_PROJECT_URL */ .h4,
3758
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Github */ .Ey,
3599
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3600
+ href: parameters__WEBPACK_IMPORTED_MODULE_5__/* .GITHUB_PROJECT_URL */ .h4,
3601
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Github */ .Ey,
3759
3602
  rel: "noopener noreferrer",
3760
3603
  target: "_blank",
3761
3604
  tooltip: translate("github")
3762
3605
  })
3763
3606
  }),
3764
3607
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3765
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3608
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3766
3609
  }),
3767
3610
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3768
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3611
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3769
3612
  children: [
3770
- showKeyMap && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3613
+ showKeyMap && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3771
3614
  "aria-label": translate("keyMap"),
3772
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3773
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Keyboard */ .N1,
3615
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3616
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Keyboard */ .N1,
3774
3617
  tooltip: translate("keyMap"),
3775
3618
  onClick: onShowKeyMap
3776
3619
  }),
3777
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3620
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3778
3621
  "aria-label": translate("settings"),
3779
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3780
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Cog */ .Oz,
3622
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3623
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Cog */ .Oz,
3781
3624
  tooltip: translate("settings"),
3782
3625
  onClick: onShowSettings
3783
3626
  })
@@ -3786,7 +3629,7 @@ const NavButtons = ({ onClear , onShowKeyMap , onShowMenu , onShowRemainingTiles
3786
3629
  ]
3787
3630
  });
3788
3631
  };
3789
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NavButtons);
3632
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(NavButtons));
3790
3633
 
3791
3634
  __webpack_async_result__();
3792
3635
  } catch(e) { __webpack_async_result__(e); } });
@@ -4215,7 +4058,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4215
4058
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
4216
4059
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
4217
4060
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
4218
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
4061
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
4219
4062
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
4220
4063
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
4221
4064
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__);
@@ -4375,7 +4218,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4375
4218
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
4376
4219
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
4377
4220
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
4378
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
4221
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
4379
4222
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
4380
4223
  /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(96815);
4381
4224
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
@@ -4587,16 +4430,19 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4587
4430
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
4588
4431
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
4589
4432
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
4590
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
4591
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
4592
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
4593
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
4594
- /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1966);
4595
- /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(59004);
4596
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(98289);
4597
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_7__);
4598
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _Tooltip__WEBPACK_IMPORTED_MODULE_6__]);
4599
- ([state__WEBPACK_IMPORTED_MODULE_4__, _Tooltip__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4433
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4434
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4435
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
4436
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
4437
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
4438
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4439
+ /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1966);
4440
+ /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59004);
4441
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(98289);
4442
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_8__);
4443
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _Tooltip__WEBPACK_IMPORTED_MODULE_7__]);
4444
+ ([state__WEBPACK_IMPORTED_MODULE_5__, _Tooltip__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4445
+
4600
4446
 
4601
4447
 
4602
4448
 
@@ -4606,33 +4452,36 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
4606
4452
 
4607
4453
 
4608
4454
  const HeaderButton = ({ column })=>{
4609
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
4610
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
4611
- const sort = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectResultsSort */ .R);
4612
- const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_6__/* .useTooltip */ .l)(translate(column.translationKey));
4613
- const handleOrderChange = (columnId)=>{
4614
- dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .resultsSlice.actions.sort */ ._C.actions.sort(columnId));
4615
- };
4455
+ const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
4456
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
4457
+ const sort = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultsSort */ .R);
4458
+ const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_7__/* .useTooltip */ .l)(translate(column.translationKey));
4459
+ const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(()=>{
4460
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.sort */ ._C.actions.sort(column.id));
4461
+ }, [
4462
+ column.id,
4463
+ dispatch
4464
+ ]);
4616
4465
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("button", {
4617
4466
  "aria-label": translate(column.translationKey),
4618
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().headerButton), column.className),
4467
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().headerButton), column.className),
4619
4468
  type: "button",
4620
- onClick: ()=>handleOrderChange(column.id),
4469
+ onClick: handleClick,
4621
4470
  ...triggerProps,
4622
4471
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
4623
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().cell),
4472
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().cell),
4624
4473
  children: [
4625
4474
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
4626
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().headerButtonLabel),
4475
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().headerButtonLabel),
4627
4476
  children: translate(column.translationKey)
4628
4477
  }),
4629
4478
  sort.column === column.id && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
4630
4479
  children: [
4631
- sort.direction === types__WEBPACK_IMPORTED_MODULE_5__/* .SortDirection.Ascending */ .S.Ascending && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_3__/* .SortUp */ .Nc, {
4632
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().sortIcon)
4480
+ sort.direction === types__WEBPACK_IMPORTED_MODULE_6__/* .SortDirection.Ascending */ .S.Ascending && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_4__/* .SortUp */ .Nc, {
4481
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().sortIcon)
4633
4482
  }),
4634
- sort.direction === types__WEBPACK_IMPORTED_MODULE_5__/* .SortDirection.Descending */ .S.Descending && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_3__/* .SortDown */ .l, {
4635
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().sortIcon)
4483
+ sort.direction === types__WEBPACK_IMPORTED_MODULE_6__/* .SortDirection.Descending */ .S.Descending && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_4__/* .SortDown */ .l, {
4484
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().sortIcon)
4636
4485
  })
4637
4486
  ]
4638
4487
  })
@@ -4662,7 +4511,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4662
4511
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4663
4512
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4664
4513
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
4665
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
4514
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
4666
4515
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4667
4516
  /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1966);
4668
4517
  /* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29287);
@@ -4777,26 +4626,23 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4777
4626
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
4778
4627
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4779
4628
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4780
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69755);
4781
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_3__);
4782
- /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(80551);
4783
- /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_window__WEBPACK_IMPORTED_MODULE_4__);
4629
+ /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80551);
4630
+ /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_window__WEBPACK_IMPORTED_MODULE_3__);
4631
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
4784
4632
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36743);
4785
4633
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
4786
4634
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
4787
4635
  /* harmony import */ var _EmptyState__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(77385);
4788
4636
  /* harmony import */ var _Loading__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13842);
4789
4637
  /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(74790);
4790
- /* harmony import */ var _Sizer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2537);
4791
- /* harmony import */ var _HeaderButton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(60405);
4792
- /* harmony import */ var _Result__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(77762);
4793
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(98289);
4794
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_16__);
4795
- /* harmony import */ var _SolveButton__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(74767);
4796
- /* harmony import */ var _useColumns__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(66120);
4797
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_7__, _EmptyState__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_9__, _ResultsInput__WEBPACK_IMPORTED_MODULE_10__, _HeaderButton__WEBPACK_IMPORTED_MODULE_12__, _Result__WEBPACK_IMPORTED_MODULE_13__, _SolveButton__WEBPACK_IMPORTED_MODULE_14__, _useColumns__WEBPACK_IMPORTED_MODULE_15__]);
4798
- ([state__WEBPACK_IMPORTED_MODULE_7__, _EmptyState__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_9__, _ResultsInput__WEBPACK_IMPORTED_MODULE_10__, _HeaderButton__WEBPACK_IMPORTED_MODULE_12__, _Result__WEBPACK_IMPORTED_MODULE_13__, _SolveButton__WEBPACK_IMPORTED_MODULE_14__, _useColumns__WEBPACK_IMPORTED_MODULE_15__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4799
-
4638
+ /* harmony import */ var _HeaderButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(60405);
4639
+ /* harmony import */ var _Result__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(77762);
4640
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(98289);
4641
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_15__);
4642
+ /* harmony import */ var _SolveButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(74767);
4643
+ /* harmony import */ var _useColumns__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(66120);
4644
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__, _EmptyState__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_9__, _ResultsInput__WEBPACK_IMPORTED_MODULE_10__, _HeaderButton__WEBPACK_IMPORTED_MODULE_11__, _Result__WEBPACK_IMPORTED_MODULE_12__, _SolveButton__WEBPACK_IMPORTED_MODULE_13__, _useColumns__WEBPACK_IMPORTED_MODULE_14__]);
4645
+ ([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__, _EmptyState__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_9__, _ResultsInput__WEBPACK_IMPORTED_MODULE_10__, _HeaderButton__WEBPACK_IMPORTED_MODULE_11__, _Result__WEBPACK_IMPORTED_MODULE_12__, _SolveButton__WEBPACK_IMPORTED_MODULE_13__, _useColumns__WEBPACK_IMPORTED_MODULE_14__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4800
4646
 
4801
4647
 
4802
4648
 
@@ -4815,6 +4661,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
4815
4661
 
4816
4662
  const Results = ({ callbacks , className , highlightedIndex })=>{
4817
4663
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
4664
+ const { resultsHeight , resultsWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
4818
4665
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectLocale */ .fN);
4819
4666
  const { direction } = i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale];
4820
4667
  const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResults */ .x5);
@@ -4830,12 +4677,14 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4830
4677
  highlightedIndex,
4831
4678
  results
4832
4679
  ]);
4833
- const [sizerRef, { height , width }] = (0,react_use__WEBPACK_IMPORTED_MODULE_3__.useMeasure)();
4834
4680
  const [listRef, setListRef] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);
4835
- const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z)();
4681
+ const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z)();
4836
4682
  const scrollToIndex = typeof highlightedIndex === "number" ? highlightedIndex : 0;
4837
- const scrollToIndexRef = (0,react_use__WEBPACK_IMPORTED_MODULE_3__.useLatest)(scrollToIndex);
4683
+ const scrollToIndexRef = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useLatest */ .dU)(scrollToIndex);
4838
4684
  const hasResults = typeof error === "undefined" && typeof results !== "undefined";
4685
+ const showInput = hasResults && results.length > 0 && !isOutdated;
4686
+ const height = resultsHeight - parameters__WEBPACK_IMPORTED_MODULE_6__/* .RESULTS_HEADER_HEIGHT */ .$L - (showInput ? parameters__WEBPACK_IMPORTED_MODULE_6__/* .TEXT_INPUT_HEIGHT */ .kD : 0) - 2 * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF;
4687
+ const width = resultsWidth - 2 * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF;
4839
4688
  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
4840
4689
  // without setTimeout, the initial scrolling offset is calculated
4841
4690
  // incorrectly, as the list is not fully rendered by the browser yet
@@ -4853,57 +4702,54 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4853
4702
  scrollToIndexRef
4854
4703
  ]);
4855
4704
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
4856
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().results), className),
4705
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().results), className),
4857
4706
  children: [
4858
4707
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
4859
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().header),
4860
- children: columns.map((column)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_HeaderButton__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
4708
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().header),
4709
+ children: columns.map((column)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_HeaderButton__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
4861
4710
  column: column
4862
4711
  }, column.id))
4863
4712
  }),
4864
4713
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
4865
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().content),
4714
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().content),
4866
4715
  children: [
4867
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Sizer__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
4868
- ref: sizerRef
4869
- }),
4870
4716
  typeof error !== "undefined" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4871
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4717
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4872
4718
  variant: "error",
4873
4719
  children: error.message
4874
4720
  }),
4875
4721
  typeof error === "undefined" && typeof results === "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4876
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4722
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4877
4723
  variant: "info",
4878
4724
  children: [
4879
4725
  translate("results.empty-state.uninitialized"),
4880
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
4881
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().solveButton)
4726
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
4727
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solveButton)
4882
4728
  })
4883
4729
  ]
4884
4730
  }),
4885
4731
  hasResults && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
4886
4732
  children: [
4887
4733
  isOutdated && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4888
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4734
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4889
4735
  variant: "info",
4890
4736
  children: [
4891
4737
  translate("results.empty-state.outdated"),
4892
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
4893
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().solveButton)
4738
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
4739
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solveButton)
4894
4740
  })
4895
4741
  ]
4896
4742
  }),
4897
4743
  !isOutdated && results.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4898
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4744
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4899
4745
  variant: "warning",
4900
4746
  children: translate("results.empty-state.no-results")
4901
4747
  }),
4902
4748
  !isOutdated && results.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
4903
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().listContainer),
4904
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_window__WEBPACK_IMPORTED_MODULE_4__.FixedSizeList, {
4905
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().list), {
4906
- [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().outdated)]: isOutdated
4749
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().listContainer),
4750
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_window__WEBPACK_IMPORTED_MODULE_3__.FixedSizeList, {
4751
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().list), {
4752
+ [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().outdated)]: isOutdated
4907
4753
  }),
4908
4754
  direction: direction,
4909
4755
  height: height,
@@ -4912,15 +4758,15 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4912
4758
  itemSize: parameters__WEBPACK_IMPORTED_MODULE_6__/* .RESULTS_ITEM_HEIGHT */ .rx,
4913
4759
  ref: setListRef,
4914
4760
  width: width,
4915
- children: _Result__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z
4761
+ children: _Result__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z
4916
4762
  })
4917
4763
  })
4918
4764
  ]
4919
4765
  })
4920
4766
  ]
4921
4767
  }),
4922
- hasResults && results.length > 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResultsInput__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
4923
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().input)
4768
+ showInput && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResultsInput__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
4769
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().input)
4924
4770
  }),
4925
4771
  isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Loading__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {})
4926
4772
  ]
@@ -5099,10 +4945,7 @@ const COLUMNS_L = [
5099
4945
  const useColumns = ()=>{
5100
4946
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectLocale */ .fN);
5101
4947
  const localeColumns = (0,_getLocaleColumns__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(i18n__WEBPACK_IMPORTED_MODULE_1__/* .LOCALE_FEATURES */ .q0[locale]);
5102
- const isLessThanXs = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<xs");
5103
- const isLessThanS = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<s");
5104
- const isLessThanM = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<m");
5105
- const isLessThanL = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<l");
4948
+ const { isLessThanXs , isLessThanS , isLessThanM , isLessThanL } = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQueries */ .lS)();
5106
4949
  if (isLessThanXs) {
5107
4950
  return localeColumns.filter((column)=>COLUMNS_XS.includes(column.id));
5108
4951
  }
@@ -5140,7 +4983,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5140
4983
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
5141
4984
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
5142
4985
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
5143
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
4986
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
5144
4987
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5145
4988
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60066);
5146
4989
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__);
@@ -5236,44 +5079,6 @@ const SeoMessage = ()=>/*#__PURE__*/ jsx_runtime_.jsx("p", {
5236
5079
 
5237
5080
 
5238
5081
 
5239
- /***/ }),
5240
-
5241
- /***/ 2537:
5242
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5243
-
5244
- "use strict";
5245
-
5246
- // EXPORTS
5247
- __webpack_require__.d(__webpack_exports__, {
5248
- "Z": () => (/* reexport */ Sizer_Sizer)
5249
- });
5250
-
5251
- // EXTERNAL MODULE: external "react/jsx-runtime"
5252
- var jsx_runtime_ = __webpack_require__(20997);
5253
- // EXTERNAL MODULE: external "classnames"
5254
- var external_classnames_ = __webpack_require__(59003);
5255
- var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
5256
- // EXTERNAL MODULE: external "react"
5257
- var external_react_ = __webpack_require__(16689);
5258
- // EXTERNAL MODULE: ./src/components/Sizer/Sizer.module.scss
5259
- var Sizer_module = __webpack_require__(76872);
5260
- var Sizer_module_default = /*#__PURE__*/__webpack_require__.n(Sizer_module);
5261
- ;// CONCATENATED MODULE: ./src/components/Sizer/Sizer.tsx
5262
-
5263
-
5264
-
5265
-
5266
- const Sizer = /*#__PURE__*/ (0,external_react_.forwardRef)(({ className , ...props }, ref)=>/*#__PURE__*/ jsx_runtime_.jsx("div", {
5267
- className: external_classnames_default()((Sizer_module_default()).sizer, className),
5268
- ref: ref,
5269
- ...props
5270
- }));
5271
- /* harmony default export */ const Sizer_Sizer = (Sizer);
5272
-
5273
- ;// CONCATENATED MODULE: ./src/components/Sizer/index.ts
5274
-
5275
-
5276
-
5277
5082
  /***/ }),
5278
5083
 
5279
5084
  /***/ 45659:
@@ -5292,24 +5097,19 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5292
5097
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
5293
5098
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
5294
5099
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
5295
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
5296
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
5297
- /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
5298
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
5299
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
5300
- /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15982);
5301
- /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17587);
5302
- /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76195);
5303
- /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35917);
5304
- /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(95937);
5305
- /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(96813);
5306
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(99260);
5307
- /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(41674);
5308
- /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15__);
5309
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _Board__WEBPACK_IMPORTED_MODULE_9__, _Dictionary__WEBPACK_IMPORTED_MODULE_10__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_11__, _Rack__WEBPACK_IMPORTED_MODULE_12__, _Results__WEBPACK_IMPORTED_MODULE_13__, _components__WEBPACK_IMPORTED_MODULE_14__]);
5310
- ([hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _Board__WEBPACK_IMPORTED_MODULE_9__, _Dictionary__WEBPACK_IMPORTED_MODULE_10__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_11__, _Rack__WEBPACK_IMPORTED_MODULE_12__, _Results__WEBPACK_IMPORTED_MODULE_13__, _components__WEBPACK_IMPORTED_MODULE_14__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
5311
-
5312
-
5100
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
5101
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5102
+ /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15982);
5103
+ /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17587);
5104
+ /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(76195);
5105
+ /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35917);
5106
+ /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95937);
5107
+ /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(96813);
5108
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(99260);
5109
+ /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(41674);
5110
+ /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13__);
5111
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_5__, _Board__WEBPACK_IMPORTED_MODULE_7__, _Dictionary__WEBPACK_IMPORTED_MODULE_8__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_9__, _Rack__WEBPACK_IMPORTED_MODULE_10__, _Results__WEBPACK_IMPORTED_MODULE_11__, _components__WEBPACK_IMPORTED_MODULE_12__]);
5112
+ ([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_5__, _Board__WEBPACK_IMPORTED_MODULE_7__, _Dictionary__WEBPACK_IMPORTED_MODULE_8__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_9__, _Rack__WEBPACK_IMPORTED_MODULE_10__, _Results__WEBPACK_IMPORTED_MODULE_11__, _components__WEBPACK_IMPORTED_MODULE_12__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
5313
5113
 
5314
5114
 
5315
5115
 
@@ -5324,34 +5124,23 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hook
5324
5124
 
5325
5125
 
5326
5126
 
5327
- // eslint-disable-next-line max-statements
5328
- const Solver = ({ className , height , width , onShowResults })=>{
5127
+ const Solver = ({ className , onShowResults })=>{
5329
5128
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
5330
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
5331
- const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useIsTouchDevice */ .YQ)();
5332
- const { columnWidth , componentsSpacing , isBoardFullWidth , showColumn , showCompactControls , showFloatingSolveButton } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
5333
- const config = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectConfig */ .$o);
5334
- const error = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSolveError */ .Rn);
5335
- const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectAreResultsOutdated */ .Mj);
5336
- const resultCandidate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResultCandidate */ .Xk);
5337
- const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResults */ .x5);
5338
- const [bottomContainerRef, { height: bottomContainerHeight }] = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useMeasure)();
5339
- const maxBoardWidth = width - columnWidth - (showColumn ? componentsSpacing : 0) - 2 * componentsSpacing;
5340
- const maxBoardHeight = isBoardFullWidth ? Number.POSITIVE_INFINITY : Math.max(height - bottomContainerHeight, 0);
5129
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
5130
+ const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useIsTouchDevice */ .YQ)();
5131
+ const { cellSize , maxControlsWidth , showCompactControls , showFloatingSolveButton , tileSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
5132
+ const error = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectSolveError */ .Rn);
5133
+ const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectAreResultsOutdated */ .Mj);
5134
+ const resultCandidate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultCandidate */ .Xk);
5135
+ const results = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResults */ .x5);
5341
5136
  const [bestResult] = results || [];
5342
- const cellWidth = (maxBoardWidth - (config.boardWidth + 1) * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF) / config.boardWidth;
5343
- const cellHeight = (maxBoardHeight - (config.boardHeight + 1) * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF) / config.boardHeight;
5344
- const cellSize = Math.min(cellWidth, cellHeight);
5345
- const cellSizeSafe = Math.min(Math.max(cellSize, parameters__WEBPACK_IMPORTED_MODULE_6__/* .BOARD_TILE_SIZE_MIN */ .oj), parameters__WEBPACK_IMPORTED_MODULE_6__/* .BOARD_TILE_SIZE_MAX */ .Kw);
5346
- const tileSize = Math.min((maxBoardWidth - 2 * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF) / config.maximumCharactersCount, parameters__WEBPACK_IMPORTED_MODULE_6__/* .RACK_TILE_SIZE_MAX */ .$M);
5347
- const maxControlsWidth = tileSize * config.maximumCharactersCount + 2 * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF;
5348
5137
  const touchCallbacks = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>({
5349
5138
  onClick: (result)=>{
5350
5139
  const isSelected = result === resultCandidate;
5351
5140
  if (isSelected) {
5352
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5141
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5353
5142
  } else {
5354
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5143
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5355
5144
  }
5356
5145
  }
5357
5146
  }), [
@@ -5360,19 +5149,19 @@ const Solver = ({ className , height , width , onShowResults })=>{
5360
5149
  ]);
5361
5150
  const mouseCallbacks = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>({
5362
5151
  onBlur: ()=>{
5363
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5152
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5364
5153
  },
5365
5154
  onClick: (result)=>{
5366
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5155
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5367
5156
  },
5368
5157
  onFocus: (result)=>{
5369
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5158
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5370
5159
  },
5371
5160
  onMouseEnter: (result)=>{
5372
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5161
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5373
5162
  },
5374
5163
  onMouseLeave: ()=>{
5375
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5164
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5376
5165
  }
5377
5166
  }), [
5378
5167
  dispatch
@@ -5380,11 +5169,11 @@ const Solver = ({ className , height , width , onShowResults })=>{
5380
5169
  const callbacks = isTouchDevice ? touchCallbacks : mouseCallbacks;
5381
5170
  const handleSubmit = (event)=>{
5382
5171
  event.preventDefault();
5383
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .solveSlice.actions.submit */ .TP.actions.submit());
5172
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .solveSlice.actions.submit */ .TP.actions.submit());
5384
5173
  };
5385
5174
  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
5386
5175
  if (showCompactControls && bestResult && !isOutdated) {
5387
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(bestResult));
5176
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(bestResult));
5388
5177
  }
5389
5178
  }, [
5390
5179
  bestResult,
@@ -5393,43 +5182,43 @@ const Solver = ({ className , height , width , onShowResults })=>{
5393
5182
  isOutdated
5394
5183
  ]);
5395
5184
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5396
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solver), className),
5185
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().solver), className),
5397
5186
  children: [
5398
5187
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
5399
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().container),
5188
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().container),
5400
5189
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5401
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().content),
5190
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().content),
5402
5191
  children: [
5403
5192
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
5404
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().boardContainer),
5193
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().boardContainer),
5405
5194
  onSubmit: handleSubmit,
5406
5195
  children: [
5407
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Board__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
5408
- cellSize: cellSizeSafe,
5409
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().board)
5196
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Board__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
5197
+ cellSize: cellSize,
5198
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().board)
5410
5199
  }),
5411
5200
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
5412
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().submitInput),
5201
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().submitInput),
5413
5202
  tabIndex: -1,
5414
5203
  type: "submit"
5415
5204
  })
5416
5205
  ]
5417
5206
  }),
5418
5207
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5419
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().column),
5208
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().column),
5420
5209
  children: [
5421
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Results__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
5210
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Results__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
5422
5211
  callbacks: callbacks,
5423
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().results)
5212
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().results)
5424
5213
  }),
5425
5214
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5426
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionaryContainer),
5215
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().dictionaryContainer),
5427
5216
  children: [
5428
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Dictionary__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
5429
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionary)
5217
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Dictionary__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5218
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().dictionary)
5430
5219
  }),
5431
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_DictionaryInput__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
5432
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionaryInput)
5220
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_DictionaryInput__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
5221
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().dictionaryInput)
5433
5222
  })
5434
5223
  ]
5435
5224
  })
@@ -5439,41 +5228,40 @@ const Solver = ({ className , height , width , onShowResults })=>{
5439
5228
  })
5440
5229
  }),
5441
5230
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
5442
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().bottomContainer),
5443
- ref: bottomContainerRef,
5231
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().bottomContainer),
5444
5232
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5445
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().bottomContent),
5233
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().bottomContent),
5446
5234
  children: [
5447
5235
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
5448
5236
  onSubmit: handleSubmit,
5449
5237
  children: [
5450
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Rack__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
5451
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().rack),
5238
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Rack__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
5239
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().rack),
5452
5240
  tileSize: tileSize
5453
5241
  }),
5454
5242
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
5455
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().submitInput),
5243
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().submitInput),
5456
5244
  tabIndex: -1,
5457
5245
  type: "submit"
5458
5246
  })
5459
5247
  ]
5460
5248
  }),
5461
5249
  showCompactControls && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5462
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().controls),
5250
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().controls),
5463
5251
  style: {
5464
5252
  maxWidth: maxControlsWidth
5465
5253
  },
5466
5254
  children: [
5467
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_14__/* .ResultCandidatePicker */ .WI, {
5255
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_12__/* .ResultCandidatePicker */ .WI, {
5468
5256
  onResultClick: onShowResults
5469
5257
  }),
5470
- error && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5471
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
5258
+ error && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
5259
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
5472
5260
  variant: "error",
5473
5261
  children: error.message
5474
5262
  }),
5475
- results && results.length === 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5476
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
5263
+ results && results.length === 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
5264
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
5477
5265
  variant: "warning",
5478
5266
  children: translate("results.empty-state.no-results")
5479
5267
  })
@@ -5482,14 +5270,14 @@ const Solver = ({ className , height , width , onShowResults })=>{
5482
5270
  ]
5483
5271
  })
5484
5272
  }),
5485
- showFloatingSolveButton && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_14__/* .FloatingSolveButton */ .DY, {
5486
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solve),
5273
+ showFloatingSolveButton && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_12__/* .FloatingSolveButton */ .DY, {
5274
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().solve),
5487
5275
  onClick: handleSubmit
5488
5276
  })
5489
5277
  ]
5490
5278
  });
5491
5279
  };
5492
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Solver);
5280
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(Solver));
5493
5281
 
5494
5282
  __webpack_async_result__();
5495
5283
  } catch(e) { __webpack_async_result__(e); } });
@@ -5511,7 +5299,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5511
5299
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
5512
5300
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
5513
5301
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
5514
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
5302
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
5515
5303
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5516
5304
  /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83900);
5517
5305
  /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33538);
@@ -5902,44 +5690,6 @@ _Spinner__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (
5902
5690
  __webpack_async_result__();
5903
5691
  } catch(e) { __webpack_async_result__(e); } });
5904
5692
 
5905
- /***/ }),
5906
-
5907
- /***/ 8984:
5908
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5909
-
5910
- "use strict";
5911
-
5912
- // EXPORTS
5913
- __webpack_require__.d(__webpack_exports__, {
5914
- "Z": () => (/* reexport */ SplashScreen_SplashScreen)
5915
- });
5916
-
5917
- // EXTERNAL MODULE: external "react/jsx-runtime"
5918
- var jsx_runtime_ = __webpack_require__(20997);
5919
- // EXTERNAL MODULE: external "classnames"
5920
- var external_classnames_ = __webpack_require__(59003);
5921
- var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
5922
- // EXTERNAL MODULE: ./src/components/SplashScreen/SplashScreen.module.scss
5923
- var SplashScreen_module = __webpack_require__(37675);
5924
- var SplashScreen_module_default = /*#__PURE__*/__webpack_require__.n(SplashScreen_module);
5925
- ;// CONCATENATED MODULE: ./src/components/SplashScreen/SplashScreen.tsx
5926
-
5927
-
5928
-
5929
- const SplashScreen = ({ children , className , contentClassName , onAnimationEnd })=>/*#__PURE__*/ jsx_runtime_.jsx("div", {
5930
- className: external_classnames_default()((SplashScreen_module_default()).splashScreen, className),
5931
- onAnimationEnd: onAnimationEnd,
5932
- children: /*#__PURE__*/ jsx_runtime_.jsx("div", {
5933
- className: external_classnames_default()((SplashScreen_module_default()).content, contentClassName),
5934
- children: children
5935
- })
5936
- });
5937
- /* harmony default export */ const SplashScreen_SplashScreen = (SplashScreen);
5938
-
5939
- ;// CONCATENATED MODULE: ./src/components/SplashScreen/index.ts
5940
-
5941
-
5942
-
5943
5693
  /***/ }),
5944
5694
 
5945
5695
  /***/ 73289:
@@ -6041,7 +5791,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6041
5791
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
6042
5792
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6043
5793
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
6044
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
5794
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
6045
5795
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
6046
5796
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
6047
5797
  /* harmony import */ var _TilePure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83147);
@@ -6081,10 +5831,12 @@ const Tile = ({ "aria-label": ariaLabel , autoFocus , className , character =""
6081
5831
  const isEmpty = !character || character === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_2__.EMPTY_CELL;
6082
5832
  const canShowPoints = showTilePoints && (!isEmpty || isBlank) && typeof points !== "undefined";
6083
5833
  const pointsFormatted = typeof points === "number" ? points.toLocaleString(locale) : "";
6084
- const handleKeyDown = (event)=>{
5834
+ const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
6085
5835
  ref.current?.select();
6086
5836
  onKeyDown(event);
6087
- };
5837
+ }, [
5838
+ onKeyDown
5839
+ ]);
6088
5840
  (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{
6089
5841
  if (autoFocus && ref.current) {
6090
5842
  ref.current.focus();
@@ -6256,7 +6008,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6256
6008
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
6257
6009
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6258
6010
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
6259
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
6011
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
6260
6012
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(53229);
6261
6013
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__);
6262
6014
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_4__]);
@@ -6380,21 +6132,20 @@ __webpack_async_result__();
6380
6132
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6381
6133
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6382
6134
  /* harmony export */ "Ct": () => (/* reexport safe */ _Badge__WEBPACK_IMPORTED_MODULE_1__.Z),
6383
- /* harmony export */ "Ex": () => (/* reexport safe */ _Progress__WEBPACK_IMPORTED_MODULE_17__.Z),
6384
- /* harmony export */ "ME": () => (/* reexport safe */ _Solver__WEBPACK_IMPORTED_MODULE_24__.Z),
6385
- /* harmony export */ "QR": () => (/* reexport safe */ _SeoMessage__WEBPACK_IMPORTED_MODULE_22__.Z),
6135
+ /* harmony export */ "Ex": () => (/* reexport safe */ _Progress__WEBPACK_IMPORTED_MODULE_16__.Z),
6136
+ /* harmony export */ "ME": () => (/* reexport safe */ _Solver__WEBPACK_IMPORTED_MODULE_22__.Z),
6137
+ /* harmony export */ "QR": () => (/* reexport safe */ _SeoMessage__WEBPACK_IMPORTED_MODULE_21__.Z),
6386
6138
  /* harmony export */ "TR": () => (/* reexport safe */ _Logo__WEBPACK_IMPORTED_MODULE_11__.Z),
6387
- /* harmony export */ "TX": () => (/* reexport safe */ _NotFound__WEBPACK_IMPORTED_MODULE_15__.Z),
6139
+ /* harmony export */ "TX": () => (/* reexport safe */ _NotFound__WEBPACK_IMPORTED_MODULE_14__.Z),
6388
6140
  /* harmony export */ "Xy": () => (/* reexport safe */ _Dictionary__WEBPACK_IMPORTED_MODULE_5__.Z),
6389
- /* harmony export */ "Y8": () => (/* reexport safe */ _Radio__WEBPACK_IMPORTED_MODULE_19__.Z),
6141
+ /* harmony export */ "Y8": () => (/* reexport safe */ _Radio__WEBPACK_IMPORTED_MODULE_18__.Z),
6390
6142
  /* harmony export */ "Z$": () => (/* reexport safe */ _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__.Z),
6391
- /* harmony export */ "_m": () => (/* reexport safe */ _NavButtons__WEBPACK_IMPORTED_MODULE_14__.Z),
6392
- /* harmony export */ "hL": () => (/* reexport safe */ _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_12__.Z),
6393
- /* harmony export */ "n9": () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_29__.Z),
6143
+ /* harmony export */ "_m": () => (/* reexport safe */ _NavButtons__WEBPACK_IMPORTED_MODULE_13__.Z),
6144
+ /* harmony export */ "n9": () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_26__.Z),
6394
6145
  /* harmony export */ "sr": () => (/* reexport safe */ _Key__WEBPACK_IMPORTED_MODULE_9__.Z),
6395
- /* harmony export */ "u9": () => (/* reexport safe */ _Results__WEBPACK_IMPORTED_MODULE_20__.Z),
6396
- /* harmony export */ "u_": () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_13__.Z),
6397
- /* harmony export */ "uz": () => (/* reexport safe */ _SvgFontFix__WEBPACK_IMPORTED_MODULE_28__.Z),
6146
+ /* harmony export */ "u9": () => (/* reexport safe */ _Results__WEBPACK_IMPORTED_MODULE_19__.Z),
6147
+ /* harmony export */ "u_": () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_12__.Z),
6148
+ /* harmony export */ "uz": () => (/* reexport safe */ _SvgFontFix__WEBPACK_IMPORTED_MODULE_25__.Z),
6398
6149
  /* harmony export */ "zx": () => (/* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_3__.Z)
6399
6150
  /* harmony export */ });
6400
6151
  /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15982);
@@ -6408,31 +6159,25 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6408
6159
  /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(95975);
6409
6160
  /* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34535);
6410
6161
  /* harmony import */ var _Loading__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13842);
6411
- /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8023);
6412
- /* harmony import */ var _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(6436);
6413
- /* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(59187);
6414
- /* harmony import */ var _NavButtons__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(90374);
6415
- /* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(24442);
6416
- /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(65925);
6417
- /* harmony import */ var _Progress__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(29348);
6418
- /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(95937);
6419
- /* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(71739);
6420
- /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(96813);
6421
- /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(74790);
6422
- /* harmony import */ var _SeoMessage__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(84203);
6423
- /* harmony import */ var _Sizer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(2537);
6424
- /* harmony import */ var _Solver__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(65437);
6425
- /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(33538);
6426
- /* harmony import */ var _SplashScreen__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(8984);
6427
- /* harmony import */ var _SvgFontCss__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(73289);
6428
- /* harmony import */ var _SvgFontFix__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(33956);
6429
- /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(96815);
6430
- /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(59004);
6431
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Board__WEBPACK_IMPORTED_MODULE_2__, _Button__WEBPACK_IMPORTED_MODULE_3__, _Dictionary__WEBPACK_IMPORTED_MODULE_5__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__, _EmptyState__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_10__, _Modal__WEBPACK_IMPORTED_MODULE_13__, _NavButtons__WEBPACK_IMPORTED_MODULE_14__, _NotFound__WEBPACK_IMPORTED_MODULE_15__, _PlainTiles__WEBPACK_IMPORTED_MODULE_16__, _Progress__WEBPACK_IMPORTED_MODULE_17__, _Rack__WEBPACK_IMPORTED_MODULE_18__, _Results__WEBPACK_IMPORTED_MODULE_20__, _ResultsInput__WEBPACK_IMPORTED_MODULE_21__, _Solver__WEBPACK_IMPORTED_MODULE_24__, _Spinner__WEBPACK_IMPORTED_MODULE_25__, _Tile__WEBPACK_IMPORTED_MODULE_29__, _Tooltip__WEBPACK_IMPORTED_MODULE_30__]);
6432
- ([_Board__WEBPACK_IMPORTED_MODULE_2__, _Button__WEBPACK_IMPORTED_MODULE_3__, _Dictionary__WEBPACK_IMPORTED_MODULE_5__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__, _EmptyState__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_10__, _Modal__WEBPACK_IMPORTED_MODULE_13__, _NavButtons__WEBPACK_IMPORTED_MODULE_14__, _NotFound__WEBPACK_IMPORTED_MODULE_15__, _PlainTiles__WEBPACK_IMPORTED_MODULE_16__, _Progress__WEBPACK_IMPORTED_MODULE_17__, _Rack__WEBPACK_IMPORTED_MODULE_18__, _Results__WEBPACK_IMPORTED_MODULE_20__, _ResultsInput__WEBPACK_IMPORTED_MODULE_21__, _Solver__WEBPACK_IMPORTED_MODULE_24__, _Spinner__WEBPACK_IMPORTED_MODULE_25__, _Tile__WEBPACK_IMPORTED_MODULE_29__, _Tooltip__WEBPACK_IMPORTED_MODULE_30__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6433
-
6434
-
6435
-
6162
+ /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(18801);
6163
+ /* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(59187);
6164
+ /* harmony import */ var _NavButtons__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90374);
6165
+ /* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(24442);
6166
+ /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(65925);
6167
+ /* harmony import */ var _Progress__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29348);
6168
+ /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(95937);
6169
+ /* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(71739);
6170
+ /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(96813);
6171
+ /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(74790);
6172
+ /* harmony import */ var _SeoMessage__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(84203);
6173
+ /* harmony import */ var _Solver__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(65437);
6174
+ /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(33538);
6175
+ /* harmony import */ var _SvgFontCss__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(73289);
6176
+ /* harmony import */ var _SvgFontFix__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(33956);
6177
+ /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(96815);
6178
+ /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(59004);
6179
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Board__WEBPACK_IMPORTED_MODULE_2__, _Button__WEBPACK_IMPORTED_MODULE_3__, _Dictionary__WEBPACK_IMPORTED_MODULE_5__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__, _EmptyState__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_10__, _Logo__WEBPACK_IMPORTED_MODULE_11__, _Modal__WEBPACK_IMPORTED_MODULE_12__, _NavButtons__WEBPACK_IMPORTED_MODULE_13__, _NotFound__WEBPACK_IMPORTED_MODULE_14__, _PlainTiles__WEBPACK_IMPORTED_MODULE_15__, _Progress__WEBPACK_IMPORTED_MODULE_16__, _Rack__WEBPACK_IMPORTED_MODULE_17__, _Results__WEBPACK_IMPORTED_MODULE_19__, _ResultsInput__WEBPACK_IMPORTED_MODULE_20__, _Solver__WEBPACK_IMPORTED_MODULE_22__, _Spinner__WEBPACK_IMPORTED_MODULE_23__, _Tile__WEBPACK_IMPORTED_MODULE_26__, _Tooltip__WEBPACK_IMPORTED_MODULE_27__]);
6180
+ ([_Board__WEBPACK_IMPORTED_MODULE_2__, _Button__WEBPACK_IMPORTED_MODULE_3__, _Dictionary__WEBPACK_IMPORTED_MODULE_5__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__, _EmptyState__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__, _Loading__WEBPACK_IMPORTED_MODULE_10__, _Logo__WEBPACK_IMPORTED_MODULE_11__, _Modal__WEBPACK_IMPORTED_MODULE_12__, _NavButtons__WEBPACK_IMPORTED_MODULE_13__, _NotFound__WEBPACK_IMPORTED_MODULE_14__, _PlainTiles__WEBPACK_IMPORTED_MODULE_15__, _Progress__WEBPACK_IMPORTED_MODULE_16__, _Rack__WEBPACK_IMPORTED_MODULE_17__, _Results__WEBPACK_IMPORTED_MODULE_19__, _ResultsInput__WEBPACK_IMPORTED_MODULE_20__, _Solver__WEBPACK_IMPORTED_MODULE_22__, _Spinner__WEBPACK_IMPORTED_MODULE_23__, _Tile__WEBPACK_IMPORTED_MODULE_26__, _Tooltip__WEBPACK_IMPORTED_MODULE_27__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6436
6181
 
6437
6182
 
6438
6183
 
@@ -6474,22 +6219,36 @@ __webpack_async_result__();
6474
6219
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6475
6220
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6476
6221
  /* harmony export */ "Ft": () => (/* reexport safe */ _useAppLayout__WEBPACK_IMPORTED_MODULE_0__.Z),
6477
- /* harmony export */ "YQ": () => (/* reexport safe */ _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__.Z),
6478
- /* harmony export */ "ZK": () => (/* reexport safe */ _useLanguage__WEBPACK_IMPORTED_MODULE_3__.Z),
6479
- /* harmony export */ "_": () => (/* reexport safe */ _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__.Z),
6480
- /* harmony export */ "ac": () => (/* reexport safe */ _useMediaQuery__WEBPACK_IMPORTED_MODULE_5__.Z),
6222
+ /* harmony export */ "YQ": () => (/* reexport safe */ _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_3__.Z),
6223
+ /* harmony export */ "ZK": () => (/* reexport safe */ _useLanguage__WEBPACK_IMPORTED_MODULE_4__.Z),
6224
+ /* harmony export */ "_": () => (/* reexport safe */ _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__.Z),
6225
+ /* harmony export */ "dU": () => (/* reexport safe */ _useLatest__WEBPACK_IMPORTED_MODULE_5__.Z),
6481
6226
  /* harmony export */ "gm": () => (/* reexport safe */ _useDirection__WEBPACK_IMPORTED_MODULE_1__.Z),
6482
- /* harmony export */ "vI": () => (/* reexport safe */ _usePortal__WEBPACK_IMPORTED_MODULE_6__.Z)
6227
+ /* harmony export */ "lS": () => (/* reexport safe */ _useMediaQueries__WEBPACK_IMPORTED_MODULE_8__.Z),
6228
+ /* harmony export */ "qR": () => (/* reexport safe */ _useEffectOnce__WEBPACK_IMPORTED_MODULE_2__.Z),
6229
+ /* harmony export */ "vI": () => (/* reexport safe */ _usePortal__WEBPACK_IMPORTED_MODULE_11__.Z)
6483
6230
  /* harmony export */ });
6484
6231
  /* harmony import */ var _useAppLayout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95682);
6485
6232
  /* harmony import */ var _useDirection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43385);
6486
- /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41374);
6487
- /* harmony import */ var _useLanguage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86969);
6488
- /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46465);
6489
- /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78909);
6490
- /* harmony import */ var _usePortal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4371);
6491
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useLocalStorage__WEBPACK_IMPORTED_MODULE_4__]);
6492
- _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6233
+ /* harmony import */ var _useEffectOnce__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13041);
6234
+ /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41374);
6235
+ /* harmony import */ var _useLanguage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86969);
6236
+ /* harmony import */ var _useLatest__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71814);
6237
+ /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19272);
6238
+ /* harmony import */ var _useMedia__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40234);
6239
+ /* harmony import */ var _useMediaQueries__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37205);
6240
+ /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(78909);
6241
+ /* harmony import */ var _useOnWindowResize__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14884);
6242
+ /* harmony import */ var _usePortal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4371);
6243
+ /* harmony import */ var _useViewportSize__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(21995);
6244
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useAppLayout__WEBPACK_IMPORTED_MODULE_0__, _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__]);
6245
+ ([_useAppLayout__WEBPACK_IMPORTED_MODULE_0__, _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6246
+
6247
+
6248
+
6249
+
6250
+
6251
+
6493
6252
 
6494
6253
 
6495
6254
 
@@ -6504,43 +6263,77 @@ __webpack_async_result__();
6504
6263
  /***/ }),
6505
6264
 
6506
6265
  /***/ 95682:
6507
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6266
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
6508
6267
 
6509
6268
  "use strict";
6269
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6510
6270
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6511
6271
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6512
6272
  /* harmony export */ });
6513
6273
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64534);
6514
- /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41374);
6515
- /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78909);
6274
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83067);
6275
+ /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41374);
6276
+ /* harmony import */ var _useMediaQueries__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(37205);
6277
+ /* harmony import */ var _useViewportSize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21995);
6278
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_1__]);
6279
+ state__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6280
+ /* eslint-disable max-statements */
6281
+
6516
6282
 
6517
6283
 
6518
6284
 
6519
6285
  const useAppLayout = ()=>{
6520
- const isTouchDevice = (0,_useIsTouchDevice__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)();
6521
- const isLessThanXs = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<xs");
6522
- const isLessThanS = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<s");
6523
- const isLessThanM = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<m");
6524
- const isLessThanL = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<l");
6525
- const isLessThanXl = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<xl");
6286
+ const { viewportHeight , viewportWidth } = (0,_useViewportSize__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)();
6287
+ const config = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectConfig */ .$o);
6288
+ const isTouchDevice = (0,_useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)();
6289
+ const { isLessThanXs , isLessThanS , isLessThanM , isLessThanL , isLessThanXl } = (0,_useMediaQueries__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)();
6290
+ const isBoardFullWidth = isLessThanM;
6291
+ const showResultCandidatePicker = isLessThanL;
6292
+ const componentsSpacing = isLessThanXl ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING_SMALL */ .op : parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING */ .tr;
6526
6293
  const showColumn = !isLessThanL;
6294
+ const columnWidth = showColumn ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .SOLVER_COLUMN_WIDTH */ .pt : 0;
6295
+ const logoHeight = isLessThanL ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .LOGO_HEIGHT_SMALL */ .t : parameters__WEBPACK_IMPORTED_MODULE_0__/* .LOGO_HEIGHT */ .y7;
6296
+ const navHeight = 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .NAV_PADDING */ .t$ + logoHeight;
6297
+ const solverHeight = viewportHeight - navHeight;
6298
+ const solverWidth = viewportWidth;
6299
+ const maxBoardWidth = solverWidth - columnWidth - (showColumn ? componentsSpacing : 0) - 2 * componentsSpacing;
6300
+ const tileSize = Math.min((maxBoardWidth - 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) / config.maximumCharactersCount, parameters__WEBPACK_IMPORTED_MODULE_0__/* .RACK_TILE_SIZE_MAX */ .$M);
6301
+ const candidatePickerHeight = showResultCandidatePicker ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .BUTTON_HEIGHT */ .FZ + componentsSpacing : 0;
6302
+ const bottomContainerHeight = candidatePickerHeight + tileSize + 2 * componentsSpacing;
6303
+ const maxBoardHeight = isBoardFullWidth ? Number.POSITIVE_INFINITY : Math.max(solverHeight - bottomContainerHeight, 0);
6304
+ const cellWidth = (maxBoardWidth - (config.boardWidth + 1) * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) / config.boardWidth;
6305
+ const cellHeight = (maxBoardHeight - (config.boardHeight + 1) * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) / config.boardHeight;
6306
+ const cellSize = Math.min(Math.max(Math.min(cellWidth, cellHeight), parameters__WEBPACK_IMPORTED_MODULE_0__/* .BOARD_TILE_SIZE_MIN */ .oj), parameters__WEBPACK_IMPORTED_MODULE_0__/* .BOARD_TILE_SIZE_MAX */ .Kw);
6307
+ const boardSize = (cellSize + parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) * config.boardWidth + parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF;
6308
+ const maxControlsWidth = tileSize * config.maximumCharactersCount + 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF;
6309
+ const showResultsInModal = isLessThanL;
6310
+ const dictionaryHeight = showResultsInModal ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .DICTIONARY_HEIGHT_MOBILE */ .Rh : parameters__WEBPACK_IMPORTED_MODULE_0__/* .DICTIONARY_HEIGHT */ .n6;
6311
+ const modalWidth = isLessThanS ? viewportWidth : parameters__WEBPACK_IMPORTED_MODULE_0__/* .MODAL_WIDTH */ .iF;
6312
+ const resultsHeight = isLessThanL ? viewportHeight - dictionaryHeight - parameters__WEBPACK_IMPORTED_MODULE_0__/* .BUTTON_HEIGHT */ .FZ - parameters__WEBPACK_IMPORTED_MODULE_0__/* .MODAL_HEADER_HEIGHT */ .PV - 5 * componentsSpacing : boardSize - componentsSpacing - dictionaryHeight;
6527
6313
  return {
6314
+ actionsWidth: 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BUTTON_HEIGHT */ .FZ - parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF,
6528
6315
  animateTile: !isLessThanXs,
6529
- columnWidth: showColumn ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .SOLVER_COLUMN_WIDTH */ .pt : 0,
6530
- componentsSpacing: isLessThanXl ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING_SMALL */ .op : parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING */ .tr,
6531
- isBoardFullWidth: isLessThanM,
6316
+ cellSize,
6317
+ dictionaryHeight,
6532
6318
  isModalFullWidth: isLessThanS,
6533
- showColumn,
6319
+ logoHeight,
6320
+ logoWidth: logoHeight * parameters__WEBPACK_IMPORTED_MODULE_0__/* .LOGO_ASPECT_RATIO */ .pc,
6321
+ maxControlsWidth,
6322
+ resultsHeight,
6323
+ resultsWidth: isLessThanL ? modalWidth - 2 * componentsSpacing : parameters__WEBPACK_IMPORTED_MODULE_0__/* .SOLVER_COLUMN_WIDTH */ .pt,
6534
6324
  showCompactControls: !showColumn,
6535
6325
  showFloatingSolveButton: isTouchDevice,
6536
6326
  showKeyMap: !isTouchDevice,
6537
- showResultsInModal: isLessThanL,
6327
+ showResultsInModal,
6538
6328
  showShortNav: isLessThanS,
6539
- showTilePoints: !isLessThanXs
6329
+ showTilePoints: !isLessThanXs,
6330
+ tileSize
6540
6331
  };
6541
6332
  };
6542
6333
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useAppLayout);
6543
6334
 
6335
+ __webpack_async_result__();
6336
+ } catch(e) { __webpack_async_result__(e); } });
6544
6337
 
6545
6338
  /***/ }),
6546
6339
 
@@ -6553,7 +6346,7 @@ const useAppLayout = ()=>{
6553
6346
  /* harmony export */ });
6554
6347
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6555
6348
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6556
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10129);
6349
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65175);
6557
6350
 
6558
6351
 
6559
6352
  const useDirection = (direction)=>{
@@ -6574,6 +6367,22 @@ const useDirection = (direction)=>{
6574
6367
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useDirection);
6575
6368
 
6576
6369
 
6370
+ /***/ }),
6371
+
6372
+ /***/ 13041:
6373
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6374
+
6375
+ "use strict";
6376
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6377
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6378
+ /* harmony export */ });
6379
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6380
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6381
+
6382
+ const useEffectOnce = (effect)=>(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(effect, []);
6383
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useEffectOnce);
6384
+
6385
+
6577
6386
  /***/ }),
6578
6387
 
6579
6388
  /***/ 41374:
@@ -6583,11 +6392,10 @@ const useDirection = (direction)=>{
6583
6392
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6584
6393
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6585
6394
  /* harmony export */ });
6586
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69755);
6587
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_0__);
6395
+ /* harmony import */ var _useMedia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40234);
6588
6396
 
6589
6397
  const useIsTouchDevice = ()=>{
6590
- return (0,react_use__WEBPACK_IMPORTED_MODULE_0__.useMedia)("(hover: none)", false);
6398
+ return (0,_useMedia__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("(hover: none)", false);
6591
6399
  };
6592
6400
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useIsTouchDevice);
6593
6401
 
@@ -6603,7 +6411,7 @@ const useIsTouchDevice = ()=>{
6603
6411
  /* harmony export */ });
6604
6412
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6605
6413
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6606
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10129);
6414
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65175);
6607
6415
 
6608
6416
 
6609
6417
  const useLanguage = (language)=>{
@@ -6626,56 +6434,27 @@ const useLanguage = (language)=>{
6626
6434
 
6627
6435
  /***/ }),
6628
6436
 
6629
- /***/ 46465:
6630
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6631
-
6632
- "use strict";
6633
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6634
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6635
- /* harmony export */ "Z": () => (/* reexport safe */ _useLocalStorage__WEBPACK_IMPORTED_MODULE_0__.Z)
6636
- /* harmony export */ });
6637
- /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48181);
6638
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useLocalStorage__WEBPACK_IMPORTED_MODULE_0__]);
6639
- _useLocalStorage__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6640
-
6641
-
6642
- __webpack_async_result__();
6643
- } catch(e) { __webpack_async_result__(e); } });
6644
-
6645
- /***/ }),
6646
-
6647
- /***/ 48181:
6648
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6437
+ /***/ 71814:
6438
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6649
6439
 
6650
6440
  "use strict";
6651
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6652
6441
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6653
6442
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6654
6443
  /* harmony export */ });
6655
- /* harmony import */ var _useLocalStorageBoard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96831);
6656
- /* harmony import */ var _useLocalStorageConfigId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67637);
6657
- /* harmony import */ var _useLocalStorageLocale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60821);
6658
- /* harmony import */ var _useLocalStorageRack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31089);
6659
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useLocalStorageBoard__WEBPACK_IMPORTED_MODULE_0__, _useLocalStorageConfigId__WEBPACK_IMPORTED_MODULE_1__, _useLocalStorageLocale__WEBPACK_IMPORTED_MODULE_2__, _useLocalStorageRack__WEBPACK_IMPORTED_MODULE_3__]);
6660
- ([_useLocalStorageBoard__WEBPACK_IMPORTED_MODULE_0__, _useLocalStorageConfigId__WEBPACK_IMPORTED_MODULE_1__, _useLocalStorageLocale__WEBPACK_IMPORTED_MODULE_2__, _useLocalStorageRack__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6661
-
6662
-
6663
-
6444
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6445
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6664
6446
 
6665
- const useLocalStorage = ()=>{
6666
- (0,_useLocalStorageRack__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(); // rack has to go first, see 14869a4
6667
- (0,_useLocalStorageBoard__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)();
6668
- (0,_useLocalStorageConfigId__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)();
6669
- (0,_useLocalStorageLocale__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)();
6447
+ const useLatest = (value)=>{
6448
+ const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value);
6449
+ ref.current = value;
6450
+ return ref;
6670
6451
  };
6671
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorage);
6452
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLatest);
6672
6453
 
6673
- __webpack_async_result__();
6674
- } catch(e) { __webpack_async_result__(e); } });
6675
6454
 
6676
6455
  /***/ }),
6677
6456
 
6678
- /***/ 96831:
6457
+ /***/ 19272:
6679
6458
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
6680
6459
 
6681
6460
  "use strict";
@@ -6685,218 +6464,173 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6685
6464
  /* harmony export */ });
6686
6465
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6687
6466
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6688
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6689
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6690
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6691
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6692
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83067);
6693
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
6694
- state__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6695
-
6467
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83067);
6468
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_1__]);
6469
+ state__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6696
6470
 
6697
6471
 
6698
-
6699
- const useLocalStorageBoard = ()=>{
6700
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6701
- const board = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_3__/* .selectBoard */ .ZO);
6702
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6703
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6704
- const persistedBoard = state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.getBoard */ .Xb.getBoard();
6705
- if (persistedBoard) {
6706
- dispatch(state__WEBPACK_IMPORTED_MODULE_3__/* .boardSlice.actions.init */ .I8.actions.init(persistedBoard));
6472
+ const useLocalStorage = ()=>{
6473
+ const autoGroupTiles = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectAutoGroupTiles */ .uz);
6474
+ const board = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectBoard */ .ZO);
6475
+ const configId = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectConfigId */ .md);
6476
+ const locale = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectLocale */ .fN);
6477
+ const rack = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectRack */ .QB);
6478
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6479
+ if (autoGroupTiles) {
6480
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setAutoGroupTiles */ .Xb.setAutoGroupTiles(autoGroupTiles);
6707
6481
  }
6708
- setIsLoaded(true);
6709
- });
6482
+ }, [
6483
+ autoGroupTiles
6484
+ ]);
6485
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6486
+ if (board) {
6487
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setBoard */ .Xb.setBoard(board);
6488
+ }
6489
+ }, [
6490
+ board
6491
+ ]);
6492
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6493
+ if (configId) {
6494
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setConfigId */ .Xb.setConfigId(configId);
6495
+ }
6496
+ }, [
6497
+ configId
6498
+ ]);
6499
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6500
+ if (locale) {
6501
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setLocale */ .Xb.setLocale(locale);
6502
+ }
6503
+ }, [
6504
+ locale
6505
+ ]);
6710
6506
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6711
- if (board && isLoaded) {
6712
- state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.setBoard */ .Xb.setBoard(board);
6507
+ if (rack) {
6508
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setRack */ .Xb.setRack(rack);
6713
6509
  }
6714
6510
  }, [
6715
- board,
6716
- isLoaded
6511
+ rack
6717
6512
  ]);
6718
6513
  };
6719
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageBoard);
6514
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorage);
6720
6515
 
6721
6516
  __webpack_async_result__();
6722
6517
  } catch(e) { __webpack_async_result__(e); } });
6723
6518
 
6724
6519
  /***/ }),
6725
6520
 
6726
- /***/ 67637:
6727
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6521
+ /***/ 40234:
6522
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6728
6523
 
6729
6524
  "use strict";
6730
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6731
6525
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6732
6526
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6733
6527
  /* harmony export */ });
6734
6528
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6735
6529
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6736
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6737
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6738
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6739
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6740
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83067);
6741
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
6742
- state__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6743
-
6744
-
6745
6530
 
6746
-
6747
- const useLocalStorageConfigId = ()=>{
6748
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6749
- const configId = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_3__/* .selectConfigId */ .md);
6750
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6751
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6752
- const persistedConfigId = state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.getConfigId */ .Xb.getConfigId();
6753
- if (persistedConfigId) {
6754
- dispatch(state__WEBPACK_IMPORTED_MODULE_3__/* .settingsSlice.actions.init */ .xj.actions.init({
6755
- configId: persistedConfigId
6756
- }));
6757
- }
6758
- setIsLoaded(true);
6759
- });
6531
+ const getInitialState = (query, defaultState)=>{
6532
+ if (typeof defaultState !== "undefined") {
6533
+ return defaultState;
6534
+ }
6535
+ if (true) {
6536
+ return false;
6537
+ }
6538
+ return window.matchMedia(query).matches;
6539
+ };
6540
+ const useMedia = (query, defaultState)=>{
6541
+ const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(getInitialState(query, defaultState));
6760
6542
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6761
- if (configId && isLoaded) {
6762
- state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.setConfigId */ .Xb.setConfigId(configId);
6763
- }
6543
+ const mediaQuery = window.matchMedia(query);
6544
+ const handleChange = ()=>{
6545
+ setState(mediaQuery.matches);
6546
+ };
6547
+ setState(mediaQuery.matches);
6548
+ mediaQuery.addEventListener("change", handleChange);
6549
+ return ()=>{
6550
+ mediaQuery.removeEventListener("change", handleChange);
6551
+ };
6764
6552
  }, [
6765
- configId,
6766
- isLoaded
6553
+ query
6767
6554
  ]);
6555
+ return state;
6768
6556
  };
6769
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageConfigId);
6557
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMedia);
6770
6558
 
6771
- __webpack_async_result__();
6772
- } catch(e) { __webpack_async_result__(e); } });
6773
6559
 
6774
6560
  /***/ }),
6775
6561
 
6776
- /***/ 60821:
6777
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6562
+ /***/ 37205:
6563
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6778
6564
 
6779
6565
  "use strict";
6780
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6781
6566
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6782
6567
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6783
6568
  /* harmony export */ });
6784
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6785
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6786
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6787
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6788
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6789
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6790
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10129);
6791
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
6792
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
6793
- state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6794
-
6795
-
6796
-
6797
-
6798
-
6799
- const useLocalStorageLocale = ()=>{
6800
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6801
- const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
6802
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6803
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6804
- const persistedLocale = state__WEBPACK_IMPORTED_MODULE_4__/* .localStorage.getLocale */ .Xb.getLocale();
6805
- if (persistedLocale) {
6806
- dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .settingsSlice.actions.init */ .xj.actions.init({
6807
- locale: persistedLocale
6808
- }));
6809
- } else {
6810
- dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .settingsSlice.actions.init */ .xj.actions.init({
6811
- locale: (0,lib__WEBPACK_IMPORTED_MODULE_3__/* .detectLocale */ .Nj)()
6812
- }));
6813
- }
6814
- setIsLoaded(true);
6815
- });
6816
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6817
- if (locale && isLoaded) {
6818
- state__WEBPACK_IMPORTED_MODULE_4__/* .localStorage.setLocale */ .Xb.setLocale(locale);
6819
- }
6820
- }, [
6821
- locale,
6822
- isLoaded
6823
- ]);
6569
+ /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78909);
6570
+
6571
+ const useMediaQueries = ()=>{
6572
+ const isLessThanXs = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<xs");
6573
+ const isLessThanS = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<s");
6574
+ const isLessThanM = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<m");
6575
+ const isLessThanL = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<l");
6576
+ const isLessThanXl = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<xl");
6577
+ return {
6578
+ isLessThanXs,
6579
+ isLessThanS,
6580
+ isLessThanM,
6581
+ isLessThanL,
6582
+ isLessThanXl
6583
+ };
6824
6584
  };
6825
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageLocale);
6585
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMediaQueries);
6826
6586
 
6827
- __webpack_async_result__();
6828
- } catch(e) { __webpack_async_result__(e); } });
6829
6587
 
6830
6588
  /***/ }),
6831
6589
 
6832
- /***/ 31089:
6833
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6590
+ /***/ 78909:
6591
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6834
6592
 
6835
6593
  "use strict";
6836
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6837
6594
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6838
6595
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6839
6596
  /* harmony export */ });
6840
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6841
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6842
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6843
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6844
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6845
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6846
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83067);
6847
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
6848
- state__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6849
-
6597
+ /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9744);
6598
+ /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__);
6599
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64534);
6600
+ /* harmony import */ var _useMedia__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40234);
6850
6601
 
6851
6602
 
6852
6603
 
6853
- const useLocalStorageRack = ()=>{
6854
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6855
- const rack = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_3__/* .selectRack */ .QB);
6856
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6857
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6858
- const persistedRack = state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.getRack */ .Xb.getRack();
6859
- if (persistedRack) {
6860
- dispatch(state__WEBPACK_IMPORTED_MODULE_3__/* .rackSlice.actions.init */ .O_.actions.init(persistedRack));
6861
- }
6862
- setIsLoaded(true);
6863
- });
6864
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6865
- if (rack && isLoaded) {
6866
- state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.setRack */ .Xb.setRack(rack);
6867
- }
6868
- }, [
6869
- isLoaded,
6870
- rack
6871
- ]);
6604
+ const useMediaQuery = (query, defaultState)=>{
6605
+ const mediaQuery = (0,include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__.buildMediaQuery)(parameters__WEBPACK_IMPORTED_MODULE_1__/* .BREAKPOINTS */ .j$, query);
6606
+ return (0,_useMedia__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(mediaQuery, defaultState);
6872
6607
  };
6873
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageRack);
6608
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMediaQuery);
6874
6609
 
6875
- __webpack_async_result__();
6876
- } catch(e) { __webpack_async_result__(e); } });
6877
6610
 
6878
6611
  /***/ }),
6879
6612
 
6880
- /***/ 78909:
6613
+ /***/ 14884:
6881
6614
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6882
6615
 
6883
6616
  "use strict";
6884
6617
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6885
6618
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6886
6619
  /* harmony export */ });
6887
- /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9744);
6888
- /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__);
6889
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69755);
6890
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_1__);
6891
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64534);
6892
-
6893
-
6620
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6621
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6894
6622
 
6895
- const useMediaQuery = (query, defaultState)=>{
6896
- const mediaQuery = (0,include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__.buildMediaQuery)(parameters__WEBPACK_IMPORTED_MODULE_2__/* .BREAKPOINTS */ .j$, query);
6897
- return (0,react_use__WEBPACK_IMPORTED_MODULE_1__.useMedia)(mediaQuery, defaultState);
6623
+ const useOnWindowResize = (onResize)=>{
6624
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6625
+ window.addEventListener("resize", onResize);
6626
+ return ()=>{
6627
+ window.removeEventListener("resize", onResize);
6628
+ };
6629
+ }, [
6630
+ onResize
6631
+ ]);
6898
6632
  };
6899
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMediaQuery);
6633
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useOnWindowResize);
6900
6634
 
6901
6635
 
6902
6636
  /***/ }),
@@ -6916,7 +6650,7 @@ const useMediaQuery = (query, defaultState)=>{
6916
6650
  /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_2__);
6917
6651
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63938);
6918
6652
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_portal__WEBPACK_IMPORTED_MODULE_3__);
6919
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
6653
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
6920
6654
 
6921
6655
 
6922
6656
 
@@ -6962,6 +6696,36 @@ const usePortal = (children, { disabled =false , tagName ="div" } = {})=>{
6962
6696
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lib__WEBPACK_IMPORTED_MODULE_4__/* .canUseDom */ .J8 ? usePortal : lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT);
6963
6697
 
6964
6698
 
6699
+ /***/ }),
6700
+
6701
+ /***/ 21995:
6702
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6703
+
6704
+ "use strict";
6705
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6706
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6707
+ /* harmony export */ });
6708
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6709
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6710
+ /* harmony import */ var _useOnWindowResize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14884);
6711
+
6712
+
6713
+ const useViewportSize = ()=>{
6714
+ const [viewportHeight, setViewportHeight] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)( true ? 0 : 0);
6715
+ const [viewportWidth, setViewportWidth] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)( true ? 0 : 0);
6716
+ const handleWindowResize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{
6717
+ setViewportHeight(window.innerHeight);
6718
+ setViewportWidth(window.innerWidth);
6719
+ }, []);
6720
+ (0,_useOnWindowResize__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(handleWindowResize);
6721
+ return {
6722
+ viewportHeight,
6723
+ viewportWidth
6724
+ };
6725
+ };
6726
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useViewportSize);
6727
+
6728
+
6965
6729
  /***/ }),
6966
6730
 
6967
6731
  /***/ 36743:
@@ -7032,6 +6796,13 @@ const LOCALE_FEATURES = {
7032
6796
  }
7033
6797
  };
7034
6798
  const LOCALE_FLAGS = {
6799
+ [build.Locale.DE_DE]: {
6800
+ className: (i18n_module_default()).de,
6801
+ Icon: icons/* FlagDe */.rV,
6802
+ label: "Deutsch",
6803
+ name: "German",
6804
+ value: build.Locale.DE_DE
6805
+ },
7035
6806
  [build.Locale.EN_GB]: {
7036
6807
  className: (i18n_module_default()).gb,
7037
6808
  Icon: icons/* FlagGb */.eP,
@@ -7046,6 +6817,13 @@ const LOCALE_FLAGS = {
7046
6817
  name: "English (US)",
7047
6818
  value: build.Locale.EN_US
7048
6819
  },
6820
+ [build.Locale.ES_ES]: {
6821
+ className: (i18n_module_default()).es,
6822
+ Icon: icons/* FlagEs */.d,
6823
+ label: "Espa\xf1ol",
6824
+ name: "Spanish",
6825
+ value: build.Locale.ES_ES
6826
+ },
7049
6827
  [build.Locale.FA_IR]: {
7050
6828
  className: (i18n_module_default()).fa,
7051
6829
  Icon: icons/* FlagFa */.$M,
@@ -7060,41 +6838,27 @@ const LOCALE_FLAGS = {
7060
6838
  name: "French",
7061
6839
  value: build.Locale.FR_FR
7062
6840
  },
7063
- [build.Locale.DE_DE]: {
7064
- className: (i18n_module_default()).de,
7065
- Icon: icons/* FlagDe */.rV,
7066
- label: "Deutsch",
7067
- name: "German",
7068
- value: build.Locale.DE_DE
7069
- },
7070
6841
  [build.Locale.PL_PL]: {
7071
6842
  className: (i18n_module_default()).pl,
7072
6843
  Icon: icons/* FlagPl */.fd,
7073
6844
  label: "Polski",
7074
6845
  name: "Polish",
7075
6846
  value: build.Locale.PL_PL
7076
- },
7077
- [build.Locale.ES_ES]: {
7078
- className: (i18n_module_default()).es,
7079
- Icon: icons/* FlagEs */.d,
7080
- label: "Espa\xf1ol",
7081
- name: "Spanish",
7082
- value: build.Locale.ES_ES
7083
6847
  }
7084
6848
  };
7085
6849
 
7086
6850
  ;// CONCATENATED MODULE: ./src/i18n/de.json
7087
- const de_namespaceObject = JSON.parse('{"cell.filter-cell":"Zielort - klicken zum Wechseln","cell.set-blank":"Als Blanko markieren","cell.set-not-blank":"Nicht als Blanko markieren","cell.tile.location":"Brett: Stein ({{x}}, {{y}})","cell.toggle-direction":"Schreibrichtung - klicken zum Wechseln","common.blanks":"Blankos","common.clear":"Löschen","common.close":"Schließen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.points":"Punkte","common.previous":"Zurück","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"Wörter","dictionary":"Wörterbuch","dictionary.empty-state.no-definitions":"Wort existiert im Wörterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im Wörterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die Wörterbuchdefinition des letzten markierten Wortes wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche Wörterbuch...","dictionary.input.title":"Durch Kommas getrennte Wörter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturkürzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzufügen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"Lösen starten","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzufügen (Leertaste)","menu":"Menü","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt. Klicken zum Aktualisieren.","results.empty-state.uninitialized":"Wörter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzufügen","results.preview":"Vorschau","results.solve":"Lösen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.language":"Sprache","words":"Gebildete Wörter","words.invalid":"Falsch","words.valid":"Korrekt"}');
6851
+ const de_namespaceObject = JSON.parse('{"cell.filter-cell":"Zielort - klicken zum Wechseln","cell.set-blank":"Als Blanko markieren","cell.set-not-blank":"Nicht als Blanko markieren","cell.tile.location":"Brett: Stein ({{x}}, {{y}})","cell.toggle-direction":"Schreibrichtung - klicken zum Wechseln","common.blanks":"Blankos","common.clear":"Löschen","common.close":"Schließen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.points":"Punkte","common.previous":"Zurück","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"Wörter","dictionary":"Wörterbuch","dictionary.empty-state.no-definitions":"Wort existiert im Wörterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im Wörterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die Wörterbuchdéfinition wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche Wörterbuch...","dictionary.input.title":"Durch Kommas getrennte Wörter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturkürzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzufügen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"Lösen starten","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzufügen (Leertaste)","menu":"Menü","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt.","results.empty-state.uninitialized":"Wörter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzufügen","results.preview":"Vorschau","results.solve":"Lösen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.language":"Sprache","words":"Gebildete Wörter","words.invalid":"Falsch","words.valid":"Korrekt"}');
7088
6852
  ;// CONCATENATED MODULE: ./src/i18n/en.json
7089
- const en_namespaceObject = JSON.parse('{"cell.filter-cell":"Target destination - click to toggle","cell.set-blank":"Mark it a blank","cell.set-not-blank":"Mark it not a blank","cell.tile.location":"Board: tile ({{x}}, {{y}})","cell.toggle-direction":"Typing direction - click to toggle","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.points":"Points","common.previous":"Previous","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Dictionary definition of the most recently highlighted word will be shown here.","dictionary.input.placeholder":"Search dictionary...","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Start solving","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank (spacebar)","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated. Click below to update.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.preview":"Preview","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.language":"Language","words":"Created words","words.invalid":"Invalid","words.valid":"Valid"}');
6853
+ const en_namespaceObject = JSON.parse('{"cell.filter-cell":"Target destination - click to toggle","cell.set-blank":"Mark it a blank","cell.set-not-blank":"Mark it not a blank","cell.tile.location":"Board: tile ({{x}}, {{y}})","cell.toggle-direction":"Typing direction - click to toggle","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.points":"Points","common.previous":"Previous","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Word definition will be shown here.","dictionary.input.placeholder":"Search dictionary...","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Start solving","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank (spacebar)","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.preview":"Preview","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.language":"Language","words":"Created words","words.invalid":"Invalid","words.valid":"Valid"}');
7090
6854
  ;// CONCATENATED MODULE: ./src/i18n/es.json
7091
- const es_namespaceObject = JSON.parse('{"cell.filter-cell":"Destino objetivo: haga clic para alternar","cell.set-blank":"Marcar como en blanco","cell.set-not-blank":"Marcar como no en blanco","cell.tile.location":"Tablero: espacio ({{x}}, {{y}})","cell.toggle-direction":"Dirección de escritura: haga clic para alternar","common.blanks":"Blancos","common.clear":"Borrar","common.close":"Cerrar","common.consonants":"Consonantes","common.loading":"Cargando","common.next":"Siguiente","common.points":"Puntos","common.previous":"Anterior","common.tiles":"Longitud","common.two-letter-tiles":"Dos letras","common.vowels":"Vocales","common.word":"Palabra","common.words":"Palabras","dictionary":"Diccionario","dictionary.empty-state.no-definitions":"La palabra existe en el diccionario pero no tiene una definición.","dictionary.empty-state.no-results":"No se puede encontrar la definición de palabra en el diccionario.","dictionary.empty-state.not-allowed":"Esta palabra no es aceptable.","dictionary.empty-state.uninitialized":"Aquí se mostrará la definición del diccionario de la última palabra resaltada.","dictionary.input.placeholder":"Busca el diccionario...","dictionary.input.title":"Palabras separadas por comas","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Sí!","empty-state.warning":"Vaya!","github":"Ver este proyecto en GitHub","keyMap":"Atajos de teclado","keyMap.board":"Tablero","keyMap.board.toggle-blank":"Marcar / desmarcar un espacio en blanco","keyMap.board.toggle-direction":"Alternar dirección de escritura","keyMap.board-and-rack":"Tablero y estante","keyMap.board-and-rack.insert-two-letter-tile":"Insertar mosaico de dos letras","keyMap.board-and-rack.navigate":"Navegar","keyMap.board-and-rack.remove-tile":"Quitar Letra","keyMap.board-and-rack.submit":"Empezar a resolver","keyMap.rack":"Estante","keyMap.rack.insert-blank":"Insertar espacio en blanco (barra espaciadora)","menu":"Menú","rack.placeholder":"Letras…","rack.tile.location":"Estante: espacio ({{index}})","remaining-tiles":"Casillas restantes","results":"Resultados","results.empty-state.no-results":"No hay resultados; no se pueden generar palabras","results.empty-state.outdated":"Los resultados están desactualizados. Haga clic a continuación para actualizar.","results.empty-state.uninitialized":"Aquí se mostrarán las palabras generadas a partir de sus letras.","results.input.placeholder":"Busque una solución... (RegExp)","results.insert":"Insertar","results.preview":"Vista previa","results.solve":"Resolver","settings":"Configuración","settings.autoGroupTiles":"Agrupar casillas restantes","settings.autoGroupTiles.left":"A la izquierda","settings.autoGroupTiles.right":"A la derecha","settings.autoGroupTiles.null":"No agrupar","settings.game":"Juego","settings.language":"Idioma","words":"Palabras creadas","words.invalid":"Incorrecto","words.valid":"Correcto"}');
6855
+ const es_namespaceObject = JSON.parse('{"cell.filter-cell":"Destino objetivo: haga clic para alternar","cell.set-blank":"Marcar como en blanco","cell.set-not-blank":"Marcar como no en blanco","cell.tile.location":"Tablero: espacio ({{x}}, {{y}})","cell.toggle-direction":"Dirección de escritura: haga clic para alternar","common.blanks":"Blancos","common.clear":"Borrar","common.close":"Cerrar","common.consonants":"Consonantes","common.loading":"Cargando","common.next":"Siguiente","common.points":"Puntos","common.previous":"Anterior","common.tiles":"Longitud","common.two-letter-tiles":"Dos letras","common.vowels":"Vocales","common.word":"Palabra","common.words":"Palabras","dictionary":"Diccionario","dictionary.empty-state.no-definitions":"La palabra existe en el diccionario pero no tiene una definición.","dictionary.empty-state.no-results":"No se puede encontrar la definición de palabra en el diccionario.","dictionary.empty-state.not-allowed":"Esta palabra no es aceptable.","dictionary.empty-state.uninitialized":"Aquí se mostrará la definición del diccionario.","dictionary.input.placeholder":"Busca el diccionario...","dictionary.input.title":"Palabras separadas por comas","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Sí!","empty-state.warning":"Vaya!","github":"Ver este proyecto en GitHub","keyMap":"Atajos de teclado","keyMap.board":"Tablero","keyMap.board.toggle-blank":"Marcar / desmarcar un espacio en blanco","keyMap.board.toggle-direction":"Alternar dirección de escritura","keyMap.board-and-rack":"Tablero y estante","keyMap.board-and-rack.insert-two-letter-tile":"Insertar mosaico de dos letras","keyMap.board-and-rack.navigate":"Navegar","keyMap.board-and-rack.remove-tile":"Quitar Letra","keyMap.board-and-rack.submit":"Empezar a resolver","keyMap.rack":"Estante","keyMap.rack.insert-blank":"Insertar espacio en blanco (barra espaciadora)","menu":"Menú","rack.placeholder":"Letras…","rack.tile.location":"Estante: espacio ({{index}})","remaining-tiles":"Casillas restantes","results":"Resultados","results.empty-state.no-results":"No hay resultados; no se pueden generar palabras","results.empty-state.outdated":"Los resultados están desactualizados.","results.empty-state.uninitialized":"Aquí se mostrarán las palabras generadas a partir de sus letras.","results.input.placeholder":"Busque una solución... (RegExp)","results.insert":"Insertar","results.preview":"Vista previa","results.solve":"Resolver","settings":"Configuración","settings.autoGroupTiles":"Agrupar casillas restantes","settings.autoGroupTiles.left":"A la izquierda","settings.autoGroupTiles.right":"A la derecha","settings.autoGroupTiles.null":"No agrupar","settings.game":"Juego","settings.language":"Idioma","words":"Palabras creadas","words.invalid":"Incorrecto","words.valid":"Correcto"}');
7092
6856
  ;// CONCATENATED MODULE: ./src/i18n/fa.json
7093
- const fa_namespaceObject = JSON.parse('{"cell.filter-cell":"مقصد - کلیک برای تغییر","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.toggle-direction":"جهت تایپ - کلیک برای تغییر","cell.tile.location":"({{x}}، {{y}}) کاشی: صفحه","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.points":"امتیازات","common.previous":"قبلی","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت ...","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی (دکمه اسپیس)","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز رسانی کلیک کنید.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.preview":"پیش نمایش","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.language":"زبان","words":"کلمات ساخته شده","words.invalid":"نا معتبر","words.valid":"معتبر"}');
6857
+ const fa_namespaceObject = JSON.parse('{"cell.filter-cell":"مقصد - کلیک برای تغییر","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.toggle-direction":"جهت تایپ - کلیک برای تغییر","cell.tile.location":"({{x}}، {{y}}) کاشی: صفحه","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.points":"امتیازات","common.previous":"قبلی","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت ...","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی (دکمه اسپیس)","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.preview":"پیش نمایش","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.language":"زبان","words":"کلمات ساخته شده","words.invalid":"نا معتبر","words.valid":"معتبر"}');
7094
6858
  ;// CONCATENATED MODULE: ./src/i18n/fr.json
7095
- const fr_namespaceObject = JSON.parse('{"cell.filter-cell":"Destination cible - cliquer pour changer","cell.set-blank":"Marquer comme vide","cell.set-not-blank":"Marquer comme non vide","cell.tile.location":"Plateau: la case ({{x}}, {{y}})","cell.toggle-direction":"Direction d\'écriture - cliquer pour changer","common.blanks":"Cases vides","common.clear":"Effacer","common.close":"Fermer","common.consonants":"Consonnes","common.loading":"Chargement","common.next":"Suivant","common.points":"Points","common.previous":"Précédent","common.tiles":"Cases","common.two-letter-tiles":"Deux lettres","common.vowels":"Voyelles","common.word":"Mot","common.words":"Mots","dictionary":"Dictionnaire","dictionary.empty-state.no-definitions":"Le mot existe dans le dictionary mais n\'a pas de définition.","dictionary.empty-state.no-results":"Impossible de trouver une définition pour ce mot dans le dictionaire.","dictionary.empty-state.not-allowed":"Ce mot n\'est pas pas acceptable.","dictionary.empty-state.uninitialized":"La définition dictionaire du dernier mot surligné sera affichée ici.","dictionary.input.placeholder":"Rechercher dans le dictionnaire...","dictionary.input.title":"Mots séparées par des virgules","empty-state.error":"Erreur","empty-state.info":"Info","empty-state.success":"Ouais!","empty-state.warning":"Oups!","github":"Voir ce projet sur GitHub","keyMap":"Raccourcis clavier","keyMap.board":"Plateau","keyMap.board.toggle-blank":"Marqué/Démarqué la case en tant que vide","keyMap.board.toggle-direction":"Faire basculer la direction d\'écriture","keyMap.board-and-rack":"Plateau & chevalet","keyMap.board-and-rack.insert-two-letter-tile":"Insérer une tuile de deux lettres","keyMap.board-and-rack.navigate":"Naviguer","keyMap.board-and-rack.remove-tile":"Supprimer une case","keyMap.board-and-rack.submit":"Commencer la résolution","keyMap.rack":"Chevalet","keyMap.rack.insert-blank":"Inserer une case vide (spacebar)","menu":"Menu","rack.placeholder":"Lettres","rack.tile.location":"Chevalet: la case ({{index}})","remaining-tiles":"Cases restantes","results":"Résultats","results.empty-state.no-results":"Pas de résultats - impossible de générer des mots.","results.empty-state.outdated":"Les résultats sont dépassé. Cliquer ci-dessous pour mettre à jour.","results.empty-state.uninitialized":"Les mots générés à partir de vos lettres seront affichés ici.","results.input.placeholder":"Rechercher les résultats... (RegExp)","results.insert":"Inserer","results.preview":"Prévisualisation","results.solve":"Résoudre","settings":"Options","settings.autoGroupTiles":"Grouper les cases restantes","settings.autoGroupTiles.left":"Vers la droite","settings.autoGroupTiles.right":"Vers la gauche","settings.autoGroupTiles.null":"Ne pas grouper","settings.game":"Jeu","settings.language":"Langue","words":"Mots créés","words.invalid":"Incorrect","words.valid":"Corriger"}');
6859
+ const fr_namespaceObject = JSON.parse('{"cell.filter-cell":"Destination cible - cliquer pour changer","cell.set-blank":"Marquer comme vide","cell.set-not-blank":"Marquer comme non vide","cell.tile.location":"Plateau: la case ({{x}}, {{y}})","cell.toggle-direction":"Direction d\'écriture - cliquer pour changer","common.blanks":"Cases vides","common.clear":"Effacer","common.close":"Fermer","common.consonants":"Consonnes","common.loading":"Chargement","common.next":"Suivant","common.points":"Points","common.previous":"Précédent","common.tiles":"Cases","common.two-letter-tiles":"Deux lettres","common.vowels":"Voyelles","common.word":"Mot","common.words":"Mots","dictionary":"Dictionnaire","dictionary.empty-state.no-definitions":"Le mot existe dans le dictionary mais n\'a pas de définition.","dictionary.empty-state.no-results":"Impossible de trouver une définition pour ce mot dans le dictionaire.","dictionary.empty-state.not-allowed":"Ce mot n\'est pas pas acceptable.","dictionary.empty-state.uninitialized":"La définition dictionaire sera affichée ici.","dictionary.input.placeholder":"Rechercher dans le dictionnaire...","dictionary.input.title":"Mots séparées par des virgules","empty-state.error":"Erreur","empty-state.info":"Info","empty-state.success":"Ouais!","empty-state.warning":"Oups!","github":"Voir ce projet sur GitHub","keyMap":"Raccourcis clavier","keyMap.board":"Plateau","keyMap.board.toggle-blank":"Marqué/Démarqué la case en tant que vide","keyMap.board.toggle-direction":"Faire basculer la direction d\'écriture","keyMap.board-and-rack":"Plateau & chevalet","keyMap.board-and-rack.insert-two-letter-tile":"Insérer une tuile de deux lettres","keyMap.board-and-rack.navigate":"Naviguer","keyMap.board-and-rack.remove-tile":"Supprimer une case","keyMap.board-and-rack.submit":"Commencer la résolution","keyMap.rack":"Chevalet","keyMap.rack.insert-blank":"Inserer une case vide (spacebar)","menu":"Menu","rack.placeholder":"Lettres","rack.tile.location":"Chevalet: la case ({{index}})","remaining-tiles":"Cases restantes","results":"Résultats","results.empty-state.no-results":"Pas de résultats - impossible de générer des mots.","results.empty-state.outdated":"Les résultats sont dépassé.","results.empty-state.uninitialized":"Les mots générés à partir de vos lettres seront affichés ici.","results.input.placeholder":"Rechercher les résultats... (RegExp)","results.insert":"Inserer","results.preview":"Prévisualisation","results.solve":"Résoudre","settings":"Options","settings.autoGroupTiles":"Grouper les cases restantes","settings.autoGroupTiles.left":"Vers la droite","settings.autoGroupTiles.right":"Vers la gauche","settings.autoGroupTiles.null":"Ne pas grouper","settings.game":"Jeu","settings.language":"Langue","words":"Mots créés","words.invalid":"Incorrect","words.valid":"Corriger"}');
7096
6860
  ;// CONCATENATED MODULE: ./src/i18n/pl.json
7097
- const pl_namespaceObject = JSON.parse('{"cell.filter-cell":"Miejsce docelowe - kliknij aby zmienić","cell.set-blank":"Oznacz jako blank","cell.set-not-blank":"Oznacz jako nie blank","cell.tile.location":"Plansza: płytka ({{x}}, {{y}})","cell.toggle-direction":"Kierunek wpisywania - kliknij aby zmienić","common.blanks":"Blanki","common.clear":"Wyczyść","common.close":"Zamknij","common.consonants":"Spółgłoski","common.loading":"Ładowanie","common.next":"Następne","common.points":"Punkty","common.previous":"Poprzednie","common.tiles":"Płytki","common.two-letter-tiles":"Dwuliterowe","common.vowels":"Samogłoski","common.word":"Słowo","common.words":"Słowa","dictionary":"Słownik","dictionary.empty-state.no-definitions":"Słowo istnieje w słowniku ale nie posiada definicji.","dictionary.empty-state.no-results":"Nie udało się znaleźć definicji słowa w słowniku.","dictionary.empty-state.not-allowed":"To słowo nie jest dopuszczalne w grach.","dictionary.empty-state.uninitialized":"Tu zostanie wyświetlona słownikowa definicja ostatnio podświetlonego słowa.","dictionary.input.placeholder":"Szukaj w słowniku...","dictionary.input.title":"Słowa rozdzielone przecinkiem","empty-state.error":"Błąd","empty-state.info":"Info","empty-state.success":"Hurra!","empty-state.warning":"Ups!","github":"Zobacz ten projekt na GitHubie","keyMap":"Skróty klawiszowe","keyMap.board":"Plansza","keyMap.board.toggle-blank":"Oznacz/odznacz płytkę jako blank","keyMap.board.toggle-direction":"Zmień kierunek wpisywania","keyMap.board-and-rack":"Plansza i stojak","keyMap.board-and-rack.insert-two-letter-tile":"Wstaw dwuliterową płytkę","keyMap.board-and-rack.navigate":"Nawigacja","keyMap.board-and-rack.remove-tile":"Zdejmij płytkę","keyMap.board-and-rack.submit":"Rozpocznij wyszukiwanie","keyMap.rack":"Stojak","keyMap.rack.insert-blank":"Wstaw blanka (spacja)","menu":"Menu","rack.placeholder":"Literki","rack.tile.location":"Stojak: płytka ({{index}})","remaining-tiles":"Pozostałe płytki","results":"Wyniki","results.empty-state.no-results":"Brak wyników - nie można wygenerować żadnego słowa.","results.empty-state.outdated":"Wyniki są nieaktualne. Kliknij poniżej, aby zaktualizować.","results.empty-state.uninitialized":"Tu zostaną wyświetlone słowa wygenerowane z Twoich liter.","results.input.placeholder":"Szukaj rozwiązania... (RegExp)","results.insert":"Wstaw","results.preview":"Podgląd","results.solve":"Rozwiąż","settings":"Opcje","settings.autoGroupTiles":"Grupuj pozostałe płytki","settings.autoGroupTiles.left":"Po lewej","settings.autoGroupTiles.right":"Po prawej","settings.autoGroupTiles.null":"Nie grupuj","settings.game":"Gra","settings.language":"Język","words":"Utworzone słowa","words.invalid":"Niepoprawne","words.valid":"Poprawne"}');
6861
+ const pl_namespaceObject = JSON.parse('{"cell.filter-cell":"Miejsce docelowe - kliknij aby zmienić","cell.set-blank":"Oznacz jako blank","cell.set-not-blank":"Oznacz jako nie blank","cell.tile.location":"Plansza: płytka ({{x}}, {{y}})","cell.toggle-direction":"Kierunek wpisywania - kliknij aby zmienić","common.blanks":"Blanki","common.clear":"Wyczyść","common.close":"Zamknij","common.consonants":"Spółgłoski","common.loading":"Ładowanie","common.next":"Następne","common.points":"Punkty","common.previous":"Poprzednie","common.tiles":"Płytki","common.two-letter-tiles":"Dwuliterowe","common.vowels":"Samogłoski","common.word":"Słowo","common.words":"Słowa","dictionary":"Słownik","dictionary.empty-state.no-definitions":"Słowo istnieje w słowniku ale nie posiada definicji.","dictionary.empty-state.no-results":"Nie udało się znaleźć definicji słowa w słowniku.","dictionary.empty-state.not-allowed":"To słowo nie jest dopuszczalne w grach.","dictionary.empty-state.uninitialized":"Tu zostanie wyświetlona definicja słowa.","dictionary.input.placeholder":"Szukaj w słowniku...","dictionary.input.title":"Słowa rozdzielone przecinkiem","empty-state.error":"Błąd","empty-state.info":"Info","empty-state.success":"Hurra!","empty-state.warning":"Ups!","github":"Zobacz ten projekt na GitHubie","keyMap":"Skróty klawiszowe","keyMap.board":"Plansza","keyMap.board.toggle-blank":"Oznacz/odznacz płytkę jako blank","keyMap.board.toggle-direction":"Zmień kierunek wpisywania","keyMap.board-and-rack":"Plansza i stojak","keyMap.board-and-rack.insert-two-letter-tile":"Wstaw dwuliterową płytkę","keyMap.board-and-rack.navigate":"Nawigacja","keyMap.board-and-rack.remove-tile":"Zdejmij płytkę","keyMap.board-and-rack.submit":"Rozpocznij wyszukiwanie","keyMap.rack":"Stojak","keyMap.rack.insert-blank":"Wstaw blanka (spacja)","menu":"Menu","rack.placeholder":"Literki","rack.tile.location":"Stojak: płytka ({{index}})","remaining-tiles":"Pozostałe płytki","results":"Wyniki","results.empty-state.no-results":"Brak wyników - nie można wygenerować żadnego słowa.","results.empty-state.outdated":"Wyniki są nieaktualne.","results.empty-state.uninitialized":"Tu zostaną wyświetlone słowa wygenerowane z Twoich liter.","results.input.placeholder":"Szukaj rozwiązania... (RegExp)","results.insert":"Wstaw","results.preview":"Podgląd","results.solve":"Rozwiąż","settings":"Opcje","settings.autoGroupTiles":"Grupuj pozostałe płytki","settings.autoGroupTiles.left":"Po lewej","settings.autoGroupTiles.right":"Po prawej","settings.autoGroupTiles.null":"Nie grupuj","settings.game":"Gra","settings.language":"Język","words":"Utworzone słowa","words.invalid":"Niepoprawne","words.valid":"Poprawne"}');
7098
6862
  ;// CONCATENATED MODULE: ./src/i18n/i18n.ts
7099
6863
 
7100
6864
 
@@ -8123,20 +7887,20 @@ var SvgStar = function SvgStar(props) {
8123
7887
 
8124
7888
  /***/ }),
8125
7889
 
8126
- /***/ 10129:
7890
+ /***/ 65175:
8127
7891
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8128
7892
 
8129
7893
  "use strict";
8130
7894
 
8131
7895
  // EXPORTS
8132
7896
  __webpack_require__.d(__webpack_exports__, {
7897
+ "_g": () => (/* reexport */ lib_arrayEquals),
8133
7898
  "J8": () => (/* reexport */ lib_canUseDom),
8134
7899
  "Ri": () => (/* reexport */ lib_createArray),
8135
7900
  "DI": () => (/* reexport */ lib_createGridOf),
8136
7901
  "np": () => (/* reexport */ lib_createKeyboardNavigation),
8137
7902
  "Ml": () => (/* reexport */ lib_createNullMovingComparator),
8138
7903
  "GF": () => (/* reexport */ lib_createRegExp),
8139
- "Nj": () => (/* reexport */ lib_detectLocale),
8140
7904
  "nK": () => (/* reexport */ lib_extractCharacters),
8141
7905
  "WM": () => (/* reexport */ lib_extractInputValue),
8142
7906
  "Jp": () => (/* reexport */ lib_findCell),
@@ -8155,7 +7919,13 @@ __webpack_require__.d(__webpack_exports__, {
8155
7919
  "gV": () => (/* reexport */ lib_zipCharactersAndTiles)
8156
7920
  });
8157
7921
 
8158
- // UNUSED EXPORTS: createComparator, createKeyComparator, createStringComparator, getCellSize, getRemainingTilesCount, getTotalRemainingTilesCount, isStringArray, numberComparator, reverseComparator
7922
+ // UNUSED EXPORTS: createComparator, createKeyComparator, createStringComparator, detectLocale, getCellSize, getRemainingTilesCount, getTotalRemainingTilesCount, isStringArray, numberComparator, reverseComparator
7923
+
7924
+ ;// CONCATENATED MODULE: ./src/lib/arrayEquals.ts
7925
+ const arrayEquals = (array1, array2)=>{
7926
+ return array1.length === array2.length && array1.every((value, index)=>value === array2[index]);
7927
+ };
7928
+ /* harmony default export */ const lib_arrayEquals = (arrayEquals);
8159
7929
 
8160
7930
  ;// CONCATENATED MODULE: ./src/lib/canUseDom.ts
8161
7931
  const canUseDom = Boolean( false && 0);
@@ -8240,20 +8010,20 @@ var build = __webpack_require__(34046);
8240
8010
 
8241
8011
  const detectLocale = ()=>{
8242
8012
  if (window.navigator.languages.includes("pl") || window.navigator.languages.includes("pl-PL")) {
8243
- return build.Locale.PL_PL;
8013
+ return Locale.PL_PL;
8244
8014
  }
8245
8015
  if (window.navigator.languages.includes("en-GB")) {
8246
- return build.Locale.EN_GB;
8016
+ return Locale.EN_GB;
8247
8017
  }
8248
8018
  if (window.navigator.languages.includes("fa") || window.navigator.languages.includes("fa-IR")) {
8249
- return build.Locale.FA_IR;
8019
+ return Locale.FA_IR;
8250
8020
  }
8251
8021
  if (window.navigator.languages.includes("fr-FR")) {
8252
- return build.Locale.FR_FR;
8022
+ return Locale.FR_FR;
8253
8023
  }
8254
- return build.Locale.EN_US;
8024
+ return Locale.EN_US;
8255
8025
  };
8256
- /* harmony default export */ const lib_detectLocale = (detectLocale);
8026
+ /* harmony default export */ const lib_detectLocale = ((/* unused pure expression or super */ null && (detectLocale)));
8257
8027
 
8258
8028
  // EXTERNAL MODULE: ../constants/build/index.js
8259
8029
  var constants_build = __webpack_require__(7618);
@@ -8699,6 +8469,7 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8699
8469
 
8700
8470
 
8701
8471
 
8472
+
8702
8473
 
8703
8474
 
8704
8475
  /***/ }),
@@ -8709,15 +8480,19 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8709
8480
  "use strict";
8710
8481
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8711
8482
  /* harmony export */ "$B": () => (/* binding */ BOARD_TILE_FONT_SIZE_POINTS_MIN),
8483
+ /* harmony export */ "$L": () => (/* binding */ RESULTS_HEADER_HEIGHT),
8712
8484
  /* harmony export */ "$M": () => (/* binding */ RACK_TILE_SIZE_MAX),
8713
8485
  /* harmony export */ "BF": () => (/* binding */ PLAIN_TILES_COLOR_DEFAULT),
8714
8486
  /* harmony export */ "D": () => (/* binding */ PLAIN_TILES_TILE_MAX_SCATTER),
8715
8487
  /* harmony export */ "F1": () => (/* binding */ COLOR_GREEN),
8488
+ /* harmony export */ "FZ": () => (/* binding */ BUTTON_HEIGHT),
8716
8489
  /* harmony export */ "IO": () => (/* binding */ BOARD_CELL_ACTIONS_OFFSET),
8717
8490
  /* harmony export */ "Kc": () => (/* binding */ EASE_OUT_CUBIC),
8718
8491
  /* harmony export */ "Kw": () => (/* binding */ BOARD_TILE_SIZE_MAX),
8719
8492
  /* harmony export */ "MA": () => (/* binding */ TRANSITION_DURATION_LONG),
8720
8493
  /* harmony export */ "PF": () => (/* binding */ TILE_APPEAR_DURATION),
8494
+ /* harmony export */ "PV": () => (/* binding */ MODAL_HEADER_HEIGHT),
8495
+ /* harmony export */ "Rh": () => (/* binding */ DICTIONARY_HEIGHT_MOBILE),
8721
8496
  /* harmony export */ "V4": () => (/* binding */ BOARD_TILE_FONT_SIZE_MIN),
8722
8497
  /* harmony export */ "YF": () => (/* binding */ BORDER_WIDTH),
8723
8498
  /* harmony export */ "a_": () => (/* binding */ PLAIN_TILES_TILE_MAX_ROTATE),
@@ -8726,23 +8501,31 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8726
8501
  /* harmony export */ "eU": () => (/* binding */ PROGRESS_COLOR_BACKGROUND),
8727
8502
  /* harmony export */ "fl": () => (/* binding */ PLAIN_TILES_PADDING_HORIZONTAL),
8728
8503
  /* harmony export */ "h4": () => (/* binding */ GITHUB_PROJECT_URL),
8504
+ /* harmony export */ "iF": () => (/* binding */ MODAL_WIDTH),
8729
8505
  /* harmony export */ "j$": () => (/* binding */ BREAKPOINTS),
8506
+ /* harmony export */ "kD": () => (/* binding */ TEXT_INPUT_HEIGHT),
8730
8507
  /* harmony export */ "ku": () => (/* binding */ PLAIN_TILES_TILE_MARGIN),
8731
8508
  /* harmony export */ "mM": () => (/* binding */ REMAINING_TILES_TILE_SIZE),
8509
+ /* harmony export */ "n6": () => (/* binding */ DICTIONARY_HEIGHT),
8732
8510
  /* harmony export */ "oj": () => (/* binding */ BOARD_TILE_SIZE_MIN),
8733
8511
  /* harmony export */ "op": () => (/* binding */ COMPONENTS_SPACING_SMALL),
8734
8512
  /* harmony export */ "pI": () => (/* binding */ COLOR_BLUE),
8513
+ /* harmony export */ "pc": () => (/* binding */ LOGO_ASPECT_RATIO),
8735
8514
  /* harmony export */ "pt": () => (/* binding */ SOLVER_COLUMN_WIDTH),
8736
8515
  /* harmony export */ "rV": () => (/* binding */ PLAIN_TILES_TILE_SIZE),
8737
8516
  /* harmony export */ "rx": () => (/* binding */ RESULTS_ITEM_HEIGHT),
8517
+ /* harmony export */ "sk": () => (/* binding */ LOGO_SRC),
8518
+ /* harmony export */ "t": () => (/* binding */ LOGO_HEIGHT_SMALL),
8519
+ /* harmony export */ "t$": () => (/* binding */ NAV_PADDING),
8738
8520
  /* harmony export */ "tr": () => (/* binding */ COMPONENTS_SPACING),
8739
8521
  /* harmony export */ "uX": () => (/* binding */ PLAIN_TILES_PADDING_VERTICAL),
8740
8522
  /* harmony export */ "xZ": () => (/* binding */ PROGRESS_COLOR_VALUE),
8523
+ /* harmony export */ "y7": () => (/* binding */ LOGO_HEIGHT),
8741
8524
  /* harmony export */ "yg": () => (/* binding */ COLOR_RED),
8742
8525
  /* harmony export */ "yr": () => (/* binding */ COLOR_YELLOW),
8743
8526
  /* harmony export */ "yz": () => (/* binding */ TRANSITION)
8744
8527
  /* harmony export */ });
8745
- /* unused harmony exports TRANSITION_DURATION, BOARD_CELL_BORDER_WIDTH, TILE_SIZE, PLAIN_TILES_VERSION_TILE_COLOR, PLAIN_TILES_VERSION_TILE_SIZE */
8528
+ /* unused harmony exports TRANSITION_DURATION, SPACING_XS, SPACING_S, SPACING_M, SPACING_L, SPACING_XL, BOARD_CELL_BORDER_WIDTH, BUTTON_ICON_SIZE, BUTTON_PADDING_VERTICAL, TILE_SIZE, PLAIN_TILES_VERSION_TILE_COLOR, PLAIN_TILES_VERSION_TILE_SIZE */
8746
8529
  const BREAKPOINTS = {
8747
8530
  xs: 480,
8748
8531
  s: 768,
@@ -8759,8 +8542,13 @@ const COLOR_BLUE = "#c7d8f9";
8759
8542
  const COLOR_GREEN = "#bae3ba";
8760
8543
  const COLOR_RED = "#f7c2aa";
8761
8544
  const COLOR_YELLOW = "#efe3ae";
8762
- const COMPONENTS_SPACING = 40;
8763
- const COMPONENTS_SPACING_SMALL = 20;
8545
+ const SPACING_XS = 2;
8546
+ const SPACING_S = 5;
8547
+ const SPACING_M = 10;
8548
+ const SPACING_L = 20;
8549
+ const SPACING_XL = 40;
8550
+ const COMPONENTS_SPACING = SPACING_XL;
8551
+ const COMPONENTS_SPACING_SMALL = SPACING_L;
8764
8552
  const BOARD_CELL_ACTIONS_OFFSET = 3;
8765
8553
  const BOARD_CELL_BORDER_WIDTH = 1;
8766
8554
  const BOARD_TILE_FONT_SIZE_MIN = 14;
@@ -8772,6 +8560,18 @@ const BOARD_TILE_SIZE_MAX = 64;
8772
8560
  * 26 - tiles start to look good (font-size: 16px)
8773
8561
  */ const BOARD_TILE_SIZE_MIN = 20;
8774
8562
  const BORDER_WIDTH = 1;
8563
+ const BUTTON_ICON_SIZE = 24;
8564
+ const BUTTON_PADDING_VERTICAL = SPACING_M;
8565
+ const BUTTON_HEIGHT = BUTTON_ICON_SIZE + 2 * BUTTON_PADDING_VERTICAL + 2 * BORDER_WIDTH;
8566
+ const DICTIONARY_HEIGHT = 260;
8567
+ const DICTIONARY_HEIGHT_MOBILE = 110;
8568
+ const LOGO_ASPECT_RATIO = 682 / 166;
8569
+ const LOGO_HEIGHT = 60;
8570
+ const LOGO_HEIGHT_SMALL = 48;
8571
+ const LOGO_SRC = "/logo.svg";
8572
+ const MODAL_WIDTH = 370;
8573
+ const MODAL_HEADER_HEIGHT = 45;
8574
+ const NAV_PADDING = SPACING_L;
8775
8575
  const TILE_SIZE = 80;
8776
8576
  const PLAIN_TILES_COLOR_DEFAULT = COLOR_GREEN;
8777
8577
  const PLAIN_TILES_PADDING_HORIZONTAL = 0;
@@ -8798,8 +8598,10 @@ const PROGRESS_COLOR_VALUE = "var(--color--violet--light)";
8798
8598
  const PROGRESS_COLOR_BACKGROUND = "var(--color--inactive)";
8799
8599
  const RACK_TILE_SIZE_MAX = 80;
8800
8600
  const REMAINING_TILES_TILE_SIZE = 50;
8601
+ const RESULTS_HEADER_HEIGHT = 35;
8801
8602
  const RESULTS_ITEM_HEIGHT = 40;
8802
8603
  const SOLVER_COLUMN_WIDTH = 580;
8604
+ const TEXT_INPUT_HEIGHT = 40;
8803
8605
  const TILE_APPEAR_DURATION = 200;
8804
8606
  const TILE_APPEAR_KEYFRAMES = [
8805
8607
  {
@@ -8889,6 +8691,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
8889
8691
  /* harmony export */ "$o": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.$o),
8890
8692
  /* harmony export */ "AN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.AN),
8891
8693
  /* harmony export */ "En": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.En),
8694
+ /* harmony export */ "GL": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.GL),
8892
8695
  /* harmony export */ "HM": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.HM),
8893
8696
  /* harmony export */ "I8": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.I8),
8894
8697
  /* harmony export */ "Mj": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Mj),
@@ -8963,12 +8766,19 @@ __webpack_async_result__();
8963
8766
  /* harmony import */ var store2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(store2__WEBPACK_IMPORTED_MODULE_1__);
8964
8767
 
8965
8768
 
8769
+ const AUTO_GROUP_TILES = "auto-group-tiles";
8966
8770
  const BOARD = "board";
8967
8771
  const CONFIG_ID = "config-id";
8968
8772
  const LOCALE = "locale";
8969
8773
  const RACK = "rack";
8970
8774
  const store = store2__WEBPACK_IMPORTED_MODULE_1___default().namespace("scrabble-solver");
8971
8775
  const localStorage = {
8776
+ getAutoGroupTiles () {
8777
+ return store.get(AUTO_GROUP_TILES);
8778
+ },
8779
+ setAutoGroupTiles (autoGroupTiles) {
8780
+ store.set(AUTO_GROUP_TILES, autoGroupTiles, true);
8781
+ },
8972
8782
  getBoard () {
8973
8783
  const serialized = store.get(BOARD);
8974
8784
  return serialized ? _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_0__.Board.fromJson(JSON.parse(serialized)) : serialized;
@@ -9017,8 +8827,8 @@ var build = __webpack_require__(7618);
9017
8827
  var types_build = __webpack_require__(34046);
9018
8828
  // EXTERNAL MODULE: external "redux-saga/effects"
9019
8829
  var effects_ = __webpack_require__(56477);
9020
- // EXTERNAL MODULE: ./src/lib/index.ts + 31 modules
9021
- var lib = __webpack_require__(10129);
8830
+ // EXTERNAL MODULE: ./src/lib/index.ts + 32 modules
8831
+ var lib = __webpack_require__(65175);
9022
8832
  ;// CONCATENATED MODULE: ./src/sdk/fetch.ts
9023
8833
 
9024
8834
  const fetch_fetch = async (input, init)=>{
@@ -9119,7 +8929,7 @@ var selectors = __webpack_require__(96076);
9119
8929
  // EXTERNAL MODULE: ./src/state/slices/index.ts + 16 modules
9120
8930
  var slices = __webpack_require__(67647);
9121
8931
  ;// CONCATENATED MODULE: ./src/state/sagas.ts
9122
-
8932
+ /* eslint-disable max-lines */
9123
8933
 
9124
8934
 
9125
8935
 
@@ -9189,9 +8999,12 @@ function* onDictionarySubmit() {
9189
8999
  }
9190
9000
  }
9191
9001
  function* onInitialize() {
9002
+ const board = yield (0,effects_.select)(selectors/* selectBoard */.ZO);
9192
9003
  yield (0,effects_.call)(sdk_visit);
9193
- yield* ensureProperTilesCount();
9194
- yield (0,effects_.put)(slices/* verifySlice.actions.submit */.Gt.actions.submit());
9004
+ if (!board.isEmpty()) {
9005
+ yield* ensureProperTilesCount();
9006
+ yield (0,effects_.put)(slices/* verifySlice.actions.submit */.Gt.actions.submit());
9007
+ }
9195
9008
  }
9196
9009
  function* onReset() {
9197
9010
  yield (0,effects_.put)(slices/* boardSlice.actions.reset */.I8.actions.reset());
@@ -9273,15 +9086,15 @@ function* onVerify() {
9273
9086
  }
9274
9087
  function* ensureProperTilesCount() {
9275
9088
  const { config } = yield (0,effects_.select)(selectors/* selectConfig */.$o);
9276
- const characters = yield (0,effects_.select)(selectors/* selectCharacters */.yp);
9277
- if (config.maximumCharactersCount > characters.length) {
9278
- const differenceCount = Math.abs(config.maximumCharactersCount - characters.length);
9089
+ const rack = yield (0,effects_.select)(selectors/* selectRack */.QB);
9090
+ if (config.maximumCharactersCount > rack.length) {
9091
+ const differenceCount = Math.abs(config.maximumCharactersCount - rack.length);
9279
9092
  yield (0,effects_.put)(slices/* rackSlice.actions.init */.O_.actions.init([
9280
- ...characters,
9093
+ ...rack,
9281
9094
  ...Array(differenceCount).fill(null)
9282
9095
  ]));
9283
- } else if (config.maximumCharactersCount < characters.length) {
9284
- const nonNulls = characters.filter(Boolean).slice(0, config.maximumCharactersCount);
9096
+ } else if (config.maximumCharactersCount < rack.length) {
9097
+ const nonNulls = rack.filter(Boolean).slice(0, config.maximumCharactersCount);
9285
9098
  const differenceCount = Math.abs(config.maximumCharactersCount - nonNulls.length);
9286
9099
  const autoGroupTiles = yield (0,effects_.select)(selectors/* selectLocaleAutoGroupTiles */.lP);
9287
9100
  yield (0,effects_.put)(slices/* rackSlice.actions.init */.O_.actions.init([
@@ -9303,6 +9116,7 @@ function* ensureProperTilesCount() {
9303
9116
  /* harmony export */ "$o": () => (/* binding */ selectConfig),
9304
9117
  /* harmony export */ "AN": () => (/* binding */ selectCharacterIsValid),
9305
9118
  /* harmony export */ "En": () => (/* binding */ selectHasOverusedTiles),
9119
+ /* harmony export */ "GL": () => (/* binding */ selectResultCandidateCells),
9306
9120
  /* harmony export */ "HM": () => (/* binding */ selectVerify),
9307
9121
  /* harmony export */ "Mj": () => (/* binding */ selectAreResultsOutdated),
9308
9122
  /* harmony export */ "O0": () => (/* binding */ selectCellBonus),
@@ -9332,7 +9146,7 @@ function* ensureProperTilesCount() {
9332
9146
  /* harmony export */ "yp": () => (/* binding */ selectCharacters),
9333
9147
  /* harmony export */ "z$": () => (/* binding */ selectResultCandidateTiles)
9334
9148
  /* harmony export */ });
9335
- /* unused harmony exports selectCellFilter, selectResultsRaw, selectSortedResults, selectGroupedResults, selectResultCandidateCells, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
9149
+ /* unused harmony exports selectCellFilter, selectResultsRaw, selectSortedResults, selectGroupedResults, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
9336
9150
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
9337
9151
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
9338
9152
  /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89418);
@@ -9341,7 +9155,7 @@ function* ensureProperTilesCount() {
9341
9155
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34046);
9342
9156
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__);
9343
9157
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
9344
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
9158
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
9345
9159
  /* eslint-disable max-lines */
9346
9160
 
9347
9161
 
@@ -9583,15 +9397,19 @@ __webpack_require__.d(__webpack_exports__, {
9583
9397
  var build = __webpack_require__(89418);
9584
9398
  // EXTERNAL MODULE: ../types/build/index.js
9585
9399
  var types_build = __webpack_require__(34046);
9586
- // EXTERNAL MODULE: ./src/lib/index.ts + 31 modules
9587
- var lib = __webpack_require__(10129);
9400
+ // EXTERNAL MODULE: ./src/state/localStorage.ts
9401
+ var localStorage = __webpack_require__(79579);
9402
+ // EXTERNAL MODULE: ./src/lib/index.ts + 32 modules
9403
+ var lib = __webpack_require__(65175);
9588
9404
  ;// CONCATENATED MODULE: ./src/state/slices/settingsInitialState.ts
9589
9405
 
9590
9406
 
9407
+
9408
+ const localStorageAutoGroupTiles = localStorage/* default.getAutoGroupTiles */.Z.getAutoGroupTiles();
9591
9409
  const settingsInitialState = {
9592
- autoGroupTiles: "left",
9593
- configId: build.scrabble.id,
9594
- locale: (0,lib/* guessLocale */.sf)()
9410
+ autoGroupTiles: typeof localStorageAutoGroupTiles === "undefined" ? "left" : localStorageAutoGroupTiles,
9411
+ configId: localStorage/* default.getConfigId */.Z.getConfigId() || build.scrabble.id,
9412
+ locale: localStorage/* default.getLocale */.Z.getLocale() || (0,lib/* guessLocale */.sf)()
9595
9413
  };
9596
9414
  /* harmony default export */ const slices_settingsInitialState = (settingsInitialState);
9597
9415
 
@@ -9599,9 +9417,11 @@ const settingsInitialState = {
9599
9417
 
9600
9418
 
9601
9419
 
9420
+
9602
9421
  const { configId , locale } = slices_settingsInitialState;
9603
9422
  const { boardHeight , boardWidth } = (0,build.getLocaleConfig)(configId, locale);
9604
- const boardInitialState = types_build.Board.create(boardWidth, boardHeight);
9423
+ const boardDefaultState = types_build.Board.create(boardWidth, boardHeight);
9424
+ const boardInitialState = localStorage/* default.getBoard */.Z.getBoard() || boardDefaultState;
9605
9425
  // const createOxyphenbutazone = () => {
9606
9426
  // // Tiles: oypbaze
9607
9427
  // const board = Board.fromStringArray([
@@ -9676,7 +9496,7 @@ const boardSlice = (0,toolkit_.createSlice)({
9676
9496
  return board;
9677
9497
  },
9678
9498
  reset: ()=>{
9679
- return slices_boardInitialState;
9499
+ return boardDefaultState;
9680
9500
  },
9681
9501
  toggleCellIsBlank: (state, action)=>{
9682
9502
  const newBoard = state.clone();
@@ -9782,7 +9602,8 @@ const dictionarySlice = (0,toolkit_.createSlice)({
9782
9602
  /* harmony default export */ const slices_dictionarySlice = (dictionarySlice);
9783
9603
 
9784
9604
  ;// CONCATENATED MODULE: ./src/state/slices/rackInitialState.ts
9785
- const rackInitialState = [
9605
+
9606
+ const rackDefaultState = [
9786
9607
  null,
9787
9608
  null,
9788
9609
  null,
@@ -9791,6 +9612,7 @@ const rackInitialState = [
9791
9612
  null,
9792
9613
  null
9793
9614
  ];
9615
+ const rackInitialState = localStorage/* default.getRack */.Z.getRack() || rackDefaultState;
9794
9616
  /* harmony default export */ const slices_rackInitialState = (rackInitialState);
9795
9617
 
9796
9618
  ;// CONCATENATED MODULE: ./src/state/slices/rackSlice.ts
@@ -9811,6 +9633,9 @@ const rackSlice = (0,toolkit_.createSlice)({
9811
9633
  },
9812
9634
  changeCharacters: (state, action)=>{
9813
9635
  const { characters , index } = action.payload;
9636
+ if (characters.length === 0) {
9637
+ return state;
9638
+ }
9814
9639
  const expectedRackLength = state.length;
9815
9640
  const rack = [
9816
9641
  ...state.slice(0, index),
@@ -9820,19 +9645,17 @@ const rackSlice = (0,toolkit_.createSlice)({
9820
9645
  return rack.slice(0, expectedRackLength);
9821
9646
  },
9822
9647
  groupTiles: (state, action)=>{
9823
- const direction = action.payload;
9824
- if (direction === null) {
9648
+ if (action.payload === null) {
9825
9649
  return state;
9826
9650
  }
9827
- const nullMovingComparator = (0,lib/* createNullMovingComparator */.Ml)((0,lib/* inverseDirection */.Mf)(direction));
9651
+ const nullMovingComparator = (0,lib/* createNullMovingComparator */.Ml)((0,lib/* inverseDirection */.Mf)(action.payload));
9828
9652
  const sortedTiles = [
9829
9653
  ...state
9830
9654
  ].sort(nullMovingComparator);
9831
- return sortedTiles;
9655
+ return (0,lib/* arrayEquals */._g)(state, sortedTiles) ? state : sortedTiles;
9832
9656
  },
9833
- init: (_state, action)=>{
9834
- const rack = action.payload;
9835
- return rack;
9657
+ init: (state, action)=>{
9658
+ return (0,lib/* arrayEquals */._g)(state, action.payload) ? state : action.payload;
9836
9659
  },
9837
9660
  removeTiles: (state, action)=>{
9838
9661
  const tilesToRemove = action.payload;
@@ -9840,7 +9663,7 @@ const rackSlice = (0,toolkit_.createSlice)({
9840
9663
  const charactersWithoutMatchingTiles = charactersAndTiles.map(({ character , tile })=>tile ? null : character);
9841
9664
  return charactersWithoutMatchingTiles;
9842
9665
  },
9843
- reset: ()=>slices_rackInitialState
9666
+ reset: ()=>rackDefaultState
9844
9667
  }
9845
9668
  });
9846
9669
  /* harmony default export */ const slices_rackSlice = (rackSlice);