initial falcon react package
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Browsers that we support
|
||||||
|
|
||||||
|
last 1 version
|
||||||
|
> 0.2%
|
||||||
|
not op_mini all
|
||||||
|
not dead
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"extends": ["react-app", "prettier", "plugin:react/recommended"],
|
||||||
|
"plugins": ["prettier"],
|
||||||
|
"rules": {
|
||||||
|
"prettier/prettier": "error",
|
||||||
|
"react/no-unescaped-entities": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.js
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
/.idea
|
||||||
|
/.vscode
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Using the node alpine image to build the React app
|
||||||
|
image: node:alpine
|
||||||
|
|
||||||
|
# Announce the URL as per CRA docs
|
||||||
|
# https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#advanced-configuration
|
||||||
|
variables:
|
||||||
|
PUBLIC_URL: /react-falcon
|
||||||
|
# Cache node modules - speeds up future builds
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- node_modules
|
||||||
|
|
||||||
|
# Name the stages involved in the pipeline
|
||||||
|
stages:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
# Job name for gitlab to recognise this results in assets for Gitlab Pages
|
||||||
|
# https://docs.gitlab.com/ee/user/project/pages/introduction.html#gitlab-pages-requirements
|
||||||
|
pages:
|
||||||
|
stage: deploy
|
||||||
|
script:
|
||||||
|
- npm install # Install all dependencies
|
||||||
|
- npm run build --prod # Build for prod
|
||||||
|
- mv public _public # CRA and gitlab pages both use the public folder. Only do this in a build pipeline.
|
||||||
|
- mv build public # Move build files to public dir for Gitlab Pages
|
||||||
|
- cp public/index.html public/404.html # Required for react router browser history, but helps with https://blog.pshrmn.com/how-single-page-applications-work/
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- public # The built files for Gitlab Pages to serve
|
||||||
|
only:
|
||||||
|
- master # Only run on master branch
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"singleQuote": true,
|
||||||
|
"printWidth": 120
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
## Falcon, a theme by ThemeWagon team.
|
||||||
|
---
|
||||||
|
Get the figma design file here:
|
||||||
|
[https://www.figma.com/file/wX672ke9PvFbwGNiCxefAd/Falcon-Design](https://www.figma.com/file/wX672ke9PvFbwGNiCxefAd/Falcon-Design)
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
const gulp = require('gulp');
|
||||||
|
const plumber = require('gulp-plumber');
|
||||||
|
const sass = require('gulp-sass');
|
||||||
|
const autoprefixer = require('gulp-autoprefixer');
|
||||||
|
const rtlcss = require('gulp-rtlcss');
|
||||||
|
const rename = require('gulp-rename');
|
||||||
|
const sourcemaps = require('gulp-sourcemaps');
|
||||||
|
const browserSync = require('browser-sync');
|
||||||
|
const cleanCSS = require('gulp-clean-css');
|
||||||
|
|
||||||
|
/*-----------------------------------------------
|
||||||
|
| SCSS
|
||||||
|
-----------------------------------------------*/
|
||||||
|
gulp.task('scss', () =>
|
||||||
|
gulp
|
||||||
|
.src('src/assets/scss/*.scss')
|
||||||
|
.pipe(plumber())
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(
|
||||||
|
sass({
|
||||||
|
outputStyle: 'expanded'
|
||||||
|
}).on('error', sass.logError)
|
||||||
|
)
|
||||||
|
.pipe(autoprefixer({ cascade: false }))
|
||||||
|
.pipe(cleanCSS({ compatibility: 'ie9' }))
|
||||||
|
.pipe(sourcemaps.write('.'))
|
||||||
|
.pipe(plumber.stop())
|
||||||
|
.pipe(gulp.dest('public/css'))
|
||||||
|
.pipe(browserSync.stream())
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task('scss:dark', () =>
|
||||||
|
gulp
|
||||||
|
.src('src/assets/scss/theme-dark.scss')
|
||||||
|
.pipe(plumber())
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(
|
||||||
|
sass({
|
||||||
|
outputStyle: 'expanded'
|
||||||
|
}).on('error', sass.logError)
|
||||||
|
)
|
||||||
|
.pipe(autoprefixer({ cascade: false }))
|
||||||
|
.pipe(cleanCSS({ compatibility: 'ie9' }))
|
||||||
|
.pipe(sourcemaps.write('.'))
|
||||||
|
.pipe(plumber.stop())
|
||||||
|
.pipe(gulp.dest('public/css'))
|
||||||
|
.pipe(browserSync.stream())
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task('scss:rtl', () =>
|
||||||
|
gulp
|
||||||
|
.src('src/assets/scss/*.scss')
|
||||||
|
.pipe(plumber())
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(
|
||||||
|
sass({
|
||||||
|
outputStyle: 'expanded'
|
||||||
|
}).on('error', sass.logError)
|
||||||
|
)
|
||||||
|
.pipe(autoprefixer({ cascade: false }))
|
||||||
|
.pipe(cleanCSS({ compatibility: 'ie9' }))
|
||||||
|
.pipe(rtlcss()) // Convert to RTL.
|
||||||
|
.pipe(rename({ suffix: '-rtl' })) // Append "-rtl" to the filename.
|
||||||
|
.pipe(sourcemaps.write('.'))
|
||||||
|
.pipe(plumber.stop())
|
||||||
|
.pipe(gulp.dest('public/css'))
|
||||||
|
.pipe(browserSync.stream())
|
||||||
|
);
|
||||||
|
|
||||||
|
/*-----------------------------------------------
|
||||||
|
| Watching
|
||||||
|
-----------------------------------------------*/
|
||||||
|
gulp.task('watch', () => {
|
||||||
|
gulp.watch('src/assets/scss/**/*.scss', gulp.parallel('scss', 'scss:rtl'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('default', gulp.parallel('scss', 'scss:rtl', 'watch', 'scss:dark'));
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
{
|
||||||
|
"name": "falcon-react",
|
||||||
|
"version": "2.10.2",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@fortawesome/fontawesome-free": "^5.15.1",
|
||||||
|
"@fortawesome/fontawesome-svg-core": "^1.2.30",
|
||||||
|
"@fortawesome/free-brands-svg-icons": "^5.14.0",
|
||||||
|
"@fortawesome/free-regular-svg-icons": "^5.14.0",
|
||||||
|
"@fortawesome/free-solid-svg-icons": "^5.15.1",
|
||||||
|
"@fortawesome/react-fontawesome": "^0.1.11",
|
||||||
|
"@fullcalendar/bootstrap": "^5.3.1",
|
||||||
|
"@fullcalendar/core": "^5.3.1",
|
||||||
|
"@fullcalendar/daygrid": "^5.3.2",
|
||||||
|
"@fullcalendar/interaction": "^5.3.1",
|
||||||
|
"@fullcalendar/list": "^5.3.1",
|
||||||
|
"@fullcalendar/react": "^5.3.1",
|
||||||
|
"@fullcalendar/timegrid": "^5.3.1",
|
||||||
|
"@loadable/component": "^5.13.2",
|
||||||
|
"attr-accept": "^2.2.2",
|
||||||
|
"bootstrap": "^4.5.3",
|
||||||
|
"chart.js": "^2.9.3",
|
||||||
|
"classnames": "^2.2.6",
|
||||||
|
"echarts": "^4.9.0",
|
||||||
|
"echarts-for-react": "^2.0.16",
|
||||||
|
"element-resize-event": "^3.0.3",
|
||||||
|
"emoji-mart": "^3.0.0",
|
||||||
|
"fuse.js": "^6.4.3",
|
||||||
|
"google-maps-react": "^2.0.6",
|
||||||
|
"is_js": "^0.9.0",
|
||||||
|
"leaflet": "^1.7.1",
|
||||||
|
"leaflet.markercluster": "^1.4.1",
|
||||||
|
"leaflet.tilelayer.colorfilter": "^1.2.5",
|
||||||
|
"lodash": "^4.17.20",
|
||||||
|
"moment": "^2.28.0",
|
||||||
|
"plyr": "3.6.2",
|
||||||
|
"prism-react-renderer": "^0.1.7",
|
||||||
|
"prism-themes": "^1.4.0",
|
||||||
|
"prop-types": "^15.7.2",
|
||||||
|
"react": "^16.13.1",
|
||||||
|
"react-app-polyfill": "^1.0.6",
|
||||||
|
"react-beautiful-dnd": "^13.0.0",
|
||||||
|
"react-bootstrap-table-next": "^3.3.5",
|
||||||
|
"react-bootstrap-table2-paginator": "^2.1.2",
|
||||||
|
"react-chartjs-2": "^2.10.0",
|
||||||
|
"react-countup": "^4.3.3",
|
||||||
|
"react-datetime": "^2.16.3",
|
||||||
|
"react-dom": "^16.13.1",
|
||||||
|
"react-dropzone": "^10.2.2",
|
||||||
|
"react-es6-progressbar.js": "^1.1.0",
|
||||||
|
"react-flatpickr": "^3.10.6",
|
||||||
|
"react-hook-form": "^4.10.2",
|
||||||
|
"react-image-lightbox": "^5.1.1",
|
||||||
|
"react-image-video-lightbox": "^2.0.1",
|
||||||
|
"react-leaflet": "^2.7.0",
|
||||||
|
"react-live": "^2.2.2",
|
||||||
|
"react-lottie": "^1.2.3",
|
||||||
|
"react-quill": "^1.3.5",
|
||||||
|
"react-rating": "^2.0.5",
|
||||||
|
"react-router-bootstrap": "^0.25.0",
|
||||||
|
"react-router-dom": "^5.2.0",
|
||||||
|
"react-scripts": "^3.4.3",
|
||||||
|
"react-scroll": "^1.8.1",
|
||||||
|
"react-scrollbars-custom": "^4.0.25",
|
||||||
|
"react-select": "^3.1.0",
|
||||||
|
"react-simple-code-editor": "^0.9.15",
|
||||||
|
"react-slick": "^0.25.2",
|
||||||
|
"react-toastify": "^5.5.0",
|
||||||
|
"react-typed": "^1.2.0",
|
||||||
|
"reactstrap": "^8.6.0",
|
||||||
|
"slick-carousel": "^1.8.1",
|
||||||
|
"uuid": "^3.4.0"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "react-scripts start",
|
||||||
|
"build": "react-scripts build",
|
||||||
|
"eject": "react-scripts eject",
|
||||||
|
"scss": "gulp",
|
||||||
|
"analyze": "npx source-map-explorer 'build/static/js/*.js'"
|
||||||
|
},
|
||||||
|
"eslintConfig": {
|
||||||
|
"extends": "react-app"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"browser-sync": "^2.26.12",
|
||||||
|
"eslint-config-prettier": "^4.2.0",
|
||||||
|
"eslint-plugin-prettier": "^3.1.4",
|
||||||
|
"eslint-plugin-react": "^7.20.6",
|
||||||
|
"gulp": "^4.0.2",
|
||||||
|
"gulp-autoprefixer": "^6.1.0",
|
||||||
|
"gulp-clean-css": "^4.3.0",
|
||||||
|
"gulp-plumber": "^1.2.1",
|
||||||
|
"gulp-rename": "^1.4.0",
|
||||||
|
"gulp-rtlcss": "^1.4.1",
|
||||||
|
"gulp-sass": "^4.1.0",
|
||||||
|
"gulp-sourcemaps": "^2.6.5",
|
||||||
|
"prettier": "1.17.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="ltr">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<meta name="theme-color" content="#2c7be5" />
|
||||||
|
|
||||||
|
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Poppins:100,200,300,400,500,600,700,800,900&display=swap"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<title>Falcon React | ReactJS Dashboard & WebApp Template</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
<main class="main" id="main"></main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"short_name": "Falcon React",
|
||||||
|
"name": "Falcon React | ReactJS Dashboard & WebApp Template",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "favicon.ico",
|
||||||
|
"sizes": "64x64 32x32 24x24 16x16",
|
||||||
|
"type": "image/x-icon"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start_url": ".",
|
||||||
|
"display": "standalone",
|
||||||
|
"theme_color": "#2c7be5",
|
||||||
|
"background_color": "#edf2f9"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
const compression = require('compression');
|
||||||
|
const express = require('express');
|
||||||
|
const bodyParser = require('body-parser');
|
||||||
|
const path = require('path');
|
||||||
|
const app = express();
|
||||||
|
app.use(compression());
|
||||||
|
app.disable('x-powered-by');
|
||||||
|
app.use(express.static(path.join(__dirname, 'build')));
|
||||||
|
// need to declare a "catch all" route on your express server
|
||||||
|
// that captures all page requests and directs them to the client
|
||||||
|
// the react-router do the route part
|
||||||
|
app.get('*', function(req, res) {
|
||||||
|
res.sendFile(path.join(__dirname, 'build', 'index.html'));
|
||||||
|
});
|
||||||
|
app.listen(process.env.PORT || 5000, function() {
|
||||||
|
console.log(`Frontend start on http://localhost:5000`);
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { BrowserRouter as Router } from 'react-router-dom';
|
||||||
|
import Layout from './layouts/Layout';
|
||||||
|
|
||||||
|
import 'react-toastify/dist/ReactToastify.min.css';
|
||||||
|
import 'react-datetime/css/react-datetime.css';
|
||||||
|
import 'react-image-lightbox/style.css';
|
||||||
|
|
||||||
|
const App = () => {
|
||||||
|
return (
|
||||||
|
<Router basename={process.env.PUBLIC_URL}>
|
||||||
|
<Layout />
|
||||||
|
</Router>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default App;
|
||||||
|
|
@ -0,0 +1,122 @@
|
||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import AppContext from './context/Context';
|
||||||
|
import { settings } from './config';
|
||||||
|
import toggleStylesheet from './helpers/toggleStylesheet';
|
||||||
|
import { getItemFromStore, setItemToStore, themeColors } from './helpers/utils';
|
||||||
|
|
||||||
|
const Main = props => {
|
||||||
|
const [isFluid, setIsFluid] = useState(getItemFromStore('isFluid', settings.isFluid));
|
||||||
|
const [isRTL, setIsRTL] = useState(getItemFromStore('isRTL', settings.isRTL));
|
||||||
|
const [isDark, setIsDark] = useState(getItemFromStore('isDark', settings.isDark));
|
||||||
|
const [isTopNav, setIsTopNav] = useState(getItemFromStore('isTopNav', settings.isTopNav));
|
||||||
|
const [isCombo, setIsCombo] = useState(getItemFromStore('isCombo', settings.isCombo));
|
||||||
|
const [isVertical, setIsVertical] = useState(getItemFromStore('isVertical', settings.isVertical));
|
||||||
|
const [isNavbarVerticalCollapsed, setIsNavbarVerticalCollapsed] = useState(
|
||||||
|
getItemFromStore('isNavbarVerticalCollapsed', settings.isNavbarVerticalCollapsed)
|
||||||
|
);
|
||||||
|
const [currency, setCurrency] = useState(settings.currency);
|
||||||
|
const [showBurgerMenu, setShowBurgerMenu] = useState(settings.showBurgerMenu);
|
||||||
|
const [isLoaded, setIsLoaded] = useState(false);
|
||||||
|
const [isOpenSidePanel, setIsOpenSidePanel] = useState(false);
|
||||||
|
const [navbarCollapsed, setNavbarCollapsed] = useState(false);
|
||||||
|
|
||||||
|
const [navbarStyle, setNavbarStyle] = useState(getItemFromStore('navbarStyle', settings.navbarStyle));
|
||||||
|
|
||||||
|
const toggleModal = () => setIsOpenSidePanel(prevIsOpenSidePanel => !prevIsOpenSidePanel);
|
||||||
|
const value = {
|
||||||
|
isRTL,
|
||||||
|
isDark,
|
||||||
|
isCombo,
|
||||||
|
isFluid,
|
||||||
|
setIsRTL,
|
||||||
|
isTopNav,
|
||||||
|
currency,
|
||||||
|
setIsDark,
|
||||||
|
setIsCombo,
|
||||||
|
setIsFluid,
|
||||||
|
isVertical,
|
||||||
|
toggleModal,
|
||||||
|
setIsTopNav,
|
||||||
|
navbarStyle,
|
||||||
|
setCurrency,
|
||||||
|
setIsVertical,
|
||||||
|
showBurgerMenu,
|
||||||
|
setNavbarStyle,
|
||||||
|
isOpenSidePanel,
|
||||||
|
navbarCollapsed,
|
||||||
|
setShowBurgerMenu,
|
||||||
|
setIsOpenSidePanel,
|
||||||
|
setNavbarCollapsed,
|
||||||
|
isNavbarVerticalCollapsed,
|
||||||
|
setIsNavbarVerticalCollapsed
|
||||||
|
};
|
||||||
|
|
||||||
|
const setStylesheetMode = mode => {
|
||||||
|
setIsLoaded(false);
|
||||||
|
setItemToStore(mode, value[mode]);
|
||||||
|
toggleStylesheet({ isRTL, isDark }, () => setIsLoaded(true));
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setStylesheetMode('isFluid');
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [isFluid]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setStylesheetMode('isRTL');
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [isRTL]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setStylesheetMode('isDark');
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [isDark]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setItemToStore('isNavbarVerticalCollapsed', isNavbarVerticalCollapsed);
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [isNavbarVerticalCollapsed]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setItemToStore('isTopNav', isTopNav);
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [isTopNav]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setItemToStore('isCombo', isCombo);
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [isCombo]);
|
||||||
|
useEffect(() => {
|
||||||
|
setItemToStore('isVertical', isVertical);
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [isVertical]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setItemToStore('navbarStyle', navbarStyle);
|
||||||
|
// eslint-disable-next-line
|
||||||
|
}, [navbarStyle]);
|
||||||
|
|
||||||
|
if (!isLoaded) {
|
||||||
|
toggleStylesheet({ isRTL, isDark }, () => setIsLoaded(true));
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
position: 'fixed',
|
||||||
|
top: 0,
|
||||||
|
right: 0,
|
||||||
|
bottom: 0,
|
||||||
|
left: 0,
|
||||||
|
backgroundColor: isDark ? themeColors.dark : themeColors.light
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return <AppContext.Provider value={value}>{props.children}</AppContext.Provider>;
|
||||||
|
};
|
||||||
|
|
||||||
|
Main.propTypes = { children: PropTypes.node };
|
||||||
|
|
||||||
|
export default Main;
|
||||||
|
After Width: | Height: | Size: 249 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 208 KiB |
|
After Width: | Height: | Size: 319 KiB |
|
After Width: | Height: | Size: 333 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 794 KiB |
|
After Width: | Height: | Size: 245 KiB |
|
After Width: | Height: | Size: 263 KiB |
|
After Width: | Height: | Size: 275 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png"/>
|
||||||
|
<TileColor>#da532c</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#ffffff",
|
||||||
|
"background_color": "#ffffff",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 7.6 KiB |
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"short_name": "",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#ffffff",
|
||||||
|
"background_color": "#ffffff",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 278 KiB |
|
After Width: | Height: | Size: 300 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 380 KiB |
|
After Width: | Height: | Size: 243 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 253 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 145 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 183 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 182 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 210 KiB |
|
After Width: | Height: | Size: 193 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 376 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 923 B |
|
After Width: | Height: | Size: 372 KiB |
|
After Width: | Height: | Size: 376 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 367 KiB |
|
After Width: | Height: | Size: 494 B |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 387 B |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#2C7BE4" d="M21.92,11.62a1,1,0,0,0-.21-.33l-4-4a1,1,0,1,0-1.42,1.42L18.59,11H5.41l2.3-2.29A1,1,0,1,0,6.29,7.29l-4,4a1,1,0,0,0-.21.33,1,1,0,0,0,0,.76,1,1,0,0,0,.21.33l4,4a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42L5.41,13H18.59l-2.3,2.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0l4-4a1,1,0,0,0,.21-.33A1,1,0,0,0,21.92,11.62Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 387 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 24 24"><path d="M14.29,17.29,13,18.59V13a1,1,0,0,0-2,0v5.59l-1.29-1.3a1,1,0,0,0-1.42,1.42l3,3a1,1,0,0,0,.33.21.94.94,0,0,0,.76,0,1,1,0,0,0,.33-.21l3-3a1,1,0,0,0-1.42-1.42ZM18.42,6.22A7,7,0,0,0,5.06,8.11,4,4,0,0,0,6,16a1,1,0,0,0,0-2,2,2,0,0,1,0-4A1,1,0,0,0,7,9a5,5,0,0,1,9.73-1.61,1,1,0,0,0,.78.67,3,3,0,0,1,.24,5.84,1,1,0,1,0,.5,1.94,5,5,0,0,0,.17-9.62Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 435 B |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 24 24"><path fill="#5e6e82" d="M14.29,17.29,13,18.59V13a1,1,0,0,0-2,0v5.59l-1.29-1.3a1,1,0,0,0-1.42,1.42l3,3a1,1,0,0,0,.33.21.94.94,0,0,0,.76,0,1,1,0,0,0,.33-.21l3-3a1,1,0,0,0-1.42-1.42ZM18.42,6.22A7,7,0,0,0,5.06,8.11,4,4,0,0,0,6,16a1,1,0,0,0,0-2,2,2,0,0,1,0-4A1,1,0,0,0,7,9a5,5,0,0,1,9.73-1.61,1,1,0,0,0,.78.67,3,3,0,0,1,.24,5.84,1,1,0,1,0,.5,1.94,5,5,0,0,0,.17-9.62Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 450 B |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 24 24"><path fill="#5e6e82" d="M18.42,8.22A7,7,0,0,0,5.06,10.11,4,4,0,0,0,6,18a1,1,0,0,0,0-2,2,2,0,0,1,0-4,1,1,0,0,0,1-1,5,5,0,0,1,9.73-1.61,1,1,0,0,0,.78.67,3,3,0,0,1,.24,5.84,1,1,0,0,0,.5,1.94,5,5,0,0,0,.17-9.62Zm-5.71,2.07a1,1,0,0,0-.33-.21,1,1,0,0,0-.76,0,1,1,0,0,0-.33.21l-3,3a1,1,0,0,0,1.42,1.42L11,13.41V19a1,1,0,0,0,2,0V13.41l1.29,1.3a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 459 B |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 762 B |
|
After Width: | Height: | Size: 14 KiB |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5,18H9.24a1,1,0,0,0,.71-.29l6.92-6.93h0L19.71,8a1,1,0,0,0,0-1.42L15.47,2.29a1,1,0,0,0-1.42,0L11.23,5.12h0L4.29,12.05a1,1,0,0,0-.29.71V17A1,1,0,0,0,5,18ZM14.76,4.41l2.83,2.83L16.17,8.66,13.34,5.83ZM6,13.17l5.93-5.93,2.83,2.83L8.83,16H6ZM21,20H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 354 B |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#5e6e82" d="M5,18H9.24a1,1,0,0,0,.71-.29l6.92-6.93h0L19.71,8a1,1,0,0,0,0-1.42L15.47,2.29a1,1,0,0,0-1.42,0L11.23,5.12h0L4.29,12.05a1,1,0,0,0-.29.71V17A1,1,0,0,0,5,18ZM14.76,4.41l2.83,2.83L16.17,8.66,13.34,5.83ZM6,13.17l5.93-5.93,2.83,2.83L8.83,16H6ZM21,20H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 369 B |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34.33 34.33"><defs><style>.cls-1,.cls-2{fill:none;}.cls-2{stroke:#157dfb;stroke-miterlimit:10;stroke-width:6px;}</style></defs><title>Asset 2octa</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect class="cls-1" width="34.33" height="34.33"/><g id="Layer_2-2" data-name="Layer 2"><g id="Layer_1-2-2" data-name="Layer 1-2"><polyline class="cls-2" points="11.02 5.09 23.32 16.95 11.45 29.25"/></g></g></g></g></svg>
|
||||||
|
After Width: | Height: | Size: 501 B |
|
After Width: | Height: | Size: 38 KiB |