scrabble-solver 2.11.9 → 2.12.0

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 (56) hide show
  1. package/lerna.json +1 -1
  2. package/package.json +4 -4
  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 +4 -4
  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 +49 -37
  24. package/packages/scrabble-solver/.next/server/chunks/44.js +3 -3
  25. package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
  26. package/packages/scrabble-solver/.next/server/pages/404.html +1 -1
  27. package/packages/scrabble-solver/.next/server/pages/404.js.nft.json +1 -1
  28. package/packages/scrabble-solver/.next/server/pages/500.html +1 -1
  29. package/packages/scrabble-solver/.next/server/pages/_app.js +8 -0
  30. package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
  31. package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
  32. package/packages/scrabble-solver/.next/server/pages/index.html +1 -1
  33. package/packages/scrabble-solver/.next/server/pages/index.js +8 -0
  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/_app-bea4539a6b8042de.js +32 -0
  37. package/packages/scrabble-solver/.next/static/css/58053f9594647860.css +2 -0
  38. package/packages/scrabble-solver/.next/trace +52 -52
  39. package/packages/scrabble-solver/package-lock.json +245 -188
  40. package/packages/scrabble-solver/package.json +10 -8
  41. package/packages/scrabble-solver/src/components/Board/components/InputPrompt/InputPrompt.module.scss +1 -0
  42. package/packages/scrabble-solver/src/components/Results/Cell.tsx +4 -3
  43. package/packages/scrabble-solver/src/components/Results/Result.tsx +6 -2
  44. package/packages/scrabble-solver/src/components/Results/Results.module.scss +6 -0
  45. package/packages/scrabble-solver/src/styles/variables.scss +1 -0
  46. package/packages/solver/package-lock.json +2 -2
  47. package/packages/solver/package.json +5 -5
  48. package/packages/types/package.json +2 -2
  49. package/packages/word-definitions/package-lock.json +2 -2
  50. package/packages/word-definitions/package.json +2 -2
  51. package/packages/word-lists/package-lock.json +2 -2
  52. package/packages/word-lists/package.json +2 -2
  53. package/packages/scrabble-solver/.next/static/chunks/pages/_app-b0231bed954dd413.js +0 -28
  54. package/packages/scrabble-solver/.next/static/css/fcc46fec97b11afc.css +0 -2
  55. /package/packages/scrabble-solver/.next/static/{9oRWxnZ1xFLSs55FJtiYi → fsjQvvJ13WNxBdMioL4sc}/_buildManifest.js +0 -0
  56. /package/packages/scrabble-solver/.next/static/{9oRWxnZ1xFLSs55FJtiYi → fsjQvvJ13WNxBdMioL4sc}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/scrabble-solver",
3
- "version": "2.11.9",
3
+ "version": "2.12.0",
4
4
  "description": "Scrabble Solver 2 - App",
5
5
  "engines": {
6
6
  "node": ">=16"
@@ -31,13 +31,13 @@
31
31
  "@floating-ui/react": "^0.22.2",
32
32
  "@kamilmielnik/trie": "^2.0.1",
33
33
  "@reduxjs/toolkit": "^1.9.3",
34
- "@scrabble-solver/configs": "^2.11.9",
35
- "@scrabble-solver/constants": "^2.11.9",
36
- "@scrabble-solver/dictionaries": "^2.11.9",
37
- "@scrabble-solver/logger": "^2.11.9",
38
- "@scrabble-solver/solver": "^2.11.9",
39
- "@scrabble-solver/types": "^2.11.9",
40
- "@scrabble-solver/word-definitions": "^2.11.9",
34
+ "@scrabble-solver/configs": "^2.12.0",
35
+ "@scrabble-solver/constants": "^2.12.0",
36
+ "@scrabble-solver/dictionaries": "^2.12.0",
37
+ "@scrabble-solver/logger": "^2.12.0",
38
+ "@scrabble-solver/solver": "^2.12.0",
39
+ "@scrabble-solver/types": "^2.12.0",
40
+ "@scrabble-solver/word-definitions": "^2.12.0",
41
41
  "classnames": "^2.3.2",
42
42
  "include-media": "^2.0.0",
43
43
  "include-media-query-builder": "^1.1.0",
@@ -46,6 +46,7 @@
46
46
  "react": "^18.2.0",
47
47
  "react-cool-onclickoutside": "^1.7.0",
48
48
  "react-dom": "^18.2.0",
49
+ "react-highlight-words": "^0.20.0",
49
50
  "react-modal": "^3.16.1",
50
51
  "react-portal": "^4.2.2",
51
52
  "react-redux": "^8.0.5",
@@ -62,6 +63,7 @@
62
63
  "@types/classnames": "^2.3.0",
63
64
  "@types/react": "^18.0.31",
64
65
  "@types/react-dom": "^18.0.11",
66
+ "@types/react-highlight-words": "^0.16.4",
65
67
  "@types/react-modal": "^3.13.1",
66
68
  "@types/react-portal": "^4.0.4",
67
69
  "@types/react-redux": "^7.1.25",
@@ -28,6 +28,7 @@
28
28
  border: none;
29
29
  border-top: var(--border);
30
30
  border-bottom: var(--border);
31
+ border-radius: 0;
31
32
  }
32
33
 
33
34
  .insert {
@@ -1,5 +1,5 @@
1
1
  import classNames from 'classnames';
2
- import { FunctionComponent } from 'react';
2
+ import { FunctionComponent, ReactNode } from 'react';
3
3
 
4
4
  import { selectLocale, useTranslate, useTypedSelector } from 'state';
5
5
  import { TranslationKey } from 'types';
@@ -9,13 +9,14 @@ import { useTooltip } from '../Tooltip';
9
9
  import styles from './Results.module.scss';
10
10
 
11
11
  interface Props {
12
+ children?: ReactNode;
12
13
  className?: string;
13
14
  translationKey: TranslationKey;
14
15
  tooltip?: string | number;
15
16
  value: string | number;
16
17
  }
17
18
 
18
- const Cell: FunctionComponent<Props> = ({ className, translationKey, tooltip, value }) => {
19
+ const Cell: FunctionComponent<Props> = ({ children, className, translationKey, tooltip, value }) => {
19
20
  const translate = useTranslate();
20
21
  const locale = useTypedSelector(selectLocale);
21
22
  const formattedValue = value.toLocaleString(locale);
@@ -23,7 +24,7 @@ const Cell: FunctionComponent<Props> = ({ className, translationKey, tooltip, va
23
24
 
24
25
  return (
25
26
  <div className={classNames(styles.cell, className)} {...triggerProps}>
26
- {formattedValue}
27
+ {children || formattedValue}
27
28
  </div>
28
29
  );
29
30
  };
@@ -1,9 +1,10 @@
1
1
  import classNames from 'classnames';
2
2
  import { CSSProperties, FocusEventHandler, MouseEventHandler, ReactElement, useRef } from 'react';
3
+ import Highlighter from 'react-highlight-words';
3
4
 
4
5
  import { LOCALE_FEATURES } from 'i18n';
5
6
  import { noop } from 'lib';
6
- import { selectIsResultMatching, selectLocale, useTypedSelector } from 'state';
7
+ import { selectIsResultMatching, selectLocale, selectResultsQuery, useTypedSelector } from 'state';
7
8
  import { ResultColumn } from 'types';
8
9
 
9
10
  import Cell from './Cell';
@@ -30,6 +31,7 @@ const Result = ({ data, index, style }: Props): ReactElement => {
30
31
  const ref = useRef<HTMLButtonElement>(null);
31
32
  const columns = useColumns();
32
33
  const locale = useTypedSelector(selectLocale);
34
+ const query = useTypedSelector(selectResultsQuery);
33
35
  const { consonants, direction, separator, vowels } = LOCALE_FEATURES[locale];
34
36
  const result = results[index];
35
37
  const isMatching = useTypedSelector((state) => selectIsResultMatching(state, index));
@@ -60,7 +62,9 @@ const Result = ({ data, index, style }: Props): ReactElement => {
60
62
  >
61
63
  <span className={styles.resultContent}>
62
64
  {enabledColumns[ResultColumn.Word] && (
63
- <Cell className={styles.word} translationKey="common.word" value={result.word} />
65
+ <Cell className={styles.word} translationKey="common.word" value={result.word}>
66
+ <Highlighter highlightClassName={styles.highlight} searchWords={[query]} textToHighlight={result.word} />
67
+ </Cell>
64
68
  )}
65
69
 
66
70
  {enabledColumns[ResultColumn.TilesCount] && (
@@ -220,3 +220,9 @@ $row-padding-horizontal: calc(var(--spacing--m) + var(--spacing--s));
220
220
  border-bottom-left-radius: var(--border--radius);
221
221
  border-bottom-right-radius: var(--border--radius);
222
222
  }
223
+
224
+ .highlight {
225
+ background-color: var(--color--mark);
226
+ color: var(--color--foreground);
227
+ border-radius: var(--border--radius);
228
+ }
@@ -39,6 +39,7 @@ $easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
39
39
  --color--background--overlay: rgba(255, 255, 255, 0.65);
40
40
  --color--foreground: #222;
41
41
  --color--foreground--secondary: #444;
42
+ --color--mark: #ffff00;
42
43
  --color--error: hsl(0, 92%, 62%);
43
44
  --color--error--opposite: var(--color--white);
44
45
  --color--info: #1868ad;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/solver",
3
- "version": "2.11.9",
3
+ "version": "2.12.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/solver",
9
- "version": "2.11.9",
9
+ "version": "2.12.0",
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.9",
3
+ "version": "2.12.0",
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.9"
28
+ "@scrabble-solver/types": "^2.12.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@scrabble-solver/configs": "^2.11.9",
32
- "@scrabble-solver/constants": "^2.11.9",
33
- "@scrabble-solver/dictionaries": "^2.11.9"
31
+ "@scrabble-solver/configs": "^2.12.0",
32
+ "@scrabble-solver/constants": "^2.12.0",
33
+ "@scrabble-solver/dictionaries": "^2.12.0"
34
34
  },
35
35
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
36
36
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/types",
3
- "version": "2.11.9",
3
+ "version": "2.12.0",
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.9"
27
+ "@scrabble-solver/constants": "^2.12.0"
28
28
  },
29
29
  "gitHead": "1e2d1ad49a288d4a44196d8e3336740da132c637"
30
30
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@scrabble-solver/word-definitions",
3
- "version": "2.11.9",
3
+ "version": "2.12.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/word-definitions",
9
- "version": "2.11.9",
9
+ "version": "2.12.0",
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.9",
3
+ "version": "2.12.0",
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.9",
26
+ "@scrabble-solver/types": "^2.12.0",
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.9",
3
+ "version": "2.12.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@scrabble-solver/word-lists",
9
- "version": "2.11.9",
9
+ "version": "2.12.0",
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.9",
3
+ "version": "2.12.0",
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.9",
27
+ "@scrabble-solver/types": "^2.12.0",
28
28
  "cheerio": "^1.0.0-rc.12",
29
29
  "follow-redirects": "^1.15.2",
30
30
  "unzipper": "^0.10.11"