@scrabble-solver/scrabble-solver 2.10.7 → 2.10.8
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 +7 -13
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/eslint/.cache_8dgz12 +1 -1
- package/.next/cache/next-server.js.nft.json +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/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/176.js +4273 -214
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/pages/_app.js +296 -13
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/_document.js.nft.json +1 -1
- package/.next/server/pages/api/solve.js +17 -0
- package/.next/server/pages/index.html +1 -9
- package/.next/server/pages/index.js +23 -16
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/index.json +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/Cs23uxWG6AxS72F2yrjHu/_buildManifest.js +1 -0
- package/.next/static/chunks/pages/{404-67383848027ec49b.js → 404-8cab6d62fe4ead73.js} +1 -1
- package/.next/static/chunks/pages/_app-dcbbb823dc93a031.js +28 -0
- package/.next/static/chunks/pages/index-df1ff01aa82d2d4d.js +1 -0
- package/.next/static/css/bf2e969b88c4e3dd.css +2 -0
- package/.next/static/css/d1cc6b79b211b7b8.css +1 -0
- package/.next/trace +55 -55
- package/package.json +10 -9
- package/src/components/Badge/Badge.module.scss +1 -1
- package/src/components/Board/components/Cell/Cell.module.scss +32 -64
- package/src/components/Board/components/Cell/CellPure.tsx +15 -22
- package/src/components/Button/Button.module.scss +2 -2
- package/src/components/Checkbox/Checkbox.tsx +1 -4
- package/src/components/Dictionary/Dictionary.tsx +28 -30
- package/src/components/DictionaryInput/DictionaryInput.tsx +3 -0
- package/src/components/Key/Key.module.scss +1 -1
- package/src/components/LogoSplashScreen/LogoSplashScreen.module.scss +1 -1
- package/src/components/Modal/Modal.module.scss +4 -2
- package/src/components/Rack/Rack.module.scss +4 -0
- package/src/components/Radio/Radio.tsx +1 -4
- package/src/components/Results/Results.module.scss +2 -2
- package/src/components/SeoMessage/SeoMessage.tsx +19 -0
- package/src/components/SeoMessage/index.ts +1 -0
- package/src/components/Solver/components/EmptyState/EmptyState.module.scss +1 -1
- package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss +9 -2
- package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +2 -1
- package/src/components/Tile/Tile.module.scss +49 -11
- package/src/components/Tile/Tile.tsx +23 -8
- package/src/components/Tile/TilePure.tsx +27 -20
- package/src/components/Tooltip/Tooltip.module.scss +7 -7
- package/src/components/index.ts +1 -0
- package/src/i18n/de.json +1 -0
- package/src/i18n/en.json +1 -0
- package/src/i18n/es.json +1 -0
- package/src/i18n/fa.json +1 -0
- package/src/i18n/fr.json +1 -0
- package/src/i18n/pl.json +1 -0
- package/src/icons/Flag.svg +2 -2
- package/src/icons/FlagFill.svg +4 -0
- package/src/icons/Square.svg +4 -0
- package/src/icons/SquareFill.svg +4 -0
- package/src/icons/index.ts +3 -0
- package/src/modals/RemainingTilesModal/components/Character/Character.module.scss +1 -1
- package/src/modals/ResultsModal/ResultsModal.module.scss +1 -1
- package/src/modals/SettingsModal/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +1 -2
- package/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.tsx +1 -2
- package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +14 -24
- package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.tsx +1 -2
- package/src/pages/_app.tsx +9 -5
- package/src/pages/index.module.scss +1 -2
- package/src/pages/index.tsx +10 -8
- package/src/parameters/index.ts +10 -0
- package/src/state/slices/boardSlice.ts +5 -5
- package/src/styles/mixins.scss +4 -2
- package/src/styles/variables.scss +39 -32
- package/src/types/index.ts +1 -0
- package/.next/server/chunks/579.js +0 -3925
- package/.next/static/6RggBFm8kHrh-k1-CG3um/_buildManifest.js +0 -1
- package/.next/static/chunks/490-d29992f1c264d70e.js +0 -5
- package/.next/static/chunks/509-6ad4482d4351452c.js +0 -1
- package/.next/static/chunks/pages/_app-c58cfa832b76cc87.js +0 -24
- package/.next/static/chunks/pages/index-146039f501e49c08.js +0 -1
- package/.next/static/css/4482c4a0064d3807.css +0 -1
- package/.next/static/css/78e42ad01f580f64.css +0 -1
- package/.next/static/css/9d1013ec684361b9.css +0 -1
- package/src/components/Board/components/Cell/Button.tsx +0 -32
- /package/.next/static/{6RggBFm8kHrh-k1-CG3um → Cs23uxWG6AxS72F2yrjHu}/_ssgManifest.js +0 -0
package/src/parameters/index.ts
CHANGED
|
@@ -6,6 +6,8 @@ export const BREAKPOINTS = {
|
|
|
6
6
|
xl: 1400,
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
+
export const EASE_OUT_CUBIC = 'cubic-bezier(0.33, 1, 0.68, 1)'; // https://easings.net/#easeOutCubic
|
|
10
|
+
|
|
9
11
|
export const GITHUB_PROJECT_URL = 'https://github.com/kamilmielnik/scrabble-solver';
|
|
10
12
|
|
|
11
13
|
export const INITIALIZATION_DURATION = 100;
|
|
@@ -72,3 +74,11 @@ export const REMAINING_TILES_TILE_SIZE = 50;
|
|
|
72
74
|
export const RESULTS_HEADER_HEIGHT = 34;
|
|
73
75
|
export const RESULTS_ITEM_HEIGHT = 40;
|
|
74
76
|
export const RESULTS_INPUT_HEIGHT = 40;
|
|
77
|
+
|
|
78
|
+
export const TILE_APPEAR_DURATION = 200;
|
|
79
|
+
|
|
80
|
+
export const TILE_APPEAR_KEYFRAMES = [
|
|
81
|
+
{ transform: 'translateY(0)', zIndex: 2 },
|
|
82
|
+
{ transform: 'translateY(10%)', offset: 0.5, zIndex: 2 },
|
|
83
|
+
{ transform: 'translateY(0)', zIndex: 1 },
|
|
84
|
+
];
|
|
@@ -19,6 +19,11 @@ const boardSlice = createSlice({
|
|
|
19
19
|
return newBoard;
|
|
20
20
|
},
|
|
21
21
|
|
|
22
|
+
change: (_state, action: PayloadAction<Board>) => {
|
|
23
|
+
const board = action.payload;
|
|
24
|
+
return board;
|
|
25
|
+
},
|
|
26
|
+
|
|
22
27
|
changeCellValue: (state, action: PayloadAction<{ value: string; x: number; y: number }>) => {
|
|
23
28
|
const newBoard = state.clone();
|
|
24
29
|
const { value, x, y } = action.payload;
|
|
@@ -32,11 +37,6 @@ const boardSlice = createSlice({
|
|
|
32
37
|
return newBoard;
|
|
33
38
|
},
|
|
34
39
|
|
|
35
|
-
change: (_state, action: PayloadAction<Board>) => {
|
|
36
|
-
const board = action.payload;
|
|
37
|
-
return board;
|
|
38
|
-
},
|
|
39
|
-
|
|
40
40
|
init: (_state, action: PayloadAction<Board>) => {
|
|
41
41
|
const board = action.payload;
|
|
42
42
|
return board;
|
package/src/styles/mixins.scss
CHANGED
|
@@ -16,6 +16,8 @@ $media-expressions: (
|
|
|
16
16
|
* It does not work when applied on input elements.
|
|
17
17
|
*/
|
|
18
18
|
@mixin focus-effect {
|
|
19
|
+
--focus-effect--size: 6px;
|
|
20
|
+
|
|
19
21
|
position: relative;
|
|
20
22
|
|
|
21
23
|
&::after {
|
|
@@ -28,7 +30,7 @@ $media-expressions: (
|
|
|
28
30
|
z-index: 1;
|
|
29
31
|
transition: var(--transition);
|
|
30
32
|
border-radius: var(--border--radius);
|
|
31
|
-
box-shadow: 0 0 0 var(--
|
|
33
|
+
box-shadow: 0 0 0 var(--focus-effect--size) transparent;
|
|
32
34
|
pointer-events: none;
|
|
33
35
|
}
|
|
34
36
|
|
|
@@ -39,7 +41,7 @@ $media-expressions: (
|
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
&::after {
|
|
42
|
-
box-shadow: 0 0 0 var(--
|
|
44
|
+
box-shadow: 0 0 0 var(--focus-effect--size) var(--color--focus);
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
}
|
|
@@ -1,55 +1,62 @@
|
|
|
1
1
|
$easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
|
+
--border: var(--border--width) solid var(--border--color);
|
|
4
5
|
--border--color: #cdcdcd;
|
|
5
6
|
--border--color--light: #d9d9d9;
|
|
6
7
|
--border--radius: 5px;
|
|
7
8
|
--border--width: 1px;
|
|
8
|
-
--border: var(--border--width) solid var(--border--color);
|
|
9
9
|
|
|
10
|
+
--box-shadow: 0 0 var(--box-shadow--blur) var(--box-shadow--spread) var(--box-shadow--color);
|
|
10
11
|
--box-shadow--blur: 10px;
|
|
12
|
+
--box-shadow--color: rgba(0, 0, 0, 0.15);
|
|
11
13
|
--box-shadow--spread: 1px;
|
|
12
|
-
--box-shadow--offset: 1px;
|
|
13
|
-
--box-shadow--offset--negative: calc(-1 * var(--box-shadow--offset));
|
|
14
|
-
--box-shadow--color: #{rgba(#000, 0.15)};
|
|
15
|
-
--box-shadow: 0 0 var(--box-shadow--blur) var(--box-shadow--spread) var(--box-shadow--color);
|
|
16
|
-
--box-shadow--focus--spread: 6px;
|
|
17
14
|
--box-shadow--null: 0 0 var(--box-shadow--blur) var(--box-shadow--spread) transparent;
|
|
18
15
|
--box-shadow--error: 0 0 var(--box-shadow--blur) var(--box-shadow--spread) var(--color--error);
|
|
19
16
|
|
|
20
|
-
--color--
|
|
21
|
-
--color--background--secondary: #111;
|
|
22
|
-
--color--background--overlay: rgba(255, 255, 255, 0.65);
|
|
23
|
-
--color--error: hsl(0deg, 92%, 62%);
|
|
24
|
-
--color--success: #00a900;
|
|
25
|
-
--color--info: var(--color--dark-blue);
|
|
26
|
-
--color--warning: hsl(35deg, 90%, 60%);
|
|
27
|
-
--color--focus: #{rgba(#268fff, 0.5)};
|
|
28
|
-
--color--foreground: #222;
|
|
29
|
-
--color--foreground--secondary: #444;
|
|
30
|
-
--color--inactive: #cdcdcd;
|
|
31
|
-
--color--primary: var(--color--violet);
|
|
32
|
-
|
|
33
|
-
--color--yellow: #efe3ae;
|
|
34
|
-
--color--yellow--light: #f7f1d6;
|
|
35
|
-
--color--green: #bae3ba;
|
|
36
|
-
--color--green--light: #d6ebd6;
|
|
17
|
+
--color--white: #ffffff;
|
|
37
18
|
--color--blue: #c7d8f9;
|
|
38
19
|
--color--blue--light: #dde4f6;
|
|
39
|
-
--color--
|
|
40
|
-
--color--
|
|
41
|
-
--color--dark-blue: #1868ad;
|
|
42
|
-
--color--dark-blue--light: #86aed1;
|
|
20
|
+
--color--green: #bae3ba;
|
|
21
|
+
--color--green--light: #d6ebd6;
|
|
43
22
|
--color--red: #f7c2aa;
|
|
44
23
|
--color--red--light: #fbe0d4;
|
|
45
24
|
--color--violet: #78387f;
|
|
46
25
|
--color--violet--light: #b284b8;
|
|
47
|
-
--color--
|
|
48
|
-
--color--
|
|
26
|
+
--color--yellow: #efe3ae;
|
|
27
|
+
--color--yellow--light: #f7f1d6;
|
|
28
|
+
|
|
29
|
+
--color--focus: #{rgba(#268fff, 0.5)};
|
|
30
|
+
--color--inactive: #cdcdcd;
|
|
31
|
+
--color--background: #f4f4f4;
|
|
32
|
+
--color--background--element: var(--color--white);
|
|
33
|
+
--color--background--overlay: rgba(255, 255, 255, 0.65);
|
|
34
|
+
--color--foreground: #222;
|
|
35
|
+
--color--foreground--secondary: #444;
|
|
36
|
+
--color--error: hsl(0, 92%, 62%);
|
|
37
|
+
--color--error--opposite: var(--color--white);
|
|
38
|
+
--color--info: #1868ad;
|
|
39
|
+
--color--success: #00a900;
|
|
40
|
+
--color--warning: hsl(35, 90%, 60%);
|
|
41
|
+
--color--primary: var(--color--violet);
|
|
42
|
+
--color--primary--opposite: var(--color--white);
|
|
43
|
+
|
|
44
|
+
--color--bonus--character--1: var(--color--yellow--light);
|
|
45
|
+
--color--bonus--character--2: var(--color--green--light);
|
|
46
|
+
--color--bonus--character--3: var(--color--blue--light);
|
|
47
|
+
--color--bonus--character--5: var(--color--red--light);
|
|
48
|
+
--color--bonus--character-multiplier--2: #b8d5ed;
|
|
49
|
+
--color--bonus--character-multiplier--3: #86aed1;
|
|
50
|
+
--color--bonus--start: var(--color--violet--light);
|
|
51
|
+
--color--bonus--word-multiplier--2: #fbc997;
|
|
52
|
+
--color--bonus--word-multiplier--3: #f19393;
|
|
53
|
+
--color--tooltip--background: #222;
|
|
54
|
+
--color--tooltip--foreground: var(--color--white);
|
|
49
55
|
|
|
50
56
|
--font--family: 'Open Sans', sans-serif;
|
|
51
|
-
--font--family--
|
|
57
|
+
--font--family--arabic: 'Vazirmatn', sans-serif;
|
|
52
58
|
--font--family--monospace: 'Roboto Mono', monospace;
|
|
59
|
+
--font--family--title: 'Lato', sans-serif;
|
|
53
60
|
--font--size--h1: 30px;
|
|
54
61
|
--font--size--h2: 22px;
|
|
55
62
|
--font--size--h3: 18px;
|
|
@@ -70,9 +77,11 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
|
|
|
70
77
|
--transition--duration--long: 250ms;
|
|
71
78
|
--transition--easing: #{$easeOutSine};
|
|
72
79
|
--transition: all var(--transition--duration) var(--transition--easing);
|
|
80
|
+
--transition--long: all var(--transition--duration--long) var(--transition--easing);
|
|
73
81
|
|
|
74
82
|
--z-index--modal: 100;
|
|
75
83
|
--z-index--close-button: 101;
|
|
84
|
+
--z-index--tooltip: 102;
|
|
76
85
|
|
|
77
86
|
--dictionary--height: 260px;
|
|
78
87
|
--modal--width: 370px;
|
|
@@ -80,6 +89,4 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
|
|
|
80
89
|
--square-button--size: 32px;
|
|
81
90
|
--button--icon--size: 24px;
|
|
82
91
|
--text-input--height: 40px;
|
|
83
|
-
--tooltip--background: #222;
|
|
84
|
-
--tooltip--foreground: #fff;
|
|
85
92
|
}
|
package/src/types/index.ts
CHANGED