@scrabble-solver/scrabble-solver 2.15.17 → 2.15.19
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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/.next/prerender-manifest.json +4 -4
- package/.next/required-server-files.json +3 -3
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/392.js +1 -1
- package/.next/server/chunks/712.js +1 -1
- package/.next/server/chunks/812.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
- package/.next/server/pages/api/solve.js.nft.json +1 -1
- package/.next/server/pages/api/verify.js.nft.json +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/index.json +1 -1
- package/.next/server/pages/not-found.html +1 -1
- package/.next/server/pages/not-found.js.nft.json +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/chunks/pages/_app-e333add311d76325.js +3 -0
- package/.next/trace +21 -21
- package/.next/trace-build +1 -1
- package/package.json +9 -9
- package/src/components/Board/hooks/useGrid.ts +2 -2
- package/src/components/Rack/Rack.tsx +2 -2
- package/src/components/Rack/components/RackTile/RackTile.tsx +2 -2
- package/src/components/SeoMessage/SeoMessage.tsx +3 -3
- package/src/pages/_app.tsx +3 -1
- package/.next/static/chunks/pages/_app-34d868ee8cde5436.js +0 -3
- /package/.next/static/{ImexeOQ5dPSQb-9vZkego → Q1QbM4B3kGvZD0KCKFv6H}/_buildManifest.js +0 -0
- /package/.next/static/{ImexeOQ5dPSQb-9vZkego → Q1QbM4B3kGvZD0KCKFv6H}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-typescript","duration":
|
|
1
|
+
[{"name":"run-typescript","duration":1728960,"timestamp":1220189609,"id":13,"parentId":1,"tags":{},"startTime":1769965308191,"traceId":"9174845eb6d0c50c"},{"name":"run-webpack","duration":5920136,"timestamp":1221920373,"id":15,"parentId":1,"tags":{},"startTime":1769965309922,"traceId":"9174845eb6d0c50c"},{"name":"static-check","duration":179471,"timestamp":1228007816,"id":2000,"parentId":1,"tags":{},"startTime":1769965316010,"traceId":"9174845eb6d0c50c"},{"name":"static-generation","duration":988693,"timestamp":1228197586,"id":2019,"parentId":1,"tags":{},"startTime":1769965316199,"traceId":"9174845eb6d0c50c"},{"name":"collect-build-traces","duration":3616250,"timestamp":1228187957,"id":2016,"parentId":1,"tags":{},"startTime":1769965316190,"traceId":"9174845eb6d0c50c"},{"name":"telemetry-flush","duration":18,"timestamp":1231805242,"id":2031,"parentId":1,"tags":{},"startTime":1769965319807,"traceId":"9174845eb6d0c50c"},{"name":"next-build","duration":11812719,"timestamp":1219992543,"id":1,"tags":{"buildMode":"default","version":"16.0.10","bundler":"webpack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1769965307994,"traceId":"9174845eb6d0c50c"}]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/scrabble-solver",
|
|
3
|
-
"version": "2.15.
|
|
3
|
+
"version": "2.15.19",
|
|
4
4
|
"description": "Scrabble Solver 2 - App",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
"@floating-ui/react": "^0.27.16",
|
|
29
29
|
"@kamilmielnik/trie": "^4.0.0",
|
|
30
30
|
"@reduxjs/toolkit": "^2.11.1",
|
|
31
|
-
"@scrabble-solver/configs": "^2.15.
|
|
32
|
-
"@scrabble-solver/constants": "^2.15.
|
|
33
|
-
"@scrabble-solver/dictionaries": "^2.15.
|
|
34
|
-
"@scrabble-solver/logger": "^2.15.
|
|
35
|
-
"@scrabble-solver/solver": "^2.15.
|
|
36
|
-
"@scrabble-solver/types": "^2.15.
|
|
37
|
-
"@scrabble-solver/word-definitions": "^2.15.
|
|
31
|
+
"@scrabble-solver/configs": "^2.15.19",
|
|
32
|
+
"@scrabble-solver/constants": "^2.15.19",
|
|
33
|
+
"@scrabble-solver/dictionaries": "^2.15.19",
|
|
34
|
+
"@scrabble-solver/logger": "^2.15.19",
|
|
35
|
+
"@scrabble-solver/solver": "^2.15.19",
|
|
36
|
+
"@scrabble-solver/types": "^2.15.19",
|
|
37
|
+
"@scrabble-solver/word-definitions": "^2.15.19",
|
|
38
38
|
"classnames": "^2.5.1",
|
|
39
39
|
"env-cmd": "^11.0.0",
|
|
40
40
|
"include-media": "^2.0.0",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"@types/redux": "^3.6.31",
|
|
70
70
|
"sass": "^1.96.0"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "18958ba917535d53ffa0fc7e592a5c99e1309066"
|
|
73
73
|
}
|
|
@@ -298,7 +298,7 @@ export const useGrid = (rows: Cell[][]): [State, Actions] => {
|
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
const { x, y } = position;
|
|
301
|
-
const character = event.key.
|
|
301
|
+
const character = event.key.toLocaleLowerCase();
|
|
302
302
|
const twoCharacterTile = config.getTwoCharacterTileByPrefix(character);
|
|
303
303
|
|
|
304
304
|
if (isCtrl(event) && twoCharacterTile) {
|
|
@@ -329,7 +329,7 @@ export const useGrid = (rows: Cell[][]): [State, Actions] => {
|
|
|
329
329
|
return;
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
-
if (event.target instanceof HTMLInputElement && event.target.value ===
|
|
332
|
+
if (event.target instanceof HTMLInputElement && event.target.value.toLocaleLowerCase() === character) {
|
|
333
333
|
// change event did not fire because the same character was typed over the current one
|
|
334
334
|
// but we still want to move the caret
|
|
335
335
|
event.preventDefault();
|
|
@@ -137,9 +137,9 @@ export const Rack: FunctionComponent<Props> = ({ className, tileSize }) => {
|
|
|
137
137
|
changeActiveIndex(1);
|
|
138
138
|
},
|
|
139
139
|
onKeyDown: (event) => {
|
|
140
|
-
if (isCtrl(event) && config.isTwoCharacterTilePrefix(event.key)) {
|
|
140
|
+
if (isCtrl(event) && config.isTwoCharacterTilePrefix(event.key.toLocaleLowerCase())) {
|
|
141
141
|
changeActiveIndex(1);
|
|
142
|
-
} else if (event.currentTarget.value === event.key) {
|
|
142
|
+
} else if (event.currentTarget.value.toLocaleLowerCase() === event.key.toLocaleLowerCase()) {
|
|
143
143
|
// change event did not fire because the same character was typed over the current one
|
|
144
144
|
// but we still want to move the caret
|
|
145
145
|
event.preventDefault();
|
|
@@ -96,10 +96,10 @@ export const RackTile: FunctionComponent<Props> = ({
|
|
|
96
96
|
dispatch(rackSlice.actions.changeCharacter({ character: null, index }));
|
|
97
97
|
},
|
|
98
98
|
onKeyDown: (event) => {
|
|
99
|
-
if (isCtrl(event) && config.isTwoCharacterTilePrefix(event.key)) {
|
|
99
|
+
if (isCtrl(event) && config.isTwoCharacterTilePrefix(event.key.toLocaleLowerCase())) {
|
|
100
100
|
event.preventDefault();
|
|
101
101
|
event.stopPropagation();
|
|
102
|
-
const twoTilesCharacter = config.getTwoCharacterTileByPrefix(event.key);
|
|
102
|
+
const twoTilesCharacter = config.getTwoCharacterTileByPrefix(event.key.toLocaleLowerCase());
|
|
103
103
|
|
|
104
104
|
if (twoTilesCharacter) {
|
|
105
105
|
dispatch(rackSlice.actions.changeCharacter({ character: twoTilesCharacter, index }));
|
|
@@ -11,8 +11,8 @@ const INVISIBLE_STYLE: CSSProperties = {
|
|
|
11
11
|
export const SeoMessage: FunctionComponent = () => (
|
|
12
12
|
<p style={INVISIBLE_STYLE}>
|
|
13
13
|
Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter
|
|
14
|
-
League, Literaki, and Kelimelik. Quickly find top scoring words using given letters and board state.
|
|
15
|
-
English, French, German, Persian, Polish, Romanian, Spanish, and Turkish. Source code is available on
|
|
16
|
-
contributions are welcome!
|
|
14
|
+
League, Crossplay, Literaki, and Kelimelik. Quickly find top scoring words using given letters and board state.
|
|
15
|
+
Available in English, French, German, Persian, Polish, Romanian, Spanish, and Turkish. Source code is available on
|
|
16
|
+
GitHub - contributions are welcome!
|
|
17
17
|
</p>
|
|
18
18
|
);
|
package/src/pages/_app.tsx
CHANGED
|
@@ -11,7 +11,7 @@ import '../styles/global.scss';
|
|
|
11
11
|
|
|
12
12
|
const DESCRIPTION =
|
|
13
13
|
// eslint-disable-next-line max-len
|
|
14
|
-
'Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League
|
|
14
|
+
'Scrabble Solver 2 - Free and open-source analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki and Kelimelik. Quickly find top scoring words using given letters and board state. Available in English, French, German, Persian, Polish, Romanian, Spanish, and Turkish.';
|
|
15
15
|
|
|
16
16
|
const KEYWORDS = [
|
|
17
17
|
'Scrabble Solver',
|
|
@@ -21,6 +21,8 @@ const KEYWORDS = [
|
|
|
21
21
|
'Super Scrabble',
|
|
22
22
|
'Kelimelik',
|
|
23
23
|
'Letter League',
|
|
24
|
+
'Crossplay',
|
|
25
|
+
'NYT Crossplay',
|
|
24
26
|
'Literaki',
|
|
25
27
|
'Board',
|
|
26
28
|
'Open-source',
|