@scrabble-solver/scrabble-solver 2.11.4 → 2.11.6
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 -7
- 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/export-marker.json +1 -1
- 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/131.js +1 -1
- package/.next/server/chunks/277.js +851 -1179
- package/.next/server/chunks/636.js +286 -0
- package/.next/server/chunks/675.js +550 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -5
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/_app.js +73 -9
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/_document.js.nft.json +1 -1
- package/.next/server/pages/_error.js +1 -280
- package/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/server/pages/api/solve.js +22 -2
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/index.js +381 -314
- 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/Jmk00rVXCbdjFgP77tKXQ/_buildManifest.js +1 -0
- package/.next/static/chunks/pages/{404-448ba28510855455.js → 404-8176f4acd0cfeb42.js} +1 -1
- package/.next/static/chunks/pages/_app-b4fa92112b8f0385.js +28 -0
- package/.next/static/chunks/pages/index-ccd762f8f5028729.js +1 -0
- package/.next/static/css/1cd302e7648d209c.css +2 -0
- package/.next/static/css/34adfcf12a7d9bb6.css +1 -0
- package/.next/trace +50 -53
- package/next.config.js +1 -0
- package/package.json +12 -13
- package/src/@types/svg.d.ts +1 -1
- package/src/components/Board/Board.tsx +48 -44
- package/src/components/Board/components/Actions/Actions.tsx +4 -2
- package/src/components/Board/components/Cell/Cell.module.scss +59 -5
- package/src/components/Board/hooks/useGrid.ts +5 -3
- package/src/components/Button/Button.module.scss +1 -1
- package/src/components/Dictionary/Dictionary.module.scss +0 -1
- package/src/components/EmptyState/EmptyState.module.scss +0 -1
- package/src/components/Key/Key.module.scss +1 -1
- package/src/components/Loading/Loading.module.scss +1 -1
- package/src/components/Loading/Loading.tsx +1 -1
- package/src/components/Logo/Logo.tsx +10 -12
- package/src/components/Logo/LogoBlueprint.tsx +21 -0
- package/src/components/Logo/index.ts +1 -1
- package/src/components/Modal/Modal.module.scss +1 -6
- package/src/components/Modal/Modal.tsx +15 -8
- package/src/components/NavButtons/NavButtons.tsx +2 -2
- package/src/components/PlainTiles/PlainTiles.tsx +0 -10
- package/src/components/PlainTiles/Tile.tsx +1 -4
- package/src/components/Rack/Rack.module.scss +59 -0
- package/src/components/Results/HeaderButton.tsx +6 -6
- package/src/components/Results/Results.module.scss +3 -1
- package/src/components/Results/Results.tsx +7 -7
- package/src/components/Results/useColumns.ts +2 -5
- package/src/components/Solver/Solver.tsx +6 -23
- package/src/components/Tile/Tile.module.scss +2 -1
- package/src/components/Tile/Tile.tsx +8 -4
- package/src/components/index.ts +0 -5
- package/src/hooks/index.ts +6 -0
- package/src/hooks/useAppLayout.ts +62 -12
- package/src/hooks/useDirection.ts +2 -2
- package/src/hooks/useEffectOnce.ts +5 -0
- package/src/hooks/useIsTouchDevice.ts +1 -1
- package/src/hooks/useLanguage.ts +2 -2
- package/src/hooks/useLatest.ts +13 -0
- package/src/hooks/useLocalStorage.ts +51 -0
- package/src/hooks/useMedia.ts +36 -0
- package/src/hooks/useMediaQueries.ts +13 -0
- package/src/hooks/useMediaQuery.ts +2 -1
- package/src/hooks/useOnWindowResize.ts +13 -0
- package/src/hooks/useViewportSize.ts +19 -0
- package/src/i18n/constants.ts +14 -22
- package/src/lib/arrayEquals.ts +5 -0
- package/src/lib/index.ts +1 -0
- package/src/lib/zipCharactersAndTiles.ts +3 -1
- package/src/modals/DictionaryModal/DictionaryModal.tsx +2 -2
- package/src/modals/KeyMapModal/KeyMapModal.tsx +2 -2
- package/src/modals/KeyMapModal/components/Mapping/Mapping.module.scss +0 -1
- package/src/modals/KeyMapModal/keys.tsx +0 -2
- package/src/modals/MenuModal/MenuModal.module.scss +28 -4
- package/src/modals/MenuModal/MenuModal.tsx +4 -4
- package/src/modals/RemainingTilesModal/RemainingTilesModal.tsx +2 -2
- package/src/modals/ResultsModal/ResultsModal.module.scss +1 -5
- package/src/modals/ResultsModal/ResultsModal.tsx +10 -2
- package/src/modals/SettingsModal/SettingsModal.tsx +2 -2
- package/src/modals/SettingsModal/components/AutoGroupTilesSetting/lib.ts +3 -1
- package/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.module.scss +0 -1
- package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +1 -6
- package/src/modals/WordsModal/WordsModal.tsx +2 -2
- package/src/pages/index.module.scss +3 -21
- package/src/pages/index.tsx +51 -69
- package/src/parameters/index.ts +29 -2
- package/src/state/localStorage.ts +13 -2
- package/src/state/sagas.ts +16 -8
- package/src/state/slices/boardInitialState.ts +5 -1
- package/src/state/slices/boardSlice.ts +2 -2
- package/src/state/slices/rackInitialState.ts +8 -2
- package/src/state/slices/rackSlice.ts +16 -13
- package/src/state/slices/settingsInitialState.ts +9 -4
- package/src/state/slices/settingsSlice.ts +3 -1
- package/src/styles/animations.scss +0 -20
- package/src/styles/global.scss +4 -15
- package/src/styles/mixins.scss +0 -60
- package/src/styles/variables.scss +14 -5
- package/src/types/index.ts +4 -0
- package/.next/static/MvHZRF4XuJ7g8LLLRkf8U/_buildManifest.js +0 -1
- package/.next/static/chunks/pages/_app-66d80a5594aab8dc.js +0 -28
- package/.next/static/chunks/pages/index-0858deea02b2a417.js +0 -1
- package/.next/static/css/885da289cec275b3.css +0 -1
- package/.next/static/css/ea1c8134fe9a143e.css +0 -2
- package/src/components/LogoSplashScreen/LogoSplashScreen.module.scss +0 -65
- package/src/components/LogoSplashScreen/LogoSplashScreen.tsx +0 -31
- package/src/components/LogoSplashScreen/index.ts +0 -1
- package/src/components/Sizer/Sizer.module.scss +0 -10
- package/src/components/Sizer/Sizer.tsx +0 -10
- package/src/components/Sizer/index.ts +0 -1
- package/src/components/SplashScreen/SplashScreen.module.scss +0 -14
- package/src/components/SplashScreen/SplashScreen.tsx +0 -19
- package/src/components/SplashScreen/index.ts +0 -1
- package/src/components/SvgFontCss/SvgFontCss.tsx +0 -14
- package/src/components/SvgFontCss/createCss.ts +0 -11
- package/src/components/SvgFontCss/createStyle.ts +0 -9
- package/src/components/SvgFontCss/createSvg.ts +0 -10
- package/src/components/SvgFontCss/index.ts +0 -1
- package/src/components/SvgFontFix/SvgFontFix.module.scss +0 -5
- package/src/components/SvgFontFix/SvgFontFix.tsx +0 -21
- package/src/components/SvgFontFix/index.ts +0 -1
- package/src/hooks/useLocalStorage/index.ts +0 -1
- package/src/hooks/useLocalStorage/useLocalStorage.ts +0 -13
- package/src/hooks/useLocalStorage/useLocalStorageBoard.ts +0 -29
- package/src/hooks/useLocalStorage/useLocalStorageConfigId.ts +0 -29
- package/src/hooks/useLocalStorage/useLocalStorageLocale.ts +0 -32
- package/src/hooks/useLocalStorage/useLocalStorageRack.ts +0 -29
- /package/.next/static/{MvHZRF4XuJ7g8LLLRkf8U → Jmk00rVXCbdjFgP77tKXQ}/_ssgManifest.js +0 -0
- /package/{src/components/Logo/Logo.svg → public/logo.svg} +0 -0
|
@@ -5,121 +5,6 @@ exports.id = 820;
|
|
|
5
5
|
exports.ids = [820];
|
|
6
6
|
exports.modules = {
|
|
7
7
|
|
|
8
|
-
/***/ 6495:
|
|
9
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
10
|
-
|
|
11
|
-
var __webpack_unused_export__;
|
|
12
|
-
|
|
13
|
-
__webpack_unused_export__ = ({
|
|
14
|
-
value: true
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(exports, "Z", ({
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function() {
|
|
19
|
-
return _extends;
|
|
20
|
-
}
|
|
21
|
-
}));
|
|
22
|
-
function extends_() {
|
|
23
|
-
extends_ = Object.assign || function(target) {
|
|
24
|
-
for(var i = 1; i < arguments.length; i++){
|
|
25
|
-
var source = arguments[i];
|
|
26
|
-
for(var key in source){
|
|
27
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
28
|
-
target[key] = source[key];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return target;
|
|
33
|
-
};
|
|
34
|
-
return extends_.apply(this, arguments);
|
|
35
|
-
}
|
|
36
|
-
function _extends() {
|
|
37
|
-
return extends_.apply(this, arguments);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/***/ }),
|
|
42
|
-
|
|
43
|
-
/***/ 92648:
|
|
44
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
45
|
-
|
|
46
|
-
var __webpack_unused_export__;
|
|
47
|
-
|
|
48
|
-
__webpack_unused_export__ = ({
|
|
49
|
-
value: true
|
|
50
|
-
});
|
|
51
|
-
Object.defineProperty(exports, "Z", ({
|
|
52
|
-
enumerable: true,
|
|
53
|
-
get: function() {
|
|
54
|
-
return _interopRequireDefault;
|
|
55
|
-
}
|
|
56
|
-
}));
|
|
57
|
-
function _interopRequireDefault(obj) {
|
|
58
|
-
return obj && obj.__esModule ? obj : {
|
|
59
|
-
default: obj
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
/***/ }),
|
|
65
|
-
|
|
66
|
-
/***/ 91598:
|
|
67
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
68
|
-
|
|
69
|
-
var __webpack_unused_export__;
|
|
70
|
-
|
|
71
|
-
__webpack_unused_export__ = ({
|
|
72
|
-
value: true
|
|
73
|
-
});
|
|
74
|
-
Object.defineProperty(exports, "Z", ({
|
|
75
|
-
enumerable: true,
|
|
76
|
-
get: function() {
|
|
77
|
-
return _interopRequireWildcard;
|
|
78
|
-
}
|
|
79
|
-
}));
|
|
80
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
81
|
-
if (typeof WeakMap !== "function") return null;
|
|
82
|
-
var cacheBabelInterop = new WeakMap();
|
|
83
|
-
var cacheNodeInterop = new WeakMap();
|
|
84
|
-
return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
|
|
85
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
86
|
-
})(nodeInterop);
|
|
87
|
-
}
|
|
88
|
-
function _interopRequireWildcard(obj, nodeInterop) {
|
|
89
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
90
|
-
return obj;
|
|
91
|
-
}
|
|
92
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
93
|
-
return {
|
|
94
|
-
default: obj
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
98
|
-
if (cache && cache.has(obj)) {
|
|
99
|
-
return cache.get(obj);
|
|
100
|
-
}
|
|
101
|
-
var newObj = {};
|
|
102
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
103
|
-
for(var key in obj){
|
|
104
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
105
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
106
|
-
if (desc && (desc.get || desc.set)) {
|
|
107
|
-
Object.defineProperty(newObj, key, desc);
|
|
108
|
-
} else {
|
|
109
|
-
newObj[key] = obj[key];
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
newObj.default = obj;
|
|
114
|
-
if (cache) {
|
|
115
|
-
cache.set(obj, newObj);
|
|
116
|
-
}
|
|
117
|
-
return newObj;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
/***/ }),
|
|
122
|
-
|
|
123
8
|
/***/ 43499:
|
|
124
9
|
/***/ ((module, exports, __webpack_require__) => {
|
|
125
10
|
|
|
@@ -224,170 +109,6 @@ if ((typeof exports.default === "function" || typeof exports.default === "object
|
|
|
224
109
|
} //# sourceMappingURL=_error.js.map
|
|
225
110
|
|
|
226
111
|
|
|
227
|
-
/***/ }),
|
|
228
|
-
|
|
229
|
-
/***/ 42636:
|
|
230
|
-
/***/ ((module, exports, __webpack_require__) => {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
"use client";
|
|
234
|
-
Object.defineProperty(exports, "__esModule", ({
|
|
235
|
-
value: true
|
|
236
|
-
}));
|
|
237
|
-
exports.defaultHead = defaultHead;
|
|
238
|
-
exports["default"] = void 0;
|
|
239
|
-
var _extends = (__webpack_require__(6495)/* ["default"] */ .Z);
|
|
240
|
-
var _interop_require_default = (__webpack_require__(92648)/* ["default"] */ .Z);
|
|
241
|
-
var _interop_require_wildcard = (__webpack_require__(91598)/* ["default"] */ .Z);
|
|
242
|
-
var _react = _interop_require_wildcard(__webpack_require__(16689));
|
|
243
|
-
var _sideEffect = _interop_require_default(__webpack_require__(82470));
|
|
244
|
-
var _ampContext = __webpack_require__(53918);
|
|
245
|
-
var _headManagerContext = __webpack_require__(92796);
|
|
246
|
-
var _ampMode = __webpack_require__(45732);
|
|
247
|
-
var _warnOnce = __webpack_require__(40618);
|
|
248
|
-
function defaultHead(inAmpMode = false) {
|
|
249
|
-
const head = [
|
|
250
|
-
/*#__PURE__*/ _react.default.createElement("meta", {
|
|
251
|
-
charSet: "utf-8"
|
|
252
|
-
})
|
|
253
|
-
];
|
|
254
|
-
if (!inAmpMode) {
|
|
255
|
-
head.push(/*#__PURE__*/ _react.default.createElement("meta", {
|
|
256
|
-
name: "viewport",
|
|
257
|
-
content: "width=device-width"
|
|
258
|
-
}));
|
|
259
|
-
}
|
|
260
|
-
return head;
|
|
261
|
-
}
|
|
262
|
-
function onlyReactElement(list, child) {
|
|
263
|
-
// React children can be "string" or "number" in this case we ignore them for backwards compat
|
|
264
|
-
if (typeof child === "string" || typeof child === "number") {
|
|
265
|
-
return list;
|
|
266
|
-
}
|
|
267
|
-
// Adds support for React.Fragment
|
|
268
|
-
if (child.type === _react.default.Fragment) {
|
|
269
|
-
return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{
|
|
270
|
-
if (typeof fragmentChild === "string" || typeof fragmentChild === "number") {
|
|
271
|
-
return fragmentList;
|
|
272
|
-
}
|
|
273
|
-
return fragmentList.concat(fragmentChild);
|
|
274
|
-
}, []));
|
|
275
|
-
}
|
|
276
|
-
return list.concat(child);
|
|
277
|
-
}
|
|
278
|
-
const METATYPES = [
|
|
279
|
-
"name",
|
|
280
|
-
"httpEquiv",
|
|
281
|
-
"charSet",
|
|
282
|
-
"itemProp"
|
|
283
|
-
];
|
|
284
|
-
/*
|
|
285
|
-
returns a function for filtering head child elements
|
|
286
|
-
which shouldn't be duplicated, like <title/>
|
|
287
|
-
Also adds support for deduplicated `key` properties
|
|
288
|
-
*/ function unique() {
|
|
289
|
-
const keys = new Set();
|
|
290
|
-
const tags = new Set();
|
|
291
|
-
const metaTypes = new Set();
|
|
292
|
-
const metaCategories = {};
|
|
293
|
-
return (h)=>{
|
|
294
|
-
let isUnique = true;
|
|
295
|
-
let hasKey = false;
|
|
296
|
-
if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
|
|
297
|
-
hasKey = true;
|
|
298
|
-
const key = h.key.slice(h.key.indexOf("$") + 1);
|
|
299
|
-
if (keys.has(key)) {
|
|
300
|
-
isUnique = false;
|
|
301
|
-
} else {
|
|
302
|
-
keys.add(key);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
// eslint-disable-next-line default-case
|
|
306
|
-
switch(h.type){
|
|
307
|
-
case "title":
|
|
308
|
-
case "base":
|
|
309
|
-
if (tags.has(h.type)) {
|
|
310
|
-
isUnique = false;
|
|
311
|
-
} else {
|
|
312
|
-
tags.add(h.type);
|
|
313
|
-
}
|
|
314
|
-
break;
|
|
315
|
-
case "meta":
|
|
316
|
-
for(let i = 0, len = METATYPES.length; i < len; i++){
|
|
317
|
-
const metatype = METATYPES[i];
|
|
318
|
-
if (!h.props.hasOwnProperty(metatype)) continue;
|
|
319
|
-
if (metatype === "charSet") {
|
|
320
|
-
if (metaTypes.has(metatype)) {
|
|
321
|
-
isUnique = false;
|
|
322
|
-
} else {
|
|
323
|
-
metaTypes.add(metatype);
|
|
324
|
-
}
|
|
325
|
-
} else {
|
|
326
|
-
const category = h.props[metatype];
|
|
327
|
-
const categories = metaCategories[metatype] || new Set();
|
|
328
|
-
if ((metatype !== "name" || !hasKey) && categories.has(category)) {
|
|
329
|
-
isUnique = false;
|
|
330
|
-
} else {
|
|
331
|
-
categories.add(category);
|
|
332
|
-
metaCategories[metatype] = categories;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
break;
|
|
337
|
-
}
|
|
338
|
-
return isUnique;
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
*
|
|
343
|
-
* @param headChildrenElements List of children of <Head>
|
|
344
|
-
*/ function reduceComponents(headChildrenElements, props) {
|
|
345
|
-
const { inAmpMode } = props;
|
|
346
|
-
return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{
|
|
347
|
-
const key = c.key || i;
|
|
348
|
-
if ( true && !inAmpMode) {
|
|
349
|
-
if (c.type === "link" && c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
|
|
350
|
-
[
|
|
351
|
-
"https://fonts.googleapis.com/css",
|
|
352
|
-
"https://use.typekit.net/"
|
|
353
|
-
].some((url)=>c.props["href"].startsWith(url))) {
|
|
354
|
-
const newProps = _extends({}, c.props || {});
|
|
355
|
-
newProps["data-href"] = newProps["href"];
|
|
356
|
-
newProps["href"] = undefined;
|
|
357
|
-
// Add this attribute to make it easy to identify optimized tags
|
|
358
|
-
newProps["data-optimized-fonts"] = true;
|
|
359
|
-
return /*#__PURE__*/ _react.default.cloneElement(c, newProps);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
if (false) {}
|
|
363
|
-
return /*#__PURE__*/ _react.default.cloneElement(c, {
|
|
364
|
-
key
|
|
365
|
-
});
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
/**
|
|
369
|
-
* This component injects elements to `<head>` of your page.
|
|
370
|
-
* To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
|
|
371
|
-
*/ function Head({ children }) {
|
|
372
|
-
const ampState = (0, _react).useContext(_ampContext.AmpStateContext);
|
|
373
|
-
const headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);
|
|
374
|
-
return /*#__PURE__*/ _react.default.createElement(_sideEffect.default, {
|
|
375
|
-
reduceComponentsToState: reduceComponents,
|
|
376
|
-
headManager: headManager,
|
|
377
|
-
inAmpMode: (0, _ampMode).isInAmpMode(ampState)
|
|
378
|
-
}, children);
|
|
379
|
-
}
|
|
380
|
-
var _default = Head;
|
|
381
|
-
exports["default"] = _default;
|
|
382
|
-
if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") {
|
|
383
|
-
Object.defineProperty(exports.default, "__esModule", {
|
|
384
|
-
value: true
|
|
385
|
-
});
|
|
386
|
-
Object.assign(exports.default, exports);
|
|
387
|
-
module.exports = exports.default;
|
|
388
|
-
} //# sourceMappingURL=head.js.map
|
|
389
|
-
|
|
390
|
-
|
|
391
112
|
/***/ }),
|
|
392
113
|
|
|
393
114
|
/***/ 53918:
|
|
@@ -439,7 +160,7 @@ module.exports = require("react");
|
|
|
439
160
|
var __webpack_require__ = require("../webpack-runtime.js");
|
|
440
161
|
__webpack_require__.C(exports);
|
|
441
162
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
442
|
-
var __webpack_exports__ = (__webpack_exec__(43499));
|
|
163
|
+
var __webpack_exports__ = __webpack_require__.X(0, [636], () => (__webpack_exec__(43499)));
|
|
443
164
|
module.exports = __webpack_exports__;
|
|
444
165
|
|
|
445
166
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../webpack-runtime.js","../../package.json","../../../node_modules/next/dist/shared/lib/amp-context.js","../../../node_modules/next/dist/shared/lib/amp-mode.js","../../../node_modules/next/dist/shared/lib/head-manager-context.js","../../../node_modules/next/dist/shared/lib/side-effect.js","../../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../../node_modules/next/package.json","../../../node_modules/react/package.json","../../../node_modules/react/index.js","../../../node_modules/react/cjs/react.
|
|
1
|
+
{"version":1,"files":["../webpack-runtime.js","../chunks/636.js","../../package.json","../../../node_modules/next/dist/shared/lib/amp-context.js","../../../node_modules/next/dist/shared/lib/amp-mode.js","../../../node_modules/next/dist/shared/lib/head-manager-context.js","../../../node_modules/next/dist/shared/lib/side-effect.js","../../../node_modules/next/dist/shared/lib/utils/warn-once.js","../../../node_modules/next/package.json","../../../node_modules/react/package.json","../../../node_modules/react/index.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/@swc/helpers/lib/_interop_require_default.js","../../../node_modules/@swc/helpers/lib/_interop_require_wildcard.js","../../../node_modules/@swc/helpers/package.json","../../../package.json"]}
|
|
@@ -209,8 +209,13 @@ const COLOR_BLUE = "#c7d8f9";
|
|
|
209
209
|
const COLOR_GREEN = "#bae3ba";
|
|
210
210
|
const COLOR_RED = "#f7c2aa";
|
|
211
211
|
const COLOR_YELLOW = "#efe3ae";
|
|
212
|
-
const
|
|
213
|
-
const
|
|
212
|
+
const SPACING_XS = 2;
|
|
213
|
+
const SPACING_S = 5;
|
|
214
|
+
const SPACING_M = 10;
|
|
215
|
+
const SPACING_L = 20;
|
|
216
|
+
const SPACING_XL = 40;
|
|
217
|
+
const COMPONENTS_SPACING = (/* unused pure expression or super */ null && (SPACING_XL));
|
|
218
|
+
const COMPONENTS_SPACING_SMALL = (/* unused pure expression or super */ null && (SPACING_L));
|
|
214
219
|
const BOARD_CELL_ACTIONS_OFFSET = 3;
|
|
215
220
|
const parameters_BOARD_CELL_BORDER_WIDTH = 1;
|
|
216
221
|
const parameters_BOARD_TILE_FONT_SIZE_MIN = 14;
|
|
@@ -222,6 +227,18 @@ const parameters_BOARD_TILE_SIZE_MAX = 64;
|
|
|
222
227
|
* 26 - tiles start to look good (font-size: 16px)
|
|
223
228
|
*/ const parameters_BOARD_TILE_SIZE_MIN = 20;
|
|
224
229
|
const BORDER_WIDTH = 1;
|
|
230
|
+
const BUTTON_ICON_SIZE = 24;
|
|
231
|
+
const BUTTON_PADDING_VERTICAL = SPACING_M;
|
|
232
|
+
const BUTTON_HEIGHT = BUTTON_ICON_SIZE + 2 * BUTTON_PADDING_VERTICAL + 2 * BORDER_WIDTH;
|
|
233
|
+
const DICTIONARY_HEIGHT = 260;
|
|
234
|
+
const DICTIONARY_HEIGHT_MOBILE = 110;
|
|
235
|
+
const LOGO_ASPECT_RATIO = (/* unused pure expression or super */ null && (682 / 166));
|
|
236
|
+
const LOGO_HEIGHT = 60;
|
|
237
|
+
const LOGO_HEIGHT_SMALL = 48;
|
|
238
|
+
const LOGO_SRC = "/logo.svg";
|
|
239
|
+
const MODAL_WIDTH = 370;
|
|
240
|
+
const MODAL_HEADER_HEIGHT = 45;
|
|
241
|
+
const NAV_PADDING = (/* unused pure expression or super */ null && (SPACING_L));
|
|
225
242
|
const TILE_SIZE = 80;
|
|
226
243
|
const PLAIN_TILES_COLOR_DEFAULT = (/* unused pure expression or super */ null && (COLOR_GREEN));
|
|
227
244
|
const PLAIN_TILES_PADDING_HORIZONTAL = 0;
|
|
@@ -248,8 +265,10 @@ const PROGRESS_COLOR_VALUE = "var(--color--violet--light)";
|
|
|
248
265
|
const PROGRESS_COLOR_BACKGROUND = "var(--color--inactive)";
|
|
249
266
|
const RACK_TILE_SIZE_MAX = 80;
|
|
250
267
|
const REMAINING_TILES_TILE_SIZE = 50;
|
|
268
|
+
const RESULTS_HEADER_HEIGHT = 35;
|
|
251
269
|
const RESULTS_ITEM_HEIGHT = 40;
|
|
252
270
|
const SOLVER_COLUMN_WIDTH = 580;
|
|
271
|
+
const TEXT_INPUT_HEIGHT = 40;
|
|
253
272
|
const TILE_APPEAR_DURATION = 200;
|
|
254
273
|
const TILE_APPEAR_KEYFRAMES = [
|
|
255
274
|
{
|
|
@@ -530,6 +549,7 @@ const zipCharactersAndTiles = (characters, tiles)=>{
|
|
|
530
549
|
|
|
531
550
|
|
|
532
551
|
|
|
552
|
+
|
|
533
553
|
|
|
534
554
|
|
|
535
555
|
;// CONCATENATED MODULE: ./src/pages/api/solve.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish."/><meta name="keywords" content="Scrabble Solver,Scrabble,Solver,Board,Open-source,Open,Source,Word,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,فارسی,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - Free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/1cd302e7648d209c.css" as="style"/><link rel="stylesheet" href="/_next/static/css/1cd302e7648d209c.css" data-n-g=""/><link rel="preload" href="/_next/static/css/34adfcf12a7d9bb6.css" as="style"/><link rel="stylesheet" href="/_next/static/css/34adfcf12a7d9bb6.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6ef43a8d4a395f49.js" defer=""></script><script src="/_next/static/chunks/framework-2c79e2a64abdb08b.js" defer=""></script><script src="/_next/static/chunks/main-0ecb9ccfcb6c9b24.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b4fa92112b8f0385.js" defer=""></script><script src="/_next/static/chunks/pages/index-ccd762f8f5028729.js" defer=""></script><script src="/_next/static/Jmk00rVXCbdjFgP77tKXQ/_buildManifest.js" defer=""></script><script src="/_next/static/Jmk00rVXCbdjFgP77tKXQ/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="color:transparent;pointer-events:none;position:absolute;user-select:none;transform:translateY(-9999px)">Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish. Source code is available on GitHub - contributions are welcome!</p></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.11.5"},"__N_SSG":true},"page":"/","query":{},"buildId":"Jmk00rVXCbdjFgP77tKXQ","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>
|