Compare commits

...

No commits in common. "master" and "filesystem" have entirely different histories.

334 changed files with 2481 additions and 16819 deletions

8
.env
View File

@ -1,8 +0,0 @@
# project endpoint (required) [example: http://localhost/v1]
VITE_APPWRITE_ENDPOINT=https://erant-deploy.erant.cz/v1
# project id (required) [example: 638871b363904655d784]
VITE_APPWRITE_PROJECT_ID=63af924ab3995db64755
# project hostname (required) [example: http://localhost:5173]
VITE_HOSTNAME=http://erant-deploy.erant.cz

View File

@ -1,13 +0,0 @@
module.exports = {
env: {
browser: true,
es2021: true
},
extends: 'standard-with-typescript',
overrides: [],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module'
},
rules: {}
}

View File

@ -1,8 +1,8 @@
on: on:
push: push:
branches: ['deploy/prod'] branches: [ "deploy/prod" ]
pull_request: pull_request:
branches: ['deploy/prod'] branches: [ "deploy/prod" ]
name: 🚀 Deploy website on push name: 🚀 Deploy website on push
jobs: jobs:
@ -10,18 +10,18 @@ jobs:
name: 🎉 Deploy name: 🎉 Deploy
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: 🚚 Get latest code - name: 🚚 Get latest code
uses: actions/checkout@v3 uses: actions/checkout@v2
- name: 🔨 Build Project - name: 🔨 Build Project
run: | run: |
npm ci npm ci
npm run build npm run build
- name: 📂 Sync files - name: 📂 Sync files
uses: SamKirkland/FTP-Deploy-Action@4.3.2 uses: SamKirkland/FTP-Deploy-Action@4.3.2
with: with:
server: 305244.w44.wedos.net server: 305244.w44.wedos.net
username: w305244_BOT007 username: w305244_BOT007
password: ${{ secrets.FTP_PASSWORD }} password: ${{ secrets.FTP_PASSWORD }}
local-dir: ./dist/ local-dir: ./dist/

View File

@ -1,27 +0,0 @@
name: Playwright Tests
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Install dependencies
run: npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30

3
.gitignore vendored
View File

@ -25,6 +25,3 @@ dist-ssr
# php # php
public/api/vendor public/api/vendor
/test-results/
/playwright-report/
/playwright/.cache/

16
LICENSE
View File

@ -1,16 +0,0 @@
Proprietary License
Copyright (c) 2023 Erant, s.r.o.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to use the Software solely for the internal business purposes of Erant, s.r.o. Such use may include running the Software on company-owned or leased hardware, and allowing access to the Software by employees or contractors of Erant, s.r.o. No other use, reproduction, distribution, or modification of the Software or any part thereof is permitted without the prior written consent of Erant, s.r.o.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,23 +1,10 @@
# Erant # Geohry
*Description* Vzdělávejte se mimo lavice. Nechte se provést atraktivními lokacemi, vyřešte mnoho výzev a objevte nejednu geografickou zajímavost s bezplatnou mobilní aplikací.
Escape the ordinary and wander with Erant - the ultimate travel companion that empowers you to explore the world with ease. From finding the best deals to discovering hidden gems, Erant is the go to platform for all your travel needs. Unleash your inner adventurer and create unforgettable memories with Erant by your side. Let's Erant and explore!
*Our mission* 1. Hrací režim
is to provide travelers with the best travel experiences by offering a comprehensive platform that streamlines travel planning and booking, connects them with the top travel providers, and delivers exceptional customer service. 2. QR kódy
3. Nacházení blízkých her do x km a jejich seznam
4. Přihlašování/registrace
*Our vision* https://www.figma.com/file/mEaF6SbE8aP1WCo95f8dlV/Erant
is to be the go-to platform for travelers worldwide, providing them with seamless and unforgettable travel experiences that inspire and empower them to explore the world with ease and confidence.
*Values*
**Customer-centricity**: We Put the needs and desires of the customer at the center of everything we do, and ensure that their experience with our app is personalized, seamless, and enjoyable.
**Innovation**: We are innovative and creative in our approach to solving the challenges and pain points that customers face when booking and planning travel, and constantly seek new and better ways to enhance their experience.
**Trust**: We build trust with customers by delivering on our promises, by being reliable and consistent in our service, and maintaining high standards of quality and integrity.
**Sustainability**: We incorporate sustainability into our business practices and operations, and promotring responsible and eco-friendly travel among our customers.
**Community**: We foster a sense of community among our customers, and provide opportunities for them to connect with like-minded travelers and share their experiences and insights.
**Transparency**: We are transparent and open in our dealings with customers, including pricing, policies, and terms and conditions, and provide them with all the information they need to make informed decisions

View File

@ -1,80 +1,27 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<link rel="manifest" href="/manifest.json" />
<meta
name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi"
/>
<title>Erant</title>
<!-- Serviceworker registration --> <head>
<script> <meta charset="UTF-8" />
if (typeof navigator.serviceWorker !== 'undefined') { <link rel="icon" href="/favicon.ico" />
navigator.serviceWorker.register('servicewworker.js') <link rel="manifest" href="/webmanifest.json" />
} <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</script> <title>Erant</title>
<!-- Meta Pixel Code --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-8RCL0H1Q7V"></script>
<script> <script>
!(function (f, b, e, v, n, t, s) { window.dataLayer = window.dataLayer || []
if (f.fbq) return function gtag() { dataLayer.push(arguments) }
n = f.fbq = function () { gtag('js', new Date())
n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) gtag('config', 'G-8RCL0H1Q7V');
} </script>
if (!f._fbq) f._fbq = n </head>
n.push = n
n.loaded = !0
n.version = '2.0'
n.queue = []
t = b.createElement(e)
t.async = !0
t.src = v
s = b.getElementsByTagName(e)[0]
s.parentNode.insertBefore(t, s)
})(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js')
fbq('init', '541491674547104')
fbq('track', 'PageView')
</script>
<noscript><img height="1" width="1" style="display: none" src="https://www.facebook.com/tr?id=541491674547104&ev=PageView&noscript=1" /></noscript>
<!-- End Meta Pixel Code -->
<!-- Google tag (gtag.js) --> <body>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-8RCL0H1Q7V"></script> <noscript>Tato stránka potřebuje Javascript.</noscript>
<script>
window.dataLayer = window.dataLayer || []
function gtag() {
dataLayer.push(arguments)
}
gtag('js', new Date())
gtag('config', 'G-8RCL0H1Q7V') <div id="app"></div>
</script> <script type="module" src="/src/main.js"></script>
</body>
<!-- Google Tag Manager -->
<script>
;(function (w, d, s, l, i) {
w[l] = w[l] || []
w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' })
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : ''
j.async = true
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl
f.parentNode.insertBefore(j, f)
})(window, document, 'script', 'dataLayer', 'GTM-WLHVPKW')
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WLHVPKW" height="0" width="0" style="display: none; visibility: hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html> </html>

View File

@ -1,76 +0,0 @@
<!-- This is an Offline fall back page for Erant PWA -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>You are offline</title>
<!-- Inline the page's stylesheet. -->
<style>
body {
font-family: 'Source Sans Pro';
margin: 2em;
}
h1 {
font-style: italic;
color: #4263eb;
font-size: 18px;
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 600;
line-height: 28px;
}
p {
margin-block: 1rem;
}
button {
display: block;
}
</style>
</head>
<body>
<h1>You are offline</h1>
<p>Click the button below to try reloading.</p>
<button type="button">⤾ Reload</button>
<!-- Inline the page's JavaScript file. -->
<script>
// Manual reload feature.
document.querySelector("button").addEventListener("click", () => {
window.location.reload();
});
// Listen to changes in the network state, reload when online.
// This handles the case when the device is completely offline.
window.addEventListener('online', () => {
window.location.reload();
});
// Check if the server is responding and reload the page if it is.
// This handles the case when the device is online, but the server
// is offline or misbehaving.
async function checkNetworkAndReload() {
try {
const response = await fetch('.');
// Verify we get a valid response from the server
if (response.status >= 200 && response.status < 500) {
window.location.reload();
return;
}
} catch {
// Unable to connect to the server, ignore.
}
window.setTimeout(checkNetworkAndReload, 2500);
}
checkNetworkAndReload();
</script>
</body>
</html>

9253
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,54 +1,30 @@
{ {
"name": "appwrite-svelte-rocket-start", "name": "geohry",
"private": true, "private": true,
"version": "0.0.0", "version": "0.0.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite",
"build": "vite build", "build": "vite build",
"preview": "vite preview", "preview": "vite preview",
"svelte-check": "svelte-check --tsconfig ./tsconfig.json", "php": "php -S localhost:8000 -t ./public"
"appwrite": "docker compose -f ./appwrite/docker-compose.yml up"
}, },
"devDependencies": { "devDependencies": {
"@playwright/test": "^1.31.2", "@sveltejs/vite-plugin-svelte": "^1.0.1",
"@sveltejs/vite-plugin-svelte": "^1.1.0", "autoprefixer": "^10.4.8",
"@typescript-eslint/eslint-plugin": "^5.54.1", "postcss": "^8.4.16",
"autoprefixer": "^10.4.13", "postcss-load-config": "^4.0.1",
"eslint": "^8.35.0", "sass": "^1.53.0",
"eslint-config-standard-with-typescript": "^34.0.0", "svelte": "^3.49.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.6.1",
"eslint-plugin-promise": "^6.1.1",
"flowbite-svelte": "^0.28.11",
"postcss": "^8.4.19",
"sass": "^1.59.3",
"svelte": "^3.52.0",
"svelte-preprocess": "^4.10.7", "svelte-preprocess": "^4.10.7",
"svelte-preprocess-sass": "^2.0.1", "tailwindcss": "^3.1.8",
"tailwindcss": "^3.2.4", "vite": "^3.1.6"
"typescript": "^4.9.5",
"vite": "^3.2.3",
"patch-package": "^6.5.1"
}, },
"dependencies": { "dependencies": {
"@beyonk/svelte-mapbox": "^8.2.0", "@beyonk/svelte-mapbox": "^8.1.4",
"@bytemd/plugin-gfm": "^1.17.4",
"@lottiefiles/svelte-lottie-player": "^0.3.0",
"@popperjs/core": "^2.11.6",
"appwrite": "^10.1.0",
"bytemd": "^1.17.4",
"classnames": "^2.3.2",
"flowbite": "^1.6.3",
"html5-qrcode": "^2.3.0", "html5-qrcode": "^2.3.0",
"magic-string": "^0.30.0",
"mapbox": "^1.0.0-beta10", "mapbox": "^1.0.0-beta10",
"mapbox-gl": "^2.10.0", "mapbox-gl": "^2.10.0",
"sorcery": "^0.11.0",
"svelte-appwrite-client": "^0.2.3",
"svelte-check": "^3.1.4",
"svelte-i18n": "^3.6.0",
"svelte-routing": "^1.6.0", "svelte-routing": "^1.6.0",
"yallist": "^4.0.0" "yallist": "^4.0.0"
} }

View File

@ -1,90 +0,0 @@
import { defineConfig, devices } from '@playwright/test';
/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// require('dotenv').config();
/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
testDir: './tests',
/* Maximum time one test can run for. */
timeout: 30 * 1000,
expect: {
/**
* Maximum time expect() should wait for the condition to be met.
* For example in `await expect(locator).toHaveText();`
*/
timeout: 5000
},
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: process.env.CI ? 2 : 0,
/* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'html',
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
actionTimeout: 0,
/* Base URL to use in actions like `await page.goto('/')`. */
// baseURL: 'http://localhost:3000',
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry',
},
/* Configure projects for major browsers */
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] },
},
{
name: 'webkit',
use: { ...devices['Desktop Safari'] },
},
/* Test against mobile viewports. */
// {
// name: 'Mobile Chrome',
// use: { ...devices['Pixel 5'] },
// },
// {
// name: 'Mobile Safari',
// use: { ...devices['iPhone 12'] },
// },
/* Test against branded browsers. */
// {
// name: 'Microsoft Edge',
// use: { channel: 'msedge' },
// },
// {
// name: 'Google Chrome',
// use: { channel: 'chrome' },
// },
],
/* Folder for test artifacts such as screenshots, videos, traces, etc. */
// outputDir: 'test-results/',
/* Run your local dev server before starting the tests */
// webServer: {
// command: 'npm run start',
// port: 3000,
// },
});

View File

@ -2,5 +2,5 @@ const autoprefixer = require('autoprefixer')
const tailwind = require('tailwindcss') const tailwind = require('tailwindcss')
module.exports = { module.exports = {
plugins: [tailwind(), autoprefixer()] plugins: [tailwind(), autoprefixer()],
} }

View File

@ -1,8 +1,5 @@
RewriteEngine On RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html [L] RewriteRule . index.html [L]

File diff suppressed because one or more lines are too long

5
public/api/.htaccess Normal file
View File

@ -0,0 +1,5 @@
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

37
public/api/cors.php Normal file
View File

@ -0,0 +1,37 @@
<?php
/**
* An example CORS-compliant method. It will allow any GET, POST, or OPTIONS requests from any
* origin.
*
* In a production environment, you probably want to be more restrictive, but this gives you
* the general idea of what is involved. For the nitty-gritty low-down, read:
*
* - https://developer.mozilla.org/en/HTTP_access_control
* - https://fetch.spec.whatwg.org/#http-cors-protocol
*
*/
function cors() {
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
// Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one
// you want to allow, and if so:
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Header: *");
header("Access-Control-Max-Age: 86400"); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
header("Access-Control-Allow-Origin: *");
exit(0);
}
}

41
public/api/index.php Normal file
View File

@ -0,0 +1,41 @@
<?php
require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/cors.php';
cors();
$router = new \Bramus\Router\Router();
$router->setBasePath('/api');
use Medoo\Medoo;
header('Content-Type: application/json; charset=utf-8');
function env($key) {
global $_ENV;
return array_key_exists($key, $_ENV) ? $_ENV[$key] : null;
}
$database = new Medoo([
'type' => 'mysql',
'host' => "db.db030.webglobe.com",
'database' => "mysql122279",
'username' => "mysql85033",
'password' => "troglodyt"
]);
$data = json_decode(file_get_contents("php://input"), true);
$router->post('/game/details', function() use($database, $data) {
$fn = require __DIR__ . '/routes/game/details.php';
$response = $fn($data, getallheaders(), $database);
$status = array_key_exists("status", $response) ? $response["status"] : 200;
unset($response['status']);
http_response_code($status);
echo json_encode($response);
});
$router->run();

View File

@ -0,0 +1,70 @@
<?php
function remoteFileExists($url) {
$curl = curl_init($url);
//don't fetch the actual page, you only want to check the connection is ok
curl_setopt($curl, CURLOPT_NOBODY, true);
//do request
$result = curl_exec($curl);
$ret = false;
//if request did not fail
if ($result !== false) {
//if request was ok, check response code
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$ret = true;
}
}
curl_close($curl);
return $ret;
}
return function($data, $headers, $db) {
$imagesHostName = 'https://geohry.skolazdola.cz/';
if(!isset($data['gameurl']) || empty($data['gameurl'])) return [
"success" => false,
"data" => [
"message" => "Property 'gameurl' is not set."
]
];
$gameUrl = $data['gameurl'];
$gameDetails = $db->select('games4', '*', [
'url' => $gameUrl
]);
if(!$gameDetails) return [
"success" => false,
"data" => [
"message" => "Invalid 'gameurl'."
]
];
$gameDetails = $gameDetails[0];
$gameDetails["questions"] = $db->select('questions4', '*', [
'url' => $gameUrl
]);
$thumbnailPath = "{$imagesHostName}/games/{$gameUrl}/intro.jpg";
$gameDetails["thumbnail"] = remoteFileExists($thumbnailPath) ? $thumbnailPath : null;
foreach($gameDetails["questions"] as &$question) {
$questionThumbnailPath = "{$imagesHostName}/games/{$gameUrl}/" . $question["uniqid"] . ".jpg";
$question["thumbnail"] = remoteFileExists($questionThumbnailPath) ? $questionThumbnailPath : null;
}
return [
"success" => true,
"data" => $gameDetails
];
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,93 +0,0 @@
Copyright 2013 The Redacted Project Authors (https://github.com/christiannaths/redacted-font)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -1,452 +0,0 @@
{
"icons": [
{
"src": "windows11/SmallTile.scale-100.png",
"sizes": "71x71"
},
{
"src": "windows11/SmallTile.scale-125.png",
"sizes": "89x89"
},
{
"src": "windows11/SmallTile.scale-150.png",
"sizes": "107x107"
},
{
"src": "windows11/SmallTile.scale-200.png",
"sizes": "142x142"
},
{
"src": "windows11/SmallTile.scale-400.png",
"sizes": "284x284"
},
{
"src": "windows11/Square150x150Logo.scale-100.png",
"sizes": "150x150"
},
{
"src": "windows11/Square150x150Logo.scale-125.png",
"sizes": "188x188"
},
{
"src": "windows11/Square150x150Logo.scale-150.png",
"sizes": "225x225"
},
{
"src": "windows11/Square150x150Logo.scale-200.png",
"sizes": "300x300"
},
{
"src": "windows11/Square150x150Logo.scale-400.png",
"sizes": "600x600"
},
{
"src": "windows11/Wide310x150Logo.scale-100.png",
"sizes": "310x150"
},
{
"src": "windows11/Wide310x150Logo.scale-125.png",
"sizes": "388x188"
},
{
"src": "windows11/Wide310x150Logo.scale-150.png",
"sizes": "465x225"
},
{
"src": "windows11/Wide310x150Logo.scale-200.png",
"sizes": "620x300"
},
{
"src": "windows11/Wide310x150Logo.scale-400.png",
"sizes": "1240x600"
},
{
"src": "windows11/LargeTile.scale-100.png",
"sizes": "310x310"
},
{
"src": "windows11/LargeTile.scale-125.png",
"sizes": "388x388"
},
{
"src": "windows11/LargeTile.scale-150.png",
"sizes": "465x465"
},
{
"src": "windows11/LargeTile.scale-200.png",
"sizes": "620x620"
},
{
"src": "windows11/LargeTile.scale-400.png",
"sizes": "1240x1240"
},
{
"src": "windows11/Square44x44Logo.scale-100.png",
"sizes": "44x44"
},
{
"src": "windows11/Square44x44Logo.scale-125.png",
"sizes": "55x55"
},
{
"src": "windows11/Square44x44Logo.scale-150.png",
"sizes": "66x66"
},
{
"src": "windows11/Square44x44Logo.scale-200.png",
"sizes": "88x88"
},
{
"src": "windows11/Square44x44Logo.scale-400.png",
"sizes": "176x176"
},
{
"src": "windows11/StoreLogo.scale-100.png",
"sizes": "50x50"
},
{
"src": "windows11/StoreLogo.scale-125.png",
"sizes": "63x63"
},
{
"src": "windows11/StoreLogo.scale-150.png",
"sizes": "75x75"
},
{
"src": "windows11/StoreLogo.scale-200.png",
"sizes": "100x100"
},
{
"src": "windows11/StoreLogo.scale-400.png",
"sizes": "200x200"
},
{
"src": "windows11/SplashScreen.scale-100.png",
"sizes": "620x300"
},
{
"src": "windows11/SplashScreen.scale-125.png",
"sizes": "775x375"
},
{
"src": "windows11/SplashScreen.scale-150.png",
"sizes": "930x450"
},
{
"src": "windows11/SplashScreen.scale-200.png",
"sizes": "1240x600"
},
{
"src": "windows11/SplashScreen.scale-400.png",
"sizes": "2480x1200"
},
{
"src": "windows11/Square44x44Logo.targetsize-16.png",
"sizes": "16x16"
},
{
"src": "windows11/Square44x44Logo.targetsize-20.png",
"sizes": "20x20"
},
{
"src": "windows11/Square44x44Logo.targetsize-24.png",
"sizes": "24x24"
},
{
"src": "windows11/Square44x44Logo.targetsize-30.png",
"sizes": "30x30"
},
{
"src": "windows11/Square44x44Logo.targetsize-32.png",
"sizes": "32x32"
},
{
"src": "windows11/Square44x44Logo.targetsize-36.png",
"sizes": "36x36"
},
{
"src": "windows11/Square44x44Logo.targetsize-40.png",
"sizes": "40x40"
},
{
"src": "windows11/Square44x44Logo.targetsize-44.png",
"sizes": "44x44"
},
{
"src": "windows11/Square44x44Logo.targetsize-48.png",
"sizes": "48x48"
},
{
"src": "windows11/Square44x44Logo.targetsize-60.png",
"sizes": "60x60"
},
{
"src": "windows11/Square44x44Logo.targetsize-64.png",
"sizes": "64x64"
},
{
"src": "windows11/Square44x44Logo.targetsize-72.png",
"sizes": "72x72"
},
{
"src": "windows11/Square44x44Logo.targetsize-80.png",
"sizes": "80x80"
},
{
"src": "windows11/Square44x44Logo.targetsize-96.png",
"sizes": "96x96"
},
{
"src": "windows11/Square44x44Logo.targetsize-256.png",
"sizes": "256x256"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-16.png",
"sizes": "16x16"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-20.png",
"sizes": "20x20"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-24.png",
"sizes": "24x24"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-30.png",
"sizes": "30x30"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-32.png",
"sizes": "32x32"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-36.png",
"sizes": "36x36"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-40.png",
"sizes": "40x40"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-44.png",
"sizes": "44x44"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-48.png",
"sizes": "48x48"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-60.png",
"sizes": "60x60"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-64.png",
"sizes": "64x64"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-72.png",
"sizes": "72x72"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-80.png",
"sizes": "80x80"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-96.png",
"sizes": "96x96"
},
{
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-256.png",
"sizes": "256x256"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png",
"sizes": "16x16"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png",
"sizes": "20x20"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png",
"sizes": "24x24"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png",
"sizes": "30x30"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png",
"sizes": "32x32"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png",
"sizes": "36x36"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png",
"sizes": "40x40"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png",
"sizes": "44x44"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png",
"sizes": "48x48"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png",
"sizes": "60x60"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png",
"sizes": "64x64"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png",
"sizes": "72x72"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png",
"sizes": "80x80"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png",
"sizes": "96x96"
},
{
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png",
"sizes": "256x256"
},
{
"src": "android/android-launchericon-512-512.png",
"sizes": "512x512"
},
{
"src": "android/android-launchericon-192-192.png",
"sizes": "192x192"
},
{
"src": "android/android-launchericon-144-144.png",
"sizes": "144x144"
},
{
"src": "android/android-launchericon-96-96.png",
"sizes": "96x96"
},
{
"src": "android/android-launchericon-72-72.png",
"sizes": "72x72"
},
{
"src": "android/android-launchericon-48-48.png",
"sizes": "48x48"
},
{
"src": "ios/16.png",
"sizes": "16x16"
},
{
"src": "ios/20.png",
"sizes": "20x20"
},
{
"src": "ios/29.png",
"sizes": "29x29"
},
{
"src": "ios/32.png",
"sizes": "32x32"
},
{
"src": "ios/40.png",
"sizes": "40x40"
},
{
"src": "ios/50.png",
"sizes": "50x50"
},
{
"src": "ios/57.png",
"sizes": "57x57"
},
{
"src": "ios/58.png",
"sizes": "58x58"
},
{
"src": "ios/60.png",
"sizes": "60x60"
},
{
"src": "ios/64.png",
"sizes": "64x64"
},
{
"src": "ios/72.png",
"sizes": "72x72"
},
{
"src": "ios/76.png",
"sizes": "76x76"
},
{
"src": "ios/80.png",
"sizes": "80x80"
},
{
"src": "ios/87.png",
"sizes": "87x87"
},
{
"src": "ios/100.png",
"sizes": "100x100"
},
{
"src": "ios/114.png",
"sizes": "114x114"
},
{
"src": "ios/120.png",
"sizes": "120x120"
},
{
"src": "ios/128.png",
"sizes": "128x128"
},
{
"src": "ios/144.png",
"sizes": "144x144"
},
{
"src": "ios/152.png",
"sizes": "152x152"
},
{
"src": "ios/167.png",
"sizes": "167x167"
},
{
"src": "ios/180.png",
"sizes": "180x180"
},
{
"src": "ios/192.png",
"sizes": "192x192"
},
{
"src": "ios/256.png",
"sizes": "256x256"
},
{
"src": "ios/512.png",
"sizes": "512x512"
},
{
"src": "ios/1024.png",
"sizes": "1024x1024"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Some files were not shown because too many files have changed in this diff Show More