@scrabble-solver/scrabble-solver 2.11.0 → 2.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +7 -7
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/next-server.js.nft.json +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  9. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  10. package/.next/cache/webpack/server-production/0.pack +0 -0
  11. package/.next/cache/webpack/server-production/index.pack +0 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/277.js +523 -611
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/pages/404.html +2 -2
  18. package/.next/server/pages/404.js.nft.json +1 -1
  19. package/.next/server/pages/500.html +1 -1
  20. package/.next/server/pages/_app.js +0 -24
  21. package/.next/server/pages/_app.js.nft.json +1 -1
  22. package/.next/server/pages/_document.js.nft.json +1 -1
  23. package/.next/server/pages/api/dictionary/[locale]/[word].js +0 -1
  24. package/.next/server/pages/api/dictionary/[locale].js +0 -1
  25. package/.next/server/pages/api/solve.js +28 -8
  26. package/.next/server/pages/api/verify.js +0 -1
  27. package/.next/server/pages/api/visit.js +0 -1
  28. package/.next/server/pages/index.html +1 -1
  29. package/.next/server/pages/index.js +49 -90
  30. package/.next/server/pages/index.js.nft.json +1 -1
  31. package/.next/server/pages/index.json +1 -1
  32. package/.next/static/Mdvi3FY0PqkILKLbPlVBU/_buildManifest.js +1 -0
  33. package/.next/static/chunks/pages/{404-e0f30450e9920dc3.js → 404-448ba28510855455.js} +1 -1
  34. package/.next/static/chunks/pages/_app-495e6f4ccc278bb2.js +28 -0
  35. package/.next/static/chunks/pages/index-5ecc51900ca29685.js +1 -0
  36. package/.next/static/css/17b0a2db8742105f.css +1 -0
  37. package/.next/static/css/e1ffeb2558330c55.css +2 -0
  38. package/.next/trace +54 -55
  39. package/package.json +9 -14
  40. package/src/components/{Solver/components/EmptyState/EmptyState.module.scss → Alert/Alert.module.scss} +11 -7
  41. package/src/components/{Solver/components/EmptyState/EmptyState.tsx → Alert/Alert.tsx} +8 -6
  42. package/src/components/Alert/index.ts +1 -0
  43. package/src/components/Board/Board.module.scss +55 -0
  44. package/src/components/Board/BoardPure.tsx +4 -0
  45. package/src/components/Board/components/Cell/Cell.module.scss +51 -2
  46. package/src/components/Board/components/Cell/Cell.tsx +12 -0
  47. package/src/components/Board/components/Cell/CellPure.tsx +12 -0
  48. package/src/components/Board/hooks/useGrid.ts +9 -26
  49. package/src/components/Board/lib/getPositionInGrid.ts +1 -1
  50. package/src/components/Dictionary/Dictionary.module.scss +4 -0
  51. package/src/components/DictionaryInput/DictionaryInput.module.scss +1 -0
  52. package/src/components/EmptyState/EmptyState.module.scss +2 -1
  53. package/src/components/EmptyState/EmptyState.tsx +1 -2
  54. package/src/components/Loading/Loading.module.scss +1 -1
  55. package/src/components/Logo/Logo.tsx +5 -0
  56. package/src/components/LogoSplashScreen/LogoSplashScreen.module.scss +4 -1
  57. package/src/components/Modal/Modal.module.scss +14 -0
  58. package/src/components/Modal/Modal.tsx +4 -1
  59. package/src/components/PlainTiles/PlainTiles.module.scss +1 -1
  60. package/src/components/PlainTiles/Tile.tsx +3 -3
  61. package/src/components/Rack/Rack.module.scss +25 -0
  62. package/src/components/Rack/Rack.tsx +5 -4
  63. package/src/components/Rack/RackTile.tsx +6 -13
  64. package/src/components/Results/HeaderButton.tsx +5 -12
  65. package/src/components/Results/Result.tsx +5 -3
  66. package/src/components/Results/Results.module.scss +41 -1
  67. package/src/components/Results/Results.tsx +29 -43
  68. package/src/components/Results/types.ts +1 -1
  69. package/src/components/ResultsInput/ResultsInput.module.scss +1 -0
  70. package/src/components/Solver/Solver.module.scss +9 -4
  71. package/src/components/Solver/Solver.tsx +17 -19
  72. package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +5 -6
  73. package/src/components/Solver/components/index.ts +0 -1
  74. package/src/components/Tile/Tile.module.scss +42 -61
  75. package/src/components/Tile/Tile.tsx +4 -3
  76. package/src/components/Tile/TilePure.tsx +4 -13
  77. package/src/components/Tooltip/Tooltip.module.scss +1 -72
  78. package/src/components/Tooltip/useTooltip.tsx +25 -35
  79. package/src/components/index.ts +1 -0
  80. package/src/hooks/index.ts +0 -1
  81. package/src/hooks/useAppLayout.ts +3 -1
  82. package/src/i18n/de.json +0 -1
  83. package/src/i18n/en.json +0 -1
  84. package/src/i18n/es.json +0 -1
  85. package/src/i18n/fa.json +0 -1
  86. package/src/i18n/fr.json +0 -1
  87. package/src/i18n/pl.json +0 -1
  88. package/src/lib/createRegExp.ts +13 -0
  89. package/src/lib/groupResults.ts +38 -0
  90. package/src/lib/guessLocale.ts +22 -0
  91. package/src/lib/index.ts +4 -2
  92. package/src/lib/sortResults.ts +6 -10
  93. package/src/modals/DictionaryModal/DictionaryModal.module.scss +6 -2
  94. package/src/modals/KeyMapModal/KeyMapModal.tsx +5 -21
  95. package/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +4 -0
  96. package/src/modals/MenuModal/MenuModal.module.scss +7 -0
  97. package/src/modals/RemainingTilesModal/components/Character/Character.module.scss +1 -0
  98. package/src/modals/ResultsModal/ResultsModal.module.scss +3 -3
  99. package/src/modals/ResultsModal/ResultsModal.tsx +23 -11
  100. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +2 -0
  101. package/src/modals/WordsModal/WordsModal.module.scss +8 -1
  102. package/src/pages/api/dictionary/[locale]/[word].ts +0 -1
  103. package/src/pages/api/dictionary/[locale]/index.ts +0 -1
  104. package/src/pages/api/solve.ts +0 -1
  105. package/src/pages/api/verify.ts +0 -1
  106. package/src/pages/api/visit.ts +0 -1
  107. package/src/pages/index.tsx +13 -15
  108. package/src/parameters/index.ts +2 -2
  109. package/src/state/createAppStore.ts +26 -10
  110. package/src/state/sagas.ts +1 -0
  111. package/src/state/selectors.ts +37 -37
  112. package/src/state/slices/boardInitialState.ts +3 -1
  113. package/src/state/slices/cellFilterInitialState.ts +3 -3
  114. package/src/state/slices/cellFilterSlice.ts +3 -1
  115. package/src/state/slices/dictionaryInitialState.ts +2 -2
  116. package/src/state/slices/rackInitialState.ts +3 -1
  117. package/src/state/slices/resultsInitialState.ts +11 -4
  118. package/src/state/slices/settingsInitialState.ts +10 -21
  119. package/src/state/slices/solveInitialState.ts +2 -2
  120. package/src/state/slices/solveSlice.ts +2 -0
  121. package/src/state/slices/verifyInitialState.ts +13 -4
  122. package/src/state/types.ts +20 -2
  123. package/src/styles/mixins.scss +25 -1
  124. package/src/styles/variables.scss +17 -1
  125. package/src/types/index.ts +10 -2
  126. package/.next/static/45ye7793DY705HOcuK9lJ/_buildManifest.js +0 -1
  127. package/.next/static/chunks/pages/_app-d7acee5e526752d9.js +0 -28
  128. package/.next/static/chunks/pages/index-35d2c1c79a201ae2.js +0 -1
  129. package/.next/static/css/a48caa6f57de6e98.css +0 -1
  130. package/.next/static/css/c49bbe944ddd1b39.css +0 -2
  131. package/src/components/Board/types/index.ts +0 -4
  132. package/src/components/Solver/components/EmptyState/index.ts +0 -1
  133. package/src/components/Tooltip/constants.ts +0 -28
  134. package/src/hooks/useUniqueId.ts +0 -9
  135. package/src/lib/isCtrl.ts +0 -7
  136. package/src/state/rootReducer.ts +0 -25
  137. /package/.next/static/{45ye7793DY705HOcuK9lJ → Mdvi3FY0PqkILKLbPlVBU}/_ssgManifest.js +0 -0
@@ -980,6 +980,24 @@ exports.CONSONANTS = [
980
980
  exports.VOWELS = ['a', 'ą', 'ä', 'e', 'ę', 'i', 'o', 'ó', 'ö', 'u', 'ü', 'y'];
981
981
 
982
982
 
983
+ /***/ }),
984
+
985
+ /***/ 98949:
986
+ /***/ ((module) => {
987
+
988
+ // Exports
989
+ module.exports = {
990
+ "alert": "Alert_alert__U03J1",
991
+ "iconContainer": "Alert_iconContainer__nIqVi",
992
+ "error": "Alert_error__GtiiB",
993
+ "info": "Alert_info__tuPb_",
994
+ "success": "Alert_success__JUf_v",
995
+ "warning": "Alert_warning__Mellk",
996
+ "icon": "Alert_icon__x2hmA",
997
+ "content": "Alert_content__r08lv"
998
+ };
999
+
1000
+
983
1001
  /***/ }),
984
1002
 
985
1003
  /***/ 97824:
@@ -1000,6 +1018,7 @@ module.exports = {
1000
1018
  module.exports = {
1001
1019
  "board": "Board_board__eA_bB",
1002
1020
  "row": "Board_row__mezHN",
1021
+ "cell": "Board_cell__RJssv",
1003
1022
  "actions": "Board_actions__W2CX9",
1004
1023
  "hide": "Board_hide__Fskbc",
1005
1024
  "shown": "Board_shown__T9Txa",
@@ -1045,6 +1064,11 @@ module.exports = {
1045
1064
  "bonusWord2": "Cell_bonusWord2__Ztd1C",
1046
1065
  "bonusWord3": "Cell_bonusWord3__eTB6G",
1047
1066
  "filtered": "Cell_filtered__16gx1",
1067
+ "sharpTopLeft": "Cell_sharpTopLeft__EGQgw",
1068
+ "tile": "Cell_tile__bTdCO",
1069
+ "sharpTopRight": "Cell_sharpTopRight__rzADZ",
1070
+ "sharpBottomLeft": "Cell_sharpBottomLeft__YGRug",
1071
+ "sharpBottomRight": "Cell_sharpBottomRight__twtbd",
1048
1072
  "icon": "Cell_icon__8EWsQ"
1049
1073
  };
1050
1074
 
@@ -1182,7 +1206,8 @@ module.exports = {
1182
1206
  "overlay": "Modal_overlay__lX1Uv",
1183
1207
  "header": "Modal_header__9Nc2I",
1184
1208
  "title": "Modal_title__p4NB1",
1185
- "content": "Modal_content__RDLjq"
1209
+ "content": "Modal_content__RDLjq",
1210
+ "footer": "Modal_footer__KnjQg"
1186
1211
  };
1187
1212
 
1188
1213
 
@@ -1264,7 +1289,9 @@ module.exports = {
1264
1289
  // Exports
1265
1290
  module.exports = {
1266
1291
  "rack": "Rack_rack__uEE8X",
1267
- "tile": "Rack_tile__kMzR_"
1292
+ "tile": "Rack_tile__kMzR_",
1293
+ "sharpLeft": "Rack_sharpLeft__Sdops",
1294
+ "sharpRight": "Rack_sharpRight__9D2pe"
1268
1295
  };
1269
1296
 
1270
1297
 
@@ -1301,6 +1328,7 @@ module.exports = {
1301
1328
  "headerButtonLabel": "Results_headerButtonLabel__XQiIP",
1302
1329
  "result": "Results_result__bpPGb",
1303
1330
  "highlighted": "Results_highlighted__5x4Wt",
1331
+ "notMatching": "Results_notMatching__63y6L",
1304
1332
  "resultContent": "Results_resultContent__fynvQ",
1305
1333
  "word": "Results_word__j20u_",
1306
1334
  "cell": "Results_cell__13BH5",
@@ -1349,35 +1377,18 @@ module.exports = {
1349
1377
  "board": "Solver_board__d5oBN",
1350
1378
  "submitInput": "Solver_submitInput__eic0t",
1351
1379
  "column": "Solver_column__0EMSH",
1380
+ "results": "Solver_results__ElAKY",
1352
1381
  "dictionaryContainer": "Solver_dictionaryContainer__uxJRV",
1353
1382
  "dictionary": "Solver_dictionary__09LYB",
1354
1383
  "dictionaryInput": "Solver_dictionaryInput__9BLNF",
1355
1384
  "bottomContainer": "Solver_bottomContainer__VLhkh",
1356
1385
  "bottomContent": "Solver_bottomContent__9rVjO",
1357
- "rack": "Solver_rack__9DDCR",
1358
1386
  "controls": "Solver_controls__2D9Ez",
1359
1387
  "emptyState": "Solver_emptyState__P5fkX",
1360
1388
  "solve": "Solver_solve__MgHc7"
1361
1389
  };
1362
1390
 
1363
1391
 
1364
- /***/ }),
1365
-
1366
- /***/ 12231:
1367
- /***/ ((module) => {
1368
-
1369
- // Exports
1370
- module.exports = {
1371
- "emptyState": "EmptyState_emptyState__XRkVh",
1372
- "iconContainer": "EmptyState_iconContainer__muJPY",
1373
- "error": "EmptyState_error__LALvw",
1374
- "warning": "EmptyState_warning__3cgae",
1375
- "info": "EmptyState_info__M93ve",
1376
- "icon": "EmptyState_icon__4Okzd",
1377
- "content": "EmptyState_content__VwtZg"
1378
- };
1379
-
1380
-
1381
1392
  /***/ }),
1382
1393
 
1383
1394
  /***/ 10857:
@@ -1483,15 +1494,12 @@ module.exports = {
1483
1494
  "points3": "Tile_points3__lJKOJ",
1484
1495
  "points4": "Tile_points4__IylBI",
1485
1496
  "points5": "Tile_points5__Kzick",
1497
+ "raised": "Tile_raised__WKori",
1486
1498
  "blank": "Tile_blank__q2Ujv",
1487
- "placeholder": "Tile_placeholder__UiozY",
1488
- "character": "Tile_character__2XzcR",
1499
+ "empty": "Tile_empty__DGtO_",
1489
1500
  "highlighted": "Tile_highlighted__eg00X",
1490
1501
  "points": "Tile_points__z39vV",
1491
- "disabled": "Tile_disabled__aPQkZ",
1492
1502
  "input": "Tile_input__Rol_n",
1493
- "empty": "Tile_empty__DGtO_",
1494
- "raised": "Tile_raised__WKori",
1495
1503
  "alert": "Tile_alert__0o8j3"
1496
1504
  };
1497
1505
 
@@ -1503,18 +1511,74 @@ module.exports = {
1503
1511
 
1504
1512
  // Exports
1505
1513
  module.exports = {
1506
- "ARROW_SIZE": "4px",
1507
- "PREVENT_OVERFLOW": "10px",
1508
- "OFFSET": "2px",
1509
1514
  "tooltip": "Tooltip_tooltip__98Sw9",
1510
- "top": "Tooltip_top__Vk7yg",
1511
- "arrow": "Tooltip_arrow__9oy08",
1512
- "right": "Tooltip_right__kORxq",
1513
- "bottom": "Tooltip_bottom__QwH6o",
1514
- "left": "Tooltip_left__bSM_7"
1515
+ "arrow": "Tooltip_arrow__9oy08"
1515
1516
  };
1516
1517
 
1517
1518
 
1519
+ /***/ }),
1520
+
1521
+ /***/ 15982:
1522
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1523
+
1524
+ "use strict";
1525
+
1526
+ // EXPORTS
1527
+ __webpack_require__.d(__webpack_exports__, {
1528
+ "Z": () => (/* reexport */ Alert_Alert)
1529
+ });
1530
+
1531
+ // EXTERNAL MODULE: external "react/jsx-runtime"
1532
+ var jsx_runtime_ = __webpack_require__(20997);
1533
+ // EXTERNAL MODULE: external "classnames"
1534
+ var external_classnames_ = __webpack_require__(59003);
1535
+ var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
1536
+ // EXTERNAL MODULE: ./src/icons/index.ts + 40 modules
1537
+ var icons = __webpack_require__(69461);
1538
+ // EXTERNAL MODULE: ./src/components/Alert/Alert.module.scss
1539
+ var Alert_module = __webpack_require__(98949);
1540
+ var Alert_module_default = /*#__PURE__*/__webpack_require__.n(Alert_module);
1541
+ ;// CONCATENATED MODULE: ./src/components/Alert/Alert.tsx
1542
+
1543
+
1544
+
1545
+
1546
+ const ICON_PER_TYPE = {
1547
+ error: icons/* CrossCircleFill */.Gw,
1548
+ info: icons/* InfoCircleFill */.UT,
1549
+ success: icons/* Check */.Jr,
1550
+ warning: icons/* ExclamationTriangleFill */.x_
1551
+ };
1552
+ const Alert = ({ children , className , variant , ...props })=>{
1553
+ const Icon = ICON_PER_TYPE[variant];
1554
+ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
1555
+ className: external_classnames_default()((Alert_module_default()).alert, className, {
1556
+ [(Alert_module_default()).error]: variant === "error",
1557
+ [(Alert_module_default()).info]: variant === "info",
1558
+ [(Alert_module_default()).success]: variant === "success",
1559
+ [(Alert_module_default()).warning]: variant === "warning"
1560
+ }),
1561
+ ...props,
1562
+ children: [
1563
+ /*#__PURE__*/ jsx_runtime_.jsx("div", {
1564
+ className: (Alert_module_default()).iconContainer,
1565
+ children: /*#__PURE__*/ jsx_runtime_.jsx(Icon, {
1566
+ className: (Alert_module_default()).icon
1567
+ })
1568
+ }),
1569
+ /*#__PURE__*/ jsx_runtime_.jsx("div", {
1570
+ className: (Alert_module_default()).content,
1571
+ children: children
1572
+ })
1573
+ ]
1574
+ });
1575
+ };
1576
+ /* harmony default export */ const Alert_Alert = (Alert);
1577
+
1578
+ ;// CONCATENATED MODULE: ./src/components/Alert/index.ts
1579
+
1580
+
1581
+
1518
1582
  /***/ }),
1519
1583
 
1520
1584
  /***/ 27126:
@@ -1735,6 +1799,10 @@ const BoardPure = ({ className , cellSize , center , inputRefs , rows , onBlur ,
1735
1799
  children: cells.map((cell, x)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_3__/* .Cell */ .b, {
1736
1800
  className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().cell),
1737
1801
  cell: cell,
1802
+ cellBottom: y < rows.length - 1 ? rows[y + 1][x] : undefined,
1803
+ cellLeft: x > 0 ? rows[y][x - 1] : undefined,
1804
+ cellRight: x < rows.length - 1 ? rows[y][x + 1] : undefined,
1805
+ cellTop: y > 0 ? rows[y - 1][x] : undefined,
1738
1806
  inputRef: inputRefs[y][x],
1739
1807
  isBottom: y === rows.length - 1,
1740
1808
  isCenter: center.x === x && center.y === y,
@@ -1865,7 +1933,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1865
1933
  /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7618);
1866
1934
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
1867
1935
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1868
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86953);
1936
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10129);
1869
1937
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
1870
1938
  /* harmony import */ var _CellPure__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12418);
1871
1939
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _CellPure__WEBPACK_IMPORTED_MODULE_5__]);
@@ -1876,7 +1944,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
1876
1944
 
1877
1945
 
1878
1946
 
1879
- const Cell = ({ cell , className , inputRef , isBottom , isCenter , isRight , size , onChange , onFocus })=>{
1947
+ const Cell = ({ cell , cellBottom , cellLeft , cellRight , cellTop , className , inputRef , isBottom , isCenter , isRight , size , onChange , onFocus })=>{
1880
1948
  const { tile , x , y } = cell;
1881
1949
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
1882
1950
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
@@ -1903,6 +1971,10 @@ const Cell = ({ cell , className , inputRef , isBottom , isCenter , isRight , si
1903
1971
  }),
1904
1972
  bonus: bonus,
1905
1973
  cell: cell,
1974
+ cellBottom: cellBottom,
1975
+ cellLeft: cellLeft,
1976
+ cellRight: cellRight,
1977
+ cellTop: cellTop,
1906
1978
  className: className,
1907
1979
  inputRef: inputRef,
1908
1980
  isBottom: isBottom,
@@ -1954,11 +2026,15 @@ _Tile__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (awa
1954
2026
 
1955
2027
 
1956
2028
 
1957
- const CellPure = ({ "aria-label": ariaLabel , bonus , cell , className , inputRef , isBottom , isCenter , isRight , isEmpty , isFiltered , isValid , points , size , style , tile , onChange , onFocus })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
2029
+ const CellPure = ({ "aria-label": ariaLabel , bonus , cell , cellBottom , cellLeft , cellRight , cellTop , className , inputRef , isBottom , isCenter , isRight , isEmpty , isFiltered , isValid , points , size , style , tile , onChange , onFocus })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1958
2030
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().cell), className, (0,_lib__WEBPACK_IMPORTED_MODULE_5__/* .getBonusClassname */ .K)(cell, bonus, isCenter), {
1959
2031
  [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().bottom)]: isBottom,
1960
2032
  [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().filtered)]: isFiltered,
1961
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().right)]: isRight
2033
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().right)]: isRight,
2034
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopLeft)]: cellTop?.hasTile() || cellLeft?.hasTile(),
2035
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopRight)]: cellTop?.hasTile() || cellRight?.hasTile(),
2036
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpBottomLeft)]: cellBottom?.hasTile() || cellLeft?.hasTile(),
2037
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpBottomRight)]: cellBottom?.hasTile() || cellRight?.hasTile()
1962
2038
  }),
1963
2039
  style: style,
1964
2040
  children: [
@@ -2125,7 +2201,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2125
2201
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
2126
2202
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
2127
2203
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36743);
2128
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(86953);
2204
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10129);
2129
2205
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
2130
2206
  /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97792);
2131
2207
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_7__]);
@@ -2347,7 +2423,7 @@ const useGrid = (rows)=>{
2347
2423
  return (0,lib__WEBPACK_IMPORTED_MODULE_6__/* .createKeyboardNavigation */ .np)({
2348
2424
  onArrowDown: (event)=>{
2349
2425
  event.preventDefault();
2350
- if ((0,lib__WEBPACK_IMPORTED_MODULE_6__/* .isCtrl */ .yl)(event)) {
2426
+ if (direction === "horizontal") {
2351
2427
  onDirectionToggle();
2352
2428
  } else {
2353
2429
  changeActiveIndex(0, 1);
@@ -2355,7 +2431,7 @@ const useGrid = (rows)=>{
2355
2431
  },
2356
2432
  onArrowLeft: (event)=>{
2357
2433
  event.preventDefault();
2358
- if ((0,lib__WEBPACK_IMPORTED_MODULE_6__/* .isCtrl */ .yl)(event)) {
2434
+ if (direction === "vertical") {
2359
2435
  onDirectionToggle();
2360
2436
  } else {
2361
2437
  changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale].direction === "ltr" ? -1 : 1, 0);
@@ -2363,7 +2439,7 @@ const useGrid = (rows)=>{
2363
2439
  },
2364
2440
  onArrowRight: (event)=>{
2365
2441
  event.preventDefault();
2366
- if ((0,lib__WEBPACK_IMPORTED_MODULE_6__/* .isCtrl */ .yl)(event)) {
2442
+ if (direction === "vertical") {
2367
2443
  onDirectionToggle();
2368
2444
  } else {
2369
2445
  changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale].direction === "ltr" ? 1 : -1, 0);
@@ -2371,7 +2447,7 @@ const useGrid = (rows)=>{
2371
2447
  },
2372
2448
  onArrowUp: (event)=>{
2373
2449
  event.preventDefault();
2374
- if ((0,lib__WEBPACK_IMPORTED_MODULE_6__/* .isCtrl */ .yl)(event)) {
2450
+ if (direction === "horizontal") {
2375
2451
  onDirectionToggle();
2376
2452
  } else {
2377
2453
  changeActiveIndex(0, -1);
@@ -2408,23 +2484,6 @@ const useGrid = (rows)=>{
2408
2484
  }
2409
2485
  const { x , y } = position;
2410
2486
  const character = event.key.toLowerCase();
2411
- const isTogglingBlank = (0,lib__WEBPACK_IMPORTED_MODULE_6__/* .isCtrl */ .yl)(event) && character === "b";
2412
- const twoCharacterTile = config.getTwoCharacterTileByPrefix(character);
2413
- if (isTogglingBlank) {
2414
- event.preventDefault();
2415
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(position));
2416
- return;
2417
- }
2418
- if ((0,lib__WEBPACK_IMPORTED_MODULE_6__/* .isCtrl */ .yl)(event) && twoCharacterTile) {
2419
- event.preventDefault();
2420
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
2421
- x,
2422
- y,
2423
- value: twoCharacterTile
2424
- }));
2425
- moveFocus(1);
2426
- return;
2427
- }
2428
2487
  const cell = rows[y][x];
2429
2488
  const twoCharacterCandidate = cell.tile.character + character;
2430
2489
  if (config.twoCharacterTiles.includes(twoCharacterCandidate)) {
@@ -2455,6 +2514,7 @@ const useGrid = (rows)=>{
2455
2514
  }, [
2456
2515
  changeActiveIndex,
2457
2516
  config,
2517
+ direction,
2458
2518
  dispatch,
2459
2519
  locale,
2460
2520
  moveFocus,
@@ -2973,7 +3033,6 @@ const EmptyState = ({ children , className , variant })=>{
2973
3033
  content: content
2974
3034
  }),
2975
3035
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
2976
- className: (_EmptyState_module_scss__WEBPACK_IMPORTED_MODULE_7___default().content),
2977
3036
  children: children
2978
3037
  })
2979
3038
  ]
@@ -3435,7 +3494,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
3435
3494
 
3436
3495
 
3437
3496
 
3438
- const Modal = ({ children , className , isOpen , title , onClose })=>{
3497
+ const Modal = ({ children , className , footer , isOpen , title , onClose })=>{
3439
3498
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
3440
3499
  const [shouldReturnFocusAfterClose, setShouldReturnFocusAfterClose] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);
3441
3500
  (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useKey)("Escape", ()=>{
@@ -3485,6 +3544,10 @@ const Modal = ({ children , className , isOpen , title , onClose })=>{
3485
3544
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3486
3545
  className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().content),
3487
3546
  children: children
3547
+ }),
3548
+ footer && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3549
+ className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_10___default().footer),
3550
+ children: footer
3488
3551
  })
3489
3552
  ]
3490
3553
  })
@@ -3896,6 +3959,7 @@ const Tile = ({ character , className , color , fontFamily , points , size , tra
3896
3959
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
3897
3960
  fill: color,
3898
3961
  height: size,
3962
+ rx: size * 0.15,
3899
3963
  width: size,
3900
3964
  x: x,
3901
3965
  y: y
@@ -3903,7 +3967,7 @@ const Tile = ({ character , className , color , fontFamily , points , size , tra
3903
3967
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("text", {
3904
3968
  dominantBaseline: "central",
3905
3969
  fontFamily: fontFamily,
3906
- fontSize: 0.6 * size,
3970
+ fontSize: size * 0.6,
3907
3971
  fontWeight: "bold",
3908
3972
  textAnchor: "middle",
3909
3973
  x: x + size / 2,
@@ -3913,7 +3977,7 @@ const Tile = ({ character , className , color , fontFamily , points , size , tra
3913
3977
  typeof points === "number" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("text", {
3914
3978
  dominantBaseline: "text-after-edge",
3915
3979
  fontFamily: fontFamily,
3916
- fontSize: 0.25 * size,
3980
+ fontSize: size * 0.25,
3917
3981
  fontWeight: "bold",
3918
3982
  textAnchor: "end",
3919
3983
  x: x + size * 0.9,
@@ -4138,7 +4202,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4138
4202
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
4139
4203
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
4140
4204
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
4141
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(86953);
4205
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
4142
4206
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
4143
4207
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
4144
4208
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__);
@@ -4237,9 +4301,7 @@ const Rack = ({ className , tileSize })=>{
4237
4301
  changeActiveIndex(1);
4238
4302
  },
4239
4303
  onKeyDown: (event)=>{
4240
- if ((0,lib__WEBPACK_IMPORTED_MODULE_5__/* .isCtrl */ .yl)(event) && config.isTwoCharacterTilePrefix(event.key)) {
4241
- changeActiveIndex(1);
4242
- } else if (event.currentTarget.value === event.key) {
4304
+ if (event.currentTarget.value === event.key) {
4243
4305
  // change event did not fire because the same character was typed over the current one
4244
4306
  // but we still want to move the caret
4245
4307
  event.preventDefault();
@@ -4259,6 +4321,10 @@ const Rack = ({ className , tileSize })=>{
4259
4321
  children: tiles.map(({ character , tile }, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_RackTile__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
4260
4322
  activeIndexRef: activeIndexRef,
4261
4323
  character: character,
4324
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()({
4325
+ [(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default().sharpLeft)]: index !== 0,
4326
+ [(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default().sharpRight)]: index !== tiles.length - 1
4327
+ }),
4262
4328
  index: index,
4263
4329
  inputRef: tilesRefs[index],
4264
4330
  size: tileSize,
@@ -4286,17 +4352,19 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4286
4352
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
4287
4353
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
4288
4354
  /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7618);
4289
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4290
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4291
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
4292
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
4293
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86953);
4294
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4295
- /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(96815);
4296
- /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(52404);
4297
- /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__);
4298
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _Tile__WEBPACK_IMPORTED_MODULE_6__]);
4299
- ([state__WEBPACK_IMPORTED_MODULE_5__, _Tile__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4355
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
4356
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
4357
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
4358
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
4359
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
4360
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
4361
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
4362
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
4363
+ /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(96815);
4364
+ /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
4365
+ /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__);
4366
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_6__, _Tile__WEBPACK_IMPORTED_MODULE_7__]);
4367
+ ([state__WEBPACK_IMPORTED_MODULE_6__, _Tile__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
4300
4368
 
4301
4369
 
4302
4370
 
@@ -4305,26 +4373,27 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
4305
4373
 
4306
4374
 
4307
4375
 
4308
- const RackTile = ({ activeIndexRef , character , index , inputRef , size , tile , onChange , onKeyDown })=>{
4309
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
4310
- const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
4311
- const locale = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectLocale */ .fN);
4312
- const config = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectConfig */ .$o);
4313
- const points = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_5__/* .selectCharacterPoints */ .Or)(state, character));
4314
- const isValid = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_5__/* .selectCharacterIsValid */ .AN)(state, character));
4315
- const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(()=>{
4376
+
4377
+ const RackTile = ({ activeIndexRef , character , className , index , inputRef , size , tile , onChange , onKeyDown })=>{
4378
+ const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
4379
+ const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
4380
+ const locale = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectLocale */ .fN);
4381
+ const config = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectConfig */ .$o);
4382
+ const points = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_6__/* .selectCharacterPoints */ .Or)(state, character));
4383
+ const isValid = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_6__/* .selectCharacterIsValid */ .AN)(state, character));
4384
+ const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
4316
4385
  activeIndexRef.current = index;
4317
4386
  }, [
4318
4387
  index
4319
4388
  ]);
4320
- const handleChange = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
4389
+ const handleChange = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
4321
4390
  event.preventDefault();
4322
4391
  event.stopPropagation();
4323
- const value = (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .extractInputValue */ .WM)(event.target);
4324
- const characters = value ? (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .extractCharacters */ .nK)(config, value) : [
4392
+ const value = (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .extractInputValue */ .WM)(event.target);
4393
+ const characters = value ? (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .extractCharacters */ .nK)(config, value) : [
4325
4394
  null
4326
4395
  ];
4327
- dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .rackSlice.actions.changeCharacters */ .O_.actions.changeCharacters({
4396
+ dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .rackSlice.actions.changeCharacters */ .O_.actions.changeCharacters({
4328
4397
  characters,
4329
4398
  index
4330
4399
  }));
@@ -4334,39 +4403,27 @@ const RackTile = ({ activeIndexRef , character , index , inputRef , size , tile
4334
4403
  index,
4335
4404
  onChange
4336
4405
  ]);
4337
- const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>{
4338
- return (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .createKeyboardNavigation */ .np)({
4406
+ const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>{
4407
+ return (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .createKeyboardNavigation */ .np)({
4339
4408
  onBackspace: (event)=>{
4340
4409
  event.preventDefault();
4341
- dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .rackSlice.actions.changeCharacter */ .O_.actions.changeCharacter({
4410
+ dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .rackSlice.actions.changeCharacter */ .O_.actions.changeCharacter({
4342
4411
  character: null,
4343
4412
  index
4344
4413
  }));
4345
4414
  },
4346
- onKeyDown: (event)=>{
4347
- if ((0,lib__WEBPACK_IMPORTED_MODULE_4__/* .isCtrl */ .yl)(event) && config.isTwoCharacterTilePrefix(event.key)) {
4348
- event.preventDefault();
4349
- event.stopPropagation();
4350
- const twoTilesCharacter = config.getTwoCharacterTileByPrefix(event.key);
4351
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
4352
- dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .rackSlice.actions.changeCharacter */ .O_.actions.changeCharacter({
4353
- character: twoTilesCharacter,
4354
- index
4355
- }));
4356
- }
4357
- onKeyDown(event);
4358
- }
4415
+ onKeyDown
4359
4416
  });
4360
4417
  }, [
4361
4418
  index,
4362
4419
  onKeyDown
4363
4420
  ]);
4364
- return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Tile__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
4421
+ return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Tile__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
4365
4422
  "aria-label": translate("rack.tile.location", {
4366
4423
  index: (index + 1).toLocaleString(locale)
4367
4424
  }),
4368
4425
  autoFocus: index === 0,
4369
- className: (_Rack_module_scss__WEBPACK_IMPORTED_MODULE_7___default().tile),
4426
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default().tile), className),
4370
4427
  character: character === null ? undefined : character,
4371
4428
  highlighted: tile !== null,
4372
4429
  inputRef: inputRef,
@@ -4534,8 +4591,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
4534
4591
  const HeaderButton = ({ column })=>{
4535
4592
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
4536
4593
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
4537
- const sortColumn = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectResultsSortColumn */ .R);
4538
- const sortDirection = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectResultsSortDirection */ .sH);
4594
+ const sort = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectResultsSort */ .R);
4539
4595
  const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_6__/* .useTooltip */ .l)(translate(column.translationKey));
4540
4596
  const handleOrderChange = (columnId)=>{
4541
4597
  dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .resultsSlice.actions.sort */ ._C.actions.sort(columnId));
@@ -4553,12 +4609,12 @@ const HeaderButton = ({ column })=>{
4553
4609
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().headerButtonLabel),
4554
4610
  children: translate(column.translationKey)
4555
4611
  }),
4556
- sortColumn === column.id && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
4612
+ sort.column === column.id && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
4557
4613
  children: [
4558
- sortDirection === 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, {
4614
+ 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, {
4559
4615
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().sortIcon)
4560
4616
  }),
4561
- sortDirection === 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, {
4617
+ 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, {
4562
4618
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_7___default().sortIcon)
4563
4619
  })
4564
4620
  ]
@@ -4589,7 +4645,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4589
4645
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4590
4646
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4591
4647
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
4592
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86953);
4648
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
4593
4649
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4594
4650
  /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1966);
4595
4651
  /* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29287);
@@ -4609,13 +4665,14 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
4609
4665
 
4610
4666
 
4611
4667
  const Result = ({ data , index , style })=>{
4612
- const { highlightedIndex , results , onBlur =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onClick =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onFocus =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onMouseEnter =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onMouseLeave =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT } = data;
4668
+ const { highlightedIndex , results =[] , onBlur =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onClick =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onFocus =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onMouseEnter =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT , onMouseLeave =lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT } = data;
4613
4669
  const ref = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);
4670
+ const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)();
4614
4671
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectLocale */ .fN);
4615
4672
  const { consonants , vowels } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q[locale];
4616
4673
  const result = results[index];
4674
+ const isMatching = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_5__/* .selectIsResultMatching */ .yJ)(state, index));
4617
4675
  const otherWords = result.words.slice(1).join(" / ").toLocaleUpperCase();
4618
- const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)();
4619
4676
  const enabledColumns = Object.fromEntries(columns.map((column)=>[
4620
4677
  column.id,
4621
4678
  true
@@ -4628,7 +4685,8 @@ const Result = ({ data , index , style })=>{
4628
4685
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("button", {
4629
4686
  "aria-label": result.word,
4630
4687
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_9___default().result), {
4631
- [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_9___default().highlighted)]: index === highlightedIndex
4688
+ [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_9___default().highlighted)]: index === highlightedIndex,
4689
+ [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_9___default().notMatching)]: !isMatching
4632
4690
  }),
4633
4691
  ref: ref,
4634
4692
  style: style,
@@ -4742,9 +4800,7 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4742
4800
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
4743
4801
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectLocale */ .fN);
4744
4802
  const { direction } = i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale];
4745
- const allResults = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSortedResults */ .f2);
4746
- const filteredResults = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSortedFilteredResults */ .dN);
4747
- const results = filteredResults || [];
4803
+ const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResults */ .x5);
4748
4804
  const isLoading = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectIsLoading */ .xU);
4749
4805
  const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectAreResultsOutdated */ .Mj);
4750
4806
  const error = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSolveError */ .Rn);
@@ -4762,7 +4818,7 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4762
4818
  const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z)();
4763
4819
  const scrollToIndex = typeof highlightedIndex === "number" ? highlightedIndex : 0;
4764
4820
  const scrollToIndexRef = (0,react_use__WEBPACK_IMPORTED_MODULE_3__.useLatest)(scrollToIndex);
4765
- const hasResults = typeof error === "undefined" && typeof filteredResults !== "undefined" && typeof allResults !== "undefined";
4821
+ const hasResults = typeof error === "undefined" && typeof results !== "undefined";
4766
4822
  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{
4767
4823
  // without setTimeout, the initial scrolling offset is calculated
4768
4824
  // incorrectly, as the list is not fully rendered by the browser yet
@@ -4775,7 +4831,7 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4775
4831
  globalThis.clearTimeout(timeout);
4776
4832
  };
4777
4833
  }, [
4778
- allResults,
4834
+ results,
4779
4835
  listRef,
4780
4836
  scrollToIndexRef
4781
4837
  ]);
@@ -4799,7 +4855,7 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4799
4855
  variant: "error",
4800
4856
  children: error.message
4801
4857
  }),
4802
- typeof error === "undefined" && typeof filteredResults === "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4858
+ typeof error === "undefined" && typeof results === "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4803
4859
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4804
4860
  variant: "info",
4805
4861
  children: [
@@ -4821,41 +4877,32 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
4821
4877
  })
4822
4878
  ]
4823
4879
  }),
4824
- !isOutdated && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
4825
- children: [
4826
- allResults.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4827
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4828
- variant: "warning",
4829
- children: translate("results.empty-state.no-results")
4830
- }),
4831
- allResults.length > 0 && filteredResults.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4832
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4833
- variant: "info",
4834
- children: translate("results.empty-state.no-filtered-results")
4880
+ !isOutdated && results.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
4881
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().emptyState),
4882
+ variant: "warning",
4883
+ children: translate("results.empty-state.no-results")
4884
+ }),
4885
+ !isOutdated && results.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
4886
+ className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().listContainer),
4887
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_window__WEBPACK_IMPORTED_MODULE_4__.FixedSizeList, {
4888
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().list), {
4889
+ [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().outdated)]: isOutdated
4835
4890
  }),
4836
- allResults.length > 0 && filteredResults.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
4837
- className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().listContainer),
4838
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_window__WEBPACK_IMPORTED_MODULE_4__.FixedSizeList, {
4839
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().list), {
4840
- [(_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().outdated)]: isOutdated
4841
- }),
4842
- direction: direction,
4843
- height: height,
4844
- itemCount: filteredResults.length,
4845
- itemData: itemData,
4846
- itemSize: parameters__WEBPACK_IMPORTED_MODULE_6__/* .RESULTS_ITEM_HEIGHT */ .rx,
4847
- ref: setListRef,
4848
- width: width,
4849
- children: _Result__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z
4850
- })
4851
- })
4852
- ]
4891
+ direction: direction,
4892
+ height: height,
4893
+ itemCount: results.length,
4894
+ itemData: itemData,
4895
+ itemSize: parameters__WEBPACK_IMPORTED_MODULE_6__/* .RESULTS_ITEM_HEIGHT */ .rx,
4896
+ ref: setListRef,
4897
+ width: width,
4898
+ children: _Result__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z
4899
+ })
4853
4900
  })
4854
4901
  ]
4855
4902
  })
4856
4903
  ]
4857
4904
  }),
4858
- hasResults && allResults.length > 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResultsInput__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
4905
+ hasResults && results.length > 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResultsInput__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
4859
4906
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_16___default().input)
4860
4907
  }),
4861
4908
  isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Loading__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {})
@@ -5076,7 +5123,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5076
5123
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
5077
5124
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
5078
5125
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
5079
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86953);
5126
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
5080
5127
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5081
5128
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60066);
5082
5129
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__);
@@ -5233,16 +5280,18 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5233
5280
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
5234
5281
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
5235
5282
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
5236
- /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17587);
5237
- /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(76195);
5238
- /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(35917);
5239
- /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(95937);
5240
- /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(96813);
5241
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(99260);
5242
- /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(41674);
5243
- /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14__);
5244
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _Board__WEBPACK_IMPORTED_MODULE_8__, _Dictionary__WEBPACK_IMPORTED_MODULE_9__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_10__, _Rack__WEBPACK_IMPORTED_MODULE_11__, _Results__WEBPACK_IMPORTED_MODULE_12__, _components__WEBPACK_IMPORTED_MODULE_13__]);
5245
- ([hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _Board__WEBPACK_IMPORTED_MODULE_8__, _Dictionary__WEBPACK_IMPORTED_MODULE_9__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_10__, _Rack__WEBPACK_IMPORTED_MODULE_11__, _Results__WEBPACK_IMPORTED_MODULE_12__, _components__WEBPACK_IMPORTED_MODULE_13__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
5283
+ /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15982);
5284
+ /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17587);
5285
+ /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76195);
5286
+ /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35917);
5287
+ /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(95937);
5288
+ /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(96813);
5289
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(99260);
5290
+ /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(41674);
5291
+ /* harmony import */ var _Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15__);
5292
+ 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__]);
5293
+ ([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__);
5294
+
5246
5295
 
5247
5296
 
5248
5297
 
@@ -5263,17 +5312,15 @@ const Solver = ({ className , height , width , onShowResults })=>{
5263
5312
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
5264
5313
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
5265
5314
  const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useIsTouchDevice */ .YQ)();
5266
- const { componentsSpacing , isBoardFullWidth , showColumn , showCompactControls , showFloatingSolveButton } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
5267
- const [bottomContainerRef, { height: bottomContainerHeight }] = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useMeasure)();
5268
- const [columnRef, { width: columnWidth }] = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useMeasure)();
5269
- const maxBoardWidth = width - columnWidth - (showColumn ? componentsSpacing : 0) - 2 * componentsSpacing;
5270
- const maxBoardHeight = isBoardFullWidth ? Number.POSITIVE_INFINITY : Math.max(height - bottomContainerHeight, 0);
5315
+ const { columnWidth , componentsSpacing , isBoardFullWidth , showColumn , showCompactControls , showFloatingSolveButton } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
5271
5316
  const config = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectConfig */ .$o);
5272
5317
  const error = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSolveError */ .Rn);
5273
5318
  const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectAreResultsOutdated */ .Mj);
5274
5319
  const resultCandidate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResultCandidate */ .Xk);
5275
- const allResults = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSortedResults */ .f2);
5276
- const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectSortedFilteredResults */ .dN);
5320
+ const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResults */ .x5);
5321
+ const [bottomContainerRef, { height: bottomContainerHeight }] = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useMeasure)();
5322
+ const maxBoardWidth = width - columnWidth - (showColumn ? componentsSpacing : 0) - 2 * componentsSpacing;
5323
+ const maxBoardHeight = isBoardFullWidth ? Number.POSITIVE_INFINITY : Math.max(height - bottomContainerHeight, 0);
5277
5324
  const [bestResult] = results || [];
5278
5325
  const cellWidth = (maxBoardWidth - (config.boardWidth + 1) * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF) / config.boardWidth;
5279
5326
  const cellHeight = (maxBoardHeight - (config.boardHeight + 1) * parameters__WEBPACK_IMPORTED_MODULE_6__/* .BORDER_WIDTH */ .YF) / config.boardHeight;
@@ -5329,44 +5376,43 @@ const Solver = ({ className , height , width , onShowResults })=>{
5329
5376
  isOutdated
5330
5377
  ]);
5331
5378
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5332
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().solver), className),
5379
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solver), className),
5333
5380
  children: [
5334
5381
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
5335
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().container),
5382
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().container),
5336
5383
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5337
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().content),
5384
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().content),
5338
5385
  children: [
5339
5386
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
5340
- id: "a",
5341
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().boardContainer),
5387
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().boardContainer),
5342
5388
  onSubmit: handleSubmit,
5343
5389
  children: [
5344
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Board__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5390
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Board__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
5345
5391
  cellSize: cellSizeSafe,
5346
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().board)
5392
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().board)
5347
5393
  }),
5348
5394
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
5349
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().submitInput),
5395
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().submitInput),
5350
5396
  tabIndex: -1,
5351
5397
  type: "submit"
5352
5398
  })
5353
5399
  ]
5354
5400
  }),
5355
5401
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5356
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().column),
5357
- ref: columnRef,
5402
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().column),
5358
5403
  children: [
5359
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Results__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
5360
- callbacks: callbacks
5404
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Results__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
5405
+ callbacks: callbacks,
5406
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().results)
5361
5407
  }),
5362
5408
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5363
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().dictionaryContainer),
5409
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionaryContainer),
5364
5410
  children: [
5365
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Dictionary__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
5366
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().dictionary)
5411
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Dictionary__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
5412
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionary)
5367
5413
  }),
5368
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_DictionaryInput__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
5369
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().dictionaryInput)
5414
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_DictionaryInput__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
5415
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().dictionaryInput)
5370
5416
  })
5371
5417
  ]
5372
5418
  })
@@ -5376,42 +5422,41 @@ const Solver = ({ className , height , width , onShowResults })=>{
5376
5422
  })
5377
5423
  }),
5378
5424
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
5379
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().bottomContainer),
5425
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().bottomContainer),
5380
5426
  ref: bottomContainerRef,
5381
5427
  children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5382
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().bottomContent),
5428
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().bottomContent),
5383
5429
  children: [
5384
5430
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
5385
- id: "b",
5386
5431
  onSubmit: handleSubmit,
5387
5432
  children: [
5388
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Rack__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
5389
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().rack),
5433
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Rack__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
5434
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().rack),
5390
5435
  tileSize: tileSize
5391
5436
  }),
5392
5437
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
5393
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().submitInput),
5438
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().submitInput),
5394
5439
  tabIndex: -1,
5395
5440
  type: "submit"
5396
5441
  })
5397
5442
  ]
5398
5443
  }),
5399
5444
  showCompactControls && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
5400
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().controls),
5445
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().controls),
5401
5446
  style: {
5402
5447
  maxWidth: maxControlsWidth
5403
5448
  },
5404
5449
  children: [
5405
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_13__/* .ResultCandidatePicker */ .WI, {
5450
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_14__/* .ResultCandidatePicker */ .WI, {
5406
5451
  onResultClick: onShowResults
5407
5452
  }),
5408
- error && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_13__/* .EmptyState */ .ub, {
5409
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().emptyState),
5453
+ error && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5454
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
5410
5455
  variant: "error",
5411
5456
  children: error.message
5412
5457
  }),
5413
- allResults && allResults.length === 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_13__/* .EmptyState */ .ub, {
5414
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().emptyState),
5458
+ results && results.length === 0 && !isOutdated && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Alert__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
5459
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().emptyState),
5415
5460
  variant: "warning",
5416
5461
  children: translate("results.empty-state.no-results")
5417
5462
  })
@@ -5420,8 +5465,8 @@ const Solver = ({ className , height , width , onShowResults })=>{
5420
5465
  ]
5421
5466
  })
5422
5467
  }),
5423
- showFloatingSolveButton && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_13__/* .FloatingSolveButton */ .DY, {
5424
- className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_14___default().solve),
5468
+ showFloatingSolveButton && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_14__/* .FloatingSolveButton */ .DY, {
5469
+ className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_15___default().solve),
5425
5470
  onClick: handleSubmit
5426
5471
  })
5427
5472
  ]
@@ -5432,67 +5477,6 @@ const Solver = ({ className , height , width , onShowResults })=>{
5432
5477
  __webpack_async_result__();
5433
5478
  } catch(e) { __webpack_async_result__(e); } });
5434
5479
 
5435
- /***/ }),
5436
-
5437
- /***/ 64574:
5438
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5439
-
5440
- "use strict";
5441
-
5442
- // EXPORTS
5443
- __webpack_require__.d(__webpack_exports__, {
5444
- "Z": () => (/* reexport */ EmptyState_EmptyState)
5445
- });
5446
-
5447
- // EXTERNAL MODULE: external "react/jsx-runtime"
5448
- var jsx_runtime_ = __webpack_require__(20997);
5449
- // EXTERNAL MODULE: external "classnames"
5450
- var external_classnames_ = __webpack_require__(59003);
5451
- var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
5452
- // EXTERNAL MODULE: ./src/icons/index.ts + 40 modules
5453
- var icons = __webpack_require__(69461);
5454
- // EXTERNAL MODULE: ./src/components/Solver/components/EmptyState/EmptyState.module.scss
5455
- var EmptyState_module = __webpack_require__(12231);
5456
- var EmptyState_module_default = /*#__PURE__*/__webpack_require__.n(EmptyState_module);
5457
- ;// CONCATENATED MODULE: ./src/components/Solver/components/EmptyState/EmptyState.tsx
5458
-
5459
-
5460
-
5461
-
5462
- const ICON_PER_TYPE = {
5463
- error: icons/* CrossCircleFill */.Gw,
5464
- info: icons/* InfoCircleFill */.UT,
5465
- warning: icons/* ExclamationTriangleFill */.x_
5466
- };
5467
- const EmptyState = ({ children , className , variant , ...props })=>{
5468
- const Icon = ICON_PER_TYPE[variant];
5469
- return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
5470
- className: external_classnames_default()((EmptyState_module_default()).emptyState, className, {
5471
- [(EmptyState_module_default()).error]: variant === "error",
5472
- [(EmptyState_module_default()).info]: variant === "info",
5473
- [(EmptyState_module_default()).warning]: variant === "warning"
5474
- }),
5475
- ...props,
5476
- children: [
5477
- /*#__PURE__*/ jsx_runtime_.jsx("div", {
5478
- className: (EmptyState_module_default()).iconContainer,
5479
- children: /*#__PURE__*/ jsx_runtime_.jsx(Icon, {
5480
- className: (EmptyState_module_default()).icon
5481
- })
5482
- }),
5483
- /*#__PURE__*/ jsx_runtime_.jsx("div", {
5484
- className: (EmptyState_module_default()).content,
5485
- children: children
5486
- })
5487
- ]
5488
- });
5489
- };
5490
- /* harmony default export */ const EmptyState_EmptyState = (EmptyState);
5491
-
5492
- ;// CONCATENATED MODULE: ./src/components/Solver/components/EmptyState/index.ts
5493
-
5494
-
5495
-
5496
5480
  /***/ }),
5497
5481
 
5498
5482
  /***/ 90919:
@@ -5510,7 +5494,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5510
5494
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
5511
5495
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
5512
5496
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69461);
5513
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86953);
5497
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
5514
5498
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5515
5499
  /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83900);
5516
5500
  /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33538);
@@ -5688,13 +5672,12 @@ const ResultCandidatePicker = ({ className , onResultClick , ...props })=>{
5688
5672
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectLocale */ .fN);
5689
5673
  const isLoading = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectIsLoading */ .xU);
5690
5674
  const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectAreResultsOutdated */ .Mj);
5691
- const sortedResults = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectSortedResults */ .f2);
5692
- const results = sortedResults || [];
5675
+ const results = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResults */ .x5);
5693
5676
  const resultCandidate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultCandidate */ .Xk);
5694
- const index = resultCandidate ? results.findIndex((result)=>result.id === resultCandidate.id) : -1;
5677
+ const index = resultCandidate && results ? results.findIndex((result)=>result.id === resultCandidate.id) : -1;
5695
5678
  const disabled = isOutdated || !resultCandidate;
5696
- const isPreviousDisabled = index <= 0 || disabled;
5697
- const isNextDisabled = index >= results.length - 1 || disabled;
5679
+ const isPreviousDisabled = !results || index <= 0 || disabled;
5680
+ const isNextDisabled = !results || index >= results.length - 1 || disabled;
5698
5681
  const bothEnabled = !isPreviousDisabled && !isNextDisabled;
5699
5682
  const { showFloatingSolveButton } = (0,hooks__WEBPACK_IMPORTED_MODULE_3__/* .useAppLayout */ .Ft)();
5700
5683
  const handleNextClick = ()=>{
@@ -5814,17 +5797,14 @@ __webpack_async_result__();
5814
5797
  "use strict";
5815
5798
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
5816
5799
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5817
- /* harmony export */ "DY": () => (/* reexport safe */ _FloatingSolveButton__WEBPACK_IMPORTED_MODULE_1__.Z),
5818
- /* harmony export */ "WI": () => (/* reexport safe */ _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_3__.Z),
5819
- /* harmony export */ "ub": () => (/* reexport safe */ _EmptyState__WEBPACK_IMPORTED_MODULE_0__.Z)
5800
+ /* harmony export */ "DY": () => (/* reexport safe */ _FloatingSolveButton__WEBPACK_IMPORTED_MODULE_0__.Z),
5801
+ /* harmony export */ "WI": () => (/* reexport safe */ _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_2__.Z)
5820
5802
  /* harmony export */ });
5821
- /* harmony import */ var _EmptyState__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64574);
5822
- /* harmony import */ var _FloatingSolveButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71832);
5823
- /* harmony import */ var _InsertButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33776);
5824
- /* harmony import */ var _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45100);
5825
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_FloatingSolveButton__WEBPACK_IMPORTED_MODULE_1__, _InsertButton__WEBPACK_IMPORTED_MODULE_2__, _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_3__]);
5826
- ([_FloatingSolveButton__WEBPACK_IMPORTED_MODULE_1__, _InsertButton__WEBPACK_IMPORTED_MODULE_2__, _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
5827
-
5803
+ /* harmony import */ var _FloatingSolveButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71832);
5804
+ /* harmony import */ var _InsertButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33776);
5805
+ /* harmony import */ var _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45100);
5806
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_FloatingSolveButton__WEBPACK_IMPORTED_MODULE_0__, _InsertButton__WEBPACK_IMPORTED_MODULE_1__, _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_2__]);
5807
+ ([_FloatingSolveButton__WEBPACK_IMPORTED_MODULE_0__, _InsertButton__WEBPACK_IMPORTED_MODULE_1__, _ResultCandidatePicker__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
5828
5808
 
5829
5809
 
5830
5810
 
@@ -6044,7 +6024,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6044
6024
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
6045
6025
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6046
6026
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
6047
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(86953);
6027
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
6048
6028
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
6049
6029
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
6050
6030
  /* harmony import */ var _TilePure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83147);
@@ -6064,14 +6044,11 @@ const Tile = ({ "aria-label": ariaLabel , autoFocus , className , character =""
6064
6044
  const { animateTile , showTilePoints } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
6065
6045
  const { pointsFontSize , tileFontSize , tileSize } = (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .getTileSizes */ .vc)(size);
6066
6046
  const style = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>({
6047
+ fontSize: tileFontSize,
6067
6048
  height: tileSize,
6068
6049
  width: tileSize
6069
6050
  }), [
6070
- tileSize
6071
- ]);
6072
- const characterStyle = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>({
6073
- fontSize: tileFontSize
6074
- }), [
6051
+ tileSize,
6075
6052
  tileFontSize
6076
6053
  ]);
6077
6054
  const pointsStyle = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>({
@@ -6119,7 +6096,6 @@ const Tile = ({ "aria-label": ariaLabel , autoFocus , className , character =""
6119
6096
  autoFocus: autoFocus,
6120
6097
  canShowPoints: canShowPoints,
6121
6098
  character: character,
6122
- characterStyle: characterStyle,
6123
6099
  className: className,
6124
6100
  disabled: disabled,
6125
6101
  highlighted: highlighted,
@@ -6166,21 +6142,23 @@ __webpack_async_result__();
6166
6142
 
6167
6143
 
6168
6144
 
6169
- const TilePure = ({ "aria-label": ariaLabel , autoFocus , canShowPoints , character , characterStyle , className , disabled , highlighted , inputRef , isBlank , isValid , placeholder , points , pointsFormatted , pointsStyle , raised , style , tabIndex , onChange , onFocus , onKeyDown })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
6145
+ const TilePure = ({ "aria-label": ariaLabel , autoFocus , canShowPoints , character , className , disabled , highlighted , inputRef , isBlank , isValid , placeholder , points , pointsFormatted , pointsStyle , raised , style , tabIndex , onChange , onFocus , onKeyDown })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
6170
6146
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().tile), className, {
6171
6147
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().blank)]: isBlank,
6172
6148
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().disabled)]: disabled,
6173
6149
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().empty)]: !character,
6174
6150
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().highlighted)]: highlighted,
6175
- [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().raised)]: raised,
6151
+ [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().placeholder)]: !character,
6176
6152
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points1)]: points === 1,
6177
6153
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points2)]: points === 2,
6178
6154
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points3)]: points === 3,
6179
6155
  [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points4)]: points === 4,
6180
- [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points5)]: typeof points === "number" && points >= 5
6156
+ [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points5)]: typeof points === "number" && points >= 5,
6157
+ [(_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().raised)]: raised
6181
6158
  }),
6182
6159
  style: style,
6183
6160
  children: [
6161
+ character || placeholder,
6184
6162
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
6185
6163
  "aria-label": ariaLabel,
6186
6164
  autoCapitalize: "none",
@@ -6197,18 +6175,6 @@ const TilePure = ({ "aria-label": ariaLabel , autoFocus , canShowPoints , charac
6197
6175
  onFocus: onFocus,
6198
6176
  onKeyDown: onKeyDown
6199
6177
  }),
6200
- placeholder && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
6201
- className: (_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().placeholder),
6202
- style: characterStyle,
6203
- tabIndex: -1,
6204
- children: placeholder
6205
- }),
6206
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
6207
- className: (_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().character),
6208
- style: characterStyle,
6209
- tabIndex: -1,
6210
- children: character
6211
- }),
6212
6178
  canShowPoints && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
6213
6179
  className: (_Tile_module_scss__WEBPACK_IMPORTED_MODULE_4___default().points),
6214
6180
  style: pointsStyle,
@@ -6240,48 +6206,6 @@ _Tile__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (awa
6240
6206
  __webpack_async_result__();
6241
6207
  } catch(e) { __webpack_async_result__(e); } });
6242
6208
 
6243
- /***/ }),
6244
-
6245
- /***/ 48026:
6246
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6247
-
6248
- "use strict";
6249
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6250
- /* harmony export */ "v": () => (/* binding */ MODIFIERS)
6251
- /* harmony export */ });
6252
- /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53229);
6253
- /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_0__);
6254
-
6255
- const ARROW_SIZE = parseInt((_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_0___default().ARROW_SIZE), 10);
6256
- const OFFSET = parseInt((_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_0___default().OFFSET), 10);
6257
- const PREVENT_OVERFLOW = parseInt((_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_0___default().PREVENT_OVERFLOW), 10);
6258
- const MODIFIERS = [
6259
- {
6260
- name: "preventOverflow",
6261
- options: {
6262
- padding: PREVENT_OVERFLOW,
6263
- rootBoundary: "document"
6264
- }
6265
- },
6266
- {
6267
- name: "flip",
6268
- options: {
6269
- padding: ARROW_SIZE,
6270
- rootBoundary: "document"
6271
- }
6272
- },
6273
- {
6274
- name: "offset",
6275
- options: {
6276
- offset: [
6277
- 0,
6278
- OFFSET + ARROW_SIZE
6279
- ]
6280
- }
6281
- }
6282
- ];
6283
-
6284
-
6285
6209
  /***/ }),
6286
6210
 
6287
6211
  /***/ 59004:
@@ -6312,23 +6236,17 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6312
6236
  /* harmony export */ });
6313
6237
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
6314
6238
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
6315
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
6316
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
6317
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
6318
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
6319
- /* harmony import */ var react_popper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42932);
6320
- /* harmony import */ var react_popper__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_popper__WEBPACK_IMPORTED_MODULE_3__);
6321
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
6322
- /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
6323
- /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
6324
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(86953);
6325
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48026);
6326
- /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(53229);
6327
- /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__);
6328
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_5__]);
6329
- hooks__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6330
-
6331
-
6239
+ /* harmony import */ var _floating_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21964);
6240
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
6241
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
6242
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
6243
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6244
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
6245
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
6246
+ /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(53229);
6247
+ /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__);
6248
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_4__]);
6249
+ ([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6332
6250
 
6333
6251
 
6334
6252
 
@@ -6336,62 +6254,63 @@ hooks__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (awa
6336
6254
 
6337
6255
 
6338
6256
 
6257
+ const ARROW_SIZE = 7;
6258
+ const ARROW_GAP = 3;
6259
+ const PADDING = 10;
6339
6260
  // eslint-disable-next-line max-statements
6340
- const useTooltip = (tooltip, { className , placement ="top" , onBlur =lib__WEBPACK_IMPORTED_MODULE_6__/* .noop */ .ZT , onFocus =lib__WEBPACK_IMPORTED_MODULE_6__/* .noop */ .ZT , onMouseOut =lib__WEBPACK_IMPORTED_MODULE_6__/* .noop */ .ZT , onMouseOver =lib__WEBPACK_IMPORTED_MODULE_6__/* .noop */ .ZT } = {})=>{
6341
- const id = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useUniqueId */ .Ld)();
6342
- const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useIsTouchDevice */ .YQ)();
6261
+ const useTooltip = (tooltip, { className , placement ="top" , onBlur =lib__WEBPACK_IMPORTED_MODULE_5__/* .noop */ .ZT , onFocus =lib__WEBPACK_IMPORTED_MODULE_5__/* .noop */ .ZT , onMouseOut =lib__WEBPACK_IMPORTED_MODULE_5__/* .noop */ .ZT , onMouseOver =lib__WEBPACK_IMPORTED_MODULE_5__/* .noop */ .ZT } = {})=>{
6262
+ const id = (0,react__WEBPACK_IMPORTED_MODULE_3__.useId)();
6263
+ const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useIsTouchDevice */ .YQ)();
6343
6264
  const isEnabled = Boolean(tooltip) || tooltip === 0;
6344
- const isMounted = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useMountedState)();
6345
- const [isShown, setIsShown] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);
6346
- const [referenceElement, setReferenceElement] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);
6347
- const [popperElement, setPopperElement] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);
6348
- const [arrowElement, setArrowElement] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);
6349
- const { attributes , styles: popperStyles , update } = (0,react_popper__WEBPACK_IMPORTED_MODULE_3__.usePopper)(referenceElement, popperElement, {
6350
- modifiers: [
6351
- {
6352
- name: "arrow",
6353
- options: {
6354
- element: arrowElement
6355
- }
6356
- },
6357
- ..._constants__WEBPACK_IMPORTED_MODULE_7__/* .MODIFIERS */ .v
6358
- ],
6359
- placement
6360
- });
6361
- const computedPlacement = attributes.popper ? attributes.popper["data-popper-placement"] : placement;
6362
- const ariaAttributes = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>isShown ? {
6265
+ const [isShown, setIsShown] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false);
6266
+ const arrowRef = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null);
6267
+ const ariaAttributes = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>isShown ? {
6363
6268
  "aria-describedby": id
6364
6269
  } : {}, [
6365
6270
  id,
6366
6271
  isShown
6367
6272
  ]);
6368
- const handleBlur = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
6273
+ const { x , y , context , refs , strategy } = (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.useFloating)({
6274
+ middleware: [
6275
+ (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.flip)(),
6276
+ (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.shift)({
6277
+ padding: PADDING
6278
+ }),
6279
+ (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.offset)(ARROW_SIZE + ARROW_GAP),
6280
+ (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.arrow)({
6281
+ element: arrowRef
6282
+ })
6283
+ ],
6284
+ placement,
6285
+ whileElementsMounted: _floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.autoUpdate
6286
+ });
6287
+ const handleBlur = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
6369
6288
  onBlur(event);
6370
6289
  setIsShown(false);
6371
6290
  }, [
6372
6291
  onBlur
6373
6292
  ]);
6374
- const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
6293
+ const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
6375
6294
  onFocus(event);
6376
6295
  setIsShown(true);
6377
6296
  }, [
6378
6297
  onFocus
6379
6298
  ]);
6380
- const handleMouseOut = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
6299
+ const handleMouseOut = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
6381
6300
  onMouseOut(event);
6382
6301
  setIsShown(false);
6383
6302
  }, [
6384
6303
  onMouseOut
6385
6304
  ]);
6386
- const handleMouseOver = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
6305
+ const handleMouseOver = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((event)=>{
6387
6306
  onMouseOver(event);
6388
6307
  setIsShown(true);
6389
6308
  }, [
6390
6309
  onMouseOver
6391
6310
  ]);
6392
- const mouseTriggerProps = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>({
6311
+ const mouseTriggerProps = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>({
6393
6312
  ...ariaAttributes,
6394
- ref: setReferenceElement,
6313
+ ref: refs.setReference,
6395
6314
  onBlur: handleBlur,
6396
6315
  onFocus: handleFocus,
6397
6316
  onMouseOut: handleMouseOut,
@@ -6403,36 +6322,29 @@ const useTooltip = (tooltip, { className , placement ="top" , onBlur =lib__WEBPA
6403
6322
  handleMouseOut,
6404
6323
  handleMouseOver
6405
6324
  ]);
6406
- const touchTriggerProps = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>({
6325
+ const touchTriggerProps = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>({
6407
6326
  ...ariaAttributes,
6408
- ref: setReferenceElement
6327
+ ref: refs.setReference
6409
6328
  }), [
6410
6329
  ariaAttributes
6411
6330
  ]);
6412
6331
  const triggerProps = isTouchDevice ? touchTriggerProps : mouseTriggerProps;
6413
- (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useRafLoop)(()=>{
6414
- if (isMounted() && update) {
6415
- update();
6416
- }
6417
- });
6418
- (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .usePortal */ .vI)(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
6419
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default().tooltip), className, {
6420
- [(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default().top)]: computedPlacement === "top",
6421
- [(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default().right)]: computedPlacement === "right",
6422
- [(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default().bottom)]: computedPlacement === "bottom",
6423
- [(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default().left)]: computedPlacement === "left"
6424
- }),
6425
- ref: setPopperElement,
6426
- style: popperStyles.popper,
6427
- ...attributes.popper,
6332
+ (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .usePortal */ .vI)(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
6333
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6___default().tooltip), className),
6334
+ ref: refs.setFloating,
6335
+ style: {
6336
+ position: strategy,
6337
+ top: y ?? 0,
6338
+ left: x ?? 0
6339
+ },
6428
6340
  children: [
6429
6341
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
6430
6342
  children: tooltip
6431
6343
  }),
6432
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
6433
- className: (_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default().arrow),
6434
- ref: setArrowElement,
6435
- style: popperStyles.arrow
6344
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.FloatingArrow, {
6345
+ className: (_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6___default().arrow),
6346
+ context: context,
6347
+ ref: arrowRef
6436
6348
  })
6437
6349
  ]
6438
6350
  }), {
@@ -6453,56 +6365,58 @@ __webpack_async_result__();
6453
6365
  "use strict";
6454
6366
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6455
6367
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6456
- /* harmony export */ "Ct": () => (/* reexport safe */ _Badge__WEBPACK_IMPORTED_MODULE_0__.Z),
6457
- /* harmony export */ "Ex": () => (/* reexport safe */ _Progress__WEBPACK_IMPORTED_MODULE_16__.Z),
6458
- /* harmony export */ "ME": () => (/* reexport safe */ _Solver__WEBPACK_IMPORTED_MODULE_23__.Z),
6459
- /* harmony export */ "QR": () => (/* reexport safe */ _SeoMessage__WEBPACK_IMPORTED_MODULE_21__.Z),
6460
- /* harmony export */ "TR": () => (/* reexport safe */ _Logo__WEBPACK_IMPORTED_MODULE_10__.Z),
6461
- /* harmony export */ "TX": () => (/* reexport safe */ _NotFound__WEBPACK_IMPORTED_MODULE_14__.Z),
6462
- /* harmony export */ "Xy": () => (/* reexport safe */ _Dictionary__WEBPACK_IMPORTED_MODULE_4__.Z),
6463
- /* harmony export */ "Y8": () => (/* reexport safe */ _Radio__WEBPACK_IMPORTED_MODULE_18__.Z),
6464
- /* harmony export */ "Z$": () => (/* reexport safe */ _DictionaryInput__WEBPACK_IMPORTED_MODULE_5__.Z),
6465
- /* harmony export */ "_m": () => (/* reexport safe */ _NavButtons__WEBPACK_IMPORTED_MODULE_13__.Z),
6466
- /* harmony export */ "hL": () => (/* reexport safe */ _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_11__.Z),
6467
- /* harmony export */ "n9": () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_28__.Z),
6468
- /* harmony export */ "sr": () => (/* reexport safe */ _Key__WEBPACK_IMPORTED_MODULE_8__.Z),
6469
- /* harmony export */ "u9": () => (/* reexport safe */ _Results__WEBPACK_IMPORTED_MODULE_19__.Z),
6470
- /* harmony export */ "u_": () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_12__.Z),
6471
- /* harmony export */ "uz": () => (/* reexport safe */ _SvgFontFix__WEBPACK_IMPORTED_MODULE_27__.Z),
6472
- /* harmony export */ "zx": () => (/* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_2__.Z)
6368
+ /* harmony export */ "Ct": () => (/* reexport safe */ _Badge__WEBPACK_IMPORTED_MODULE_1__.Z),
6369
+ /* harmony export */ "Ex": () => (/* reexport safe */ _Progress__WEBPACK_IMPORTED_MODULE_17__.Z),
6370
+ /* harmony export */ "ME": () => (/* reexport safe */ _Solver__WEBPACK_IMPORTED_MODULE_24__.Z),
6371
+ /* harmony export */ "QR": () => (/* reexport safe */ _SeoMessage__WEBPACK_IMPORTED_MODULE_22__.Z),
6372
+ /* harmony export */ "TR": () => (/* reexport safe */ _Logo__WEBPACK_IMPORTED_MODULE_11__.Z),
6373
+ /* harmony export */ "TX": () => (/* reexport safe */ _NotFound__WEBPACK_IMPORTED_MODULE_15__.Z),
6374
+ /* harmony export */ "Xy": () => (/* reexport safe */ _Dictionary__WEBPACK_IMPORTED_MODULE_5__.Z),
6375
+ /* harmony export */ "Y8": () => (/* reexport safe */ _Radio__WEBPACK_IMPORTED_MODULE_19__.Z),
6376
+ /* harmony export */ "Z$": () => (/* reexport safe */ _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__.Z),
6377
+ /* harmony export */ "_m": () => (/* reexport safe */ _NavButtons__WEBPACK_IMPORTED_MODULE_14__.Z),
6378
+ /* harmony export */ "hL": () => (/* reexport safe */ _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_12__.Z),
6379
+ /* harmony export */ "n9": () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_29__.Z),
6380
+ /* harmony export */ "sr": () => (/* reexport safe */ _Key__WEBPACK_IMPORTED_MODULE_9__.Z),
6381
+ /* harmony export */ "u9": () => (/* reexport safe */ _Results__WEBPACK_IMPORTED_MODULE_20__.Z),
6382
+ /* harmony export */ "u_": () => (/* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_13__.Z),
6383
+ /* harmony export */ "uz": () => (/* reexport safe */ _SvgFontFix__WEBPACK_IMPORTED_MODULE_28__.Z),
6384
+ /* harmony export */ "zx": () => (/* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_3__.Z)
6473
6385
  /* harmony export */ });
6474
- /* harmony import */ var _Badge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27126);
6475
- /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17587);
6476
- /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83900);
6477
- /* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42060);
6478
- /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(76195);
6479
- /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35917);
6480
- /* harmony import */ var _EmptyState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77385);
6481
- /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(95975);
6482
- /* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(34535);
6483
- /* harmony import */ var _Loading__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13842);
6484
- /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(8023);
6485
- /* harmony import */ var _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(6436);
6486
- /* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(59187);
6487
- /* harmony import */ var _NavButtons__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90374);
6488
- /* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(24442);
6489
- /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(65925);
6490
- /* harmony import */ var _Progress__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29348);
6491
- /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(95937);
6492
- /* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(71739);
6493
- /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(96813);
6494
- /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(74790);
6495
- /* harmony import */ var _SeoMessage__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(84203);
6496
- /* harmony import */ var _Sizer__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(2537);
6497
- /* harmony import */ var _Solver__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(65437);
6498
- /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(33538);
6499
- /* harmony import */ var _SplashScreen__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(8984);
6500
- /* harmony import */ var _SvgFontCss__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(73289);
6501
- /* harmony import */ var _SvgFontFix__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(33956);
6502
- /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(96815);
6503
- /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(59004);
6504
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Board__WEBPACK_IMPORTED_MODULE_1__, _Button__WEBPACK_IMPORTED_MODULE_2__, _Dictionary__WEBPACK_IMPORTED_MODULE_4__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_5__, _EmptyState__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__, _Loading__WEBPACK_IMPORTED_MODULE_9__, _Modal__WEBPACK_IMPORTED_MODULE_12__, _NavButtons__WEBPACK_IMPORTED_MODULE_13__, _NotFound__WEBPACK_IMPORTED_MODULE_14__, _PlainTiles__WEBPACK_IMPORTED_MODULE_15__, _Progress__WEBPACK_IMPORTED_MODULE_16__, _Rack__WEBPACK_IMPORTED_MODULE_17__, _Results__WEBPACK_IMPORTED_MODULE_19__, _ResultsInput__WEBPACK_IMPORTED_MODULE_20__, _Solver__WEBPACK_IMPORTED_MODULE_23__, _Spinner__WEBPACK_IMPORTED_MODULE_24__, _Tile__WEBPACK_IMPORTED_MODULE_28__, _Tooltip__WEBPACK_IMPORTED_MODULE_29__]);
6505
- ([_Board__WEBPACK_IMPORTED_MODULE_1__, _Button__WEBPACK_IMPORTED_MODULE_2__, _Dictionary__WEBPACK_IMPORTED_MODULE_4__, _DictionaryInput__WEBPACK_IMPORTED_MODULE_5__, _EmptyState__WEBPACK_IMPORTED_MODULE_6__, _IconButton__WEBPACK_IMPORTED_MODULE_7__, _Loading__WEBPACK_IMPORTED_MODULE_9__, _Modal__WEBPACK_IMPORTED_MODULE_12__, _NavButtons__WEBPACK_IMPORTED_MODULE_13__, _NotFound__WEBPACK_IMPORTED_MODULE_14__, _PlainTiles__WEBPACK_IMPORTED_MODULE_15__, _Progress__WEBPACK_IMPORTED_MODULE_16__, _Rack__WEBPACK_IMPORTED_MODULE_17__, _Results__WEBPACK_IMPORTED_MODULE_19__, _ResultsInput__WEBPACK_IMPORTED_MODULE_20__, _Solver__WEBPACK_IMPORTED_MODULE_23__, _Spinner__WEBPACK_IMPORTED_MODULE_24__, _Tile__WEBPACK_IMPORTED_MODULE_28__, _Tooltip__WEBPACK_IMPORTED_MODULE_29__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6386
+ /* harmony import */ var _Alert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15982);
6387
+ /* harmony import */ var _Badge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27126);
6388
+ /* harmony import */ var _Board__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17587);
6389
+ /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83900);
6390
+ /* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42060);
6391
+ /* harmony import */ var _Dictionary__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(76195);
6392
+ /* harmony import */ var _DictionaryInput__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35917);
6393
+ /* harmony import */ var _EmptyState__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(77385);
6394
+ /* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(95975);
6395
+ /* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34535);
6396
+ /* harmony import */ var _Loading__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13842);
6397
+ /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8023);
6398
+ /* harmony import */ var _LogoSplashScreen__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(6436);
6399
+ /* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(59187);
6400
+ /* harmony import */ var _NavButtons__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(90374);
6401
+ /* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(24442);
6402
+ /* harmony import */ var _PlainTiles__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(65925);
6403
+ /* harmony import */ var _Progress__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(29348);
6404
+ /* harmony import */ var _Rack__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(95937);
6405
+ /* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(71739);
6406
+ /* harmony import */ var _Results__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(96813);
6407
+ /* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(74790);
6408
+ /* harmony import */ var _SeoMessage__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(84203);
6409
+ /* harmony import */ var _Sizer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(2537);
6410
+ /* harmony import */ var _Solver__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(65437);
6411
+ /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(33538);
6412
+ /* harmony import */ var _SplashScreen__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(8984);
6413
+ /* harmony import */ var _SvgFontCss__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(73289);
6414
+ /* harmony import */ var _SvgFontFix__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(33956);
6415
+ /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(96815);
6416
+ /* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(59004);
6417
+ 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__]);
6418
+ ([_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__);
6419
+
6506
6420
 
6507
6421
 
6508
6422
 
@@ -6546,7 +6460,6 @@ __webpack_async_result__();
6546
6460
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
6547
6461
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6548
6462
  /* harmony export */ "Ft": () => (/* reexport safe */ _useAppLayout__WEBPACK_IMPORTED_MODULE_0__.Z),
6549
- /* harmony export */ "Ld": () => (/* reexport safe */ _useUniqueId__WEBPACK_IMPORTED_MODULE_7__.Z),
6550
6463
  /* harmony export */ "YQ": () => (/* reexport safe */ _useIsTouchDevice__WEBPACK_IMPORTED_MODULE_2__.Z),
6551
6464
  /* harmony export */ "ZK": () => (/* reexport safe */ _useLanguage__WEBPACK_IMPORTED_MODULE_3__.Z),
6552
6465
  /* harmony export */ "_": () => (/* reexport safe */ _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__.Z),
@@ -6561,10 +6474,8 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6561
6474
  /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46465);
6562
6475
  /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78909);
6563
6476
  /* harmony import */ var _usePortal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4371);
6564
- /* harmony import */ var _useUniqueId__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(70995);
6565
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useLocalStorage__WEBPACK_IMPORTED_MODULE_4__, _useUniqueId__WEBPACK_IMPORTED_MODULE_7__]);
6566
- ([_useLocalStorage__WEBPACK_IMPORTED_MODULE_4__, _useUniqueId__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
6567
-
6477
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useLocalStorage__WEBPACK_IMPORTED_MODULE_4__]);
6478
+ _useLocalStorage__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
6568
6479
 
6569
6480
 
6570
6481
 
@@ -6601,8 +6512,10 @@ const useAppLayout = ()=>{
6601
6512
  const showColumn = !isLessThanL;
6602
6513
  return {
6603
6514
  animateTile: !isLessThanXs,
6515
+ columnWidth: showColumn ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .SOLVER_COLUMN_WIDTH */ .pt : 0,
6604
6516
  componentsSpacing: isLessThanXl ? parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING_SMALL */ .op : parameters__WEBPACK_IMPORTED_MODULE_0__/* .COMPONENTS_SPACING */ .tr,
6605
6517
  isBoardFullWidth: isLessThanM,
6518
+ isModalFullWidth: isLessThanS,
6606
6519
  showColumn,
6607
6520
  showCompactControls: !showColumn,
6608
6521
  showFloatingSolveButton: isTouchDevice,
@@ -6626,7 +6539,7 @@ const useAppLayout = ()=>{
6626
6539
  /* harmony export */ });
6627
6540
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6628
6541
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6629
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86953);
6542
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10129);
6630
6543
 
6631
6544
 
6632
6545
  const useDirection = (direction)=>{
@@ -6676,7 +6589,7 @@ const useIsTouchDevice = ()=>{
6676
6589
  /* harmony export */ });
6677
6590
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6678
6591
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6679
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86953);
6592
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10129);
6680
6593
 
6681
6594
 
6682
6595
  const useLanguage = (language)=>{
@@ -6860,7 +6773,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
6860
6773
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
6861
6774
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
6862
6775
  /* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
6863
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86953);
6776
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10129);
6864
6777
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
6865
6778
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
6866
6779
  state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
@@ -6989,7 +6902,7 @@ const useMediaQuery = (query, defaultState)=>{
6989
6902
  /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_2__);
6990
6903
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63938);
6991
6904
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_portal__WEBPACK_IMPORTED_MODULE_3__);
6992
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86953);
6905
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10129);
6993
6906
 
6994
6907
 
6995
6908
 
@@ -7035,32 +6948,6 @@ const usePortal = (children, { disabled =false , tagName ="div" } = {})=>{
7035
6948
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lib__WEBPACK_IMPORTED_MODULE_4__/* .canUseDom */ .J8 ? usePortal : lib__WEBPACK_IMPORTED_MODULE_4__/* .noop */ .ZT);
7036
6949
 
7037
6950
 
7038
- /***/ }),
7039
-
7040
- /***/ 70995:
7041
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
7042
-
7043
- "use strict";
7044
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
7045
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7046
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
7047
- /* harmony export */ });
7048
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
7049
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
7050
- /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46555);
7051
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([uuid__WEBPACK_IMPORTED_MODULE_1__]);
7052
- uuid__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
7053
-
7054
-
7055
- const useUniqueId = ()=>{
7056
- const idRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)((0,uuid__WEBPACK_IMPORTED_MODULE_1__.v4)());
7057
- return idRef.current;
7058
- };
7059
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useUniqueId);
7060
-
7061
- __webpack_async_result__();
7062
- } catch(e) { __webpack_async_result__(e); } });
7063
-
7064
6951
  /***/ }),
7065
6952
 
7066
6953
  /***/ 36743:
@@ -7124,17 +7011,17 @@ const LOCALE_FEATURES = {
7124
7011
  };
7125
7012
 
7126
7013
  ;// CONCATENATED MODULE: ./src/i18n/de.json
7127
- const de_namespaceObject = JSON.parse('{"cell.filter-cell":"Zielort - klicken zum Wechseln","cell.set-blank":"Als Blanko markieren","cell.set-not-blank":"Nicht als Blanko markieren","cell.tile.location":"Brett: Stein ({{x}}, {{y}})","cell.toggle-direction":"Schreibrichtung - klicken zum Wechseln","common.blanks":"Blankos","common.clear":"Löschen","common.close":"Schließen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.points":"Punkte","common.previous":"Zurück","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"Wörter","dictionary":"Wörterbuch","dictionary.empty-state.no-definitions":"Wort existiert im Wörterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im Wörterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die Wörterbuchdefinition des letzten markierten Wortes wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche Wörterbuch...","dictionary.input.title":"Durch Kommas getrennte Wörter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturkürzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzufügen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"Lösen starten","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzufügen (Leertaste)","menu":"Menü","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-filtered-results":"Keine Ergebnisse für diese Anfrage.","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt. Klicken zum Aktualisieren.","results.empty-state.uninitialized":"Wörter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzufügen","results.solve":"Lösen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.language":"Sprache","words":"Gebildete Wörter","words.invalid":"Falsch","words.valid":"Korrekt"}');
7014
+ const de_namespaceObject = JSON.parse('{"cell.filter-cell":"Zielort - klicken zum Wechseln","cell.set-blank":"Als Blanko markieren","cell.set-not-blank":"Nicht als Blanko markieren","cell.tile.location":"Brett: Stein ({{x}}, {{y}})","cell.toggle-direction":"Schreibrichtung - klicken zum Wechseln","common.blanks":"Blankos","common.clear":"Löschen","common.close":"Schließen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.points":"Punkte","common.previous":"Zurück","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"Wörter","dictionary":"Wörterbuch","dictionary.empty-state.no-definitions":"Wort existiert im Wörterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im Wörterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die Wörterbuchdefinition des letzten markierten Wortes wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche Wörterbuch...","dictionary.input.title":"Durch Kommas getrennte Wörter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturkürzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzufügen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"Lösen starten","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzufügen (Leertaste)","menu":"Menü","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt. Klicken zum Aktualisieren.","results.empty-state.uninitialized":"Wörter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzufügen","results.solve":"Lösen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.language":"Sprache","words":"Gebildete Wörter","words.invalid":"Falsch","words.valid":"Korrekt"}');
7128
7015
  ;// CONCATENATED MODULE: ./src/i18n/en.json
7129
- const en_namespaceObject = JSON.parse('{"cell.filter-cell":"Target destination - click to toggle","cell.set-blank":"Mark it a blank","cell.set-not-blank":"Mark it not a blank","cell.tile.location":"Board: tile ({{x}}, {{y}})","cell.toggle-direction":"Typing direction - click to toggle","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.points":"Points","common.previous":"Previous","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Dictionary definition of the most recently highlighted word will be shown here.","dictionary.input.placeholder":"Search dictionary...","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Start solving","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank (spacebar)","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-filtered-results":"No result matches this query.","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated. Click below to update.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.language":"Language","words":"Created words","words.invalid":"Invalid","words.valid":"Valid"}');
7016
+ const en_namespaceObject = JSON.parse('{"cell.filter-cell":"Target destination - click to toggle","cell.set-blank":"Mark it a blank","cell.set-not-blank":"Mark it not a blank","cell.tile.location":"Board: tile ({{x}}, {{y}})","cell.toggle-direction":"Typing direction - click to toggle","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.points":"Points","common.previous":"Previous","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Dictionary definition of the most recently highlighted word will be shown here.","dictionary.input.placeholder":"Search dictionary...","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Start solving","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank (spacebar)","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated. Click below to update.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.language":"Language","words":"Created words","words.invalid":"Invalid","words.valid":"Valid"}');
7130
7017
  ;// CONCATENATED MODULE: ./src/i18n/es.json
7131
- const es_namespaceObject = JSON.parse('{"cell.filter-cell":"Destino objetivo: haga clic para alternar","cell.set-blank":"Marcar como en blanco","cell.set-not-blank":"Marcar como no en blanco","cell.tile.location":"Tablero: espacio ({{x}}, {{y}})","cell.toggle-direction":"Dirección de escritura: haga clic para alternar","common.blanks":"Blancos","common.clear":"Borrar","common.close":"Cerrar","common.consonants":"Consonantes","common.loading":"Cargando","common.next":"Siguiente","common.points":"Puntos","common.previous":"Anterior","common.tiles":"Longitud","common.two-letter-tiles":"Dos letras","common.vowels":"Vocales","common.word":"Palabra","common.words":"Palabras","dictionary":"Diccionario","dictionary.empty-state.no-definitions":"La palabra existe en el diccionario pero no tiene una definición.","dictionary.empty-state.no-results":"No se puede encontrar la definición de palabra en el diccionario.","dictionary.empty-state.not-allowed":"Esta palabra no es aceptable.","dictionary.empty-state.uninitialized":"Aquí se mostrará la definición del diccionario de la última palabra resaltada.","dictionary.input.placeholder":"Busca el diccionario...","dictionary.input.title":"Palabras separadas por comas","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Sí!","empty-state.warning":"Vaya!","github":"Ver este proyecto en GitHub","keyMap":"Atajos de teclado","keyMap.board":"Tablero","keyMap.board.toggle-blank":"Marcar / desmarcar un espacio en blanco","keyMap.board.toggle-direction":"Alternar dirección de escritura","keyMap.board-and-rack":"Tablero y estante","keyMap.board-and-rack.insert-two-letter-tile":"Insertar mosaico de dos letras","keyMap.board-and-rack.navigate":"Navegar","keyMap.board-and-rack.remove-tile":"Quitar Letra","keyMap.board-and-rack.submit":"Empezar a resolver","keyMap.rack":"Estante","keyMap.rack.insert-blank":"Insertar espacio en blanco (barra espaciadora)","menu":"Menú","rack.placeholder":"Letras…","rack.tile.location":"Estante: espacio ({{index}})","remaining-tiles":"Casillas restantes","results":"Resultados","results.empty-state.no-filtered-results":"Ningún resultado coincide con esta consulta.","results.empty-state.no-results":"No hay resultados; no se pueden generar palabras","results.empty-state.outdated":"Los resultados están desactualizados. Haga clic a continuación para actualizar.","results.empty-state.uninitialized":"Aquí se mostrarán las palabras generadas a partir de sus letras.","results.input.placeholder":"Busque una solución... (RegExp)","results.insert":"Insertar","results.solve":"Resolver","settings":"Configuración","settings.autoGroupTiles":"Agrupar casillas restantes","settings.autoGroupTiles.left":"A la izquierda","settings.autoGroupTiles.right":"A la derecha","settings.autoGroupTiles.null":"No agrupar","settings.game":"Juego","settings.language":"Idioma","words":"Palabras creadas","words.invalid":"Incorrecto","words.valid":"Correcto"}');
7018
+ const es_namespaceObject = JSON.parse('{"cell.filter-cell":"Destino objetivo: haga clic para alternar","cell.set-blank":"Marcar como en blanco","cell.set-not-blank":"Marcar como no en blanco","cell.tile.location":"Tablero: espacio ({{x}}, {{y}})","cell.toggle-direction":"Dirección de escritura: haga clic para alternar","common.blanks":"Blancos","common.clear":"Borrar","common.close":"Cerrar","common.consonants":"Consonantes","common.loading":"Cargando","common.next":"Siguiente","common.points":"Puntos","common.previous":"Anterior","common.tiles":"Longitud","common.two-letter-tiles":"Dos letras","common.vowels":"Vocales","common.word":"Palabra","common.words":"Palabras","dictionary":"Diccionario","dictionary.empty-state.no-definitions":"La palabra existe en el diccionario pero no tiene una definición.","dictionary.empty-state.no-results":"No se puede encontrar la definición de palabra en el diccionario.","dictionary.empty-state.not-allowed":"Esta palabra no es aceptable.","dictionary.empty-state.uninitialized":"Aquí se mostrará la definición del diccionario de la última palabra resaltada.","dictionary.input.placeholder":"Busca el diccionario...","dictionary.input.title":"Palabras separadas por comas","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Sí!","empty-state.warning":"Vaya!","github":"Ver este proyecto en GitHub","keyMap":"Atajos de teclado","keyMap.board":"Tablero","keyMap.board.toggle-blank":"Marcar / desmarcar un espacio en blanco","keyMap.board.toggle-direction":"Alternar dirección de escritura","keyMap.board-and-rack":"Tablero y estante","keyMap.board-and-rack.insert-two-letter-tile":"Insertar mosaico de dos letras","keyMap.board-and-rack.navigate":"Navegar","keyMap.board-and-rack.remove-tile":"Quitar Letra","keyMap.board-and-rack.submit":"Empezar a resolver","keyMap.rack":"Estante","keyMap.rack.insert-blank":"Insertar espacio en blanco (barra espaciadora)","menu":"Menú","rack.placeholder":"Letras…","rack.tile.location":"Estante: espacio ({{index}})","remaining-tiles":"Casillas restantes","results":"Resultados","results.empty-state.no-results":"No hay resultados; no se pueden generar palabras","results.empty-state.outdated":"Los resultados están desactualizados. Haga clic a continuación para actualizar.","results.empty-state.uninitialized":"Aquí se mostrarán las palabras generadas a partir de sus letras.","results.input.placeholder":"Busque una solución... (RegExp)","results.insert":"Insertar","results.solve":"Resolver","settings":"Configuración","settings.autoGroupTiles":"Agrupar casillas restantes","settings.autoGroupTiles.left":"A la izquierda","settings.autoGroupTiles.right":"A la derecha","settings.autoGroupTiles.null":"No agrupar","settings.game":"Juego","settings.language":"Idioma","words":"Palabras creadas","words.invalid":"Incorrecto","words.valid":"Correcto"}');
7132
7019
  ;// CONCATENATED MODULE: ./src/i18n/fa.json
7133
- const fa_namespaceObject = JSON.parse('{"cell.filter-cell":"مقصد - کلیک برای تغییر","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.toggle-direction":"جهت تایپ - کلیک برای تغییر","cell.tile.location":"({{x}}، {{y}}) کاشی: صفحه","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.points":"امتیازات","common.previous":"قبلی","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت ...","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی (دکمه اسپیس)","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-filtered-results":"پاسخی یافت نشد.","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز رسانی کلیک کنید.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.language":"زبان","words":"کلمات ساخته شده","words.invalid":"نا معتبر","words.valid":"معتبر"}');
7020
+ const fa_namespaceObject = JSON.parse('{"cell.filter-cell":"مقصد - کلیک برای تغییر","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.toggle-direction":"جهت تایپ - کلیک برای تغییر","cell.tile.location":"({{x}}، {{y}}) کاشی: صفحه","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.points":"امتیازات","common.previous":"قبلی","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت ...","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی (دکمه اسپیس)","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز رسانی کلیک کنید.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.language":"زبان","words":"کلمات ساخته شده","words.invalid":"نا معتبر","words.valid":"معتبر"}');
7134
7021
  ;// CONCATENATED MODULE: ./src/i18n/fr.json
7135
- const fr_namespaceObject = JSON.parse('{"cell.filter-cell":"Destination cible - cliquer pour changer","cell.set-blank":"Marquer comme vide","cell.set-not-blank":"Marquer comme non vide","cell.tile.location":"Plateau: la case ({{x}}, {{y}})","cell.toggle-direction":"Direction d\'écriture - cliquer pour changer","common.blanks":"Cases vides","common.clear":"Effacer","common.close":"Fermer","common.consonants":"Consonnes","common.loading":"Chargement","common.next":"Suivant","common.points":"Points","common.previous":"Précédent","common.tiles":"Cases","common.two-letter-tiles":"Deux lettres","common.vowels":"Voyelles","common.word":"Mot","common.words":"Mots","dictionary":"Dictionnaire","dictionary.empty-state.no-definitions":"Le mot existe dans le dictionary mais n\'a pas de définition.","dictionary.empty-state.no-results":"Impossible de trouver une définition pour ce mot dans le dictionaire.","dictionary.empty-state.not-allowed":"Ce mot n\'est pas pas acceptable.","dictionary.empty-state.uninitialized":"La définition dictionaire du dernier mot surligné sera affichée ici.","dictionary.input.placeholder":"Rechercher dans le dictionnaire...","dictionary.input.title":"Mots séparées par des virgules","empty-state.error":"Erreur","empty-state.info":"Info","empty-state.success":"Ouais!","empty-state.warning":"Oups!","github":"Voir ce projet sur GitHub","keyMap":"Raccourcis clavier","keyMap.board":"Plateau","keyMap.board.toggle-blank":"Marqué/Démarqué la case en tant que vide","keyMap.board.toggle-direction":"Faire basculer la direction d\'écriture","keyMap.board-and-rack":"Plateau & chevalet","keyMap.board-and-rack.insert-two-letter-tile":"Insérer une tuile de deux lettres","keyMap.board-and-rack.navigate":"Naviguer","keyMap.board-and-rack.remove-tile":"Supprimer une case","keyMap.board-and-rack.submit":"Commencer la résolution","keyMap.rack":"Chevalet","keyMap.rack.insert-blank":"Inserer une case vide (spacebar)","menu":"Menu","rack.placeholder":"Lettres","rack.tile.location":"Chevalet: la case ({{index}})","remaining-tiles":"Cases restantes","results":"Résultats","results.empty-state.no-filtered-results":"Aucun résultat ne correspond à cette requête","results.empty-state.no-results":"Pas de résultats - impossible de générer des mots.","results.empty-state.outdated":"Les résultats sont dépassé. Cliquer ci-dessous pour mettre à jour.","results.empty-state.uninitialized":"Les mots générés à partir de vos lettres seront affichés ici.","results.input.placeholder":"Rechercher les résultats... (RegExp)","results.insert":"Inserer","results.solve":"Résoudre","settings":"Options","settings.autoGroupTiles":"Grouper les cases restantes","settings.autoGroupTiles.left":"Vers la droite","settings.autoGroupTiles.right":"Vers la gauche","settings.autoGroupTiles.null":"Ne pas grouper","settings.game":"Jeu","settings.language":"Langue","words":"Mots créés","words.invalid":"Incorrect","words.valid":"Corriger"}');
7022
+ const fr_namespaceObject = JSON.parse('{"cell.filter-cell":"Destination cible - cliquer pour changer","cell.set-blank":"Marquer comme vide","cell.set-not-blank":"Marquer comme non vide","cell.tile.location":"Plateau: la case ({{x}}, {{y}})","cell.toggle-direction":"Direction d\'écriture - cliquer pour changer","common.blanks":"Cases vides","common.clear":"Effacer","common.close":"Fermer","common.consonants":"Consonnes","common.loading":"Chargement","common.next":"Suivant","common.points":"Points","common.previous":"Précédent","common.tiles":"Cases","common.two-letter-tiles":"Deux lettres","common.vowels":"Voyelles","common.word":"Mot","common.words":"Mots","dictionary":"Dictionnaire","dictionary.empty-state.no-definitions":"Le mot existe dans le dictionary mais n\'a pas de définition.","dictionary.empty-state.no-results":"Impossible de trouver une définition pour ce mot dans le dictionaire.","dictionary.empty-state.not-allowed":"Ce mot n\'est pas pas acceptable.","dictionary.empty-state.uninitialized":"La définition dictionaire du dernier mot surligné sera affichée ici.","dictionary.input.placeholder":"Rechercher dans le dictionnaire...","dictionary.input.title":"Mots séparées par des virgules","empty-state.error":"Erreur","empty-state.info":"Info","empty-state.success":"Ouais!","empty-state.warning":"Oups!","github":"Voir ce projet sur GitHub","keyMap":"Raccourcis clavier","keyMap.board":"Plateau","keyMap.board.toggle-blank":"Marqué/Démarqué la case en tant que vide","keyMap.board.toggle-direction":"Faire basculer la direction d\'écriture","keyMap.board-and-rack":"Plateau & chevalet","keyMap.board-and-rack.insert-two-letter-tile":"Insérer une tuile de deux lettres","keyMap.board-and-rack.navigate":"Naviguer","keyMap.board-and-rack.remove-tile":"Supprimer une case","keyMap.board-and-rack.submit":"Commencer la résolution","keyMap.rack":"Chevalet","keyMap.rack.insert-blank":"Inserer une case vide (spacebar)","menu":"Menu","rack.placeholder":"Lettres","rack.tile.location":"Chevalet: la case ({{index}})","remaining-tiles":"Cases restantes","results":"Résultats","results.empty-state.no-results":"Pas de résultats - impossible de générer des mots.","results.empty-state.outdated":"Les résultats sont dépassé. Cliquer ci-dessous pour mettre à jour.","results.empty-state.uninitialized":"Les mots générés à partir de vos lettres seront affichés ici.","results.input.placeholder":"Rechercher les résultats... (RegExp)","results.insert":"Inserer","results.solve":"Résoudre","settings":"Options","settings.autoGroupTiles":"Grouper les cases restantes","settings.autoGroupTiles.left":"Vers la droite","settings.autoGroupTiles.right":"Vers la gauche","settings.autoGroupTiles.null":"Ne pas grouper","settings.game":"Jeu","settings.language":"Langue","words":"Mots créés","words.invalid":"Incorrect","words.valid":"Corriger"}');
7136
7023
  ;// CONCATENATED MODULE: ./src/i18n/pl.json
7137
- const pl_namespaceObject = JSON.parse('{"cell.filter-cell":"Miejsce docelowe - kliknij aby zmienić","cell.set-blank":"Oznacz jako blank","cell.set-not-blank":"Oznacz jako nie blank","cell.tile.location":"Plansza: płytka ({{x}}, {{y}})","cell.toggle-direction":"Kierunek wpisywania - kliknij aby zmienić","common.blanks":"Blanki","common.clear":"Wyczyść","common.close":"Zamknij","common.consonants":"Spółgłoski","common.loading":"Ładowanie","common.next":"Następne","common.points":"Punkty","common.previous":"Poprzednie","common.tiles":"Płytki","common.two-letter-tiles":"Dwuliterowe","common.vowels":"Samogłoski","common.word":"Słowo","common.words":"Słowa","dictionary":"Słownik","dictionary.empty-state.no-definitions":"Słowo istnieje w słowniku ale nie posiada definicji.","dictionary.empty-state.no-results":"Nie udało się znaleźć definicji słowa w słowniku.","dictionary.empty-state.not-allowed":"To słowo nie jest dopuszczalne w grach.","dictionary.empty-state.uninitialized":"Tu zostanie wyświetlona słownikowa definicja ostatnio podświetlonego słowa.","dictionary.input.placeholder":"Szukaj w słowniku...","dictionary.input.title":"Słowa rozdzielone przecinkiem","empty-state.error":"Błąd","empty-state.info":"Info","empty-state.success":"Hurra!","empty-state.warning":"Ups!","github":"Zobacz ten projekt na GitHubie","keyMap":"Skróty klawiszowe","keyMap.board":"Plansza","keyMap.board.toggle-blank":"Oznacz/odznacz płytkę jako blank","keyMap.board.toggle-direction":"Zmień kierunek wpisywania","keyMap.board-and-rack":"Plansza i stojak","keyMap.board-and-rack.insert-two-letter-tile":"Wstaw dwuliterową płytkę","keyMap.board-and-rack.navigate":"Nawigacja","keyMap.board-and-rack.remove-tile":"Zdejmij płytkę","keyMap.board-and-rack.submit":"Rozpocznij wyszukiwanie","keyMap.rack":"Stojak","keyMap.rack.insert-blank":"Wstaw blanka (spacja)","menu":"Menu","rack.placeholder":"Literki","rack.tile.location":"Stojak: płytka ({{index}})","remaining-tiles":"Pozostałe płytki","results":"Wyniki","results.empty-state.no-filtered-results":"Żaden wynik nie pasuje do tej kwerendy.","results.empty-state.no-results":"Brak wyników - nie można wygenerować żadnego słowa.","results.empty-state.outdated":"Wyniki są nieaktualne. Kliknij poniżej, aby zaktualizować.","results.empty-state.uninitialized":"Tu zostaną wyświetlone słowa wygenerowane z Twoich liter.","results.input.placeholder":"Szukaj rozwiązania... (RegExp)","results.insert":"Wstaw","results.solve":"Rozwiąż","settings":"Opcje","settings.autoGroupTiles":"Grupuj pozostałe płytki","settings.autoGroupTiles.left":"Po lewej","settings.autoGroupTiles.right":"Po prawej","settings.autoGroupTiles.null":"Nie grupuj","settings.game":"Gra","settings.language":"Język","words":"Utworzone słowa","words.invalid":"Niepoprawne","words.valid":"Poprawne"}');
7024
+ const pl_namespaceObject = JSON.parse('{"cell.filter-cell":"Miejsce docelowe - kliknij aby zmienić","cell.set-blank":"Oznacz jako blank","cell.set-not-blank":"Oznacz jako nie blank","cell.tile.location":"Plansza: płytka ({{x}}, {{y}})","cell.toggle-direction":"Kierunek wpisywania - kliknij aby zmienić","common.blanks":"Blanki","common.clear":"Wyczyść","common.close":"Zamknij","common.consonants":"Spółgłoski","common.loading":"Ładowanie","common.next":"Następne","common.points":"Punkty","common.previous":"Poprzednie","common.tiles":"Płytki","common.two-letter-tiles":"Dwuliterowe","common.vowels":"Samogłoski","common.word":"Słowo","common.words":"Słowa","dictionary":"Słownik","dictionary.empty-state.no-definitions":"Słowo istnieje w słowniku ale nie posiada definicji.","dictionary.empty-state.no-results":"Nie udało się znaleźć definicji słowa w słowniku.","dictionary.empty-state.not-allowed":"To słowo nie jest dopuszczalne w grach.","dictionary.empty-state.uninitialized":"Tu zostanie wyświetlona słownikowa definicja ostatnio podświetlonego słowa.","dictionary.input.placeholder":"Szukaj w słowniku...","dictionary.input.title":"Słowa rozdzielone przecinkiem","empty-state.error":"Błąd","empty-state.info":"Info","empty-state.success":"Hurra!","empty-state.warning":"Ups!","github":"Zobacz ten projekt na GitHubie","keyMap":"Skróty klawiszowe","keyMap.board":"Plansza","keyMap.board.toggle-blank":"Oznacz/odznacz płytkę jako blank","keyMap.board.toggle-direction":"Zmień kierunek wpisywania","keyMap.board-and-rack":"Plansza i stojak","keyMap.board-and-rack.insert-two-letter-tile":"Wstaw dwuliterową płytkę","keyMap.board-and-rack.navigate":"Nawigacja","keyMap.board-and-rack.remove-tile":"Zdejmij płytkę","keyMap.board-and-rack.submit":"Rozpocznij wyszukiwanie","keyMap.rack":"Stojak","keyMap.rack.insert-blank":"Wstaw blanka (spacja)","menu":"Menu","rack.placeholder":"Literki","rack.tile.location":"Stojak: płytka ({{index}})","remaining-tiles":"Pozostałe płytki","results":"Wyniki","results.empty-state.no-results":"Brak wyników - nie można wygenerować żadnego słowa.","results.empty-state.outdated":"Wyniki są nieaktualne. Kliknij poniżej, aby zaktualizować.","results.empty-state.uninitialized":"Tu zostaną wyświetlone słowa wygenerowane z Twoich liter.","results.input.placeholder":"Szukaj rozwiązania... (RegExp)","results.insert":"Wstaw","results.solve":"Rozwiąż","settings":"Opcje","settings.autoGroupTiles":"Grupuj pozostałe płytki","settings.autoGroupTiles.left":"Po lewej","settings.autoGroupTiles.right":"Po prawej","settings.autoGroupTiles.null":"Nie grupuj","settings.game":"Gra","settings.language":"Język","words":"Utworzone słowa","words.invalid":"Niepoprawne","words.valid":"Poprawne"}');
7138
7025
  ;// CONCATENATED MODULE: ./src/i18n/i18n.ts
7139
7026
 
7140
7027
 
@@ -8144,7 +8031,7 @@ var SvgStar = function SvgStar(props) {
8144
8031
 
8145
8032
  /***/ }),
8146
8033
 
8147
- /***/ 86953:
8034
+ /***/ 10129:
8148
8035
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8149
8036
 
8150
8037
  "use strict";
@@ -8156,6 +8043,7 @@ __webpack_require__.d(__webpack_exports__, {
8156
8043
  "DI": () => (/* reexport */ lib_createGridOf),
8157
8044
  "np": () => (/* reexport */ lib_createKeyboardNavigation),
8158
8045
  "Ml": () => (/* reexport */ lib_createNullMovingComparator),
8046
+ "GF": () => (/* reexport */ lib_createRegExp),
8159
8047
  "Nj": () => (/* reexport */ lib_detectLocale),
8160
8048
  "nK": () => (/* reexport */ lib_extractCharacters),
8161
8049
  "WM": () => (/* reexport */ lib_extractInputValue),
@@ -8163,8 +8051,9 @@ __webpack_require__.d(__webpack_exports__, {
8163
8051
  "ZM": () => (/* reexport */ lib_getRemainingTiles),
8164
8052
  "op": () => (/* reexport */ lib_getRemainingTilesGroups),
8165
8053
  "vc": () => (/* reexport */ lib_getTileSizes),
8054
+ "CU": () => (/* reexport */ lib_groupResults),
8055
+ "sf": () => (/* reexport */ lib_guessLocale),
8166
8056
  "Mf": () => (/* reexport */ lib_inverseDirection),
8167
- "yl": () => (/* reexport */ lib_isCtrl),
8168
8057
  "V5": () => (/* reexport */ lib_isMac),
8169
8058
  "Kj": () => (/* reexport */ lib_isRegExp),
8170
8059
  "HP": () => (/* reexport */ lib_memoize),
@@ -8240,6 +8129,19 @@ const createNullMovingComparator = (direction)=>{
8240
8129
  };
8241
8130
  /* harmony default export */ const lib_createNullMovingComparator = (createNullMovingComparator);
8242
8131
 
8132
+ ;// CONCATENATED MODULE: ./src/lib/createRegExp.ts
8133
+ const createRegExp = (input)=>{
8134
+ if (input.trim().length === 0) {
8135
+ return /.*/;
8136
+ }
8137
+ try {
8138
+ return new RegExp(input, "gi");
8139
+ } catch {
8140
+ return /.*/;
8141
+ }
8142
+ };
8143
+ /* harmony default export */ const lib_createRegExp = (createRegExp);
8144
+
8243
8145
  // EXTERNAL MODULE: ../types/build/index.js
8244
8146
  var build = __webpack_require__(34046);
8245
8147
  ;// CONCATENATED MODULE: ./src/lib/detectLocale.ts
@@ -8457,18 +8359,59 @@ const getTileSizes = (tileSize)=>({
8457
8359
  });
8458
8360
  /* harmony default export */ const lib_getTileSizes = (getTileSizes);
8459
8361
 
8362
+ ;// CONCATENATED MODULE: ./src/lib/groupResults.ts
8363
+
8364
+ const groupResults = (results, query, cellFilter)=>{
8365
+ if (typeof results === "undefined") {
8366
+ return results;
8367
+ }
8368
+ return results.reduce(({ matching , other }, result)=>{
8369
+ const matchesQuery = lib_createRegExp(query).test(result.word);
8370
+ const matchesCellFilter = cellFilter.every(({ x , y })=>{
8371
+ return result.cells.some((cell)=>cell.x === x && cell.y === y);
8372
+ });
8373
+ const isMatching = matchesQuery && matchesCellFilter;
8374
+ return {
8375
+ matching: isMatching ? [
8376
+ ...matching,
8377
+ result
8378
+ ] : matching,
8379
+ other: isMatching ? other : [
8380
+ ...other,
8381
+ result
8382
+ ]
8383
+ };
8384
+ }, {
8385
+ matching: [],
8386
+ other: []
8387
+ });
8388
+ };
8389
+ /* harmony default export */ const lib_groupResults = (groupResults);
8390
+
8391
+ ;// CONCATENATED MODULE: ./src/lib/guessLocale.ts
8392
+
8393
+ const guessLocale = ()=>{
8394
+ if (!globalThis.navigator) {
8395
+ return build.Locale.EN_US;
8396
+ }
8397
+ const locales = Object.values(build.Locale);
8398
+ const exactMatch = locales.find((locale)=>globalThis.navigator.language === locale);
8399
+ if (exactMatch) {
8400
+ return exactMatch;
8401
+ }
8402
+ const partialMatch = locales.find((locale)=>{
8403
+ return globalThis.navigator.language === locale.substring(0, 2);
8404
+ });
8405
+ return partialMatch || build.Locale.EN_US;
8406
+ };
8407
+ /* harmony default export */ const lib_guessLocale = (guessLocale);
8408
+
8460
8409
  ;// CONCATENATED MODULE: ./src/lib/inverseDirection.ts
8461
8410
  const inverseDirection = (direction)=>{
8462
8411
  return direction === "left" ? "right" : "left";
8463
8412
  };
8464
8413
  /* harmony default export */ const lib_inverseDirection = (inverseDirection);
8465
8414
 
8466
- ;// CONCATENATED MODULE: ./src/lib/isCtrl.ts
8467
- const isCtrl = (event)=>{
8468
- return event.ctrlKey || event.metaKey;
8469
- };
8470
- /* harmony default export */ const lib_isCtrl = (isCtrl);
8471
-
8472
8415
  ;// CONCATENATED MODULE: ./src/lib/isMac.ts
8473
8416
  const isMac = ()=>{
8474
8417
  if (!globalThis.navigator) {
@@ -8556,16 +8499,17 @@ const comparators = {
8556
8499
  [types/* ResultColumn.Word */.M.Word]: (locale)=>lib_createKeyComparator("word", locale),
8557
8500
  [types/* ResultColumn.WordsCount */.M.WordsCount]: (locale)=>lib_createKeyComparator("wordsCount", locale)
8558
8501
  };
8559
- const sortResults = (results, column, sortDirection, locale)=>{
8502
+ const sortResults = (results, sort, locale)=>{
8560
8503
  if (typeof results === "undefined") {
8561
8504
  return results;
8562
8505
  }
8563
- const createComparator = comparators[column];
8506
+ const createComparator = comparators[sort.column];
8564
8507
  const comparator = createComparator(locale);
8565
- const finalComparator = sortDirection === types/* SortDirection.Descending */.S.Descending ? lib_reverseComparator(comparator) : comparator;
8566
- return [
8508
+ const finalComparator = sort.direction === types/* SortDirection.Descending */.S.Descending ? lib_reverseComparator(comparator) : comparator;
8509
+ const sortedResults = [
8567
8510
  ...results
8568
8511
  ].sort(finalComparator);
8512
+ return sortedResults;
8569
8513
  };
8570
8514
  /* harmony default export */ const lib_sortResults = (sortResults);
8571
8515
 
@@ -8660,6 +8604,8 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8660
8604
 
8661
8605
 
8662
8606
 
8607
+
8608
+
8663
8609
 
8664
8610
 
8665
8611
 
@@ -8694,11 +8640,11 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8694
8640
  /* harmony export */ "oj": () => (/* binding */ BOARD_TILE_SIZE_MIN),
8695
8641
  /* harmony export */ "op": () => (/* binding */ COMPONENTS_SPACING_SMALL),
8696
8642
  /* harmony export */ "pI": () => (/* binding */ COLOR_BLUE),
8643
+ /* harmony export */ "pt": () => (/* binding */ SOLVER_COLUMN_WIDTH),
8697
8644
  /* harmony export */ "rV": () => (/* binding */ PLAIN_TILES_TILE_SIZE),
8698
8645
  /* harmony export */ "rx": () => (/* binding */ RESULTS_ITEM_HEIGHT),
8699
8646
  /* harmony export */ "tr": () => (/* binding */ COMPONENTS_SPACING),
8700
8647
  /* harmony export */ "uX": () => (/* binding */ PLAIN_TILES_PADDING_VERTICAL),
8701
- /* harmony export */ "uk": () => (/* binding */ INITIALIZATION_DURATION),
8702
8648
  /* harmony export */ "xZ": () => (/* binding */ PROGRESS_COLOR_VALUE),
8703
8649
  /* harmony export */ "yg": () => (/* binding */ COLOR_RED),
8704
8650
  /* harmony export */ "yr": () => (/* binding */ COLOR_YELLOW),
@@ -8715,7 +8661,6 @@ const BREAKPOINTS = {
8715
8661
  const EASE_OUT_CUBIC = "cubic-bezier(0.33, 1, 0.68, 1)"; // https://easings.net/#easeOutCubic
8716
8662
  const TRANSITION = "var(--transition)";
8717
8663
  const GITHUB_PROJECT_URL = "https://github.com/kamilmielnik/scrabble-solver";
8718
- const INITIALIZATION_DURATION = 100;
8719
8664
  const TRANSITION_DURATION = 100;
8720
8665
  const TRANSITION_DURATION_LONG = 250;
8721
8666
  const COLOR_BLUE = "#c7d8f9";
@@ -8762,6 +8707,7 @@ const PROGRESS_COLOR_BACKGROUND = "var(--color--inactive)";
8762
8707
  const RACK_TILE_SIZE_MAX = 80;
8763
8708
  const REMAINING_TILES_TILE_SIZE = 50;
8764
8709
  const RESULTS_ITEM_HEIGHT = 40;
8710
+ const SOLVER_COLUMN_WIDTH = 580;
8765
8711
  const TILE_APPEAR_DURATION = 200;
8766
8712
  const TILE_APPEAR_KEYFRAMES = [
8767
8713
  {
@@ -8804,11 +8750,11 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
8804
8750
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8805
8751
  /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
8806
8752
  /* harmony export */ });
8807
- /* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86695);
8808
- /* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(redux__WEBPACK_IMPORTED_MODULE_0__);
8753
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
8754
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
8809
8755
  /* harmony import */ var redux_saga__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75998);
8810
- /* harmony import */ var _rootReducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3292);
8811
- /* harmony import */ var _sagas__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23599);
8756
+ /* harmony import */ var _sagas__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23599);
8757
+ /* harmony import */ var _slices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67647);
8812
8758
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([redux_saga__WEBPACK_IMPORTED_MODULE_1__]);
8813
8759
  redux_saga__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
8814
8760
 
@@ -8816,14 +8762,23 @@ redux_saga__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ?
8816
8762
 
8817
8763
 
8818
8764
  const sagaMiddleware = (0,redux_saga__WEBPACK_IMPORTED_MODULE_1__["default"])();
8819
- const initialState = undefined;
8820
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8821
- // @ts-ignore
8822
- // eslint-disable-next-line no-underscore-dangle
8823
- const composeEnhancers = globalThis.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || redux__WEBPACK_IMPORTED_MODULE_0__.compose;
8824
8765
  const createAppStore = ()=>{
8825
- const store = (0,redux__WEBPACK_IMPORTED_MODULE_0__.createStore)(_rootReducer__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, initialState, composeEnhancers((0,redux__WEBPACK_IMPORTED_MODULE_0__.applyMiddleware)(sagaMiddleware)));
8826
- sagaMiddleware.run(_sagas__WEBPACK_IMPORTED_MODULE_3__/* .rootSaga */ .R);
8766
+ const store = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.configureStore)({
8767
+ reducer: {
8768
+ board: _slices__WEBPACK_IMPORTED_MODULE_3__/* .boardSlice.reducer */ .I8.reducer,
8769
+ cellFilter: _slices__WEBPACK_IMPORTED_MODULE_3__/* .cellFilterSlice.reducer */ .mO.reducer,
8770
+ dictionary: _slices__WEBPACK_IMPORTED_MODULE_3__/* .dictionarySlice.reducer */ .lj.reducer,
8771
+ rack: _slices__WEBPACK_IMPORTED_MODULE_3__/* .rackSlice.reducer */ .O_.reducer,
8772
+ results: _slices__WEBPACK_IMPORTED_MODULE_3__/* .resultsSlice.reducer */ ._C.reducer,
8773
+ settings: _slices__WEBPACK_IMPORTED_MODULE_3__/* .settingsSlice.reducer */ .xj.reducer,
8774
+ solve: _slices__WEBPACK_IMPORTED_MODULE_3__/* .solveSlice.reducer */ .TP.reducer,
8775
+ verify: _slices__WEBPACK_IMPORTED_MODULE_3__/* .verifySlice.reducer */ .Gt.reducer
8776
+ },
8777
+ middleware: [
8778
+ sagaMiddleware
8779
+ ]
8780
+ });
8781
+ sagaMiddleware.run(_sagas__WEBPACK_IMPORTED_MODULE_2__/* .rootSaga */ .R);
8827
8782
  return store;
8828
8783
  };
8829
8784
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAppStore);
@@ -8861,8 +8816,6 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
8861
8816
  /* harmony export */ "Zf": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Zf),
8862
8817
  /* harmony export */ "_C": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__._C),
8863
8818
  /* harmony export */ "bs": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.bs),
8864
- /* harmony export */ "dN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.dN),
8865
- /* harmony export */ "f2": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.f2),
8866
8819
  /* harmony export */ "fN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.fN),
8867
8820
  /* harmony export */ "fZ": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.fZ),
8868
8821
  /* harmony export */ "id": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.id),
@@ -8874,12 +8827,13 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
8874
8827
  /* harmony export */ "mc": () => (/* reexport safe */ _actions__WEBPACK_IMPORTED_MODULE_0__.m),
8875
8828
  /* harmony export */ "md": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.md),
8876
8829
  /* harmony export */ "qM": () => (/* reexport safe */ _useTranslate__WEBPACK_IMPORTED_MODULE_5__.Z),
8877
- /* harmony export */ "sH": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.sH),
8878
8830
  /* harmony export */ "uz": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.uz),
8879
8831
  /* harmony export */ "vY": () => (/* reexport safe */ _createAppStore__WEBPACK_IMPORTED_MODULE_1__.Z),
8880
8832
  /* harmony export */ "w1": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.w1),
8833
+ /* harmony export */ "x5": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.x5),
8881
8834
  /* harmony export */ "xU": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.xU),
8882
8835
  /* harmony export */ "xj": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.xj),
8836
+ /* harmony export */ "yJ": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.yJ),
8883
8837
  /* harmony export */ "z$": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.z$)
8884
8838
  /* harmony export */ });
8885
8839
  /* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23617);
@@ -8953,33 +8907,6 @@ const localStorage = {
8953
8907
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (localStorage);
8954
8908
 
8955
8909
 
8956
- /***/ }),
8957
-
8958
- /***/ 3292:
8959
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8960
-
8961
- "use strict";
8962
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8963
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
8964
- /* harmony export */ });
8965
- /* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86695);
8966
- /* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(redux__WEBPACK_IMPORTED_MODULE_0__);
8967
- /* harmony import */ var _slices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67647);
8968
-
8969
-
8970
- const rootReducer = (0,redux__WEBPACK_IMPORTED_MODULE_0__.combineReducers)({
8971
- board: _slices__WEBPACK_IMPORTED_MODULE_1__/* .boardSlice.reducer */ .I8.reducer,
8972
- cellFilter: _slices__WEBPACK_IMPORTED_MODULE_1__/* .cellFilterSlice.reducer */ .mO.reducer,
8973
- dictionary: _slices__WEBPACK_IMPORTED_MODULE_1__/* .dictionarySlice.reducer */ .lj.reducer,
8974
- rack: _slices__WEBPACK_IMPORTED_MODULE_1__/* .rackSlice.reducer */ .O_.reducer,
8975
- results: _slices__WEBPACK_IMPORTED_MODULE_1__/* .resultsSlice.reducer */ ._C.reducer,
8976
- settings: _slices__WEBPACK_IMPORTED_MODULE_1__/* .settingsSlice.reducer */ .xj.reducer,
8977
- solve: _slices__WEBPACK_IMPORTED_MODULE_1__/* .solveSlice.reducer */ .TP.reducer,
8978
- verify: _slices__WEBPACK_IMPORTED_MODULE_1__/* .verifySlice.reducer */ .Gt.reducer
8979
- });
8980
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rootReducer);
8981
-
8982
-
8983
8910
  /***/ }),
8984
8911
 
8985
8912
  /***/ 23599:
@@ -8998,8 +8925,8 @@ var build = __webpack_require__(7618);
8998
8925
  var types_build = __webpack_require__(34046);
8999
8926
  // EXTERNAL MODULE: external "redux-saga/effects"
9000
8927
  var effects_ = __webpack_require__(56477);
9001
- // EXTERNAL MODULE: ./src/lib/index.ts + 29 modules
9002
- var lib = __webpack_require__(86953);
8928
+ // EXTERNAL MODULE: ./src/lib/index.ts + 31 modules
8929
+ var lib = __webpack_require__(10129);
9003
8930
  ;// CONCATENATED MODULE: ./src/sdk/fetch.ts
9004
8931
 
9005
8932
  const fetch_fetch = async (input, init)=>{
@@ -9180,6 +9107,7 @@ function* onReset() {
9180
9107
  yield (0,effects_.put)(slices/* dictionarySlice.actions.reset */.lj.actions.reset());
9181
9108
  yield (0,effects_.put)(slices/* rackSlice.actions.reset */.O_.actions.reset());
9182
9109
  yield (0,effects_.put)(slices/* resultsSlice.actions.reset */._C.actions.reset());
9110
+ yield (0,effects_.put)(slices/* solveSlice.actions.reset */.TP.actions.reset());
9183
9111
  yield (0,effects_.put)(slices/* verifySlice.actions.submit */.Gt.actions.submit());
9184
9112
  }
9185
9113
  function* onLocaleChange() {
@@ -9289,7 +9217,7 @@ function* ensureProperTilesCount() {
9289
9217
  /* harmony export */ "Or": () => (/* binding */ selectCharacterPoints),
9290
9218
  /* harmony export */ "QB": () => (/* binding */ selectRack),
9291
9219
  /* harmony export */ "QL": () => (/* binding */ selectResultsQuery),
9292
- /* harmony export */ "R": () => (/* binding */ selectResultsSortColumn),
9220
+ /* harmony export */ "R": () => (/* binding */ selectResultsSort),
9293
9221
  /* harmony export */ "Rn": () => (/* binding */ selectSolveError),
9294
9222
  /* harmony export */ "Xk": () => (/* binding */ selectResultCandidate),
9295
9223
  /* harmony export */ "Yj": () => (/* binding */ selectRemainingTilesGroups),
@@ -9297,8 +9225,6 @@ function* ensureProperTilesCount() {
9297
9225
  /* harmony export */ "ZO": () => (/* binding */ selectBoard),
9298
9226
  /* harmony export */ "Zf": () => (/* binding */ selectTilePoints),
9299
9227
  /* harmony export */ "bs": () => (/* binding */ selectHasInvalidWords),
9300
- /* harmony export */ "dN": () => (/* binding */ selectSortedFilteredResults),
9301
- /* harmony export */ "f2": () => (/* binding */ selectSortedResults),
9302
9228
  /* harmony export */ "fN": () => (/* binding */ selectLocale),
9303
9229
  /* harmony export */ "fZ": () => (/* binding */ selectCellIsValid),
9304
9230
  /* harmony export */ "id": () => (/* binding */ selectCellIsFiltered),
@@ -9306,14 +9232,15 @@ function* ensureProperTilesCount() {
9306
9232
  /* harmony export */ "mK": () => (/* binding */ selectDictionaryError),
9307
9233
  /* harmony export */ "md": () => (/* binding */ selectConfigId),
9308
9234
  /* harmony export */ "nb": () => (/* binding */ selectTranslations),
9309
- /* harmony export */ "sH": () => (/* binding */ selectResultsSortDirection),
9310
9235
  /* harmony export */ "uz": () => (/* binding */ selectAutoGroupTiles),
9311
9236
  /* harmony export */ "w1": () => (/* binding */ selectDictionary),
9237
+ /* harmony export */ "x5": () => (/* binding */ selectResults),
9312
9238
  /* harmony export */ "xU": () => (/* binding */ selectIsLoading),
9239
+ /* harmony export */ "yJ": () => (/* binding */ selectIsResultMatching),
9313
9240
  /* harmony export */ "yp": () => (/* binding */ selectCharacters),
9314
9241
  /* harmony export */ "z$": () => (/* binding */ selectResultCandidateTiles)
9315
9242
  /* harmony export */ });
9316
- /* unused harmony exports selectCellFilter, selectResults, selectResultCandidateCells, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
9243
+ /* unused harmony exports selectCellFilter, selectResultsRaw, selectSortedResults, selectGroupedResults, selectResultCandidateCells, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
9317
9244
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
9318
9245
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
9319
9246
  /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89418);
@@ -9322,8 +9249,8 @@ function* ensureProperTilesCount() {
9322
9249
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34046);
9323
9250
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__);
9324
9251
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
9325
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(86953);
9326
-
9252
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10129);
9253
+ /* eslint-disable max-lines */
9327
9254
 
9328
9255
 
9329
9256
 
@@ -9331,6 +9258,7 @@ function* ensureProperTilesCount() {
9331
9258
 
9332
9259
  const selectCell = (_, cell)=>cell;
9333
9260
  const selectPoint = (_, point)=>point;
9261
+ const selectResultIndex = (_, index)=>index;
9334
9262
  const selectCharacter = (_, character)=>character;
9335
9263
  const selectTile = (_, tile)=>tile;
9336
9264
  const selectBoardRoot = (state)=>state.board;
@@ -9386,54 +9314,51 @@ const selectCellIsValid = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.creat
9386
9314
  }
9387
9315
  return config.tiles.some((tile)=>tile.character === cell.tile.character);
9388
9316
  });
9389
- const selectResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9317
+ const selectResultsRaw = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9390
9318
  selectResultsRoot
9391
9319
  ], (results)=>results.results);
9392
9320
  const selectResultsQuery = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9393
9321
  selectResultsRoot
9394
9322
  ], (results)=>results.query);
9395
- const selectResultsSortColumn = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9323
+ const selectResultsSort = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9396
9324
  selectResultsRoot
9397
- ], (results)=>results.sort.column);
9398
- const selectResultsSortDirection = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9399
- selectResultsRoot
9400
- ], (results)=>results.sort.direction);
9325
+ ], (results)=>results.sort);
9401
9326
  const selectSortedResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9402
- selectResults,
9403
- selectResultsSortColumn,
9404
- selectResultsSortDirection,
9327
+ selectResultsRaw,
9328
+ selectResultsSort,
9405
9329
  selectLocale
9406
9330
  ], lib__WEBPACK_IMPORTED_MODULE_5__/* .sortResults */ .uj);
9407
- const filterResultsByQuery = (results, query)=>{
9408
- if (query.trim().length === 0) {
9409
- return results;
9410
- }
9411
- let regExp;
9412
- try {
9413
- regExp = new RegExp(query, "gi");
9414
- } catch {
9415
- return results;
9416
- }
9417
- return results.filter((result)=>{
9418
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
9419
- return regExp.test(result.word);
9420
- });
9421
- };
9422
- const selectSortedFilteredResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9331
+ const selectGroupedResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9423
9332
  selectSortedResults,
9424
9333
  selectResultsQuery,
9425
9334
  selectCellFilter
9426
- ], (results, query, cellFilter)=>{
9335
+ ], lib__WEBPACK_IMPORTED_MODULE_5__/* .groupResults */ .CU);
9336
+ const selectResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9337
+ selectGroupedResults
9338
+ ], (groupedResults)=>{
9339
+ return groupedResults ? [
9340
+ ...groupedResults.matching,
9341
+ ...groupedResults.other
9342
+ ] : groupedResults;
9343
+ });
9344
+ const selectIsResultMatching = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9345
+ selectResults,
9346
+ selectResultsQuery,
9347
+ selectCellFilter,
9348
+ selectResultIndex
9349
+ ], (results, query, cellFilter, index)=>{
9427
9350
  if (!results) {
9428
- return results;
9351
+ return false;
9429
9352
  }
9430
- const filteredByQuery = filterResultsByQuery(results, query);
9431
- if (!cellFilter) {
9432
- return filteredByQuery;
9353
+ const result = results[index];
9354
+ const regExp = (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .createRegExp */ .GF)(query);
9355
+ if (!regExp.test(result.word)) {
9356
+ return false;
9433
9357
  }
9434
- return filteredByQuery.filter((result)=>{
9358
+ if (cellFilter) {
9435
9359
  return cellFilter.every(({ x , y })=>result.cells.some((cell)=>cell.x === x && cell.y === y));
9436
- });
9360
+ }
9361
+ return true;
9437
9362
  });
9438
9363
  const selectResultCandidate = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9439
9364
  selectResultsRoot
@@ -9566,27 +9491,15 @@ __webpack_require__.d(__webpack_exports__, {
9566
9491
  var build = __webpack_require__(89418);
9567
9492
  // EXTERNAL MODULE: ../types/build/index.js
9568
9493
  var types_build = __webpack_require__(34046);
9494
+ // EXTERNAL MODULE: ./src/lib/index.ts + 31 modules
9495
+ var lib = __webpack_require__(10129);
9569
9496
  ;// CONCATENATED MODULE: ./src/state/slices/settingsInitialState.ts
9570
9497
 
9571
9498
 
9572
- const getInitialLocale = ()=>{
9573
- if (!globalThis.navigator) {
9574
- return types_build.Locale.EN_US;
9575
- }
9576
- const locales = Object.values(types_build.Locale);
9577
- const exactMatch = locales.find((locale)=>globalThis.navigator.language === locale);
9578
- if (exactMatch) {
9579
- return exactMatch;
9580
- }
9581
- const partialMatch = locales.find((locale)=>{
9582
- return globalThis.navigator.language === locale.substring(0, 2);
9583
- });
9584
- return partialMatch || types_build.Locale.EN_US;
9585
- };
9586
9499
  const settingsInitialState = {
9587
9500
  autoGroupTiles: "left",
9588
9501
  configId: build.scrabble.id,
9589
- locale: getInitialLocale()
9502
+ locale: (0,lib/* guessLocale */.sf)()
9590
9503
  };
9591
9504
  /* harmony default export */ const slices_settingsInitialState = (settingsInitialState);
9592
9505
 
@@ -9776,8 +9689,6 @@ const dictionarySlice = (0,toolkit_.createSlice)({
9776
9689
  });
9777
9690
  /* harmony default export */ const slices_dictionarySlice = (dictionarySlice);
9778
9691
 
9779
- // EXTERNAL MODULE: ./src/lib/index.ts + 29 modules
9780
- var lib = __webpack_require__(86953);
9781
9692
  ;// CONCATENATED MODULE: ./src/state/slices/rackInitialState.ts
9782
9693
  const rackInitialState = [
9783
9694
  null,
@@ -9967,6 +9878,7 @@ const solveSlice = (0,toolkit_.createSlice)({
9967
9878
  initialState: slices_solveInitialState,
9968
9879
  name: "solve",
9969
9880
  reducers: {
9881
+ reset: ()=>slices_solveInitialState,
9970
9882
  submit: (state)=>{
9971
9883
  const error = slices_solveInitialState.error;
9972
9884
  return {