SEO + Added Poppins font
|
|
@ -1,6 +1,6 @@
|
|||
# ProzillaOS
|
||||
|
||||
ProzillaOS is a web operating system inspired by Ubuntu Linux and Windows made in React by Prozilla. It aims to function much like a real operating system, with the exception of running entirely on the web.
|
||||
ProzillaOS is a web operating system inspired by Ubuntu Linux and Windows made with React by Prozilla. It aims to function much like a real operating system, with the exception of running entirely on the web.
|
||||
|
||||
> Please note that ProzillaOS is far from complete and many additional features will be added in the future.
|
||||
|
||||
|
|
|
|||
BIN
public/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
9
public/browserconfig.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/mstile-150x150.png"/>
|
||||
<TileColor>#222f3e</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
BIN
public/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 15 KiB |
|
|
@ -1,43 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta
|
||||
name="description"
|
||||
content="ProzillaOS"
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
<title>ProzillaOS</title>
|
||||
<meta name="description" content="ProzillaOS is a web operating system inspired by Ubuntu Linux and Windows made with React by Prozilla."/>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="%PUBLIC_URL%/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="%PUBLIC_URL%/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="%PUBLIC_URL%/favicon-16x16.png">
|
||||
<link rel="mask-icon" href="%PUBLIC_URL%/safari-pinned-tab.svg" color="#1dd1a1">
|
||||
<meta name="msapplication-TileColor" content="#222f3e">
|
||||
<meta name="theme-color" content="#1dd1a1">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="ProzillaOS">
|
||||
<meta property="og:site_name" content="ProzillaOS">
|
||||
<meta property="og:description" content="ProzillaOS is a web operating system inspired by Ubuntu Linux and Windows made with React by Prozilla.">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:image" content="%PUBLIC_URL%/media/wallpapers/wallpaper-1.png">
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<noscript>You need to enable JavaScript to run ProzillaOS.</noscript>
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start` or `yarn start`.
|
||||
To create a production bundle, use `npm run build` or `yarn build`.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
|
@ -2,22 +2,17 @@
|
|||
"short_name": "ProzillaOS",
|
||||
"name": "ProzillaOS",
|
||||
"icons": [
|
||||
{
|
||||
"src": "favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
},
|
||||
{
|
||||
"src": "logo192.png",
|
||||
"type": "image/png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "logo512.png",
|
||||
"type": "image/png",
|
||||
"sizes": "512x512"
|
||||
}
|
||||
],
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
|
|
|
|||
93
public/media/fonts/Poppins/OFL.txt
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins)
|
||||
|
||||
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.
|
||||
BIN
public/media/fonts/Poppins/Poppins-Black.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-BlackItalic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-Bold.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-BoldItalic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-ExtraBold.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-ExtraBoldItalic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-ExtraLight.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-ExtraLightItalic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-Italic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-Light.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-LightItalic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-Medium.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-MediumItalic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-Regular.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-SemiBold.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-SemiBoldItalic.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-Thin.ttf
Normal file
BIN
public/media/fonts/Poppins/Poppins-ThinItalic.ttf
Normal file
39
public/media/logo.svg
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_10_21)">
|
||||
<path d="M105.792 9C108.101 5 113.875 5 116.184 9L139.377 49.1704C141.686 53.1704 138.799 58.1704 134.181 58.1704H87.7958C83.177 58.1704 80.2902 53.1704 82.5996 49.1704L105.792 9Z" fill="#10AC84"/>
|
||||
<path d="M32.0528 47.109C31.0566 43.3911 34.4587 39.989 38.1765 40.9852L76.4129 51.2306C80.1308 52.2268 81.376 56.8742 78.6544 59.5958L50.6634 87.5868C47.9417 90.3085 43.2944 89.0632 42.2982 85.3454L32.0528 47.109Z" fill="#10AC84"/>
|
||||
<path d="M11.0149 110.663C8.49254 108.897 8.828 105.062 11.6187 103.761L41.1996 89.9673C43.9903 88.6659 47.1433 90.8736 46.8749 93.9411L44.0302 126.456C43.7619 129.523 40.2735 131.15 37.7511 129.384L11.0149 110.663Z" fill="#10AC84"/>
|
||||
<path d="M25.5813 162.489C23.2733 162.408 21.918 159.859 23.1418 157.901L37.4348 135.027C38.6586 133.069 41.5436 133.169 42.6278 135.208L55.2904 159.023C56.3746 161.062 54.8449 163.511 52.5369 163.43L25.5813 162.489Z" fill="#10AC84"/>
|
||||
<g filter="url(#filter0_d_10_21)">
|
||||
<circle cx="111.585" cy="119.324" r="71.5944" fill="#1DD1A1"/>
|
||||
</g>
|
||||
<g filter="url(#filter1_d_10_21)">
|
||||
<path d="M112.006 117.595V119.669C112.006 123.583 111.455 127.099 110.353 130.216C109.275 133.309 107.74 135.958 105.748 138.161C103.756 140.341 101.4 142.016 98.6814 143.188C95.9627 144.337 92.9627 144.911 89.6814 144.911C86.3768 144.911 83.3533 144.337 80.6111 143.188C77.8924 142.016 75.5252 140.341 73.5096 138.161C71.5174 135.958 69.9705 133.309 68.8689 130.216C67.7908 127.099 67.2518 123.583 67.2518 119.669V117.595C67.2518 113.681 67.7908 110.165 68.8689 107.048C69.9705 103.931 71.5057 101.282 73.4744 99.1024C75.4666 96.8993 77.8221 95.2235 80.5408 94.0751C83.283 92.9032 86.3064 92.3173 89.6111 92.3173C92.8924 92.3173 95.8924 92.9032 98.6111 94.0751C101.353 95.2235 103.721 96.8993 105.713 99.1024C107.705 101.282 109.252 103.931 110.353 107.048C111.455 110.165 112.006 113.681 112.006 117.595ZM99.49 119.669V117.524C99.49 114.993 99.2674 112.766 98.8221 110.845C98.4002 108.899 97.7674 107.27 96.9236 105.958C96.0799 104.645 95.0369 103.661 93.7947 103.005C92.576 102.325 91.1814 101.985 89.6111 101.985C87.9705 101.985 86.5408 102.325 85.3221 103.005C84.1033 103.661 83.0838 104.645 82.2635 105.958C81.4432 107.27 80.8221 108.899 80.4002 110.845C80.0018 112.766 79.8025 114.993 79.8025 117.524V119.669C79.8025 122.177 80.0018 124.403 80.4002 126.349C80.8221 128.27 81.4432 129.899 82.2635 131.235C83.1072 132.571 84.1385 133.579 85.3572 134.259C86.5994 134.938 88.0408 135.278 89.6814 135.278C91.2518 135.278 92.6463 134.938 93.865 134.259C95.0838 133.579 96.1033 132.571 96.9236 131.235C97.7674 129.899 98.4002 128.27 98.8221 126.349C99.2674 124.403 99.49 122.177 99.49 119.669ZM144.771 130.602C144.771 129.806 144.654 129.091 144.42 128.458C144.185 127.802 143.752 127.192 143.119 126.63C142.486 126.067 141.572 125.505 140.377 124.942C139.205 124.356 137.658 123.747 135.736 123.114C133.486 122.364 131.318 121.52 129.232 120.583C127.146 119.622 125.283 118.509 123.642 117.243C122.002 115.954 120.701 114.454 119.74 112.743C118.779 111.009 118.299 108.993 118.299 106.696C118.299 104.493 118.791 102.513 119.775 100.755C120.76 98.9735 122.131 97.4618 123.888 96.2196C125.67 94.954 127.756 93.993 130.146 93.3368C132.537 92.6571 135.15 92.3173 137.986 92.3173C141.736 92.3173 145.041 92.9735 147.9 94.286C150.783 95.5751 153.033 97.4149 154.65 99.8055C156.291 102.173 157.111 104.974 157.111 108.208H144.842C144.842 106.919 144.572 105.782 144.033 104.798C143.517 103.813 142.732 103.04 141.678 102.477C140.623 101.915 139.299 101.634 137.705 101.634C136.158 101.634 134.857 101.868 133.803 102.337C132.748 102.806 131.951 103.438 131.412 104.235C130.873 105.009 130.603 105.864 130.603 106.802C130.603 107.575 130.814 108.278 131.236 108.911C131.681 109.52 132.303 110.095 133.099 110.634C133.92 111.173 134.904 111.688 136.053 112.181C137.224 112.673 138.537 113.153 139.99 113.622C142.709 114.489 145.123 115.462 147.232 116.54C149.365 117.595 151.158 118.802 152.611 120.161C154.088 121.497 155.201 123.02 155.951 124.731C156.724 126.442 157.111 128.376 157.111 130.532C157.111 132.829 156.666 134.868 155.775 136.649C154.885 138.431 153.607 139.942 151.943 141.184C150.279 142.403 148.287 143.329 145.967 143.962C143.646 144.595 141.056 144.911 138.197 144.911C135.572 144.911 132.982 144.583 130.428 143.927C127.896 143.247 125.599 142.216 123.537 140.833C121.474 139.427 119.822 137.634 118.58 135.454C117.361 133.251 116.752 130.638 116.752 127.614H129.127C129.127 129.114 129.326 130.38 129.724 131.411C130.123 132.442 130.709 133.274 131.482 133.907C132.256 134.516 133.205 134.962 134.33 135.243C135.455 135.501 136.744 135.63 138.197 135.63C139.767 135.63 141.033 135.407 141.994 134.962C142.955 134.493 143.658 133.884 144.103 133.134C144.549 132.36 144.771 131.516 144.771 130.602Z" fill="#222F3E"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_10_21" x="19.9905" y="27.7296" width="183.189" height="183.189" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="10"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_10_21"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_10_21" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter1_d_10_21" x="47.2517" y="72.3173" width="129.859" height="92.5938" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="10"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_10_21"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_10_21" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="clip0_10_21">
|
||||
<rect width="200" height="200" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
BIN
public/mstile-144x144.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/mstile-310x150.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/mstile-310x310.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/mstile-70x70.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
345
public/safari-pinned-tab.svg
Normal file
|
|
@ -0,0 +1,345 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M3825 6783 c-25 -7 -93 -56 -110 -80 -7 -10 -148 -254 -315 -543
|
||||
-166 -289 -310 -533 -319 -544 -9 -10 -16 -21 -15 -25 1 -3 -10 -23 -22 -43
|
||||
-13 -21 -24 -41 -24 -46 0 -4 -8 -17 -17 -28 -10 -11 -19 -24 -20 -29 -1 -6
|
||||
-27 -53 -59 -105 -56 -92 -58 -97 -58 -167 0 -63 -3 -74 -19 -79 -11 -4 -24 0
|
||||
-29 7 -8 11 -9 10 -4 -3 3 -10 1 -20 -3 -23 -7 -4 -17 17 -21 45 -3 17 -68 69
|
||||
-100 80 -22 7 -37 16 -35 20 2 3 -4 6 -13 6 -54 0 -73 5 -66 16 4 7 3 8 -4 4
|
||||
-7 -4 -40 0 -74 9 -35 9 -70 18 -78 20 -8 2 -49 13 -90 25 -41 11 -82 23 -90
|
||||
25 -8 1 -42 10 -75 19 -75 21 -90 25 -112 30 -28 6 -434 114 -473 126 -129 37
|
||||
-265 70 -293 70 -46 -1 -110 -33 -135 -67 -38 -54 -42 -99 -16 -199 13 -49 26
|
||||
-102 29 -118 3 -16 8 -32 10 -36 2 -4 20 -67 40 -141 19 -74 55 -210 81 -304
|
||||
25 -93 58 -219 74 -280 16 -60 41 -155 55 -210 48 -184 74 -260 95 -278 31
|
||||
-26 92 -57 102 -51 4 3 8 0 8 -5 0 -6 -5 -11 -11 -11 -5 0 -8 -4 -5 -9 4 -5 3
|
||||
-17 0 -26 -6 -14 -9 -14 -23 -2 -35 31 -88 39 -143 21 -20 -7 -40 -9 -44 -6
|
||||
-4 4 -4 1 0 -5 4 -7 3 -13 -3 -13 -6 0 -77 -32 -158 -71 -82 -39 -152 -71
|
||||
-158 -72 -5 -1 -12 -4 -15 -7 -5 -5 -59 -32 -70 -35 -3 -1 -39 -17 -80 -37
|
||||
-73 -35 -161 -76 -345 -161 -176 -82 -208 -101 -228 -135 -35 -60 -18 -143 36
|
||||
-183 12 -9 166 -116 342 -240 176 -123 322 -227 323 -231 2 -5 10 -8 18 -8 8
|
||||
0 17 -7 20 -15 4 -8 10 -15 16 -15 8 0 72 -43 88 -60 3 -3 12 -9 21 -15 29
|
||||
-17 134 -89 139 -95 3 -3 14 -5 25 -5 11 0 19 -6 17 -13 -1 -8 2 -11 8 -7 6 3
|
||||
8 10 6 14 -3 4 1 8 9 8 7 0 15 -11 18 -24 2 -13 -1 -23 -7 -23 -8 0 -7 -3 1
|
||||
-8 11 -7 30 -82 20 -82 -3 0 -13 7 -21 16 -9 8 -16 11 -16 5 0 -6 -5 -11 -11
|
||||
-11 -5 0 -7 5 -4 10 8 12 -67 -30 -76 -43 -4 -5 -11 -7 -17 -3 -6 3 -8 -2 -5
|
||||
-13 3 -11 -4 -28 -16 -40 -12 -12 -21 -24 -21 -28 0 -5 -13 -28 -29 -53 -15
|
||||
-25 -92 -148 -170 -275 -79 -126 -169 -272 -201 -323 -32 -50 -61 -105 -63
|
||||
-121 -9 -54 30 -104 89 -115 11 -2 113 -7 225 -11 112 -4 238 -8 279 -10 41
|
||||
-2 119 -5 173 -6 61 -2 97 -6 97 -13 0 -6 5 -4 10 4 7 11 12 12 21 3 8 -8 18
|
||||
-9 31 -2 10 5 18 6 18 2 0 -10 117 -5 152 6 23 8 29 6 44 -17 10 -15 17 -29
|
||||
16 -32 0 -3 8 -8 20 -13 13 -4 18 -13 14 -23 -3 -8 -2 -13 3 -10 10 6 147
|
||||
-143 143 -156 -1 -5 2 -7 6 -4 12 7 44 -28 35 -38 -5 -4 -3 -7 2 -6 24 5 37
|
||||
-1 32 -15 -4 -8 -1 -17 5 -21 7 -4 8 -3 4 4 -15 25 9 10 46 -27 21 -22 38 -37
|
||||
38 -34 0 3 7 0 15 -7 13 -11 13 -15 3 -23 -9 -6 -7 -7 6 -3 25 9 73 -33 54
|
||||
-47 -9 -6 -8 -7 5 -3 24 8 133 -70 129 -92 -2 -14 -1 -14 7 -3 7 11 14 10 37
|
||||
-6 42 -30 116 -73 137 -80 9 -3 17 -10 17 -15 0 -5 4 -7 9 -3 6 3 14 -3 20
|
||||
-12 6 -10 11 -14 11 -10 0 4 26 -6 58 -23 31 -16 60 -30 65 -30 4 0 28 -10 55
|
||||
-23 26 -12 66 -29 90 -36 23 -8 42 -18 42 -23 0 -5 4 -7 9 -4 14 9 72 -15 64
|
||||
-27 -3 -6 -1 -7 6 -3 13 9 111 -14 111 -25 0 -4 9 -5 20 -2 11 3 20 1 20 -5 0
|
||||
-6 10 -8 22 -4 11 3 19 1 16 -4 -4 -5 12 -10 33 -11 22 0 47 -4 57 -8 9 -4 35
|
||||
-9 56 -11 22 -2 46 -6 53 -8 7 -3 48 -8 91 -12 78 -6 123 -11 132 -14 3 -1 39
|
||||
-2 80 -2 41 0 81 -6 89 -12 10 -7 13 -7 8 0 -4 7 8 11 34 12 22 1 38 -2 34 -7
|
||||
-3 -5 -1 -13 5 -16 6 -4 9 -1 8 7 -2 7 4 14 12 14 8 1 17 3 20 4 19 7 41 7 45
|
||||
-1 4 -5 13 -5 23 0 18 10 201 34 264 35 20 1 34 4 32 7 -5 9 104 31 117 23 7
|
||||
-4 9 -3 6 2 -6 10 122 48 160 48 12 0 20 3 18 6 -2 4 13 12 33 19 69 24 147
|
||||
55 156 63 15 12 38 10 30 -4 -4 -7 -3 -8 5 -4 6 4 9 11 6 15 -2 5 7 13 21 20
|
||||
21 9 30 9 43 -1 14 -11 14 -11 3 3 -10 14 -10 18 4 23 9 3 21 3 27 -1 7 -3 9
|
||||
-3 5 2 -4 4 34 31 85 59 152 84 328 209 457 324 25 22 49 38 54 35 5 -4 6 -2
|
||||
3 4 -8 13 57 76 68 66 4 -5 6 -3 2 2 -6 12 72 101 86 97 5 -1 6 1 4 5 -3 5 11
|
||||
26 30 48 19 22 32 33 27 25 -4 -8 -3 -11 1 -7 5 4 10 13 11 20 1 7 32 53 68
|
||||
101 37 49 74 102 82 117 8 16 20 29 26 29 6 0 8 3 5 6 -4 4 1 20 10 35 14 23
|
||||
19 26 32 16 14 -10 14 -10 4 3 -10 13 -3 33 36 108 26 51 51 89 56 85 4 -5 5
|
||||
-3 2 3 -7 13 60 187 74 192 5 2 7 8 4 12 -3 5 1 26 9 47 8 21 22 64 31 96 9
|
||||
31 20 55 23 53 4 -2 8 12 9 32 1 21 9 69 18 107 9 39 18 87 21 108 3 21 7 44
|
||||
8 52 1 7 8 21 16 31 9 11 10 15 3 10 -9 -5 -13 0 -13 14 0 14 4 19 13 14 9 -5
|
||||
9 -4 1 5 -7 7 -8 29 -4 55 4 25 8 106 9 183 2 87 7 143 14 152 8 10 9 13 1 8
|
||||
-7 -4 -14 2 -17 14 -3 12 0 22 9 26 11 4 11 7 -2 20 -17 18 -14 49 5 45 7 -1
|
||||
10 2 6 8 -3 6 -11 8 -17 4 -5 -3 -8 2 -7 12 2 11 0 25 -4 32 -5 7 -3 12 5 12
|
||||
10 0 10 2 0 8 -7 5 -13 35 -15 79 -1 39 -6 69 -11 66 -5 -3 -7 8 -4 26 2 17 0
|
||||
31 -5 31 -5 0 -7 9 -4 20 3 11 2 20 -2 20 -8 0 -37 134 -35 157 1 7 -2 10 -7
|
||||
7 -9 -5 -14 23 -11 59 1 10 -2 16 -7 13 -6 -4 -31 52 -37 84 -1 8 -15 43 -30
|
||||
78 -17 40 -18 56 -2 46 7 -5 8 -3 4 5 -5 7 -10 10 -14 7 -3 -3 -34 54 -70 127
|
||||
-35 72 -73 143 -83 156 -10 13 -17 27 -14 31 3 4 -2 10 -10 14 -8 3 -15 12
|
||||
-15 21 0 8 -4 15 -10 15 -5 0 -10 5 -10 11 0 6 -7 17 -15 25 -8 8 -11 22 -8
|
||||
31 4 11 2 14 -5 9 -7 -4 -21 9 -36 32 -13 21 -32 46 -41 55 -9 9 -13 22 -9 28
|
||||
4 7 3 9 -4 5 -6 -3 -21 8 -33 26 -13 18 -29 39 -37 47 -11 12 -11 16 0 23 10
|
||||
8 9 9 -4 5 -17 -6 -48 21 -48 43 0 7 -3 10 -6 7 -9 -9 -65 53 -58 64 3 5 2 8
|
||||
-3 7 -12 -4 -83 55 -83 70 0 7 -4 11 -9 8 -4 -3 -17 4 -27 16 -11 12 -64 57
|
||||
-119 101 -55 44 -99 84 -98 88 2 5 -4 6 -12 3 -8 -4 -15 -1 -15 5 0 6 -6 11
|
||||
-14 11 -7 0 -20 8 -27 17 -12 14 -12 16 0 8 10 -5 12 -4 7 4 -4 6 -11 9 -16 6
|
||||
-5 -3 -19 -1 -30 5 -18 10 -19 14 -8 28 12 15 11 16 -6 2 -16 -13 -20 -12 -32
|
||||
5 -8 10 -14 16 -14 12 0 -4 -9 -3 -20 3 -11 6 -17 16 -14 22 4 7 3 8 -4 4 -13
|
||||
-8 -153 64 -146 76 3 4 -2 5 -10 2 -9 -3 -16 -1 -16 6 0 6 -4 9 -9 6 -4 -3
|
||||
-24 2 -42 12 -32 16 -34 20 -33 67 0 28 -4 56 -10 63 -7 10 -6 16 5 23 12 7
|
||||
11 9 -2 9 -9 0 -24 15 -33 33 -9 17 -30 53 -46 79 -15 25 -39 66 -53 90 -55
|
||||
97 -68 120 -83 143 -9 13 -12 30 -8 36 4 8 3 9 -5 5 -6 -4 -14 0 -18 11 -4 10
|
||||
-27 52 -52 93 -49 84 -468 808 -511 883 -65 117 -158 166 -265 140z"/>
|
||||
<path d="M2676 5278 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
<path d="M2759 5233 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z"/>
|
||||
<path d="M4934 5216 c1 -8 5 -18 8 -22 4 -3 5 1 4 10 -1 8 -5 18 -8 22 -4 3
|
||||
-5 -1 -4 -10z"/>
|
||||
<path d="M4974 5196 c1 -8 5 -18 8 -22 4 -3 5 1 4 10 -1 8 -5 18 -8 22 -4 3
|
||||
-5 -1 -4 -10z"/>
|
||||
<path d="M5275 5131 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5039 5113 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17
|
||||
-17z"/>
|
||||
<path d="M5195 5111 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5109 5083 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z"/>
|
||||
<path d="M5175 5071 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5135 5060 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M5270 5061 c0 -6 4 -13 10 -16 6 -3 7 1 4 9 -7 18 -14 21 -14 7z"/>
|
||||
<path d="M5230 5006 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
|
||||
<path d="M5479 4908 c-5 -18 -6 -38 -1 -34 7 8 12 36 6 36 -2 0 -4 -1 -5 -2z"/>
|
||||
<path d="M5636 4842 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M5495 4820 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
|
||||
-7 -4 -4 -10z"/>
|
||||
<path d="M5659 4748 c-5 -18 -6 -38 -1 -34 7 8 12 36 6 36 -2 0 -4 -1 -5 -2z"/>
|
||||
<path d="M5696 4718 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
<path d="M5734 4676 c1 -8 5 -18 8 -22 4 -3 5 1 4 10 -1 8 -5 18 -8 22 -4 3
|
||||
-5 -1 -4 -10z"/>
|
||||
<path d="M5790 4680 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M5774 4636 c1 -8 5 -18 8 -22 4 -3 5 1 4 10 -1 8 -5 18 -8 22 -4 3
|
||||
-5 -1 -4 -10z"/>
|
||||
<path d="M5830 4545 c0 -7 30 -13 34 -7 3 4 -4 9 -15 9 -10 1 -19 0 -19 -2z"/>
|
||||
<path d="M5855 4500 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M5940 4486 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
|
||||
13z"/>
|
||||
<path d="M5895 4461 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5895 4420 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
|
||||
-7 -4 -4 -10z"/>
|
||||
<path d="M5990 4425 c0 -5 5 -17 10 -25 5 -8 10 -10 10 -5 0 6 -5 17 -10 25
|
||||
-5 8 -10 11 -10 5z"/>
|
||||
<path d="M5993 4355 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M6035 4300 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M6095 4219 c-3 -4 2 -6 10 -5 21 3 28 13 10 13 -9 0 -18 -4 -20 -8z"/>
|
||||
<path d="M6116 4087 c3 -10 9 -15 12 -12 3 3 0 11 -7 18 -10 9 -11 8 -5 -6z"/>
|
||||
<path d="M6230 4056 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
|
||||
13z"/>
|
||||
<path d="M6194 4022 c4 -3 14 -7 22 -8 9 -1 13 0 10 4 -4 3 -14 7 -22 8 -9 1
|
||||
-13 0 -10 -4z"/>
|
||||
<path d="M6159 3993 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17
|
||||
-17z"/>
|
||||
<path d="M6215 3940 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
|
||||
-7 -4 -4 -10z"/>
|
||||
<path d="M6190 3900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M6253 3889 c-2 -23 3 -25 10 -4 4 8 3 16 -1 19 -4 3 -9 -4 -9 -15z"/>
|
||||
<path d="M6296 3862 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M6290 3780 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M6307 3679 c7 -7 15 -10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z"/>
|
||||
<path d="M6299 3633 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17
|
||||
-17z"/>
|
||||
<path d="M6553 3525 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M6356 3487 c3 -10 9 -15 12 -12 3 3 0 11 -7 18 -10 9 -11 8 -5 -6z"/>
|
||||
<path d="M6410 3419 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M6376 3367 c3 -10 9 -15 12 -12 3 3 0 11 -7 18 -10 9 -11 8 -5 -6z"/>
|
||||
<path d="M6456 3342 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M6605 3320 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
|
||||
<path d="M6434 3302 c4 -3 14 -7 22 -8 9 -1 13 0 10 4 -4 3 -14 7 -22 8 -9 1
|
||||
-13 0 -10 -4z"/>
|
||||
<path d="M6425 3200 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
|
||||
<path d="M6470 3166 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
|
||||
<path d="M6406 3142 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M6450 3140 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M6626 2958 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
<path d="M6515 2901 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M6475 2880 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M6495 2819 c-3 -4 2 -6 10 -5 21 3 28 13 10 13 -9 0 -18 -4 -20 -8z"/>
|
||||
<path d="M6466 2802 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M6436 2753 c-6 -14 -5 -15 5 -6 7 7 10 15 7 18 -3 3 -9 -2 -12 -12z"/>
|
||||
<path d="M6475 2760 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
|
||||
-7 -4 -4 -10z"/>
|
||||
<path d="M6516 2753 c-6 -14 -5 -15 5 -6 7 7 10 15 7 18 -3 3 -9 -2 -12 -12z"/>
|
||||
<path d="M6494 2716 c1 -8 5 -18 8 -22 4 -3 5 1 4 10 -1 8 -5 18 -8 22 -4 3
|
||||
-5 -1 -4 -10z"/>
|
||||
<path d="M6496 2538 c3 -4 11 -5 19 -1 21 7 19 12 -4 10 -11 0 -18 -5 -15 -9z"/>
|
||||
<path d="M1070 2486 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
|
||||
<path d="M6550 2446 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
|
||||
<path d="M6450 2420 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M1353 2405 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M6410 2379 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M1335 2351 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M6410 2339 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M6415 2300 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M6410 2260 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M6406 2142 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M6410 2046 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
|
||||
<path d="M6390 1979 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M6335 1940 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M6255 1780 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M6260 1720 c-9 -6 -10 -10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 0z"/>
|
||||
<path d="M6206 1602 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M6119 1578 c-5 -18 -6 -38 -1 -34 7 8 12 36 6 36 -2 0 -4 -1 -5 -2z"/>
|
||||
<path d="M6173 1535 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M6136 1498 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
<path d="M6053 1425 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M6093 1415 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M6195 1369 c-4 -6 -5 -12 -2 -15 2 -3 7 2 10 11 7 17 1 20 -8 4z"/>
|
||||
<path d="M5930 1260 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M1859 1228 c-5 -18 -6 -38 -1 -34 7 8 12 36 6 36 -2 0 -4 -1 -5 -2z"/>
|
||||
<path d="M1957 1173 c-10 -9 -9 -23 1 -23 5 0 9 7 9 15 0 17 -1 18 -10 8z"/>
|
||||
<path d="M1890 1160 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M5850 1139 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M2035 1111 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5813 1105 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M1914 1102 c4 -3 14 -7 22 -8 9 -1 13 0 10 4 -4 3 -14 7 -22 8 -9 1
|
||||
-13 0 -10 -4z"/>
|
||||
<path d="M2110 1000 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M5654 1002 c4 -3 14 -7 22 -8 9 -1 13 0 10 4 -4 3 -14 7 -22 8 -9 1
|
||||
-13 0 -10 -4z"/>
|
||||
<path d="M2035 960 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
|
||||
-4 -4 -10z"/>
|
||||
<path d="M2095 960 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M5630 959 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M5694 942 c4 -3 14 -7 22 -8 9 -1 13 0 10 4 -4 3 -14 7 -22 8 -9 1
|
||||
-13 0 -10 -4z"/>
|
||||
<path d="M2175 900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M5675 901 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5555 859 c-3 -4 2 -6 10 -5 21 3 28 13 10 13 -9 0 -18 -4 -20 -8z"/>
|
||||
<path d="M5616 862 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M5793 847 c0 -8 6 -14 14 -14 9 0 10 4 2 14 -6 7 -12 13 -14 13 -1 0
|
||||
-2 -6 -2 -13z"/>
|
||||
<path d="M5679 833 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17
|
||||
-17z"/>
|
||||
<path d="M5535 831 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M2246 818 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
<path d="M2296 818 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
<path d="M2293 785 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M2335 791 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5413 745 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M2375 740 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M5475 740 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M5633 725 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M5310 720 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M2455 700 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
|
||||
-4 -4 -10z"/>
|
||||
<path d="M2575 671 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M5336 662 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M5235 649 c-4 -6 -5 -12 -2 -15 2 -3 7 2 10 11 7 17 1 20 -8 4z"/>
|
||||
<path d="M2480 640 c-9 -6 -10 -10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 0z"/>
|
||||
<path d="M2510 625 c0 -7 30 -13 34 -7 3 4 -4 9 -15 9 -10 1 -19 0 -19 -2z"/>
|
||||
<path d="M2575 620 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
|
||||
-4 -4 -10z"/>
|
||||
<path d="M2650 620 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M5156 607 c3 -10 9 -15 12 -12 3 3 0 11 -7 18 -10 9 -11 8 -5 -6z"/>
|
||||
<path d="M5214 576 c1 -8 5 -18 8 -22 4 -3 5 1 4 10 -1 8 -5 18 -8 22 -4 3 -5
|
||||
-1 -4 -10z"/>
|
||||
<path d="M2654 556 c1 -8 5 -18 8 -22 4 -3 5 1 4 10 -1 8 -5 18 -8 22 -4 3 -5
|
||||
-1 -4 -10z"/>
|
||||
<path d="M5050 559 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M5095 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
|
||||
-4 -4 -10z"/>
|
||||
<path d="M2716 498 c3 -4 11 -5 19 -1 21 7 19 12 -4 10 -11 0 -18 -5 -15 -9z"/>
|
||||
<path d="M5309 483 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17
|
||||
-17z"/>
|
||||
<path d="M2819 488 c-5 -18 -6 -38 -1 -34 7 8 12 36 6 36 -2 0 -4 -1 -5 -2z"/>
|
||||
<path d="M4946 482 c-3 -5 1 -9 9 -9 8 0 15 4 15 9 0 4 -4 8 -9 8 -6 0 -12 -4
|
||||
-15 -8z"/>
|
||||
<path d="M2890 459 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M4850 459 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M4995 460 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
|
||||
-4 -4 -10z"/>
|
||||
<path d="M3035 449 c-4 -6 -5 -12 -2 -15 2 -3 7 2 10 11 7 17 1 20 -8 4z"/>
|
||||
<path d="M2715 441 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M2960 440 c-9 -6 -10 -10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 0z"/>
|
||||
<path d="M4854 422 c4 -3 14 -7 22 -8 9 -1 13 0 10 4 -4 3 -14 7 -22 8 -9 1
|
||||
-13 0 -10 -4z"/>
|
||||
<path d="M3037 413 c-10 -9 -9 -23 1 -23 5 0 9 7 9 15 0 17 -1 18 -10 8z"/>
|
||||
<path d="M2845 400 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
|
||||
<path d="M2990 379 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M4690 380 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M2915 360 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
|
||||
-8 -4 -11 -10z"/>
|
||||
<path d="M4630 360 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M3210 339 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M3250 340 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M3295 340 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
|
||||
-4 -4 -10z"/>
|
||||
<path d="M3473 325 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
|
||||
<path d="M3136 322 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
|
||||
-9 -8z"/>
|
||||
<path d="M3436 318 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
<path d="M3506 322 c-2 -4 4 -8 14 -8 10 0 16 4 14 8 -3 4 -9 8 -14 8 -5 0
|
||||
-11 -4 -14 -8z"/>
|
||||
<path d="M4267 319 c7 -7 15 -10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z"/>
|
||||
<path d="M4590 325 c0 -5 5 -17 10 -25 5 -8 10 -10 10 -5 0 6 -5 17 -10 25 -5
|
||||
8 -10 11 -10 5z"/>
|
||||
<path d="M3816 302 c-2 -4 -1 -14 4 -22 7 -11 9 -9 7 8 -1 24 -3 26 -11 14z"/>
|
||||
<path d="M4536 298 c3 -4 11 -5 19 -1 21 7 19 12 -4 10 -11 0 -18 -5 -15 -9z"/>
|
||||
<path d="M3509 283 c-13 -16 -12 -17 4 -4 9 7 17 15 17 17 0 8 -8 3 -21 -13z"/>
|
||||
<path d="M4203 282 c10 -10 14 -22 10 -27 -5 -4 -2 -5 5 -1 11 6 10 12 -4 27
|
||||
-9 10 -19 19 -22 19 -3 0 2 -8 11 -18z"/>
|
||||
<path d="M3870 279 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M3390 260 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M3435 259 c-3 -4 2 -6 10 -5 21 3 28 13 10 13 -9 0 -18 -4 -20 -8z"/>
|
||||
<path d="M3519 253 c-12 -16 -12 -17 2 -6 9 7 20 9 24 5 5 -4 5 -1 1 6 -9 16
|
||||
-11 15 -27 -5z"/>
|
||||
<path d="M3650 259 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M4090 259 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
|
||||
-5 -10 -11z"/>
|
||||
<path d="M3315 249 c-4 -6 -5 -12 -2 -15 2 -3 7 2 10 11 7 17 1 20 -8 4z"/>
|
||||
<path d="M3830 256 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
|
||||
13z"/>
|
||||
<path d="M3770 240 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
|
||||
-4 -4 -4 -10z"/>
|
||||
<path d="M3973 209 c-2 -23 3 -25 10 -4 4 8 3 16 -1 19 -4 3 -9 -4 -9 -15z"/>
|
||||
<path d="M3235 201 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
|
||||
<path d="M4026 198 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 20 KiB |
19
src/App.js
|
|
@ -1,18 +1,21 @@
|
|||
import { useEffect, useState } from "react";
|
||||
import "./App.css";
|
||||
import { TaskBar } from "./components/TaskBar.js";
|
||||
import { Window } from "./components/Window.js";
|
||||
import Application from "./modules/applications/application.js";
|
||||
import Vector2 from "./modules/math/vector2.js";
|
||||
import WindowsManager from "./modules/windows/windows.js";
|
||||
|
||||
export const windowsManager = new WindowsManager();
|
||||
|
||||
function App() {
|
||||
const [windows, setWindows] = useState([]);
|
||||
|
||||
useEffect(() => {
|
||||
setWindows(Object.values(windowsManager.windows));
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="App">
|
||||
<TaskBar/>
|
||||
<Window
|
||||
app={new Application("Terminal", "terminal")}
|
||||
size={new Vector2(500, 250)}
|
||||
position={new Vector2(100, 50)}
|
||||
/>
|
||||
{windows}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
}
|
||||
|
||||
.Task-bar button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: var(--foreground-color-a);
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ import "./TaskBar.css";
|
|||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import { faBatteryFull, faSearch, faVolumeHigh, faWifi } from "@fortawesome/free-solid-svg-icons";
|
||||
import { ReactSVG } from "react-svg";
|
||||
import ApplicationsManager from "../modules/applications/applications.js";
|
||||
import { windowsManager } from "../App.js";
|
||||
|
||||
export function TaskBar() {
|
||||
const [date, setDate] = useState(new Date());
|
||||
|
|
@ -19,21 +21,11 @@ export function TaskBar() {
|
|||
<button>
|
||||
<FontAwesomeIcon icon={faSearch}/>
|
||||
</button>
|
||||
<button>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + "/media/applications/icons/file-explorer.svg"}/>
|
||||
</button>
|
||||
<button>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + "/media/applications/icons/terminal.svg"}/>
|
||||
</button>
|
||||
<button>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + "/media/applications/icons/code-editor.svg"}/>
|
||||
</button>
|
||||
<button>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + "/media/applications/icons/media-viewer.svg"}/>
|
||||
</button>
|
||||
<button>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + "/media/applications/icons/browser.svg"}/>
|
||||
</button>
|
||||
{ApplicationsManager.APPLICATIONS.forEach((app) =>
|
||||
<button key={app.id} onClick={windowsManager.open(app.id)}>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + `/media/applications/icons/${app.id}.svg`}/>
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
<div className="Util-icons">
|
||||
<button>
|
||||
|
|
@ -58,9 +50,7 @@ export function TaskBar() {
|
|||
year: "numeric",
|
||||
})}
|
||||
</button>
|
||||
<button id="desktop-button">
|
||||
|
||||
</button>
|
||||
<button id="desktop-button"/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,9 @@
|
|||
.Header > button {
|
||||
margin: 0;
|
||||
padding: 0.5rem;
|
||||
height: var(--header-height);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.Header button {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@ import "./Window.css";
|
|||
import { faMinus, faXmark } from "@fortawesome/free-solid-svg-icons";
|
||||
import { faSquare } from "@fortawesome/free-regular-svg-icons";
|
||||
import { ReactSVG } from "react-svg";
|
||||
import { windowsManager } from "../App.js";
|
||||
|
||||
export function Window({ app, size, position, focused = false, minimized = false, maximized = false }) {
|
||||
export function Window({ id, app, size, position, focused = false, minimized = false, maximized = false }) {
|
||||
return (
|
||||
<div
|
||||
className="Window-container"
|
||||
|
|
@ -24,7 +25,7 @@ export function Window({ app, size, position, focused = false, minimized = false
|
|||
<button>
|
||||
<FontAwesomeIcon icon={faSquare}/>
|
||||
</button>
|
||||
<button>
|
||||
<button onClick={windowsManager.close(id)}>
|
||||
<FontAwesomeIcon icon={faXmark}/>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -26,13 +26,63 @@
|
|||
--background-color-a: var(--dark-grey-b);
|
||||
--background-color-b: var(--dark-grey-c);
|
||||
--background-color-c: var(--dark-grey-d);
|
||||
|
||||
--body-font-family: "Poppins", -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-Thin.ttf");
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-ExtraLight.ttf");
|
||||
font-weight: 200;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-Light.ttf");
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-Regular.ttf");
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-SemiBold.ttf");
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-Bold.ttf");
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-ExtraBold.ttf");
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Poppins";
|
||||
src: url("/public/media/fonts/Poppins/Poppins-Black.ttf");
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
font-family: var(--body-font-family);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
|
@ -54,4 +104,9 @@ html, body, #root {
|
|||
* {
|
||||
color: var(--foreground-color-a);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
p, a, button, input, h1, h2, h3, h4, h5, h6 {
|
||||
font-family: var(--body-font-family);
|
||||
letter-spacing: 0.01rem;
|
||||
}
|
||||
20
src/modules/applications/applications.js
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import Application from "./application.js";
|
||||
|
||||
export default class ApplicationsManager {
|
||||
static APPLICATIONS = [
|
||||
new Application("Terminal", "terminal"),
|
||||
]
|
||||
|
||||
static getApplication(id) {
|
||||
let application = null;
|
||||
|
||||
this.APPLICATIONS.forEach((app) => {
|
||||
if (app.id === id) {
|
||||
application = app;
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
return application;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,40 @@
|
|||
import { Window } from "../../components/Window.js";
|
||||
import ApplicationsManager from "../applications/applications.js";
|
||||
import Vector2 from "../math/vector2.js";
|
||||
|
||||
export default class WindowsManager {
|
||||
constructor() {
|
||||
this.windows = [];
|
||||
windows = {};
|
||||
|
||||
open(appId) {
|
||||
const appData = ApplicationsManager.getApplication(appId);
|
||||
const size = new Vector2(800, 400);
|
||||
const position = new Vector2(300, 200);
|
||||
|
||||
let id = 0;
|
||||
while (Object.keys(this.windows).includes(id)) {
|
||||
id++;
|
||||
}
|
||||
|
||||
console.log(`Opening window ${id}:${appData.id}`);
|
||||
|
||||
this.windows[id] = <Window
|
||||
id={id}
|
||||
key={id}
|
||||
app={appData}
|
||||
size={size}
|
||||
position={position}
|
||||
/>;
|
||||
}
|
||||
|
||||
close(windowId) {
|
||||
if (!Object.keys(this.windows).includes(windowId))
|
||||
return;
|
||||
|
||||
console.log(`Closing window ${windowId}`);
|
||||
delete this.windows[windowId];
|
||||
}
|
||||
|
||||
get windowsCount() {
|
||||
return Object.keys(this.windows).length;
|
||||
}
|
||||
}
|
||||