scrabble-solver 2.11.0 → 2.11.1

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 (107) hide show
  1. package/lerna.json +1 -1
  2. package/package.json +1 -1
  3. package/packages/configs/package.json +3 -3
  4. package/packages/constants/package.json +1 -1
  5. package/packages/dictionaries/package-lock.json +2 -2
  6. package/packages/dictionaries/package.json +4 -4
  7. package/packages/logger/package-lock.json +2 -2
  8. package/packages/logger/package.json +1 -1
  9. package/packages/scrabble-solver/.next/BUILD_ID +1 -1
  10. package/packages/scrabble-solver/.next/build-manifest.json +7 -7
  11. package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
  12. package/packages/scrabble-solver/.next/cache/eslint/.cache_8dgz12 +1 -1
  13. package/packages/scrabble-solver/.next/cache/next-server.js.nft.json +1 -1
  14. package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
  15. package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
  16. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/0.pack +0 -0
  17. package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
  18. package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
  19. package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
  20. package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
  21. package/packages/scrabble-solver/.next/prerender-manifest.json +1 -1
  22. package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
  23. package/packages/scrabble-solver/.next/server/chunks/277.js +341 -459
  24. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  25. package/packages/scrabble-solver/.next/server/pages/404.html +2 -2
  26. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  27. package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
  28. package/packages/scrabble-solver/.next/server/pages/_app.js +0 -24
  29. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  30. package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
  31. package/packages/scrabble-solver/.next/server/pages/api/solve.js +0 -1
  32. package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
  33. package/packages/scrabble-solver/.next/server/pages/index.js +4 -52
  34. package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
  35. package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
  36. package/packages/scrabble-solver/.next/static/chunks/pages/{404-e0f30450e9920dc3.js → 404-448ba28510855455.js} +1 -1
  37. package/packages/scrabble-solver/.next/static/chunks/pages/_app-270526803bc274eb.js +28 -0
  38. package/packages/scrabble-solver/.next/static/chunks/pages/index-c6e7754ccf3532df.js +1 -0
  39. package/packages/scrabble-solver/.next/static/css/ad39b36eab07e613.css +1 -0
  40. package/packages/scrabble-solver/.next/static/css/e5803e581e4c0451.css +2 -0
  41. package/packages/scrabble-solver/.next/static/esK8DG-6aS5V7QFRtR3YE/_buildManifest.js +1 -0
  42. package/packages/scrabble-solver/.next/trace +53 -55
  43. package/packages/scrabble-solver/package-lock.json +2 -79
  44. package/packages/scrabble-solver/package.json +8 -13
  45. package/packages/scrabble-solver/src/components/{Solver/components/EmptyState/EmptyState.module.scss → Alert/Alert.module.scss} +11 -7
  46. package/packages/scrabble-solver/src/components/{Solver/components/EmptyState/EmptyState.tsx → Alert/Alert.tsx} +8 -6
  47. package/packages/scrabble-solver/src/components/Alert/index.ts +1 -0
  48. package/packages/scrabble-solver/src/components/Board/Board.module.scss +55 -0
  49. package/packages/scrabble-solver/src/components/Board/BoardPure.tsx +4 -0
  50. package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.module.scss +41 -0
  51. package/packages/scrabble-solver/src/components/Board/components/Cell/Cell.tsx +12 -0
  52. package/packages/scrabble-solver/src/components/Board/components/Cell/CellPure.tsx +12 -0
  53. package/packages/scrabble-solver/src/components/Board/hooks/useGrid.ts +8 -24
  54. package/packages/scrabble-solver/src/components/Dictionary/Dictionary.module.scss +4 -0
  55. package/packages/scrabble-solver/src/components/DictionaryInput/DictionaryInput.module.scss +1 -0
  56. package/packages/scrabble-solver/src/components/EmptyState/EmptyState.module.scss +2 -1
  57. package/packages/scrabble-solver/src/components/EmptyState/EmptyState.tsx +1 -2
  58. package/packages/scrabble-solver/src/components/Loading/Loading.module.scss +1 -1
  59. package/packages/scrabble-solver/src/components/Logo/Logo.tsx +5 -0
  60. package/packages/scrabble-solver/src/components/Modal/Modal.module.scss +2 -0
  61. package/packages/scrabble-solver/src/components/PlainTiles/PlainTiles.module.scss +1 -1
  62. package/packages/scrabble-solver/src/components/PlainTiles/Tile.tsx +3 -3
  63. package/packages/scrabble-solver/src/components/Rack/Rack.module.scss +25 -0
  64. package/packages/scrabble-solver/src/components/Rack/Rack.tsx +5 -4
  65. package/packages/scrabble-solver/src/components/Rack/RackTile.tsx +6 -13
  66. package/packages/scrabble-solver/src/components/Results/Results.module.scss +28 -0
  67. package/packages/scrabble-solver/src/components/ResultsInput/ResultsInput.module.scss +1 -0
  68. package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +5 -4
  69. package/packages/scrabble-solver/src/components/Solver/Solver.tsx +8 -7
  70. package/packages/scrabble-solver/src/components/Solver/components/index.ts +0 -1
  71. package/packages/scrabble-solver/src/components/Tile/Tile.module.scss +14 -2
  72. package/packages/scrabble-solver/src/components/Tooltip/Tooltip.module.scss +1 -72
  73. package/packages/scrabble-solver/src/components/Tooltip/useTooltip.tsx +25 -35
  74. package/packages/scrabble-solver/src/components/index.ts +1 -0
  75. package/packages/scrabble-solver/src/hooks/index.ts +0 -1
  76. package/packages/scrabble-solver/src/lib/index.ts +0 -1
  77. package/packages/scrabble-solver/src/modals/DictionaryModal/DictionaryModal.module.scss +6 -1
  78. package/packages/scrabble-solver/src/modals/KeyMapModal/KeyMapModal.tsx +5 -21
  79. package/packages/scrabble-solver/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +4 -0
  80. package/packages/scrabble-solver/src/modals/RemainingTilesModal/components/Character/Character.module.scss +1 -0
  81. package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.module.scss +1 -0
  82. package/packages/scrabble-solver/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +2 -0
  83. package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss +8 -1
  84. package/packages/scrabble-solver/src/state/createAppStore.ts +26 -10
  85. package/packages/scrabble-solver/src/state/types.ts +20 -2
  86. package/packages/scrabble-solver/src/styles/mixins.scss +22 -0
  87. package/packages/scrabble-solver/src/styles/variables.scss +16 -1
  88. package/packages/solver/package-lock.json +2 -2
  89. package/packages/solver/package.json +5 -5
  90. package/packages/types/build/Bonus.d.ts +2 -1
  91. package/packages/types/package.json +2 -2
  92. package/packages/types/src/Bonus.ts +3 -1
  93. package/packages/word-definitions/package-lock.json +2 -2
  94. package/packages/word-definitions/package.json +2 -2
  95. package/packages/word-lists/package-lock.json +2 -2
  96. package/packages/word-lists/package.json +2 -2
  97. package/packages/scrabble-solver/.next/static/45ye7793DY705HOcuK9lJ/_buildManifest.js +0 -1
  98. package/packages/scrabble-solver/.next/static/chunks/pages/_app-d7acee5e526752d9.js +0 -28
  99. package/packages/scrabble-solver/.next/static/chunks/pages/index-35d2c1c79a201ae2.js +0 -1
  100. package/packages/scrabble-solver/.next/static/css/a48caa6f57de6e98.css +0 -1
  101. package/packages/scrabble-solver/.next/static/css/c49bbe944ddd1b39.css +0 -2
  102. package/packages/scrabble-solver/src/components/Solver/components/EmptyState/index.ts +0 -1
  103. package/packages/scrabble-solver/src/components/Tooltip/constants.ts +0 -28
  104. package/packages/scrabble-solver/src/hooks/useUniqueId.ts +0 -9
  105. package/packages/scrabble-solver/src/lib/isCtrl.ts +0 -7
  106. package/packages/scrabble-solver/src/state/rootReducer.ts +0 -25
  107. /package/packages/scrabble-solver/.next/static/{45ye7793DY705HOcuK9lJ → esK8DG-6aS5V7QFRtR3YE}/_ssgManifest.js +0 -0
@@ -19,6 +19,7 @@
19
19
  width: 100%;
20
20
  height: 100%;
21
21
  content: ' ';
22
+ border-radius: inherit;
22
23
  box-shadow: var(--box-shadow--error);
23
24
  }
24
25
  }
@@ -16,6 +16,7 @@
16
16
  flex: 0 0 calc(var(--dictionary--height) - var(--text-input--height));
17
17
  background-color: var(--color--background--element);
18
18
  border: var(--border);
19
+ border-radius: var(--border--radius);
19
20
  box-shadow: var(--box-shadow);
20
21
 
21
22
  @media (max-height: 600px) {
@@ -21,6 +21,8 @@
21
21
  $height: 32px;
22
22
 
23
23
  height: $height;
24
+ border-radius: var(--border--radius);
25
+ box-shadow: var(--box-shadow);
24
26
  transition: var(--transition);
25
27
 
26
28
  &.de {
@@ -37,5 +37,12 @@
37
37
 
38
38
  width: $size;
39
39
  height: $size;
40
- margin-right: var(--spacing--s);
40
+
41
+ [dir='ltr'] & {
42
+ margin-right: var(--spacing--s);
43
+ }
44
+
45
+ [dir='rtl'] & {
46
+ margin-left: var(--spacing--s);
47
+ }
41
48
  }
@@ -1,21 +1,37 @@
1
- import { applyMiddleware, compose, createStore } from 'redux';
1
+ import { configureStore } from '@reduxjs/toolkit';
2
2
  import reduxSaga from 'redux-saga';
3
3
 
4
- import rootReducer from './rootReducer';
5
4
  import { rootSaga } from './sagas';
6
- import { RootState } from './types';
5
+ import {
6
+ boardSlice,
7
+ cellFilterSlice,
8
+ dictionarySlice,
9
+ rackSlice,
10
+ resultsSlice,
11
+ settingsSlice,
12
+ solveSlice,
13
+ verifySlice,
14
+ } from './slices';
7
15
 
8
16
  const sagaMiddleware = reduxSaga();
9
- const initialState: Partial<RootState> | undefined = undefined;
10
17
 
11
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
12
- // @ts-ignore
13
- // eslint-disable-next-line no-underscore-dangle
14
- const composeEnhancers = globalThis.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
18
+ const createAppStore = () => {
19
+ const store = configureStore({
20
+ reducer: {
21
+ board: boardSlice.reducer,
22
+ cellFilter: cellFilterSlice.reducer,
23
+ dictionary: dictionarySlice.reducer,
24
+ rack: rackSlice.reducer,
25
+ results: resultsSlice.reducer,
26
+ settings: settingsSlice.reducer,
27
+ solve: solveSlice.reducer,
28
+ verify: verifySlice.reducer,
29
+ },
30
+ middleware: [sagaMiddleware],
31
+ });
15
32
 
16
- const createAppStore = (): ReturnType<typeof createStore> => {
17
- const store = createStore(rootReducer, initialState, composeEnhancers(applyMiddleware(sagaMiddleware)));
18
33
  sagaMiddleware.run(rootSaga);
34
+
19
35
  return store;
20
36
  };
21
37
 
@@ -1,3 +1,21 @@
1
- import rootReducer from './rootReducer';
1
+ import {
2
+ boardSlice,
3
+ cellFilterSlice,
4
+ dictionarySlice,
5
+ rackSlice,
6
+ resultsSlice,
7
+ settingsSlice,
8
+ solveSlice,
9
+ verifySlice,
10
+ } from './slices';
2
11
 
3
- export type RootState = ReturnType<typeof rootReducer>;
12
+ export type RootState = {
13
+ board: ReturnType<typeof boardSlice.reducer>;
14
+ cellFilter: ReturnType<typeof cellFilterSlice.reducer>;
15
+ dictionary: ReturnType<typeof dictionarySlice.reducer>;
16
+ rack: ReturnType<typeof rackSlice.reducer>;
17
+ results: ReturnType<typeof resultsSlice.reducer>;
18
+ settings: ReturnType<typeof settingsSlice.reducer>;
19
+ solve: ReturnType<typeof solveSlice.reducer>;
20
+ verify: ReturnType<typeof verifySlice.reducer>;
21
+ };
@@ -12,6 +12,28 @@ $media-expressions: (
12
12
  touch: '(hover: none)',
13
13
  );
14
14
 
15
+ @mixin scrollbars {
16
+ scrollbar-color: var(--scrollbar--thumb--color) var(--scrollbar--thumb--track);
17
+ scrollbar-width: auto;
18
+
19
+ &::-webkit-scrollbar {
20
+ width: var(--scrollbar--size);
21
+ background-color: var(--scrollbar--track--color);
22
+ }
23
+
24
+ &::-webkit-scrollbar-thumb {
25
+ background-color: var(--scrollbar--thumb--color);
26
+ }
27
+
28
+ &:hover {
29
+ scrollbar-color: var(--scrollbar--thumb--color--highlight) var(--scrollbar--track--color);
30
+
31
+ &::-webkit-scrollbar-thumb {
32
+ background-color: var(--scrollbar--thumb--color--highlight);
33
+ }
34
+ }
35
+ }
36
+
15
37
  /**
16
38
  * It does not work when applied on input elements.
17
39
  */
@@ -1,3 +1,5 @@
1
+ @import 'styles/mixins';
2
+
1
3
  $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
2
4
 
3
5
  :root {
@@ -8,7 +10,7 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
8
10
  --border--width: 1px;
9
11
 
10
12
  --box-shadow: 0 0 var(--box-shadow--blur) var(--box-shadow--spread) var(--box-shadow--color);
11
- --box-shadow--blur: 10px;
13
+ --box-shadow--blur: 8px;
12
14
  --box-shadow--color: rgba(0, 0, 0, 0.15);
13
15
  --box-shadow--spread: 1px;
14
16
  --box-shadow--null: 0 0 var(--box-shadow--blur) var(--box-shadow--spread) transparent;
@@ -74,6 +76,11 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
74
76
  --spacing--xl: 40px;
75
77
  --spacing--xxl: 80px;
76
78
 
79
+ --scrollbar--size: 5px;
80
+ --scrollbar--thumb--color: var(--border--color);
81
+ --scrollbar--thumb--color--highlight: var(--color--foreground--secondary);
82
+ --scrollbar--track--color: transparent;
83
+
77
84
  --transition: all var(--transition--duration) var(--transition--easing);
78
85
  --transition--long: all var(--transition--duration--long) var(--transition--easing);
79
86
  --transition--duration: 100ms;
@@ -92,4 +99,12 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
92
99
  --solver-column--width: 580px;
93
100
  --square-button--size: 32px;
94
101
  --text-input--height: 40px;
102
+
103
+ @include media('<s') {
104
+ --box-shadow--blur: 5px;
105
+ }
106
+
107
+ @include media('<xs') {
108
+ --box-shadow--blur: 3px;
109
+ }
95
110
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/solver",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/solver",
9
- "version": "2.11.0",
9
+ "version": "2.11.1",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
12
  "@kamilmielnik/trie": "^2.0.1"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/solver",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "Scrabble Solver 2 - Solver",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -25,12 +25,12 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@kamilmielnik/trie": "^2.0.1",
28
- "@scrabble-solver/types": "^2.11.0"
28
+ "@scrabble-solver/types": "^2.11.1"
29
29
  },
30
30
  "devDependencies": {
31
- "@scrabble-solver/configs": "^2.11.0",
32
- "@scrabble-solver/constants": "^2.11.0",
33
- "@scrabble-solver/dictionaries": "^2.11.0"
31
+ "@scrabble-solver/configs": "^2.11.1",
32
+ "@scrabble-solver/constants": "^2.11.1",
33
+ "@scrabble-solver/dictionaries": "^2.11.1"
34
34
  },
35
35
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
36
36
  }
@@ -1,3 +1,4 @@
1
+ import { BONUS_CHARACTER, BONUS_WORD } from '@scrabble-solver/constants';
1
2
  import BonusJson from './BonusJson';
2
3
  import BonusValue from './BonusValue';
3
4
  import Cell from './Cell';
@@ -5,7 +6,7 @@ import Config from './Config';
5
6
  declare abstract class Bonus {
6
7
  readonly multiplier: number;
7
8
  readonly score: number | undefined;
8
- abstract readonly type: string;
9
+ abstract readonly type: typeof BONUS_CHARACTER | typeof BONUS_WORD;
9
10
  readonly x: number;
10
11
  readonly y: number;
11
12
  constructor({ multiplier, score, x, y }: {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/types",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "Scrabble Solver 2 - Types",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "clean:force": "npm run clean && rimraf package-lock.json"
25
25
  },
26
26
  "dependencies": {
27
- "@scrabble-solver/constants": "^2.11.0"
27
+ "@scrabble-solver/constants": "^2.11.1"
28
28
  },
29
29
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
30
30
  }
@@ -1,3 +1,5 @@
1
+ import { BONUS_CHARACTER, BONUS_WORD } from '@scrabble-solver/constants';
2
+
1
3
  import BonusJson from './BonusJson';
2
4
  import BonusValue from './BonusValue';
3
5
  import Cell from './Cell';
@@ -8,7 +10,7 @@ abstract class Bonus {
8
10
 
9
11
  public readonly score: number | undefined;
10
12
 
11
- public abstract readonly type: string;
13
+ public abstract readonly type: typeof BONUS_CHARACTER | typeof BONUS_WORD;
12
14
 
13
15
  public readonly x: number;
14
16
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/word-definitions",
9
- "version": "2.11.0",
9
+ "version": "2.11.1",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
12
  "cheerio": "^1.0.0-rc.12",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "Scrabble Solver 2 - Word definitions",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -23,7 +23,7 @@
23
23
  "clean": "rimraf build/ node_modules/ package-lock.json"
24
24
  },
25
25
  "dependencies": {
26
- "@scrabble-solver/types": "^2.11.0",
26
+ "@scrabble-solver/types": "^2.11.1",
27
27
  "cheerio": "^1.0.0-rc.12",
28
28
  "follow-redirects": "^1.15.2",
29
29
  "striptags": "^3.2.0"
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-lists",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/word-lists",
9
- "version": "2.11.0",
9
+ "version": "2.11.1",
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "dependencies": {
12
12
  "cheerio": "^1.0.0-rc.12",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-lists",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "Scrabble Solver 2 - Word lists",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "clean:force": "npm run clean && rimraf package-lock.json"
25
25
  },
26
26
  "dependencies": {
27
- "@scrabble-solver/types": "^2.11.0",
27
+ "@scrabble-solver/types": "^2.11.1",
28
28
  "cheerio": "^1.0.0-rc.12",
29
29
  "follow-redirects": "^1.15.2",
30
30
  "unzipper": "^0.10.11"
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST={__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/css/a48caa6f57de6e98.css","static/chunks/pages/index-35d2c1c79a201ae2.js"],"/404":["static/chunks/pages/404-e0f30450e9920dc3.js"],"/_error":["static/chunks/pages/_error-54de1933a164a1ff.js"],sortedPages:["/","/404","/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();