@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.
Files changed (95) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +7 -13
  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/176.js +4273 -214
  16. package/.next/server/middleware-build-manifest.js +1 -1
  17. package/.next/server/pages/404.html +2 -2
  18. package/.next/server/pages/404.js.nft.json +1 -1
  19. package/.next/server/pages/500.html +2 -2
  20. package/.next/server/pages/_app.js +296 -13
  21. package/.next/server/pages/_app.js.nft.json +1 -1
  22. package/.next/server/pages/_document.js.nft.json +1 -1
  23. package/.next/server/pages/api/solve.js +17 -0
  24. package/.next/server/pages/index.html +1 -9
  25. package/.next/server/pages/index.js +23 -16
  26. package/.next/server/pages/index.js.nft.json +1 -1
  27. package/.next/server/pages/index.json +1 -1
  28. package/.next/server/pages-manifest.json +1 -1
  29. package/.next/static/Cs23uxWG6AxS72F2yrjHu/_buildManifest.js +1 -0
  30. package/.next/static/chunks/pages/{404-67383848027ec49b.js → 404-8cab6d62fe4ead73.js} +1 -1
  31. package/.next/static/chunks/pages/_app-dcbbb823dc93a031.js +28 -0
  32. package/.next/static/chunks/pages/index-df1ff01aa82d2d4d.js +1 -0
  33. package/.next/static/css/bf2e969b88c4e3dd.css +2 -0
  34. package/.next/static/css/d1cc6b79b211b7b8.css +1 -0
  35. package/.next/trace +55 -55
  36. package/package.json +10 -9
  37. package/src/components/Badge/Badge.module.scss +1 -1
  38. package/src/components/Board/components/Cell/Cell.module.scss +32 -64
  39. package/src/components/Board/components/Cell/CellPure.tsx +15 -22
  40. package/src/components/Button/Button.module.scss +2 -2
  41. package/src/components/Checkbox/Checkbox.tsx +1 -4
  42. package/src/components/Dictionary/Dictionary.tsx +28 -30
  43. package/src/components/DictionaryInput/DictionaryInput.tsx +3 -0
  44. package/src/components/Key/Key.module.scss +1 -1
  45. package/src/components/LogoSplashScreen/LogoSplashScreen.module.scss +1 -1
  46. package/src/components/Modal/Modal.module.scss +4 -2
  47. package/src/components/Rack/Rack.module.scss +4 -0
  48. package/src/components/Radio/Radio.tsx +1 -4
  49. package/src/components/Results/Results.module.scss +2 -2
  50. package/src/components/SeoMessage/SeoMessage.tsx +19 -0
  51. package/src/components/SeoMessage/index.ts +1 -0
  52. package/src/components/Solver/components/EmptyState/EmptyState.module.scss +1 -1
  53. package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.module.scss +9 -2
  54. package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +2 -1
  55. package/src/components/Tile/Tile.module.scss +49 -11
  56. package/src/components/Tile/Tile.tsx +23 -8
  57. package/src/components/Tile/TilePure.tsx +27 -20
  58. package/src/components/Tooltip/Tooltip.module.scss +7 -7
  59. package/src/components/index.ts +1 -0
  60. package/src/i18n/de.json +1 -0
  61. package/src/i18n/en.json +1 -0
  62. package/src/i18n/es.json +1 -0
  63. package/src/i18n/fa.json +1 -0
  64. package/src/i18n/fr.json +1 -0
  65. package/src/i18n/pl.json +1 -0
  66. package/src/icons/Flag.svg +2 -2
  67. package/src/icons/FlagFill.svg +4 -0
  68. package/src/icons/Square.svg +4 -0
  69. package/src/icons/SquareFill.svg +4 -0
  70. package/src/icons/index.ts +3 -0
  71. package/src/modals/RemainingTilesModal/components/Character/Character.module.scss +1 -1
  72. package/src/modals/ResultsModal/ResultsModal.module.scss +1 -1
  73. package/src/modals/SettingsModal/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +1 -2
  74. package/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.tsx +1 -2
  75. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +14 -24
  76. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.tsx +1 -2
  77. package/src/pages/_app.tsx +9 -5
  78. package/src/pages/index.module.scss +1 -2
  79. package/src/pages/index.tsx +10 -8
  80. package/src/parameters/index.ts +10 -0
  81. package/src/state/slices/boardSlice.ts +5 -5
  82. package/src/styles/mixins.scss +4 -2
  83. package/src/styles/variables.scss +39 -32
  84. package/src/types/index.ts +1 -0
  85. package/.next/server/chunks/579.js +0 -3925
  86. package/.next/static/6RggBFm8kHrh-k1-CG3um/_buildManifest.js +0 -1
  87. package/.next/static/chunks/490-d29992f1c264d70e.js +0 -5
  88. package/.next/static/chunks/509-6ad4482d4351452c.js +0 -1
  89. package/.next/static/chunks/pages/_app-c58cfa832b76cc87.js +0 -24
  90. package/.next/static/chunks/pages/index-146039f501e49c08.js +0 -1
  91. package/.next/static/css/4482c4a0064d3807.css +0 -1
  92. package/.next/static/css/78e42ad01f580f64.css +0 -1
  93. package/.next/static/css/9d1013ec684361b9.css +0 -1
  94. package/src/components/Board/components/Cell/Button.tsx +0 -32
  95. /package/.next/static/{6RggBFm8kHrh-k1-CG3um → Cs23uxWG6AxS72F2yrjHu}/_ssgManifest.js +0 -0
@@ -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;
@@ -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(--box-shadow--focus--spread) transparent;
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(--box-shadow--focus--spread) var(--color--focus);
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--background: #f4f4f4;
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--light-blue: #7bb5e5;
40
- --color--light-blue--light: #b8d5ed;
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--orange: #fbc997;
48
- --color--pink: #f19393;
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--title: 'Lato', sans-serif;
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
  }
@@ -55,6 +55,7 @@ export type TranslationKey =
55
55
  | 'dictionary.empty-state.not-allowed'
56
56
  | 'dictionary.empty-state.uninitialized'
57
57
  | 'dictionary.input.placeholder'
58
+ | 'dictionary.input.title'
58
59
  | 'empty-state.error'
59
60
  | 'empty-state.info'
60
61
  | 'empty-state.success'