@scrabble-solver/scrabble-solver 2.11.6 → 2.11.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +10 -10
  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 +608 -397
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/pages/404.html +1 -1
  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 +9 -2
  21. package/.next/server/pages/_app.js.nft.json +1 -1
  22. package/.next/server/pages/api/solve.js +29 -1
  23. package/.next/server/pages/index.html +1 -1
  24. package/.next/server/pages/index.js +10 -2
  25. package/.next/server/pages/index.js.nft.json +1 -1
  26. package/.next/server/pages/index.json +1 -1
  27. package/.next/server/pages-manifest.json +1 -1
  28. package/.next/static/chunks/framework-2c5cac93e8c637b5.js +49 -0
  29. package/.next/static/chunks/pages/{404-8176f4acd0cfeb42.js → 404-ca203fa27afc37d8.js} +1 -1
  30. package/.next/static/chunks/pages/_app-e89a3c225b87516a.js +28 -0
  31. package/.next/static/chunks/pages/index-58744f49bf6b891f.js +1 -0
  32. package/.next/static/css/edaeaa48321b4cf2.css +2 -0
  33. package/.next/static/{Jmk00rVXCbdjFgP77tKXQ → uhB6d-q63uRC6RubwepLq}/_buildManifest.js +1 -1
  34. package/.next/trace +50 -50
  35. package/package.json +9 -9
  36. package/src/components/Board/Board.module.scss +2 -59
  37. package/src/components/Board/Board.tsx +22 -10
  38. package/src/components/Board/BoardPure.tsx +13 -8
  39. package/src/components/Board/components/Cell/Cell.module.scss +8 -140
  40. package/src/components/Board/components/Cell/Cell.tsx +18 -37
  41. package/src/components/Board/hooks/index.ts +1 -0
  42. package/src/components/Board/hooks/useBackgroundImage.tsx +170 -0
  43. package/src/components/Board/lib/getBonusColor.ts +18 -0
  44. package/src/components/Board/lib/index.ts +1 -0
  45. package/src/components/DictionaryInput/DictionaryInput.tsx +5 -3
  46. package/src/components/Results/Cell.tsx +2 -2
  47. package/src/components/Results/Result.tsx +4 -8
  48. package/src/components/Results/Results.module.scss +5 -3
  49. package/src/components/Solver/Solver.tsx +2 -2
  50. package/src/components/Tooltip/Tooltip.module.scss +2 -0
  51. package/src/hooks/useAppLayout.ts +1 -0
  52. package/src/i18n/constants.ts +25 -8
  53. package/src/i18n/de.json +2 -2
  54. package/src/i18n/en.json +2 -2
  55. package/src/i18n/es.json +2 -2
  56. package/src/i18n/fa.json +2 -2
  57. package/src/i18n/fr.json +2 -2
  58. package/src/i18n/pl.json +2 -2
  59. package/src/lib/dataUrlToBlob.ts +20 -0
  60. package/src/lib/index.ts +1 -0
  61. package/src/pages/_app.tsx +1 -3
  62. package/src/parameters/index.ts +33 -2
  63. package/src/state/index.ts +1 -1
  64. package/src/state/sagas.ts +3 -4
  65. package/src/state/store.ts +34 -0
  66. package/src/styles/variables.scss +2 -0
  67. package/.next/static/chunks/framework-2c79e2a64abdb08b.js +0 -33
  68. package/.next/static/chunks/pages/_app-b4fa92112b8f0385.js +0 -28
  69. package/.next/static/chunks/pages/index-ccd762f8f5028729.js +0 -1
  70. package/.next/static/css/1cd302e7648d209c.css +0 -2
  71. package/src/components/Board/components/Cell/CellPure.tsx +0 -93
  72. package/src/components/Board/components/Cell/lib.ts +0 -59
  73. package/src/state/createAppStore.ts +0 -38
  74. /package/.next/static/{Jmk00rVXCbdjFgP77tKXQ → uhB6d-q63uRC6RubwepLq}/_ssgManifest.js +0 -0
@@ -989,8 +989,6 @@ module.exports = {
989
989
  // Exports
990
990
  module.exports = {
991
991
  "board": "Board_board__eA_bB",
992
- "row": "Board_row__mezHN",
993
- "cell": "Board_cell__RJssv",
994
992
  "actions": "Board_actions__W2CX9",
995
993
  "hide": "Board_hide__Fskbc",
996
994
  "shown": "Board_shown__T9Txa",
@@ -1021,25 +1019,11 @@ module.exports = {
1021
1019
 
1022
1020
  // Exports
1023
1021
  module.exports = {
1024
- "cell": "Cell_cell__2GOSl",
1025
- "bottom": "Cell_bottom__kFkxx",
1026
- "right": "Cell_right__ItPQR",
1027
- "bonusStart": "Cell_bonusStart__zy3BV",
1028
- "bonusCharacter1": "Cell_bonusCharacter1__zJUuA",
1029
- "bonusCharacter2": "Cell_bonusCharacter2__HZDn8",
1030
- "bonusCharacter3": "Cell_bonusCharacter3__pWf1f",
1031
- "bonusCharacter5": "Cell_bonusCharacter5__LdDrj",
1032
- "bonusCharacterMultiplier2": "Cell_bonusCharacterMultiplier2__Qpcd7",
1033
- "bonusCharacterMultiplier3": "Cell_bonusCharacterMultiplier3__0qtZY",
1034
- "bonusWord2": "Cell_bonusWord2__Ztd1C",
1035
- "bonusWord3": "Cell_bonusWord3__eTB6G",
1036
- "filtered": "Cell_filtered__16gx1",
1037
- "sharpTopLeft": "Cell_sharpTopLeft__EGQgw",
1038
1022
  "tile": "Cell_tile__bTdCO",
1023
+ "sharpTopLeft": "Cell_sharpTopLeft__EGQgw",
1039
1024
  "sharpTopRight": "Cell_sharpTopRight__rzADZ",
1040
1025
  "sharpBottomLeft": "Cell_sharpBottomLeft__YGRug",
1041
- "sharpBottomRight": "Cell_sharpBottomRight__twtbd",
1042
- "icon": "Cell_icon__8EWsQ"
1026
+ "sharpBottomRight": "Cell_sharpBottomRight__twtbd"
1043
1027
  };
1044
1028
 
1045
1029
 
@@ -1559,15 +1543,17 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1559
1543
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
1560
1544
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
1561
1545
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
1562
- /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
1563
- /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
1564
- /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33791);
1565
- /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_Board_module_scss__WEBPACK_IMPORTED_MODULE_11__);
1566
- /* harmony import */ var _BoardPure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(86058);
1567
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(94347);
1568
- /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(48327);
1569
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _BoardPure__WEBPACK_IMPORTED_MODULE_8__, _components__WEBPACK_IMPORTED_MODULE_9__, _hooks__WEBPACK_IMPORTED_MODULE_10__]);
1570
- ([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_7__, _BoardPure__WEBPACK_IMPORTED_MODULE_8__, _components__WEBPACK_IMPORTED_MODULE_9__, _hooks__WEBPACK_IMPORTED_MODULE_10__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1546
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(55238);
1547
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64534);
1548
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83067);
1549
+ /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(33791);
1550
+ /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_Board_module_scss__WEBPACK_IMPORTED_MODULE_12__);
1551
+ /* harmony import */ var _BoardPure__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(86058);
1552
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(94347);
1553
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(48327);
1554
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_8__, _BoardPure__WEBPACK_IMPORTED_MODULE_9__, _components__WEBPACK_IMPORTED_MODULE_10__, _hooks__WEBPACK_IMPORTED_MODULE_11__]);
1555
+ ([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_8__, _BoardPure__WEBPACK_IMPORTED_MODULE_9__, _components__WEBPACK_IMPORTED_MODULE_10__, _hooks__WEBPACK_IMPORTED_MODULE_11__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1556
+
1571
1557
 
1572
1558
 
1573
1559
 
@@ -1580,21 +1566,34 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_flo
1580
1566
 
1581
1567
 
1582
1568
 
1583
- const Board = ({ cellSize , className })=>{
1569
+ const Board = ({ className })=>{
1584
1570
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
1585
- const rows = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectRowsWithCandidate */ .ZA);
1586
- const board = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectBoard */ .ZO);
1587
- const { actionsWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
1588
- const [{ activeIndex , direction , inputRefs }, { onChange , onDirectionToggle , onFocus , onKeyDown , onPaste }] = (0,_hooks__WEBPACK_IMPORTED_MODULE_10__/* .useGrid */ .N)(rows);
1571
+ const rows = (0,state__WEBPACK_IMPORTED_MODULE_8__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_8__/* .selectRowsWithCandidate */ .ZA);
1572
+ const config = (0,state__WEBPACK_IMPORTED_MODULE_8__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_8__/* .selectConfig */ .$o);
1573
+ const { actionsWidth , cellSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
1574
+ const { tileFontSize } = (0,lib__WEBPACK_IMPORTED_MODULE_6__/* .getTileSizes */ .vc)(cellSize);
1575
+ const [{ activeIndex , direction , inputRefs }, { onChange , onDirectionToggle , onFocus , onKeyDown , onPaste }] = (0,_hooks__WEBPACK_IMPORTED_MODULE_11__/* .useGrid */ .N)(rows);
1576
+ const backgroundImage = (0,_hooks__WEBPACK_IMPORTED_MODULE_11__/* .useBackgroundImage */ .c)();
1577
+ const boardStyle = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>({
1578
+ backgroundImage,
1579
+ fontSize: tileFontSize,
1580
+ gridTemplateColumns: `repeat(${config.boardWidth}, 1fr)`,
1581
+ gridTemplateRows: `repeat(${config.boardHeight}, 1fr)`
1582
+ }), [
1583
+ backgroundImage,
1584
+ config.boardHeight,
1585
+ config.boardWidth,
1586
+ tileFontSize
1587
+ ]);
1588
+ const [showActions, setShowActions] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false);
1589
+ const [transition, setTransition] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(parameters__WEBPACK_IMPORTED_MODULE_7__/* .TRANSITION */ .yz);
1589
1590
  const inputRef = inputRefs[activeIndex.y][activeIndex.x];
1590
1591
  const cell = rows[activeIndex.y][activeIndex.x];
1591
- const [showActions, setShowActions] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false);
1592
- const [transition, setTransition] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(parameters__WEBPACK_IMPORTED_MODULE_6__/* .TRANSITION */ .yz);
1593
1592
  const { x , y , strategy , refs } = (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.useFloating)({
1594
1593
  middleware: [
1595
1594
  (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.offset)({
1596
- mainAxis: -parameters__WEBPACK_IMPORTED_MODULE_6__/* .BOARD_CELL_ACTIONS_OFFSET */ .IO,
1597
- alignmentAxis: parameters__WEBPACK_IMPORTED_MODULE_6__/* .BOARD_CELL_ACTIONS_OFFSET */ .IO - actionsWidth
1595
+ mainAxis: -parameters__WEBPACK_IMPORTED_MODULE_7__/* .BOARD_CELL_ACTIONS_OFFSET */ .IO,
1596
+ alignmentAxis: parameters__WEBPACK_IMPORTED_MODULE_7__/* .BOARD_CELL_ACTIONS_OFFSET */ .IO - actionsWidth
1598
1597
  }),
1599
1598
  (0,_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.shift)()
1600
1599
  ],
@@ -1643,7 +1642,7 @@ const Board = ({ cellSize , className })=>{
1643
1642
  ]);
1644
1643
  const handleToggleBlank = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1645
1644
  inputRef.current?.focus();
1646
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(cell));
1645
+ dispatch(state__WEBPACK_IMPORTED_MODULE_8__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(cell));
1647
1646
  }, [
1648
1647
  cell,
1649
1648
  dispatch,
@@ -1651,7 +1650,7 @@ const Board = ({ cellSize , className })=>{
1651
1650
  ]);
1652
1651
  const handleToggleFilterCell = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{
1653
1652
  inputRef.current?.focus();
1654
- dispatch(state__WEBPACK_IMPORTED_MODULE_7__/* .cellFilterSlice.actions.toggle */ .mO.actions.toggle(cell));
1653
+ dispatch(state__WEBPACK_IMPORTED_MODULE_8__/* .cellFilterSlice.actions.toggle */ .mO.actions.toggle(cell));
1655
1654
  }, [
1656
1655
  cell,
1657
1656
  dispatch,
@@ -1659,12 +1658,12 @@ const Board = ({ cellSize , className })=>{
1659
1658
  ]);
1660
1659
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1661
1660
  children: [
1662
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BoardPure__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
1661
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BoardPure__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
1663
1662
  className: className,
1664
1663
  cellSize: cellSize,
1665
- center: board.center,
1666
1664
  inputRefs: inputRefs,
1667
1665
  rows: rows,
1666
+ style: boardStyle,
1668
1667
  onBlur: handleBlur,
1669
1668
  onChange: onChange,
1670
1669
  onFocus: handleFocus,
@@ -1672,10 +1671,10 @@ const Board = ({ cellSize , className })=>{
1672
1671
  onPaste: onPaste
1673
1672
  }),
1674
1673
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__.FloatingPortal, {
1675
- children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_9__/* .Actions */ .e, {
1674
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_10__/* .Actions */ .e, {
1676
1675
  cell: cell,
1677
- className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Board_module_scss__WEBPACK_IMPORTED_MODULE_11___default().actions), {
1678
- [(_Board_module_scss__WEBPACK_IMPORTED_MODULE_11___default().shown)]: showActions
1676
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Board_module_scss__WEBPACK_IMPORTED_MODULE_12___default().actions), {
1677
+ [(_Board_module_scss__WEBPACK_IMPORTED_MODULE_12___default().shown)]: showActions
1679
1678
  }),
1680
1679
  disabled: !showActions,
1681
1680
  direction: direction,
@@ -1729,13 +1728,13 @@ _components__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then
1729
1728
 
1730
1729
 
1731
1730
 
1732
- const BoardPure = ({ className , cellSize , center , inputRefs , rows , onBlur , onChange , onFocus , onKeyDown , onPaste })=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1731
+ const BoardPure = ({ className , cellSize , inputRefs , rows , style , onBlur , onChange , onFocus , onKeyDown , onPaste })=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1733
1732
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().board), className),
1733
+ style: style,
1734
1734
  onBlur: onBlur,
1735
1735
  onKeyDown: onKeyDown,
1736
1736
  onPaste: onPaste,
1737
- children: rows.map((cells, y)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1738
- className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().row),
1737
+ children: rows.map((cells, y)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
1739
1738
  children: cells.map((cell, x)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_3__/* .Cell */ .b, {
1740
1739
  className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().cell),
1741
1740
  cell: cell,
@@ -1744,9 +1743,6 @@ const BoardPure = ({ className , cellSize , center , inputRefs , rows , onBlur ,
1744
1743
  cellRight: x < rows.length - 1 ? rows[y][x + 1] : undefined,
1745
1744
  cellTop: y > 0 ? rows[y - 1][x] : undefined,
1746
1745
  inputRef: inputRefs[y][x],
1747
- isBottom: y === rows.length - 1,
1748
- isCenter: center.x === x && center.y === y,
1749
- isRight: x === cells.length - 1,
1750
1746
  size: cellSize,
1751
1747
  onChange: onChange,
1752
1748
  onFocus: onFocus
@@ -1776,7 +1772,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1776
1772
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
1777
1773
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
1778
1774
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58966);
1779
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
1775
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55238);
1780
1776
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
1781
1777
  /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83900);
1782
1778
  /* harmony import */ var _Actions_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(79739);
@@ -1874,62 +1870,55 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1874
1870
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
1875
1871
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
1876
1872
  /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7618);
1877
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
1878
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1879
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65175);
1873
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
1874
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
1875
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
1876
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
1880
1877
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
1881
- /* harmony import */ var _CellPure__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12418);
1882
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _CellPure__WEBPACK_IMPORTED_MODULE_5__]);
1883
- ([state__WEBPACK_IMPORTED_MODULE_4__, _CellPure__WEBPACK_IMPORTED_MODULE_5__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1878
+ /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96815);
1879
+ /* harmony import */ var _Cell_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7576);
1880
+ /* harmony import */ var _Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6__);
1881
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__, _Tile__WEBPACK_IMPORTED_MODULE_5__]);
1882
+ ([state__WEBPACK_IMPORTED_MODULE_4__, _Tile__WEBPACK_IMPORTED_MODULE_5__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1883
+
1884
1884
 
1885
1885
 
1886
1886
 
1887
1887
 
1888
1888
 
1889
1889
 
1890
- const Cell = ({ cell , cellBottom , cellLeft , cellRight , cellTop , className , inputRef , isBottom , isCenter , isRight , size , onChange , onFocus })=>{
1890
+ const Cell = ({ cell , cellBottom , cellLeft , cellRight , cellTop , className , inputRef , size , onChange , onFocus })=>{
1891
1891
  const { tile , x , y } = cell;
1892
1892
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
1893
1893
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
1894
- const bonus = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_4__/* .selectCellBonus */ .O0)(state, cell));
1895
1894
  const points = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_4__/* .selectTilePoints */ .Zf)(state, cell.tile));
1896
- const isFiltered = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_4__/* .selectCellIsFiltered */ .id)(state, cell));
1897
1895
  const isValid = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_4__/* .selectCellIsValid */ .fZ)(state, cell));
1898
- const { tileFontSize } = (0,lib__WEBPACK_IMPORTED_MODULE_3__/* .getTileSizes */ .vc)(size);
1899
1896
  const isEmpty = tile.character === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.EMPTY_CELL;
1900
- const style = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>({
1901
- fontSize: tileFontSize
1902
- }), [
1903
- tileFontSize
1904
- ]);
1905
- const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(()=>onFocus(x, y), [
1897
+ const handleFocus = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>onFocus(x, y), [
1906
1898
  x,
1907
1899
  y,
1908
1900
  onFocus
1909
1901
  ]);
1910
- return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_CellPure__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
1902
+ return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Tile__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
1911
1903
  "aria-label": translate("cell.tile.location", {
1912
1904
  x: (x + 1).toLocaleString(locale),
1913
1905
  y: (y + 1).toLocaleString(locale)
1914
1906
  }),
1915
- bonus: bonus,
1916
- cell: cell,
1917
- cellBottom: cellBottom,
1918
- cellLeft: cellLeft,
1919
- cellRight: cellRight,
1920
- cellTop: cellTop,
1921
- className: className,
1907
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().tile), className, {
1908
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopLeft)]: cellTop?.hasTile() || cellLeft?.hasTile(),
1909
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopRight)]: cellTop?.hasTile() || cellRight?.hasTile(),
1910
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpBottomLeft)]: cellBottom?.hasTile() || cellLeft?.hasTile(),
1911
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpBottomRight)]: cellBottom?.hasTile() || cellRight?.hasTile()
1912
+ }),
1913
+ character: isEmpty ? undefined : tile.character,
1914
+ highlighted: cell.isCandidate(),
1922
1915
  inputRef: inputRef,
1923
- isBottom: isBottom,
1924
- isCenter: isCenter,
1925
- isRight: isRight,
1926
- isEmpty: isEmpty,
1927
- isFiltered: isFiltered,
1916
+ isBlank: tile.isBlank,
1928
1917
  isValid: isValid,
1929
1918
  points: points,
1919
+ raised: !isEmpty,
1930
1920
  size: size,
1931
- style: style,
1932
- tile: tile,
1921
+ tabIndex: cell.x === 0 && cell.y === 0 ? undefined : -1,
1933
1922
  onChange: onChange,
1934
1923
  onFocus: handleFocus
1935
1924
  });
@@ -1941,76 +1930,6 @@ __webpack_async_result__();
1941
1930
 
1942
1931
  /***/ }),
1943
1932
 
1944
- /***/ 12418:
1945
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1946
-
1947
- "use strict";
1948
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1949
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1950
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
1951
- /* harmony export */ });
1952
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
1953
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
1954
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
1955
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
1956
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
1957
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1958
- /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
1959
- /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96815);
1960
- /* harmony import */ var _Cell_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7576);
1961
- /* harmony import */ var _Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6__);
1962
- /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97569);
1963
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Tile__WEBPACK_IMPORTED_MODULE_4__]);
1964
- _Tile__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1965
-
1966
-
1967
-
1968
-
1969
-
1970
-
1971
-
1972
- 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", {
1973
- 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), {
1974
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().bottom)]: isBottom,
1975
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().filtered)]: isFiltered,
1976
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().right)]: isRight,
1977
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopLeft)]: cellTop?.hasTile() || cellLeft?.hasTile(),
1978
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopRight)]: cellTop?.hasTile() || cellRight?.hasTile(),
1979
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpBottomLeft)]: cellBottom?.hasTile() || cellLeft?.hasTile(),
1980
- [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpBottomRight)]: cellBottom?.hasTile() || cellRight?.hasTile()
1981
- }),
1982
- style: style,
1983
- children: [
1984
- isCenter && isEmpty && !isFiltered && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_3__/* .Star */ .Ux, {
1985
- className: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().icon)
1986
- }),
1987
- isFiltered && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_3__/* .FlagFill */ .aR, {
1988
- className: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().icon)
1989
- }),
1990
- /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Tile__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
1991
- "aria-label": ariaLabel,
1992
- className: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().tile),
1993
- character: isEmpty ? undefined : tile.character,
1994
- highlighted: cell.isCandidate(),
1995
- inputRef: inputRef,
1996
- isBlank: tile.isBlank,
1997
- isValid: isValid,
1998
- points: points,
1999
- raised: !isEmpty,
2000
- size: size,
2001
- tabIndex: cell.x === 0 && cell.y === 0 ? undefined : -1,
2002
- onChange: onChange,
2003
- onFocus: onFocus
2004
- })
2005
- ]
2006
- });
2007
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(CellPure));
2008
-
2009
- __webpack_async_result__();
2010
- } catch(e) { __webpack_async_result__(e); } });
2011
-
2012
- /***/ }),
2013
-
2014
1933
  /***/ 21533:
2015
1934
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
2016
1935
 
@@ -2029,77 +1948,40 @@ __webpack_async_result__();
2029
1948
 
2030
1949
  /***/ }),
2031
1950
 
2032
- /***/ 97569:
2033
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1951
+ /***/ 94347:
1952
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
2034
1953
 
2035
1954
  "use strict";
1955
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
2036
1956
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2037
- /* harmony export */ "K": () => (/* binding */ getBonusClassname)
1957
+ /* harmony export */ "b": () => (/* reexport safe */ _Cell__WEBPACK_IMPORTED_MODULE_1__.Z),
1958
+ /* harmony export */ "e": () => (/* reexport safe */ _Actions__WEBPACK_IMPORTED_MODULE_0__.Z)
2038
1959
  /* harmony export */ });
2039
- /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7618);
2040
- /* harmony import */ var _Cell_module_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7576);
2041
- /* harmony import */ var _Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1__);
1960
+ /* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38833);
1961
+ /* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21533);
1962
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Actions__WEBPACK_IMPORTED_MODULE_0__, _Cell__WEBPACK_IMPORTED_MODULE_1__]);
1963
+ ([_Actions__WEBPACK_IMPORTED_MODULE_0__, _Cell__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
2042
1964
 
2043
1965
 
2044
- const CHARACTER_CLASSNAMES = {
2045
- 1: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacter1),
2046
- 2: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacter2),
2047
- 3: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacter3),
2048
- 5: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacter5)
2049
- };
2050
- const WORD_CLASSNAMES = {
2051
- 2: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusWord2),
2052
- 3: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusWord3)
2053
- };
2054
- const CHARACTER_MULTIPLIER_CLASSNAMES = {
2055
- 2: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacterMultiplier2),
2056
- 3: (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusCharacterMultiplier3)
2057
- };
2058
- const getBonusClassname = (cell, bonus, isCenter)=>{
2059
- if (!cell.isEmpty) {
2060
- return undefined;
2061
- }
2062
- if (isCenter) {
2063
- return (_Cell_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bonusStart);
2064
- }
2065
- if (!bonus) {
2066
- return undefined;
2067
- }
2068
- const { type } = bonus;
2069
- if (type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.BONUS_WORD) {
2070
- return getWordBonusClassname(bonus);
2071
- }
2072
- if (type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.BONUS_CHARACTER) {
2073
- return getCharacterBonusClassname(bonus);
2074
- }
2075
- throw new Error(`Unknown bonus type: ${type} ${bonus.x} ${bonus.y} ${bonus.multiplier} ${bonus.score}`);
2076
- };
2077
- const getWordBonusClassname = (bonus)=>{
2078
- return WORD_CLASSNAMES[bonus.multiplier];
2079
- };
2080
- const getCharacterBonusClassname = (bonus)=>{
2081
- if (bonus.score) {
2082
- return CHARACTER_CLASSNAMES[bonus.score];
2083
- }
2084
- return CHARACTER_MULTIPLIER_CLASSNAMES[bonus.multiplier];
2085
- };
2086
1966
 
1967
+ __webpack_async_result__();
1968
+ } catch(e) { __webpack_async_result__(e); } });
2087
1969
 
2088
1970
  /***/ }),
2089
1971
 
2090
- /***/ 94347:
1972
+ /***/ 48327:
2091
1973
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
2092
1974
 
2093
1975
  "use strict";
2094
1976
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
2095
1977
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2096
- /* harmony export */ "b": () => (/* reexport safe */ _Cell__WEBPACK_IMPORTED_MODULE_1__.Z),
2097
- /* harmony export */ "e": () => (/* reexport safe */ _Actions__WEBPACK_IMPORTED_MODULE_0__.Z)
1978
+ /* harmony export */ "N": () => (/* reexport safe */ _useGrid__WEBPACK_IMPORTED_MODULE_1__.Z),
1979
+ /* harmony export */ "c": () => (/* reexport safe */ _useBackgroundImage__WEBPACK_IMPORTED_MODULE_0__.Z)
2098
1980
  /* harmony export */ });
2099
- /* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38833);
2100
- /* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21533);
2101
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Actions__WEBPACK_IMPORTED_MODULE_0__, _Cell__WEBPACK_IMPORTED_MODULE_1__]);
2102
- ([_Actions__WEBPACK_IMPORTED_MODULE_0__, _Cell__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1981
+ /* harmony import */ var _useBackgroundImage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96589);
1982
+ /* harmony import */ var _useGrid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27070);
1983
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useBackgroundImage__WEBPACK_IMPORTED_MODULE_0__, _useGrid__WEBPACK_IMPORTED_MODULE_1__]);
1984
+ ([_useBackgroundImage__WEBPACK_IMPORTED_MODULE_0__, _useGrid__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
2103
1985
 
2104
1986
 
2105
1987
 
@@ -2108,19 +1990,248 @@ __webpack_async_result__();
2108
1990
 
2109
1991
  /***/ }),
2110
1992
 
2111
- /***/ 48327:
1993
+ /***/ 96589:
2112
1994
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
2113
1995
 
2114
1996
  "use strict";
2115
1997
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
2116
1998
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2117
- /* harmony export */ "N": () => (/* reexport safe */ _useGrid__WEBPACK_IMPORTED_MODULE_0__.Z)
1999
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
2118
2000
  /* harmony export */ });
2119
- /* harmony import */ var _useGrid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27070);
2120
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_useGrid__WEBPACK_IMPORTED_MODULE_0__]);
2121
- _useGrid__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
2001
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
2002
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
2003
+ /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7618);
2004
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
2005
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
2006
+ /* harmony import */ var react_dom_server__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78684);
2007
+ /* harmony import */ var react_dom_server__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom_server__WEBPACK_IMPORTED_MODULE_3__);
2008
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
2009
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
2010
+ /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75704);
2011
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(58966);
2012
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(55238);
2013
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(64534);
2014
+ /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(83067);
2015
+ /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(41051);
2016
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_9__]);
2017
+ ([hooks__WEBPACK_IMPORTED_MODULE_5__, state__WEBPACK_IMPORTED_MODULE_9__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
2018
+ /* eslint-disable max-statements */
2019
+
2020
+
2021
+
2022
+
2023
+
2024
+
2025
+
2122
2026
 
2123
2027
 
2028
+
2029
+ const HORIZONTAL_LINE = "h";
2030
+ const VERTICAL_LINE = "v";
2031
+ const BONUS = "b";
2032
+ const BONUS_WORD_2 = "b2";
2033
+ const BONUS_WORD_3 = "b3";
2034
+ const CELL_FILTER = "c";
2035
+ const useBackgroundImage = ()=>{
2036
+ const { boardSize , cellSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
2037
+ const config = (0,state__WEBPACK_IMPORTED_MODULE_9__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_9__/* .selectConfig */ .$o);
2038
+ const center = {
2039
+ x: Math.floor(config.boardWidth / 2),
2040
+ y: Math.floor(config.boardHeight / 2)
2041
+ };
2042
+ const cellFilter = (0,state__WEBPACK_IMPORTED_MODULE_9__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_9__/* .selectCellFilter */ .Jw);
2043
+ const viewBoxHeight = boardSize;
2044
+ const viewBoxWidth = boardSize;
2045
+ const bonusSize = cellSize * 0.8;
2046
+ const bonusOffset = cellSize * 0.1;
2047
+ const iconSize = cellSize * 0.4;
2048
+ const iconOffset = (cellSize - iconSize) / 2;
2049
+ const { tileFontSize } = (0,lib__WEBPACK_IMPORTED_MODULE_7__/* .getTileSizes */ .vc)(cellSize);
2050
+ const fontSize = tileFontSize * 0.6;
2051
+ const fontOffset = cellSize / 2;
2052
+ const characterBonuses = config.bonuses.filter((bonus)=>bonus.type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.BONUS_CHARACTER);
2053
+ const word2Bonuses = config.bonuses.filter((bonus)=>bonus.type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.BONUS_WORD && bonus.multiplier === 2);
2054
+ const word3Bonuses = config.bonuses.filter((bonus)=>bonus.type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.BONUS_WORD && bonus.multiplier === 3);
2055
+ const getX = (point)=>point.x * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF);
2056
+ const getY = (point)=>point.y * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF);
2057
+ const backgroundSvg = (0,react_dom_server__WEBPACK_IMPORTED_MODULE_3__.renderToString)(/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_redux__WEBPACK_IMPORTED_MODULE_4__.Provider, {
2058
+ store: state__WEBPACK_IMPORTED_MODULE_9__/* .store */ .h,
2059
+ children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("svg", {
2060
+ height: viewBoxHeight,
2061
+ viewBox: `0 0 ${viewBoxWidth} ${viewBoxHeight}`,
2062
+ width: viewBoxWidth,
2063
+ xmlns: "http://www.w3.org/2000/svg",
2064
+ children: [
2065
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("defs", {
2066
+ children: [
2067
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("symbol", {
2068
+ id: HORIZONTAL_LINE,
2069
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2070
+ fill: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_COLOR_LIGHT */ .uI,
2071
+ height: 1,
2072
+ width: viewBoxWidth
2073
+ })
2074
+ }),
2075
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("symbol", {
2076
+ id: VERTICAL_LINE,
2077
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2078
+ fill: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_COLOR_LIGHT */ .uI,
2079
+ height: viewBoxHeight,
2080
+ width: 1
2081
+ })
2082
+ }),
2083
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("symbol", {
2084
+ id: BONUS,
2085
+ children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2086
+ height: bonusSize,
2087
+ rx: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_RADIUS */ .n_,
2088
+ width: bonusSize,
2089
+ x: bonusOffset,
2090
+ y: bonusOffset
2091
+ })
2092
+ }),
2093
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("symbol", {
2094
+ id: BONUS_WORD_2,
2095
+ children: [
2096
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2097
+ height: bonusSize,
2098
+ rx: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_RADIUS */ .n_,
2099
+ width: bonusSize,
2100
+ x: bonusOffset,
2101
+ y: bonusOffset
2102
+ }),
2103
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("text", {
2104
+ dominantBaseline: "central",
2105
+ fill: "white",
2106
+ fontFamily: "system-ui, sans-serif",
2107
+ fontSize: fontSize,
2108
+ fontWeight: "bold",
2109
+ textAnchor: "middle",
2110
+ x: fontOffset,
2111
+ y: fontOffset,
2112
+ children: "x2"
2113
+ })
2114
+ ]
2115
+ }),
2116
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("symbol", {
2117
+ id: BONUS_WORD_3,
2118
+ children: [
2119
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2120
+ height: bonusSize,
2121
+ rx: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_RADIUS */ .n_,
2122
+ width: bonusSize,
2123
+ x: bonusOffset,
2124
+ y: bonusOffset
2125
+ }),
2126
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("text", {
2127
+ dominantBaseline: "central",
2128
+ fill: "white",
2129
+ fontFamily: "system-ui, sans-serif",
2130
+ fontSize: fontSize,
2131
+ fontWeight: "bold",
2132
+ textAnchor: "middle",
2133
+ x: fontOffset,
2134
+ y: fontOffset,
2135
+ children: "x3"
2136
+ })
2137
+ ]
2138
+ }),
2139
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("symbol", {
2140
+ id: CELL_FILTER,
2141
+ children: [
2142
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2143
+ fill: parameters__WEBPACK_IMPORTED_MODULE_8__/* .COLOR_FILTERED */ .pS,
2144
+ height: bonusSize,
2145
+ rx: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_RADIUS */ .n_,
2146
+ width: bonusSize,
2147
+ x: bonusOffset,
2148
+ y: bonusOffset
2149
+ }),
2150
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_6__/* .FlagFill */ .aR, {
2151
+ color: "white",
2152
+ height: iconSize,
2153
+ width: iconSize,
2154
+ x: iconOffset,
2155
+ y: iconOffset
2156
+ })
2157
+ ]
2158
+ })
2159
+ ]
2160
+ }),
2161
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2162
+ fill: "white",
2163
+ height: viewBoxHeight,
2164
+ rx: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_RADIUS */ .n_,
2165
+ width: viewBoxWidth,
2166
+ x: "0",
2167
+ y: "0"
2168
+ }),
2169
+ Array.from({
2170
+ length: config.boardHeight - 1
2171
+ }).map((_value, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2172
+ href: `#${HORIZONTAL_LINE}`,
2173
+ y: (index + 1) * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF) - parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF
2174
+ }, index)),
2175
+ Array.from({
2176
+ length: config.boardWidth - 1
2177
+ }).map((_value, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2178
+ href: `#${VERTICAL_LINE}`,
2179
+ x: (index + 1) * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF) - parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF
2180
+ }, index)),
2181
+ characterBonuses.map((bonus, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2182
+ fill: (0,_lib__WEBPACK_IMPORTED_MODULE_10__/* .getBonusColor */ .T)(bonus),
2183
+ href: `#${BONUS}`,
2184
+ x: getX(bonus),
2185
+ y: getY(bonus)
2186
+ }, index)),
2187
+ word2Bonuses.map((bonus, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2188
+ fill: (0,_lib__WEBPACK_IMPORTED_MODULE_10__/* .getBonusColor */ .T)(bonus),
2189
+ href: `#${BONUS_WORD_2}`,
2190
+ x: getX(bonus),
2191
+ y: getY(bonus)
2192
+ }, index)),
2193
+ word3Bonuses.map((bonus, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2194
+ fill: (0,_lib__WEBPACK_IMPORTED_MODULE_10__/* .getBonusColor */ .T)(bonus),
2195
+ href: `#${BONUS_WORD_3}`,
2196
+ x: getX(bonus),
2197
+ y: getY(bonus)
2198
+ }, index)),
2199
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2200
+ fill: parameters__WEBPACK_IMPORTED_MODULE_8__/* .COLOR_BONUS_START */ .HC,
2201
+ height: bonusSize,
2202
+ rx: parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_RADIUS */ .n_,
2203
+ width: bonusSize,
2204
+ x: getX(center) + bonusOffset,
2205
+ y: getY(center) + bonusOffset
2206
+ }),
2207
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_6__/* .Star */ .Ux, {
2208
+ color: "white",
2209
+ height: iconSize,
2210
+ width: iconSize,
2211
+ x: getX(center) + iconOffset,
2212
+ y: getY(center) + iconOffset
2213
+ }),
2214
+ cellFilter.map((cell, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2215
+ href: `#${CELL_FILTER}`,
2216
+ x: getX(cell),
2217
+ y: getY(cell)
2218
+ }, index))
2219
+ ]
2220
+ })
2221
+ }));
2222
+ const encodedSvg = globalThis.btoa(backgroundSvg);
2223
+ const dataUrl = `data:image/svg+xml;base64,${encodedSvg}`;
2224
+ const blob = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>(0,lib__WEBPACK_IMPORTED_MODULE_7__/* .dataUrlToBlob */ .kD)(dataUrl), [
2225
+ dataUrl
2226
+ ]);
2227
+ const blobUrl = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>URL.createObjectURL(blob), [
2228
+ blob
2229
+ ]);
2230
+ const url = `url(${blobUrl})`;
2231
+ return url;
2232
+ };
2233
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useBackgroundImage);
2234
+
2124
2235
  __webpack_async_result__();
2125
2236
  } catch(e) { __webpack_async_result__(e); } });
2126
2237
 
@@ -2143,9 +2254,9 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2143
2254
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
2144
2255
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
2145
2256
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36743);
2146
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65175);
2257
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(55238);
2147
2258
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
2148
- /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97792);
2259
+ /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(41051);
2149
2260
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__]);
2150
2261
  ([hooks__WEBPACK_IMPORTED_MODULE_4__, state__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
2151
2262
  /* eslint-disable max-lines, max-statements */
@@ -2187,7 +2298,7 @@ const useGrid = (rows)=>{
2187
2298
  inputRefs
2188
2299
  ]);
2189
2300
  const getInputRefPosition = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((inputRef)=>{
2190
- return (0,_lib__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(inputRefs, (ref)=>ref.current === inputRef);
2301
+ return (0,_lib__WEBPACK_IMPORTED_MODULE_8__/* .getPositionInGrid */ .I)(inputRefs, (ref)=>ref.current === inputRef);
2191
2302
  }, [
2192
2303
  inputRefs
2193
2304
  ]);
@@ -2518,13 +2629,36 @@ __webpack_async_result__();
2518
2629
 
2519
2630
  /***/ }),
2520
2631
 
2521
- /***/ 97792:
2632
+ /***/ 41051:
2522
2633
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2523
2634
 
2524
2635
  "use strict";
2525
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2526
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
2527
- /* harmony export */ });
2636
+
2637
+ // EXPORTS
2638
+ __webpack_require__.d(__webpack_exports__, {
2639
+ "T": () => (/* reexport */ lib_getBonusColor),
2640
+ "I": () => (/* reexport */ lib_getPositionInGrid)
2641
+ });
2642
+
2643
+ // EXTERNAL MODULE: ../constants/build/index.js
2644
+ var build = __webpack_require__(7618);
2645
+ // EXTERNAL MODULE: ./src/parameters/index.ts
2646
+ var parameters = __webpack_require__(64534);
2647
+ ;// CONCATENATED MODULE: ./src/components/Board/lib/getBonusColor.ts
2648
+
2649
+
2650
+ const getBonusColor = (bonus)=>{
2651
+ if (bonus.type === build.BONUS_WORD) {
2652
+ return parameters/* COLOR_BONUS_WORD */.ti[bonus.multiplier];
2653
+ }
2654
+ if (bonus.score) {
2655
+ return parameters/* COLOR_BONUS_CHARACTER */.kr[bonus.score];
2656
+ }
2657
+ return parameters/* COLOR_BONUS_CHARACTER_MULTIPLIER */.$P[bonus.multiplier];
2658
+ };
2659
+ /* harmony default export */ const lib_getBonusColor = (getBonusColor);
2660
+
2661
+ ;// CONCATENATED MODULE: ./src/components/Board/lib/getPositionInGrid.ts
2528
2662
  const getPositionInGrid = (grid, constraint)=>{
2529
2663
  for(let y = 0; y < grid.length; ++y){
2530
2664
  for(let x = 0; x < grid[0].length; ++x){
@@ -2538,7 +2672,11 @@ const getPositionInGrid = (grid, constraint)=>{
2538
2672
  }
2539
2673
  return undefined;
2540
2674
  };
2541
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getPositionInGrid);
2675
+ /* harmony default export */ const lib_getPositionInGrid = (getPositionInGrid);
2676
+
2677
+ ;// CONCATENATED MODULE: ./src/components/Board/lib/index.ts
2678
+
2679
+
2542
2680
 
2543
2681
 
2544
2682
  /***/ }),
@@ -2843,11 +2981,11 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
2843
2981
  /* harmony export */ });
2844
2982
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
2845
2983
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
2846
- /* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7618);
2847
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
2848
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
2849
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
2850
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
2984
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
2985
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
2986
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
2987
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
2988
+ /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
2851
2989
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83067);
2852
2990
  /* harmony import */ var _DictionaryInput_module_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80309);
2853
2991
  /* harmony import */ var _DictionaryInput_module_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_DictionaryInput_module_scss__WEBPACK_IMPORTED_MODULE_5__);
@@ -2860,9 +2998,11 @@ state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (awa
2860
2998
 
2861
2999
 
2862
3000
  const DictionaryInput = ({ className })=>{
2863
- const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
3001
+ const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
2864
3002
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
3003
+ const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
2865
3004
  const { input } = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectDictionary */ .w1);
3005
+ const { comma } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q0[locale];
2866
3006
  const handleChange = (event)=>{
2867
3007
  dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .dictionarySlice.actions.changeInput */ .lj.actions.changeInput(event.target.value));
2868
3008
  };
@@ -2871,11 +3011,11 @@ const DictionaryInput = ({ className })=>{
2871
3011
  dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .dictionarySlice.actions.submit */ .lj.actions.submit());
2872
3012
  };
2873
3013
  return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("form", {
2874
- className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_DictionaryInput_module_scss__WEBPACK_IMPORTED_MODULE_5___default().dictionaryInput), className),
3014
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_DictionaryInput_module_scss__WEBPACK_IMPORTED_MODULE_5___default().dictionaryInput), className),
2875
3015
  onSubmit: handleSubmit,
2876
3016
  children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
2877
3017
  className: (_DictionaryInput_module_scss__WEBPACK_IMPORTED_MODULE_5___default().input),
2878
- pattern: `.*[^\\s${_scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.COMMA_ARABIC}${_scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.COMMA_LATIN}].*`,
3018
+ pattern: `.*[^\\s${comma}].*`,
2879
3019
  placeholder: translate("dictionary.input.placeholder"),
2880
3020
  required: true,
2881
3021
  title: translate("dictionary.input.title"),
@@ -3975,7 +4115,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3975
4115
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
3976
4116
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
3977
4117
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
3978
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
4118
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55238);
3979
4119
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
3980
4120
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
3981
4121
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__);
@@ -4135,7 +4275,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4135
4275
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
4136
4276
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
4137
4277
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
4138
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
4278
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55238);
4139
4279
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83067);
4140
4280
  /* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(96815);
4141
4281
  /* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52404);
@@ -4322,7 +4462,7 @@ const Cell = ({ className , translationKey , tooltip , value })=>{
4322
4462
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectLocale */ .fN);
4323
4463
  const formattedValue = value.toLocaleString(locale);
4324
4464
  const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_3__/* .useTooltip */ .l)(`${translate(translationKey)}: ${tooltip || formattedValue}`);
4325
- return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
4465
+ return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
4326
4466
  className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_4___default().cell), className),
4327
4467
  ...triggerProps,
4328
4468
  children: formattedValue
@@ -4428,7 +4568,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4428
4568
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
4429
4569
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4430
4570
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36743);
4431
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
4571
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55238);
4432
4572
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4433
4573
  /* harmony import */ var types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1966);
4434
4574
  /* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29287);
@@ -4452,10 +4592,12 @@ const Result = ({ data , index , style })=>{
4452
4592
  const ref = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);
4453
4593
  const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)();
4454
4594
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectLocale */ .fN);
4455
- const { consonants , vowels } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q0[locale];
4595
+ const { consonants , direction , separator , vowels } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q0[locale];
4456
4596
  const result = results[index];
4457
4597
  const isMatching = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_5__/* .selectIsResultMatching */ .yJ)(state, index));
4458
- const otherWords = result.words.slice(1).join(" / ").toLocaleUpperCase();
4598
+ const words = direction === "rtl" ? [
4599
+ ...result.words
4600
+ ].reverse() : result.words;
4459
4601
  const enabledColumns = Object.fromEntries(columns.map((column)=>[
4460
4602
  column.id,
4461
4603
  true
@@ -4485,7 +4627,7 @@ const Result = ({ data , index , style })=>{
4485
4627
  enabledColumns[types__WEBPACK_IMPORTED_MODULE_6__/* .ResultColumn.Word */ .M.Word] && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
4486
4628
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_9___default().word),
4487
4629
  translationKey: "common.word",
4488
- value: `${result.word.toLocaleUpperCase()}${otherWords.length > 0 ? ` (${otherWords})` : ""}`
4630
+ value: result.word
4489
4631
  }),
4490
4632
  enabledColumns[types__WEBPACK_IMPORTED_MODULE_6__/* .ResultColumn.TilesCount */ .M.TilesCount] && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
4491
4633
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_9___default().stat),
@@ -4510,7 +4652,7 @@ const Result = ({ data , index , style })=>{
4510
4652
  enabledColumns[types__WEBPACK_IMPORTED_MODULE_6__/* .ResultColumn.WordsCount */ .M.WordsCount] && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
4511
4653
  className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_9___default().stat),
4512
4654
  translationKey: "common.words",
4513
- tooltip: `${result.wordsCount} (${result.words.join(" / ").toLocaleUpperCase()})`,
4655
+ tooltip: `${result.wordsCount.toLocaleString(locale)} (${words.join(separator)})`,
4514
4656
  value: result.wordsCount
4515
4657
  }),
4516
4658
  enabledColumns[types__WEBPACK_IMPORTED_MODULE_6__/* .ResultColumn.Points */ .M.Points] && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Cell__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
@@ -4900,7 +5042,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
4900
5042
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
4901
5043
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
4902
5044
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
4903
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
5045
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55238);
4904
5046
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
4905
5047
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60066);
4906
5048
  /* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__);
@@ -5045,7 +5187,7 @@ const Solver = ({ className , onShowResults })=>{
5045
5187
  const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
5046
5188
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
5047
5189
  const isTouchDevice = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useIsTouchDevice */ .YQ)();
5048
- const { cellSize , maxControlsWidth , showCompactControls , showFloatingSolveButton , tileSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
5190
+ const { maxControlsWidth , showCompactControls , showFloatingSolveButton , tileSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
5049
5191
  const error = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectSolveError */ .Rn);
5050
5192
  const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectAreResultsOutdated */ .Mj);
5051
5193
  const resultCandidate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultCandidate */ .Xk);
@@ -5111,7 +5253,6 @@ const Solver = ({ className , onShowResults })=>{
5111
5253
  onSubmit: handleSubmit,
5112
5254
  children: [
5113
5255
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Board__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
5114
- cellSize: cellSize,
5115
5256
  className: (_Solver_module_scss__WEBPACK_IMPORTED_MODULE_13___default().board)
5116
5257
  }),
5117
5258
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("input", {
@@ -5216,7 +5357,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5216
5357
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
5217
5358
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
5218
5359
  /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58966);
5219
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
5360
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55238);
5220
5361
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83067);
5221
5362
  /* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83900);
5222
5363
  /* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33538);
@@ -5624,7 +5765,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5624
5765
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
5625
5766
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
5626
5767
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
5627
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
5768
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55238);
5628
5769
  /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64534);
5629
5770
  /* harmony import */ var state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83067);
5630
5771
  /* harmony import */ var _TilePure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83147);
@@ -5841,7 +5982,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
5841
5982
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16689);
5842
5983
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
5843
5984
  /* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75704);
5844
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
5985
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55238);
5845
5986
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(53229);
5846
5987
  /* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_6__);
5847
5988
  var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_floating_ui_react__WEBPACK_IMPORTED_MODULE_1__, hooks__WEBPACK_IMPORTED_MODULE_4__]);
@@ -6141,6 +6282,7 @@ const useAppLayout = ()=>{
6141
6282
  return {
6142
6283
  actionsWidth: 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BUTTON_HEIGHT */ .FZ - parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF,
6143
6284
  animateTile: !isLessThanXs,
6285
+ boardSize,
6144
6286
  cellSize,
6145
6287
  dictionaryHeight,
6146
6288
  isModalFullWidth: isLessThanS,
@@ -6174,7 +6316,7 @@ __webpack_async_result__();
6174
6316
  /* harmony export */ });
6175
6317
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6176
6318
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6177
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65175);
6319
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55238);
6178
6320
 
6179
6321
 
6180
6322
  const useDirection = (direction)=>{
@@ -6239,7 +6381,7 @@ const useIsTouchDevice = ()=>{
6239
6381
  /* harmony export */ });
6240
6382
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
6241
6383
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6242
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65175);
6384
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55238);
6243
6385
 
6244
6386
 
6245
6387
  const useLanguage = (language)=>{
@@ -6478,7 +6620,7 @@ const useOnWindowResize = (onResize)=>{
6478
6620
  /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_2__);
6479
6621
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63938);
6480
6622
  /* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_portal__WEBPACK_IMPORTED_MODULE_3__);
6481
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65175);
6623
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55238);
6482
6624
 
6483
6625
 
6484
6626
 
@@ -6568,8 +6710,10 @@ __webpack_require__.d(__webpack_exports__, {
6568
6710
  "ZP": () => (/* reexport */ i18n_i18n)
6569
6711
  });
6570
6712
 
6713
+ // EXTERNAL MODULE: ../constants/build/index.js
6714
+ var build = __webpack_require__(7618);
6571
6715
  // EXTERNAL MODULE: ../types/build/index.js
6572
- var build = __webpack_require__(34046);
6716
+ var types_build = __webpack_require__(34046);
6573
6717
  // EXTERNAL MODULE: ./src/icons/index.ts + 41 modules
6574
6718
  var icons = __webpack_require__(58966);
6575
6719
  // EXTERNAL MODULE: ./src/i18n/i18n.module.scss
@@ -6579,107 +6723,122 @@ var i18n_module_default = /*#__PURE__*/__webpack_require__.n(i18n_module);
6579
6723
 
6580
6724
 
6581
6725
 
6726
+
6582
6727
  const LOCALE_FEATURES = {
6583
- [build.Locale.DE_DE]: {
6584
- direction: "ltr",
6728
+ [types_build.Locale.DE_DE]: {
6729
+ comma: build.COMMA_LATIN,
6585
6730
  consonants: true,
6731
+ direction: "ltr",
6732
+ separator: `${build.COMMA_LATIN} `,
6586
6733
  vowels: true
6587
6734
  },
6588
- [build.Locale.EN_GB]: {
6589
- direction: "ltr",
6735
+ [types_build.Locale.EN_GB]: {
6736
+ comma: build.COMMA_LATIN,
6590
6737
  consonants: true,
6738
+ direction: "ltr",
6739
+ separator: `${build.COMMA_LATIN} `,
6591
6740
  vowels: true
6592
6741
  },
6593
- [build.Locale.EN_US]: {
6594
- direction: "ltr",
6742
+ [types_build.Locale.EN_US]: {
6743
+ comma: build.COMMA_LATIN,
6595
6744
  consonants: true,
6745
+ direction: "ltr",
6746
+ separator: `${build.COMMA_LATIN} `,
6596
6747
  vowels: true
6597
6748
  },
6598
- [build.Locale.ES_ES]: {
6599
- direction: "ltr",
6749
+ [types_build.Locale.ES_ES]: {
6750
+ comma: build.COMMA_LATIN,
6600
6751
  consonants: true,
6752
+ direction: "ltr",
6753
+ separator: `${build.COMMA_LATIN} `,
6601
6754
  vowels: true
6602
6755
  },
6603
- [build.Locale.FA_IR]: {
6604
- direction: "rtl",
6756
+ [types_build.Locale.FA_IR]: {
6757
+ comma: build.COMMA_ARABIC,
6605
6758
  consonants: false,
6759
+ direction: "rtl",
6760
+ separator: `${build.COMMA_ARABIC} `,
6606
6761
  vowels: false
6607
6762
  },
6608
- [build.Locale.FR_FR]: {
6609
- direction: "ltr",
6763
+ [types_build.Locale.FR_FR]: {
6764
+ comma: build.COMMA_LATIN,
6610
6765
  consonants: true,
6766
+ direction: "ltr",
6767
+ separator: `${build.COMMA_LATIN} `,
6611
6768
  vowels: true
6612
6769
  },
6613
- [build.Locale.PL_PL]: {
6614
- direction: "ltr",
6770
+ [types_build.Locale.PL_PL]: {
6771
+ comma: build.COMMA_LATIN,
6615
6772
  consonants: true,
6773
+ direction: "ltr",
6774
+ separator: `${build.COMMA_LATIN} `,
6616
6775
  vowels: true
6617
6776
  }
6618
6777
  };
6619
6778
  const LOCALE_FLAGS = {
6620
- [build.Locale.DE_DE]: {
6779
+ [types_build.Locale.DE_DE]: {
6621
6780
  className: (i18n_module_default()).de,
6622
6781
  Icon: icons/* FlagDe */.rV,
6623
6782
  label: "Deutsch",
6624
6783
  name: "German",
6625
- value: build.Locale.DE_DE
6784
+ value: types_build.Locale.DE_DE
6626
6785
  },
6627
- [build.Locale.EN_GB]: {
6786
+ [types_build.Locale.EN_GB]: {
6628
6787
  className: (i18n_module_default()).gb,
6629
6788
  Icon: icons/* FlagGb */.eP,
6630
6789
  label: "English (GB)",
6631
6790
  name: "English (GB)",
6632
- value: build.Locale.EN_GB
6791
+ value: types_build.Locale.EN_GB
6633
6792
  },
6634
- [build.Locale.EN_US]: {
6793
+ [types_build.Locale.EN_US]: {
6635
6794
  className: (i18n_module_default()).us,
6636
6795
  Icon: icons/* FlagUs */.YK,
6637
6796
  label: "English (US)",
6638
6797
  name: "English (US)",
6639
- value: build.Locale.EN_US
6798
+ value: types_build.Locale.EN_US
6640
6799
  },
6641
- [build.Locale.ES_ES]: {
6800
+ [types_build.Locale.ES_ES]: {
6642
6801
  className: (i18n_module_default()).es,
6643
6802
  Icon: icons/* FlagEs */.d,
6644
6803
  label: "Espa\xf1ol",
6645
6804
  name: "Spanish",
6646
- value: build.Locale.ES_ES
6805
+ value: types_build.Locale.ES_ES
6647
6806
  },
6648
- [build.Locale.FA_IR]: {
6807
+ [types_build.Locale.FA_IR]: {
6649
6808
  className: (i18n_module_default()).fa,
6650
6809
  Icon: icons/* FlagFa */.$M,
6651
6810
  label: "فارسی",
6652
6811
  name: "Persian",
6653
- value: build.Locale.FA_IR
6812
+ value: types_build.Locale.FA_IR
6654
6813
  },
6655
- [build.Locale.FR_FR]: {
6814
+ [types_build.Locale.FR_FR]: {
6656
6815
  className: (i18n_module_default()).fr,
6657
6816
  Icon: icons/* FlagFr */.OV,
6658
6817
  label: "Fran\xe7ais",
6659
6818
  name: "French",
6660
- value: build.Locale.FR_FR
6819
+ value: types_build.Locale.FR_FR
6661
6820
  },
6662
- [build.Locale.PL_PL]: {
6821
+ [types_build.Locale.PL_PL]: {
6663
6822
  className: (i18n_module_default()).pl,
6664
6823
  Icon: icons/* FlagPl */.fd,
6665
6824
  label: "Polski",
6666
6825
  name: "Polish",
6667
- value: build.Locale.PL_PL
6826
+ value: types_build.Locale.PL_PL
6668
6827
  }
6669
6828
  };
6670
6829
 
6671
6830
  ;// CONCATENATED MODULE: ./src/i18n/de.json
6672
- const de_namespaceObject = JSON.parse('{"cell.filter-cell":"Zielort - klicken zum Wechseln","cell.set-blank":"Als Blanko markieren","cell.set-not-blank":"Nicht als Blanko markieren","cell.tile.location":"Brett: Stein ({{x}}, {{y}})","cell.toggle-direction":"Schreibrichtung - klicken zum Wechseln","common.blanks":"Blankos","common.clear":"Löschen","common.close":"Schließen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.points":"Punkte","common.previous":"Zurück","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"Wörter","dictionary":"Wörterbuch","dictionary.empty-state.no-definitions":"Wort existiert im Wörterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im Wörterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die Wörterbuchdéfinition wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche Wörterbuch...","dictionary.input.title":"Durch Kommas getrennte Wörter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturkürzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzufügen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"Lösen starten","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzufügen (Leertaste)","menu":"Menü","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt.","results.empty-state.uninitialized":"Wörter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzufügen","results.preview":"Vorschau","results.solve":"Lösen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.language":"Sprache","words":"Gebildete Wörter","words.invalid":"Falsch","words.valid":"Korrekt"}');
6831
+ const de_namespaceObject = JSON.parse('{"cell.filter-cell":"Zielort","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","common.blanks":"Blankos","common.clear":"Löschen","common.close":"Schließen","common.consonants":"Konsonanten","common.loading":"Laden","common.next":"Weiter","common.points":"Punkte","common.previous":"Zurück","common.tiles":"Steine","common.two-letter-tiles":"Zwei-Buchstaben","common.vowels":"Vokale","common.word":"Wort","common.words":"Wörter","dictionary":"Wörterbuch","dictionary.empty-state.no-definitions":"Wort existiert im Wörterbuch aber hat keine Definition.","dictionary.empty-state.no-results":"Wort kann nicht im Wörterbuch gefunden werden.","dictionary.empty-state.not-allowed":"Dieses Wort ist nicht erlaubt.","dictionary.empty-state.uninitialized":"Die Wörterbuchdéfinition wird hier angezeigt.","dictionary.input.placeholder":"Durchsuche Wörterbuch...","dictionary.input.title":"Durch Kommas getrennte Wörter","empty-state.error":"Fehler","empty-state.info":"Info","empty-state.success":"Juhuu!","empty-state.warning":"Oje!","github":"Schau dieses Projekt auf GitHub an","keyMap":"Tastaturkürzel","keyMap.board":"Brett","keyMap.board.toggle-blank":"Als Blanko markieren / aufheben","keyMap.board.toggle-direction":"Schreibrichtung umschalten","keyMap.board-and-rack":"Brett & Ablage","keyMap.board-and-rack.insert-two-letter-tile":"Zwei-Buchstaben Stein hinzufügen","keyMap.board-and-rack.navigate":"Navigieren","keyMap.board-and-rack.remove-tile":"Stein entfernen","keyMap.board-and-rack.submit":"Lösen starten","keyMap.rack":"Ablage","keyMap.rack.insert-blank":"Blanko hinzufügen (Leertaste)","menu":"Menü","rack.placeholder":"Steine…","rack.tile.location":"Ablage: Stein ({{index}})","remaining-tiles":"Restliche Steine","results":"Ergebnisse","results.empty-state.no-results":"Keine Ergebnisse - kein Wort konnte generiert werden.","results.empty-state.outdated":"Ergebnisse sind alt.","results.empty-state.uninitialized":"Wörter die aus deinen Buchstaben generiert wurden erscheinen hier.","results.input.placeholder":"Suchergebnisse... (RegExp)","results.insert":"Hinzufügen","results.preview":"Vorschau","results.solve":"Lösen","settings":"Einstellungen","settings.autoGroupTiles":"Restliche Steine gruppieren","settings.autoGroupTiles.left":"Linke Seite","settings.autoGroupTiles.right":"Rechte Seite","settings.autoGroupTiles.null":"Nicht gruppieren","settings.game":"Spiel","settings.language":"Sprache","words":"Gebildete Wörter","words.invalid":"Falsch","words.valid":"Korrekt"}');
6673
6832
  ;// CONCATENATED MODULE: ./src/i18n/en.json
6674
- const en_namespaceObject = JSON.parse('{"cell.filter-cell":"Target destination - click to toggle","cell.set-blank":"Mark it a blank","cell.set-not-blank":"Mark it not a blank","cell.tile.location":"Board: tile ({{x}}, {{y}})","cell.toggle-direction":"Typing direction - click to toggle","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.points":"Points","common.previous":"Previous","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Word definition will be shown here.","dictionary.input.placeholder":"Search dictionary...","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Start solving","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank (spacebar)","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.preview":"Preview","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.language":"Language","words":"Created words","words.invalid":"Invalid","words.valid":"Valid"}');
6833
+ const en_namespaceObject = JSON.parse('{"cell.filter-cell":"Target destination","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","common.blanks":"Blanks","common.clear":"Clear","common.close":"Close","common.consonants":"Consonants","common.loading":"Loading","common.next":"Next","common.points":"Points","common.previous":"Previous","common.tiles":"Tiles","common.two-letter-tiles":"Two-letter","common.vowels":"Vowels","common.word":"Word","common.words":"Words","dictionary":"Dictionary","dictionary.empty-state.no-definitions":"Word exists in the dictionary but it does not have a definition.","dictionary.empty-state.no-results":"Unable to find word definition in the dictionary.","dictionary.empty-state.not-allowed":"This word is not allowed.","dictionary.empty-state.uninitialized":"Word definition will be shown here.","dictionary.input.placeholder":"Search dictionary...","dictionary.input.title":"Comma-separated words","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Yeah!","empty-state.warning":"Oops!","github":"See this project on GitHub","keyMap":"Keyboard shortcuts","keyMap.board":"Board","keyMap.board.toggle-blank":"Mark/unmark tile as a blank","keyMap.board.toggle-direction":"Toggle typing direction","keyMap.board-and-rack":"Board & rack","keyMap.board-and-rack.insert-two-letter-tile":"Insert two-letter tile","keyMap.board-and-rack.navigate":"Navigate","keyMap.board-and-rack.remove-tile":"Remove tile","keyMap.board-and-rack.submit":"Start solving","keyMap.rack":"Rack","keyMap.rack.insert-blank":"Insert blank (spacebar)","menu":"Menu","rack.placeholder":"Letters","rack.tile.location":"Rack: tile ({{index}})","remaining-tiles":"Remaining tiles","results":"Results","results.empty-state.no-results":"No results - unable to generate any words.","results.empty-state.outdated":"Results are outdated.","results.empty-state.uninitialized":"Words generated from your letters will be shown here.","results.input.placeholder":"Search results... (RegExp)","results.insert":"Insert","results.preview":"Preview","results.solve":"Solve","settings":"Settings","settings.autoGroupTiles":"Group remaining tiles","settings.autoGroupTiles.left":"On the left","settings.autoGroupTiles.right":"On the right","settings.autoGroupTiles.null":"Do not group","settings.game":"Game","settings.language":"Language","words":"Created words","words.invalid":"Invalid","words.valid":"Valid"}');
6675
6834
  ;// CONCATENATED MODULE: ./src/i18n/es.json
6676
- const es_namespaceObject = JSON.parse('{"cell.filter-cell":"Destino objetivo: haga clic para alternar","cell.set-blank":"Marcar como en blanco","cell.set-not-blank":"Marcar como no en blanco","cell.tile.location":"Tablero: espacio ({{x}}, {{y}})","cell.toggle-direction":"Dirección de escritura: haga clic para alternar","common.blanks":"Blancos","common.clear":"Borrar","common.close":"Cerrar","common.consonants":"Consonantes","common.loading":"Cargando","common.next":"Siguiente","common.points":"Puntos","common.previous":"Anterior","common.tiles":"Longitud","common.two-letter-tiles":"Dos letras","common.vowels":"Vocales","common.word":"Palabra","common.words":"Palabras","dictionary":"Diccionario","dictionary.empty-state.no-definitions":"La palabra existe en el diccionario pero no tiene una definición.","dictionary.empty-state.no-results":"No se puede encontrar la definición de palabra en el diccionario.","dictionary.empty-state.not-allowed":"Esta palabra no es aceptable.","dictionary.empty-state.uninitialized":"Aquí se mostrará la definición del diccionario.","dictionary.input.placeholder":"Busca el diccionario...","dictionary.input.title":"Palabras separadas por comas","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Sí!","empty-state.warning":"Vaya!","github":"Ver este proyecto en GitHub","keyMap":"Atajos de teclado","keyMap.board":"Tablero","keyMap.board.toggle-blank":"Marcar / desmarcar un espacio en blanco","keyMap.board.toggle-direction":"Alternar dirección de escritura","keyMap.board-and-rack":"Tablero y estante","keyMap.board-and-rack.insert-two-letter-tile":"Insertar mosaico de dos letras","keyMap.board-and-rack.navigate":"Navegar","keyMap.board-and-rack.remove-tile":"Quitar Letra","keyMap.board-and-rack.submit":"Empezar a resolver","keyMap.rack":"Estante","keyMap.rack.insert-blank":"Insertar espacio en blanco (barra espaciadora)","menu":"Menú","rack.placeholder":"Letras…","rack.tile.location":"Estante: espacio ({{index}})","remaining-tiles":"Casillas restantes","results":"Resultados","results.empty-state.no-results":"No hay resultados; no se pueden generar palabras","results.empty-state.outdated":"Los resultados están desactualizados.","results.empty-state.uninitialized":"Aquí se mostrarán las palabras generadas a partir de sus letras.","results.input.placeholder":"Busque una solución... (RegExp)","results.insert":"Insertar","results.preview":"Vista previa","results.solve":"Resolver","settings":"Configuración","settings.autoGroupTiles":"Agrupar casillas restantes","settings.autoGroupTiles.left":"A la izquierda","settings.autoGroupTiles.right":"A la derecha","settings.autoGroupTiles.null":"No agrupar","settings.game":"Juego","settings.language":"Idioma","words":"Palabras creadas","words.invalid":"Incorrecto","words.valid":"Correcto"}');
6835
+ const es_namespaceObject = JSON.parse('{"cell.filter-cell":"Destino objetivo","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","common.blanks":"Blancos","common.clear":"Borrar","common.close":"Cerrar","common.consonants":"Consonantes","common.loading":"Cargando","common.next":"Siguiente","common.points":"Puntos","common.previous":"Anterior","common.tiles":"Longitud","common.two-letter-tiles":"Dos letras","common.vowels":"Vocales","common.word":"Palabra","common.words":"Palabras","dictionary":"Diccionario","dictionary.empty-state.no-definitions":"La palabra existe en el diccionario pero no tiene una definición.","dictionary.empty-state.no-results":"No se puede encontrar la definición de palabra en el diccionario.","dictionary.empty-state.not-allowed":"Esta palabra no es aceptable.","dictionary.empty-state.uninitialized":"Aquí se mostrará la definición del diccionario.","dictionary.input.placeholder":"Busca el diccionario...","dictionary.input.title":"Palabras separadas por comas","empty-state.error":"Error","empty-state.info":"Info","empty-state.success":"Sí!","empty-state.warning":"Vaya!","github":"Ver este proyecto en GitHub","keyMap":"Atajos de teclado","keyMap.board":"Tablero","keyMap.board.toggle-blank":"Marcar / desmarcar un espacio en blanco","keyMap.board.toggle-direction":"Alternar dirección de escritura","keyMap.board-and-rack":"Tablero y estante","keyMap.board-and-rack.insert-two-letter-tile":"Insertar mosaico de dos letras","keyMap.board-and-rack.navigate":"Navegar","keyMap.board-and-rack.remove-tile":"Quitar Letra","keyMap.board-and-rack.submit":"Empezar a resolver","keyMap.rack":"Estante","keyMap.rack.insert-blank":"Insertar espacio en blanco (barra espaciadora)","menu":"Menú","rack.placeholder":"Letras…","rack.tile.location":"Estante: espacio ({{index}})","remaining-tiles":"Casillas restantes","results":"Resultados","results.empty-state.no-results":"No hay resultados; no se pueden generar palabras","results.empty-state.outdated":"Los resultados están desactualizados.","results.empty-state.uninitialized":"Aquí se mostrarán las palabras generadas a partir de sus letras.","results.input.placeholder":"Busque una solución... (RegExp)","results.insert":"Insertar","results.preview":"Vista previa","results.solve":"Resolver","settings":"Configuración","settings.autoGroupTiles":"Agrupar casillas restantes","settings.autoGroupTiles.left":"A la izquierda","settings.autoGroupTiles.right":"A la derecha","settings.autoGroupTiles.null":"No agrupar","settings.game":"Juego","settings.language":"Idioma","words":"Palabras creadas","words.invalid":"Incorrecto","words.valid":"Correcto"}');
6677
6836
  ;// CONCATENATED MODULE: ./src/i18n/fa.json
6678
- const fa_namespaceObject = JSON.parse('{"cell.filter-cell":"مقصد - کلیک برای تغییر","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.toggle-direction":"جهت تایپ - کلیک برای تغییر","cell.tile.location":"({{x}}، {{y}}) کاشی: صفحه","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.points":"امتیازات","common.previous":"قبلی","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت ...","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی (دکمه اسپیس)","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.preview":"پیش نمایش","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.language":"زبان","words":"کلمات ساخته شده","words.invalid":"نا معتبر","words.valid":"معتبر"}');
6837
+ const fa_namespaceObject = JSON.parse('{"cell.filter-cell":"مقصد","cell.set-blank":"علامت گذاری به عنوان خالی","cell.set-not-blank":"علامت گذاری به عنوان غیر خالی","cell.tile.location":"({{x}}، {{y}}) کاشی: صفحه","cell.toggle-direction":"جهت تایپ","common.blanks":"خالی","common.clear":"پاک کردن","common.close":"بستن","common.consonants":"حروف صامت","common.loading":"در حال بارگزاری","common.next":"بعدی","common.points":"امتیازات","common.previous":"قبلی","common.tiles":"کاشی ها","common.two-letter-tiles":"دو حرفی","common.vowels":"حروف مصوت","common.word":"کلمه","common.words":"کلمات","dictionary":"فرهنگ لغت","dictionary.empty-state.no-definitions":"کلمه در فرهنگ لغت وجود دارد، ولی معنایی برای آن ثبت نشده است.","dictionary.empty-state.no-results":"کلمه در فرهنگ لغت یافت نشد.","dictionary.empty-state.not-allowed":"این کلمه مجاز نیست.","dictionary.empty-state.uninitialized":"معنی لغت اینجا نمایش داده خواهد شد.","dictionary.input.placeholder":"جستجو در فرهنگ لغت ...","dictionary.input.title":"کلمات جدا شده با کاما","empty-state.error":"خطا","empty-state.info":"اطلاعات","empty-state.success":"حله!","empty-state.warning":"اوووخ!","github":"به این پروژه در گیتهاب سر بزنید","keyMap":"میانبر های کیبورد","keyMap.board":"صفحه","keyMap.board.toggle-blank":"علامت/عدم علامت گذاری کاشی به عنوان خالی","keyMap.board.toggle-direction":"تغییر جهت تایپ","keyMap.board-and-rack":"صفحه و طاقچه","keyMap.board-and-rack.insert-two-letter-tile":"وارد کردن کاشی دو حرفی","keyMap.board-and-rack.navigate":"حرکت","keyMap.board-and-rack.remove-tile":"حذف کاشی","keyMap.board-and-rack.submit":"حل کردن","keyMap.rack":"طاقچه","keyMap.rack.insert-blank":"وارد کردن کاشی خالی (دکمه اسپیس)","menu":"منو","rack.placeholder":"لیستحرف","rack.tile.location":"({{index}}) کاشی: طاقچه","remaining-tiles":"کاشی های باقی مانده","results":"نتایج","results.empty-state.no-results":"کلمه قابل استفاده پیدا نشد.","results.empty-state.outdated":"نتایج به روز نیستند، برای بروز.","results.empty-state.uninitialized":"کلمات تولید شده از حروف شما اینجا نمایش داده خواهد شد.","results.input.placeholder":"جستجو در نتایج (RegExp)","results.insert":"وارد کردن","results.preview":"پیش نمایش","results.solve":"حل کن","settings":"تنظیمات","settings.autoGroupTiles":"کاشی های باقی مانده ی طاقچه را کنار هم قرار بده","settings.autoGroupTiles.left":"در سمت چپ","settings.autoGroupTiles.right":"در سمت راست","settings.autoGroupTiles.null":"کنار هم قرار نده","settings.game":"بازی","settings.language":"زبان","words":"کلمات ساخته شده","words.invalid":"نا معتبر","words.valid":"معتبر"}');
6679
6838
  ;// CONCATENATED MODULE: ./src/i18n/fr.json
6680
- const fr_namespaceObject = JSON.parse('{"cell.filter-cell":"Destination cible - cliquer pour changer","cell.set-blank":"Marquer comme vide","cell.set-not-blank":"Marquer comme non vide","cell.tile.location":"Plateau: la case ({{x}}, {{y}})","cell.toggle-direction":"Direction d\'écriture - cliquer pour changer","common.blanks":"Cases vides","common.clear":"Effacer","common.close":"Fermer","common.consonants":"Consonnes","common.loading":"Chargement","common.next":"Suivant","common.points":"Points","common.previous":"Précédent","common.tiles":"Cases","common.two-letter-tiles":"Deux lettres","common.vowels":"Voyelles","common.word":"Mot","common.words":"Mots","dictionary":"Dictionnaire","dictionary.empty-state.no-definitions":"Le mot existe dans le dictionary mais n\'a pas de définition.","dictionary.empty-state.no-results":"Impossible de trouver une définition pour ce mot dans le dictionaire.","dictionary.empty-state.not-allowed":"Ce mot n\'est pas pas acceptable.","dictionary.empty-state.uninitialized":"La définition dictionaire sera affichée ici.","dictionary.input.placeholder":"Rechercher dans le dictionnaire...","dictionary.input.title":"Mots séparées par des virgules","empty-state.error":"Erreur","empty-state.info":"Info","empty-state.success":"Ouais!","empty-state.warning":"Oups!","github":"Voir ce projet sur GitHub","keyMap":"Raccourcis clavier","keyMap.board":"Plateau","keyMap.board.toggle-blank":"Marqué/Démarqué la case en tant que vide","keyMap.board.toggle-direction":"Faire basculer la direction d\'écriture","keyMap.board-and-rack":"Plateau & chevalet","keyMap.board-and-rack.insert-two-letter-tile":"Insérer une tuile de deux lettres","keyMap.board-and-rack.navigate":"Naviguer","keyMap.board-and-rack.remove-tile":"Supprimer une case","keyMap.board-and-rack.submit":"Commencer la résolution","keyMap.rack":"Chevalet","keyMap.rack.insert-blank":"Inserer une case vide (spacebar)","menu":"Menu","rack.placeholder":"Lettres","rack.tile.location":"Chevalet: la case ({{index}})","remaining-tiles":"Cases restantes","results":"Résultats","results.empty-state.no-results":"Pas de résultats - impossible de générer des mots.","results.empty-state.outdated":"Les résultats sont dépassé.","results.empty-state.uninitialized":"Les mots générés à partir de vos lettres seront affichés ici.","results.input.placeholder":"Rechercher les résultats... (RegExp)","results.insert":"Inserer","results.preview":"Prévisualisation","results.solve":"Résoudre","settings":"Options","settings.autoGroupTiles":"Grouper les cases restantes","settings.autoGroupTiles.left":"Vers la droite","settings.autoGroupTiles.right":"Vers la gauche","settings.autoGroupTiles.null":"Ne pas grouper","settings.game":"Jeu","settings.language":"Langue","words":"Mots créés","words.invalid":"Incorrect","words.valid":"Corriger"}');
6839
+ const fr_namespaceObject = JSON.parse('{"cell.filter-cell":"Destination cible","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","common.blanks":"Cases vides","common.clear":"Effacer","common.close":"Fermer","common.consonants":"Consonnes","common.loading":"Chargement","common.next":"Suivant","common.points":"Points","common.previous":"Précédent","common.tiles":"Cases","common.two-letter-tiles":"Deux lettres","common.vowels":"Voyelles","common.word":"Mot","common.words":"Mots","dictionary":"Dictionnaire","dictionary.empty-state.no-definitions":"Le mot existe dans le dictionary mais n\'a pas de définition.","dictionary.empty-state.no-results":"Impossible de trouver une définition pour ce mot dans le dictionaire.","dictionary.empty-state.not-allowed":"Ce mot n\'est pas pas acceptable.","dictionary.empty-state.uninitialized":"La définition dictionaire sera affichée ici.","dictionary.input.placeholder":"Rechercher dans le dictionnaire...","dictionary.input.title":"Mots séparées par des virgules","empty-state.error":"Erreur","empty-state.info":"Info","empty-state.success":"Ouais!","empty-state.warning":"Oups!","github":"Voir ce projet sur GitHub","keyMap":"Raccourcis clavier","keyMap.board":"Plateau","keyMap.board.toggle-blank":"Marqué/Démarqué la case en tant que vide","keyMap.board.toggle-direction":"Faire basculer la direction d\'écriture","keyMap.board-and-rack":"Plateau & chevalet","keyMap.board-and-rack.insert-two-letter-tile":"Insérer une tuile de deux lettres","keyMap.board-and-rack.navigate":"Naviguer","keyMap.board-and-rack.remove-tile":"Supprimer une case","keyMap.board-and-rack.submit":"Commencer la résolution","keyMap.rack":"Chevalet","keyMap.rack.insert-blank":"Inserer une case vide (spacebar)","menu":"Menu","rack.placeholder":"Lettres","rack.tile.location":"Chevalet: la case ({{index}})","remaining-tiles":"Cases restantes","results":"Résultats","results.empty-state.no-results":"Pas de résultats - impossible de générer des mots.","results.empty-state.outdated":"Les résultats sont dépassé.","results.empty-state.uninitialized":"Les mots générés à partir de vos lettres seront affichés ici.","results.input.placeholder":"Rechercher les résultats... (RegExp)","results.insert":"Inserer","results.preview":"Prévisualisation","results.solve":"Résoudre","settings":"Options","settings.autoGroupTiles":"Grouper les cases restantes","settings.autoGroupTiles.left":"Vers la droite","settings.autoGroupTiles.right":"Vers la gauche","settings.autoGroupTiles.null":"Ne pas grouper","settings.game":"Jeu","settings.language":"Langue","words":"Mots créés","words.invalid":"Incorrect","words.valid":"Corriger"}');
6681
6840
  ;// CONCATENATED MODULE: ./src/i18n/pl.json
6682
- const pl_namespaceObject = JSON.parse('{"cell.filter-cell":"Miejsce docelowe - kliknij aby zmienić","cell.set-blank":"Oznacz jako blank","cell.set-not-blank":"Oznacz jako nie blank","cell.tile.location":"Plansza: płytka ({{x}}, {{y}})","cell.toggle-direction":"Kierunek wpisywania - kliknij aby zmienić","common.blanks":"Blanki","common.clear":"Wyczyść","common.close":"Zamknij","common.consonants":"Spółgłoski","common.loading":"Ładowanie","common.next":"Następne","common.points":"Punkty","common.previous":"Poprzednie","common.tiles":"Płytki","common.two-letter-tiles":"Dwuliterowe","common.vowels":"Samogłoski","common.word":"Słowo","common.words":"Słowa","dictionary":"Słownik","dictionary.empty-state.no-definitions":"Słowo istnieje w słowniku ale nie posiada definicji.","dictionary.empty-state.no-results":"Nie udało się znaleźć definicji słowa w słowniku.","dictionary.empty-state.not-allowed":"To słowo nie jest dopuszczalne w grach.","dictionary.empty-state.uninitialized":"Tu zostanie wyświetlona definicja słowa.","dictionary.input.placeholder":"Szukaj w słowniku...","dictionary.input.title":"Słowa rozdzielone przecinkiem","empty-state.error":"Błąd","empty-state.info":"Info","empty-state.success":"Hurra!","empty-state.warning":"Ups!","github":"Zobacz ten projekt na GitHubie","keyMap":"Skróty klawiszowe","keyMap.board":"Plansza","keyMap.board.toggle-blank":"Oznacz/odznacz płytkę jako blank","keyMap.board.toggle-direction":"Zmień kierunek wpisywania","keyMap.board-and-rack":"Plansza i stojak","keyMap.board-and-rack.insert-two-letter-tile":"Wstaw dwuliterową płytkę","keyMap.board-and-rack.navigate":"Nawigacja","keyMap.board-and-rack.remove-tile":"Zdejmij płytkę","keyMap.board-and-rack.submit":"Rozpocznij wyszukiwanie","keyMap.rack":"Stojak","keyMap.rack.insert-blank":"Wstaw blanka (spacja)","menu":"Menu","rack.placeholder":"Literki","rack.tile.location":"Stojak: płytka ({{index}})","remaining-tiles":"Pozostałe płytki","results":"Wyniki","results.empty-state.no-results":"Brak wyników - nie można wygenerować żadnego słowa.","results.empty-state.outdated":"Wyniki są nieaktualne.","results.empty-state.uninitialized":"Tu zostaną wyświetlone słowa wygenerowane z Twoich liter.","results.input.placeholder":"Szukaj rozwiązania... (RegExp)","results.insert":"Wstaw","results.preview":"Podgląd","results.solve":"Rozwiąż","settings":"Opcje","settings.autoGroupTiles":"Grupuj pozostałe płytki","settings.autoGroupTiles.left":"Po lewej","settings.autoGroupTiles.right":"Po prawej","settings.autoGroupTiles.null":"Nie grupuj","settings.game":"Gra","settings.language":"Język","words":"Utworzone słowa","words.invalid":"Niepoprawne","words.valid":"Poprawne"}');
6841
+ const pl_namespaceObject = JSON.parse('{"cell.filter-cell":"Miejsce docelowe","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","common.blanks":"Blanki","common.clear":"Wyczyść","common.close":"Zamknij","common.consonants":"Spółgłoski","common.loading":"Ładowanie","common.next":"Następne","common.points":"Punkty","common.previous":"Poprzednie","common.tiles":"Płytki","common.two-letter-tiles":"Dwuliterowe","common.vowels":"Samogłoski","common.word":"Słowo","common.words":"Słowa","dictionary":"Słownik","dictionary.empty-state.no-definitions":"Słowo istnieje w słowniku ale nie posiada definicji.","dictionary.empty-state.no-results":"Nie udało się znaleźć definicji słowa w słowniku.","dictionary.empty-state.not-allowed":"To słowo nie jest dopuszczalne w grach.","dictionary.empty-state.uninitialized":"Tu zostanie wyświetlona definicja słowa.","dictionary.input.placeholder":"Szukaj w słowniku...","dictionary.input.title":"Słowa rozdzielone przecinkiem","empty-state.error":"Błąd","empty-state.info":"Info","empty-state.success":"Hurra!","empty-state.warning":"Ups!","github":"Zobacz ten projekt na GitHubie","keyMap":"Skróty klawiszowe","keyMap.board":"Plansza","keyMap.board.toggle-blank":"Oznacz/odznacz płytkę jako blank","keyMap.board.toggle-direction":"Zmień kierunek wpisywania","keyMap.board-and-rack":"Plansza i stojak","keyMap.board-and-rack.insert-two-letter-tile":"Wstaw dwuliterową płytkę","keyMap.board-and-rack.navigate":"Nawigacja","keyMap.board-and-rack.remove-tile":"Zdejmij płytkę","keyMap.board-and-rack.submit":"Rozpocznij wyszukiwanie","keyMap.rack":"Stojak","keyMap.rack.insert-blank":"Wstaw blanka (spacja)","menu":"Menu","rack.placeholder":"Literki","rack.tile.location":"Stojak: płytka ({{index}})","remaining-tiles":"Pozostałe płytki","results":"Wyniki","results.empty-state.no-results":"Brak wyników - nie można wygenerować żadnego słowa.","results.empty-state.outdated":"Wyniki są nieaktualne.","results.empty-state.uninitialized":"Tu zostaną wyświetlone słowa wygenerowane z Twoich liter.","results.input.placeholder":"Szukaj rozwiązania... (RegExp)","results.insert":"Wstaw","results.preview":"Podgląd","results.solve":"Rozwiąż","settings":"Opcje","settings.autoGroupTiles":"Grupuj pozostałe płytki","settings.autoGroupTiles.left":"Po lewej","settings.autoGroupTiles.right":"Po prawej","settings.autoGroupTiles.null":"Nie grupuj","settings.game":"Gra","settings.language":"Język","words":"Utworzone słowa","words.invalid":"Niepoprawne","words.valid":"Poprawne"}');
6683
6842
  ;// CONCATENATED MODULE: ./src/i18n/i18n.ts
6684
6843
 
6685
6844
 
@@ -6689,13 +6848,13 @@ const pl_namespaceObject = JSON.parse('{"cell.filter-cell":"Miejsce docelowe - k
6689
6848
 
6690
6849
 
6691
6850
  const i18n = {
6692
- [build.Locale.DE_DE]: de_namespaceObject,
6693
- [build.Locale.EN_GB]: en_namespaceObject,
6694
- [build.Locale.EN_US]: en_namespaceObject,
6695
- [build.Locale.ES_ES]: es_namespaceObject,
6696
- [build.Locale.FA_IR]: fa_namespaceObject,
6697
- [build.Locale.FR_FR]: fr_namespaceObject,
6698
- [build.Locale.PL_PL]: pl_namespaceObject
6851
+ [types_build.Locale.DE_DE]: de_namespaceObject,
6852
+ [types_build.Locale.EN_GB]: en_namespaceObject,
6853
+ [types_build.Locale.EN_US]: en_namespaceObject,
6854
+ [types_build.Locale.ES_ES]: es_namespaceObject,
6855
+ [types_build.Locale.FA_IR]: fa_namespaceObject,
6856
+ [types_build.Locale.FR_FR]: fr_namespaceObject,
6857
+ [types_build.Locale.PL_PL]: pl_namespaceObject
6699
6858
  };
6700
6859
  /* harmony default export */ const i18n_i18n = (i18n);
6701
6860
 
@@ -7708,7 +7867,7 @@ var SvgStar = function SvgStar(props) {
7708
7867
 
7709
7868
  /***/ }),
7710
7869
 
7711
- /***/ 65175:
7870
+ /***/ 55238:
7712
7871
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7713
7872
 
7714
7873
  "use strict";
@@ -7722,6 +7881,7 @@ __webpack_require__.d(__webpack_exports__, {
7722
7881
  "np": () => (/* reexport */ lib_createKeyboardNavigation),
7723
7882
  "Ml": () => (/* reexport */ lib_createNullMovingComparator),
7724
7883
  "GF": () => (/* reexport */ lib_createRegExp),
7884
+ "kD": () => (/* reexport */ lib_dataUrlToBlob),
7725
7885
  "nK": () => (/* reexport */ lib_extractCharacters),
7726
7886
  "WM": () => (/* reexport */ lib_extractInputValue),
7727
7887
  "Jp": () => (/* reexport */ lib_findCell),
@@ -7825,6 +7985,27 @@ const createRegExp = (input)=>{
7825
7985
  };
7826
7986
  /* harmony default export */ const lib_createRegExp = (createRegExp);
7827
7987
 
7988
+ ;// CONCATENATED MODULE: ./src/lib/dataUrlToBlob.ts
7989
+ const dataUrlToBlob = (dataUrl)=>{
7990
+ const [mime = "", data] = dataUrl.split(",");
7991
+ const [, type] = mime.match(/:(.*?);/) || [];
7992
+ if (typeof type !== "string") {
7993
+ throw new Error("Unsupported data URL");
7994
+ }
7995
+ const byteString = globalThis.atob(data);
7996
+ const u8arr = new Uint8Array(byteString.length);
7997
+ let index = byteString.length;
7998
+ while(index--){
7999
+ u8arr[index] = byteString.charCodeAt(index);
8000
+ }
8001
+ return new Blob([
8002
+ u8arr
8003
+ ], {
8004
+ type
8005
+ });
8006
+ };
8007
+ /* harmony default export */ const lib_dataUrlToBlob = (dataUrlToBlob);
8008
+
7828
8009
  // EXTERNAL MODULE: ../types/build/index.js
7829
8010
  var build = __webpack_require__(34046);
7830
8011
  ;// CONCATENATED MODULE: ./src/lib/detectLocale.ts
@@ -8291,6 +8472,7 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8291
8472
 
8292
8473
 
8293
8474
 
8475
+
8294
8476
 
8295
8477
 
8296
8478
  /***/ }),
@@ -8303,10 +8485,12 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8303
8485
  /* harmony export */ "$B": () => (/* binding */ BOARD_TILE_FONT_SIZE_POINTS_MIN),
8304
8486
  /* harmony export */ "$L": () => (/* binding */ RESULTS_HEADER_HEIGHT),
8305
8487
  /* harmony export */ "$M": () => (/* binding */ RACK_TILE_SIZE_MAX),
8488
+ /* harmony export */ "$P": () => (/* binding */ COLOR_BONUS_CHARACTER_MULTIPLIER),
8306
8489
  /* harmony export */ "BF": () => (/* binding */ PLAIN_TILES_COLOR_DEFAULT),
8307
8490
  /* harmony export */ "D": () => (/* binding */ PLAIN_TILES_TILE_MAX_SCATTER),
8308
8491
  /* harmony export */ "F1": () => (/* binding */ COLOR_GREEN),
8309
8492
  /* harmony export */ "FZ": () => (/* binding */ BUTTON_HEIGHT),
8493
+ /* harmony export */ "HC": () => (/* binding */ COLOR_BONUS_START),
8310
8494
  /* harmony export */ "IO": () => (/* binding */ BOARD_CELL_ACTIONS_OFFSET),
8311
8495
  /* harmony export */ "Kc": () => (/* binding */ EASE_OUT_CUBIC),
8312
8496
  /* harmony export */ "Kw": () => (/* binding */ BOARD_TILE_SIZE_MAX),
@@ -8325,12 +8509,15 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8325
8509
  /* harmony export */ "iF": () => (/* binding */ MODAL_WIDTH),
8326
8510
  /* harmony export */ "j$": () => (/* binding */ BREAKPOINTS),
8327
8511
  /* harmony export */ "kD": () => (/* binding */ TEXT_INPUT_HEIGHT),
8512
+ /* harmony export */ "kr": () => (/* binding */ COLOR_BONUS_CHARACTER),
8328
8513
  /* harmony export */ "ku": () => (/* binding */ PLAIN_TILES_TILE_MARGIN),
8329
8514
  /* harmony export */ "mM": () => (/* binding */ REMAINING_TILES_TILE_SIZE),
8330
8515
  /* harmony export */ "n6": () => (/* binding */ DICTIONARY_HEIGHT),
8516
+ /* harmony export */ "n_": () => (/* binding */ BORDER_RADIUS),
8331
8517
  /* harmony export */ "oj": () => (/* binding */ BOARD_TILE_SIZE_MIN),
8332
8518
  /* harmony export */ "op": () => (/* binding */ COMPONENTS_SPACING_SMALL),
8333
8519
  /* harmony export */ "pI": () => (/* binding */ COLOR_BLUE),
8520
+ /* harmony export */ "pS": () => (/* binding */ COLOR_FILTERED),
8334
8521
  /* harmony export */ "pc": () => (/* binding */ LOGO_ASPECT_RATIO),
8335
8522
  /* harmony export */ "pt": () => (/* binding */ SOLVER_COLUMN_WIDTH),
8336
8523
  /* harmony export */ "rV": () => (/* binding */ PLAIN_TILES_TILE_SIZE),
@@ -8338,7 +8525,9 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8338
8525
  /* harmony export */ "sk": () => (/* binding */ LOGO_SRC),
8339
8526
  /* harmony export */ "t": () => (/* binding */ LOGO_HEIGHT_SMALL),
8340
8527
  /* harmony export */ "t$": () => (/* binding */ NAV_PADDING),
8528
+ /* harmony export */ "ti": () => (/* binding */ COLOR_BONUS_WORD),
8341
8529
  /* harmony export */ "tr": () => (/* binding */ COMPONENTS_SPACING),
8530
+ /* harmony export */ "uI": () => (/* binding */ BORDER_COLOR_LIGHT),
8342
8531
  /* harmony export */ "uX": () => (/* binding */ PLAIN_TILES_PADDING_VERTICAL),
8343
8532
  /* harmony export */ "xZ": () => (/* binding */ PROGRESS_COLOR_VALUE),
8344
8533
  /* harmony export */ "y7": () => (/* binding */ LOGO_HEIGHT),
@@ -8346,7 +8535,7 @@ const zipCharactersAndTiles = (characters, tiles)=>{
8346
8535
  /* harmony export */ "yr": () => (/* binding */ COLOR_YELLOW),
8347
8536
  /* harmony export */ "yz": () => (/* binding */ TRANSITION)
8348
8537
  /* harmony export */ });
8349
- /* unused harmony exports TRANSITION_DURATION, SPACING_XS, SPACING_S, SPACING_M, SPACING_L, SPACING_XL, BOARD_CELL_BORDER_WIDTH, BUTTON_ICON_SIZE, BUTTON_PADDING_VERTICAL, TILE_SIZE, PLAIN_TILES_VERSION_TILE_COLOR, PLAIN_TILES_VERSION_TILE_SIZE */
8538
+ /* unused harmony exports TRANSITION_DURATION, COLOR_BONUS_CHARACTER_1, COLOR_BONUS_CHARACTER_2, COLOR_BONUS_CHARACTER_3, COLOR_BONUS_CHARACTER_5, COLOR_BONUS_CHARACTER_MULTIPLIER_2, COLOR_BONUS_CHARACTER_MULTIPLIER_3, COLOR_BONUS_WORD_MULTIPLIER_2, COLOR_BONUS_WORD_MULTIPLIER_3, SPACING_XS, SPACING_S, SPACING_M, SPACING_L, SPACING_XL, BOARD_CELL_BORDER_WIDTH, BORDER_COLOR, BUTTON_ICON_SIZE, BUTTON_PADDING_VERTICAL, TILE_SIZE, PLAIN_TILES_VERSION_TILE_COLOR, PLAIN_TILES_VERSION_TILE_SIZE */
8350
8539
  const BREAKPOINTS = {
8351
8540
  xs: 480,
8352
8541
  s: 768,
@@ -8363,6 +8552,30 @@ const COLOR_BLUE = "#c7d8f9";
8363
8552
  const COLOR_GREEN = "#bae3ba";
8364
8553
  const COLOR_RED = "#f7c2aa";
8365
8554
  const COLOR_YELLOW = "#efe3ae";
8555
+ const COLOR_BONUS_CHARACTER_1 = "#f7f1d6";
8556
+ const COLOR_BONUS_CHARACTER_2 = "#d6ebd6";
8557
+ const COLOR_BONUS_CHARACTER_3 = "#dde4f6";
8558
+ const COLOR_BONUS_CHARACTER_5 = "#fbe0d4";
8559
+ const COLOR_BONUS_CHARACTER_MULTIPLIER_2 = "#b8d5ed";
8560
+ const COLOR_BONUS_CHARACTER_MULTIPLIER_3 = "#86aed1";
8561
+ const COLOR_BONUS_START = "#b284b8";
8562
+ const COLOR_BONUS_WORD_MULTIPLIER_2 = "#fbc997";
8563
+ const COLOR_BONUS_WORD_MULTIPLIER_3 = "#f19393";
8564
+ const COLOR_FILTERED = "#444";
8565
+ const COLOR_BONUS_CHARACTER = {
8566
+ 1: COLOR_BONUS_CHARACTER_1,
8567
+ 2: COLOR_BONUS_CHARACTER_2,
8568
+ 3: COLOR_BONUS_CHARACTER_3,
8569
+ 5: COLOR_BONUS_CHARACTER_5
8570
+ };
8571
+ const COLOR_BONUS_CHARACTER_MULTIPLIER = {
8572
+ 2: COLOR_BONUS_CHARACTER_MULTIPLIER_2,
8573
+ 3: COLOR_BONUS_CHARACTER_MULTIPLIER_3
8574
+ };
8575
+ const COLOR_BONUS_WORD = {
8576
+ 2: COLOR_BONUS_WORD_MULTIPLIER_2,
8577
+ 3: COLOR_BONUS_WORD_MULTIPLIER_3
8578
+ };
8366
8579
  const SPACING_XS = 2;
8367
8580
  const SPACING_S = 5;
8368
8581
  const SPACING_M = 10;
@@ -8380,6 +8593,9 @@ const BOARD_TILE_SIZE_MAX = 64;
8380
8593
  * 21 - fits all board tiles without horizontal scrollbar on 375px viewport width (font-size: 14px)
8381
8594
  * 26 - tiles start to look good (font-size: 16px)
8382
8595
  */ const BOARD_TILE_SIZE_MIN = 20;
8596
+ const BORDER_COLOR = "#cdcdcd";
8597
+ const BORDER_COLOR_LIGHT = "#d9d9d9";
8598
+ const BORDER_RADIUS = 5;
8383
8599
  const BORDER_WIDTH = 1;
8384
8600
  const BUTTON_ICON_SIZE = 24;
8385
8601
  const BUTTON_PADDING_VERTICAL = SPACING_M;
@@ -8419,8 +8635,8 @@ const PROGRESS_COLOR_VALUE = "var(--color--violet--light)";
8419
8635
  const PROGRESS_COLOR_BACKGROUND = "var(--color--inactive)";
8420
8636
  const RACK_TILE_SIZE_MAX = 80;
8421
8637
  const REMAINING_TILES_TILE_SIZE = 50;
8422
- const RESULTS_HEADER_HEIGHT = 35;
8423
8638
  const RESULTS_ITEM_HEIGHT = 40;
8639
+ const RESULTS_HEADER_HEIGHT = RESULTS_ITEM_HEIGHT;
8424
8640
  const SOLVER_COLUMN_WIDTH = 580;
8425
8641
  const TEXT_INPUT_HEIGHT = 40;
8426
8642
  const TILE_APPEAR_DURATION = 200;
@@ -8455,52 +8671,6 @@ const initialize = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createAction
8455
8671
  const reset = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createAction)("reset");
8456
8672
 
8457
8673
 
8458
- /***/ }),
8459
-
8460
- /***/ 60860:
8461
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
8462
-
8463
- "use strict";
8464
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
8465
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8466
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
8467
- /* harmony export */ });
8468
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
8469
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
8470
- /* harmony import */ var redux_saga__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75998);
8471
- /* harmony import */ var _sagas__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23599);
8472
- /* harmony import */ var _slices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67647);
8473
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([redux_saga__WEBPACK_IMPORTED_MODULE_1__]);
8474
- redux_saga__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
8475
-
8476
-
8477
-
8478
-
8479
- const sagaMiddleware = (0,redux_saga__WEBPACK_IMPORTED_MODULE_1__["default"])();
8480
- const createAppStore = ()=>{
8481
- const store = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.configureStore)({
8482
- reducer: {
8483
- board: _slices__WEBPACK_IMPORTED_MODULE_3__/* .boardSlice.reducer */ .I8.reducer,
8484
- cellFilter: _slices__WEBPACK_IMPORTED_MODULE_3__/* .cellFilterSlice.reducer */ .mO.reducer,
8485
- dictionary: _slices__WEBPACK_IMPORTED_MODULE_3__/* .dictionarySlice.reducer */ .lj.reducer,
8486
- rack: _slices__WEBPACK_IMPORTED_MODULE_3__/* .rackSlice.reducer */ .O_.reducer,
8487
- results: _slices__WEBPACK_IMPORTED_MODULE_3__/* .resultsSlice.reducer */ ._C.reducer,
8488
- settings: _slices__WEBPACK_IMPORTED_MODULE_3__/* .settingsSlice.reducer */ .xj.reducer,
8489
- solve: _slices__WEBPACK_IMPORTED_MODULE_3__/* .solveSlice.reducer */ .TP.reducer,
8490
- verify: _slices__WEBPACK_IMPORTED_MODULE_3__/* .verifySlice.reducer */ .Gt.reducer
8491
- },
8492
- middleware: [
8493
- sagaMiddleware
8494
- ]
8495
- });
8496
- sagaMiddleware.run(_sagas__WEBPACK_IMPORTED_MODULE_2__/* .rootSaga */ .R);
8497
- return store;
8498
- };
8499
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAppStore);
8500
-
8501
- __webpack_async_result__();
8502
- } catch(e) { __webpack_async_result__(e); } });
8503
-
8504
8674
  /***/ }),
8505
8675
 
8506
8676
  /***/ 83067:
@@ -8509,58 +8679,58 @@ __webpack_async_result__();
8509
8679
  "use strict";
8510
8680
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
8511
8681
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8512
- /* harmony export */ "$o": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.$o),
8513
- /* harmony export */ "AN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.AN),
8514
- /* harmony export */ "En": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.En),
8515
- /* harmony export */ "GL": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.GL),
8516
- /* harmony export */ "HM": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.HM),
8517
- /* harmony export */ "I8": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.I8),
8518
- /* harmony export */ "Mj": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Mj),
8519
- /* harmony export */ "O0": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.O0),
8520
- /* harmony export */ "O_": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.O_),
8521
- /* harmony export */ "Or": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Or),
8522
- /* harmony export */ "QB": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.QB),
8523
- /* harmony export */ "QL": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.QL),
8524
- /* harmony export */ "R": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.R),
8525
- /* harmony export */ "Rn": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Rn),
8526
- /* harmony export */ "TP": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.TP),
8527
- /* harmony export */ "Xb": () => (/* reexport safe */ _localStorage__WEBPACK_IMPORTED_MODULE_2__.Z),
8528
- /* harmony export */ "Xk": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Xk),
8529
- /* harmony export */ "Yj": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Yj),
8530
- /* harmony export */ "ZA": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.ZA),
8531
- /* harmony export */ "ZO": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.ZO),
8532
- /* harmony export */ "Zf": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.Zf),
8533
- /* harmony export */ "_C": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__._C),
8534
- /* harmony export */ "bs": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.bs),
8535
- /* harmony export */ "fN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.fN),
8536
- /* harmony export */ "fZ": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.fZ),
8537
- /* harmony export */ "id": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.id),
8682
+ /* harmony export */ "$o": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.$o),
8683
+ /* harmony export */ "AN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.AN),
8684
+ /* harmony export */ "En": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.En),
8685
+ /* harmony export */ "GL": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.GL),
8686
+ /* harmony export */ "HM": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.HM),
8687
+ /* harmony export */ "I8": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.I8),
8688
+ /* harmony export */ "Jw": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Jw),
8689
+ /* harmony export */ "Mj": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Mj),
8690
+ /* harmony export */ "O_": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.O_),
8691
+ /* harmony export */ "Or": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Or),
8692
+ /* harmony export */ "QB": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.QB),
8693
+ /* harmony export */ "QL": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.QL),
8694
+ /* harmony export */ "R": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.R),
8695
+ /* harmony export */ "Rn": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Rn),
8696
+ /* harmony export */ "TP": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.TP),
8697
+ /* harmony export */ "Xb": () => (/* reexport safe */ _localStorage__WEBPACK_IMPORTED_MODULE_1__.Z),
8698
+ /* harmony export */ "Xk": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Xk),
8699
+ /* harmony export */ "Yj": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Yj),
8700
+ /* harmony export */ "ZA": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.ZA),
8701
+ /* harmony export */ "ZO": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.ZO),
8702
+ /* harmony export */ "Zf": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Zf),
8703
+ /* harmony export */ "_C": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__._C),
8704
+ /* harmony export */ "bs": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.bs),
8705
+ /* harmony export */ "fN": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.fN),
8706
+ /* harmony export */ "fZ": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.fZ),
8707
+ /* harmony export */ "h": () => (/* reexport safe */ _store__WEBPACK_IMPORTED_MODULE_4__.Z),
8708
+ /* harmony export */ "id": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.id),
8538
8709
  /* harmony export */ "ix": () => (/* reexport safe */ _useTypedSelector__WEBPACK_IMPORTED_MODULE_6__.Z),
8539
8710
  /* harmony export */ "j2": () => (/* reexport safe */ _actions__WEBPACK_IMPORTED_MODULE_0__.j),
8540
- /* harmony export */ "lj": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.lj),
8541
- /* harmony export */ "mK": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.mK),
8542
- /* harmony export */ "mO": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.mO),
8711
+ /* harmony export */ "lj": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.lj),
8712
+ /* harmony export */ "mK": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.mK),
8713
+ /* harmony export */ "mO": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.mO),
8543
8714
  /* harmony export */ "mc": () => (/* reexport safe */ _actions__WEBPACK_IMPORTED_MODULE_0__.m),
8544
- /* harmony export */ "md": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.md),
8715
+ /* harmony export */ "md": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.md),
8545
8716
  /* harmony export */ "qM": () => (/* reexport safe */ _useTranslate__WEBPACK_IMPORTED_MODULE_5__.Z),
8546
- /* harmony export */ "uz": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.uz),
8547
- /* harmony export */ "vY": () => (/* reexport safe */ _createAppStore__WEBPACK_IMPORTED_MODULE_1__.Z),
8548
- /* harmony export */ "w1": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.w1),
8549
- /* harmony export */ "x5": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.x5),
8550
- /* harmony export */ "xU": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.xU),
8551
- /* harmony export */ "xj": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_4__.xj),
8552
- /* harmony export */ "yJ": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.yJ),
8553
- /* harmony export */ "z$": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_3__.z$)
8717
+ /* harmony export */ "uz": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.uz),
8718
+ /* harmony export */ "w1": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.w1),
8719
+ /* harmony export */ "x5": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.x5),
8720
+ /* harmony export */ "xU": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.xU),
8721
+ /* harmony export */ "xj": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.xj),
8722
+ /* harmony export */ "yJ": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.yJ),
8723
+ /* harmony export */ "z$": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.z$)
8554
8724
  /* harmony export */ });
8555
8725
  /* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23617);
8556
- /* harmony import */ var _createAppStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60860);
8557
- /* harmony import */ var _localStorage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79579);
8558
- /* harmony import */ var _selectors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(96076);
8559
- /* harmony import */ var _slices__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67647);
8726
+ /* harmony import */ var _localStorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79579);
8727
+ /* harmony import */ var _selectors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96076);
8728
+ /* harmony import */ var _slices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67647);
8729
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18415);
8560
8730
  /* harmony import */ var _useTranslate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22522);
8561
8731
  /* harmony import */ var _useTypedSelector__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(76631);
8562
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_createAppStore__WEBPACK_IMPORTED_MODULE_1__]);
8563
- _createAppStore__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
8732
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_store__WEBPACK_IMPORTED_MODULE_4__]);
8733
+ _store__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
8564
8734
 
8565
8735
 
8566
8736
 
@@ -8642,14 +8812,14 @@ __webpack_require__.d(__webpack_exports__, {
8642
8812
  "R": () => (/* binding */ rootSaga)
8643
8813
  });
8644
8814
 
8645
- // EXTERNAL MODULE: ../constants/build/index.js
8646
- var build = __webpack_require__(7618);
8647
- // EXTERNAL MODULE: ../types/build/index.js
8648
- var types_build = __webpack_require__(34046);
8649
8815
  // EXTERNAL MODULE: external "redux-saga/effects"
8650
8816
  var effects_ = __webpack_require__(56477);
8651
- // EXTERNAL MODULE: ./src/lib/index.ts + 32 modules
8652
- var lib = __webpack_require__(65175);
8817
+ // EXTERNAL MODULE: ./src/i18n/index.ts + 8 modules
8818
+ var i18n = __webpack_require__(36743);
8819
+ // EXTERNAL MODULE: ./src/lib/index.ts + 33 modules
8820
+ var lib = __webpack_require__(55238);
8821
+ // EXTERNAL MODULE: ../types/build/index.js
8822
+ var build = __webpack_require__(34046);
8653
8823
  ;// CONCATENATED MODULE: ./src/sdk/fetch.ts
8654
8824
 
8655
8825
  const fetch_fetch = async (input, init)=>{
@@ -8657,7 +8827,7 @@ const fetch_fetch = async (input, init)=>{
8657
8827
  try {
8658
8828
  response = await window.fetch(input, init);
8659
8829
  } catch (error) {
8660
- const message = (0,types_build.isError)(error) ? error.message : "Unknown error";
8830
+ const message = (0,build.isError)(error) ? error.message : "Unknown error";
8661
8831
  throw new Error(`Network error: ${message}`);
8662
8832
  }
8663
8833
  if (response.ok) {
@@ -8665,7 +8835,7 @@ const fetch_fetch = async (input, init)=>{
8665
8835
  }
8666
8836
  try {
8667
8837
  const json = await response.json();
8668
- if ((0,types_build.isError)(json)) {
8838
+ if ((0,build.isError)(json)) {
8669
8839
  throw new Error(json.message);
8670
8840
  }
8671
8841
  } finally{
@@ -8694,7 +8864,7 @@ const fetchJson = async (input, init)=>{
8694
8864
 
8695
8865
  const findWordDefinitions = async (locale, word)=>{
8696
8866
  const json = await sdk_fetchJson(`/api/dictionary/${locale}/${encodeURIComponent(word)}`);
8697
- return json.map(types_build.WordDefinition.fromJson);
8867
+ return json.map(build.WordDefinition.fromJson);
8698
8868
  };
8699
8869
  /* harmony default export */ const sdk_findWordDefinitions = (findWordDefinitions);
8700
8870
 
@@ -8711,7 +8881,7 @@ const solve = async ({ board , characters , configId , locale })=>{
8711
8881
  locale
8712
8882
  })
8713
8883
  });
8714
- return json.map(types_build.Result.fromJson);
8884
+ return json.map(build.Result.fromJson);
8715
8885
  };
8716
8886
  /* harmony default export */ const sdk_solve = (solve);
8717
8887
 
@@ -8757,7 +8927,6 @@ var slices = __webpack_require__(67647);
8757
8927
 
8758
8928
 
8759
8929
 
8760
-
8761
8930
  const SUBMIT_DELAY = 150;
8762
8931
  const memoizedFindWordDefinitions = (0,lib/* memoize */.HP)(sdk_findWordDefinitions);
8763
8932
  function* rootSaga() {
@@ -8850,8 +9019,7 @@ function* onLocaleChange() {
8850
9019
  function* onResultCandidateChange({ payload: result }) {
8851
9020
  if (result) {
8852
9021
  const locale = yield (0,effects_.select)(selectors/* selectLocale */.fN);
8853
- const comma = locale === types_build.Locale.FA_IR ? ` ${build.COMMA_ARABIC}` : `${build.COMMA_LATIN} `;
8854
- yield (0,effects_.put)(slices/* dictionarySlice.actions.changeInput */.lj.actions.changeInput(result.words.join(comma)));
9022
+ yield (0,effects_.put)(slices/* dictionarySlice.actions.changeInput */.lj.actions.changeInput(result.words.join(i18n/* LOCALE_FEATURES */.q0[locale].separator)));
8855
9023
  yield (0,effects_.put)(slices/* dictionarySlice.actions.submit */.lj.actions.submit());
8856
9024
  }
8857
9025
  }
@@ -8939,8 +9107,8 @@ function* ensureProperTilesCount() {
8939
9107
  /* harmony export */ "En": () => (/* binding */ selectHasOverusedTiles),
8940
9108
  /* harmony export */ "GL": () => (/* binding */ selectResultCandidateCells),
8941
9109
  /* harmony export */ "HM": () => (/* binding */ selectVerify),
9110
+ /* harmony export */ "Jw": () => (/* binding */ selectCellFilter),
8942
9111
  /* harmony export */ "Mj": () => (/* binding */ selectAreResultsOutdated),
8943
- /* harmony export */ "O0": () => (/* binding */ selectCellBonus),
8944
9112
  /* harmony export */ "Or": () => (/* binding */ selectCharacterPoints),
8945
9113
  /* harmony export */ "QB": () => (/* binding */ selectRack),
8946
9114
  /* harmony export */ "QL": () => (/* binding */ selectResultsQuery),
@@ -8967,7 +9135,7 @@ function* ensureProperTilesCount() {
8967
9135
  /* harmony export */ "yp": () => (/* binding */ selectCharacters),
8968
9136
  /* harmony export */ "z$": () => (/* binding */ selectResultCandidateTiles)
8969
9137
  /* harmony export */ });
8970
- /* unused harmony exports selectCellFilter, selectResultsRaw, selectSortedResults, selectGroupedResults, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
9138
+ /* unused harmony exports selectResultsRaw, selectSortedResults, selectGroupedResults, selectCellBonus, selectTranslation, selectLastSolvedParameters, selectHaveCharactersChanged, selectHasBoardChanged, selectRemainingTiles */
8971
9139
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
8972
9140
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
8973
9141
  /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89418);
@@ -8976,7 +9144,7 @@ function* ensureProperTilesCount() {
8976
9144
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34046);
8977
9145
  /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__);
8978
9146
  /* harmony import */ var i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36743);
8979
- /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65175);
9147
+ /* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55238);
8980
9148
  /* eslint-disable max-lines */
8981
9149
 
8982
9150
 
@@ -9220,8 +9388,8 @@ var build = __webpack_require__(89418);
9220
9388
  var types_build = __webpack_require__(34046);
9221
9389
  // EXTERNAL MODULE: ./src/state/localStorage.ts
9222
9390
  var localStorage = __webpack_require__(79579);
9223
- // EXTERNAL MODULE: ./src/lib/index.ts + 32 modules
9224
- var lib = __webpack_require__(65175);
9391
+ // EXTERNAL MODULE: ./src/lib/index.ts + 33 modules
9392
+ var lib = __webpack_require__(55238);
9225
9393
  ;// CONCATENATED MODULE: ./src/state/slices/settingsInitialState.ts
9226
9394
 
9227
9395
 
@@ -9711,6 +9879,49 @@ const verifySlice = (0,toolkit_.createSlice)({
9711
9879
 
9712
9880
 
9713
9881
 
9882
+ /***/ }),
9883
+
9884
+ /***/ 18415:
9885
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
9886
+
9887
+ "use strict";
9888
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
9889
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9890
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
9891
+ /* harmony export */ });
9892
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
9893
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
9894
+ /* harmony import */ var redux_saga__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75998);
9895
+ /* harmony import */ var _sagas__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23599);
9896
+ /* harmony import */ var _slices__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67647);
9897
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([redux_saga__WEBPACK_IMPORTED_MODULE_1__]);
9898
+ redux_saga__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
9899
+
9900
+
9901
+
9902
+
9903
+ const sagaMiddleware = (0,redux_saga__WEBPACK_IMPORTED_MODULE_1__["default"])();
9904
+ const store = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.configureStore)({
9905
+ reducer: {
9906
+ board: _slices__WEBPACK_IMPORTED_MODULE_3__/* .boardSlice.reducer */ .I8.reducer,
9907
+ cellFilter: _slices__WEBPACK_IMPORTED_MODULE_3__/* .cellFilterSlice.reducer */ .mO.reducer,
9908
+ dictionary: _slices__WEBPACK_IMPORTED_MODULE_3__/* .dictionarySlice.reducer */ .lj.reducer,
9909
+ rack: _slices__WEBPACK_IMPORTED_MODULE_3__/* .rackSlice.reducer */ .O_.reducer,
9910
+ results: _slices__WEBPACK_IMPORTED_MODULE_3__/* .resultsSlice.reducer */ ._C.reducer,
9911
+ settings: _slices__WEBPACK_IMPORTED_MODULE_3__/* .settingsSlice.reducer */ .xj.reducer,
9912
+ solve: _slices__WEBPACK_IMPORTED_MODULE_3__/* .solveSlice.reducer */ .TP.reducer,
9913
+ verify: _slices__WEBPACK_IMPORTED_MODULE_3__/* .verifySlice.reducer */ .Gt.reducer
9914
+ },
9915
+ middleware: [
9916
+ sagaMiddleware
9917
+ ]
9918
+ });
9919
+ sagaMiddleware.run(_sagas__WEBPACK_IMPORTED_MODULE_2__/* .rootSaga */ .R);
9920
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);
9921
+
9922
+ __webpack_async_result__();
9923
+ } catch(e) { __webpack_async_result__(e); } });
9924
+
9714
9925
  /***/ }),
9715
9926
 
9716
9927
  /***/ 22522: