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 |