diff --git a/composer.json b/composer.json index 2b56de8..2a95ccb 100755 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "require": { "php": "^8.4", "triagens/arangodb": "^3.8", - "mirzaev/minimal": "^3.2.0", + "mirzaev/minimal": "^3.3.0", "mirzaev/arangodb": "^1.3", "twig/twig": "^3.10", "twig/extra-bundle": "^3.7", diff --git a/svoboda/works/system/controllers/core.php b/svoboda/works/system/controllers/core.php index aac7c32..5da9795 100755 --- a/svoboda/works/system/controllers/core.php +++ b/svoboda/works/system/controllers/core.php @@ -5,9 +5,10 @@ declare(strict_types=1); namespace svoboda\works\controllers; // Files of the project -use svoboda\works\views\manager, +use svoboda\works\views\templater, svoboda\works\models\core as models, - svoboda\works\models\session; + svoboda\works\models\session, + svoboda\works\models\enumerations\language; // Framework for PHP use mirzaev\minimal\core as minimal, @@ -71,18 +72,18 @@ class core extends controller /** * Constructor * - * @param minimal $minimal Instance of the MINIMAL + * @param minimal $core Instance of the MINIMAL * @param bool $initialize Initialize a controller? * * @return void */ - public function __construct(minimal $minimal, bool $initialize = true) + public function __construct(minimal $core, bool $initialize = true) { // Blocking requests from CloudFlare (better to write this blocking into nginx config file) if (isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] === 'nginx-ssl early hints') return status::bruh->label; // For the extends system - parent::__construct(core: $minimal); + parent::__construct(core: $core); if ($initialize) { // Requestet initializing @@ -90,7 +91,7 @@ class core extends controller // Initializing core of the models new models(); - // Initializing of the date until which the session will be active + /* // Initializing of the date until which the session will be active $expires = strtotime('+1 week'); // Initializing of default value of hash of the session @@ -116,10 +117,11 @@ class core extends controller 'samesite' => 'strict' ] ); - } + } */ // Initializing of preprocessor of views - $this->view = new templater($this->session); + /* $this->view = new templater($this->session); */ + $this->view = new templater(); } } } diff --git a/svoboda/works/system/controllers/index.php b/svoboda/works/system/controllers/index.php index 1a97c3f..c1b12f7 100755 --- a/svoboda/works/system/controllers/index.php +++ b/svoboda/works/system/controllers/index.php @@ -8,7 +8,8 @@ namespace svoboda\works\controllers; use svoboda\works\controllers\core; // Framework for PHP -use mirzaev\minimal\http\enumerations\status; +use mirzaev\minimal\http\enumerations\content, +mirzaev\minimal\http\enumerations\status; /** * Index @@ -44,7 +45,7 @@ final class index extends core // Request for any response // Render page - $page = $this->view->render('index.html'); + $page = $this->view->render('/pages/statistics/total.html'); // Sending response $this->response diff --git a/svoboda/works/system/models/core.php b/svoboda/works/system/models/core.php index 233524e..532eb34 100755 --- a/svoboda/works/system/models/core.php +++ b/svoboda/works/system/models/core.php @@ -8,15 +8,6 @@ namespace svoboda\works\models; use mirzaev\minimal\model, mirzaev\minimal\http\enumerations\status; -// Framework for ArangoDB -use mirzaev\arangodb\connection as arangodb, - mirzaev\arangodb\collection, - mirzaev\arangodb\document; - -// Library for ArangoDB -use ArangoDBClient\Document as _document, - ArangoDBClient\DocumentHandler as _document_handler; - // Built-in libraries use exception; @@ -29,27 +20,12 @@ use exception; * @param arangodb $arangodb Instance of the ArangoDB session * * @method void __construct(bool $initialize, ?arangodb $arangodb) Constructor - * @method _document|static|array|null read(string $filter, string $sort, int $amount, int $page, string $return, array $parameters, array &$errors) Read document from ArangoDB * * @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License * @author svoboda */ class core extends model { - /** - * ArangoDB connection daa - * - * @var string ARANGODB Path to the file with ArangoDB session connection data - */ - final public const string ARANGODB = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'settings' . DIRECTORY_SEPARATOR . 'arangodb.php'; - - /** - * ArangoDB - * - * @var arangodb $arangodb Instance of the ArangoDB session - */ - protected static arangodb $arangodb; - /** * Constructor * @@ -58,173 +34,10 @@ class core extends model * * @return void */ - public function __construct(bool $initialize = true, ?arangodb $arangodb = null) + public function __construct(bool $initialize = true) { // For the extends system parent::__construct($initialize); - - if ($initialize) { - // Initializing is requested - - // Writing an instance of a session of ArangoDB to the property - self::$arangodb = $arangodb ?? new arangodb(require static::ARANGODB); - } - } - - /** - * Read document from ArangoDB - * - * @param string $filter Expression for filtering (AQL) - * @param string $sort Expression for sorting (AQL) - * @param int $amount Amount of documents for collect - * @param int $page Page - * @param string $return Expression describing the parameters to return (AQL) - * @param array $parameters Binded parameters for placeholders ['placeholder' => parameter] - * @param array &$errors Registry of errors - * - * @return mixed An array of instances of documents from ArangoDB, if they are found - */ - public static function _read( - string $filter = '', - string $sort = 'd.created DESC, d._key DESC', - int $amount = 1, - int $page = 1, - string $return = 'd', - array $parameters = [], - array &$errors = [] - ): _document|static|array|null { - try { - if (collection::initialize(static::COLLECTION, static::TYPE)) { - // Initialized the collection - - // Read from ArangoDB - $result = collection::execute( - sprintf( - <<<'AQL' - FOR d IN @@collection - %s - %s - LIMIT @offset, @amount - RETURN %s - AQL, - empty($filter) ? '' : "FILTER $filter", - empty($sort) ? '' : "SORT $sort", - empty($return) ? 'd' : $return - ), - [ - '@collection' => static::COLLECTION, - 'offset' => --$page <= 0 ? 0 : $page * $amount, - 'amount' => $amount - ] + $parameters, - errors: $errors - ); - - if ($amount === 1 && $result instanceof _document) { - // Received only 1 document and @todo rebuild - - // Initializing the object - $object = new static; - - if (method_exists($object, '__document')) { - // Object can implement a document from ArangoDB - - // Writing the instance of document from ArangoDB to the implement object - $object->__document($result); - - // Exit (success) - return $object; - } - } - - // Exit (success) - return $result; - } else throw new exception('Failed to initialize ' . static::TYPE . ' collection: ' . static::COLLECTION); - } catch (exception $e) { - // Writing to registry of errors - $errors[] = [ - 'text' => $e->getMessage(), - 'file' => $e->getFile(), - 'line' => $e->getLine(), - 'stack' => $e->getTrace() - ]; - } - - // Exit (fail) - return null; - } - - /** - * Write - * - * @param string $name Name of the property - * @param mixed $value Value of the property - * - * @return void - */ - public function __set(string $name, mixed $value = null): void - { - match ($name) { - 'arangodb' => (function () use ($value) { - if (isset(static::$arangodb)) throw new exception('Forbidden to reinitialize the ArangoDB session($this::$arangodb)', status::internal_server_error->value); - else if ($value instanceof arangodb) self::$arangodb = $value; - else throw new exception('Session of connection to ArangoDB ($this::$arangodb) is need to be mirzaev\arangodb\connection', status::internal_server_error->value); - })(), - default => parent::__set($name, $value) - }; - } - - /** - * Read - * - * @param string $name Name of the property - * - * @return mixed Content of the property, if they are found - */ - public function __get(string $name): mixed - { - return match ($name) { - default => parent::__get($name) - }; - } - - /** - * Delete - * - * @param string $name Name of the property - * - * @return void - */ - public function __unset(string $name): void - { - // Deleting a property and exit (success) - parent::__unset($name); - } - - /** - * Check of initialization - * - * @param string $name Name of the property - * - * @return bool The property is initialized? - */ - public function __isset(string $name): bool - { - // Check of initialization of the property and exit (success) - return parent::__isset($name); - } - - /** - * Call a static property or method - * - * @param string $name Name of the property or the method - * @param array $arguments Arguments for the method - */ - public static function __callStatic(string $name, array $arguments): mixed - { - return match ($name) { - 'arangodb' => (new static)->__get('arangodb'), - default => throw new exception("Not found: $name", 500) - }; } } diff --git a/svoboda/works/system/models/interfaces/collection.php b/svoboda/works/system/models/interfaces/collection.php deleted file mode 100755 index b6caee0..0000000 --- a/svoboda/works/system/models/interfaces/collection.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -interface collection -{ - /** - * Name of the collection in ArangoDB - */ - public const string COLLECTION = 'THIS_COLLECTION_SHOULD_NOT_EXIST'; - - /** - * Type of the collection in ArangoDB - */ - public const type TYPE = type::document; -} diff --git a/svoboda/works/system/models/interfaces/document.php b/svoboda/works/system/models/interfaces/document.php deleted file mode 100755 index ddc34b2..0000000 --- a/svoboda/works/system/models/interfaces/document.php +++ /dev/null @@ -1,81 +0,0 @@ - - */ -interface document -{ - /** - * Write - * - * Write a property into an instance of the ArangoDB document - * - * @param string $name Name of the property - * @param mixed $value Content of the property - * - * @return void - */ - public function __set(string $name, mixed $value = null): void; - - /** - * Read - * - * Read a property from an instance of the ArangoDB docuemnt - * - * @param string $name Name of the property - * - * @return mixed Content of the property - */ - public function __get(string $name): mixed; - - - /** - * Delete - * - * Deinitialize the property in an instance of the ArangoDB document - * - * @param string $name Name of the property - * - * @return void - */ - public function __unset(string $name): void; - - /** - * Check of initialization - * - * Check of initialization of the property into an instance of the ArangoDB document - * - * @param string $name Name of the property - * - * @return bool The property is initialized? - */ - public function __isset(string $name): bool; - - /** - * Execute a method - * - * Execute a method from an instance of the ArangoDB document - * - * @param string $name Name of the method - * @param array $arguments Arguments for the method - * - * @return mixed Result of execution of the method - */ - public function __call(string $name, array $arguments = []): mixed; -} diff --git a/svoboda/works/system/models/traits/document.php b/svoboda/works/system/models/traits/document.php deleted file mode 100755 index 42e3ce0..0000000 --- a/svoboda/works/system/models/traits/document.php +++ /dev/null @@ -1,206 +0,0 @@ - - */ -trait document -{ - /** - * Document - * - * @var _document $document An instance of the document from ArangoDB - */ - protected readonly _document $document; - - /** - * Constructor - * - * @param bool $initialize Initialize a model? - * @param ?arangodb $arangodb Instance of a session of ArangoDB - * @param _document|null|false $document An instance of the ArangoDB document - * - * @return void - */ - public function __construct( - bool $initialize = true, - ?arangodb $arangodb = null, - _document|null|false $document = false - ) { - // For the extends system - parent::__construct($initialize, $arangodb); - - // Writing to the property - if ($document instanceof _document) $this->__document($document); - else if ($document === null) throw new exception('Failed to initialize an instance of the document from ArangoDB'); - } - - /** - * Write or read document - * - * @param _document|null $document Instance of document from ArangoDB - * - * @return _document|null Instance of document from ArangoDB - */ - public function __document(?_document $document = null): ?_document - { - // Writing a property storing a document instance to ArangoDB - if ($document) $this->document ??= $document; - - // Read a property storing a document instance to ArangoDB and exit (success) - return $this->document ?? null; - } - - /** - * Connect - * - * @param collecton_interface $document Document - * @param array &$errors Registry of errors - * - * @return string|null The identifier of the created edge of the "connect" collection, if created - */ - public function connect(collection_interface $document, array &$errors = []): ?string - { - try { - if (collection::initialize(static::COLLECTION, static::TYPE, errors: $errors)) { - if (collection::initialize(connect::COLLECTION, connect::TYPE, errors: $errors)) { - if (collection::initialize($document::COLLECTION, $document::TYPE, errors: $errors)) { - // Initialized collections - - if ($this->document instanceof _document) { - // Initialized instance of the document from ArangoDB - - // Writing document and exit (success) - return framework_document::write( - connect::COLLECTION, - [ - '_from' => $document->getId(), - '_to' => $this->document->getId() - ], - errors: $errors - ); - } else throw new exception('The instance of the document from ArangoDB is not initialized'); - } else throw new exception('Failed to initialize ' . $document::TYPE . ' collection: ' . $document::COLLECTION); - } else throw new exception('Failed to initialize ' . connect::TYPE . ' collection: ' . connect::COLLECTION); - } else throw new exception('Failed to initialize ' . static::TYPE . ' collection: ' . static::COLLECTION); - } catch (exception $e) { - // Writing to the registry of errors - $errors[] = [ - 'text' => $e->getMessage(), - 'file' => $e->getFile(), - 'line' => $e->getLine(), - 'stack' => $e->getTrace() - ]; - } - - // Exit (fail) - return null; - } - - /** - * Write - * - * Write a property into an instance of the ArangoDB document - * - * @param string $name Name of the property - * @param mixed $value Content of the property - * - * @return void - */ - public function __set(string $name, mixed $value = null): void - { - // Writing to the property into an instance of the ArangoDB document and exit (success) - $this->document->{$name} = $value; - } - - /** - * Read - * - * Read a property from an instance of the ArangoDB docuemnt - * - * @param string $name Name of the property - * - * @return mixed Content of the property - */ - public function __get(string $name): mixed - { - // Read a property from an instance of the ArangoDB document and exit (success) - return match ($name) { - default => $this->document->{$name} - }; - } - - /** - * Delete - * - * Deinitialize the property in an instance of the ArangoDB document - * - * @param string $name Name of the property - * - * @return void - */ - public function __unset(string $name): void - { - // Delete the property in an instance of the ArangoDB document and exit (success) - unset($this->document->{$name}); - } - - /** - * Check of initialization - * - * Check of initialization of the property into an instance of the ArangoDB document - * - * @param string $name Name of the property - * - * @return bool The property is initialized? - */ - public function __isset(string $name): bool - { - // Check of initializatio nof the property and exit (success) - return isset($this->document->{$name}); - } - - /** - * Execute a method - * - * Execute a method from an instance of the ArangoDB document - * - * @param string $name Name of the method - * @param array $arguments Arguments for the method - * - * @return mixed Result of execution of the method - */ - public function __call(string $name, array $arguments = []): mixed - { - // Execute the method and exit (success) - return method_exists($this->document, $name) ? $this->document->{$name}($arguments) ?? null : null; - } -} diff --git a/svoboda/works/system/public/css/fonts/dejavu.css b/svoboda/works/system/public/css/fonts/dejavu.css new file mode 100755 index 0000000..5012ff4 --- /dev/null +++ b/svoboda/works/system/public/css/fonts/dejavu.css @@ -0,0 +1,34 @@ +@font-face { + font-family: 'DejaVu'; + src: url("/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf"); + font-weight: 200; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu'; + src: url("/fonts/dejavu/DejaVuLGCSans.ttf"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu'; + src: url("/fonts/dejavu/DejaVuLGCSans-Oblique.ttf"); + font-weight: 400; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu'; + src: url("/fonts/dejavu/DejaVuLGCSans-Bold.ttf"); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu'; + src: url("/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf"); + font-weight: 500; + font-style: italic; +} diff --git a/svoboda/works/system/public/css/fonts/fira.css b/svoboda/works/system/public/css/fonts/fira.css new file mode 100755 index 0000000..074cfc0 --- /dev/null +++ b/svoboda/works/system/public/css/fonts/fira.css @@ -0,0 +1,139 @@ +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-Hair.woff2') format('woff2'), url('/fonts/fira/FiraSans-Hair.woff') format('woff'); + font-weight: 100; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-HairItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-HairItalic.woff') format('woff'); + font-weight: 100; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-UltraLight.woff2') format('woff2'), url('/fonts/fira/FiraSans-UltraLight.woff') format('woff'); + font-weight: 200; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-UltraLightItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-UltraLightItalic.woff') format('woff'); + font-weight: 200; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-Light.woff2') format('woff2'), url('/fonts/fira/FiraSans-Light.woff') format('woff'); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-LightItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-LightItalic.woff') format('woff'); + font-weight: 300; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-Regular.woff2') format('woff2'), url('/fonts/fira/FiraSans-Regular.woff') format('woff'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-Italic.woff2') format('woff2'), url('/fonts/fira/FiraSans-Italic.woff') format('woff'); + font-weight: 400; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraMono-Medium.woff2') format('woff2'), url('/fonts/fira/FiraMono-Medium.woff') format('woff'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-MediumItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-MediumItalic.woff') format('woff'); + font-weight: 500; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-SemiBold.woff2') format('woff2'), url('/fonts/fira/FiraSans-SemiBold.woff') format('woff'); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-SemiBoldItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-SemiBoldItalic.woff') format('woff'); + font-weight: 600; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-Bold.woff2') format('woff2'), url('/fonts/fira/FiraSans-Bold.woff') format('woff'); + font-weight: 700; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-BoldItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-BoldItalic.woff') format('woff'); + font-weight: 700; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-ExtraBold.woff2') format('woff2'), url('/fonts/fira/FiraSans-ExtraBold.woff') format('woff'); + font-weight: 800; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-ExtraBoldItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-ExtraBoldItalic.woff') format('woff'); + font-weight: 800; + font-style: italic; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-Heavy.woff2') format('woff2'), url('/fonts/fira/FiraSans-Heavy.woff') format('woff'); + font-weight: 900; + font-style: normal; +} + +@font-face { + font-family: 'Fira'; + src: url('/fonts/fira/FiraSans-HeavyItalic.woff2') format('woff2'), url('/fonts/fira/FiraSans-HeavyItalic.woff') format('woff'); + font-weight: 900; + font-style: italic; +} + +@font-face { + font-family: 'Fira' Mono; + src: url('/fonts/fira/FiraMono-Regular.woff2') format('woff2'), url('/fonts/fira/FiraMono-Regular.woff') format('woff'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Fira' Mono; + src: url('/fonts/fira/FiraMono-Bold.woff2') format('woff2'), url('/fonts/fira/FiraMono-Bold.woff') format('woff'); + font-weight: 600; + font-style: normal; +} diff --git a/svoboda/works/system/public/css/fonts/hack.css b/svoboda/works/system/public/css/fonts/hack.css new file mode 100755 index 0000000..ea1ca63 --- /dev/null +++ b/svoboda/works/system/public/css/fonts/hack.css @@ -0,0 +1,31 @@ +@font-face { + font-family: 'Hack'; + src: url('/fonts/hack/hack-regular.woff2?sha=3114f1256') format('woff2'), url('/fonts/hack/hack-regular.woff?sha=3114f1256') format('woff'); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('/fonts/hack/hack-bold.woff2?sha=3114f1256') format('woff2'), url('/fonts/hack/hack-bold.woff?sha=3114f1256') format('woff'); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('/fonts/hack/hack-italic.woff2?sha=3114f1256') format('woff2'), url('/fonts/hack/hack-italic.woff?sha=3114f1256') format('woff'); + font-weight: 400; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('/fonts/hack/hack-bolditalic.woff2?sha=3114f1256') format('woff2'), url('/fonts/hack/hack-bolditalic.woff?sha=3114f1256') format('woff'); + font-weight: 700; + font-style: italic; + font-display: swap; +} diff --git a/svoboda/works/system/public/fonts/commissioner.ttf b/svoboda/works/system/public/fonts/commissioner.ttf new file mode 100755 index 0000000..08a14a6 Binary files /dev/null and b/svoboda/works/system/public/fonts/commissioner.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-Bold.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-Bold.ttf new file mode 100755 index 0000000..6b91770 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-Bold.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf new file mode 100755 index 0000000..e861445 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf new file mode 100755 index 0000000..5980ad1 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-Oblique.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-Oblique.ttf new file mode 100755 index 0000000..af7ed6f Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans-Oblique.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans.ttf new file mode 100755 index 0000000..ee53cf3 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSans.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Bold.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Bold.ttf new file mode 100755 index 0000000..6329d05 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Bold.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-BoldOblique.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-BoldOblique.ttf new file mode 100755 index 0000000..9733117 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-BoldOblique.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Oblique.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Oblique.ttf new file mode 100755 index 0000000..3a976a3 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Oblique.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed.ttf new file mode 100755 index 0000000..4b3d4b6 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansCondensed.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-Bold.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-Bold.ttf new file mode 100755 index 0000000..3913466 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-Bold.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-BoldOblique.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-BoldOblique.ttf new file mode 100755 index 0000000..63d8eef Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-BoldOblique.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-Oblique.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-Oblique.ttf new file mode 100755 index 0000000..d27952f Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono-Oblique.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono.ttf new file mode 100755 index 0000000..30fce76 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSansMono.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-Bold.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-Bold.ttf new file mode 100755 index 0000000..1d3a350 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-Bold.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-BoldItalic.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-BoldItalic.ttf new file mode 100755 index 0000000..2006ad4 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-BoldItalic.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-Italic.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-Italic.ttf new file mode 100755 index 0000000..1b0867a Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif-Italic.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif.ttf new file mode 100755 index 0000000..59704e7 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerif.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Bold.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Bold.ttf new file mode 100755 index 0000000..9045758 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Bold.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-BoldItalic.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-BoldItalic.ttf new file mode 100755 index 0000000..45e83a1 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-BoldItalic.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Italic.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Italic.ttf new file mode 100755 index 0000000..63c6800 Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Italic.ttf differ diff --git a/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed.ttf b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed.ttf new file mode 100755 index 0000000..e4ac7ec Binary files /dev/null and b/svoboda/works/system/public/fonts/dejavu/DejaVuLGCSerifCondensed.ttf differ diff --git a/svoboda/works/system/public/fonts/fira/FiraMono-Bold.woff b/svoboda/works/system/public/fonts/fira/FiraMono-Bold.woff new file mode 100755 index 0000000..735352f Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraMono-Bold.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraMono-Bold.woff2 b/svoboda/works/system/public/fonts/fira/FiraMono-Bold.woff2 new file mode 100755 index 0000000..832aaab Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraMono-Bold.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraMono-Medium.woff b/svoboda/works/system/public/fonts/fira/FiraMono-Medium.woff new file mode 100755 index 0000000..a33c724 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraMono-Medium.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraMono-Medium.woff2 b/svoboda/works/system/public/fonts/fira/FiraMono-Medium.woff2 new file mode 100755 index 0000000..610e9b2 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraMono-Medium.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraMono-Regular.woff b/svoboda/works/system/public/fonts/fira/FiraMono-Regular.woff new file mode 100755 index 0000000..b38ee14 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraMono-Regular.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraMono-Regular.woff2 b/svoboda/works/system/public/fonts/fira/FiraMono-Regular.woff2 new file mode 100755 index 0000000..9fa44b7 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraMono-Regular.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Bold.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Bold.woff new file mode 100755 index 0000000..a8dba64 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Bold.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Bold.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Bold.woff2 new file mode 100755 index 0000000..4c550c7 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Bold.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-BoldItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-BoldItalic.woff new file mode 100755 index 0000000..54895de Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-BoldItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-BoldItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-BoldItalic.woff2 new file mode 100755 index 0000000..9e66901 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-BoldItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Book.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Book.woff new file mode 100755 index 0000000..3d39706 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Book.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Book.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Book.woff2 new file mode 100755 index 0000000..9d5db65 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Book.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-BookItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-BookItalic.woff new file mode 100755 index 0000000..ae9a33e Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-BookItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-BookItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-BookItalic.woff2 new file mode 100755 index 0000000..84f272c Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-BookItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Eight.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Eight.woff new file mode 100755 index 0000000..4fcce27 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Eight.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Eight.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Eight.woff2 new file mode 100755 index 0000000..b5b1dfe Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Eight.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-EightItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-EightItalic.woff new file mode 100755 index 0000000..4510262 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-EightItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-EightItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-EightItalic.woff2 new file mode 100755 index 0000000..48dc9f9 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-EightItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBold.woff b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBold.woff new file mode 100755 index 0000000..7160357 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBold.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBold.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBold.woff2 new file mode 100755 index 0000000..c343ae9 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBold.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff new file mode 100755 index 0000000..7914f0e Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff2 new file mode 100755 index 0000000..88aaaba Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLight.woff b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLight.woff new file mode 100755 index 0000000..005d0b7 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLight.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLight.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLight.woff2 new file mode 100755 index 0000000..447bc7d Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLight.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff new file mode 100755 index 0000000..fef3e38 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff2 new file mode 100755 index 0000000..54016b9 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Four.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Four.woff new file mode 100755 index 0000000..4da1db7 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Four.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Four.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Four.woff2 new file mode 100755 index 0000000..95ebb7e Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Four.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-FourItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-FourItalic.woff new file mode 100755 index 0000000..a3f8468 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-FourItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-FourItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-FourItalic.woff2 new file mode 100755 index 0000000..cf40809 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-FourItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Hair.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Hair.woff new file mode 100755 index 0000000..5fbacb7 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Hair.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Hair.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Hair.woff2 new file mode 100755 index 0000000..10e7287 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Hair.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-HairItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-HairItalic.woff new file mode 100755 index 0000000..f2d7f98 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-HairItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-HairItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-HairItalic.woff2 new file mode 100755 index 0000000..6027bad Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-HairItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Heavy.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Heavy.woff new file mode 100755 index 0000000..ad5de4b Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Heavy.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Heavy.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Heavy.woff2 new file mode 100755 index 0000000..b61bf0d Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Heavy.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-HeavyItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-HeavyItalic.woff new file mode 100755 index 0000000..7914da9 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-HeavyItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-HeavyItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-HeavyItalic.woff2 new file mode 100755 index 0000000..f12daf3 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-HeavyItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Italic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Italic.woff new file mode 100755 index 0000000..2980194 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Italic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Italic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Italic.woff2 new file mode 100755 index 0000000..3f63664 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Italic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Light.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Light.woff new file mode 100755 index 0000000..747071e Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Light.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Light.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Light.woff2 new file mode 100755 index 0000000..5c0e34d Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Light.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-LightItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-LightItalic.woff new file mode 100755 index 0000000..e19720a Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-LightItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-LightItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-LightItalic.woff2 new file mode 100755 index 0000000..0e9b453 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-LightItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Medium.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Medium.woff new file mode 100755 index 0000000..7d742c5 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Medium.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Medium.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Medium.woff2 new file mode 100755 index 0000000..7a1e5fc Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Medium.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-MediumItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-MediumItalic.woff new file mode 100755 index 0000000..dd5bbe6 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-MediumItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-MediumItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-MediumItalic.woff2 new file mode 100755 index 0000000..2d08f9f Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-MediumItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Regular.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Regular.woff new file mode 100755 index 0000000..d8e0363 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Regular.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Regular.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Regular.woff2 new file mode 100755 index 0000000..e766e06 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Regular.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-SemiBold.woff b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBold.woff new file mode 100755 index 0000000..8b408d4 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBold.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-SemiBold.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBold.woff2 new file mode 100755 index 0000000..bafabb5 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBold.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff new file mode 100755 index 0000000..2592e4f Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff2 new file mode 100755 index 0000000..a256463 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Thin.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Thin.woff new file mode 100755 index 0000000..f986fb5 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Thin.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Thin.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Thin.woff2 new file mode 100755 index 0000000..73e2d82 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Thin.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ThinItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-ThinItalic.woff new file mode 100755 index 0000000..c90247e Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ThinItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-ThinItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-ThinItalic.woff2 new file mode 100755 index 0000000..c8d3b36 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-ThinItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Two.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Two.woff new file mode 100755 index 0000000..f1db0fb Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Two.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Two.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Two.woff2 new file mode 100755 index 0000000..6b389c7 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Two.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-TwoItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-TwoItalic.woff new file mode 100755 index 0000000..f5ddbf6 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-TwoItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-TwoItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-TwoItalic.woff2 new file mode 100755 index 0000000..479ca9f Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-TwoItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Ultra.woff b/svoboda/works/system/public/fonts/fira/FiraSans-Ultra.woff new file mode 100755 index 0000000..b42f714 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Ultra.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-Ultra.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-Ultra.woff2 new file mode 100755 index 0000000..ea4c78b Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-Ultra.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-UltraItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-UltraItalic.woff new file mode 100755 index 0000000..3486307 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-UltraItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-UltraItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-UltraItalic.woff2 new file mode 100755 index 0000000..5afeecc Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-UltraItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-UltraLight.woff b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLight.woff new file mode 100755 index 0000000..2c22e94 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLight.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-UltraLight.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLight.woff2 new file mode 100755 index 0000000..02eb286 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLight.woff2 differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-UltraLightItalic.woff b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLightItalic.woff new file mode 100755 index 0000000..421f933 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLightItalic.woff differ diff --git a/svoboda/works/system/public/fonts/fira/FiraSans-UltraLightItalic.woff2 b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLightItalic.woff2 new file mode 100755 index 0000000..7c48ba0 Binary files /dev/null and b/svoboda/works/system/public/fonts/fira/FiraSans-UltraLightItalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bold-subset.woff b/svoboda/works/system/public/fonts/hack/hack-bold-subset.woff new file mode 100755 index 0000000..a47c8aa Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bold-subset.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bold-subset.woff2 b/svoboda/works/system/public/fonts/hack/hack-bold-subset.woff2 new file mode 100755 index 0000000..93d425e Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bold-subset.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bold.woff b/svoboda/works/system/public/fonts/hack/hack-bold.woff new file mode 100755 index 0000000..368b913 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bold.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bold.woff2 b/svoboda/works/system/public/fonts/hack/hack-bold.woff2 new file mode 100755 index 0000000..1155477 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bold.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bolditalic-subset.woff b/svoboda/works/system/public/fonts/hack/hack-bolditalic-subset.woff new file mode 100755 index 0000000..0da4750 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bolditalic-subset.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bolditalic-subset.woff2 b/svoboda/works/system/public/fonts/hack/hack-bolditalic-subset.woff2 new file mode 100755 index 0000000..236b7de Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bolditalic-subset.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bolditalic.woff b/svoboda/works/system/public/fonts/hack/hack-bolditalic.woff new file mode 100755 index 0000000..ce87fe2 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bolditalic.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-bolditalic.woff2 b/svoboda/works/system/public/fonts/hack/hack-bolditalic.woff2 new file mode 100755 index 0000000..46ff1c4 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-bolditalic.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-italic-subset.woff b/svoboda/works/system/public/fonts/hack/hack-italic-subset.woff new file mode 100755 index 0000000..1d1f511 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-italic-subset.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-italic-subset.woff2 b/svoboda/works/system/public/fonts/hack/hack-italic-subset.woff2 new file mode 100755 index 0000000..b6f5fc9 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-italic-subset.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-italic.woff b/svoboda/works/system/public/fonts/hack/hack-italic.woff new file mode 100755 index 0000000..bd545e4 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-italic.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-italic.woff2 b/svoboda/works/system/public/fonts/hack/hack-italic.woff2 new file mode 100755 index 0000000..1e7630c Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-italic.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-regular-subset.woff b/svoboda/works/system/public/fonts/hack/hack-regular-subset.woff new file mode 100755 index 0000000..85583a5 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-regular-subset.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-regular-subset.woff2 b/svoboda/works/system/public/fonts/hack/hack-regular-subset.woff2 new file mode 100755 index 0000000..1e3abb9 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-regular-subset.woff2 differ diff --git a/svoboda/works/system/public/fonts/hack/hack-regular.woff b/svoboda/works/system/public/fonts/hack/hack-regular.woff new file mode 100755 index 0000000..e835381 Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-regular.woff differ diff --git a/svoboda/works/system/public/fonts/hack/hack-regular.woff2 b/svoboda/works/system/public/fonts/hack/hack-regular.woff2 new file mode 100755 index 0000000..524465c Binary files /dev/null and b/svoboda/works/system/public/fonts/hack/hack-regular.woff2 differ diff --git a/svoboda/works/system/public/index.php b/svoboda/works/system/public/index.php index 26c3fb2..d2b733e 100755 --- a/svoboda/works/system/public/index.php +++ b/svoboda/works/system/public/index.php @@ -9,15 +9,15 @@ use mirzaev\minimal\core, mirzaev\minimal\route; // Enabling debugging -/* ini_set('error_reporting', E_ALL); +ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); -ini_set('display_startup_errors', 1); */ +ini_set('display_startup_errors', 1); // Initializing path to the public directory -define('PUBLIC', __DIR__); +define('INDEX', __DIR__); // Initializing path to the project root directory -define('ROOT', PUBLIC . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR); +define('ROOT', INDEX . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR); // Initializing path to the directory of views define('VIEWS', realpath('..' . DIRECTORY_SEPARATOR . 'views')); @@ -38,7 +38,7 @@ require ROOT . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; $core = new core(namespace: __NAMESPACE__); // Initializing routes -$router->router +$core->router ->write('/', new route('index', 'index'), 'GET') ; diff --git a/svoboda/works/system/public/js/elements/aside.js b/svoboda/works/system/public/js/elements/aside.js new file mode 100644 index 0000000..688ea29 --- /dev/null +++ b/svoboda/works/system/public/js/elements/aside.js @@ -0,0 +1,11 @@ +try { + import("https://codepen.io/mirzaev-sexy/pen/gOzBZOP.js").then((hotline) => { + const element = document.getElementsByTagName("aside")[0]; + + element.instance = new hotline.default(element); + + element.instance.step = -1; + + element.instance.start(); + }); +} catch (e) {} diff --git a/svoboda/works/system/public/js/elements/diagram.js b/svoboda/works/system/public/js/elements/diagram.js new file mode 100644 index 0000000..50f679c --- /dev/null +++ b/svoboda/works/system/public/js/elements/diagram.js @@ -0,0 +1,125 @@ +// Initializing the list of months +const months = [ + "january", + "february", + "march", + "april", + "may", + "june", + "july", + "august", + "september", + "october", + "november", + "december", +]; + +// Initializing the chart diagram element +const chart = document.querySelector("#diagram>svg.chart"); + +const resize = new ResizeObserver((entries) => { + entries.forEach((entry) => { + // Initializing offset + const offset = entry.contentRect.width / 11; + + // Generating width of the shell (100% + 10%) + entry.target.setAttribute( + "viewBox", + "-30 -40 " + (entry.contentRect.width + 60) + " 280", + ); + + // Initializing the chart line elements + const [ + background, + line, + horizontal, + vertical, + ] = entry.target.getElementsByTagName("polyline"); + + // Initializing coordinates + const coordinates = new Map(); + + // Generating coordinates + line + .getAttribute("points") + ?.split(" ") + .forEach((coordinate, index) => { + // Iterating over generated coordinates + + // Writing generated coordinate + coordinates.set(months[index], [ + offset * index, + coordinate.split(",")[1], + ]); + }); + + // Declaring generated coordinates attribute value + let points = ""; + + // Initializing nodes and titles ( elements) + const a = entry.target.getElementsByTagName("a"); + + // Initializing iterator + let i = 0; + + coordinates.forEach((coordinate, month) => { + // Iterating over generated coordinates + + // Initializing texts and nodes + const [text, circle] = a[i++].children; + + // Writing coordinate for the text + // if (i === 1) { + // text.setAttribute("x", coordinate[0] + 12); + // text.setAttribute("y", coordinate[1] - 18); + // } else { + text.setAttribute("x", coordinate[0]); + text.setAttribute("y", i % 2 ? +coordinate[1] + 30 : coordinate[1] - 25); + // } + + // Writing coordinate for the node + circle.setAttribute("cx", coordinate[0]); + circle.setAttribute("cy", coordinate[1]); + + // Generating coordinates attribute value for the line + points += coordinate[0] + "," + coordinate[1] + " "; + }); + + // Trimming the last space character + points = points.trimEnd(); + + // Writing coordinates to the line + line.setAttribute("points", points); + + // Initializing last coordinate + const last = offset * 11; + + // Writing coordinates to the line background + background.setAttribute( + "points", + // "0,155 " + points + " " + offset * 11 + ",155" + points + " " + last + ",155", + ); + + // Initializing background rectangle + const rectangle = entry.target.getElementsByTagName("rect")[0]; + + // Writing coordinate to the background rectangle + rectangle.setAttribute("width", last); + + // Writing coordinates to the horizontal metadata line + horizontal.setAttribute("points", "0,155 " + last + ",155"); + + // Initializing horizontal legend text + const time = entry.target.getElementsByTagName("text")[0]; + + // Writing coordinate to the horizontal legend text + time.setAttribute("x", last); + }); +}); + +// start listening to changes +resize.observe(chart); + +// later, stop listening to changes +// myObserver.disconnect(); diff --git a/svoboda/works/system/public/js/elements/eye.js b/svoboda/works/system/public/js/elements/eye.js new file mode 100644 index 0000000..9722775 --- /dev/null +++ b/svoboda/works/system/public/js/elements/eye.js @@ -0,0 +1,402 @@ +// Initializing the eye icon element +const eye = document.getElementById("views")?.getElementsByTagName("i")[0]; + +if (eye instanceof HTMLElement) { + // Initialized the eye icon element + + // Initializing offset from the left + let left = 7; + + // Initializing offset from the bottom + let bottom = 3; + + // Initializing speed of the movement + let transition = 0.7; + + // Initializing the counter of views element + const counter = eye.previousElementSibling; + + // Initializing the eye visibility area
element + const visibility = eye.nextElementSibling; + + // Initializing status of found the mouse cursor + let found = false; + + // Initializing status of registerd the mouse cursor + let registered = false; + + // Initializing offended status + let offended = false; + + // Initializing amount of punches + let punches = 0; + + // Initializing status of completely offendeding + let enemies = false; + + // Initializing register of processes + const processes = {}; + + // Declaring functions for event listeners for the eye visibility area + let mouseenter, mousemove, mouseleave; + + // Declaring functions for event listeners for the eye + let mousedown; + + // Declaring functions for event listeners for the document + let _mousemove; + + // Initializing function for event listener of "mouseenter" on the eye visibility area + mouseenter = () => { + // The mouse cursor enter the eye visibility area + + if (!registered) { + // The mouse cursor is not registered + + // Stopping the process of registering + clearTimeout(processes.registering); + + // Starting the process of registering + processes.registering = setTimeout(() => { + // Increasing the counter of views + counter.innerText = ++counter.innerText; + + // Writing status that the mouse cursor is registered + registered = true; + }, Math.random() * 1200); + } + }; + + // Initializing event listener of "mouseenter" on the eye visibility area + visibility.addEventListener("mouseenter", mouseenter); + + // Initializing function for event listener of "mousedown" on the eye + mousedown = () => { + // The mouse cursor clicked over the eye + + // Stopping the process of registering + clearTimeout(processes.registering); + + if (offended && ++punches > 2) { + // The eye has been punched many times + + // Stopping the process of forgiving + clearTimeout(processes.forgiving); + + // Stopping the proccess of pupil movement + clearInterval(processes.moving); + + // Stopping the proccess of timeout befor starting changing pupil movement speed + clearTimeout(processes.pretransition); + + // Stopping the proccess of changing pupil movement speed + clearInterval(processes.transition); + + // Initializing event listener of "mousemove" on the document + document.removeEventListener("mousemove", _mousemove); + + if (!enemies) { + // The eye is not completely offended + + // Writing status of completely offended + enemies = true; + + if (registered) { + // The mouse cursor is registered + + // Stopping the process of registering + clearTimeout(processes.registering); + + // Decreasing the counter of views + counter.innerText = --counter.innerText; + } + + // Deinitializing event listener of "mouseenter" on the eye visibility area + visibility.removeEventListener("mouseenter", mouseenter); + + // Deinitializing event listener of "mousedown" on the eye + eye.removeEventListener("mousedown", mousedown); + + // Deinitializing event listener of "mousemove" on the eye visibility area + visibility.removeEventListener("mousemove", mousemove); + + // Deinitializing event listener of "mouseleave" on the eye visibility area + visibility.removeEventListener("mouseleave", mouseleave); + } + } else { + // The eye has been punched small amount of times + + // Writing offended status + offended = true; + + // Closing the eye + eye.classList.add("offended"); + + // Stopping the process of forgiving + clearTimeout(processes.forgiving); + + // Starting the process of forgiving (from 2000ms to 5000ms) + processes.forgiving = setTimeout(() => { + // Writing offended status + offended = false; + + // Opening the eye + eye.classList.remove("offended"); + }, Math.random() * 3000 + 2000); + } + }; + + // Initializing event listener of "mousedown" on the eye + eye.addEventListener("mousedown", mousedown); + + // Initializing function for event listener of "mousemove" on the eye visibility area + mousemove = (event) => { + // The mouse cursor moving over the eye visibility area + + // Stopping the proccess of losting the mouse cursor + clearTimeout(processes.losting); + + // Stopping the proccess of the eye relaxing + clearTimeout(processes.relaxing); + + // Writing status that the mouse cursor entered the eye visibility area + found = true; + + // Writing transition time for smooth eyelid opening and pupil constriction + eye.style.setProperty("--transition", "0.2s"); + + // Opening of the eyelids and constriction of the pupil + eye.classList.add("expanded", "excited"); + + if (!enemies) { + // The cursor is not completely offended + + // Writing direction of the pupil towards the mouse (percentage ratio by position on the eye visibility area) + // 13 is maximum margin from the left; 2 is minimum margin from the left + // "+ 1" at the end is becouse the pupil is shrinked by 2 pixels + eye.style.setProperty( + "--left", + // 2 + Math.round(((13 - 2) / 100) * ((event.offsetX / visibility.offsetWidth) * 100)) + 1 + "px" + 3 + + Math.round( + (11 / 100) * ((event.offsetX / visibility.offsetWidth) * 100), + ) + + "px", + ); + + // Writing direction of the pupil towards the mouse (percentage ratio by position on the eye visibility area + // 7 is maximum margin from the bottom; -1 is minimum margin from the bottom + eye.style.setProperty( + "--bottom", + // 7 - Math.round(((7 - -1) / 100) * ((event.offsetY / visibility.offsetHeight) * 100)) + "px" + 7 - + Math.round( + (8 / 100) * ((event.offsetY / visibility.offsetHeight) * 100), + ) + + "px", + ); + + // Initializing offset by the coordinates of the cursor position relative to the eye visibility area + const x = -(visibility.offsetWidth / 2 - event.offsetX); + const y = visibility.offsetHeight / 2 - event.offsetY; + + // Writing offset by the coordinates of the cursor position relative to the eye visibility area + eye.style.setProperty("--offset-x", y / 2 + "deg"); + eye.style.setProperty("--offset-y", x / 2 + "deg"); + } + }; + + // Initializing event listener of "mousemove" on the eye visibility area + visibility.addEventListener("mousemove", mousemove); + + // Initializing function for event listener of "mouseleave" on the eye visibility area + mouseleave = () => { + // The mouse cursor leave the eye visibility area + + if (!registered) { + // The mouse cursor is not registered + + // Stopping the process of registering + clearTimeout(processes.registering); + } + + // Writing transition time for smooth eyelid closing and pupil expansion + eye.style.setProperty("--transition", "1s"); + + // Stopping the proccess of losting the mouse cursor + clearTimeout(processes.losting); + + // Starting the proccess of losting the mouse cursor + processes.losting = setTimeout(() => { + // The eye waited from 0ms to 5000ms while continuing to look at the last position of the mouse cursor + + // Writing status that the mouse cursor leave the eye visibility area + found = false; + + // Deinitializing offset + eye.style.removeProperty("--offset-x"); + eye.style.removeProperty("--offset-y"); + + // Closing of the eyelids and expansion of the pupil + eye.classList.remove("expanded", "excited"); + }, Math.random() * 5000); + }; + + // Initializing event listener of "mouseleave" on the eye visibility area + visibility.addEventListener("mouseleave", mouseleave); + + /** + * @name Starting process of the eye searching + */ + function search() { + // Stopping the proccess of the eye pupil movement + clearInterval(processes.moving); + + // Starting the proccess of the eye pupil movement + processes.moving = setInterval(() => { + // Moving the eye pupil + + if (!found && !offended && !enemies) { + // The cursor is not found and not offended and completely offended + + if (left >= 10) { + // The border has been reached + + // Writing new offset from the left + left -= Math.round(Math.random()); + } else if (left <= 5) { + // The border has been reached + + // Writing new offset from the left + left += Math.round(Math.random()); + } else { + // The border has not been reached + + // Writing new offset from the left + left += Math.floor(Math.random() * 3 - 1); + } + + if (bottom >= 5) { + // The border has been reached + + // Writing new offset from the bottom + bottom -= Math.round(Math.random()); + } else if (bottom <= 1) { + // The border has been reached + + // Writing new offset from the bottom + bottom += Math.round(Math.random()); + } else { + // The border has not been reached + + // Writing new offset from the bottom + bottom += Math.floor(Math.random() * 3 - 1); + } + + // Writing new coordinates to the element + eye.style.setProperty("--left", left + "px"); + eye.style.setProperty("--bottom", bottom + "px"); + } + }, 20); + + // Stopping the proccess of timeout befor starting changing pupil movement speed + clearTimeout(processes.pretransition); + + // Starting the process of timeout befor starting changing pupil movement speed + processes.pretransition = setTimeout(() => { + // The speed of pupil movement will begin to change after 0ms to 1500ms + + // Stopping the proccess of changing pupil movement speed + clearInterval(processes.transition); + + // Starting the process of changing pupil movement speed + processes.transition = setInterval(() => { + // Changing speed of movement the eye pupil + + if (!found && !offended && !enemies) { + // The cursor is not found and not offended and not completely offended + + if (transition >= 0.7) { + // The border has been reached + + // Writing new speed of the movement + transition -= Math.round(Math.random()) / 10; + } else if (transition <= 0.1) { + // The border has been reached + + // Writing new speed of the movement + transition += Math.round(Math.random()) / 10; + } else { + // The border has not been reached + + // Writing new speed of the movement + transition += Math.floor(Math.random() * 3 - 1) / 10; + } + + // Writing transition time for smooth pupil movement + eye.style.setProperty( + "--transition", + parseFloat(transition.toFixed(1)) + "s", + ); + } + }, 40); + }, Math.random() * 1500); + } + + /** + * @name Starting process of the eye relaxing + */ + function relax() { + // Stopping the proccess of the eye relaxing + clearTimeout(processes.relaxing); + + // Starting the process of the eye relaxing + processes.relaxing = setTimeout(() => { + // Writing transition time for smooth pupil movement + eye.style.setProperty("--transition", "0.4s"); + + // Writing status that the mouse cursor losted by the eye + found = false; + + // Deinitializing offset + eye.style.removeProperty("--offset-x"); + eye.style.removeProperty("--offset-y"); + + // Writing new coordinates to the element + eye.style.setProperty("--left", "7px"); + eye.style.setProperty("--bottom", "3px"); + + // Closing of the eyelids and expansion of the pupil + eye.classList.remove("expanded", "excited"); + }, Math.random() * 2000); + } + + // Initializing function for event listener of "mousemove" on the document + _mousemove = () => { + // The mouse cursor moving + + // Starting the proccess of pupil movement + search(); + + // Stopping the proccess loss of detection the mouse cursor by the eye + clearTimeout(processes.undetection); + + // Starting the process loss of detection the mouse cursor by the eye + processes.undetection = setTimeout(() => { + // Stopping the proccess of pupil movement + clearInterval(processes.moving); + + // Stopping the proccess of timeout befor starting changing pupil movement speed + clearTimeout(processes.pretransition); + + // Stopping the proccess of changing pupil movement speed + clearInterval(processes.transition); + + // Starting the process of relaxing + relax(); + }, Math.random() * 3000); + }; + + // Initializing event listener of "mousemove" on the document + document.addEventListener("mousemove", _mousemove); +} diff --git a/svoboda/works/system/public/css/themes/default/aside.css b/svoboda/works/system/public/themes/default/css/aside.css similarity index 94% rename from svoboda/works/system/public/css/themes/default/aside.css rename to svoboda/works/system/public/themes/default/css/aside.css index f1dc280..1f5b851 100755 --- a/svoboda/works/system/public/css/themes/default/aside.css +++ b/svoboda/works/system/public/themes/default/css/aside.css @@ -15,7 +15,7 @@ aside > * { aside > section { position: relative; - width: 200px; + min-width: max(240px, calc(100% / (var(--amount) - 1))); height: 100%; display: flex; flex-direction: column; @@ -26,6 +26,7 @@ aside > section { -webkit-box-shadow: 0px -3px 18px 2px rgba(0, -3, 0, 0.4); -moz-box-shadow: 0px -3px 18px 2px rgba(0, -3, 0, 0.4); box-shadow: 0px -3px 18px 2px rgba(0, -3, 0, 0.4); + transition: 0s !important; } aside > section > a.title { diff --git a/svoboda/works/system/public/css/themes/default/body.css b/svoboda/works/system/public/themes/default/css/body.css similarity index 82% rename from svoboda/works/system/public/css/themes/default/body.css rename to svoboda/works/system/public/themes/default/css/body.css index 6259e3e..d92245e 100755 --- a/svoboda/works/system/public/css/themes/default/body.css +++ b/svoboda/works/system/public/themes/default/css/body.css @@ -5,7 +5,7 @@ body { width: 100vw; height: 100vh; display: grid; - grid-template-rows: max(150px, 15vh) auto; + grid-template-rows: max(200px, 20vh) auto; grid-template-columns: 60px auto 60px; gap: var(--gap); overflow: hidden; diff --git a/svoboda/works/system/public/css/themes/default/colors.css b/svoboda/works/system/public/themes/default/css/colors.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/colors.css rename to svoboda/works/system/public/themes/default/css/colors.css diff --git a/svoboda/works/system/public/css/themes/default/diagram.css b/svoboda/works/system/public/themes/default/css/diagram.css similarity index 98% rename from svoboda/works/system/public/css/themes/default/diagram.css rename to svoboda/works/system/public/themes/default/css/diagram.css index aff0fe9..7d701f4 100755 --- a/svoboda/works/system/public/css/themes/default/diagram.css +++ b/svoboda/works/system/public/themes/default/css/diagram.css @@ -39,7 +39,7 @@ div#diagram>svg.pie>circle:nth-of-type(5) { } div#diagram>svg.chart>polyline { - stroke-width: 4; + stroke-width: 4px; fill: transparent; } @@ -66,14 +66,14 @@ div#diagram>svg.chart>a.node:active>text { } div#diagram>svg.chart>a.node>circle { - r: 7; + r: 7px; stroke-width: 4; stroke: var(--diagram-color-5); fill: var(--diagram-color-white); } div#diagram>svg.chart>a.node:is(:hover, :focus)>circle { - r: 8; + r: 8px; stroke: var(--diagram-color-6); fill: var(--diagram-color-white-hover); } diff --git a/svoboda/works/system/public/css/themes/default/window.css b/svoboda/works/system/public/themes/default/css/eclipse.css similarity index 83% rename from svoboda/works/system/public/css/themes/default/window.css rename to svoboda/works/system/public/themes/default/css/eclipse.css index 4a1bd67..834ab7f 100755 --- a/svoboda/works/system/public/css/themes/default/window.css +++ b/svoboda/works/system/public/themes/default/css/eclipse.css @@ -1,6 +1,6 @@ @charset "UTF-8"; -section#window { +section#eclipse { position: fixed; left: 0; top: 0; diff --git a/svoboda/works/system/public/themes/default/css/fonts.css b/svoboda/works/system/public/themes/default/css/fonts.css new file mode 100755 index 0000000..84f16b4 --- /dev/null +++ b/svoboda/works/system/public/themes/default/css/fonts.css @@ -0,0 +1,9 @@ +@import url('/css/fonts/fira.css'); +@import url('/css/fonts/hack.css'); +@import url('/css/fonts/dejavu.css'); + +@font-face { + font-family: 'Commissioner'; + src: url('/fonts/commissioner.ttf'); + font-weight: 400; +} diff --git a/svoboda/works/system/public/css/themes/default/footer.css b/svoboda/works/system/public/themes/default/css/footer.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/footer.css rename to svoboda/works/system/public/themes/default/css/footer.css diff --git a/svoboda/works/system/public/css/themes/default/header.css b/svoboda/works/system/public/themes/default/css/header.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/header.css rename to svoboda/works/system/public/themes/default/css/header.css diff --git a/svoboda/works/system/public/css/themes/default/icons/camera.css b/svoboda/works/system/public/themes/default/css/icons/camera.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/icons/camera.css rename to svoboda/works/system/public/themes/default/css/icons/camera.css diff --git a/svoboda/works/system/public/css/themes/default/icons/controller.css b/svoboda/works/system/public/themes/default/css/icons/controller.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/icons/controller.css rename to svoboda/works/system/public/themes/default/css/icons/controller.css diff --git a/svoboda/works/system/public/css/themes/default/icons/document.css b/svoboda/works/system/public/themes/default/css/icons/document.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/icons/document.css rename to svoboda/works/system/public/themes/default/css/icons/document.css diff --git a/svoboda/works/system/public/css/themes/default/icons/eye.css b/svoboda/works/system/public/themes/default/css/icons/eye.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/icons/eye.css rename to svoboda/works/system/public/themes/default/css/icons/eye.css diff --git a/svoboda/works/system/public/css/themes/default/icons/share.css b/svoboda/works/system/public/themes/default/css/icons/share.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/icons/share.css rename to svoboda/works/system/public/themes/default/css/icons/share.css diff --git a/svoboda/works/system/public/css/themes/default/icons/slash.css b/svoboda/works/system/public/themes/default/css/icons/slash.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/icons/slash.css rename to svoboda/works/system/public/themes/default/css/icons/slash.css diff --git a/svoboda/works/system/public/css/themes/default/main.css b/svoboda/works/system/public/themes/default/css/main.css similarity index 100% rename from svoboda/works/system/public/css/themes/default/main.css rename to svoboda/works/system/public/themes/default/css/main.css diff --git a/svoboda/works/system/public/css/themes/default/system.css b/svoboda/works/system/public/themes/default/css/system.css similarity index 97% rename from svoboda/works/system/public/css/themes/default/system.css rename to svoboda/works/system/public/themes/default/css/system.css index 80a3a0a..9f7d648 100755 --- a/svoboda/works/system/public/css/themes/default/system.css +++ b/svoboda/works/system/public/themes/default/css/system.css @@ -16,13 +16,11 @@ /* Selection */ ::selection { - border-radius: 2px; color: var(--text-selected-color); background: var(--text-selected-background-color); } ::-moz-selection { - border-radius: 2px; color: var(--text-selected-color); background: var(--text-selected-background-color); } diff --git a/svoboda/works/system/views/templater.php b/svoboda/works/system/views/templater.php index 10eee98..4cb2f30 100755 --- a/svoboda/works/system/views/templater.php +++ b/svoboda/works/system/views/templater.php @@ -68,7 +68,7 @@ final class templater extends controller implements array_access $this->twig->addGlobal('theme', 'default'); $this->twig->addGlobal('server', $_SERVER); $this->twig->addGlobal('cookies', $_COOKIE); - if (!empty($session->status())) $this->twig->addGlobal('session', $session); + /* if (!empty($session->status())) $this->twig->addGlobal('session', $session); */ $this->twig->addGlobal('language', $language = $session?->buffer['language'] ?? language::en); } @@ -78,14 +78,15 @@ final class templater extends controller implements array_access * Render the HTML-document * * @param string $file Related path to a HTML-document - * @param ?array $variables Registry of variables to push into registry of global variables + * @param array $variables Registry of variables to push into registry of global variables * * @return ?string HTML-document */ - public function render(string $file, ?array $variables = null): ?string + public function render(string $file, array $variables = []): ?string { // Generation and exit (success) - return $this->twig->render('themes' . DIRECTORY_SEPARATOR . $this->twig->getGlobal('theme') . DIRECTORY_SEPARATOR . $file, $variables + $this->variables); + return $this->twig->render('themes' . DIRECTORY_SEPARATOR . $this->twig->getGlobals()['theme'] . DIRECTORY_SEPARATOR . $file, $variables + $this->variables); + } /** diff --git a/svoboda/works/system/views/themes/default/aside.html b/svoboda/works/system/views/themes/default/aside.html new file mode 100755 index 0000000..238f168 --- /dev/null +++ b/svoboda/works/system/views/themes/default/aside.html @@ -0,0 +1,64 @@ +{% block css %} +{% endblock %} + +{% block body %} + +{% endblock %} + +{% block js %} +{% endblock %} diff --git a/svoboda/works/system/views/themes/default/core.html b/svoboda/works/system/views/themes/default/core.html index fd92488..1bb43a7 100755 --- a/svoboda/works/system/views/themes/default/core.html +++ b/svoboda/works/system/views/themes/default/core.html @@ -3,7 +3,7 @@ - {% use 'head.html' with title as head_title, meta as head_meta, css as head_css %} + {% use '/themes/default/head.html' with title as head_title, meta as head_meta, css as head_css %} {% block title %} {{ block('head_title') }} @@ -22,7 +22,7 @@ {% block body %} {% endblock %} - {% include 'js.html' %} + {% include '/themes/default/js.html' %} {% block js %} {% endblock %} diff --git a/svoboda/works/system/views/themes/default/eclipse.html b/svoboda/works/system/views/themes/default/eclipse.html new file mode 100644 index 0000000..b080238 --- /dev/null +++ b/svoboda/works/system/views/themes/default/eclipse.html @@ -0,0 +1,2 @@ +
+
diff --git a/svoboda/works/system/views/themes/default/elements/menu.html b/svoboda/works/system/views/themes/default/elements/menu.html new file mode 100644 index 0000000..812ebff --- /dev/null +++ b/svoboda/works/system/views/themes/default/elements/menu.html @@ -0,0 +1,8 @@ + diff --git a/svoboda/works/system/views/themes/default/elements/timeline.html b/svoboda/works/system/views/themes/default/elements/timeline.html new file mode 100644 index 0000000..665591c --- /dev/null +++ b/svoboda/works/system/views/themes/default/elements/timeline.html @@ -0,0 +1,6 @@ + diff --git a/svoboda/works/system/views/themes/default/footer.html b/svoboda/works/system/views/themes/default/footer.html index 8322f33..892ff56 100755 --- a/svoboda/works/system/views/themes/default/footer.html +++ b/svoboda/works/system/views/themes/default/footer.html @@ -2,7 +2,10 @@ {% endblock %} {% block body %} -