@scrabble-solver/scrabble-solver 2.11.4 → 2.11.6

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 (148) 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 +851 -1179
  18. package/.next/server/chunks/636.js +286 -0
  19. package/.next/server/chunks/675.js +550 -0
  20. package/.next/server/middleware-build-manifest.js +1 -1
  21. package/.next/server/pages/404.html +1 -5
  22. package/.next/server/pages/404.js.nft.json +1 -1
  23. package/.next/server/pages/500.html +1 -1
  24. package/.next/server/pages/_app.js +73 -9
  25. package/.next/server/pages/_app.js.nft.json +1 -1
  26. package/.next/server/pages/_document.js.nft.json +1 -1
  27. package/.next/server/pages/_error.js +1 -280
  28. package/.next/server/pages/_error.js.nft.json +1 -1
  29. package/.next/server/pages/api/solve.js +22 -2
  30. package/.next/server/pages/index.html +1 -1
  31. package/.next/server/pages/index.js +381 -314
  32. package/.next/server/pages/index.js.nft.json +1 -1
  33. package/.next/server/pages/index.json +1 -1
  34. package/.next/server/pages-manifest.json +1 -1
  35. package/.next/static/Jmk00rVXCbdjFgP77tKXQ/_buildManifest.js +1 -0
  36. package/.next/static/chunks/pages/{404-448ba28510855455.js → 404-8176f4acd0cfeb42.js} +1 -1
  37. package/.next/static/chunks/pages/_app-b4fa92112b8f0385.js +28 -0
  38. package/.next/static/chunks/pages/index-ccd762f8f5028729.js +1 -0
  39. package/.next/static/css/1cd302e7648d209c.css +2 -0
  40. package/.next/static/css/34adfcf12a7d9bb6.css +1 -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 -5
  48. package/src/components/Board/hooks/useGrid.ts +5 -3
  49. package/src/components/Button/Button.module.scss +1 -1
  50. package/src/components/Dictionary/Dictionary.module.scss +0 -1
  51. package/src/components/EmptyState/EmptyState.module.scss +0 -1
  52. package/src/components/Key/Key.module.scss +1 -1
  53. package/src/components/Loading/Loading.module.scss +1 -1
  54. package/src/components/Loading/Loading.tsx +1 -1
  55. package/src/components/Logo/Logo.tsx +10 -12
  56. package/src/components/Logo/LogoBlueprint.tsx +21 -0
  57. package/src/components/Logo/index.ts +1 -1
  58. package/src/components/Modal/Modal.module.scss +1 -6
  59. package/src/components/Modal/Modal.tsx +15 -8
  60. package/src/components/NavButtons/NavButtons.tsx +2 -2
  61. package/src/components/PlainTiles/PlainTiles.tsx +0 -10
  62. package/src/components/PlainTiles/Tile.tsx +1 -4
  63. package/src/components/Rack/Rack.module.scss +59 -0
  64. package/src/components/Results/HeaderButton.tsx +6 -6
  65. package/src/components/Results/Results.module.scss +3 -1
  66. package/src/components/Results/Results.tsx +7 -7
  67. package/src/components/Results/useColumns.ts +2 -5
  68. package/src/components/Solver/Solver.tsx +6 -23
  69. package/src/components/Tile/Tile.module.scss +2 -1
  70. package/src/components/Tile/Tile.tsx +8 -4
  71. package/src/components/index.ts +0 -5
  72. package/src/hooks/index.ts +6 -0
  73. package/src/hooks/useAppLayout.ts +62 -12
  74. package/src/hooks/useDirection.ts +2 -2
  75. package/src/hooks/useEffectOnce.ts +5 -0
  76. package/src/hooks/useIsTouchDevice.ts +1 -1
  77. package/src/hooks/useLanguage.ts +2 -2
  78. package/src/hooks/useLatest.ts +13 -0
  79. package/src/hooks/useLocalStorage.ts +51 -0
  80. package/src/hooks/useMedia.ts +36 -0
  81. package/src/hooks/useMediaQueries.ts +13 -0
  82. package/src/hooks/useMediaQuery.ts +2 -1
  83. package/src/hooks/useOnWindowResize.ts +13 -0
  84. package/src/hooks/useViewportSize.ts +19 -0
  85. package/src/i18n/constants.ts +14 -22
  86. package/src/lib/arrayEquals.ts +5 -0
  87. package/src/lib/index.ts +1 -0
  88. package/src/lib/zipCharactersAndTiles.ts +3 -1
  89. package/src/modals/DictionaryModal/DictionaryModal.tsx +2 -2
  90. package/src/modals/KeyMapModal/KeyMapModal.tsx +2 -2
  91. package/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +0 -1
  92. package/src/modals/KeyMapModal/keys.tsx +0 -2
  93. package/src/modals/MenuModal/MenuModal.module.scss +28 -4
  94. package/src/modals/MenuModal/MenuModal.tsx +4 -4
  95. package/src/modals/RemainingTilesModal/RemainingTilesModal.tsx +2 -2
  96. package/src/modals/ResultsModal/ResultsModal.module.scss +1 -5
  97. package/src/modals/ResultsModal/ResultsModal.tsx +10 -2
  98. package/src/modals/SettingsModal/SettingsModal.tsx +2 -2
  99. package/src/modals/SettingsModal/components/AutoGroupTilesSetting/lib.ts +3 -1
  100. package/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.module.scss +0 -1
  101. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +1 -6
  102. package/src/modals/WordsModal/WordsModal.tsx +2 -2
  103. package/src/pages/index.module.scss +3 -21
  104. package/src/pages/index.tsx +51 -69
  105. package/src/parameters/index.ts +29 -2
  106. package/src/state/localStorage.ts +13 -2
  107. package/src/state/sagas.ts +16 -8
  108. package/src/state/slices/boardInitialState.ts +5 -1
  109. package/src/state/slices/boardSlice.ts +2 -2
  110. package/src/state/slices/rackInitialState.ts +8 -2
  111. package/src/state/slices/rackSlice.ts +16 -13
  112. package/src/state/slices/settingsInitialState.ts +9 -4
  113. package/src/state/slices/settingsSlice.ts +3 -1
  114. package/src/styles/animations.scss +0 -20
  115. package/src/styles/global.scss +4 -15
  116. package/src/styles/mixins.scss +0 -60
  117. package/src/styles/variables.scss +14 -5
  118. package/src/types/index.ts +4 -0
  119. package/.next/static/MvHZRF4XuJ7g8LLLRkf8U/_buildManifest.js +0 -1
  120. package/.next/static/chunks/pages/_app-66d80a5594aab8dc.js +0 -28
  121. package/.next/static/chunks/pages/index-0858deea02b2a417.js +0 -1
  122. package/.next/static/css/885da289cec275b3.css +0 -1
  123. package/.next/static/css/ea1c8134fe9a143e.css +0 -2
  124. package/src/components/LogoSplashScreen/LogoSplashScreen.module.scss +0 -65
  125. package/src/components/LogoSplashScreen/LogoSplashScreen.tsx +0 -31
  126. package/src/components/LogoSplashScreen/index.ts +0 -1
  127. package/src/components/Sizer/Sizer.module.scss +0 -10
  128. package/src/components/Sizer/Sizer.tsx +0 -10
  129. package/src/components/Sizer/index.ts +0 -1
  130. package/src/components/SplashScreen/SplashScreen.module.scss +0 -14
  131. package/src/components/SplashScreen/SplashScreen.tsx +0 -19
  132. package/src/components/SplashScreen/index.ts +0 -1
  133. package/src/components/SvgFontCss/SvgFontCss.tsx +0 -14
  134. package/src/components/SvgFontCss/createCss.ts +0 -11
  135. package/src/components/SvgFontCss/createStyle.ts +0 -9
  136. package/src/components/SvgFontCss/createSvg.ts +0 -10
  137. package/src/components/SvgFontCss/index.ts +0 -1
  138. package/src/components/SvgFontFix/SvgFontFix.module.scss +0 -5
  139. package/src/components/SvgFontFix/SvgFontFix.tsx +0 -21
  140. package/src/components/SvgFontFix/index.ts +0 -1
  141. package/src/hooks/useLocalStorage/index.ts +0 -1
  142. package/src/hooks/useLocalStorage/useLocalStorage.ts +0 -13
  143. package/src/hooks/useLocalStorage/useLocalStorageBoard.ts +0 -29
  144. package/src/hooks/useLocalStorage/useLocalStorageConfigId.ts +0 -29
  145. package/src/hooks/useLocalStorage/useLocalStorageLocale.ts +0 -32
  146. package/src/hooks/useLocalStorage/useLocalStorageRack.ts +0 -29
  147. /package/.next/static/{MvHZRF4XuJ7g8LLLRkf8U → Jmk00rVXCbdjFgP77tKXQ}/_ssgManifest.js +0 -0
  148. /package/{src/components/Logo/Logo.svg → public/logo.svg} +0 -0
@@ -995,9 +995,7 @@ module.exports = {
995
995
  "hide": "Board_hide__Fskbc",
996
996
  "shown": "Board_shown__T9Txa",
997
997
  "show": "Board_show__1ChIu",
998
- "progress": "Board_progress__3ImeV",
999
998
  "rotate": "Board_rotate__ynCR2",
1000
- "pulse": "Board_pulse__RoNSE",
1001
999
  "wave": "Board_wave__NDbpN"
1002
1000
  };
1003
1001
 
@@ -1136,33 +1134,11 @@ module.exports = {
1136
1134
  module.exports = {
1137
1135
  "loading": "Loading_loading__RkVCa",
1138
1136
  "dim": "Loading_dim__H3eXg",
1139
- "logo": "Loading_logo__1hwt4",
1137
+ "text": "Loading_text__qKHb5",
1140
1138
  "tiles": "Loading_tiles__RNn33"
1141
1139
  };
1142
1140
 
1143
1141
 
1144
- /***/ }),
1145
-
1146
- /***/ 44744:
1147
- /***/ ((module) => {
1148
-
1149
- // Exports
1150
- module.exports = {
1151
- "logoSplashScreen": "LogoSplashScreen_logoSplashScreen__pRvmG",
1152
- "animated": "LogoSplashScreen_animated__FLtGf",
1153
- "hide": "LogoSplashScreen_hide__O6VWM",
1154
- "logos": "LogoSplashScreen_logos__x48g1",
1155
- "pulse": "LogoSplashScreen_pulse__xzhLz",
1156
- "logoColor": "LogoSplashScreen_logoColor__yxa6j",
1157
- "progress": "LogoSplashScreen_progress__m0bkB",
1158
- "logoGrayscale": "LogoSplashScreen_logoGrayscale__zDa_H",
1159
- "author": "LogoSplashScreen_author__jDI5k",
1160
- "show": "LogoSplashScreen_show__N_vWU",
1161
- "rotate": "LogoSplashScreen_rotate__LocRV",
1162
- "wave": "LogoSplashScreen_wave__Trjnf"
1163
- };
1164
-
1165
-
1166
1142
  /***/ }),
1167
1143
 
1168
1144
  /***/ 61218:
@@ -1236,9 +1212,7 @@ module.exports = {
1236
1212
  "dropShadow": "PlainTiles_dropShadow__TjPAL",
1237
1213
  "hide": "PlainTiles_hide__ZXQ7t",
1238
1214
  "show": "PlainTiles_show__KuWdS",
1239
- "progress": "PlainTiles_progress__GEq5G",
1240
- "rotate": "PlainTiles_rotate__mHx2k",
1241
- "pulse": "PlainTiles_pulse__MTQRB"
1215
+ "rotate": "PlainTiles_rotate__mHx2k"
1242
1216
  };
1243
1217
 
1244
1218
 
@@ -1324,17 +1298,6 @@ module.exports = {
1324
1298
  };
1325
1299
 
1326
1300
 
1327
- /***/ }),
1328
-
1329
- /***/ 76872:
1330
- /***/ ((module) => {
1331
-
1332
- // Exports
1333
- module.exports = {
1334
- "sizer": "Sizer_sizer__6ihcO"
1335
- };
1336
-
1337
-
1338
1301
  /***/ }),
1339
1302
 
1340
1303
  /***/ 41674:
@@ -1371,9 +1334,7 @@ module.exports = {
1371
1334
  "floatingSolveButton": "FloatingSolveButton_floatingSolveButton__ylG5R",
1372
1335
  "hide": "FloatingSolveButton_hide__Xjdvf",
1373
1336
  "show": "FloatingSolveButton_show__hjyNU",
1374
- "progress": "FloatingSolveButton_progress__VlrJL",
1375
1337
  "rotate": "FloatingSolveButton_rotate__VJaNr",
1376
- "pulse": "FloatingSolveButton_pulse__Sklml",
1377
1338
  "wave": "FloatingSolveButton_wave__Ce4rm"
1378
1339
  };
1379
1340
 
@@ -1424,35 +1385,10 @@ module.exports = {
1424
1385
  "rotate": "Spinner_rotate__trb0p",
1425
1386
  "hide": "Spinner_hide__oSP5z",
1426
1387
  "show": "Spinner_show__iasps",
1427
- "progress": "Spinner_progress__mXCAs",
1428
- "pulse": "Spinner_pulse__xW7PT",
1429
1388
  "wave": "Spinner_wave__QVNeH"
1430
1389
  };
1431
1390
 
1432
1391
 
1433
- /***/ }),
1434
-
1435
- /***/ 37675:
1436
- /***/ ((module) => {
1437
-
1438
- // Exports
1439
- module.exports = {
1440
- "splashScreen": "SplashScreen_splashScreen__1t_F7",
1441
- "content": "SplashScreen_content__YuPB1"
1442
- };
1443
-
1444
-
1445
- /***/ }),
1446
-
1447
- /***/ 35516:
1448
- /***/ ((module) => {
1449
-
1450
- // Exports
1451
- module.exports = {
1452
- "svgFontFix": "SvgFontFix_svgFontFix__nlq_B"
1453
- };
1454
-
1455
-
1456
1392
  /***/ }),
1457
1393
 
1458
1394
  /***/ 10312:
@@ -1622,8 +1558,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1622
1558
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
1623
1559
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
1624
1560
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
1625
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69755);
1626
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_5__);
1561
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
1627
1562
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
1628
1563
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
1629
1564
  /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33791);
@@ -1631,8 +1566,8 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1631
1566
  /* harmony import */ var _BoardPure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(86058);
1632
1567
  /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(94347);
1633
1568
  /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(48327);
1634
- 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__]);
1635
- ([_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__);
1569
+ 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__]);
1570
+ ([_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__);
1636
1571
 
1637
1572
 
1638
1573
 
@@ -1649,7 +1584,7 @@ const Board = ({ cellSize , className })=>{
1649
1584
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
1650
1585
  const rows = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectRowsWithCandidate */ .ZA);
1651
1586
  const board = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectBoard */ .ZO);
1652
- const [actionsMeasureRef, { width: actionsWidth }] = (0,react_use__WEBPACK_IMPORTED_MODULE_5__.useMeasure)();
1587
+ const { actionsWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
1653
1588
  const [{ activeIndex , direction , inputRefs }, { onChange , onDirectionToggle , onFocus , onKeyDown , onPaste }] = (0,_hooks__WEBPACK_IMPORTED_MODULE_10__/* .useGrid */ .N)(rows);
1654
1589
  const inputRef = inputRefs[activeIndex.y][activeIndex.x];
1655
1590
  const cell = rows[activeIndex.y][activeIndex.x];
@@ -1666,23 +1601,24 @@ const Board = ({ cellSize , className })=>{
1666
1601
  placement: "top-end",
1667
1602
  whileElementsMounted: _floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.autoUpdate
1668
1603
  });
1669
- const actionsRef = (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.useMergeRefs)([
1670
- actionsMeasureRef,
1671
- refs.setFloating
1672
- ]);
1673
- const handleBlur = (event)=>{
1604
+ const handleBlur = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
1674
1605
  const eventComesFromActions = refs.floating.current?.contains(event.relatedTarget);
1675
1606
  const eventComesFromBoard = event.currentTarget.contains(event.relatedTarget);
1676
1607
  const isLocalEvent = eventComesFromActions || eventComesFromBoard;
1677
1608
  if (!isLocalEvent) {
1678
1609
  setShowActions(false);
1679
1610
  }
1680
- };
1681
- const handleDirectionToggle = ()=>{
1611
+ }, [
1612
+ refs.floating
1613
+ ]);
1614
+ const handleDirectionToggle = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1682
1615
  inputRef.current?.focus();
1683
1616
  onDirectionToggle();
1684
- };
1685
- const handleFocus = (newX, newY)=>{
1617
+ }, [
1618
+ inputRef,
1619
+ onDirectionToggle
1620
+ ]);
1621
+ const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((newX, newY)=>{
1686
1622
  const isFirstFocus = !showActions;
1687
1623
  const originalTransition = refs.floating.current?.style.transition || "";
1688
1624
  const newInputRef = inputRefs[newY][newX].current;
@@ -1698,15 +1634,29 @@ const Board = ({ cellSize , className })=>{
1698
1634
  setTransition(originalTransition);
1699
1635
  }, 0);
1700
1636
  }
1701
- };
1702
- const handleToggleBlank = ()=>{
1637
+ }, [
1638
+ inputRefs,
1639
+ onFocus,
1640
+ refs.floating,
1641
+ refs.setReference,
1642
+ showActions
1643
+ ]);
1644
+ const handleToggleBlank = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1703
1645
  inputRef.current?.focus();
1704
1646
  dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(cell));
1705
- };
1706
- const handleToggleFilterCell = ()=>{
1647
+ }, [
1648
+ cell,
1649
+ dispatch,
1650
+ inputRef
1651
+ ]);
1652
+ const handleToggleFilterCell = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1707
1653
  inputRef.current?.focus();
1708
1654
  dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .cellFilterSlice.actions.toggle */ .mO.actions.toggle(cell));
1709
- };
1655
+ }, [
1656
+ cell,
1657
+ dispatch,
1658
+ inputRef
1659
+ ]);
1710
1660
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1711
1661
  children: [
1712
1662
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BoardPure__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
@@ -1729,7 +1679,7 @@ const Board = ({ cellSize , className })=>{
1729
1679
  }),
1730
1680
  disabled: !showActions,
1731
1681
  direction: direction,
1732
- ref: actionsRef,
1682
+ ref: refs.setFloating,
1733
1683
  style: {
1734
1684
  position: strategy,
1735
1685
  top: y ?? 0,
@@ -1826,12 +1776,14 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1826
1776
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
1827
1777
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
1828
1778
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
1829
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
1830
- /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83900);
1831
- /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(79739);
1832
- /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7__);
1833
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _Button__WEBPACK_IMPORTED_MODULE_6__]);
1834
- ([state__WEBPACK_IMPORTED_MODULE_5__, _Button__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1779
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
1780
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
1781
+ /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83900);
1782
+ /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(79739);
1783
+ /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8__);
1784
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_6__, _Button__WEBPACK_IMPORTED_MODULE_7__]);
1785
+ ([state__WEBPACK_IMPORTED_MODULE_6__, _Button__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1786
+
1835
1787
 
1836
1788
 
1837
1789
 
@@ -1841,41 +1793,42 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
1841
1793
 
1842
1794
 
1843
1795
  const Actions = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_3__.forwardRef)(({ cell , className , direction , disabled , onDirectionToggle , onToggleBlank , onToggleFilterCell , ...props }, ref)=>{
1844
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
1845
- const isFiltered = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_5__/* .selectCellIsFiltered */ .id)(state, cell));
1796
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
1797
+ const isFiltered = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_6__/* .selectCellIsFiltered */ .id)(state, cell));
1798
+ const resultCandidateCells = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectResultCandidateCells */ .GL);
1846
1799
  const isBlank = cell.tile.isBlank;
1847
- const isEmpty = cell.tile.character === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.EMPTY_CELL;
1800
+ 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));
1848
1801
  // On iOS it helps with losing focus too early which makes Actions disappear
1849
1802
  const handleMouseDown = (event)=>event.preventDefault();
1850
1803
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1851
- className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().actions), className),
1804
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().actions), className),
1852
1805
  ref: ref,
1853
1806
  ...props,
1854
1807
  children: [
1855
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1808
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
1856
1809
  "aria-label": translate("cell.toggle-direction"),
1857
- className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().action),
1810
+ className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().action),
1858
1811
  Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .ArrowDown */ .K5,
1859
- iconClassName: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().toggleDirection), {
1860
- [(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().right)]: direction === "horizontal"
1812
+ iconClassName: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().toggleDirection), {
1813
+ [(_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().right)]: direction === "horizontal"
1861
1814
  }),
1862
1815
  tabIndex: disabled ? -1 : undefined,
1863
1816
  tooltip: translate("cell.toggle-direction"),
1864
1817
  onClick: onDirectionToggle,
1865
1818
  onMouseDown: handleMouseDown
1866
1819
  }),
1867
- isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1820
+ isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
1868
1821
  "aria-label": translate("cell.filter-cell"),
1869
- className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().action)),
1822
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().action)),
1870
1823
  Icon: isFiltered ? icons__WEBPACK_IMPORTED_MODULE_4__/* .Flag */ .WN : icons__WEBPACK_IMPORTED_MODULE_4__/* .FlagFill */ .aR,
1871
1824
  tabIndex: disabled ? -1 : undefined,
1872
1825
  tooltip: translate("cell.filter-cell"),
1873
1826
  onClick: onToggleFilterCell,
1874
1827
  onMouseDown: handleMouseDown
1875
1828
  }),
1876
- !isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1829
+ !isEmpty && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
1877
1830
  "aria-label": isBlank ? translate("cell.set-not-blank") : translate("cell.set-blank"),
1878
- className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_7___default().action),
1831
+ className: (_Actions_module_scss__WEBPACK_IMPORTED_MODULE_8___default().action),
1879
1832
  Icon: isBlank ? icons__WEBPACK_IMPORTED_MODULE_4__/* .SquareFill */ .uX : icons__WEBPACK_IMPORTED_MODULE_4__/* .Square */ .bK,
1880
1833
  tabIndex: disabled ? -1 : undefined,
1881
1834
  tooltip: isBlank ? translate("cell.set-not-blank") : translate("cell.set-blank"),
@@ -1923,7 +1876,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1923
1876
  /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7618);
1924
1877
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
1925
1878
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1926
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10129);
1879
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65175);
1927
1880
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
1928
1881
  /* harmony import */ var _CellPure__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12418);
1929
1882
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _CellPure__WEBPACK_IMPORTED_MODULE_5__]);
@@ -2188,14 +2141,13 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2188
2141
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
2189
2142
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
2190
2143
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
2191
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
2192
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
2144
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
2193
2145
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36743);
2194
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10129);
2146
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65175);
2195
2147
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
2196
2148
  /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97792);
2197
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_7__]);
2198
- state__WEBPACK_IMPORTED_MODULE_7__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
2149
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__]);
2150
+ ([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
2199
2151
  /* eslint-disable max-lines, max-statements */
2200
2152
 
2201
2153
 
@@ -2221,7 +2173,7 @@ const useGrid = (rows)=>{
2221
2173
  y: 0
2222
2174
  });
2223
2175
  const [direction, setLastDirection] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)("horizontal");
2224
- const directionRef = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useLatest)(direction);
2176
+ const directionRef = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useLatest */ .dU)(direction);
2225
2177
  const changeActiveIndex = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((offsetX, offsetY)=>{
2226
2178
  const x = Math.min(Math.max(activeIndex.x + offsetX, 0), width - 1);
2227
2179
  const y = Math.min(Math.max(activeIndex.y + offsetY, 0), height - 1);
@@ -2423,6 +2375,7 @@ const useGrid = (rows)=>{
2423
2375
  event.preventDefault();
2424
2376
  if (direction === "vertical") {
2425
2377
  onDirectionToggle();
2378
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? -1 : 0, 0);
2426
2379
  } else {
2427
2380
  changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? -1 : 1, 0);
2428
2381
  }
@@ -2431,6 +2384,7 @@ const useGrid = (rows)=>{
2431
2384
  event.preventDefault();
2432
2385
  if (direction === "vertical") {
2433
2386
  onDirectionToggle();
2387
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? 0 : -1, 0);
2434
2388
  } else {
2435
2389
  changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? 1 : -1, 0);
2436
2390
  }
@@ -2439,9 +2393,8 @@ const useGrid = (rows)=>{
2439
2393
  event.preventDefault();
2440
2394
  if (direction === "horizontal") {
2441
2395
  onDirectionToggle();
2442
- } else {
2443
- changeActiveIndex(0, -1);
2444
2396
  }
2397
+ changeActiveIndex(0, -1);
2445
2398
  },
2446
2399
  onBackspace: (event)=>{
2447
2400
  const position = getInputRefPosition(event.target);
@@ -2974,11 +2927,11 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2974
2927
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
2975
2928
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64534);
2976
2929
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
2977
- /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65925);
2930
+ /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83601);
2978
2931
  /* harmony import */ var _EmptyState_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59026);
2979
2932
  /* harmony import */ var _EmptyState_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_EmptyState_module_scss__WEBPACK_IMPORTED_MODULE_7__);
2980
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _PlainTiles__WEBPACK_IMPORTED_MODULE_6__]);
2981
- ([state__WEBPACK_IMPORTED_MODULE_5__, _PlainTiles__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
2933
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__]);
2934
+ state__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
2982
2935
 
2983
2936
 
2984
2937
 
@@ -3210,11 +3163,11 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3210
3163
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3211
3164
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
3212
3165
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
3213
- /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65925);
3166
+ /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83601);
3214
3167
  /* harmony import */ var _Loading_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28759);
3215
3168
  /* harmony import */ var _Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6__);
3216
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _PlainTiles__WEBPACK_IMPORTED_MODULE_5__]);
3217
- ([state__WEBPACK_IMPORTED_MODULE_4__, _PlainTiles__WEBPACK_IMPORTED_MODULE_5__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3169
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
3170
+ state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3218
3171
 
3219
3172
 
3220
3173
 
@@ -3247,7 +3200,7 @@ const Loading = ({ className , wave =true })=>{
3247
3200
  className: (_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().dim)
3248
3201
  }),
3249
3202
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3250
- className: (_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().logo),
3203
+ className: (_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().text),
3251
3204
  children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_PlainTiles__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
3252
3205
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Loading_module_scss__WEBPACK_IMPORTED_MODULE_6___default().tiles)),
3253
3206
  content: content,
@@ -3283,166 +3236,63 @@ __webpack_async_result__();
3283
3236
 
3284
3237
  /***/ }),
3285
3238
 
3286
- /***/ 8023:
3287
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3239
+ /***/ 36888:
3240
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
3288
3241
 
3289
3242
  "use strict";
3290
-
3291
- // EXPORTS
3292
- __webpack_require__.d(__webpack_exports__, {
3293
- "Z": () => (/* reexport */ Logo)
3294
- });
3295
-
3296
- // EXTERNAL MODULE: external "react"
3297
- var external_react_ = __webpack_require__(16689);
3298
- ;// CONCATENATED MODULE: ./src/components/Logo/Logo.svg
3299
- 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;
3300
- 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); }
3301
-
3302
- var SvgLogo = function SvgLogo(props) {
3303
- return /*#__PURE__*/external_react_.createElement("svg", _extends({
3304
- viewBox: "0 0 682 166",
3305
- xmlns: "http://www.w3.org/2000/svg"
3306
- }, props), _path || (_path = /*#__PURE__*/external_react_.createElement("path", {
3307
- fill: "#efe3ae",
3308
- d: "M0 0h80v80H0Z"
3309
- })), _path2 || (_path2 = /*#__PURE__*/external_react_.createElement("path", {
3310
- 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"
3311
- })), _path3 || (_path3 = /*#__PURE__*/external_react_.createElement("path", {
3312
- fill: "#c7d8f9",
3313
- d: "M86 0h80v80H86Z"
3314
- })), _path4 || (_path4 = /*#__PURE__*/external_react_.createElement("path", {
3315
- 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"
3316
- })), _path5 || (_path5 = /*#__PURE__*/external_react_.createElement("path", {
3317
- fill: "#efe3ae",
3318
- d: "M172 0h80v80h-80z"
3319
- })), _path6 || (_path6 = /*#__PURE__*/external_react_.createElement("path", {
3320
- 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"
3321
- })), _path7 || (_path7 = /*#__PURE__*/external_react_.createElement("path", {
3322
- fill: "#efe3ae",
3323
- d: "M258 0h80v80h-80z"
3324
- })), _path8 || (_path8 = /*#__PURE__*/external_react_.createElement("path", {
3325
- 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"
3326
- })), _path9 || (_path9 = /*#__PURE__*/external_react_.createElement("path", {
3327
- fill: "#c7d8f9",
3328
- d: "M344 0h80v80h-80z"
3329
- })), _path10 || (_path10 = /*#__PURE__*/external_react_.createElement("path", {
3330
- 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"
3331
- })), _path11 || (_path11 = /*#__PURE__*/external_react_.createElement("path", {
3332
- fill: "#c7d8f9",
3333
- d: "M430 0h80v80h-80z"
3334
- })), _path12 || (_path12 = /*#__PURE__*/external_react_.createElement("path", {
3335
- 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"
3336
- })), _path13 || (_path13 = /*#__PURE__*/external_react_.createElement("path", {
3337
- fill: "#efe3ae",
3338
- d: "M516 0h80v80h-80z"
3339
- })), _path14 || (_path14 = /*#__PURE__*/external_react_.createElement("path", {
3340
- d: "M546.754 57.133V22.867h7.266v28.266h13.898v6z"
3341
- })), _path15 || (_path15 = /*#__PURE__*/external_react_.createElement("path", {
3342
- fill: "#efe3ae",
3343
- d: "M602 0h80v80h-80z"
3344
- })), _path16 || (_path16 = /*#__PURE__*/external_react_.createElement("path", {
3345
- d: "M652.605 57.133h-19.734V22.867h19.734v5.953h-12.468v7.524h11.601v5.953h-11.601v8.836h12.468z"
3346
- })), _path17 || (_path17 = /*#__PURE__*/external_react_.createElement("path", {
3347
- fill: "#efe3ae",
3348
- d: "M0 86h80v80H0Z"
3349
- })), _path18 || (_path18 = /*#__PURE__*/external_react_.createElement("path", {
3350
- 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"
3351
- })), _path19 || (_path19 = /*#__PURE__*/external_react_.createElement("path", {
3352
- fill: "#efe3ae",
3353
- d: "M86 86h80v80H86Z"
3354
- })), _path20 || (_path20 = /*#__PURE__*/external_react_.createElement("path", {
3355
- 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"
3356
- })), _path21 || (_path21 = /*#__PURE__*/external_react_.createElement("path", {
3357
- fill: "#efe3ae",
3358
- d: "M172 86h80v80h-80z"
3359
- })), _path22 || (_path22 = /*#__PURE__*/external_react_.createElement("path", {
3360
- d: "M202.754 143.133v-34.266h7.266v28.266h13.898v6z"
3361
- })), _path23 || (_path23 = /*#__PURE__*/external_react_.createElement("path", {
3362
- fill: "#f7c2aa",
3363
- d: "M258 86h80v80h-80z"
3364
- })), _path24 || (_path24 = /*#__PURE__*/external_react_.createElement("path", {
3365
- 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"
3366
- })), _path25 || (_path25 = /*#__PURE__*/external_react_.createElement("path", {
3367
- fill: "#efe3ae",
3368
- d: "M344 86h80v80h-80z"
3369
- })), _path26 || (_path26 = /*#__PURE__*/external_react_.createElement("path", {
3370
- d: "M394.605 143.133h-19.734v-34.266h19.734v5.953h-12.468v7.524h11.601v5.953h-11.601v8.836h12.468z"
3371
- })), _path27 || (_path27 = /*#__PURE__*/external_react_.createElement("path", {
3372
- fill: "#efe3ae",
3373
- d: "M430 86h80v80h-80z"
3374
- })), _path28 || (_path28 = /*#__PURE__*/external_react_.createElement("path", {
3375
- 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"
3376
- })), _path29 || (_path29 = /*#__PURE__*/external_react_.createElement("path", {
3377
- fill: "#bae3ba",
3378
- d: "M602 86h80v80h-80z"
3379
- })), _path30 || (_path30 = /*#__PURE__*/external_react_.createElement("path", {
3380
- 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"
3381
- })));
3382
- };
3383
- /* harmony default export */ const Logo = (SvgLogo);
3384
- ;// CONCATENATED MODULE: ./src/components/Logo/index.ts
3385
-
3243
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3244
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3245
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3246
+ /* harmony export */ });
3247
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
3248
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3249
+ /* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25675);
3250
+ /* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_image__WEBPACK_IMPORTED_MODULE_1__);
3251
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
3252
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3253
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75704);
3254
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64534);
3255
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_3__]);
3256
+ hooks__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3386
3257
 
3387
3258
 
3388
- /***/ }),
3389
3259
 
3390
- /***/ 6436:
3391
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3392
3260
 
3393
- "use strict";
3394
3261
 
3395
- // EXPORTS
3396
- __webpack_require__.d(__webpack_exports__, {
3397
- "Z": () => (/* reexport */ LogoSplashScreen_LogoSplashScreen)
3262
+ const Logo = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.forwardRef)((props, ref)=>{
3263
+ const { logoHeight , logoWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_3__/* .useAppLayout */ .Ft)();
3264
+ return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_image__WEBPACK_IMPORTED_MODULE_1___default()), {
3265
+ ...props,
3266
+ alt: "Scrabble Solver 2",
3267
+ height: logoHeight,
3268
+ priority: true,
3269
+ ref: ref,
3270
+ src: parameters__WEBPACK_IMPORTED_MODULE_4__/* .LOGO_SRC */ .sk,
3271
+ width: logoWidth
3272
+ });
3398
3273
  });
3274
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Logo);
3399
3275
 
3400
- // EXTERNAL MODULE: external "react/jsx-runtime"
3401
- var jsx_runtime_ = __webpack_require__(20997);
3402
- // EXTERNAL MODULE: external "classnames"
3403
- var external_classnames_ = __webpack_require__(59003);
3404
- var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
3405
- // EXTERNAL MODULE: ./src/components/Logo/index.ts + 1 modules
3406
- var Logo = __webpack_require__(8023);
3407
- // EXTERNAL MODULE: ./src/components/SplashScreen/index.ts + 1 modules
3408
- var SplashScreen = __webpack_require__(8984);
3409
- // EXTERNAL MODULE: ./src/components/LogoSplashScreen/LogoSplashScreen.module.scss
3410
- var LogoSplashScreen_module = __webpack_require__(44744);
3411
- var LogoSplashScreen_module_default = /*#__PURE__*/__webpack_require__.n(LogoSplashScreen_module);
3412
- ;// CONCATENATED MODULE: ./src/components/LogoSplashScreen/LogoSplashScreen.tsx
3413
-
3414
-
3415
-
3276
+ __webpack_async_result__();
3277
+ } catch(e) { __webpack_async_result__(e); } });
3416
3278
 
3279
+ /***/ }),
3417
3280
 
3418
- const LogoSplashScreen = ({ className , forceShow , onAnimationEnd })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)(SplashScreen/* default */.Z, {
3419
- className: external_classnames_default()((LogoSplashScreen_module_default()).logoSplashScreen, className, {
3420
- [(LogoSplashScreen_module_default()).animated]: !forceShow
3421
- }),
3422
- onAnimationEnd: onAnimationEnd,
3423
- children: [
3424
- /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
3425
- className: (LogoSplashScreen_module_default()).logos,
3426
- children: [
3427
- /*#__PURE__*/ jsx_runtime_.jsx(Logo/* default */.Z, {
3428
- className: (LogoSplashScreen_module_default()).logoGrayscale
3429
- }),
3430
- /*#__PURE__*/ jsx_runtime_.jsx(Logo/* default */.Z, {
3431
- className: (LogoSplashScreen_module_default()).logoColor
3432
- })
3433
- ]
3434
- }),
3435
- /*#__PURE__*/ jsx_runtime_.jsx("h1", {
3436
- className: (LogoSplashScreen_module_default()).author,
3437
- children: "by Kamil Mielnik"
3438
- })
3439
- ]
3440
- });
3441
- /* harmony default export */ const LogoSplashScreen_LogoSplashScreen = (LogoSplashScreen);
3281
+ /***/ 18801:
3282
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
3442
3283
 
3443
- ;// CONCATENATED MODULE: ./src/components/LogoSplashScreen/index.ts
3284
+ "use strict";
3285
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3286
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3287
+ /* harmony export */ "Z": () => (/* reexport safe */ _Logo__WEBPACK_IMPORTED_MODULE_0__.Z)
3288
+ /* harmony export */ });
3289
+ /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36888);
3290
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Logo__WEBPACK_IMPORTED_MODULE_0__]);
3291
+ _Logo__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3444
3292
 
3445
3293
 
3294
+ __webpack_async_result__();
3295
+ } catch(e) { __webpack_async_result__(e); } });
3446
3296
 
3447
3297
  /***/ }),
3448
3298
 
@@ -3462,18 +3312,15 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3462
3312
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3463
3313
  /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19931);
3464
3314
  /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_modal__WEBPACK_IMPORTED_MODULE_3__);
3465
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
3466
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
3467
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(58966);
3468
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
3469
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
3470
- /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(95975);
3471
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(32465);
3472
- /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61218);
3473
- /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10__);
3474
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__]);
3475
- ([state__WEBPACK_IMPORTED_MODULE_7__, _IconButton__WEBPACK_IMPORTED_MODULE_8__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3476
-
3315
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
3316
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64534);
3317
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
3318
+ /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(95975);
3319
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(32465);
3320
+ /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61218);
3321
+ /* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9__);
3322
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__]);
3323
+ ([state__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3477
3324
 
3478
3325
 
3479
3326
 
@@ -3485,14 +3332,24 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
3485
3332
 
3486
3333
 
3487
3334
  const Modal = ({ children , className , footer , isOpen , title , onClose })=>{
3488
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
3335
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
3489
3336
  const [shouldReturnFocusAfterClose, setShouldReturnFocusAfterClose] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);
3490
- (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useKey)("Escape", ()=>{
3491
- setShouldReturnFocusAfterClose(false);
3492
- onClose();
3493
- }, undefined, [
3337
+ const handleEscape = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
3338
+ if (event.key === "Escape") {
3339
+ setShouldReturnFocusAfterClose(false);
3340
+ onClose();
3341
+ }
3342
+ }, [
3494
3343
  onClose
3495
3344
  ]);
3345
+ (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
3346
+ document.addEventListener("keydown", handleEscape);
3347
+ return ()=>{
3348
+ document.removeEventListener("keydown", handleEscape);
3349
+ };
3350
+ }, [
3351
+ handleEscape
3352
+ ]);
3496
3353
  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
3497
3354
  if (isOpen) {
3498
3355
  setShouldReturnFocusAfterClose(true);
@@ -3502,41 +3359,41 @@ const Modal = ({ children , className , footer , isOpen , title , onClose })=>{
3502
3359
  ]);
3503
3360
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((react_modal__WEBPACK_IMPORTED_MODULE_3___default()), {
3504
3361
  className: {
3505
- afterOpen: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().afterOpen),
3506
- base: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().modal),
3507
- beforeClose: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().beforeClose)
3362
+ afterOpen: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().afterOpen),
3363
+ base: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().modal),
3364
+ beforeClose: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().beforeClose)
3508
3365
  },
3509
- closeTimeoutMS: parameters__WEBPACK_IMPORTED_MODULE_6__/* .TRANSITION_DURATION_LONG */ .MA,
3366
+ closeTimeoutMS: parameters__WEBPACK_IMPORTED_MODULE_5__/* .TRANSITION_DURATION_LONG */ .MA,
3510
3367
  contentLabel: title,
3511
3368
  isOpen: isOpen,
3512
- overlayClassName: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().overlay),
3369
+ overlayClassName: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().overlay),
3513
3370
  shouldReturnFocusAfterClose: shouldReturnFocusAfterClose,
3514
3371
  onRequestClose: onClose,
3515
3372
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3516
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().container), className),
3373
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().container), className),
3517
3374
  children: [
3518
3375
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3519
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().header),
3376
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().header),
3520
3377
  children: [
3521
3378
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h1", {
3522
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().title),
3379
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().title),
3523
3380
  children: title
3524
3381
  }),
3525
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
3382
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3526
3383
  "aria-label": translate("common.close"),
3527
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().closeButton),
3528
- Icon: icons__WEBPACK_IMPORTED_MODULE_5__/* .CrossSquareFill */ .vK,
3384
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().closeButton),
3385
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .CrossSquareFill */ .vK,
3529
3386
  tooltip: translate("common.close"),
3530
3387
  onClick: onClose
3531
3388
  })
3532
3389
  ]
3533
3390
  }),
3534
3391
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3535
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().content),
3392
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().content),
3536
3393
  children: children
3537
3394
  }),
3538
3395
  footer && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3539
- className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().footer),
3396
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_9___default().footer),
3540
3397
  children: footer
3541
3398
  })
3542
3399
  ]
@@ -3544,7 +3401,7 @@ const Modal = ({ children , className , footer , isOpen , title , onClose })=>{
3544
3401
  });
3545
3402
  };
3546
3403
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Object.assign(Modal, {
3547
- Section: _components__WEBPACK_IMPORTED_MODULE_9__/* .Section */ .$
3404
+ Section: _components__WEBPACK_IMPORTED_MODULE_8__/* .Section */ .$
3548
3405
  }));
3549
3406
 
3550
3407
  __webpack_async_result__();
@@ -3627,15 +3484,18 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3627
3484
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3628
3485
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
3629
3486
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
3630
- /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75704);
3631
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
3632
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64534);
3633
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
3634
- /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(95975);
3635
- /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(107);
3636
- /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7__);
3637
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_2__, state__WEBPACK_IMPORTED_MODULE_5__, _IconButton__WEBPACK_IMPORTED_MODULE_6__]);
3638
- ([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__);
3487
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
3488
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3489
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75704);
3490
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
3491
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64534);
3492
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
3493
+ /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(95975);
3494
+ /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(107);
3495
+ /* harmony import */ var _NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8__);
3496
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_3__, state__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__]);
3497
+ ([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__);
3498
+
3639
3499
 
3640
3500
 
3641
3501
 
@@ -3645,33 +3505,33 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hook
3645
3505
 
3646
3506
 
3647
3507
  const NavButtons = ({ onClear , onShowKeyMap , onShowMenu , onShowRemainingTiles , onShowSettings , onShowWords })=>{
3648
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
3649
- const hasOverusedTiles = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectHasOverusedTiles */ .En);
3650
- const hasInvalidWords = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectHasInvalidWords */ .bs);
3651
- const { showKeyMap , showShortNav } = (0,hooks__WEBPACK_IMPORTED_MODULE_2__/* .useAppLayout */ .Ft)();
3508
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
3509
+ const hasOverusedTiles = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectHasOverusedTiles */ .En);
3510
+ const hasInvalidWords = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectHasInvalidWords */ .bs);
3511
+ const { showKeyMap , showShortNav } = (0,hooks__WEBPACK_IMPORTED_MODULE_3__/* .useAppLayout */ .Ft)();
3652
3512
  if (showShortNav) {
3653
3513
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3654
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().navButtons),
3514
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().navButtons),
3655
3515
  children: [
3656
3516
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3657
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3658
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3517
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3518
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3659
3519
  "aria-label": translate("common.clear"),
3660
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3661
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Eraser */ .Gs,
3520
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3521
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Eraser */ .Gs,
3662
3522
  tooltip: translate("common.clear"),
3663
3523
  onClick: onClear
3664
3524
  })
3665
3525
  }),
3666
3526
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3667
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3527
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3668
3528
  }),
3669
3529
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3670
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3671
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3530
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3531
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3672
3532
  "aria-label": translate("menu"),
3673
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3674
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .List */ .aV,
3533
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3534
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .List */ .aV,
3675
3535
  tooltip: translate("menu"),
3676
3536
  onClick: onShowMenu
3677
3537
  })
@@ -3680,76 +3540,76 @@ const NavButtons = ({ onClear , onShowKeyMap , onShowMenu , onShowRemainingTiles
3680
3540
  });
3681
3541
  }
3682
3542
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3683
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().navButtons),
3543
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().navButtons),
3684
3544
  children: [
3685
3545
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3686
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3687
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3546
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3547
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3688
3548
  "aria-label": translate("common.clear"),
3689
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3690
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Eraser */ .Gs,
3549
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3550
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Eraser */ .Gs,
3691
3551
  tooltip: translate("common.clear"),
3692
3552
  onClick: onClear
3693
3553
  })
3694
3554
  }),
3695
3555
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3696
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3556
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3697
3557
  }),
3698
3558
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3699
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3559
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3700
3560
  children: [
3701
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3561
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3702
3562
  "aria-label": translate("remaining-tiles"),
3703
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button), {
3704
- [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().error)]: hasOverusedTiles
3563
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button), {
3564
+ [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().error)]: hasOverusedTiles
3705
3565
  }),
3706
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Sack */ .xy,
3566
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Sack */ .xy,
3707
3567
  tooltip: translate("remaining-tiles"),
3708
3568
  onClick: onShowRemainingTiles
3709
3569
  }),
3710
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3570
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3711
3571
  "aria-label": translate("words"),
3712
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button), {
3713
- [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().error)]: hasInvalidWords
3572
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button), {
3573
+ [(_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().error)]: hasInvalidWords
3714
3574
  }),
3715
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .CardChecklist */ .Kz,
3575
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .CardChecklist */ .Kz,
3716
3576
  tooltip: translate("words"),
3717
3577
  onClick: onShowWords
3718
3578
  })
3719
3579
  ]
3720
3580
  }),
3721
3581
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3722
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3582
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3723
3583
  }),
3724
3584
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3725
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3726
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"].Link */ .Z.Link, {
3585
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3586
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"].Link */ .Z.Link, {
3727
3587
  "aria-label": translate("github"),
3728
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3729
- href: parameters__WEBPACK_IMPORTED_MODULE_4__/* .GITHUB_PROJECT_URL */ .h4,
3730
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Github */ .Ey,
3588
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3589
+ href: parameters__WEBPACK_IMPORTED_MODULE_5__/* .GITHUB_PROJECT_URL */ .h4,
3590
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Github */ .Ey,
3731
3591
  rel: "noopener noreferrer",
3732
3592
  target: "_blank",
3733
3593
  tooltip: translate("github")
3734
3594
  })
3735
3595
  }),
3736
3596
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3737
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().separator)
3597
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().separator)
3738
3598
  }),
3739
3599
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3740
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().group),
3600
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().group),
3741
3601
  children: [
3742
- showKeyMap && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3602
+ showKeyMap && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3743
3603
  "aria-label": translate("keyMap"),
3744
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3745
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Keyboard */ .N1,
3604
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3605
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Keyboard */ .N1,
3746
3606
  tooltip: translate("keyMap"),
3747
3607
  onClick: onShowKeyMap
3748
3608
  }),
3749
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
3609
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_IconButton__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3750
3610
  "aria-label": translate("settings"),
3751
- className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_7___default().button),
3752
- Icon: icons__WEBPACK_IMPORTED_MODULE_3__/* .Cog */ .Oz,
3611
+ className: (_NavButtons_module_scss__WEBPACK_IMPORTED_MODULE_8___default().button),
3612
+ Icon: icons__WEBPACK_IMPORTED_MODULE_4__/* .Cog */ .Oz,
3753
3613
  tooltip: translate("settings"),
3754
3614
  onClick: onShowSettings
3755
3615
  })
@@ -3758,7 +3618,7 @@ const NavButtons = ({ onClear , onShowKeyMap , onShowMenu , onShowRemainingTiles
3758
3618
  ]
3759
3619
  });
3760
3620
  };
3761
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NavButtons);
3621
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(NavButtons));
3762
3622
 
3763
3623
  __webpack_async_result__();
3764
3624
  } catch(e) { __webpack_async_result__(e); } });
@@ -3783,22 +3643,26 @@ __webpack_async_result__();
3783
3643
 
3784
3644
  /***/ }),
3785
3645
 
3786
- /***/ 95850:
3787
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
3646
+ /***/ 1437:
3647
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3788
3648
 
3789
3649
  "use strict";
3790
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3791
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3792
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3793
- /* harmony export */ });
3794
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
3795
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3796
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58966);
3797
- /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65925);
3798
- /* harmony import */ var _NotFound_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56343);
3799
- /* harmony import */ var _NotFound_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_NotFound_module_scss__WEBPACK_IMPORTED_MODULE_3__);
3800
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_PlainTiles__WEBPACK_IMPORTED_MODULE_2__]);
3801
- _PlainTiles__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3650
+
3651
+ // EXPORTS
3652
+ __webpack_require__.d(__webpack_exports__, {
3653
+ "Z": () => (/* reexport */ NotFound_NotFound)
3654
+ });
3655
+
3656
+ // EXTERNAL MODULE: external "react/jsx-runtime"
3657
+ var jsx_runtime_ = __webpack_require__(20997);
3658
+ // EXTERNAL MODULE: ./src/icons/index.ts + 41 modules
3659
+ var icons = __webpack_require__(58966);
3660
+ // EXTERNAL MODULE: ./src/components/PlainTiles/index.ts + 9 modules
3661
+ var PlainTiles = __webpack_require__(83601);
3662
+ // EXTERNAL MODULE: ./src/components/NotFound/NotFound.module.scss
3663
+ var NotFound_module = __webpack_require__(56343);
3664
+ var NotFound_module_default = /*#__PURE__*/__webpack_require__.n(NotFound_module);
3665
+ ;// CONCATENATED MODULE: ./src/components/NotFound/NotFound.tsx
3802
3666
 
3803
3667
 
3804
3668
 
@@ -3809,204 +3673,47 @@ const CONTENT = [
3809
3673
  "404"
3810
3674
  ]
3811
3675
  ];
3812
- const NotFound = ()=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3813
- className: (_NotFound_module_scss__WEBPACK_IMPORTED_MODULE_3___default().notFound),
3814
- children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("a", {
3815
- className: (_NotFound_module_scss__WEBPACK_IMPORTED_MODULE_3___default().link),
3676
+ const NotFound = ()=>/*#__PURE__*/ jsx_runtime_.jsx("div", {
3677
+ className: (NotFound_module_default()).notFound,
3678
+ children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
3679
+ className: (NotFound_module_default()).link,
3816
3680
  href: "/",
3817
3681
  children: [
3818
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_1__/* .DashCircleFill */ .XK, {
3819
- className: (_NotFound_module_scss__WEBPACK_IMPORTED_MODULE_3___default().icon)
3682
+ /*#__PURE__*/ jsx_runtime_.jsx(icons/* DashCircleFill */.XK, {
3683
+ className: (NotFound_module_default()).icon
3820
3684
  }),
3821
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_PlainTiles__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
3822
- className: (_NotFound_module_scss__WEBPACK_IMPORTED_MODULE_3___default().tiles),
3685
+ /*#__PURE__*/ jsx_runtime_.jsx(PlainTiles/* default */.Z, {
3686
+ className: (NotFound_module_default()).tiles,
3823
3687
  content: CONTENT
3824
3688
  })
3825
3689
  ]
3826
3690
  })
3827
3691
  });
3828
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NotFound);
3692
+ /* harmony default export */ const NotFound_NotFound = (NotFound);
3829
3693
 
3830
- __webpack_async_result__();
3831
- } catch(e) { __webpack_async_result__(e); } });
3694
+ ;// CONCATENATED MODULE: ./src/components/NotFound/index.ts
3832
3695
 
3833
- /***/ }),
3834
3696
 
3835
- /***/ 24442:
3836
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
3837
-
3838
- "use strict";
3839
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3840
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3841
- /* harmony export */ "Z": () => (/* reexport safe */ _NotFound__WEBPACK_IMPORTED_MODULE_0__.Z)
3842
- /* harmony export */ });
3843
- /* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95850);
3844
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_NotFound__WEBPACK_IMPORTED_MODULE_0__]);
3845
- _NotFound__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3846
-
3847
-
3848
- __webpack_async_result__();
3849
- } catch(e) { __webpack_async_result__(e); } });
3850
3697
 
3851
3698
  /***/ }),
3852
3699
 
3853
- /***/ 32897:
3854
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
3855
-
3856
- "use strict";
3857
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3858
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3859
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3860
- /* harmony export */ });
3861
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
3862
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3863
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
3864
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
3865
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
3866
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
3867
- /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
3868
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
3869
- /* harmony import */ var _SvgFontCss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(73289);
3870
- /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14491);
3871
- /* harmony import */ var _PlainTiles_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(25891);
3872
- /* harmony import */ var _PlainTiles_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_PlainTiles_module_scss__WEBPACK_IMPORTED_MODULE_8__);
3873
- /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31915);
3874
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
3875
- state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3876
-
3877
-
3878
-
3879
-
3880
-
3881
-
3882
-
3883
-
3884
-
3885
- const PlainTiles = ({ className , color , content , dropShadow , showPoints , style , wave })=>{
3886
- const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
3887
- const { fontFamily } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q0[locale];
3888
- const tiles = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>(0,_lib__WEBPACK_IMPORTED_MODULE_6__/* .createPlainTiles */ .Qb)({
3889
- color,
3890
- content,
3891
- showPoints
3892
- }), [
3893
- color,
3894
- content,
3895
- showPoints
3896
- ]);
3897
- return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("svg", {
3898
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(className, {
3899
- [(_PlainTiles_module_scss__WEBPACK_IMPORTED_MODULE_8___default().dropShadow)]: dropShadow,
3900
- [(_PlainTiles_module_scss__WEBPACK_IMPORTED_MODULE_8___default().wave)]: wave
3901
- }),
3902
- style: style,
3903
- viewBox: (0,_lib__WEBPACK_IMPORTED_MODULE_6__/* .getViewbox */ .kR)(content),
3904
- xmlns: "http://www.w3.org/2000/svg",
3905
- children: [
3906
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SvgFontCss__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
3907
- fontFamily: fontFamily
3908
- }),
3909
- tiles.map((tile, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Tile__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
3910
- character: tile.character,
3911
- className: (_PlainTiles_module_scss__WEBPACK_IMPORTED_MODULE_8___default().tile),
3912
- color: tile.color,
3913
- fontFamily: fontFamily,
3914
- points: tile.points,
3915
- size: tile.size,
3916
- transform: tile.transform,
3917
- x: tile.x,
3918
- y: tile.y
3919
- }, index))
3920
- ]
3921
- });
3922
- };
3923
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlainTiles);
3924
-
3925
- __webpack_async_result__();
3926
- } catch(e) { __webpack_async_result__(e); } });
3927
-
3928
- /***/ }),
3929
-
3930
- /***/ 31915:
3931
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3932
-
3933
- "use strict";
3934
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3935
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3936
- /* harmony export */ });
3937
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
3938
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3939
-
3940
- const Tile = ({ character , className , color , fontFamily , points , size , transform , x , y })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", {
3941
- className: className,
3942
- transform: transform,
3943
- children: [
3944
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
3945
- fill: color,
3946
- height: size,
3947
- rx: size * 0.15,
3948
- width: size,
3949
- x: x,
3950
- y: y
3951
- }),
3952
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("text", {
3953
- dominantBaseline: "central",
3954
- fontFamily: fontFamily,
3955
- fontSize: size * 0.6,
3956
- fontWeight: "bold",
3957
- textAnchor: "middle",
3958
- x: x + size / 2,
3959
- y: y + size / 2,
3960
- children: character
3961
- }),
3962
- typeof points === "number" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("text", {
3963
- dominantBaseline: "text-after-edge",
3964
- fontFamily: fontFamily,
3965
- fontSize: size * 0.25,
3966
- fontWeight: "bold",
3967
- textAnchor: "end",
3968
- x: x + size * 0.9,
3969
- y: y + size * 0.95,
3970
- children: points
3971
- })
3972
- ]
3973
- });
3974
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Tile);
3975
-
3976
-
3977
- /***/ }),
3978
-
3979
- /***/ 65925:
3980
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
3981
-
3982
- "use strict";
3983
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3984
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3985
- /* harmony export */ "Z": () => (/* reexport safe */ _PlainTiles__WEBPACK_IMPORTED_MODULE_0__.Z)
3986
- /* harmony export */ });
3987
- /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32897);
3988
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_PlainTiles__WEBPACK_IMPORTED_MODULE_0__]);
3989
- _PlainTiles__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3990
-
3991
-
3992
- __webpack_async_result__();
3993
- } catch(e) { __webpack_async_result__(e); } });
3994
-
3995
- /***/ }),
3996
-
3997
- /***/ 14491:
3700
+ /***/ 83601:
3998
3701
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3999
3702
 
4000
3703
  "use strict";
4001
3704
 
4002
3705
  // EXPORTS
4003
3706
  __webpack_require__.d(__webpack_exports__, {
4004
- "Qb": () => (/* reexport */ lib_createPlainTiles),
4005
- "kR": () => (/* reexport */ lib_getViewbox)
3707
+ "Z": () => (/* reexport */ PlainTiles_PlainTiles)
4006
3708
  });
4007
3709
 
4008
- // UNUSED EXPORTS: createPlainTile, getX, getY, randomize
4009
-
3710
+ // EXTERNAL MODULE: external "react/jsx-runtime"
3711
+ var jsx_runtime_ = __webpack_require__(20997);
3712
+ // EXTERNAL MODULE: external "classnames"
3713
+ var external_classnames_ = __webpack_require__(59003);
3714
+ var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
3715
+ // EXTERNAL MODULE: external "react"
3716
+ var external_react_ = __webpack_require__(16689);
4010
3717
  // EXTERNAL MODULE: ../configs/build/index.js
4011
3718
  var build = __webpack_require__(89418);
4012
3719
  // EXTERNAL MODULE: ../types/build/index.js
@@ -4101,6 +3808,87 @@ const getViewbox = (content)=>{
4101
3808
 
4102
3809
 
4103
3810
 
3811
+ // EXTERNAL MODULE: ./src/components/PlainTiles/PlainTiles.module.scss
3812
+ var PlainTiles_module = __webpack_require__(25891);
3813
+ var PlainTiles_module_default = /*#__PURE__*/__webpack_require__.n(PlainTiles_module);
3814
+ ;// CONCATENATED MODULE: ./src/components/PlainTiles/Tile.tsx
3815
+
3816
+ const Tile = ({ character , className , color , points , size , transform , x , y })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)("g", {
3817
+ className: className,
3818
+ transform: transform,
3819
+ children: [
3820
+ /*#__PURE__*/ jsx_runtime_.jsx("rect", {
3821
+ fill: color,
3822
+ height: size,
3823
+ rx: size * 0.15,
3824
+ width: size,
3825
+ x: x,
3826
+ y: y
3827
+ }),
3828
+ /*#__PURE__*/ jsx_runtime_.jsx("text", {
3829
+ dominantBaseline: "central",
3830
+ fontSize: size * 0.6,
3831
+ fontWeight: "bold",
3832
+ textAnchor: "middle",
3833
+ x: x + size / 2,
3834
+ y: y + size / 2,
3835
+ children: character
3836
+ }),
3837
+ typeof points === "number" && /*#__PURE__*/ jsx_runtime_.jsx("text", {
3838
+ dominantBaseline: "text-after-edge",
3839
+ fontSize: size * 0.25,
3840
+ fontWeight: "bold",
3841
+ textAnchor: "end",
3842
+ x: x + size * 0.9,
3843
+ y: y + size * 0.95,
3844
+ children: points
3845
+ })
3846
+ ]
3847
+ });
3848
+ /* harmony default export */ const PlainTiles_Tile = (Tile);
3849
+
3850
+ ;// CONCATENATED MODULE: ./src/components/PlainTiles/PlainTiles.tsx
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
3857
+ const PlainTiles = ({ className , color , content , dropShadow , showPoints , style , wave })=>{
3858
+ const tiles = (0,external_react_.useMemo)(()=>lib_createPlainTiles({
3859
+ color,
3860
+ content,
3861
+ showPoints
3862
+ }), [
3863
+ color,
3864
+ content,
3865
+ showPoints
3866
+ ]);
3867
+ return /*#__PURE__*/ jsx_runtime_.jsx("svg", {
3868
+ className: external_classnames_default()(className, {
3869
+ [(PlainTiles_module_default()).dropShadow]: dropShadow,
3870
+ [(PlainTiles_module_default()).wave]: wave
3871
+ }),
3872
+ style: style,
3873
+ viewBox: lib_getViewbox(content),
3874
+ xmlns: "http://www.w3.org/2000/svg",
3875
+ children: tiles.map((tile, index)=>/*#__PURE__*/ jsx_runtime_.jsx(PlainTiles_Tile, {
3876
+ character: tile.character,
3877
+ className: (PlainTiles_module_default()).tile,
3878
+ color: tile.color,
3879
+ points: tile.points,
3880
+ size: tile.size,
3881
+ transform: tile.transform,
3882
+ x: tile.x,
3883
+ y: tile.y
3884
+ }, index))
3885
+ });
3886
+ };
3887
+ /* harmony default export */ const PlainTiles_PlainTiles = (PlainTiles);
3888
+
3889
+ ;// CONCATENATED MODULE: ./src/components/PlainTiles/index.ts
3890
+
3891
+
4104
3892
 
4105
3893
  /***/ }),
4106
3894
 
@@ -4187,7 +3975,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4187
3975
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
4188
3976
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
4189
3977
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
4190
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
3978
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
4191
3979
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
4192
3980
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
4193
3981
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__);
@@ -4347,7 +4135,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4347
4135
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
4348
4136
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
4349
4137
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
4350
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
4138
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
4351
4139
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
4352
4140
  /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(96815);
4353
4141
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
@@ -4559,16 +4347,19 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4559
4347
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
4560
4348
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
4561
4349
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
4562
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
4563
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
4564
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
4565
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
4566
- /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1966);
4567
- /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(59004);
4568
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(98289);
4569
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_7__);
4570
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _Tooltip__WEBPACK_IMPORTED_MODULE_6__]);
4571
- ([state__WEBPACK_IMPORTED_MODULE_4__, _Tooltip__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4350
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4351
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4352
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
4353
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
4354
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
4355
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4356
+ /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1966);
4357
+ /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59004);
4358
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(98289);
4359
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_8__);
4360
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _Tooltip__WEBPACK_IMPORTED_MODULE_7__]);
4361
+ ([state__WEBPACK_IMPORTED_MODULE_5__, _Tooltip__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4362
+
4572
4363
 
4573
4364
 
4574
4365
 
@@ -4578,33 +4369,36 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
4578
4369
 
4579
4370
 
4580
4371
  const HeaderButton = ({ column })=>{
4581
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
4582
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
4583
- const sort = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectResultsSort */ .R);
4584
- const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_6__/* .useTooltip */ .l)(translate(column.translationKey));
4585
- const handleOrderChange = (columnId)=>{
4586
- dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .resultsSlice.actions.sort */ ._C.actions.sort(columnId));
4587
- };
4372
+ const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
4373
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
4374
+ const sort = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultsSort */ .R);
4375
+ const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_7__/* .useTooltip */ .l)(translate(column.translationKey));
4376
+ const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(()=>{
4377
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.sort */ ._C.actions.sort(column.id));
4378
+ }, [
4379
+ column.id,
4380
+ dispatch
4381
+ ]);
4588
4382
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("button", {
4589
4383
  "aria-label": translate(column.translationKey),
4590
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().headerButton), column.className),
4384
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().headerButton), column.className),
4591
4385
  type: "button",
4592
- onClick: ()=>handleOrderChange(column.id),
4386
+ onClick: handleClick,
4593
4387
  ...triggerProps,
4594
4388
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
4595
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().cell),
4389
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().cell),
4596
4390
  children: [
4597
4391
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
4598
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().headerButtonLabel),
4392
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().headerButtonLabel),
4599
4393
  children: translate(column.translationKey)
4600
4394
  }),
4601
4395
  sort.column === column.id && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
4602
4396
  children: [
4603
- 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, {
4604
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().sortIcon)
4397
+ 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, {
4398
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().sortIcon)
4605
4399
  }),
4606
- 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, {
4607
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().sortIcon)
4400
+ 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, {
4401
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_8___default().sortIcon)
4608
4402
  })
4609
4403
  ]
4610
4404
  })
@@ -4634,7 +4428,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4634
4428
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4635
4429
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4636
4430
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
4637
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
4431
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
4638
4432
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4639
4433
  /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1966);
4640
4434
  /* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29287);
@@ -4749,26 +4543,23 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4749
4543
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
4750
4544
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4751
4545
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4752
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69755);
4753
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_3__);
4754
- /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(80551);
4755
- /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_window__WEBPACK_IMPORTED_MODULE_4__);
4546
+ /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80551);
4547
+ /* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_window__WEBPACK_IMPORTED_MODULE_3__);
4548
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
4756
4549
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36743);
4757
4550
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
4758
4551
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
4759
4552
  /* harmony import */ var _EmptyState__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(77385);
4760
4553
  /* harmony import */ var _Loading__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13842);
4761
4554
  /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(74790);
4762
- /* harmony import */ var _Sizer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2537);
4763
- /* harmony import */ var _HeaderButton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(60405);
4764
- /* harmony import */ var _Result__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(77762);
4765
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(98289);
4766
- /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_16__);
4767
- /* harmony import */ var _SolveButton__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(74767);
4768
- /* harmony import */ var _useColumns__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(66120);
4769
- 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__]);
4770
- ([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__);
4771
-
4555
+ /* harmony import */ var _HeaderButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(60405);
4556
+ /* harmony import */ var _Result__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(77762);
4557
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(98289);
4558
+ /* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_15__);
4559
+ /* harmony import */ var _SolveButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(74767);
4560
+ /* harmony import */ var _useColumns__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(66120);
4561
+ 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__]);
4562
+ ([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__);
4772
4563
 
4773
4564
 
4774
4565
 
@@ -4787,6 +4578,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
4787
4578
 
4788
4579
  const Results = ({ callbacks , className , highlightedIndex })=>{
4789
4580
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
4581
+ const { resultsHeight , resultsWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
4790
4582
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectLocale */ .fN);
4791
4583
  const { direction } = i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale];
4792
4584
  const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResults */ .x5);
@@ -4802,12 +4594,14 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4802
4594
  highlightedIndex,
4803
4595
  results
4804
4596
  ]);
4805
- const [sizerRef, { height , width }] = (0,react_use__WEBPACK_IMPORTED_MODULE_3__.useMeasure)();
4806
4597
  const [listRef, setListRef] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);
4807
- const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z)();
4598
+ const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z)();
4808
4599
  const scrollToIndex = typeof highlightedIndex === "number" ? highlightedIndex : 0;
4809
- const scrollToIndexRef = (0,react_use__WEBPACK_IMPORTED_MODULE_3__.useLatest)(scrollToIndex);
4600
+ const scrollToIndexRef = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useLatest */ .dU)(scrollToIndex);
4810
4601
  const hasResults = typeof error === "undefined" && typeof results !== "undefined";
4602
+ const showInput = hasResults && results.length > 0 && !isOutdated;
4603
+ 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;
4604
+ const width = resultsWidth - 2 * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF;
4811
4605
  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
4812
4606
  // without setTimeout, the initial scrolling offset is calculated
4813
4607
  // incorrectly, as the list is not fully rendered by the browser yet
@@ -4825,57 +4619,54 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4825
4619
  scrollToIndexRef
4826
4620
  ]);
4827
4621
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
4828
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().results), className),
4622
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().results), className),
4829
4623
  children: [
4830
4624
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
4831
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().header),
4832
- children: columns.map((column)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_HeaderButton__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
4625
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().header),
4626
+ children: columns.map((column)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_HeaderButton__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
4833
4627
  column: column
4834
4628
  }, column.id))
4835
4629
  }),
4836
4630
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
4837
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().content),
4631
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().content),
4838
4632
  children: [
4839
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Sizer__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
4840
- ref: sizerRef
4841
- }),
4842
4633
  typeof error !== "undefined" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4843
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4634
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4844
4635
  variant: "error",
4845
4636
  children: error.message
4846
4637
  }),
4847
4638
  typeof error === "undefined" && typeof results === "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4848
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4639
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4849
4640
  variant: "info",
4850
4641
  children: [
4851
4642
  translate("results.empty-state.uninitialized"),
4852
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
4853
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().solveButton)
4643
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
4644
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solveButton)
4854
4645
  })
4855
4646
  ]
4856
4647
  }),
4857
4648
  hasResults && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
4858
4649
  children: [
4859
4650
  isOutdated && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4860
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4651
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4861
4652
  variant: "info",
4862
4653
  children: [
4863
4654
  translate("results.empty-state.outdated"),
4864
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
4865
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().solveButton)
4655
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
4656
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solveButton)
4866
4657
  })
4867
4658
  ]
4868
4659
  }),
4869
4660
  !isOutdated && results.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4870
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4661
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
4871
4662
  variant: "warning",
4872
4663
  children: translate("results.empty-state.no-results")
4873
4664
  }),
4874
4665
  !isOutdated && results.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
4875
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().listContainer),
4876
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_window__WEBPACK_IMPORTED_MODULE_4__.FixedSizeList, {
4877
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().list), {
4878
- [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().outdated)]: isOutdated
4666
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().listContainer),
4667
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_window__WEBPACK_IMPORTED_MODULE_3__.FixedSizeList, {
4668
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().list), {
4669
+ [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().outdated)]: isOutdated
4879
4670
  }),
4880
4671
  direction: direction,
4881
4672
  height: height,
@@ -4884,15 +4675,15 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4884
4675
  itemSize: parameters__WEBPACK_IMPORTED_MODULE_6__/* .RESULTS_ITEM_HEIGHT */ .rx,
4885
4676
  ref: setListRef,
4886
4677
  width: width,
4887
- children: _Result__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z
4678
+ children: _Result__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z
4888
4679
  })
4889
4680
  })
4890
4681
  ]
4891
4682
  })
4892
4683
  ]
4893
4684
  }),
4894
- hasResults && results.length > 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResultsInput__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
4895
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().input)
4685
+ showInput && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResultsInput__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
4686
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_15___default().input)
4896
4687
  }),
4897
4688
  isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Loading__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {})
4898
4689
  ]
@@ -5071,10 +4862,7 @@ const COLUMNS_L = [
5071
4862
  const useColumns = ()=>{
5072
4863
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectLocale */ .fN);
5073
4864
  const localeColumns = (0,_getLocaleColumns__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(i18n__WEBPACK_IMPORTED_MODULE_1__/* .LOCALE_FEATURES */ .q0[locale]);
5074
- const isLessThanXs = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<xs");
5075
- const isLessThanS = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<s");
5076
- const isLessThanM = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<m");
5077
- const isLessThanL = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQuery */ .ac)("<l");
4865
+ const { isLessThanXs , isLessThanS , isLessThanM , isLessThanL } = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQueries */ .lS)();
5078
4866
  if (isLessThanXs) {
5079
4867
  return localeColumns.filter((column)=>COLUMNS_XS.includes(column.id));
5080
4868
  }
@@ -5112,7 +4900,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5112
4900
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
5113
4901
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
5114
4902
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
5115
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
4903
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
5116
4904
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5117
4905
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60066);
5118
4906
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__);
@@ -5208,44 +4996,6 @@ const SeoMessage = ()=>/*#__PURE__*/ jsx_runtime_.jsx("p", {
5208
4996
 
5209
4997
 
5210
4998
 
5211
- /***/ }),
5212
-
5213
- /***/ 2537:
5214
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5215
-
5216
- "use strict";
5217
-
5218
- // EXPORTS
5219
- __webpack_require__.d(__webpack_exports__, {
5220
- "Z": () => (/* reexport */ Sizer_Sizer)
5221
- });
5222
-
5223
- // EXTERNAL MODULE: external "react/jsx-runtime"
5224
- var jsx_runtime_ = __webpack_require__(20997);
5225
- // EXTERNAL MODULE: external "classnames"
5226
- var external_classnames_ = __webpack_require__(59003);
5227
- var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
5228
- // EXTERNAL MODULE: external "react"
5229
- var external_react_ = __webpack_require__(16689);
5230
- // EXTERNAL MODULE: ./src/components/Sizer/Sizer.module.scss
5231
- var Sizer_module = __webpack_require__(76872);
5232
- var Sizer_module_default = /*#__PURE__*/__webpack_require__.n(Sizer_module);
5233
- ;// CONCATENATED MODULE: ./src/components/Sizer/Sizer.tsx
5234
-
5235
-
5236
-
5237
-
5238
- const Sizer = /*#__PURE__*/ (0,external_react_.forwardRef)(({ className , ...props }, ref)=>/*#__PURE__*/ jsx_runtime_.jsx("div", {
5239
- className: external_classnames_default()((Sizer_module_default()).sizer, className),
5240
- ref: ref,
5241
- ...props
5242
- }));
5243
- /* harmony default export */ const Sizer_Sizer = (Sizer);
5244
-
5245
- ;// CONCATENATED MODULE: ./src/components/Sizer/index.ts
5246
-
5247
-
5248
-
5249
4999
  /***/ }),
5250
5000
 
5251
5001
  /***/ 45659:
@@ -5264,24 +5014,19 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5264
5014
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
5265
5015
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
5266
5016
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
5267
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
5268
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
5269
- /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
5270
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
5271
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
5272
- /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15982);
5273
- /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17587);
5274
- /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76195);
5275
- /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35917);
5276
- /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(95937);
5277
- /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(96813);
5278
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(99260);
5279
- /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(41674);
5280
- /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15__);
5281
- 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__]);
5282
- ([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__);
5283
-
5284
-
5017
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
5018
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5019
+ /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15982);
5020
+ /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17587);
5021
+ /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(76195);
5022
+ /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35917);
5023
+ /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95937);
5024
+ /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(96813);
5025
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(99260);
5026
+ /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(41674);
5027
+ /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13__);
5028
+ 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__]);
5029
+ ([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__);
5285
5030
 
5286
5031
 
5287
5032
 
@@ -5296,34 +5041,23 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hook
5296
5041
 
5297
5042
 
5298
5043
 
5299
- // eslint-disable-next-line max-statements
5300
- const Solver = ({ className , height , width , onShowResults })=>{
5044
+ const Solver = ({ className , onShowResults })=>{
5301
5045
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
5302
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
5303
- const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useIsTouchDevice */ .YQ)();
5304
- const { columnWidth , componentsSpacing , isBoardFullWidth , showColumn , showCompactControls , showFloatingSolveButton } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
5305
- const config = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectConfig */ .$o);
5306
- const error = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSolveError */ .Rn);
5307
- const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectAreResultsOutdated */ .Mj);
5308
- const resultCandidate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResultCandidate */ .Xk);
5309
- const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResults */ .x5);
5310
- const [bottomContainerRef, { height: bottomContainerHeight }] = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useMeasure)();
5311
- const maxBoardWidth = width - columnWidth - (showColumn ? componentsSpacing : 0) - 2 * componentsSpacing;
5312
- const maxBoardHeight = isBoardFullWidth ? Number.POSITIVE_INFINITY : Math.max(height - bottomContainerHeight, 0);
5046
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
5047
+ const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useIsTouchDevice */ .YQ)();
5048
+ const { cellSize , maxControlsWidth , showCompactControls , showFloatingSolveButton , tileSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
5049
+ const error = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectSolveError */ .Rn);
5050
+ const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectAreResultsOutdated */ .Mj);
5051
+ const resultCandidate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultCandidate */ .Xk);
5052
+ const results = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResults */ .x5);
5313
5053
  const [bestResult] = results || [];
5314
- const cellWidth = (maxBoardWidth - (config.boardWidth + 1) * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF) / config.boardWidth;
5315
- const cellHeight = (maxBoardHeight - (config.boardHeight + 1) * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF) / config.boardHeight;
5316
- const cellSize = Math.min(cellWidth, cellHeight);
5317
- 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);
5318
- 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);
5319
- const maxControlsWidth = tileSize * config.maximumCharactersCount + 2 * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF;
5320
5054
  const touchCallbacks = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>({
5321
5055
  onClick: (result)=>{
5322
5056
  const isSelected = result === resultCandidate;
5323
5057
  if (isSelected) {
5324
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5058
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5325
5059
  } else {
5326
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5060
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5327
5061
  }
5328
5062
  }
5329
5063
  }), [
@@ -5332,19 +5066,19 @@ const Solver = ({ className , height , width , onShowResults })=>{
5332
5066
  ]);
5333
5067
  const mouseCallbacks = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>({
5334
5068
  onBlur: ()=>{
5335
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5069
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5336
5070
  },
5337
5071
  onClick: (result)=>{
5338
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5072
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.applyResult */ ._C.actions.applyResult(result));
5339
5073
  },
5340
5074
  onFocus: (result)=>{
5341
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5075
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5342
5076
  },
5343
5077
  onMouseEnter: (result)=>{
5344
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5078
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(result));
5345
5079
  },
5346
5080
  onMouseLeave: ()=>{
5347
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5081
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(null));
5348
5082
  }
5349
5083
  }), [
5350
5084
  dispatch
@@ -5352,11 +5086,11 @@ const Solver = ({ className , height , width , onShowResults })=>{
5352
5086
  const callbacks = isTouchDevice ? touchCallbacks : mouseCallbacks;
5353
5087
  const handleSubmit = (event)=>{
5354
5088
  event.preventDefault();
5355
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .solveSlice.actions.submit */ .TP.actions.submit());
5089
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .solveSlice.actions.submit */ .TP.actions.submit());
5356
5090
  };
5357
5091
  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
5358
5092
  if (showCompactControls && bestResult && !isOutdated) {
5359
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(bestResult));
5093
+ dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .resultsSlice.actions.changeResultCandidate */ ._C.actions.changeResultCandidate(bestResult));
5360
5094
  }
5361
5095
  }, [
5362
5096
  bestResult,
@@ -5365,43 +5099,43 @@ const Solver = ({ className , height , width , onShowResults })=>{
5365
5099
  isOutdated
5366
5100
  ]);
5367
5101
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5368
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solver), className),
5102
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().solver), className),
5369
5103
  children: [
5370
5104
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
5371
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().container),
5105
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().container),
5372
5106
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5373
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().content),
5107
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().content),
5374
5108
  children: [
5375
5109
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
5376
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().boardContainer),
5110
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().boardContainer),
5377
5111
  onSubmit: handleSubmit,
5378
5112
  children: [
5379
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Board__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
5380
- cellSize: cellSizeSafe,
5381
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().board)
5113
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Board__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
5114
+ cellSize: cellSize,
5115
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().board)
5382
5116
  }),
5383
5117
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
5384
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().submitInput),
5118
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().submitInput),
5385
5119
  tabIndex: -1,
5386
5120
  type: "submit"
5387
5121
  })
5388
5122
  ]
5389
5123
  }),
5390
5124
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5391
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().column),
5125
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().column),
5392
5126
  children: [
5393
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Results__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
5127
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Results__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
5394
5128
  callbacks: callbacks,
5395
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().results)
5129
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().results)
5396
5130
  }),
5397
5131
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5398
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionaryContainer),
5132
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().dictionaryContainer),
5399
5133
  children: [
5400
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Dictionary__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
5401
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionary)
5134
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Dictionary__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5135
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().dictionary)
5402
5136
  }),
5403
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_DictionaryInput__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
5404
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionaryInput)
5137
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_DictionaryInput__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
5138
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().dictionaryInput)
5405
5139
  })
5406
5140
  ]
5407
5141
  })
@@ -5411,41 +5145,40 @@ const Solver = ({ className , height , width , onShowResults })=>{
5411
5145
  })
5412
5146
  }),
5413
5147
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
5414
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().bottomContainer),
5415
- ref: bottomContainerRef,
5148
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().bottomContainer),
5416
5149
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5417
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().bottomContent),
5150
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().bottomContent),
5418
5151
  children: [
5419
5152
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
5420
5153
  onSubmit: handleSubmit,
5421
5154
  children: [
5422
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Rack__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
5423
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().rack),
5155
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Rack__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
5156
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().rack),
5424
5157
  tileSize: tileSize
5425
5158
  }),
5426
5159
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
5427
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().submitInput),
5160
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().submitInput),
5428
5161
  tabIndex: -1,
5429
5162
  type: "submit"
5430
5163
  })
5431
5164
  ]
5432
5165
  }),
5433
5166
  showCompactControls && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5434
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().controls),
5167
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().controls),
5435
5168
  style: {
5436
5169
  maxWidth: maxControlsWidth
5437
5170
  },
5438
5171
  children: [
5439
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_14__/* .ResultCandidatePicker */ .WI, {
5172
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_12__/* .ResultCandidatePicker */ .WI, {
5440
5173
  onResultClick: onShowResults
5441
5174
  }),
5442
- error && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5443
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
5175
+ error && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
5176
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
5444
5177
  variant: "error",
5445
5178
  children: error.message
5446
5179
  }),
5447
- results && results.length === 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5448
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
5180
+ results && results.length === 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
5181
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
5449
5182
  variant: "warning",
5450
5183
  children: translate("results.empty-state.no-results")
5451
5184
  })
@@ -5454,14 +5187,14 @@ const Solver = ({ className , height , width , onShowResults })=>{
5454
5187
  ]
5455
5188
  })
5456
5189
  }),
5457
- showFloatingSolveButton && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_14__/* .FloatingSolveButton */ .DY, {
5458
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solve),
5190
+ showFloatingSolveButton && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_12__/* .FloatingSolveButton */ .DY, {
5191
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().solve),
5459
5192
  onClick: handleSubmit
5460
5193
  })
5461
5194
  ]
5462
5195
  });
5463
5196
  };
5464
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Solver);
5197
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(Solver));
5465
5198
 
5466
5199
  __webpack_async_result__();
5467
5200
  } catch(e) { __webpack_async_result__(e); } });
@@ -5483,7 +5216,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5483
5216
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
5484
5217
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
5485
5218
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
5486
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
5219
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
5487
5220
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5488
5221
  /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83900);
5489
5222
  /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33538);
@@ -5874,128 +5607,6 @@ _Spinner__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (
5874
5607
  __webpack_async_result__();
5875
5608
  } catch(e) { __webpack_async_result__(e); } });
5876
5609
 
5877
- /***/ }),
5878
-
5879
- /***/ 8984:
5880
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5881
-
5882
- "use strict";
5883
-
5884
- // EXPORTS
5885
- __webpack_require__.d(__webpack_exports__, {
5886
- "Z": () => (/* reexport */ SplashScreen_SplashScreen)
5887
- });
5888
-
5889
- // EXTERNAL MODULE: external "react/jsx-runtime"
5890
- var jsx_runtime_ = __webpack_require__(20997);
5891
- // EXTERNAL MODULE: external "classnames"
5892
- var external_classnames_ = __webpack_require__(59003);
5893
- var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
5894
- // EXTERNAL MODULE: ./src/components/SplashScreen/SplashScreen.module.scss
5895
- var SplashScreen_module = __webpack_require__(37675);
5896
- var SplashScreen_module_default = /*#__PURE__*/__webpack_require__.n(SplashScreen_module);
5897
- ;// CONCATENATED MODULE: ./src/components/SplashScreen/SplashScreen.tsx
5898
-
5899
-
5900
-
5901
- const SplashScreen = ({ children , className , contentClassName , onAnimationEnd })=>/*#__PURE__*/ jsx_runtime_.jsx("div", {
5902
- className: external_classnames_default()((SplashScreen_module_default()).splashScreen, className),
5903
- onAnimationEnd: onAnimationEnd,
5904
- children: /*#__PURE__*/ jsx_runtime_.jsx("div", {
5905
- className: external_classnames_default()((SplashScreen_module_default()).content, contentClassName),
5906
- children: children
5907
- })
5908
- });
5909
- /* harmony default export */ const SplashScreen_SplashScreen = (SplashScreen);
5910
-
5911
- ;// CONCATENATED MODULE: ./src/components/SplashScreen/index.ts
5912
-
5913
-
5914
-
5915
- /***/ }),
5916
-
5917
- /***/ 73289:
5918
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5919
-
5920
- "use strict";
5921
-
5922
- // EXPORTS
5923
- __webpack_require__.d(__webpack_exports__, {
5924
- "Z": () => (/* reexport */ SvgFontCss_SvgFontCss)
5925
- });
5926
-
5927
- // EXTERNAL MODULE: external "react/jsx-runtime"
5928
- var jsx_runtime_ = __webpack_require__(20997);
5929
- ;// CONCATENATED MODULE: ./src/components/SvgFontCss/createCss.ts
5930
- const importUrl = // eslint-disable-next-line max-len
5931
- "https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Open+Sans:wght@400;700&family=Vazirmatn:wght@300;400;700&family=Roboto+Mono&display=swap";
5932
- const createCss = (fontFamily)=>`@import url('${importUrl}');
5933
-
5934
- text {
5935
- font-family: '${fontFamily}';
5936
- }`;
5937
- /* harmony default export */ const SvgFontCss_createCss = (createCss);
5938
-
5939
- ;// CONCATENATED MODULE: ./src/components/SvgFontCss/SvgFontCss.tsx
5940
-
5941
-
5942
- const SvgFontCss = ({ fontFamily })=>{
5943
- // eslint-disable-next-line react/no-danger
5944
- return /*#__PURE__*/ jsx_runtime_.jsx("style", {
5945
- type: "text/css",
5946
- dangerouslySetInnerHTML: {
5947
- __html: SvgFontCss_createCss(fontFamily)
5948
- }
5949
- });
5950
- };
5951
- /* harmony default export */ const SvgFontCss_SvgFontCss = (SvgFontCss);
5952
-
5953
- ;// CONCATENATED MODULE: ./src/components/SvgFontCss/index.ts
5954
-
5955
-
5956
-
5957
- /***/ }),
5958
-
5959
- /***/ 33956:
5960
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5961
-
5962
- "use strict";
5963
-
5964
- // EXPORTS
5965
- __webpack_require__.d(__webpack_exports__, {
5966
- "Z": () => (/* reexport */ SvgFontFix_SvgFontFix)
5967
- });
5968
-
5969
- // EXTERNAL MODULE: external "react/jsx-runtime"
5970
- var jsx_runtime_ = __webpack_require__(20997);
5971
- // EXTERNAL MODULE: ./src/i18n/index.ts + 8 modules
5972
- var i18n = __webpack_require__(36743);
5973
- // EXTERNAL MODULE: ./src/components/SvgFontCss/index.ts + 2 modules
5974
- var SvgFontCss = __webpack_require__(73289);
5975
- // EXTERNAL MODULE: ./src/components/SvgFontFix/SvgFontFix.module.scss
5976
- var SvgFontFix_module = __webpack_require__(35516);
5977
- var SvgFontFix_module_default = /*#__PURE__*/__webpack_require__.n(SvgFontFix_module);
5978
- ;// CONCATENATED MODULE: ./src/components/SvgFontFix/SvgFontFix.tsx
5979
-
5980
-
5981
-
5982
-
5983
- const SvgFontFix = ()=>{
5984
- const fontFamilies = Array.from(new Set(Object.values(i18n/* LOCALE_FEATURES */.q0).map(({ fontFamily })=>fontFamily)));
5985
- return /*#__PURE__*/ jsx_runtime_.jsx("svg", {
5986
- className: (SvgFontFix_module_default()).svgFontFix,
5987
- xmlns: "http://www.w3.org/2000/svg",
5988
- children: fontFamilies.map((fontFamily)=>/*#__PURE__*/ jsx_runtime_.jsx(SvgFontCss/* default */.Z, {
5989
- fontFamily: fontFamily
5990
- }, fontFamily))
5991
- });
5992
- };
5993
- /* harmony default export */ const SvgFontFix_SvgFontFix = (SvgFontFix);
5994
-
5995
- ;// CONCATENATED MODULE: ./src/components/SvgFontFix/index.ts
5996
-
5997
-
5998
-
5999
5610
  /***/ }),
6000
5611
 
6001
5612
  /***/ 10579:
@@ -6013,7 +5624,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6013
5624
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
6014
5625
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6015
5626
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
6016
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
5627
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
6017
5628
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
6018
5629
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
6019
5630
  /* harmony import */ var _TilePure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83147);
@@ -6053,10 +5664,12 @@ const Tile = ({ "aria-label": ariaLabel , autoFocus , className , character =""
6053
5664
  const isEmpty = !character || character === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_2__.EMPTY_CELL;
6054
5665
  const canShowPoints = showTilePoints && (!isEmpty || isBlank) && typeof points !== "undefined";
6055
5666
  const pointsFormatted = typeof points === "number" ? points.toLocaleString(locale) : "";
6056
- const handleKeyDown = (event)=>{
5667
+ const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
6057
5668
  ref.current?.select();
6058
5669
  onKeyDown(event);
6059
- };
5670
+ }, [
5671
+ onKeyDown
5672
+ ]);
6060
5673
  (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{
6061
5674
  if (autoFocus && ref.current) {
6062
5675
  ref.current.focus();
@@ -6228,7 +5841,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6228
5841
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
6229
5842
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6230
5843
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
6231
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
5844
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
6232
5845
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(53229);
6233
5846
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__);
6234
5847
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_4__]);
@@ -6352,21 +5965,19 @@ __webpack_async_result__();
6352
5965
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6353
5966
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6354
5967
  /* harmony export */ "Ct": () => (/* reexport safe */ _Badge__WEBPACK_IMPORTED_MODULE_1__.Z),
6355
- /* harmony export */ "Ex": () => (/* reexport safe */ _Progress__WEBPACK_IMPORTED_MODULE_17__.Z),
6356
- /* harmony export */ "ME": () => (/* reexport safe */ _Solver__WEBPACK_IMPORTED_MODULE_24__.Z),
6357
- /* harmony export */ "QR": () => (/* reexport safe */ _SeoMessage__WEBPACK_IMPORTED_MODULE_22__.Z),
5968
+ /* harmony export */ "Ex": () => (/* reexport safe */ _Progress__WEBPACK_IMPORTED_MODULE_16__.Z),
5969
+ /* harmony export */ "ME": () => (/* reexport safe */ _Solver__WEBPACK_IMPORTED_MODULE_22__.Z),
5970
+ /* harmony export */ "QR": () => (/* reexport safe */ _SeoMessage__WEBPACK_IMPORTED_MODULE_21__.Z),
6358
5971
  /* harmony export */ "TR": () => (/* reexport safe */ _Logo__WEBPACK_IMPORTED_MODULE_11__.Z),
6359
- /* harmony export */ "TX": () => (/* reexport safe */ _NotFound__WEBPACK_IMPORTED_MODULE_15__.Z),
5972
+ /* harmony export */ "TX": () => (/* reexport safe */ _NotFound__WEBPACK_IMPORTED_MODULE_14__.Z),
6360
5973
  /* harmony export */ "Xy": () => (/* reexport safe */ _Dictionary__WEBPACK_IMPORTED_MODULE_5__.Z),
6361
- /* harmony export */ "Y8": () => (/* reexport safe */ _Radio__WEBPACK_IMPORTED_MODULE_19__.Z),
5974
+ /* harmony export */ "Y8": () => (/* reexport safe */ _Radio__WEBPACK_IMPORTED_MODULE_18__.Z),
6362
5975
  /* harmony export */ "Z$": () => (/* reexport safe */ _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__.Z),
6363
- /* harmony export */ "_m": () => (/* reexport safe */ _NavButtons__WEBPACK_IMPORTED_MODULE_14__.Z),
6364
- /* harmony export */ "hL": () => (/* reexport safe */ _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_12__.Z),
6365
- /* harmony export */ "n9": () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_29__.Z),
5976
+ /* harmony export */ "_m": () => (/* reexport safe */ _NavButtons__WEBPACK_IMPORTED_MODULE_13__.Z),
5977
+ /* harmony export */ "n9": () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_24__.Z),
6366
5978
  /* harmony export */ "sr": () => (/* reexport safe */ _Key__WEBPACK_IMPORTED_MODULE_9__.Z),
6367
- /* harmony export */ "u9": () => (/* reexport safe */ _Results__WEBPACK_IMPORTED_MODULE_20__.Z),
6368
- /* harmony export */ "u_": () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_13__.Z),
6369
- /* harmony export */ "uz": () => (/* reexport safe */ _SvgFontFix__WEBPACK_IMPORTED_MODULE_28__.Z),
5979
+ /* harmony export */ "u9": () => (/* reexport safe */ _Results__WEBPACK_IMPORTED_MODULE_19__.Z),
5980
+ /* harmony export */ "u_": () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_12__.Z),
6370
5981
  /* harmony export */ "zx": () => (/* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_3__.Z)
6371
5982
  /* harmony export */ });
6372
5983
  /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15982);
@@ -6380,33 +5991,23 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6380
5991
  /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(95975);
6381
5992
  /* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34535);
6382
5993
  /* harmony import */ var _Loading__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13842);
6383
- /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8023);
6384
- /* harmony import */ var _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(6436);
6385
- /* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(59187);
6386
- /* harmony import */ var _NavButtons__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(90374);
6387
- /* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(24442);
6388
- /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(65925);
6389
- /* harmony import */ var _Progress__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(29348);
6390
- /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(95937);
6391
- /* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(71739);
6392
- /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(96813);
6393
- /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(74790);
6394
- /* harmony import */ var _SeoMessage__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(84203);
6395
- /* harmony import */ var _Sizer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(2537);
6396
- /* harmony import */ var _Solver__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(65437);
6397
- /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(33538);
6398
- /* harmony import */ var _SplashScreen__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(8984);
6399
- /* harmony import */ var _SvgFontCss__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(73289);
6400
- /* harmony import */ var _SvgFontFix__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(33956);
6401
- /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(96815);
6402
- /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(59004);
6403
- 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__]);
6404
- ([_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__);
6405
-
6406
-
6407
-
6408
-
6409
-
5994
+ /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(18801);
5995
+ /* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(59187);
5996
+ /* harmony import */ var _NavButtons__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90374);
5997
+ /* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(1437);
5998
+ /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(83601);
5999
+ /* harmony import */ var _Progress__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29348);
6000
+ /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(95937);
6001
+ /* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(71739);
6002
+ /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(96813);
6003
+ /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(74790);
6004
+ /* harmony import */ var _SeoMessage__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(84203);
6005
+ /* harmony import */ var _Solver__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(65437);
6006
+ /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(33538);
6007
+ /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(96815);
6008
+ /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(59004);
6009
+ 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__, _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_24__, _Tooltip__WEBPACK_IMPORTED_MODULE_25__]);
6010
+ ([_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__, _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_24__, _Tooltip__WEBPACK_IMPORTED_MODULE_25__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6410
6011
 
6411
6012
 
6412
6013
 
@@ -6446,22 +6047,36 @@ __webpack_async_result__();
6446
6047
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6447
6048
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6448
6049
  /* harmony export */ "Ft": () => (/* reexport safe */ _useAppLayout__WEBPACK_IMPORTED_MODULE_0__.Z),
6449
- /* harmony export */ "YQ": () => (/* reexport safe */ _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__.Z),
6450
- /* harmony export */ "ZK": () => (/* reexport safe */ _useLanguage__WEBPACK_IMPORTED_MODULE_3__.Z),
6451
- /* harmony export */ "_": () => (/* reexport safe */ _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__.Z),
6452
- /* harmony export */ "ac": () => (/* reexport safe */ _useMediaQuery__WEBPACK_IMPORTED_MODULE_5__.Z),
6050
+ /* harmony export */ "YQ": () => (/* reexport safe */ _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_3__.Z),
6051
+ /* harmony export */ "ZK": () => (/* reexport safe */ _useLanguage__WEBPACK_IMPORTED_MODULE_4__.Z),
6052
+ /* harmony export */ "_": () => (/* reexport safe */ _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__.Z),
6053
+ /* harmony export */ "dU": () => (/* reexport safe */ _useLatest__WEBPACK_IMPORTED_MODULE_5__.Z),
6453
6054
  /* harmony export */ "gm": () => (/* reexport safe */ _useDirection__WEBPACK_IMPORTED_MODULE_1__.Z),
6454
- /* harmony export */ "vI": () => (/* reexport safe */ _usePortal__WEBPACK_IMPORTED_MODULE_6__.Z)
6055
+ /* harmony export */ "lS": () => (/* reexport safe */ _useMediaQueries__WEBPACK_IMPORTED_MODULE_8__.Z),
6056
+ /* harmony export */ "qR": () => (/* reexport safe */ _useEffectOnce__WEBPACK_IMPORTED_MODULE_2__.Z),
6057
+ /* harmony export */ "vI": () => (/* reexport safe */ _usePortal__WEBPACK_IMPORTED_MODULE_11__.Z)
6455
6058
  /* harmony export */ });
6456
6059
  /* harmony import */ var _useAppLayout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95682);
6457
6060
  /* harmony import */ var _useDirection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43385);
6458
- /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41374);
6459
- /* harmony import */ var _useLanguage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86969);
6460
- /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46465);
6461
- /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78909);
6462
- /* harmony import */ var _usePortal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4371);
6463
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useLocalStorage__WEBPACK_IMPORTED_MODULE_4__]);
6464
- _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6061
+ /* harmony import */ var _useEffectOnce__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13041);
6062
+ /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41374);
6063
+ /* harmony import */ var _useLanguage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86969);
6064
+ /* harmony import */ var _useLatest__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71814);
6065
+ /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19272);
6066
+ /* harmony import */ var _useMedia__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40234);
6067
+ /* harmony import */ var _useMediaQueries__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37205);
6068
+ /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(78909);
6069
+ /* harmony import */ var _useOnWindowResize__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14884);
6070
+ /* harmony import */ var _usePortal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4371);
6071
+ /* harmony import */ var _useViewportSize__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(21995);
6072
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useAppLayout__WEBPACK_IMPORTED_MODULE_0__, _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__]);
6073
+ ([_useAppLayout__WEBPACK_IMPORTED_MODULE_0__, _useLocalStorage__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6074
+
6075
+
6076
+
6077
+
6078
+
6079
+
6465
6080
 
6466
6081
 
6467
6082
 
@@ -6476,43 +6091,77 @@ __webpack_async_result__();
6476
6091
  /***/ }),
6477
6092
 
6478
6093
  /***/ 95682:
6479
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6094
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
6480
6095
 
6481
6096
  "use strict";
6097
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6482
6098
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6483
6099
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6484
6100
  /* harmony export */ });
6485
6101
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64534);
6486
- /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41374);
6487
- /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78909);
6102
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83067);
6103
+ /* harmony import */ var _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41374);
6104
+ /* harmony import */ var _useMediaQueries__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(37205);
6105
+ /* harmony import */ var _useViewportSize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21995);
6106
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_1__]);
6107
+ state__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6108
+ /* eslint-disable max-statements */
6109
+
6488
6110
 
6489
6111
 
6490
6112
 
6491
6113
  const useAppLayout = ()=>{
6492
- const isTouchDevice = (0,_useIsTouchDevice__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)();
6493
- const isLessThanXs = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<xs");
6494
- const isLessThanS = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<s");
6495
- const isLessThanM = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<m");
6496
- const isLessThanL = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<l");
6497
- const isLessThanXl = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)("<xl");
6114
+ const { viewportHeight , viewportWidth } = (0,_useViewportSize__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)();
6115
+ const config = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectConfig */ .$o);
6116
+ const isTouchDevice = (0,_useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)();
6117
+ const { isLessThanXs , isLessThanS , isLessThanM , isLessThanL , isLessThanXl } = (0,_useMediaQueries__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)();
6118
+ const isBoardFullWidth = isLessThanM;
6119
+ const showResultCandidatePicker = isLessThanL;
6120
+ const componentsSpacing = isLessThanXl ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING_SMALL */ .op : parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING */ .tr;
6498
6121
  const showColumn = !isLessThanL;
6122
+ const columnWidth = showColumn ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .SOLVER_COLUMN_WIDTH */ .pt : 0;
6123
+ const logoHeight = isLessThanL ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .LOGO_HEIGHT_SMALL */ .t : parameters__WEBPACK_IMPORTED_MODULE_0__/* .LOGO_HEIGHT */ .y7;
6124
+ const navHeight = 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .NAV_PADDING */ .t$ + logoHeight;
6125
+ const solverHeight = viewportHeight - navHeight;
6126
+ const solverWidth = viewportWidth;
6127
+ const maxBoardWidth = solverWidth - columnWidth - (showColumn ? componentsSpacing : 0) - 2 * componentsSpacing;
6128
+ 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);
6129
+ const candidatePickerHeight = showResultCandidatePicker ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .BUTTON_HEIGHT */ .FZ + componentsSpacing : 0;
6130
+ const bottomContainerHeight = candidatePickerHeight + tileSize + 2 * componentsSpacing;
6131
+ const maxBoardHeight = isBoardFullWidth ? Number.POSITIVE_INFINITY : Math.max(solverHeight - bottomContainerHeight, 0);
6132
+ const cellWidth = (maxBoardWidth - (config.boardWidth + 1) * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) / config.boardWidth;
6133
+ const cellHeight = (maxBoardHeight - (config.boardHeight + 1) * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) / config.boardHeight;
6134
+ 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);
6135
+ const boardSize = (cellSize + parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) * config.boardWidth + parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF;
6136
+ const maxControlsWidth = tileSize * config.maximumCharactersCount + 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF;
6137
+ const showResultsInModal = isLessThanL;
6138
+ const dictionaryHeight = showResultsInModal ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .DICTIONARY_HEIGHT_MOBILE */ .Rh : parameters__WEBPACK_IMPORTED_MODULE_0__/* .DICTIONARY_HEIGHT */ .n6;
6139
+ const modalWidth = isLessThanS ? viewportWidth : parameters__WEBPACK_IMPORTED_MODULE_0__/* .MODAL_WIDTH */ .iF;
6140
+ 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;
6499
6141
  return {
6142
+ actionsWidth: 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BUTTON_HEIGHT */ .FZ - parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF,
6500
6143
  animateTile: !isLessThanXs,
6501
- columnWidth: showColumn ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .SOLVER_COLUMN_WIDTH */ .pt : 0,
6502
- componentsSpacing: isLessThanXl ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING_SMALL */ .op : parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING */ .tr,
6503
- isBoardFullWidth: isLessThanM,
6144
+ cellSize,
6145
+ dictionaryHeight,
6504
6146
  isModalFullWidth: isLessThanS,
6505
- showColumn,
6147
+ logoHeight,
6148
+ logoWidth: logoHeight * parameters__WEBPACK_IMPORTED_MODULE_0__/* .LOGO_ASPECT_RATIO */ .pc,
6149
+ maxControlsWidth,
6150
+ resultsHeight,
6151
+ resultsWidth: isLessThanL ? modalWidth - 2 * componentsSpacing : parameters__WEBPACK_IMPORTED_MODULE_0__/* .SOLVER_COLUMN_WIDTH */ .pt,
6506
6152
  showCompactControls: !showColumn,
6507
6153
  showFloatingSolveButton: isTouchDevice,
6508
6154
  showKeyMap: !isTouchDevice,
6509
- showResultsInModal: isLessThanL,
6155
+ showResultsInModal,
6510
6156
  showShortNav: isLessThanS,
6511
- showTilePoints: !isLessThanXs
6157
+ showTilePoints: !isLessThanXs,
6158
+ tileSize
6512
6159
  };
6513
6160
  };
6514
6161
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useAppLayout);
6515
6162
 
6163
+ __webpack_async_result__();
6164
+ } catch(e) { __webpack_async_result__(e); } });
6516
6165
 
6517
6166
  /***/ }),
6518
6167
 
@@ -6525,11 +6174,11 @@ const useAppLayout = ()=>{
6525
6174
  /* harmony export */ });
6526
6175
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6527
6176
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6528
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10129);
6177
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65175);
6529
6178
 
6530
6179
 
6531
6180
  const useDirection = (direction)=>{
6532
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(()=>{
6181
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6533
6182
  const html = document.body.parentElement;
6534
6183
  if (!html) {
6535
6184
  return lib__WEBPACK_IMPORTED_MODULE_1__/* .noop */ .ZT;
@@ -6546,6 +6195,22 @@ const useDirection = (direction)=>{
6546
6195
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useDirection);
6547
6196
 
6548
6197
 
6198
+ /***/ }),
6199
+
6200
+ /***/ 13041:
6201
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6202
+
6203
+ "use strict";
6204
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6205
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6206
+ /* harmony export */ });
6207
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6208
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6209
+
6210
+ const useEffectOnce = (effect)=>(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(effect, []);
6211
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useEffectOnce);
6212
+
6213
+
6549
6214
  /***/ }),
6550
6215
 
6551
6216
  /***/ 41374:
@@ -6555,11 +6220,10 @@ const useDirection = (direction)=>{
6555
6220
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6556
6221
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6557
6222
  /* harmony export */ });
6558
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69755);
6559
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_0__);
6223
+ /* harmony import */ var _useMedia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40234);
6560
6224
 
6561
6225
  const useIsTouchDevice = ()=>{
6562
- return (0,react_use__WEBPACK_IMPORTED_MODULE_0__.useMedia)("(hover: none)", false);
6226
+ return (0,_useMedia__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("(hover: none)", false);
6563
6227
  };
6564
6228
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useIsTouchDevice);
6565
6229
 
@@ -6575,11 +6239,11 @@ const useIsTouchDevice = ()=>{
6575
6239
  /* harmony export */ });
6576
6240
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6577
6241
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6578
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10129);
6242
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65175);
6579
6243
 
6580
6244
 
6581
6245
  const useLanguage = (language)=>{
6582
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(()=>{
6246
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6583
6247
  const html = document.body.parentElement;
6584
6248
  if (!html) {
6585
6249
  return lib__WEBPACK_IMPORTED_MODULE_1__/* .noop */ .ZT;
@@ -6598,56 +6262,27 @@ const useLanguage = (language)=>{
6598
6262
 
6599
6263
  /***/ }),
6600
6264
 
6601
- /***/ 46465:
6602
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6603
-
6604
- "use strict";
6605
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6606
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6607
- /* harmony export */ "Z": () => (/* reexport safe */ _useLocalStorage__WEBPACK_IMPORTED_MODULE_0__.Z)
6608
- /* harmony export */ });
6609
- /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48181);
6610
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useLocalStorage__WEBPACK_IMPORTED_MODULE_0__]);
6611
- _useLocalStorage__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6612
-
6613
-
6614
- __webpack_async_result__();
6615
- } catch(e) { __webpack_async_result__(e); } });
6616
-
6617
- /***/ }),
6618
-
6619
- /***/ 48181:
6620
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6265
+ /***/ 71814:
6266
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6621
6267
 
6622
6268
  "use strict";
6623
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6624
6269
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6625
6270
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6626
6271
  /* harmony export */ });
6627
- /* harmony import */ var _useLocalStorageBoard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96831);
6628
- /* harmony import */ var _useLocalStorageConfigId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67637);
6629
- /* harmony import */ var _useLocalStorageLocale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60821);
6630
- /* harmony import */ var _useLocalStorageRack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31089);
6631
- 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__]);
6632
- ([_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__);
6633
-
6634
-
6635
-
6272
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6273
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6636
6274
 
6637
- const useLocalStorage = ()=>{
6638
- (0,_useLocalStorageRack__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(); // rack has to go first, see 14869a4
6639
- (0,_useLocalStorageBoard__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)();
6640
- (0,_useLocalStorageConfigId__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)();
6641
- (0,_useLocalStorageLocale__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)();
6275
+ const useLatest = (value)=>{
6276
+ const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value);
6277
+ ref.current = value;
6278
+ return ref;
6642
6279
  };
6643
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorage);
6280
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLatest);
6644
6281
 
6645
- __webpack_async_result__();
6646
- } catch(e) { __webpack_async_result__(e); } });
6647
6282
 
6648
6283
  /***/ }),
6649
6284
 
6650
- /***/ 96831:
6285
+ /***/ 19272:
6651
6286
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
6652
6287
 
6653
6288
  "use strict";
@@ -6657,218 +6292,173 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6657
6292
  /* harmony export */ });
6658
6293
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6659
6294
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6660
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6661
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6662
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6663
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6664
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83067);
6665
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
6666
- state__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6667
-
6668
-
6295
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83067);
6296
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_1__]);
6297
+ state__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6669
6298
 
6670
6299
 
6671
- const useLocalStorageBoard = ()=>{
6672
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6673
- const board = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_3__/* .selectBoard */ .ZO);
6674
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6675
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6676
- const persistedBoard = state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.getBoard */ .Xb.getBoard();
6677
- if (persistedBoard) {
6678
- dispatch(state__WEBPACK_IMPORTED_MODULE_3__/* .boardSlice.actions.init */ .I8.actions.init(persistedBoard));
6300
+ const useLocalStorage = ()=>{
6301
+ const autoGroupTiles = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectAutoGroupTiles */ .uz);
6302
+ const board = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectBoard */ .ZO);
6303
+ const configId = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectConfigId */ .md);
6304
+ const locale = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectLocale */ .fN);
6305
+ const rack = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectRack */ .QB);
6306
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6307
+ if (autoGroupTiles) {
6308
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setAutoGroupTiles */ .Xb.setAutoGroupTiles(autoGroupTiles);
6679
6309
  }
6680
- setIsLoaded(true);
6681
- });
6310
+ }, [
6311
+ autoGroupTiles
6312
+ ]);
6313
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6314
+ if (board) {
6315
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setBoard */ .Xb.setBoard(board);
6316
+ }
6317
+ }, [
6318
+ board
6319
+ ]);
6320
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6321
+ if (configId) {
6322
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setConfigId */ .Xb.setConfigId(configId);
6323
+ }
6324
+ }, [
6325
+ configId
6326
+ ]);
6327
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6328
+ if (locale) {
6329
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setLocale */ .Xb.setLocale(locale);
6330
+ }
6331
+ }, [
6332
+ locale
6333
+ ]);
6682
6334
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6683
- if (board && isLoaded) {
6684
- state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.setBoard */ .Xb.setBoard(board);
6335
+ if (rack) {
6336
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setRack */ .Xb.setRack(rack);
6685
6337
  }
6686
6338
  }, [
6687
- board,
6688
- isLoaded
6339
+ rack
6689
6340
  ]);
6690
6341
  };
6691
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageBoard);
6342
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorage);
6692
6343
 
6693
6344
  __webpack_async_result__();
6694
6345
  } catch(e) { __webpack_async_result__(e); } });
6695
6346
 
6696
6347
  /***/ }),
6697
6348
 
6698
- /***/ 67637:
6699
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6349
+ /***/ 40234:
6350
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6700
6351
 
6701
6352
  "use strict";
6702
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6703
6353
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6704
6354
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6705
6355
  /* harmony export */ });
6706
6356
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6707
6357
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6708
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6709
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6710
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6711
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6712
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83067);
6713
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
6714
- state__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6715
-
6716
-
6717
-
6718
6358
 
6719
- const useLocalStorageConfigId = ()=>{
6720
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6721
- const configId = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_3__/* .selectConfigId */ .md);
6722
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6723
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6724
- const persistedConfigId = state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.getConfigId */ .Xb.getConfigId();
6725
- if (persistedConfigId) {
6726
- dispatch(state__WEBPACK_IMPORTED_MODULE_3__/* .settingsSlice.actions.init */ .xj.actions.init({
6727
- configId: persistedConfigId
6728
- }));
6729
- }
6730
- setIsLoaded(true);
6731
- });
6359
+ const getInitialState = (query, defaultState)=>{
6360
+ if (typeof defaultState !== "undefined") {
6361
+ return defaultState;
6362
+ }
6363
+ if (true) {
6364
+ return false;
6365
+ }
6366
+ return window.matchMedia(query).matches;
6367
+ };
6368
+ const useMedia = (query, defaultState)=>{
6369
+ const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(getInitialState(query, defaultState));
6732
6370
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6733
- if (configId && isLoaded) {
6734
- state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.setConfigId */ .Xb.setConfigId(configId);
6735
- }
6371
+ const mediaQuery = window.matchMedia(query);
6372
+ const handleChange = ()=>{
6373
+ setState(mediaQuery.matches);
6374
+ };
6375
+ setState(mediaQuery.matches);
6376
+ mediaQuery.addEventListener("change", handleChange);
6377
+ return ()=>{
6378
+ mediaQuery.removeEventListener("change", handleChange);
6379
+ };
6736
6380
  }, [
6737
- configId,
6738
- isLoaded
6381
+ query
6739
6382
  ]);
6383
+ return state;
6740
6384
  };
6741
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageConfigId);
6385
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMedia);
6742
6386
 
6743
- __webpack_async_result__();
6744
- } catch(e) { __webpack_async_result__(e); } });
6745
6387
 
6746
6388
  /***/ }),
6747
6389
 
6748
- /***/ 60821:
6749
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6390
+ /***/ 37205:
6391
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6750
6392
 
6751
6393
  "use strict";
6752
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6753
6394
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6754
6395
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6755
6396
  /* harmony export */ });
6756
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6757
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6758
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6759
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6760
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6761
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6762
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10129);
6763
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
6764
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
6765
- state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6766
-
6767
-
6768
-
6769
-
6770
-
6771
- const useLocalStorageLocale = ()=>{
6772
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6773
- const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
6774
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6775
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6776
- const persistedLocale = state__WEBPACK_IMPORTED_MODULE_4__/* .localStorage.getLocale */ .Xb.getLocale();
6777
- if (persistedLocale) {
6778
- dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .settingsSlice.actions.init */ .xj.actions.init({
6779
- locale: persistedLocale
6780
- }));
6781
- } else {
6782
- dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .settingsSlice.actions.init */ .xj.actions.init({
6783
- locale: (0,lib__WEBPACK_IMPORTED_MODULE_3__/* .detectLocale */ .Nj)()
6784
- }));
6785
- }
6786
- setIsLoaded(true);
6787
- });
6788
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6789
- if (locale && isLoaded) {
6790
- state__WEBPACK_IMPORTED_MODULE_4__/* .localStorage.setLocale */ .Xb.setLocale(locale);
6791
- }
6792
- }, [
6793
- locale,
6794
- isLoaded
6795
- ]);
6397
+ /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78909);
6398
+
6399
+ const useMediaQueries = ()=>{
6400
+ const isLessThanXs = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<xs");
6401
+ const isLessThanS = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<s");
6402
+ const isLessThanM = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<m");
6403
+ const isLessThanL = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<l");
6404
+ const isLessThanXl = (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)("<xl");
6405
+ return {
6406
+ isLessThanXs,
6407
+ isLessThanS,
6408
+ isLessThanM,
6409
+ isLessThanL,
6410
+ isLessThanXl
6411
+ };
6796
6412
  };
6797
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageLocale);
6413
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMediaQueries);
6798
6414
 
6799
- __webpack_async_result__();
6800
- } catch(e) { __webpack_async_result__(e); } });
6801
6415
 
6802
6416
  /***/ }),
6803
6417
 
6804
- /***/ 31089:
6805
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
6418
+ /***/ 78909:
6419
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6806
6420
 
6807
6421
  "use strict";
6808
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6809
6422
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6810
6423
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6811
6424
  /* harmony export */ });
6812
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6813
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6814
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
6815
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6816
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6817
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6818
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83067);
6819
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_3__]);
6820
- state__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6821
-
6425
+ /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9744);
6426
+ /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__);
6427
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64534);
6428
+ /* harmony import */ var _useMedia__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40234);
6822
6429
 
6823
6430
 
6824
6431
 
6825
- const useLocalStorageRack = ()=>{
6826
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
6827
- const rack = (0,state__WEBPACK_IMPORTED_MODULE_3__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_3__/* .selectRack */ .QB);
6828
- const [isLoaded, setIsLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6829
- (0,react_use__WEBPACK_IMPORTED_MODULE_2__.useEffectOnce)(()=>{
6830
- const persistedRack = state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.getRack */ .Xb.getRack();
6831
- if (persistedRack) {
6832
- dispatch(state__WEBPACK_IMPORTED_MODULE_3__/* .rackSlice.actions.init */ .O_.actions.init(persistedRack));
6833
- }
6834
- setIsLoaded(true);
6835
- });
6836
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6837
- if (rack && isLoaded) {
6838
- state__WEBPACK_IMPORTED_MODULE_3__/* .localStorage.setRack */ .Xb.setRack(rack);
6839
- }
6840
- }, [
6841
- isLoaded,
6842
- rack
6843
- ]);
6432
+ const useMediaQuery = (query, defaultState)=>{
6433
+ const mediaQuery = (0,include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__.buildMediaQuery)(parameters__WEBPACK_IMPORTED_MODULE_1__/* .BREAKPOINTS */ .j$, query);
6434
+ return (0,_useMedia__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(mediaQuery, defaultState);
6844
6435
  };
6845
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLocalStorageRack);
6436
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMediaQuery);
6846
6437
 
6847
- __webpack_async_result__();
6848
- } catch(e) { __webpack_async_result__(e); } });
6849
6438
 
6850
6439
  /***/ }),
6851
6440
 
6852
- /***/ 78909:
6441
+ /***/ 14884:
6853
6442
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6854
6443
 
6855
6444
  "use strict";
6856
6445
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6857
6446
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6858
6447
  /* harmony export */ });
6859
- /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9744);
6860
- /* harmony import */ var include_media_query_builder__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__);
6861
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69755);
6862
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_1__);
6863
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64534);
6864
-
6865
-
6448
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6449
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6866
6450
 
6867
- const useMediaQuery = (query, defaultState)=>{
6868
- const mediaQuery = (0,include_media_query_builder__WEBPACK_IMPORTED_MODULE_0__.buildMediaQuery)(parameters__WEBPACK_IMPORTED_MODULE_2__/* .BREAKPOINTS */ .j$, query);
6869
- return (0,react_use__WEBPACK_IMPORTED_MODULE_1__.useMedia)(mediaQuery, defaultState);
6451
+ const useOnWindowResize = (onResize)=>{
6452
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6453
+ window.addEventListener("resize", onResize);
6454
+ return ()=>{
6455
+ window.removeEventListener("resize", onResize);
6456
+ };
6457
+ }, [
6458
+ onResize
6459
+ ]);
6870
6460
  };
6871
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useMediaQuery);
6461
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useOnWindowResize);
6872
6462
 
6873
6463
 
6874
6464
  /***/ }),
@@ -6888,7 +6478,7 @@ const useMediaQuery = (query, defaultState)=>{
6888
6478
  /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_2__);
6889
6479
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63938);
6890
6480
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_portal__WEBPACK_IMPORTED_MODULE_3__);
6891
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
6481
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
6892
6482
 
6893
6483
 
6894
6484
 
@@ -6934,6 +6524,36 @@ const usePortal = (children, { disabled =false , tagName ="div" } = {})=>{
6934
6524
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lib__WEBPACK_IMPORTED_MODULE_4__/* .canUseDom */ .J8 ? usePortal : lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT);
6935
6525
 
6936
6526
 
6527
+ /***/ }),
6528
+
6529
+ /***/ 21995:
6530
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6531
+
6532
+ "use strict";
6533
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6534
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
6535
+ /* harmony export */ });
6536
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6537
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6538
+ /* harmony import */ var _useOnWindowResize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14884);
6539
+
6540
+
6541
+ const useViewportSize = ()=>{
6542
+ const [viewportHeight, setViewportHeight] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)( true ? 0 : 0);
6543
+ const [viewportWidth, setViewportWidth] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)( true ? 0 : 0);
6544
+ const handleWindowResize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{
6545
+ setViewportHeight(window.innerHeight);
6546
+ setViewportWidth(window.innerWidth);
6547
+ }, []);
6548
+ (0,_useOnWindowResize__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(handleWindowResize);
6549
+ return {
6550
+ viewportHeight,
6551
+ viewportWidth
6552
+ };
6553
+ };
6554
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useViewportSize);
6555
+
6556
+
6937
6557
  /***/ }),
6938
6558
 
6939
6559
  /***/ 36743:
@@ -6962,48 +6582,48 @@ var i18n_module_default = /*#__PURE__*/__webpack_require__.n(i18n_module);
6962
6582
  const LOCALE_FEATURES = {
6963
6583
  [build.Locale.DE_DE]: {
6964
6584
  direction: "ltr",
6965
- fontFamily: "Open Sans",
6966
6585
  consonants: true,
6967
6586
  vowels: true
6968
6587
  },
6969
6588
  [build.Locale.EN_GB]: {
6970
6589
  direction: "ltr",
6971
- fontFamily: "Open Sans",
6972
6590
  consonants: true,
6973
6591
  vowels: true
6974
6592
  },
6975
6593
  [build.Locale.EN_US]: {
6976
6594
  direction: "ltr",
6977
- fontFamily: "Open Sans",
6978
6595
  consonants: true,
6979
6596
  vowels: true
6980
6597
  },
6981
6598
  [build.Locale.ES_ES]: {
6982
6599
  direction: "ltr",
6983
- fontFamily: "Open Sans",
6984
6600
  consonants: true,
6985
6601
  vowels: true
6986
6602
  },
6987
6603
  [build.Locale.FA_IR]: {
6988
6604
  direction: "rtl",
6989
- fontFamily: "Vazirmatn",
6990
6605
  consonants: false,
6991
6606
  vowels: false
6992
6607
  },
6993
6608
  [build.Locale.FR_FR]: {
6994
6609
  direction: "ltr",
6995
- fontFamily: "Open Sans",
6996
6610
  consonants: true,
6997
6611
  vowels: true
6998
6612
  },
6999
6613
  [build.Locale.PL_PL]: {
7000
6614
  direction: "ltr",
7001
- fontFamily: "Open Sans",
7002
6615
  consonants: true,
7003
6616
  vowels: true
7004
6617
  }
7005
6618
  };
7006
6619
  const LOCALE_FLAGS = {
6620
+ [build.Locale.DE_DE]: {
6621
+ className: (i18n_module_default()).de,
6622
+ Icon: icons/* FlagDe */.rV,
6623
+ label: "Deutsch",
6624
+ name: "German",
6625
+ value: build.Locale.DE_DE
6626
+ },
7007
6627
  [build.Locale.EN_GB]: {
7008
6628
  className: (i18n_module_default()).gb,
7009
6629
  Icon: icons/* FlagGb */.eP,
@@ -7018,6 +6638,13 @@ const LOCALE_FLAGS = {
7018
6638
  name: "English (US)",
7019
6639
  value: build.Locale.EN_US
7020
6640
  },
6641
+ [build.Locale.ES_ES]: {
6642
+ className: (i18n_module_default()).es,
6643
+ Icon: icons/* FlagEs */.d,
6644
+ label: "Espa\xf1ol",
6645
+ name: "Spanish",
6646
+ value: build.Locale.ES_ES
6647
+ },
7021
6648
  [build.Locale.FA_IR]: {
7022
6649
  className: (i18n_module_default()).fa,
7023
6650
  Icon: icons/* FlagFa */.$M,
@@ -7032,26 +6659,12 @@ const LOCALE_FLAGS = {
7032
6659
  name: "French",
7033
6660
  value: build.Locale.FR_FR
7034
6661
  },
7035
- [build.Locale.DE_DE]: {
7036
- className: (i18n_module_default()).de,
7037
- Icon: icons/* FlagDe */.rV,
7038
- label: "Deutsch",
7039
- name: "German",
7040
- value: build.Locale.DE_DE
7041
- },
7042
6662
  [build.Locale.PL_PL]: {
7043
6663
  className: (i18n_module_default()).pl,
7044
6664
  Icon: icons/* FlagPl */.fd,
7045
6665
  label: "Polski",
7046
6666
  name: "Polish",
7047
6667
  value: build.Locale.PL_PL
7048
- },
7049
- [build.Locale.ES_ES]: {
7050
- className: (i18n_module_default()).es,
7051
- Icon: icons/* FlagEs */.d,
7052
- label: "Espa\xf1ol",
7053
- name: "Spanish",
7054
- value: build.Locale.ES_ES
7055
6668
  }
7056
6669
  };
7057
6670
 
@@ -8095,20 +7708,20 @@ var SvgStar = function SvgStar(props) {
8095
7708
 
8096
7709
  /***/ }),
8097
7710
 
8098
- /***/ 10129:
7711
+ /***/ 65175:
8099
7712
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8100
7713
 
8101
7714
  "use strict";
8102
7715
 
8103
7716
  // EXPORTS
8104
7717
  __webpack_require__.d(__webpack_exports__, {
7718
+ "_g": () => (/* reexport */ lib_arrayEquals),
8105
7719
  "J8": () => (/* reexport */ lib_canUseDom),
8106
7720
  "Ri": () => (/* reexport */ lib_createArray),
8107
7721
  "DI": () => (/* reexport */ lib_createGridOf),
8108
7722
  "np": () => (/* reexport */ lib_createKeyboardNavigation),
8109
7723
  "Ml": () => (/* reexport */ lib_createNullMovingComparator),
8110
7724
  "GF": () => (/* reexport */ lib_createRegExp),
8111
- "Nj": () => (/* reexport */ lib_detectLocale),
8112
7725
  "nK": () => (/* reexport */ lib_extractCharacters),
8113
7726
  "WM": () => (/* reexport */ lib_extractInputValue),
8114
7727
  "Jp": () => (/* reexport */ lib_findCell),
@@ -8127,7 +7740,13 @@ __webpack_require__.d(__webpack_exports__, {
8127
7740
  "gV": () => (/* reexport */ lib_zipCharactersAndTiles)
8128
7741
  });
8129
7742
 
8130
- // UNUSED EXPORTS: createComparator, createKeyComparator, createStringComparator, getCellSize, getRemainingTilesCount, getTotalRemainingTilesCount, isStringArray, numberComparator, reverseComparator
7743
+ // UNUSED EXPORTS: createComparator, createKeyComparator, createStringComparator, detectLocale, getCellSize, getRemainingTilesCount, getTotalRemainingTilesCount, isStringArray, numberComparator, reverseComparator
7744
+
7745
+ ;// CONCATENATED MODULE: ./src/lib/arrayEquals.ts
7746
+ const arrayEquals = (array1, array2)=>{
7747
+ return array1.length === array2.length && array1.every((value, index)=>value === array2[index]);
7748
+ };
7749
+ /* harmony default export */ const lib_arrayEquals = (arrayEquals);
8131
7750
 
8132
7751
  ;// CONCATENATED MODULE: ./src/lib/canUseDom.ts
8133
7752
  const canUseDom = Boolean( false && 0);
@@ -8212,20 +7831,20 @@ var build = __webpack_require__(34046);
8212
7831
 
8213
7832
  const detectLocale = ()=>{
8214
7833
  if (window.navigator.languages.includes("pl") || window.navigator.languages.includes("pl-PL")) {
8215
- return build.Locale.PL_PL;
7834
+ return Locale.PL_PL;
8216
7835
  }
8217
7836
  if (window.navigator.languages.includes("en-GB")) {
8218
- return build.Locale.EN_GB;
7837
+ return Locale.EN_GB;
8219
7838
  }
8220
7839
  if (window.navigator.languages.includes("fa") || window.navigator.languages.includes("fa-IR")) {
8221
- return build.Locale.FA_IR;
7840
+ return Locale.FA_IR;
8222
7841
  }
8223
7842
  if (window.navigator.languages.includes("fr-FR")) {
8224
- return build.Locale.FR_FR;
7843
+ return Locale.FR_FR;
8225
7844
  }
8226
- return build.Locale.EN_US;
7845
+ return Locale.EN_US;
8227
7846
  };
8228
- /* harmony default export */ const lib_detectLocale = (detectLocale);
7847
+ /* harmony default export */ const lib_detectLocale = ((/* unused pure expression or super */ null && (detectLocale)));
8229
7848
 
8230
7849
  // EXTERNAL MODULE: ../constants/build/index.js
8231
7850
  var constants_build = __webpack_require__(7618);
@@ -8671,6 +8290,7 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8671
8290
 
8672
8291
 
8673
8292
 
8293
+
8674
8294
 
8675
8295
 
8676
8296
  /***/ }),
@@ -8681,15 +8301,19 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8681
8301
  "use strict";
8682
8302
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8683
8303
  /* harmony export */ "$B": () => (/* binding */ BOARD_TILE_FONT_SIZE_POINTS_MIN),
8304
+ /* harmony export */ "$L": () => (/* binding */ RESULTS_HEADER_HEIGHT),
8684
8305
  /* harmony export */ "$M": () => (/* binding */ RACK_TILE_SIZE_MAX),
8685
8306
  /* harmony export */ "BF": () => (/* binding */ PLAIN_TILES_COLOR_DEFAULT),
8686
8307
  /* harmony export */ "D": () => (/* binding */ PLAIN_TILES_TILE_MAX_SCATTER),
8687
8308
  /* harmony export */ "F1": () => (/* binding */ COLOR_GREEN),
8309
+ /* harmony export */ "FZ": () => (/* binding */ BUTTON_HEIGHT),
8688
8310
  /* harmony export */ "IO": () => (/* binding */ BOARD_CELL_ACTIONS_OFFSET),
8689
8311
  /* harmony export */ "Kc": () => (/* binding */ EASE_OUT_CUBIC),
8690
8312
  /* harmony export */ "Kw": () => (/* binding */ BOARD_TILE_SIZE_MAX),
8691
8313
  /* harmony export */ "MA": () => (/* binding */ TRANSITION_DURATION_LONG),
8692
8314
  /* harmony export */ "PF": () => (/* binding */ TILE_APPEAR_DURATION),
8315
+ /* harmony export */ "PV": () => (/* binding */ MODAL_HEADER_HEIGHT),
8316
+ /* harmony export */ "Rh": () => (/* binding */ DICTIONARY_HEIGHT_MOBILE),
8693
8317
  /* harmony export */ "V4": () => (/* binding */ BOARD_TILE_FONT_SIZE_MIN),
8694
8318
  /* harmony export */ "YF": () => (/* binding */ BORDER_WIDTH),
8695
8319
  /* harmony export */ "a_": () => (/* binding */ PLAIN_TILES_TILE_MAX_ROTATE),
@@ -8698,23 +8322,31 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8698
8322
  /* harmony export */ "eU": () => (/* binding */ PROGRESS_COLOR_BACKGROUND),
8699
8323
  /* harmony export */ "fl": () => (/* binding */ PLAIN_TILES_PADDING_HORIZONTAL),
8700
8324
  /* harmony export */ "h4": () => (/* binding */ GITHUB_PROJECT_URL),
8325
+ /* harmony export */ "iF": () => (/* binding */ MODAL_WIDTH),
8701
8326
  /* harmony export */ "j$": () => (/* binding */ BREAKPOINTS),
8327
+ /* harmony export */ "kD": () => (/* binding */ TEXT_INPUT_HEIGHT),
8702
8328
  /* harmony export */ "ku": () => (/* binding */ PLAIN_TILES_TILE_MARGIN),
8703
8329
  /* harmony export */ "mM": () => (/* binding */ REMAINING_TILES_TILE_SIZE),
8330
+ /* harmony export */ "n6": () => (/* binding */ DICTIONARY_HEIGHT),
8704
8331
  /* harmony export */ "oj": () => (/* binding */ BOARD_TILE_SIZE_MIN),
8705
8332
  /* harmony export */ "op": () => (/* binding */ COMPONENTS_SPACING_SMALL),
8706
8333
  /* harmony export */ "pI": () => (/* binding */ COLOR_BLUE),
8334
+ /* harmony export */ "pc": () => (/* binding */ LOGO_ASPECT_RATIO),
8707
8335
  /* harmony export */ "pt": () => (/* binding */ SOLVER_COLUMN_WIDTH),
8708
8336
  /* harmony export */ "rV": () => (/* binding */ PLAIN_TILES_TILE_SIZE),
8709
8337
  /* harmony export */ "rx": () => (/* binding */ RESULTS_ITEM_HEIGHT),
8338
+ /* harmony export */ "sk": () => (/* binding */ LOGO_SRC),
8339
+ /* harmony export */ "t": () => (/* binding */ LOGO_HEIGHT_SMALL),
8340
+ /* harmony export */ "t$": () => (/* binding */ NAV_PADDING),
8710
8341
  /* harmony export */ "tr": () => (/* binding */ COMPONENTS_SPACING),
8711
8342
  /* harmony export */ "uX": () => (/* binding */ PLAIN_TILES_PADDING_VERTICAL),
8712
8343
  /* harmony export */ "xZ": () => (/* binding */ PROGRESS_COLOR_VALUE),
8344
+ /* harmony export */ "y7": () => (/* binding */ LOGO_HEIGHT),
8713
8345
  /* harmony export */ "yg": () => (/* binding */ COLOR_RED),
8714
8346
  /* harmony export */ "yr": () => (/* binding */ COLOR_YELLOW),
8715
8347
  /* harmony export */ "yz": () => (/* binding */ TRANSITION)
8716
8348
  /* harmony export */ });
8717
- /* unused harmony exports TRANSITION_DURATION, BOARD_CELL_BORDER_WIDTH, TILE_SIZE, PLAIN_TILES_VERSION_TILE_COLOR, PLAIN_TILES_VERSION_TILE_SIZE */
8349
+ /* 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 */
8718
8350
  const BREAKPOINTS = {
8719
8351
  xs: 480,
8720
8352
  s: 768,
@@ -8731,8 +8363,13 @@ const COLOR_BLUE = "#c7d8f9";
8731
8363
  const COLOR_GREEN = "#bae3ba";
8732
8364
  const COLOR_RED = "#f7c2aa";
8733
8365
  const COLOR_YELLOW = "#efe3ae";
8734
- const COMPONENTS_SPACING = 40;
8735
- const COMPONENTS_SPACING_SMALL = 20;
8366
+ const SPACING_XS = 2;
8367
+ const SPACING_S = 5;
8368
+ const SPACING_M = 10;
8369
+ const SPACING_L = 20;
8370
+ const SPACING_XL = 40;
8371
+ const COMPONENTS_SPACING = SPACING_XL;
8372
+ const COMPONENTS_SPACING_SMALL = SPACING_L;
8736
8373
  const BOARD_CELL_ACTIONS_OFFSET = 3;
8737
8374
  const BOARD_CELL_BORDER_WIDTH = 1;
8738
8375
  const BOARD_TILE_FONT_SIZE_MIN = 14;
@@ -8744,6 +8381,18 @@ const BOARD_TILE_SIZE_MAX = 64;
8744
8381
  * 26 - tiles start to look good (font-size: 16px)
8745
8382
  */ const BOARD_TILE_SIZE_MIN = 20;
8746
8383
  const BORDER_WIDTH = 1;
8384
+ const BUTTON_ICON_SIZE = 24;
8385
+ const BUTTON_PADDING_VERTICAL = SPACING_M;
8386
+ const BUTTON_HEIGHT = BUTTON_ICON_SIZE + 2 * BUTTON_PADDING_VERTICAL + 2 * BORDER_WIDTH;
8387
+ const DICTIONARY_HEIGHT = 260;
8388
+ const DICTIONARY_HEIGHT_MOBILE = 110;
8389
+ const LOGO_ASPECT_RATIO = 682 / 166;
8390
+ const LOGO_HEIGHT = 60;
8391
+ const LOGO_HEIGHT_SMALL = 48;
8392
+ const LOGO_SRC = "/logo.svg";
8393
+ const MODAL_WIDTH = 370;
8394
+ const MODAL_HEADER_HEIGHT = 45;
8395
+ const NAV_PADDING = SPACING_L;
8747
8396
  const TILE_SIZE = 80;
8748
8397
  const PLAIN_TILES_COLOR_DEFAULT = COLOR_GREEN;
8749
8398
  const PLAIN_TILES_PADDING_HORIZONTAL = 0;
@@ -8770,8 +8419,10 @@ const PROGRESS_COLOR_VALUE = "var(--color--violet--light)";
8770
8419
  const PROGRESS_COLOR_BACKGROUND = "var(--color--inactive)";
8771
8420
  const RACK_TILE_SIZE_MAX = 80;
8772
8421
  const REMAINING_TILES_TILE_SIZE = 50;
8422
+ const RESULTS_HEADER_HEIGHT = 35;
8773
8423
  const RESULTS_ITEM_HEIGHT = 40;
8774
8424
  const SOLVER_COLUMN_WIDTH = 580;
8425
+ const TEXT_INPUT_HEIGHT = 40;
8775
8426
  const TILE_APPEAR_DURATION = 200;
8776
8427
  const TILE_APPEAR_KEYFRAMES = [
8777
8428
  {
@@ -8861,6 +8512,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
8861
8512
  /* harmony export */ "$o": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.$o),
8862
8513
  /* harmony export */ "AN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.AN),
8863
8514
  /* harmony export */ "En": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.En),
8515
+ /* harmony export */ "GL": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.GL),
8864
8516
  /* harmony export */ "HM": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.HM),
8865
8517
  /* harmony export */ "I8": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.I8),
8866
8518
  /* harmony export */ "Mj": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Mj),
@@ -8935,12 +8587,19 @@ __webpack_async_result__();
8935
8587
  /* harmony import */ var store2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(store2__WEBPACK_IMPORTED_MODULE_1__);
8936
8588
 
8937
8589
 
8590
+ const AUTO_GROUP_TILES = "auto-group-tiles";
8938
8591
  const BOARD = "board";
8939
8592
  const CONFIG_ID = "config-id";
8940
8593
  const LOCALE = "locale";
8941
8594
  const RACK = "rack";
8942
8595
  const store = store2__WEBPACK_IMPORTED_MODULE_1___default().namespace("scrabble-solver");
8943
8596
  const localStorage = {
8597
+ getAutoGroupTiles () {
8598
+ return store.get(AUTO_GROUP_TILES);
8599
+ },
8600
+ setAutoGroupTiles (autoGroupTiles) {
8601
+ store.set(AUTO_GROUP_TILES, autoGroupTiles, true);
8602
+ },
8944
8603
  getBoard () {
8945
8604
  const serialized = store.get(BOARD);
8946
8605
  return serialized ? _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_0__.Board.fromJson(JSON.parse(serialized)) : serialized;
@@ -8989,8 +8648,8 @@ var build = __webpack_require__(7618);
8989
8648
  var types_build = __webpack_require__(34046);
8990
8649
  // EXTERNAL MODULE: external "redux-saga/effects"
8991
8650
  var effects_ = __webpack_require__(56477);
8992
- // EXTERNAL MODULE: ./src/lib/index.ts + 31 modules
8993
- var lib = __webpack_require__(10129);
8651
+ // EXTERNAL MODULE: ./src/lib/index.ts + 32 modules
8652
+ var lib = __webpack_require__(65175);
8994
8653
  ;// CONCATENATED MODULE: ./src/sdk/fetch.ts
8995
8654
 
8996
8655
  const fetch_fetch = async (input, init)=>{
@@ -9091,7 +8750,7 @@ var selectors = __webpack_require__(96076);
9091
8750
  // EXTERNAL MODULE: ./src/state/slices/index.ts + 16 modules
9092
8751
  var slices = __webpack_require__(67647);
9093
8752
  ;// CONCATENATED MODULE: ./src/state/sagas.ts
9094
-
8753
+ /* eslint-disable max-lines */
9095
8754
 
9096
8755
 
9097
8756
 
@@ -9161,9 +8820,12 @@ function* onDictionarySubmit() {
9161
8820
  }
9162
8821
  }
9163
8822
  function* onInitialize() {
8823
+ const board = yield (0,effects_.select)(selectors/* selectBoard */.ZO);
9164
8824
  yield (0,effects_.call)(sdk_visit);
9165
- yield* ensureProperTilesCount();
9166
- yield (0,effects_.put)(slices/* verifySlice.actions.submit */.Gt.actions.submit());
8825
+ if (!board.isEmpty()) {
8826
+ yield* ensureProperTilesCount();
8827
+ yield (0,effects_.put)(slices/* verifySlice.actions.submit */.Gt.actions.submit());
8828
+ }
9167
8829
  }
9168
8830
  function* onReset() {
9169
8831
  yield (0,effects_.put)(slices/* boardSlice.actions.reset */.I8.actions.reset());
@@ -9245,15 +8907,15 @@ function* onVerify() {
9245
8907
  }
9246
8908
  function* ensureProperTilesCount() {
9247
8909
  const { config } = yield (0,effects_.select)(selectors/* selectConfig */.$o);
9248
- const characters = yield (0,effects_.select)(selectors/* selectCharacters */.yp);
9249
- if (config.maximumCharactersCount > characters.length) {
9250
- const differenceCount = Math.abs(config.maximumCharactersCount - characters.length);
8910
+ const rack = yield (0,effects_.select)(selectors/* selectRack */.QB);
8911
+ if (config.maximumCharactersCount > rack.length) {
8912
+ const differenceCount = Math.abs(config.maximumCharactersCount - rack.length);
9251
8913
  yield (0,effects_.put)(slices/* rackSlice.actions.init */.O_.actions.init([
9252
- ...characters,
8914
+ ...rack,
9253
8915
  ...Array(differenceCount).fill(null)
9254
8916
  ]));
9255
- } else if (config.maximumCharactersCount < characters.length) {
9256
- const nonNulls = characters.filter(Boolean).slice(0, config.maximumCharactersCount);
8917
+ } else if (config.maximumCharactersCount < rack.length) {
8918
+ const nonNulls = rack.filter(Boolean).slice(0, config.maximumCharactersCount);
9257
8919
  const differenceCount = Math.abs(config.maximumCharactersCount - nonNulls.length);
9258
8920
  const autoGroupTiles = yield (0,effects_.select)(selectors/* selectLocaleAutoGroupTiles */.lP);
9259
8921
  yield (0,effects_.put)(slices/* rackSlice.actions.init */.O_.actions.init([
@@ -9275,6 +8937,7 @@ function* ensureProperTilesCount() {
9275
8937
  /* harmony export */ "$o": () => (/* binding */ selectConfig),
9276
8938
  /* harmony export */ "AN": () => (/* binding */ selectCharacterIsValid),
9277
8939
  /* harmony export */ "En": () => (/* binding */ selectHasOverusedTiles),
8940
+ /* harmony export */ "GL": () => (/* binding */ selectResultCandidateCells),
9278
8941
  /* harmony export */ "HM": () => (/* binding */ selectVerify),
9279
8942
  /* harmony export */ "Mj": () => (/* binding */ selectAreResultsOutdated),
9280
8943
  /* harmony export */ "O0": () => (/* binding */ selectCellBonus),
@@ -9304,7 +8967,7 @@ function* ensureProperTilesCount() {
9304
8967
  /* harmony export */ "yp": () => (/* binding */ selectCharacters),
9305
8968
  /* harmony export */ "z$": () => (/* binding */ selectResultCandidateTiles)
9306
8969
  /* harmony export */ });
9307
- /* unused harmony exports selectCellFilter, selectResultsRaw, selectSortedResults, selectGroupedResults, selectResultCandidateCells, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
8970
+ /* unused harmony exports selectCellFilter, selectResultsRaw, selectSortedResults, selectGroupedResults, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
9308
8971
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
9309
8972
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
9310
8973
  /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89418);
@@ -9313,7 +8976,7 @@ function* ensureProperTilesCount() {
9313
8976
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34046);
9314
8977
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__);
9315
8978
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
9316
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
8979
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
9317
8980
  /* eslint-disable max-lines */
9318
8981
 
9319
8982
 
@@ -9555,15 +9218,19 @@ __webpack_require__.d(__webpack_exports__, {
9555
9218
  var build = __webpack_require__(89418);
9556
9219
  // EXTERNAL MODULE: ../types/build/index.js
9557
9220
  var types_build = __webpack_require__(34046);
9558
- // EXTERNAL MODULE: ./src/lib/index.ts + 31 modules
9559
- var lib = __webpack_require__(10129);
9221
+ // EXTERNAL MODULE: ./src/state/localStorage.ts
9222
+ var localStorage = __webpack_require__(79579);
9223
+ // EXTERNAL MODULE: ./src/lib/index.ts + 32 modules
9224
+ var lib = __webpack_require__(65175);
9560
9225
  ;// CONCATENATED MODULE: ./src/state/slices/settingsInitialState.ts
9561
9226
 
9562
9227
 
9228
+
9229
+ const localStorageAutoGroupTiles = localStorage/* default.getAutoGroupTiles */.Z.getAutoGroupTiles();
9563
9230
  const settingsInitialState = {
9564
- autoGroupTiles: "left",
9565
- configId: build.scrabble.id,
9566
- locale: (0,lib/* guessLocale */.sf)()
9231
+ autoGroupTiles: typeof localStorageAutoGroupTiles === "undefined" ? "left" : localStorageAutoGroupTiles,
9232
+ configId: localStorage/* default.getConfigId */.Z.getConfigId() || build.scrabble.id,
9233
+ locale: localStorage/* default.getLocale */.Z.getLocale() || (0,lib/* guessLocale */.sf)()
9567
9234
  };
9568
9235
  /* harmony default export */ const slices_settingsInitialState = (settingsInitialState);
9569
9236
 
@@ -9571,9 +9238,11 @@ const settingsInitialState = {
9571
9238
 
9572
9239
 
9573
9240
 
9241
+
9574
9242
  const { configId , locale } = slices_settingsInitialState;
9575
9243
  const { boardHeight , boardWidth } = (0,build.getLocaleConfig)(configId, locale);
9576
- const boardInitialState = types_build.Board.create(boardWidth, boardHeight);
9244
+ const boardDefaultState = types_build.Board.create(boardWidth, boardHeight);
9245
+ const boardInitialState = localStorage/* default.getBoard */.Z.getBoard() || boardDefaultState;
9577
9246
  // const createOxyphenbutazone = () => {
9578
9247
  // // Tiles: oypbaze
9579
9248
  // const board = Board.fromStringArray([
@@ -9648,7 +9317,7 @@ const boardSlice = (0,toolkit_.createSlice)({
9648
9317
  return board;
9649
9318
  },
9650
9319
  reset: ()=>{
9651
- return slices_boardInitialState;
9320
+ return boardDefaultState;
9652
9321
  },
9653
9322
  toggleCellIsBlank: (state, action)=>{
9654
9323
  const newBoard = state.clone();
@@ -9754,7 +9423,8 @@ const dictionarySlice = (0,toolkit_.createSlice)({
9754
9423
  /* harmony default export */ const slices_dictionarySlice = (dictionarySlice);
9755
9424
 
9756
9425
  ;// CONCATENATED MODULE: ./src/state/slices/rackInitialState.ts
9757
- const rackInitialState = [
9426
+
9427
+ const rackDefaultState = [
9758
9428
  null,
9759
9429
  null,
9760
9430
  null,
@@ -9763,6 +9433,7 @@ const rackInitialState = [
9763
9433
  null,
9764
9434
  null
9765
9435
  ];
9436
+ const rackInitialState = localStorage/* default.getRack */.Z.getRack() || rackDefaultState;
9766
9437
  /* harmony default export */ const slices_rackInitialState = (rackInitialState);
9767
9438
 
9768
9439
  ;// CONCATENATED MODULE: ./src/state/slices/rackSlice.ts
@@ -9783,6 +9454,9 @@ const rackSlice = (0,toolkit_.createSlice)({
9783
9454
  },
9784
9455
  changeCharacters: (state, action)=>{
9785
9456
  const { characters , index } = action.payload;
9457
+ if (characters.length === 0) {
9458
+ return state;
9459
+ }
9786
9460
  const expectedRackLength = state.length;
9787
9461
  const rack = [
9788
9462
  ...state.slice(0, index),
@@ -9792,19 +9466,17 @@ const rackSlice = (0,toolkit_.createSlice)({
9792
9466
  return rack.slice(0, expectedRackLength);
9793
9467
  },
9794
9468
  groupTiles: (state, action)=>{
9795
- const direction = action.payload;
9796
- if (direction === null) {
9469
+ if (action.payload === null) {
9797
9470
  return state;
9798
9471
  }
9799
- const nullMovingComparator = (0,lib/* createNullMovingComparator */.Ml)((0,lib/* inverseDirection */.Mf)(direction));
9472
+ const nullMovingComparator = (0,lib/* createNullMovingComparator */.Ml)((0,lib/* inverseDirection */.Mf)(action.payload));
9800
9473
  const sortedTiles = [
9801
9474
  ...state
9802
9475
  ].sort(nullMovingComparator);
9803
- return sortedTiles;
9476
+ return (0,lib/* arrayEquals */._g)(state, sortedTiles) ? state : sortedTiles;
9804
9477
  },
9805
- init: (_state, action)=>{
9806
- const rack = action.payload;
9807
- return rack;
9478
+ init: (state, action)=>{
9479
+ return (0,lib/* arrayEquals */._g)(state, action.payload) ? state : action.payload;
9808
9480
  },
9809
9481
  removeTiles: (state, action)=>{
9810
9482
  const tilesToRemove = action.payload;
@@ -9812,7 +9484,7 @@ const rackSlice = (0,toolkit_.createSlice)({
9812
9484
  const charactersWithoutMatchingTiles = charactersAndTiles.map(({ character , tile })=>tile ? null : character);
9813
9485
  return charactersWithoutMatchingTiles;
9814
9486
  },
9815
- reset: ()=>slices_rackInitialState
9487
+ reset: ()=>rackDefaultState
9816
9488
  }
9817
9489
  });
9818
9490
  /* harmony default export */ const slices_rackSlice = (rackSlice);