feat(images): bootstrap

This commit is contained in:
Sérgio Ramos 2018-02-05 15:12:47 +00:00 committed by Sérgio Ramos
parent 80af7af938
commit 36756fe75b
196 changed files with 8786 additions and 7657 deletions

View File

@ -14,7 +14,7 @@
"dependencies": {
"apr-main": "^4.0.3",
"brule": "^3.1.0",
"cloudapi-gql": "^4.5.1",
"cloudapi-gql": "^4.6.0",
"hapi": "^17.2.0",
"inert": "^5.1.0",
"joyent-navigation": "^1.0.0",

View File

@ -4,7 +4,7 @@ module.exports = {
'scope-enum': [
2,
'always',
['ui-toolkit', 'icons', 'my-joy-beta', 'navigation', 'bundle']
['ui-toolkit', 'icons', 'my-joy-beta', 'navigation', 'bundle', 'images']
]
}
};

3
packages/images/.babelrc Normal file
View File

@ -0,0 +1,3 @@
{
"presets": "joyent-portal"
}

View File

@ -0,0 +1,4 @@
.nyc_output
coverage
dist
build

10
packages/images/.eslintrc Normal file
View File

@ -0,0 +1,10 @@
{
"extends": "joyent-portal",
"rules": {
"no-console": 0,
"new-cap": 0,
"camelcase": 1,
"jsx-a11y/href-no-hash": 0,
"no-negated-condition": 0
}
}

23
packages/images/.gitignore vendored Normal file
View File

@ -0,0 +1,23 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
# misc
.DS_Store
.env
npm-debug.log*
yarn-debug.log*
yarn-error.log*
## Image Snapshots Diff
**/__diff_output__

View File

@ -0,0 +1,15 @@
{
"libs": [
"ecmascript",
"browser"
],
"plugins": {
"doc_comment": true,
"local-scope": true,
"jsx": true,
"node": true,
"webpack": {
"configPath": "../../node_modules/joyent-react-scripts/src/webpack.config.dev.js"
}
}
}

View File

@ -0,0 +1 @@
build

20
packages/images/README.md Normal file
View File

@ -0,0 +1,20 @@
# images
[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg)](https://github.com/RichardLitt/standard-readme)
## Table of Contents
* [Usage](#usage)
* [License](#license)
## Usage
```
npm run start
open http://0.0.0.0:3069
```
## License
MPL-2.0

View File

@ -0,0 +1,46 @@
const Inert = require('inert');
const Path = require('path');
const Execa = require('execa');
const { readFile } = require('mz/fs');
exports.register = async server => {
await Execa('npm', ['run', 'build'], {
cwd: Path.join(__dirname, '..'),
stdio: 'inherit'
});
const indexFile = await readFile(
Path.join(__dirname, '../build/index.html'),
'utf-8'
);
await server.register(Inert);
server.route([
{
method: 'GET',
path: '/static/{path*}',
config: {
auth: false,
handler: {
directory: {
path: Path.join(__dirname, '../build/static/'),
redirectToSlash: true,
index: false
}
}
}
},
{
method: '*',
path: '/{path*}',
config: {
handler: (request, h) => {
return h.response(indexFile).type('text/html');
}
}
}
]);
};
exports.pkg = require('../package.json');

View File

@ -0,0 +1,49 @@
{
"name": "my-images-console",
"version": "1.0.0",
"license": "MPL-2.0",
"private": true,
"repository": "github:yldio/joyent-portal",
"main": "lib/index.js",
"scripts": {
"dev": "REACT_APP_GQL_PORT=4000 PORT=3070 REACT_APP_GQL_PROTOCOL=http joyent-react-scripts start",
"start": "PORT=3069 joyent-react-scripts start",
"build": "NODE_ENV=production joyent-react-scripts build",
"lint-ci": "eslint . --ext .js --ext .md",
"lint": "eslint . --fix --ext .js --ext .md",
"test-ci": "NODE_ENV=test joyent-react-scripts test --env=jsdom --testPathIgnorePatterns='.ui.js'",
"test": "DEFAULT_TIMEOUT_INTERVAL=100000 NODE_ENV=test joyent-react-scripts test --env=jsdom",
"prepublish": "echo 0"
},
"dependencies": {
"@manaflair/redux-batch": "^0.1.0",
"apollo": "^0.2.2",
"date-fns": "^1.29.0",
"declarative-redux-form": "^2.0.8",
"joyent-ui-toolkit": "^5.0.0",
"lunr": "^2.1.5",
"mz": "^2.7.0",
"react": "^16.2.0",
"react-apollo": "^2.0.4",
"react-dom": "^16.2.0",
"react-redux": "^5.0.6",
"react-redux-values": "^1.1.2",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2",
"redux": "^3.7.2",
"redux-form": "^7.2.3",
"remcalc": "^1.0.10",
"styled-components-spacing": "^2.1.3",
"styled-flex-component": "^2.2.0"
},
"devDependencies": {
"babel-preset-joyent-portal": "^6.0.3",
"eslint": "^4.16.0",
"eslint-config-joyent-portal": "^3.3.1",
"jest-image-snapshot": "^2.3.0",
"jest-styled-components": "^4.11.0-0",
"joyent-react-scripts": "^7.2.2",
"react-screenshot-renderer": "^1.1.2",
"react-test-renderer": "^16.2.0"
}
}

View File

@ -0,0 +1,36 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="theme-color" content="#1E313B">
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<title>My Joyent &beta;</title>
<script type="text/javascript">
window.heap = window.heap || [], heap.load = function (e, t) { window.heap.appid = e, window.heap.config = t = t || {}; var r = t.forceSSL || "https:" === document.location.protocol, a = document.createElement("script"); a.type = "text/javascript", a.async = !0, a.src = (r ? "https:" : "http:") + "//cdn.heapanalytics.com/js/heap-" + e + ".js"; var n = document.getElementsByTagName("script")[0]; n.parentNode.insertBefore(a, n); for (var o = function (e) { return function () { heap.push([e].concat(Array.prototype.slice.call(arguments, 0))) } }, p = ["addEventProperties", "addUserProperties", "clearEventProperties", "identify", "removeEventProperty", "setEventProperties", "track", "unsetEventProperty"], c = 0; c < p.length; c++)heap[p[c]] = o(p[c]) };
heap.load("1044364007");
</script>
<!-- Hotjar Tracking Code for www.makeusproud.com -->
<script>
(function (h, o, t, j, a, r) {
h.hj = h.hj || function () { (h.hj.q = h.hj.q || []).push(arguments) };
h._hjSettings = { hjid: 767828, hjsv: 6 };
a = o.getElementsByTagName('head')[0];
r = o.createElement('script'); r.async = 1;
r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;
a.appendChild(r);
})(window, document, 'https://static.hotjar.com/c/hotjar-','.js?sv=');
</script>
</head>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="header"></div>
<div id="root"></div>
<script src="/nav-static/main.js"></script>
</body>
</html>

View File

@ -0,0 +1,15 @@
{
"short_name": "Joyent",
"name": "My Joyent &beta;",
"icons": [
{
"src": "favicon.ico",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "./index.html",
"display": "standalone",
"theme_color": "#1E313B",
"background_color": "#FAFAFA"
}

View File

@ -0,0 +1,21 @@
import React from 'react';
import { ThemeProvider } from 'styled-components';
import { Provider as ReduxProvider } from 'react-redux';
import { ApolloProvider } from 'react-apollo';
import { theme, RootContainer } from 'joyent-ui-toolkit';
import { client, store } from '@state/store';
import Router from '@root/router';
export default () => (
<ApolloProvider client={client}>
<ThemeProvider theme={theme}>
<ReduxProvider store={store}>
<RootContainer>
<Router />
</RootContainer>
</ReduxProvider>
</ThemeProvider>
</ApolloProvider>
);

View File

@ -0,0 +1,48 @@
import React from 'react';
import { Margin } from 'styled-components-spacing';
import { NavLink } from 'react-router-dom';
import PropTypes from 'prop-types';
import forceArray from 'force-array';
import {
SectionList,
SectionListItem,
SectionListAnchor,
ViewContainer
} from 'joyent-ui-toolkit';
const getMenuItems = (links = []) =>
links.map(({ pathname, name }) => (
<SectionListItem key={pathname}>
<SectionListAnchor to={pathname} component={NavLink}>
{name}
</SectionListAnchor>
</SectionListItem>
));
const Menu = ({ links = [] }) => {
const _links = forceArray(links);
if (!_links.length) {
return null;
}
return (
<ViewContainer plain>
<Margin bottom={6}>
<SectionList>{getMenuItems(_links)}</SectionList>
</Margin>
</ViewContainer>
);
};
Menu.propTypes = {
links: PropTypes.arrayOf(
PropTypes.shape({
name: PropTypes.string,
pathname: PropTypes.string
})
)
};
export default Menu;

View File

@ -0,0 +1,174 @@
import React, { Fragment } from 'react';
import { Row, Col } from 'joyent-react-styled-flexboxgrid';
import { Margin, Padding } from 'styled-components-spacing';
import styled, { withTheme } from 'styled-components';
import Flex, { FlexItem } from 'styled-flex-component';
import distanceInWordsToNow from 'date-fns/distance_in_words_to_now';
import titleCase from 'title-case';
import remcalc from 'remcalc';
import {
Card,
CardOutlet,
H2,
P,
Label,
Divider,
Button,
QueryBreakpoints,
CopiableField,
DuplicateIcon,
DeleteIcon,
DotIcon
} from 'joyent-ui-toolkit';
import {
Linux,
Freebsd,
Illumos,
Smart,
Windows,
Placeholder
} from 'joyent-logo-assets';
const { SmallOnly, Medium } = QueryBreakpoints;
const VerticalDivider = styled.div`
width: ${remcalc(1)};
background: ${props => props.theme.grey};
height: ${remcalc(24)};
display: flex;
align-self: flex-end;
margin: 0 ${remcalc(18)};
@media (max-width: ${remcalc(767)}) {
display: none;
}
`;
const GreyLabel = styled(Label)`
opacity: 0.5;
padding-right: ${remcalc(3)};
`;
const ImageType = {
ZONE_DATASET: 'Hardware Virtual Machine',
LX_DATASET: 'Infrastructure Container',
ZVOL: 'Hardware Virtual Machine',
DOCKER: 'Docker Container',
OTHER: 'Hardware Virtual Machine'
};
const StateColor = {
ACTIVE: 'green',
UNACTIVATED: 'grey',
DISABLED: 'secondaryActive',
CREATING: 'primary',
FAILED: 'red'
};
const OS = {
SMARTOS: Smart,
LINUX: Linux,
WINDOWS: Windows,
BSD: Freebsd,
ILLUMOS: Illumos,
OTHER: Placeholder
};
export const Meta = ({ name, version, type, published_at, state, os }) => (
<Fragment>
<Flex alignCenter>
<FlexItem>
<Margin right="2">
{React.createElement(OS[os], {
width: '30',
height: '30'
})}
</Margin>
</FlexItem>
<FlexItem>
<H2 bold>{name}</H2>
</FlexItem>
</Flex>
<Margin top={2} bottom={3}>
<Flex>
<Label>{version}</Label>
<VerticalDivider />
<Label>{ImageType[type]}</Label>
<VerticalDivider />
<Fragment>
<GreyLabel>Created:</GreyLabel>
<Label> {distanceInWordsToNow(published_at)} ago</Label>
</Fragment>
<VerticalDivider />
<Flex>
<FlexItem>
<DotIcon
right={remcalc(6)}
size={remcalc(15)}
color={StateColor[state]}
/>
</FlexItem>
<FlexItem>
<Label>{titleCase(state)}</Label>
</FlexItem>
</Flex>
</Flex>
</Margin>
</Fragment>
);
export default withTheme(({ theme = {}, ...image }) => (
<Row>
<Col xs={12} sm={12} md={9}>
<Card>
<CardOutlet>
<Padding all={4}>
<Meta {...image} />
<Row between="xs">
<Col xs={9}>
<SmallOnly>
<Button type="button" small icon>
<DuplicateIcon light />
</Button>
</SmallOnly>
<Medium>
<Button type="button" bold icon>
<DuplicateIcon light />
<span>Create Instance</span>
</Button>
</Medium>
</Col>
<Col xs={3}>
<SmallOnly>
<Button type="button" small icon error right>
<DeleteIcon fill={theme.red} />
</Button>
</SmallOnly>
<Medium>
<Button type="button" bold icon error right>
<DeleteIcon fill={theme.red} />
<span>Remove</span>
</Button>
</Medium>
</Col>
</Row>
<Margin bottom="4" top="4">
<Divider height={remcalc(1)} />
</Margin>
<Margin bottom="2">
<P>{image.description}</P>
</Margin>
<CopiableField text={(image.id || '').split('-')[0]} label="ID" />
<CopiableField text={image.id} label="UUID" />
<CopiableField
text={titleCase(image.os)}
label="Operating system"
/>
</Padding>
</CardOutlet>
</Card>
</Col>
</Row>
));

View File

@ -0,0 +1,24 @@
import React from 'react';
import { Margin } from 'styled-components-spacing';
import { TagItem, KeyValue } from 'joyent-ui-toolkit';
export const AddForm = props => (
<KeyValue {...props} method="add" input="input" type="tag" expanded />
);
export const EditForm = props => (
<KeyValue {...props} method="edit" input="input" type="tag" expanded />
);
export default ({ norMargin, name, value, onClick, onRemoveClick, active }) => (
<Margin
right={norMargin ? 0 : 1}
bottom={norMargin ? 0 : 1}
key={`${name}-${value}`}
>
<TagItem onClick={onClick} active={active} onRemoveClick={onRemoveClick}>
{name ? `${name}: ${value}` : value}
</TagItem>
</Margin>
);

View File

@ -0,0 +1,53 @@
import React from 'react';
import { Field } from 'redux-form';
import Flex from 'styled-flex-component';
import { Margin } from 'styled-components-spacing';
import remcalc from 'remcalc';
import {
Button,
FormGroup,
Input,
FormLabel,
Divider
} from 'joyent-ui-toolkit';
export const Toolbar = ({
searchable = true,
searchLabel = 'Filter',
searchPlaceholder = '',
action = false,
actionLabel = '',
actionable = false,
onActionClick
}) => (
<Flex justifyBetween>
<FormGroup name="filter" field={Field}>
<FormLabel>{searchLabel}</FormLabel>
<Margin top={0.5}>
<Input placeholder={searchPlaceholder} disabled={!searchable} />
</Margin>
</FormGroup>
{action ? (
<FormGroup right>
<Divider height={remcalc(21)} transparent />
<Button
type={onActionClick ? 'button' : 'submit'}
disabled={!actionable}
onClick={onActionClick}
icon
fluid
>
{actionLabel}
</Button>
</FormGroup>
) : null}
</Flex>
);
export default ({ handleSubmit, ...rest }) => (
<form onSubmit={handleSubmit}>
<Toolbar {...rest} />
<Divider height={remcalc(20)} transparent />
</form>
);

View File

@ -0,0 +1,33 @@
import React from 'react';
import { Link } from 'react-router-dom';
import paramCase from 'param-case';
import get from 'lodash.get';
import { Breadcrumb, BreadcrumbItem } from 'joyent-ui-toolkit';
export default ({ match }) => {
const image = get(match, 'params.image');
const links = [
{
name: 'Images',
pathname: '/'
}
]
.concat(
image && [
{
name: paramCase(image),
pathname: `/${image}`
}
]
)
.filter(Boolean)
.map(({ name, pathname }) => (
<BreadcrumbItem key={name} to={pathname} component={Link}>
{name}
</BreadcrumbItem>
));
return <Breadcrumb>{links}</Breadcrumb>;
};

View File

@ -0,0 +1,3 @@
import React from 'react';
export default () => (<p>hello world</p>);

View File

@ -0,0 +1,68 @@
import React, { Fragment } from 'react';
import { compose, graphql } from 'react-apollo';
import ReduxForm from 'declarative-redux-form';
import { Link } from 'react-router-dom';
import { Margin } from 'styled-components-spacing';
import remcalc from 'remcalc';
import {
ViewContainer,
Divider,
Anchor,
StatusLoader,
Message,
MessageTitle,
MessageDescription
} from 'joyent-ui-toolkit';
import ToolbarForm from '@components/toolbar';
import ListImages from '@graphql/list-images.gql';
// const TABLE_FORM_NAME = 'images-list-table';
const MENU_FORM_NAME = 'images-list-menu';
export const List = ({ images = [], loading = false, error = null }) => (
<ViewContainer main>
<Divider height={remcalc(30)} transparent />
<ReduxForm form={MENU_FORM_NAME}>
{props => <ToolbarForm {...props} searchable={!loading} />}
</ReduxForm>
{loading && !images.length ? (
<Fragment>
<Divider height={remcalc(30)} transparent />
<StatusLoader />
</Fragment>
) : null}
{error && !images.length && !loading ? (
<Margin bottom={4}>
<Message error>
<MessageTitle>Ooops!</MessageTitle>
<MessageDescription>
An error occurred while loading your instances
</MessageDescription>
</Message>
</Margin>
) : null}
<ul>
{images.map(({ name }) => (
<li>
<Anchor to={`/${name}`} component={Link}>
{name}
</Anchor>
</li>
))}
</ul>
</ViewContainer>
);
export default compose(
graphql(ListImages, {
props: ({ data: { images, loading, error, refetch } }) => {
return {
images,
loading,
error
};
}
})
)(List);

View File

@ -0,0 +1,21 @@
import React from 'react';
import get from 'lodash.get';
import Menu from '@components/menu';
const SECTIONS = [
{ name: 'Summary', pathname: 'summary' },
{ name: 'Tags', pathname: 'tags' }
];
export default ({ match }) => {
const imageSlug = get(match, 'params.image');
const sections = imageSlug ? SECTIONS : [];
const links = sections.map(({ name, pathname }) => ({
name,
pathname: `/${imageSlug}/${pathname}`
}));
return <Menu links={links} />;
};

View File

@ -0,0 +1,57 @@
import React, { Fragment } from 'react';
import { compose, graphql } from 'react-apollo';
import { Margin } from 'styled-components-spacing';
import find from 'lodash.find';
import get from 'lodash.get';
import remcalc from 'remcalc';
import {
ViewContainer,
StatusLoader,
Divider,
Message,
MessageTitle,
MessageDescription
} from 'joyent-ui-toolkit';
import ImageSummary from '@components/summary';
import GetImage from '@graphql/get-image.gql';
export const Summary = ({ image, loading = false, error = null }) => (
<ViewContainer main>
{loading && !image ? (
<Fragment>
<Divider height={remcalc(30)} transparent />
<StatusLoader />
</Fragment>
) : null}
{error && !loading && !image ? (
<Margin bottom={4}>
<Message error>
<MessageTitle>Ooops!</MessageTitle>
<MessageDescription>
An error occurred while loading your instance summary
</MessageDescription>
</Message>
</Margin>
) : null}
{image ? <ImageSummary {...image} /> : null}
</ViewContainer>
);
export default compose(
graphql(GetImage, {
options: ({ match }) => ({
variables: {
name: get(match, 'params.image')
}
}),
props: ({
data: { loading = false, error = null, variables, ...rest }
}) => ({
image: find(get(rest, 'images', []), ['name', variables.name]),
loading,
error
})
})
)(Summary);

View File

@ -0,0 +1,87 @@
import React from 'react';
import { compose, graphql } from 'react-apollo';
import { Margin } from 'styled-components-spacing';
import ReduxForm from 'declarative-redux-form';
import find from 'lodash.find';
import get from 'lodash.get';
import remcalc from 'remcalc';
import {
H3,
ViewContainer,
StatusLoader,
Divider,
Message,
MessageTitle,
MessageDescription,
TagList
} from 'joyent-ui-toolkit';
import Tag from '@components/tags';
import ToolbarForm from '@components/toolbar';
import GetTags from '@graphql/get-tags.gql';
const MENU_FORM_NAME = 'image-tags-list-menu';
export const Tags = ({ tags = [], loading = false, error = null }) => (
<ViewContainer main>
<ReduxForm form={MENU_FORM_NAME}>
{props => (
<Margin bottom="4">
<ToolbarForm
{...props}
searchable={!loading}
actionLabel="Add Tag"
actionable={!loading}
action
/>
<Divider height={remcalc(1)} />
</Margin>
)}
</ReduxForm>
{error && !loading && !tags.length ? (
<Margin bottom={4}>
<Message error>
<MessageTitle>Ooops!</MessageTitle>
<MessageDescription>
An error occurred while loading your instance tags
</MessageDescription>
</Message>
</Margin>
) : null}
{!loading ? (
<Margin bottom={4}>
<H3>
{tags.length} tag{tags.length === 1 ? '' : 's'}
</H3>
</Margin>
) : null}
{loading && !tags.length ? <StatusLoader /> : null}
<TagList>
{tags.map(({ name, value }) => (
<Tag key={value} name={name} value={value} active />
))}
</TagList>
</ViewContainer>
);
export default compose(
graphql(GetTags, {
options: ({ match }) => ({
variables: {
name: get(match, 'params.image')
}
}),
props: ({
data: { loading = false, error = null, variables, ...rest }
}) => ({
tags: get(
find(get(rest, 'images', []), ['name', variables.name]),
'tags',
[]
),
loading,
error
})
})
)(Tags);

View File

@ -0,0 +1,19 @@
query image($name: String) {
images(name: $name) {
id
name
os
version
description
type
homepage
published_at
owner
public
state
error {
code
message
}
}
}

View File

@ -0,0 +1,11 @@
query image($name: String) {
images(name: $name) {
id
name
tags {
id
name
value
}
}
}

View File

@ -0,0 +1,18 @@
query images {
images(public: false) {
id
name
os
version
type
homepage
published_at
owner
public
state
error {
code
message
}
}
}

View File

@ -0,0 +1,15 @@
import React from 'react';
import ReactDOM from 'react-dom';
import isFunction from 'lodash.isfunction';
import isFinite from 'lodash.isfinite';
import { register } from './sw';
import App from './app';
if (!isFunction(Number.isFinite)) {
Number.isFinite = isFinite;
}
ReactDOM.render(<App />, document.getElementById('root'));
register();

View File

@ -0,0 +1 @@
module.exports = {};

View File

@ -0,0 +1,42 @@
import React from 'react';
import { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';
import get from 'lodash.get';
import { PageContainer } from 'joyent-ui-toolkit';
import Breadcrumb from '@containers/breadcrumb';
import Menu from '@containers/menu';
import List from '@containers/list';
import Summary from '@containers/summary';
import Create from '@containers/create';
import Tags from '@containers/tags';
export default () => (
<BrowserRouter>
<PageContainer>
{/* Breadcrumb */}
<Switch>
<Route path="/~create" component={Breadcrumb} />
<Route path="/:image?" component={Breadcrumb} />
</Switch>
{/* Menu */}
<Switch>
<Route path="/~create" component={() => null} />
<Route path="/:image/:section?" component={Menu} />
</Switch>
{/* Images */}
<Switch>
<Route path="/" exact component={List} />
<Route path="/~create" exact component={Create} />
<Route path="/:image/summary" exact component={Summary} />
<Route path="/:image/tags" exact component={Tags} />
<Route
path="/:image"
exact
component={({ match }) => (
<Redirect to={`/${get(match, 'params.image')}/summary`} />
)}
/>
</Switch>
</PageContainer>
</BrowserRouter>
);

View File

@ -0,0 +1,16 @@
import Lunr from 'lunr';
Lunr.tokenizer.separator = /[\s\-|_]+/;
export default items =>
Lunr(function() {
const fields = items
.map(item => Object.keys(item))
.reduce((all, keys) => all.concat(keys), [])
// eslint-disable-next-line no-implicit-coercion
.reduce((all, key) => (~all.indexOf(key) ? all : all.concat(key)), [])
.filter(key => !key.match(/^__/));
fields.forEach(field => this.field(field));
items.forEach(item => this.add(item));
});

View File

@ -0,0 +1,4 @@
export default ({ graphQLErrors = [], message = '' }) =>
graphQLErrors.length
? graphQLErrors.map(({ message }) => message).join('\n')
: message;

View File

@ -0,0 +1,39 @@
import { reduxBatch } from '@manaflair/redux-batch';
import { createStore, combineReducers, compose } from 'redux';
import { reducer as formReducer } from 'redux-form';
import { ApolloClient } from 'apollo-client';
import { HttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { reducer as valuesReducer } from 'react-redux-values';
const {
REACT_APP_GQL_PORT = 443,
REACT_APP_GQL_PROTOCOL = 'https',
REACT_APP_GQL_HOSTNAME = window.location.hostname
} = process.env;
export const client = new ApolloClient({
cache: new InMemoryCache(),
link: new HttpLink({
uri: `${REACT_APP_GQL_PROTOCOL}://${REACT_APP_GQL_HOSTNAME}:${REACT_APP_GQL_PORT}/graphql`
})
});
const initialState = {};
export const store = createStore(
combineReducers({
values: valuesReducer,
form: formReducer,
ui: (state = {}) => state
}),
initialState,
compose(
reduxBatch,
// If you are using the devToolsExtension, you can add it here also
// eslint-disable-next-line no-negated-condition
typeof window.__REDUX_DEVTOOLS_EXTENSION__ !== 'undefined'
? window.__REDUX_DEVTOOLS_EXTENSION__()
: f => f
)
);

108
packages/images/src/sw.js Normal file
View File

@ -0,0 +1,108 @@
// In production, we register a service worker to serve assets from local cache.
// This lets the app load faster on subsequent visits in production, and gives
// it offline capabilities. However, it also means that developers (and users)
// will only see deployed updates on the "N+1" visit to a page, since previously
// cached resources are updated in the background.
// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.
// This link also includes instructions on opting out of this behavior.
const isLocalhost = Boolean(
window.location.hostname === 'localhost' ||
// [::1] is the IPv6 localhost address.
window.location.hostname === '[::1]' ||
// 127.0.0.1/8 is considered localhost for IPv4.
window.location.hostname.match(
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
)
);
export function register() {
if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
// The URL constructor is available in all browsers that support SW.
const publicUrl = new URL(process.env.PUBLIC_URL, window.location);
if (publicUrl.origin !== window.location.origin) {
// Our service worker won't work if PUBLIC_URL is on a different origin
// from what our page is served on. This might happen if a CDN is used to
// serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374
return;
}
window.addEventListener('load', () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
if (!isLocalhost) {
// Is not local host. Just register service worker
registerValidSW(swUrl);
} else {
// This is running on localhost. Lets check if a service worker still exists or not.
checkValidServiceWorker(swUrl);
}
});
}
}
function registerValidSW(swUrl) {
navigator.serviceWorker
.register(swUrl)
.then(registration => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
installingWorker.onstatechange = () => {
if (installingWorker.state === 'installed') {
if (navigator.serviceWorker.controller) {
// At this point, the old content will have been purged and
// the fresh content will have been added to the cache.
// It's the perfect time to display a "New content is
// available; please refresh." message in your web app.
console.log('New content is available; please refresh.');
} else {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
console.log('Content is cached for offline use.');
}
}
};
};
})
.catch(error => {
console.error('Error during service worker registration:', error);
});
}
function checkValidServiceWorker(swUrl) {
// Check if the service worker can be found. If it can't reload the page.
fetch(swUrl)
.then(response => {
// Ensure service worker exists, and that we really are getting a JS file.
if (
response.status === 404 ||
response.headers.get('content-type').indexOf('javascript') === -1
) {
// No service worker found. Probably a different app. Reload the page.
navigator.serviceWorker.ready.then(registration => {
registration.unregister().then(() => {
window.location.reload();
});
});
} else {
// Service worker found. Proceed as normal.
registerValidSW(swUrl);
}
})
.catch(() => {
console.log(
'No internet connection found. App is running in offline mode.'
);
});
}
export function unregister() {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.ready.then(registration => {
registration.unregister();
});
}
}

3
packages/logos/.babelrc Normal file
View File

@ -0,0 +1,3 @@
{
"presets": ["joyent-portal"]
}

View File

@ -0,0 +1,9 @@
src/components/base/*.css
node_modules
coverage
.nyc_output
docs/static
!docs/static/index.html
docs/node_modules
dist
package-lock.json

View File

@ -0,0 +1,4 @@
.nyc_output
coverage
dist
styleguide

8
packages/logos/.eslintrc Normal file
View File

@ -0,0 +1,8 @@
{
"extends": "joyent-portal",
"rules": {
"no-console": 1,
"new-cap": 0,
"jsx-a11y/href-no-hash": 0
}
}

View File

@ -0,0 +1,12 @@
{
"libs": [
"ecmascript",
"browser"
],
"plugins": {
"doc_comment": true,
"local-scope": true,
"jsx": true,
"node": true
}
}

View File

29
packages/logos/README.md Normal file
View File

@ -0,0 +1,29 @@
# joyent-icons
[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg)](https://github.com/RichardLitt/standard-readme)
## Table of Contents
* [Install](#install)
* [Usage](#usage)
* [License](#license)
## Install
```
yarn add --dev joyent-icons
```
## Usage
```js
import React from 'react';
import { Arrow } from 'joyent-icons';
export default () => <Arrow />;
```
## License
MPL-2.0

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 6</title><path fill="#1B3240" d="M38.9 19.6c-2.7-4.8-5.5-9.6-8.2-14.4a1.36 1.36 0 0 0-1.3-.7H13a1.21 1.21 0 0 0-1.3.8c-2.6 4.6-5.3 9.3-8 13.9-.2.3-.5.7-.7 1v.2c.1.2.3.3.4.5 2.8 4.9 5.6 9.8 8.5 14.7.1.2.1.3.2.5h18.2c2.1-3.8 4.3-7.6 6.4-11.3.7-1.2 1.5-2.5 2.1-3.8a1.72 1.72 0 0 0 .1-1.4zm-22.7 4.8c-1-.4-1.9-.8-2.9-1.2 1.1-1 1.9-1.8 2.9-2.7zm13.4-1.2c-1.2-1.2-2.4-2.5-3.7-3.7a4.22 4.22 0 0 0-1.2-.3c1.2 1.3 2.4 2.5 3.6 3.8-1.9 1.7-3.6 1.5-4.8.1-1.7-1.9-3.6-3.6-5.6-5.5-1.7 1.8-3.4 3.6-5.2 5.4-1.6 1.7-3 1.7-4.7.2 3.3-3.4 6.7-6.8 10.1-10.3 1.5 1.4 2.9 2.8 4.4 4.2.9-1 1.7-2 2.4-2.9 3.1 3.1 6.1 6 9.2 9a2.87 2.87 0 0 1-4.5 0z"/></svg>

After

Width:  |  Height:  |  Size: 737 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 13</title><path fill="#1B3240" d="M39.91 3s-.6-2.5-2.4-2.1a18.78 18.78 0 0 0-4.6 2.3c-.1.1-.3.2-.4.3-.5.4-1.1.7-1.7 1.2l-2.1 1.5c-.7.5-1.3 1-2 1.6s-1.2.9-1.8 1.4l-.1.1-.1.1-1.9 1.6c-.6.6-1.3 1.2-1.9 1.7s-1.1 1-1.6 1.5l-.3.3c-.6.7-1.2 1.3-1.8 1.9s-1.2 1.4-1.7 2c-.3.4-.7.9-1 1.3a4.13 4.13 0 0 0-.7 1.1c-.6.8-1.1 1.7-1.6 2.5v.1a31.82 31.82 0 0 0-1.6 3.2v.1a8 8 0 0 0-1.4-2.4 12 12 0 0 1 .5 5.2 5.33 5.33 0 0 1-2.1-1.1 5 5 0 0 0 1.5 1.8 7 7 0 0 0-3.1.4 5.22 5.22 0 0 1 3.3.5c-2.3 3-4.8 6.3-7.3 9.9a1.05 1.05 0 0 0 .9-.5c.5-.6 3.4-4.9 7.7-10.4a1.76 1.76 0 0 1 .4-.5l.1-.1c.5-.6.9-1.2 1.4-1.8.1-.1.2-.3.3-.4l1.3-1.6c.1-.2.3-.3.4-.5.6-.7 1.1-1.4 1.7-2.1l1.7-2c.6-.7 1.2-1.3 1.8-2s1.2-1.4 1.8-2 1.2-1.3 1.9-2a4.62 4.62 0 0 1 .7-.7l1.2-1.2.1-.1c.6-.6 1.2-1.2 1.9-1.8s1.3-1.2 2-1.8 1.4-1.2 2-1.8l.1-.1c.7-.5 1.3-1.1 2-1.6a31 31 0 0 1 4.1-2.6.31.31 0 0 1 .2-.1c-.1 0-.1.1-.2.1a31.09 31.09 0 0 0-3.9 2.7c-.6.5-1.3 1-2 1.6l-.1.1c-.6.5-1.3 1.1-2 1.8s-1.3 1.2-2 1.9l-1.9 1.9-.3.3-.8.8-.9.9c-.1.2-.3.3-.4.5a19.2 19.2 0 0 1-1.4 1.5c-.6.6-1.2 1.3-1.8 2s-1.2 1.3-1.8 2l-1.8 2.1c-.5.6-1.1 1.3-1.6 2l-.1.1c-.5.7-1.1 1.4-1.7 2.1-.1.1-.2.2-.2.3-.4.6-.9 1.1-1.3 1.7-.1.1-.1.2-.2.2-.3.4-.6.7-1.2 1.6a4.64 4.64 0 0 1 .8 2 2.87 2.87 0 0 0-.3-2.2c2.5 1 4.9 1 6.6-.4.2-.1.3-.3.5-.4a2.61 2.61 0 0 1-2.6.1 7.33 7.33 0 0 0 4.4-1.7 6.47 6.47 0 0 0 .9-.8 6 6 0 0 1-5.8 0h-.1a11.59 11.59 0 0 0 6.4-1.2 14.83 14.83 0 0 0 2.7-1.9 20.32 20.32 0 0 0 2-2.1 23.05 23.05 0 0 0 1.8-2.3 3.78 3.78 0 0 1-1.5 0h-.6a6.57 6.57 0 0 0 4.4-2.1 6.84 6.84 0 0 1-2.2.2.76.76 0 0 1-.4-.1H27a8.58 8.58 0 0 0 1.7-.3c.1 0 .2-.1.3-.1s.3-.1.5-.2.2-.1.3-.2a2.65 2.65 0 0 0 .6-.5l.2-.2.2-.2a7.3 7.3 0 0 0 .9-1 1.38 1.38 0 0 1 .3-.4c0-.1.1-.1.1-.2s.2-.3.3-.4a1.38 1.38 0 0 1 .3-.4c-.1 0-.1 0-.2.1a8.09 8.09 0 0 1-2.2 0h-.2a6.29 6.29 0 0 0 3.1-1.1 4.23 4.23 0 0 1 .7-.5l2.1-1.8c.6-.6 1.2-1.3 1.7-1.8.3-.4.6-.7.8-1a5.58 5.58 0 0 1 .5-.8c1.41-2.88.91-4.6.91-4.6z"/></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 14</title><path fill="#1B3240" d="M37.38 20a7.62 7.62 0 0 0 2.7-5.7 7.38 7.38 0 0 0-7.4-7.4H4.08c7.3 7.4 14.3 11.2 19.8 13.1-5.5 1.9-12.4 5.7-19.8 13.1h28.6a7.38 7.38 0 0 0 7.4-7.4 7.12 7.12 0 0 0-2.7-5.7m-5 9.1h-17.2c6.49-4.6 12.1-6.8 17.1-6.8a3.37 3.37 0 0 1 3.4 3.4 3.43 3.43 0 0 1-3.3 3.4m0-11.4c-5 0-10.61-2.2-17.11-6.8h17.11a3.37 3.37 0 0 1 3.4 3.4 3.59 3.59 0 0 1-3.4 3.4"/></svg>

After

Width:  |  Height:  |  Size: 494 B

View File

@ -0,0 +1 @@
<svg id="svg4300" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><defs><style>.cls-1{fill:#fff}</style></defs><title>Artboard 1 copy 15</title><path fill="#1B3240" d="M42 13.35s-2.6 3-4.5 2.3a10.24 10.24 0 0 0 3-3.4s-3.3 3.4-5.6 2.9a10.87 10.87 0 0 0 3.1-4.5s-2.6 4.1-4.3 4.2a10.74 10.74 0 0 0 2.7-4.1s-2.2 3.2-3.8 3.4c2.3-2 2.3-3.3 2.3-3.3s-2.2 2.8-3.6 3.4c-.2-.1-.3-.2-.5-.3a21.11 21.11 0 0 0 2.2-3.4s-2 2.7-3 3c-.1-.1-.3-.1-.4-.2 0-.4.9-1.5.9-1.5s-1.3 1.2-1.9 1.1h-.1a12.81 12.81 0 0 0 2.2-2.9 13.23 13.23 0 0 1-2.9 2.6c-.1 0-.2-.1-.3-.1l1.2-2.5s-1 2.1-2.5 2.2c-.2 0-.3-.1-.5-.1a6.88 6.88 0 0 0 1.1-1.9s-1.3 2.1-3 1.5c-.4-.1.5-1.1.5-1.1s-1.1 1.1-1.9.9 0-1.5 0-1.5-.9 1.3-1.3 1.8h-.3a3.47 3.47 0 0 1 .2-1.3 6.77 6.77 0 0 1-1.1 1.4h-.5c-.3-.3.1-1.5.1-1.5s-.6 1.7-1 1.6S18 11 18 11a2.89 2.89 0 0 1-.5 1.4 21.76 21.76 0 0 0-4.9 1.4C9.1 15.1 5.2 17.5.7 22c2.9-1.5 4.9-3.4 7.5-5a4.18 4.18 0 0 0-.9 2.7c.1 1.7 1.6 3.2 3.9 4.1-.1 0-.3-.1-.4-.1-4-1.1-7.2.9-10.7-.9.8.6 1.7 1.3 4.4 1.2.9 0 3.8-.1 4.3.3S7 27 7 27s3.9-3.3 4.3-2.2c.2.7-1.1 2.6-1.1 2.6s1.4-1.9 2.4-2.2a1.33 1.33 0 0 1 1.8.5c.3.5-1.6 2.7-1.6 2.7s2.6-2.5 3-2.4 0 2.4 0 2.4 1-2.3 1.5-2.4c.7-.2-1.6 5.3-1.6 5.3s2.8-5.1 3.3-5.2c.9-.2 1.5 3.6 1.5 3.6s-.4-3.3 0-3.5c3-1.3 1.3 5.7 1.3 5.7s2-4.8.8-5.8a6.77 6.77 0 0 1 2.8 5.8s.8-1.8-1.5-6.2c1.3-.1 3.1 3.2 3.1 3.2s-2-3.6-.7-3.7c2.8-.1 3 4.8 3 4.8s.8-.7-1.4-5.6c1.4-.9 4.8 4.5 4.8 4.5s-3.1-5.3-2.6-5.6 2.4 1.7 2.4 1.7-1.4-2-1-2.1 4.1 3.9 4.1 3.9-3.3-4-2.7-4.5c.3-.3 1.2.2 2 .7-1-.8-2.5-1.9-2-2.1 1-.5 3.9 1.3 3.9 1.3s-1.7-1.4-1.5-1.8 3.7 2.2 3.7 2.2-3-2.4-3.2-3 2.4.2 2.4.2-2.8-1.3-2.9-1.7 1.9.4 1.9.4-2.6-2.1-3.2-.4c-.2.3-.3.6-.5.9a2.62 2.62 0 0 0 .2-1.5 2.84 2.84 0 0 0-.4-1.3 7.37 7.37 0 0 0 2.1.9c3.95.35 6.6-3.75 6.6-3.75z"/><path fill="#1B3240" d="M34.65 23.05c.6.4 1 .7 1 .7a4.24 4.24 0 0 0-1-.7z"/><path class="cls-1" d="M27.25 13.25c-1.5-.2-3.4-.5-5.4-.6a7.07 7.07 0 0 1 3.7 1.2 7.84 7.84 0 0 1-.5 1.4h-.2a.68.68 0 0 0-.7.7.52.52 0 0 0 .2.4 6.73 6.73 0 0 1-1.5 1.4 2.32 2.32 0 0 0-4.6.4v.1a5.41 5.41 0 0 1-2.2-1.5 5.39 5.39 0 0 1 .7-1.3h.3a.79.79 0 0 0 .8-.8.37.37 0 0 0-.1-.3 6.39 6.39 0 0 1 4.6-1.3c-.1 0-.3-.1-.4-.1a5.36 5.36 0 0 0-4.6 1h-.3a.79.79 0 0 0-.8.8v.3a4.73 4.73 0 0 0-.7 1.2 5.36 5.36 0 0 1-1.1-2.7h-.1v.1a5.45 5.45 0 0 0 1 3.1 4.33 4.33 0 0 1-.1.5 6.08 6.08 0 0 0-.1 1.9 1.15 1.15 0 0 0-.6.9.94.94 0 0 0 1 1h.1a7.1 7.1 0 0 0 1 1.4 7 7 0 0 1-4.1-6.4 2.8 2.8 0 0 1 1.6-2.5 24.88 24.88 0 0 0-2.9 1.1 8.52 8.52 0 0 0-.4 2.3c0 4.3 3.9 7.7 8.6 7.7s8.6-3.4 8.6-7.7a4.88 4.88 0 0 0-.8-3.7zm-10.2 8.6a3.88 3.88 0 0 1-.6-1.1.91.91 0 0 0 .3-.7 1.08 1.08 0 0 0-.8-1 5 5 0 0 1 .1-1.7v-.1a6 6 0 0 0 2.5 1.6 2.19 2.19 0 0 0 .3.5 8.32 8.32 0 0 0-1.8 2.5zm2.7 1.3A11 11 0 0 1 18 23c-.2-.2-.4-.3-.5-.5a5.46 5.46 0 0 1 1.8-2.4 2.39 2.39 0 0 0 1.4.5 2.43 2.43 0 0 0 2.2-1.5 6.72 6.72 0 0 1 2.8 1 7.43 7.43 0 0 1-5.95 3.05zm6.1-3.6a5.51 5.51 0 0 0-2.7-1.2 5.51 5.51 0 0 0 1.7-1.7H25a.68.68 0 0 0 .7-.7.76.76 0 0 0-.2-.5 4 4 0 0 0 .3-1.5 2.66 2.66 0 0 1 1 2.1 6.76 6.76 0 0 1-.95 3.5z"/></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1 @@
<svg id="svg4300" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><defs><style>.cls-1{fill:#fff}</style></defs><title>Artboard 1</title><g id="g12802"><g id="g12804"><g id="g12806"><path fill="#1B3240" d="M18.54 19.68l1.3 1.32-1.3 1.28h-9.2v4.38L3.74 21l5.6-5.54v4.26z" id="path12808"/></g></g></g><g id="g12768"><g id="g12770"><g id="g12772"><path fill="#1B3240" d="M22.76 18.17l-1.28 1.3-1.28-1.3V9h-4.37l5.65-5.6L27 9h-4.24v9.2z" id="path12774"/></g></g></g><g id="g12780"><g id="g12782"><path fill="#1B3240" d="M24.23 22.29L22.93 21l1.3-1.28h9.2v-4.36L39 21l-5.6 5.55v-4.26z" id="path12784"/></g></g><g id="g12790"><g id="g12792"><g id="g12794"><path fill="#1B3240" d="M20.05 23.86l1.28-1.3 1.28 1.3v9.2H27l-5.65 5.6-5.55-5.6h4.27z" id="path12796"/></g></g></g><g id="rect12744"><path fill="#1B3240" d="M9 8.6h11.2v11.2H9z"/><path class="cls-1" d="M20.63 20.2H8.73V8.3h11.9zm-11.2-.8h10.4V9H9.43z"/></g><g id="rect12746"><path fill="#1B3240" d="M22.63 8.6h11.2v11.2h-11.2z"/><path class="cls-1" d="M34.13 20.2h-11.9V8.3h11.9zm-11.2-.8h10.4V9h-10.4z"/></g><g id="rect12748"><path fill="#1B3240" d="M22.63 22.2h11.2v11.2h-11.2z"/><path class="cls-1" d="M34.13 33.7h-11.9V21.8h11.9zm-11.2-.7h10.4V22.6h-10.4z"/></g><g id="rect12750"><path fill="#1B3240" d="M9 22.2h11.2v11.2H9z"/><path class="cls-1" d="M20.63 33.7H8.73V21.8h11.9zM9.43 33h10.4V22.6H9.43z"/></g><path class="cls-1" d="M11.83 29.4L3.43 21l8.4-8.4 8.4 8.4zM4.43 21l7.4 7.4 7.4-7.4-7.4-7.4z" id="rect12760"/><path class="cls-1" d="M21.43 19.8L13 11.4 21.43 3l8.4 8.4zM14 11.4l7.4 7.4 7.4-7.4L21.43 4z" id="rect12762"/><path class="cls-1" d="M31 29.4L22.63 21 31 12.6l8.4 8.4zM23.63 21L31 28.4l7.4-7.4-7.4-7.4z" id="rect12764"/><path class="cls-1" d="M21.43 39L13 30.6l8.4-8.4 8.4 8.4zM14 30.6l7.4 7.4 7.4-7.4-7.4-7.4z" id="rect12766"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 7</title><path fill="#1B3240" d="M21.7 5.15a15 15 0 1 0 15 15 15 15 0 0 0-15-15zm10.1 17.6a1.83 1.83 0 0 1-1.5 1.9 65.23 65.23 0 0 1-8.6.5 65.23 65.23 0 0 1-8.6-.5 1.83 1.83 0 0 1-1.5-1.9V17a2 2 0 0 1 1.5-1.9 17.57 17.57 0 0 1 2.7-.2.68.68 0 0 1 .7.7v4.1l5.3-.1 5.3.1v-4.1a.68.68 0 0 1 .7-.7 17.57 17.57 0 0 1 2.7.2A1.85 1.85 0 0 1 32 17a55.24 55.24 0 0 0-.2 5.8z"/></svg>

After

Width:  |  Height:  |  Size: 479 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy</title><path fill="#1B3240" d="M24.37 22.2c-.7 0 .1.4 1 .5a4.35 4.35 0 0 0 .7-.6 9.15 9.15 0 0 1-1.7.1m3.8-1a4.76 4.76 0 0 0 .8-1.8 3.1 3.1 0 0 1-.6 1.3c-1.3.8-.1-.5 0-1-1.4 1.7-.2 1-.2 1.5m1.3-3.6c.1-1.3-.2-.9-.4-.4.2.1.3.9.4.4M21.77.5c.4.1.8.1.7.2.4-.1.5-.2-.7-.2m.7.2l-.3.1.3-.1"/><path fill="#1B3240" d="M34.07 18.1a5.59 5.59 0 0 1-.7 2.6l-.6.3c-.5 1 0 .6-.3 1.4a22.09 22.09 0 0 1-2.8 2.3c-.4 0 .2-.4.3-.6-1 .7-.8 1.1-2.4 1.5v-.1c-3.9 1.8-9.3-1.8-9.2-6.7 0 .3-.1.2-.2.4a6.2 6.2 0 0 1 3.5-6.1 5.69 5.69 0 0 1 6.5.9 5.88 5.88 0 0 0-4.8-2.3 5.06 5.06 0 0 0-4.6 2.8c-1.1.7-1.2 2.6-1.6 2.9-.6 4.5 1.2 6.5 4.2 8.8.5.3.1.4.2.6a10.52 10.52 0 0 1-2.7-2 5.39 5.39 0 0 0 1.4 1.6c-.9-.3-2.2-2.3-2.6-2.4 1.6 2.9 6.6 5.1 9.2 4a12.11 12.11 0 0 1-4.1-.5c-.6-.3-1.3-.9-1.2-1a10.14 10.14 0 0 0 10.3-1.5c.8-.6 1.6-1.6 1.9-1.7-.4.6.1.3-.2.8.8-1.3-.3-.5.8-2.2l.4.6c-.2-1 1.3-2.3 1.1-4 .3-.5.4.5 0 1.7.5-1.3.1-1.5.3-2.6.1.4.3.7.4 1.1a4.71 4.71 0 0 1 .5-2.8c-.2-.1-.5.6-.6-.9 0-.6.2-.3.2-.5A3.3 3.3 0 0 1 36 13c.1-.2.4.6.6.6-.1-.7-.3-1.3-.4-1.9-.6-1.2-.2.2-.7-.5-.6-1.9.5-.4.6-1.3a14.09 14.09 0 0 1 1.7 4.3 15.83 15.83 0 0 0-.9-3.1c.3.1-.5-2.2.4-.7a14.05 14.05 0 0 0-6.4-7.7c.3.3.7.7.6.7-1.3-.8-1.1-.8-1.3-1.2-1.1-.4-1.1 0-1.9 0A16.23 16.23 0 0 0 24 .6l.1.4c-1.3-.4-1.6.2-3 0-.1-.1.5-.2.9-.3-1.3.2-1.2-.3-2.5 0a8.79 8.79 0 0 1 1-.6c-1.1.1-2.5.6-2.1.1-1.7.8-4.8 1.9-6.5 3.5l-.1-.4c-.8.9-3.4 2.8-3.6 4.1H8a21.4 21.4 0 0 0-1 2.2c-.5.9-.8.4-.7.5a24.48 24.48 0 0 0-2 5.4c.3.5 0 2.9.1 4.8-.5 9.6 6.7 18.9 14.6 21a15.34 15.34 0 0 0 4.4.4c-1.7-.5-2-.3-3.6-.9a7.56 7.56 0 0 1-2.3-2l.3.6c-1.7-.6-1-.7-2.4-1.2l.4-.5a2.91 2.91 0 0 1-1.7-1.4h-.6c-.7-.9-1.1-1.5-1.1-2l-.2.3c-.2-.4-2.7-3.3-1.4-2.6a3 3 0 0 1-.9-1l.3-.3a6 6 0 0 1-1.1-2.1 1.41 1.41 0 0 0 .8.6c-1.5-3.8-1.6-.2-2.8-3.9h.2c-.2-.3-.3-.6-.5-.9l.1-1.1c-1.1-1.3-.3-5.4-.1-7.7.1-.9.9-1.9 1.5-3.5l-.4-.1c.7-1.3 4.1-5 5.7-4.8.8-1-.2 0-.3-.2 1.7-1.7 2.2-1.2 3.3-1.5 1.2-.7-1 .3-.5-.3 2.1-.5 1.5-1.2 4.2-1.5.3.2-.7.3-.9.5 1.7-.9 5.5-.7 8 .5 2.8 1.3 6.1 5.3 6.2 9h.1c-.1 1.5.2 3.2-.3 4.7l.7-.3"/><path fill="#1B3240" d="M16.77 23.1l-.1.5a12.38 12.38 0 0 0 1.4 1.8c-.4-.8-.7-1.2-1.3-2.3m1.1 0a4.05 4.05 0 0 1-.5-.9 7.14 7.14 0 0 0 .8 1.5l-.3-.6M37 18.9l-.1.3a14.58 14.58 0 0 1-1.2 3.9 11.34 11.34 0 0 0 1.3-4.2M21.87.2a9.85 9.85 0 0 1 1.7-.2c-.7.1-1.3.1-1.9.2h.2M5.37 9c.1 1-.8 1.4.2.7.5-1.2-.2-.3-.2-.7m-1.1 4.6a5.56 5.56 0 0 0 .3-1.5c-.6.8-.2 1-.3 1.5"/></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1 @@
<svg id="svg4300" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><defs><style>.cls-1,.cls-2{fill:#fff}.cls-1{opacity:.5;isolation:isolate}</style></defs><title>Artboard 1 copy 2</title><path id="voice" d="M39.7 20.3a18 18 0 0 0-36 0v13.9a4.06 4.06 0 0 0 4.1 4.1h13.9a18 18 0 0 0 18-18"/><path class="cls-1" d="M27 6.6a8.39 8.39 0 0 0-8.4 8.4v4.5h-4.5a8.4 8.4 0 1 0 8.4 8.4v-4.5H27a8.4 8.4 0 0 0 0-16.8zm-8.4 21.3a4.5 4.5 0 1 1-4.5-4.5h4.5zm8.4-8.4h-4.5V15a4.5 4.5 0 1 1 4.5 4.5z"/><path class="cls-2" d="M28.9 6.8a6.28 6.28 0 0 0-1.9-.3 8.39 8.39 0 0 0-8.4 8.4v4.5h-3.5a2 2 0 0 0 0 4H18a.65.65 0 0 1 .6.6v3.9a4.48 4.48 0 0 1-4.5 4.5c-.8 0-1-.1-1.6-.1a1.87 1.87 0 0 0-2 1.9 2.12 2.12 0 0 0 1.7 1.9 6.28 6.28 0 0 0 1.9.3 8.39 8.39 0 0 0 8.4-8.4v-4.5H26a2 2 0 0 0 0-4h-2.9a.65.65 0 0 1-.6-.6V15a4.48 4.48 0 0 1 4.5-4.5c.8 0 1 .1 1.6.1a1.87 1.87 0 0 0 2-1.9 2.34 2.34 0 0 0-1.7-1.9z"/></svg>

After

Width:  |  Height:  |  Size: 918 B

View File

@ -0,0 +1 @@
<svg id="svg4300" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 3</title><path d="M35.66,6.09c1.6,1.6-2.8,8.6-3.6,9.3s-2.6.1-4.2-1.5-2.3-3.5-1.5-4.2,7.7-5.2,9.3-3.6m-22.3,1.7c-2.4-1.4-5.9-2.9-7-1.8s.5,4.6,1.9,7.1a14.41,14.41,0,0,1,5.1-5.3"/><path d="M33.26,14.89c.2.8.2,1.4-.2,1.7-.8.8-3.1-.1-5.2-2l-.4-.4a9.12,9.12,0,0,1-1.7-2.3c-.7-1.3-.9-2.4-.4-3a1.57,1.57,0,0,1,1.4-.3c.4-.2.8-.5,1.3-.8a15,15,0,0,0-6.7-1.6,14.4,14.4,0,1,0,14.4,14.4,14.21,14.21,0,0,0-1.9-7.1,4.54,4.54,0,0,1-.6,1.4"/></svg>

After

Width:  |  Height:  |  Size: 549 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 16</title><path fill="#1B3240" d="M3 30.8h14.4V38H3zm21.6 0H39V38H24.6zM3 16.4h36v7.2H3zM3 2h21.6v7.2H3zm28.8 0H39v7.2h-7.2z"/></svg>

After

Width:  |  Height:  |  Size: 240 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 32.32 42"><title>Illumos</title><g id="Layer_2" data-name="Layer 2"><g id="svg4300"><path d="M32.25,15.62l0,.06a1.34,1.34,0,0,0-.56-.43,7.51,7.51,0,0,0-1.24-.51,7.89,7.89,0,0,0-1.87-.4,5.55,5.55,0,0,0-4.16,1.49,0,0,0,0,1,0,0,8.88,8.88,0,0,0-.92.92A8.7,8.7,0,0,0,22.3,18.5a6.75,6.75,0,0,0-.43,1.08,1.68,1.68,0,0,0-.44-.58c-.33-.24-.66-.48-1-.71a76.21,76.21,0,0,1-8.24-6.17L12,11.93l-.15-.15-.45-.42-.86-.87c-.59-.62-1.17-1.26-1.72-1.91-.29-.35-.58-.7-.85-1.06L7.8,7.34l0,0-.33-.5c-.09-.13-.17-.26-.25-.39l-.07-.12C6.83,5.61,7,6,7,6A17.24,17.24,0,0,0,6.1,4.07,3.72,3.72,0,0,0,5.41,3c-.27-.23-.15.33-.15.36v0a2.42,2.42,0,0,0,0,.38c0,.21.07.42.11.62h0l-.13-.08.08.05c-.41-.26-.83-.5-1.23-.76A11.34,11.34,0,0,1,2.34,2.14a9.05,9.05,0,0,1-.65-.74,2.43,2.43,0,0,1-.14-.2A6.48,6.48,0,0,0,1.07.05L1,0a2.23,2.23,0,0,0,.1.81,18,18,0,0,0,.6,1.89,8.71,8.71,0,0,0,.59,1.37,4.91,4.91,0,0,1-.63-.47l-.15-.12,0,0-.12-.13,0,0c-.14-.2-.27-.4-.43-.59A4,4,0,0,0,0,1.81l.06,0A.16.16,0,0,0,0,1.79s0,.05,0,.08H0v0A.19.19,0,0,0,0,2,7.71,7.71,0,0,0,.47,3l.32.62.07.12c.12.21.24.42.37.62A11.3,11.3,0,0,0,2.32,5.79l.47.48-.08,0a9,9,0,0,1-.84-.52l-.2-.14a5.66,5.66,0,0,0-.8-1l-.06,0a2.36,2.36,0,0,0,.34.74A18.2,18.2,0,0,0,2.28,7,8.33,8.33,0,0,0,3.54,8.34a7.07,7.07,0,0,0,1.32.85c.53.26,1,.53,1.59.75l.41.14H6.75a4.47,4.47,0,0,1-1.3-.25,5.83,5.83,0,0,1-.72-.32l-.16-.09,0,0-.15-.1,0,0C4.2,9.12,4,9,3.83,8.8a3.73,3.73,0,0,0-1.09-.71l.07,0a.18.18,0,0,0-.09,0,.21.21,0,0,0,0,.07h0l0,.07a7,7,0,0,0,.64,1l.44.53L4,9.83c.16.18.32.36.49.53a11.49,11.49,0,0,0,1.36,1.15,7.08,7.08,0,0,0,1.51.86l.27.1a10,10,0,0,1-1.23-.29,7.92,7.92,0,0,1-.93-.33l-.22-.1a6,6,0,0,0-1-.78l-.07,0a2.38,2.38,0,0,0,.48.66A18.51,18.51,0,0,0,6.08,13,8.71,8.71,0,0,0,7.6,14.09a7,7,0,0,0,1.46.56c.49.14,1,.27,1.46.37A5.29,5.29,0,0,1,8,14.9s-.19-.07-.33-.14l-.27-.12L7,14.37a3.69,3.69,0,0,0-.46-.29.89.89,0,0,0,0,.15v-.08a1.62,1.62,0,0,0,.38.69,8.51,8.51,0,0,0,1,1.05A8.34,8.34,0,0,0,9.68,17.1a6.27,6.27,0,0,0,1.18.46,4.41,4.41,0,0,0,1.24.17,5.36,5.36,0,0,1-1.78.2L10,17.88l-.29-.07c-.06,0,0,0-.4-.17a3.16,3.16,0,0,0-.52-.18.42.42,0,0,0,.06.14.25.25,0,0,1,0-.07,1.66,1.66,0,0,0,.54.58,8.4,8.4,0,0,0,1.24.79,8.34,8.34,0,0,0,1.91.78,6,6,0,0,0,1.26.18h.08a10.09,10.09,0,0,1-1.89.49,6.68,6.68,0,0,1-1,.11h-.25a5.71,5.71,0,0,0-1.21-.27H9.41a2.31,2.31,0,0,0,.71.38,18.88,18.88,0,0,0,1.89.61,8.48,8.48,0,0,0,1.85.34,6.89,6.89,0,0,0,1.57-.13l.34-.07a5.08,5.08,0,0,1-1.76,1l-.35.09-.29.05c-.06,0,0,0-.43,0a2.61,2.61,0,0,0-.55,0l.11.11-.06-.06a1.62,1.62,0,0,0,.71.34,9,9,0,0,0,1.45.26,8.43,8.43,0,0,0,2.07,0l.44-.09a5.14,5.14,0,0,1-1.56,1.14l-.33.12-.28.09c-.06,0,0,0-.44,0a2.77,2.77,0,0,0-.54.09l0,.05a1.52,1.52,0,0,0,.75.25,8.07,8.07,0,0,0,1.47.09A9.11,9.11,0,0,0,18,24.76a8.85,8.85,0,0,1-1.15,1,6,6,0,0,1-.78.54l-.21.12a5.38,5.38,0,0,0-1.19.33l-.05,0a2.5,2.5,0,0,0,.82,0c.67-.08,1.32-.22,2-.36a8.14,8.14,0,0,0,1.77-.57l.17-.08-.09.18A4.92,4.92,0,0,1,18,27.19a3.37,3.37,0,0,1-.38.19l-.28.12a3.43,3.43,0,0,1-.43.08,2.89,2.89,0,0,0-.52.14s.07.05.12.08l-.07,0a1.59,1.59,0,0,0,.77.18,7.23,7.23,0,0,0,1.47-.05,14.79,14.79,0,0,0-.4,1.75l-.06.4A13.15,13.15,0,0,1,17,31.45a14.82,14.82,0,0,1-1.16,1.08l-.62.5-.29.22-.16.11h0c-.44.31-.9.59-1.36.86l-.71.38-.39.18-.14.06h0a14.59,14.59,0,0,1-1.44.53l-.15,0-.34.08-.33.09-.12,0A5,5,0,0,0,8.62,36c-.09,0-.39.2-.16.32a2.21,2.21,0,0,0,1,.12A10.32,10.32,0,0,0,11,36.23a17.9,17.9,0,0,0,5-1.6l-.39.38-.74.65-.16.12c-.11.1-.23.19-.35.28l-.72.51-.16.1-.38.23-.16.1-.38.2,0,0-.33.15-.05,0-.27.11-.85.22-.28.07-.09,0a6.12,6.12,0,0,0-1.61.6,9.72,9.72,0,0,0-1.25.73l0,0-.06,0c-.08.05-.47.27-.45.43s1.71-.24,2-.32a23.6,23.6,0,0,0,6.77-3.05c-.11.17-.22.34-.34.5l-.15.2-.27.35-.12.15-.28.32,0,0-.26.27,0,0-.21.19-.72.51-.24.16-.08.05a6.34,6.34,0,0,0-1.29,1.13A9,9,0,0,0,11,41.31l0,.06,0,.05c-.06.08-.35.42-.28.56s1.52-.82,1.75-1a25.17,25.17,0,0,0,6.24-6.61l.06-.09a18.78,18.78,0,0,0,3.82-4.19,2.46,2.46,0,0,1-.09.29c0,.07-.05.14-.07.21l-.05.08a11.85,11.85,0,0,0-.66,1.13s-.23.39,0,.22A6,6,0,0,0,22.57,31,24.43,24.43,0,0,0,24,28.79a9.89,9.89,0,0,0,.84-1.61c.06-.14.21-.5.23-.56a6.77,6.77,0,0,0,.26-.71,11.59,11.59,0,0,0,.33-1.15,8.36,8.36,0,0,0,.37-2.9,3.84,3.84,0,0,0-.24-1,2,2,0,0,0-.4-.76h0A11.22,11.22,0,0,1,26,18.21l.24-.54a1.64,1.64,0,0,0,.64-.1,1.48,1.48,0,0,0,.61-.4l0,0a7.56,7.56,0,0,1,.95-.74,5.4,5.4,0,0,1,2.22-.83l.44,0h.27c.06,0,0,0,.39.09a3.64,3.64,0,0,0,.51.08A.47.47,0,0,0,32.25,15.62ZM10.76,37.79H10.7C10.87,37.76,10.83,37.78,10.76,37.79ZM13,37Zm1.71-1.18ZM13.33,39l-.05,0C13.42,38.91,13.4,39,13.33,39Zm1.76-1.54c.17-.21.07-.08,0,0Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 17</title><path fill="#1B3240" d="M14.79 32.38s-1.6.9 1.1 1.2a23.57 23.57 0 0 0 8.7-.4 16.47 16.47 0 0 0 2.3 1.1c-8.2 3.7-18.6 0-12.1-1.9m-1-4.6s-1.8 1.3.9 1.6a33.65 33.65 0 0 0 11.2-.5 5.63 5.63 0 0 0 1.7 1.1c-9.9 2.9-21 .2-13.8-2.2m8.4-7.78c2 2.3-.5 4.4-.5 4.4s5.1-2.7 2.8-6c-2.2-3.1-3.9-4.6 5.3-10-.1.1-14.4 3.7-7.6 11.6"/><path fill="#1B3240" d="M33.09 35.78s1.2 1-1.3 1.7c-4.7 1.4-19.8 1.9-23.9.1-1.5-.7 1.3-1.6 2.2-1.7a7.21 7.21 0 0 1 1.4-.2C9.79 34.48.69 38 6.89 39c16.8 2.8 30.6-1.2 26.2-3.2m-17.6-12.72s-7.6 1.8-2.7 2.5a57.48 57.48 0 0 0 10.1-.1c3.2-.3 6.3-.8 6.3-.8a19.64 19.64 0 0 0-1.9 1c-7.8 2-22.7 1.1-18.4-1a14.31 14.31 0 0 1 6.6-1.6m13.7 7.6c7.9-4.1 4.2-8 1.7-7.5a6.59 6.59 0 0 0-.9.2 1 1 0 0 1 .7-.5c5-1.8 8.9 5.2-1.6 8a.35.35 0 0 0 .1-.2M24.49 0s4.4 4.4-4.1 11.1c-6.8 5.4-1.6 8.5 0 12-4-3.6-6.9-6.8-4.9-9.7 2.8-4.4 10.7-6.5 9-13.4"/><path fill="#1B3240" d="M16.29 41.78c7.6.5 19.2-.3 19.5-3.8 0 0-.5 1.4-6.3 2.4a61.75 61.75 0 0 1-19.1.3s.9.8 5.9 1.1"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.55" height="30" viewBox="0 0 30.66 36"><defs><style>.cls-1{fill:#010002;}</style></defs><title>Linux</title><g id="Layer_2" data-name="Layer 2"><g id="svg4300"><path class="cls-1" d="M29.88,29.37a2.23,2.23,0,0,1-1.68-2.19,2.67,2.67,0,0,0-.84-1.95,8.85,8.85,0,0,0,.05-4.7c-.72-2.13-3.13-5.54-5-8.12s-.27-5.54-1.95-9.34-6.05-3.58-8.4-2-1.62,5.65-1.51,7.55a11.1,11.1,0,0,1-.17,3.75c-.22.49-1.73,2.3-2.74,3.81S5.93,20.86,5.2,22.15A3,3,0,0,0,5,24.61a1.77,1.77,0,0,0-.89,1c-.39.84-1.18,1.23-2.58,1.5S.11,28.3.44,29.31s0,1.57-.39,2.85,1.57,1.68,3.47,1.9,4,1.46,5.82,1.68a2.15,2.15,0,0,0,2.35-1.23,24.13,24.13,0,0,1,4.14-.5,17.14,17.14,0,0,1,4.14.45,3,3,0,0,0,1.12,1.28,3,3,0,0,0,3.3-.61c1-1.07,3.69-2.41,5.2-3.25S30.83,29.75,29.88,29.37ZM16.78,4.69a2,2,0,0,1,1.74,2.12,2.19,2.19,0,0,1-1,1.9l-.46-.19a1.24,1.24,0,0,0,.59-1.11,1.09,1.09,0,0,0-.92-1.2,1.09,1.09,0,0,0-.91,1.2,1.47,1.47,0,0,0,.16.67l-.79-.31a2.49,2.49,0,0,1-.18-1A2,2,0,0,1,16.78,4.69Zm-.12,4.48c.48.17,1,.48,1,.79s-.31.31-1,.7A12.94,12.94,0,0,1,14.15,12c-.45,0-.71-.2-1.19-.51s-1.38-1-1.15-1.44c0,0,.7-.53,1-.82s1.1-1,1.58-.87S16.18,9,16.66,9.17ZM12.33,5c.76,0,1.37.9,1.37,2a3.68,3.68,0,0,1,0,.58,1.65,1.65,0,0,0-.56.31l-.25.22A1.38,1.38,0,0,0,13,7.27c-.1-.61-.5-1-.9-1s-.64.62-.54,1.23.5,1.05.9,1l.07,0a4.78,4.78,0,0,1-.56.48A2.09,2.09,0,0,1,11,7C11,5.93,11.58,5,12.33,5ZM10.86,33.3a2.69,2.69,0,0,1-1.12,1.38c-.85.27-3.22-.75-4.29-1.21s-3.8-.58-4.16-1,.18-1.3.31-2.15-.26-1.39-.13-2,1.88-.58,2.55-1,.8-1.57,1.34-1.88,1.52.8,1.92,1.43a44.68,44.68,0,0,0,2.55,4A3,3,0,0,1,10.86,33.3Zm9.89-7.8a34.43,34.43,0,0,0-.16,3.64,7.5,7.5,0,0,1-4.42,2.8,12.9,12.9,0,0,1-4,.11l-1.51-1.73a1.18,1.18,0,0,0,1-1.35c-.17-1.17-3.58-2.8-4.2-4.25a6.65,6.65,0,0,1,.67-5.15c.78-1.23,1.29-3.92,2.07-4.81a5,5,0,0,0,1.12-3.64s1.68,2,2.85,1.68,3.81-2.29,4.2-2,3.74,7.72,4.08,10.07a10.38,10.38,0,0,1-.23,4.14S20.92,24.72,20.75,25.5Zm8.59,5.27c-.52.48-3.43,1.66-4.3,2.57s-2,1.65-2.7,1.44-1.3-1.18-1-2.57a17.43,17.43,0,0,0,.52-3.78c0-.87-.22-2.05,0-2.22a.78.78,0,0,1,.57-.09s-.17,1.65.82,2.09a3.12,3.12,0,0,0,2.87-.61,4.22,4.22,0,0,0,.74-1.08.9.9,0,0,1,.39.91,2.34,2.34,0,0,0,1,2C28.86,29.82,29.86,30.3,29.34,30.77Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 18</title><path fill="#1B3240" d="M42 9c0-.6-.3-1-.9-.9-.6 0-.4.2-1.8.6s-3.1.2-4.7.9C30 11.5 29.05 18 25 20.4c-3.1 1.7-6.2 1.9-9 2.8a17.18 17.18 0 0 0-5.5 3.2c-1.3 1.1-1.3 2.1-2.7 3.5S2 29.9.05 32.2a1.86 1.86 0 0 0 2.1.6c-.3.5-1.8.9-1.5 1.6s4 1.3 7.3-.7c1.5-.9 2.8-2.3 5.2-2.6 3.1-.4 6.7.3 10.3.8A13 13 0 0 1 21 35.8c-.3.3.5.3 1.5.1a13.35 13.35 0 0 0 4.1-1.5c1.5-.9 1.8-3.2 3.6-3.7 1 1.6 3.9 2 5.6.7-1.5-.4-2-3.7-1.5-5.2s1-3.6 1.5-5.4.7-4.4 1.4-5.4c1-1.5 2.1-2 3-2.9A3.71 3.71 0 0 0 42 9zm-7.5 22.4c-1 .2-2.8-.2-3.2-.9.2-1 1.4-2 2-2.6a8.5 8.5 0 0 0 1.15 3.5zm4.7-18.5a8.62 8.62 0 0 0-2.5 2.2c-.6 1-1 4.4-2 7.7-.9 2.9-2.1 5.7-4.4 7-.2-.6 0-1.7-.4-2a13.32 13.32 0 0 1-1 2.4 8.91 8.91 0 0 1-6.5 5c1.5-2.1 3-4.3 3.1-7.9-1.1.2-1.1 2.8-2.2 3.5a8.09 8.09 0 0 1-2.2 0c-3-.2-6.1-1.1-8.9-.2-1.9.6-3.5 2.1-5.1 2.8a9 9 0 0 1-5.7.8c-.3-.4 1.7-.9 1.6-1.8a8.58 8.58 0 0 1-2.3-.2.78.78 0 0 1 .4-.4c1.5-1 5.7-.2 6.8-1.3a14.62 14.62 0 0 0 1.6-2.1 9.5 9.5 0 0 1 1.6-1.9l.9-.6a18.33 18.33 0 0 1 4.2-2.1c2-.7 4.1-.8 6.3-1.6a16.64 16.64 0 0 0 4-2 5 5 0 0 0 .8-.7c3.4-3.3 4.1-9.1 9.3-9.7.6-.1 1.2 0 1.6-.1a3.43 3.43 0 0 0 1.6-.4c.2.5.4.8 1.5.9a4.09 4.09 0 0 1-2.15 2.7zm-4.4-1c.7.6 2.3.1 2-1.2-1.15-.1-1.8.3-2.05 1.2zm5.3-1.5a3.93 3.93 0 0 0-.6 2c0 .2-.1.3-.1 0a4 4 0 0 1 .6-2.1c.1-.2.1-.1.1.1zm-.2-.2a5.14 5.14 0 0 0-.9 2.2c0 .2-.2.3-.1 0a5 5 0 0 1 .9-2.2c.05-.3.2-.2.05 0zm-.2-.2a5.34 5.34 0 0 0-1.3 2.3c0 .2-.2.3-.1 0a6.81 6.81 0 0 1 1.3-2.4c.05-.2.15-.1.05.1zm-.2-.2a6.68 6.68 0 0 0-1.7 2.5c-.1.2-.2.2-.1 0a6.87 6.87 0 0 1 1.7-2.5c.15-.3.15-.2.05 0z"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg id="svg4300" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><defs><style>.cls-1{fill:none}.cls-2,.cls-4{fill:#fff}.cls-2{opacity:.5;isolation:isolate}.cls-3{opacity:.25}.cls-5{clip-path:url(#clip-path)}</style><clipPath id="clip-path"><path class="cls-1" d="M21.11 36.7s-9.2-6.3-8.7-17.3 7-16.5 8.3-17.5a2.48 2.48 0 0 0 .9-2.1c.6 1.2.5 18.4.5 20.4.3 7.8-.4 15-1 16.5z"/></clipPath></defs><title>Artboard 1 copy 8</title><path fill="#1B3240" d="M30.91 16.5c-2.2-9.7-7.4-12.9-8-14.1a16.31 16.31 0 0 1-1.2-2.4v-.1a2.8 2.8 0 0 1-.9 2.1c-1.3 1-7.7 6.4-8.3 17.5C12 29.8 20 36 21 36.7a14.06 14.06 0 0 1 .7 4.9l1.1.4a22.75 22.75 0 0 1 .1-4.4 2.38 2.38 0 0 1 .6-1.1 11.46 11.46 0 0 0 1.4-1.1h.1a21.29 21.29 0 0 0 5.91-18.9z"/><path class="cls-2" d="M23.41 36.4c-1.1-.5-1.4-2.9-1.5-5.1a23.76 23.76 0 0 1-.8 5.5l-.1-.1a14.06 14.06 0 0 1 .7 4.9l1.1.4a22.75 22.75 0 0 1 .1-4.4 2.25 2.25 0 0 1 .5-1.2z"/><g id="g48" class="cls-3"><path id="SVGID" class="cls-4" d="M21.11 36.7s-9.2-6.3-8.7-17.3 7-16.5 8.3-17.5a2.48 2.48 0 0 0 .9-2.1c.6 1.2.5 18.4.5 20.4.3 7.8-.4 15-1 16.5z"/><g class="cls-5"><g id="g50"><path id="path62" class="cls-4" d="M21.11 36.7s-9.2-6.3-8.7-17.3 7-16.5 8.3-17.5a2.48 2.48 0 0 0 .9-2.1c.6 1.2.5 18.4.5 20.4.3 7.8-.4 15-1 16.5"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 43</title><path fill="#1B3240" d="M19.11 22.13l-1.62 1.28a37.59 37.59 0 0 1-7.34 4.51.48.48 0 0 1-.71-.18 37.78 37.78 0 0 1-6.27-14.13A5.29 5.29 0 0 1 3 12.37a1 1 0 0 1 .26-.65C4 11 4.76 10.19 5.57 9.51c1.52-1.3 3.09-2.51 4.64-3.8.07-.06.14-.1.28-.2.07.51.12 1 .18 1.43a20.7 20.7 0 0 0 2.87 7.93 39.56 39.56 0 0 0 5.22 6.86zm3.79-2.87a40.15 40.15 0 0 1 9.1-5.84c.3-.14.43 0 .59.19A35.64 35.64 0 0 1 37.81 24c.44 1.35.73 2.75 1.1 4.12a1.87 1.87 0 0 1-.63 2.08c-1.9 1.61-3.78 3.23-5.68 4.85-.32.27-.66.51-1.08.82-.06-.53-.12-1-.17-1.45a20.15 20.15 0 0 0-2.6-7.42 38.72 38.72 0 0 0-5.53-7.39zm-.48 3.32c.93 1.25 1.84 2.44 2.7 3.66a32.47 32.47 0 0 1 3.05 5.31.51.51 0 0 1-.2.74 36.18 36.18 0 0 1-10.91 5.38c-1.39.43-2.84.7-4.27 1a1 1 0 0 1-.78-.2c-.88-.86-1.75-1.72-2.54-2.65C8.3 34.45 7.19 33 6.05 31.64q-.13-.18-.27-.39c1-.16 2-.27 3-.48a22.65 22.65 0 0 0 8.5-4c1.68-1.22 3.23-2.6 4.84-3.91zm-2.8-3.8c-.7-.91-1.39-1.78-2-2.67a35.8 35.8 0 0 1-3.69-6.18.61.61 0 0 1 .2-.93 37.82 37.82 0 0 1 14.56-6.25 1.75 1.75 0 0 1 1.78.52A77.82 77.82 0 0 1 36.16 10a.78.78 0 0 1 .06.16c-.68.08-1.34.15-2 .26a21.55 21.55 0 0 0-7.71 3 40.5 40.5 0 0 0-6.46 5c-.12.1-.25.2-.43.36zm7.45 16.92l2.08-1.41a5.22 5.22 0 0 1 .27 2.09c0 .06-.26.18-.36.15-.67-.21-1.33-.44-2-.67zM5.89 26.72L7.39 29c-.8.06-1.46.12-2.12.15-.07 0-.21-.18-.2-.25a6.43 6.43 0 0 1 .82-2.18zM15 5.67l-2.14 1.41A5.47 5.47 0 0 1 12.6 5c0-.06.23-.17.32-.14.68.21 1.36.44 2 .67zm21.14 8.98l-1.45-2.12a5.14 5.14 0 0 1 2.1-.27c.06 0 .17.14.16.2a6.64 6.64 0 0 1-.81 2.19z"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 19</title><path fill="#1B3240" d="M10.66 9.6a3.08 3.08 0 0 0-1 .1 3.92 3.92 0 0 0 .8 1l.6 1.2a1.36 1.36 0 0 0 .5-1.2c-.1-.2-.2-.3-.3-.5s-.4-.4-.6-.6"/><path fill="#1B3240" d="M35.56 30.9a11.32 11.32 0 0 0-4.8.7c-.4.1-1 .1-1 .6.2.2.2.5.4.8a6.1 6.1 0 0 0 1.3 1.5 9.06 9.06 0 0 0 1.6 1.1c1 .6 2 .9 3 1.5a16.67 16.67 0 0 1 1.6 1.2c.3.2.4.5.8.6v-.1c-.2-.2-.2-.5-.4-.8l-.7-.7a11.85 11.85 0 0 0-2.5-2.5c-.8-.5-2.5-1.3-2.8-2.2v-.1a5.26 5.26 0 0 0 1.7-.4c.8-.2 1.6-.2 2.4-.4l1.2-.3v-.2c-.4-.4-.8-1-1.2-1.4a29.81 29.81 0 0 0-4-3c-.8-.5-1.7-.8-2.5-1.2-.3-.1-.8-.2-1-.5a8.48 8.48 0 0 1-1-1.9 42.85 42.85 0 0 1-2-4.3 23.58 23.58 0 0 0-1.2-2.8A24.7 24.7 0 0 0 15 6.9a14.08 14.08 0 0 0-3.1-1c-.6 0-1.2-.1-1.8-.1A4.81 4.81 0 0 1 9 4.9C7.56 4 4 2.1 3 4.6c-.7 1.6 1 3.2 1.5 4a9.39 9.39 0 0 1 1.2 1.8c.2.4.2.9.4 1.3A32.35 32.35 0 0 0 7.36 15c.3.5.6 1.1.9 1.5s.5.4.6.8a9.5 9.5 0 0 0-.6 1.8A10.82 10.82 0 0 0 9 27.3c.4.6 1.3 2 2.6 1.4 1.1-.4.9-1.8 1.2-3.1.1-.3 0-.5.2-.7.3.7.7 1.3 1 2a16.68 16.68 0 0 0 3.2 3.3c.6.4 1.1 1.2 1.8 1.5v-.1c-.1-.2-.4-.3-.6-.5-.4-.4-.9-1-1.3-1.5a33.5 33.5 0 0 1-2.7-4.5c-.4-.8-.7-1.6-1.1-2.4-.1-.3-.1-.7-.4-.9a7.35 7.35 0 0 0-1.2 1.7 14.29 14.29 0 0 0-.7 3.7h-.1c-.8-.2-1.1-1-1.3-1.7a10.26 10.26 0 0 1-.2-6.5c.2-.5.9-2.1.6-2.6-.1-.5-.6-.7-.9-1.1a12.9 12.9 0 0 1-.9-1.6c-.6-1.4-.9-2.9-1.5-4.3a19.92 19.92 0 0 0-1.2-1.9 8 8 0 0 1-1.3-1.9c-.1-.3-.3-.7-.1-1a.27.27 0 0 1 .3-.3c.3-.3 1.2.1 1.5.2a13.43 13.43 0 0 1 2.4 1.2c.3.2.7.7 1.2.8h.5a17.48 17.48 0 0 1 2.4.3 12.65 12.65 0 0 1 3.5 1.7 20.59 20.59 0 0 1 7.6 8.4c.3.6.4 1.1.7 1.7.5 1.2 1.2 2.4 1.7 3.6a17.1 17.1 0 0 0 1.7 3.3c.4.5 1.8.8 2.5 1.1a12.2 12.2 0 0 1 1.7.7 20.71 20.71 0 0 1 2.4 1.7c.1.8 1.4 1.4 1.4 1.9"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 9</title><path fill="#1B3240" d="M36.86 12.05a.75.75 0 0 0-.5-.8c-4.9-2.8-9.9-5.7-14.8-8.6a.61.61 0 0 0-.8 0c-5 2.9-9.9 5.7-14.9 8.6a.75.75 0 0 0-.4.7v17.2a.67.67 0 0 0 .4.7c1.4.8 2.7 1.6 4.1 2.4 3.6 2.1 7.1 4.1 10.7 6.2a.9.9 0 0 0 1 0c4.9-2.8 9.8-5.7 14.8-8.5a.89.89 0 0 0 .5-.8c-.1-5.8-.1-11.5-.1-17.1zm-6.7 12.5v2.8a2 2 0 0 1-1.2 1.9 2.62 2.62 0 0 1-1.5.2 3.26 3.26 0 0 1-1.9-.8 6 6 0 0 1-.8-.8c-2.5-3-5-6-7.6-9-.4-.4-.7-.9-1.1-1.3l-.1-.1v10.2a1.94 1.94 0 0 1-1.7 1.9 1.89 1.89 0 0 1-2-.9 2 2 0 0 1-.3-1.1v-13.8a2.08 2.08 0 0 1 1.7-2.1 3.38 3.38 0 0 1 3.4 1.1c1.5 1.7 2.9 3.5 4.4 5.3l4.6 5.5.1.1v-10.1a2.39 2.39 0 0 1 .5-1.4 2 2 0 0 1 1.4-.6 2 2 0 0 1 2.1 2.1z"/></svg>

After

Width:  |  Height:  |  Size: 779 B

View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="42" height="42" viewBox="0 0 30 34.22"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#1b3240;opacity:0.66;isolation:isolate;}.cls-3{fill:url(#linear-gradient-2);}</style><linearGradient id="linear-gradient" y1="225.5" x2="30" y2="225.5" gradientTransform="matrix(1, 0, 0, -1, 0, 242.65)" gradientUnits="userSpaceOnUse"><stop offset="0.01" stop-color="#1b3240"/><stop offset="1" stop-color="#436275"/></linearGradient><linearGradient id="linear-gradient-2" x1="-0.1" y1="225.58" x2="30.85" y2="225.58" gradientTransform="matrix(1, 0, 0, -1, 0, 242.65)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#436275"/><stop offset="1" stop-color="#1b3240"/></linearGradient></defs><title>Nodejs</title><g id="Layer_2" data-name="Layer 2"><g id="svg4300"><path id="_Path_" data-name="&lt;Path&gt;" class="cls-1" d="M14.2.3a1.53,1.53,0,0,1,1.6,0L29.2,8A1.6,1.6,0,0,1,30,9.4V24.9a1.6,1.6,0,0,1-.8,1.4L15.8,34a1.53,1.53,0,0,1-1.6,0L.8,26.3A1.6,1.6,0,0,1,0,24.9V9.4A1.6,1.6,0,0,1,.8,8Z"/><path class="cls-2" d="M28.8,8,15.5.2c-.1-.1-.3-.1-.4-.2L0,25.8a1,1,0,0,0,.5.4l13.4,7.7a1.5,1.5,0,0,0,1.3.1L29.3,8.2C29.1,8.2,29,8.1,28.8,8Z"/><path class="cls-3" d="M15.9,34l13.4-7.7a1.51,1.51,0,0,0,.7-1.4v-.1L15.6.1a1.53,1.53,0,0,0-1.3.2L1.1,7.9,15.5,34.1C15.6,34.1,15.7,34,15.9,34Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 11</title><path fill="#1B3240" d="M21.05 3.4c-9.9 0-18 7.9-18 17.5A17.69 17.69 0 0 0 11 35.5V20.7a10.2 10.2 0 0 1 10-10.2 10.18 10.18 0 0 1 10 10.4 10.25 10.25 0 0 1-10 10.4 9.6 9.6 0 0 1-5.8-1.9v8.2a18.53 18.53 0 0 0 5.8.9c9.9 0 18-7.9 18-17.5A17.76 17.76 0 0 0 21.05 3.4"/><path fill="#1B3240" d="M27.15 21.2a6 6 0 1 1-6-6 6 6 0 0 1 6 6"/></svg>

After

Width:  |  Height:  |  Size: 454 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 45</title><path fill="#1B3240" d="M26.79 3h-18A1.29 1.29 0 0 0 7.5 4.3v33.42A1.29 1.29 0 0 0 8.79 39h24.42a1.29 1.29 0 0 0 1.29-1.29V10.53zm6.42 8.36h-7.07V4.3zm0 26.35H8.79V4.3h16.07v8.35h8.35zM30 18.44h-1.16l-7.2-3V13.3a.64.64 0 1 0-1.28 0v2.14l-7.26 3H12a1.28 1.28 0 0 0-1.29 1.28v9A1.28 1.28 0 0 0 12 30h18a1.28 1.28 0 0 0 1.29-1.28v-9A1.28 1.28 0 0 0 30 18.44zm-9-1.88l4.5 1.88h-9zm-9 12.17v-9h18v9zm3.21-7.08v5.15a.64.64 0 0 1-.64.64.64.64 0 0 1-.64-.64v-5.15a.64.64 0 0 1 .64-.64.64.64 0 0 1 .64.64zm3.22 0v5.15a.65.65 0 0 1-1.29 0v-5.15a.65.65 0 0 1 1.29 0zm3.21 0v5.15a.64.64 0 0 1-1.28 0v-5.15a.64.64 0 1 1 1.28 0zm3.22 0v5.15a.65.65 0 0 1-1.29 0v-5.15a.65.65 0 0 1 1.29 0zm3.21 0v5.15a.64.64 0 0 1-.64.64.64.64 0 0 1-.64-.64v-5.15a.64.64 0 0 1 .64-.64.64.64 0 0 1 .64.64z"/></svg>

After

Width:  |  Height:  |  Size: 898 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 12</title><path fill="#1B3240" d="M18.67 22.9l.1-.2c.1-.3.2-.5.3-.8.6-1.3 1.3-3 .5-6.9a1.75 1.75 0 0 0-1.2-1.4 6 6 0 0 0-3.9 1.1v.3a17.45 17.45 0 0 1-.1 4.5 4.47 4.47 0 0 0 1.1 3.7 3.57 3.57 0 0 0 2.7 1.2 8.8 8.8 0 0 1 .5-1.5zm-1.3-8a.76.76 0 0 1-.2-.4c0-.1 0-.1.1-.2a1.25 1.25 0 0 1 .9-.1c.5.1.9.3.9.6s-.5.6-.9.6h-.1a1.16 1.16 0 0 1-.7-.5zm2.5 10.8c-.3-.1-.4-.2-.8.2a3.81 3.81 0 0 1-.5.6c-.6.8-.9 1.1-2.8 1.5-.4.1-.6.2-.7.2a4.88 4.88 0 0 0 .7.3c1.4.3 3.3.4 4.6-1.5.2-.2.1-.5.1-.7a1.72 1.72 0 0 0-.6-.6zm10.3-17.6a9.77 9.77 0 0 1 2.5 4.8v.3a12.31 12.31 0 0 1-.2 2 7.77 7.77 0 0 0-.2 1.6c0 .6.1 1.2.1 1.8a7 7 0 0 1-.7 5l.1.1c0 .1.1.1.1.2 4.1-6.5 5.5-14 4.2-15.6A8.51 8.51 0 0 0 29 5a12.62 12.62 0 0 0-3 .3 7.81 7.81 0 0 1 4.17 2.8z"/><path fill="#1B3240" d="M31.57 14.9c.1-.5.1-1 .2-1.5-2.1-.3-2.9.2-3.2.7-1.1 1.5 1 5.3 1.9 7 .2.4.4.7.5.9l.3.6a6.87 6.87 0 0 0 .3-4 6.08 6.08 0 0 1-.1-1.9 5.15 5.15 0 0 1 .1-1.8zm-1.1-.3a.85.85 0 0 1-.6.3h-.1c-.4 0-.8-.3-.8-.5s.4-.5.8-.5.9 0 .9.3c.1.1 0 .3-.2.4zm-17.1 4.8a15.94 15.94 0 0 0 .1-4.3v-.5c0-.3-.1-5.4 2.9-8.4l.1-.1c-1.8-.6-6.3-1.8-9 .2-1.7 1.2-2.47 3.4-2.3 6.6A52.73 52.73 0 0 0 7 21.1c1.3 4.1 2.7 6.7 3.9 7.1.2.1.8.3 1.6-.7 1.2-1.4 2.3-2.6 2.8-3.2-.1-.1-.3-.2-.4-.3a5.64 5.64 0 0 1-1.53-4.6z"/><path fill="#1B3240" d="M39 24.9a1.72 1.72 0 0 0-1.5-1.2 2.63 2.63 0 0 0-1.2.1 7.18 7.18 0 0 1-1.9.2 34.44 34.44 0 0 0 3.8-9.1c1.3-4.9.6-7.1-.2-8.1a10.64 10.64 0 0 0-8.8-4.1 20.5 20.5 0 0 0-4.6.6 21.3 21.3 0 0 0-2.7-.2 10.18 10.18 0 0 0-4.7 1.1 22.81 22.81 0 0 0-3.3-.8c-3.2-.5-5.8-.1-7.7 1.2C3.87 6.2 2.77 9 3 13a52.13 52.13 0 0 0 1.9 8.7 25.8 25.8 0 0 0 2 5.1c1 1.9 2.1 3 3.2 3.4a3.24 3.24 0 0 0 3.2-.7 4.35 4.35 0 0 0 .7.6 5 5 0 0 0 1.3.5 6.55 6.55 0 0 0 4.4-.3v1.5a15.45 15.45 0 0 0 .6 4.4c0 .1 0 .1.1.2a5 5 0 0 0 1.3 2.3 3.74 3.74 0 0 0 2.8 1c.5 0 .9-.1 1.3-.1a5.76 5.76 0 0 0 4.1-2.4c1.1-1.5 1.6-3.8 1.7-7.5v-.5h.4a9.53 9.53 0 0 0 4.2-.7c.67-.2 3.37-1.6 2.8-3.6zm-3.4 2.8a8.45 8.45 0 0 1-3.3.6 6.05 6.05 0 0 1-1.5-.2c-.2 1.7-.6 5-.8 6.3-.4 2.5-1.6 3.7-4.2 4.3a4.87 4.87 0 0 1-1.2.1A3.75 3.75 0 0 1 21 36c-.4-1-.5-4.2-.5-7.5a4.79 4.79 0 0 1-3.3 1.2 11.14 11.14 0 0 1-1.7-.2c-.2 0-1.6-.4-1.6-1.4 0-.8 1.2-1.1 1.7-1.2 1.6-.3 1.7-.5 2.2-1.1.1-.1.2-.3.4-.4v-.1a4.2 4.2 0 0 1-2.1-.6c-.4.5-1.6 1.7-2.9 3.2a2.89 2.89 0 0 1-2.1 1.2 1.7 1.7 0 0 1-.7-.1c-1.6-.5-3.2-3.2-4.6-7.8A39.62 39.62 0 0 1 4 12.8q-.3-5.4 2.7-7.5c1.7-1.2 4-1.5 6.9-1.1a19.58 19.58 0 0 1 3.6 1A7.23 7.23 0 0 1 21.67 4a10.9 10.9 0 0 1 2.6.3 11.44 11.44 0 0 1 4.6-.7 9.74 9.74 0 0 1 8 3.7 4.6 4.6 0 0 1 .7 2.9 14.72 14.72 0 0 1-.7 4.3 34.56 34.56 0 0 1-4.5 10c.3.2 1.2.6 3.7.1.9-.2 1.4 0 1.5.5.7 1.1-1 2.1-2 2.6z"/><path fill="#1B3240" d="M32.07 25.6a.1.1 0 0 1-.1-.1c-.1 0-.1 0-.2.1-.5.1-.9.3-.9 1.5a2.82 2.82 0 0 0 1.7.2 8.56 8.56 0 0 0 2.6-.5 4.83 4.83 0 0 0 1.5-1c-2.2.4-3.67.4-4.6-.2z"/><path fill="#1B3240" d="M31.07 24.2A7 7 0 0 1 30 22.4a5.56 5.56 0 0 1-.4-.8c-1.1-1.9-3.3-6-1.9-8.1.7-1 2-1.3 3.9-1.1a11.91 11.91 0 0 0-2.1-3.6 10.27 10.27 0 0 0-7.7-3.7 6.41 6.41 0 0 0-4.7 1.8c-1.9 1.9-2.4 4.9-2.5 6.6.1 0 .2-.1.3-.2a8.12 8.12 0 0 1 2.5-.8 2.73 2.73 0 0 1 3.3 2.2c.9 4.3.1 6.2-.6 7.6a4.88 4.88 0 0 1-.3.7l-.1.2a12.13 12.13 0 0 0-.5 1.4 1.89 1.89 0 0 1 1.1.1 1.81 1.81 0 0 1 1.1 1.4c0 .1.1.2.1.3v.2c-.1 4.3 0 8.2.4 9.1a2.85 2.85 0 0 0 3.7 2c2.2-.5 3-1.3 3.4-3.4.3-1.6.8-6.2.9-7.2-.1-2 1-2.3 1.5-2.5-.13-.1-.23-.3-.33-.4z"/></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1 @@
<svg id="svg4300" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><defs><style>.cls-1,.cls-2{fill:#fff}.cls-1{opacity:.25;isolation:isolate}.cls-3{fill:#333}</style></defs><title>Artboard 1 copy 20</title><path fill="#1B3240" d="M37.57 23.65c-1.9-.7-11.8-4.6-13.7-5.3s-2.7-.7-4.9.1-12.8 4.9-14.6 5.7c-.9.4-1.4.7-1.4 1.1H3v3.6c0 .4.5.7 1.5 1.2 1.9.9 12.5 5.2 14.2 6s2.9.8 5-.3 12.1-5.2 14-6.2c1-.5 1.4-.9 1.4-1.3v-3.6c-.1-.4-.53-.65-1.53-1z"/><path class="cls-1" d="M37.57 25.85c-1.9 1-11.9 5.1-14 6.2s-3.3 1.1-5 .3-12.3-5.1-14.2-6-1.9-1.5-.1-2.3 12.4-4.9 14.6-5.7 3-.8 4.9-.1 11.8 4.6 13.7 5.3 2 1.3.1 2.3z"/><path fill="#1B3240" d="M37.57 17.75c-1.9-.7-11.8-4.6-13.7-5.3s-2.7-.7-4.9.1-12.8 4.9-14.6 5.7c-.9.4-1.4.7-1.4 1.1H3V23c0 .4.5.7 1.5 1.2 1.9.9 12.5 5.2 14.2 6s2.9.8 5-.3 12.1-5.2 14-6.2c1-.5 1.4-.9 1.4-1.3v-3.6c-.1-.35-.53-.75-1.53-1.05z"/><path class="cls-1" d="M37.57 20c-1.9 1-11.9 5.1-14 6.2s-3.3 1.1-5 .3-12.3-5.1-14.2-6-1.9-1.5-.1-2.3 12.4-4.9 14.6-5.7 3-.8 4.9-.1 11.8 4.6 13.7 5.3 2 1.3.1 2.3z"/><path fill="#1B3240" d="M37.57 11.55c-1.9-.7-11.8-4.6-13.7-5.3s-2.7-.7-4.9.1-12.8 4.9-14.6 5.7c-.9.4-1.4.7-1.4 1.1H3v3.6c0 .4.5.7 1.5 1.2 1.9.9 12.5 5.2 14.2 6s2.9.8 5-.3 12.1-5.2 14-6.2c1-.5 1.4-.9 1.4-1.3v-3.6c-.1-.3-.53-.7-1.53-1z"/><path class="cls-1" d="M37.57 13.75c-1.9 1-11.9 5.1-14 6.2s-3.3 1.1-5 .3-12.3-5.1-14.2-6-1.9-1.5-.1-2.3 12.4-4.9 14.6-5.7 3-.8 4.9-.1 11.8 4.6 13.7 5.3 2 1.3.1 2.3z"/><path class="cls-2" d="M25.77 10.25l-3.2.4-.7 1.6-1.1-1.8-3.6-.4 2.7-.9-.8-1.5 2.5 1 2.4-.8-.7 1.5 2.5.9zm-4.1 8.2l-5.8-2.4 8.4-1.3-2.6 3.7z"/><ellipse class="cls-2" cx="13.67" cy="12.95" rx="4.5" ry="1.7"/><path fill="#1B3240" d="M29.37 10.75l5 1.9-5 2v-3.9z"/><path class="cls-3" d="M23.97 12.95l5.4-2.2v3.9l-.5.2-4.9-1.9z"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 44</title><path fill="#1B3240" d="M15.05 28.79a.73.73 0 1 1-.73-.73.73.73 0 0 1 .73.73zm.21-3.6a.73.73 0 1 0 .73.73.73.73 0 0 0-.73-.73zM18 23.83a.73.73 0 1 0 .73.73.73.73 0 0 0-.73-.73zm2.89 1a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.76zm-5.22 6a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.79zm2.89 1a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.83zm2.72-1.35a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.83zm-7.42 2.26a.94.94 0 1 0 .94.94.95.95 0 0 0-.95-1.04zm4.91 1.62a.94.94 0 1 0 .93.93.94.94 0 0 0-.94-1.03zm-7.19-6.2a.94.94 0 1 0 .94.94.94.94 0 0 0-.95-1.04zm1.63-4.89a.94.94 0 1 0 .93.94.94.94 0 0 0-.94-1.04zM17.82 21a.94.94 0 1 0 .94.94.94.94 0 0 0-.95-1.04zm4.86 1.6a.94.94 0 1 0 .94.94.94.94 0 0 0-.95-1.04zM8.27 28a1.17 1.17 0 1 0 1.17 1.2A1.16 1.16 0 0 0 8.27 28zm3.43 6.85a1.17 1.17 0 1 0 0 2.34 1.17 1.17 0 1 0 0-2.34zm-1-14.08A1.17 1.17 0 1 0 11.85 22a1.17 1.17 0 0 0-1.16-1.19zm6.86-3.42a1.17 1.17 0 1 0 1.17 1.16 1.16 1.16 0 0 0-1.18-1.12zm7.22 2.41A1.17 1.17 0 1 0 25.94 21a1.17 1.17 0 0 0-1.17-1.2zM5 28a1.42 1.42 0 1 0 1.4 1.43A1.43 1.43 0 0 0 5 28zm3.22-9.6a1.42 1.42 0 1 0 1.42 1.42 1.42 1.42 0 0 0-1.44-1.41zm-3-3A1.8 1.8 0 1 0 7 17.19a1.79 1.79 0 0 0-1.8-1.79zm11.84-5.9a1.8 1.8 0 1 0 1.79 1.79 1.8 1.8 0 0 0-1.79-1.79zm12.57 4.18a1.8 1.8 0 1 0 1.8 1.8 1.8 1.8 0 0 0-1.8-1.8zm3.06-3.95A2.22 2.22 0 1 0 34.91 12a2.22 2.22 0 0 0-2.22-2.27zM16.76 4.41A2.22 2.22 0 1 0 19 6.63a2.22 2.22 0 0 0-2.24-2.22zm19.71.06a2.94 2.94 0 1 0 2.94 2.94 2.94 2.94 0 0 0-2.94-2.94zm-19.13 9.37a1.42 1.42 0 1 0 1.42 1.42 1.43 1.43 0 0 0-1.42-1.42zM27 17.05a1.43 1.43 0 1 0 1.43 1.42A1.43 1.43 0 0 0 27 17.05z"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 43</title><path fill="#1B3240" d="M19.11 22.13l-1.62 1.28a37.59 37.59 0 0 1-7.34 4.51.48.48 0 0 1-.71-.18 37.78 37.78 0 0 1-6.27-14.13A5.29 5.29 0 0 1 3 12.37a1 1 0 0 1 .26-.65C4 11 4.76 10.19 5.57 9.51c1.52-1.3 3.09-2.51 4.64-3.8.07-.06.14-.1.28-.2.07.51.12 1 .18 1.43a20.7 20.7 0 0 0 2.87 7.93 39.56 39.56 0 0 0 5.22 6.86zm3.79-2.87a40.15 40.15 0 0 1 9.1-5.84c.3-.14.43 0 .59.19A35.64 35.64 0 0 1 37.81 24c.44 1.35.73 2.75 1.1 4.12a1.87 1.87 0 0 1-.63 2.08c-1.9 1.61-3.78 3.23-5.68 4.85-.32.27-.66.51-1.08.82-.06-.53-.12-1-.17-1.45a20.15 20.15 0 0 0-2.6-7.42 38.72 38.72 0 0 0-5.53-7.39zm-.48 3.32c.93 1.25 1.84 2.44 2.7 3.66a32.47 32.47 0 0 1 3.05 5.31.51.51 0 0 1-.2.74 36.18 36.18 0 0 1-10.91 5.38c-1.39.43-2.84.7-4.27 1a1 1 0 0 1-.78-.2c-.88-.86-1.75-1.72-2.54-2.65C8.3 34.45 7.19 33 6.05 31.64q-.13-.18-.27-.39c1-.16 2-.27 3-.48a22.65 22.65 0 0 0 8.5-4c1.68-1.22 3.23-2.6 4.84-3.91zm-2.8-3.8c-.7-.91-1.39-1.78-2-2.67a35.8 35.8 0 0 1-3.69-6.18.61.61 0 0 1 .2-.93 37.82 37.82 0 0 1 14.56-6.25 1.75 1.75 0 0 1 1.78.52A77.82 77.82 0 0 1 36.16 10a.78.78 0 0 1 .06.16c-.68.08-1.34.15-2 .26a21.55 21.55 0 0 0-7.71 3 40.5 40.5 0 0 0-6.46 5c-.12.1-.25.2-.43.36zm7.45 16.92l2.08-1.41a5.22 5.22 0 0 1 .27 2.09c0 .06-.26.18-.36.15-.67-.21-1.33-.44-2-.67zM5.89 26.72L7.39 29c-.8.06-1.46.12-2.12.15-.07 0-.21-.18-.2-.25a6.43 6.43 0 0 1 .82-2.18zM15 5.67l-2.14 1.41A5.47 5.47 0 0 1 12.6 5c0-.06.23-.17.32-.14.68.21 1.36.44 2 .67zm21.14 8.98l-1.45-2.12a5.14 5.14 0 0 1 2.1-.27c.06 0 .17.14.16.2a6.64 6.64 0 0 1-.81 2.19z"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg id="svg4300" xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><defs><style>.cls-1{fill:#fff}</style></defs><title>Artboard 1 copy 4</title><path fill="#1B3240" d="M36.44 20.3a15 15 0 1 1-15-15 15 15 0 0 1 15 15z"/><path class="cls-1" d="M13.64 20.3a1.9 1.9 0 1 1-1.9-1.9 1.9 1.9 0 0 1 1.9 1.9zm11 9.4a1.9 1.9 0 1 0 .7-2.6 1.93 1.93 0 0 0-.7 2.6zm3.3-16.8a1.9 1.9 0 1 0-2.6.7 1.93 1.93 0 0 0 2.6-.7zm-6.5 1.9a5.54 5.54 0 0 1 5.5 5h2.8a7.73 7.73 0 0 0-2.4-5.3 2.68 2.68 0 0 1-2.3-.2 2.78 2.78 0 0 1-1.3-1.9 8.11 8.11 0 0 0-5.9.6l1.4 2.4a4 4 0 0 1 2.2-.6zm-5.5 5.5a5.45 5.45 0 0 1 2.3-4.5l-1.4-2.4a8 8 0 0 0-3.4 4.8 2.81 2.81 0 0 1 1 2.1 2.66 2.66 0 0 1-1 2.1 8.4 8.4 0 0 0 3.4 4.8l1.4-2.4a5.45 5.45 0 0 1-2.3-4.5zm5.5 5.5a5.93 5.93 0 0 1-2.3-.5l-1.4 2.4a9.16 9.16 0 0 0 3.7.9 7.8 7.8 0 0 0 2.2-.3 2.59 2.59 0 0 1 1.3-1.9 2.68 2.68 0 0 1 2.3-.2 8.18 8.18 0 0 0 2.4-5.4h-2.8a5.37 5.37 0 0 1-5.4 5z"/></svg>

After

Width:  |  Height:  |  Size: 937 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42"><title>Artboard 1 copy 5</title><path fill="#1B3240" d="M5.73 9L18 7.25v11.8l-12.3.1zM18 20.55v11.8l-12.3-1.7v-10.2zm1.5-13.4l16.3-2.4v14.3l-16.3.1zm16.2 13.5v14.2l-16.3-2.3v-11.9z"/></svg>

After

Width:  |  Height:  |  Size: 273 B

49
packages/logos/convert.js Normal file
View File

@ -0,0 +1,49 @@
const HTMLtoJSX = require('htmltojsx');
const { default: forEach } = require('apr-for-each');
const main = require('apr-main');
const pascalCase = require('pascal-case');
const { readFile, writeFile } = require('mz/fs');
const execa = require('execa');
const globby = require('globby');
const path = require('path');
const ASSETS_ROOT = path.join(__dirname, 'assets');
const SRC_ROOT = path.join(__dirname, 'src');
const converter = new HTMLtoJSX({
createClass: false
});
main(async () => {
const files = await globby(`${ASSETS_ROOT}/*.svg`);
await forEach(files, async file => {
const svg = await readFile(file, 'utf-8');
const jsx = converter.convert(svg);
const header = jsx.match(/(^<svg)([^>]*)/ig)[0];
await writeFile(
file.replace(/logos\/assets\//, '/logos/src/').replace(/\.svg$/, '.js'),
`
import React from 'react';
export default (props) => (${jsx.replace(header, `${header} {...props}`)});
`
);
});
await writeFile(
path.join(SRC_ROOT, 'index.js'),
files
.map(file => {
const name = path.basename(file).replace(/\.svg$/, '');
return `export { default as ${pascalCase(name)} } from './${name}'`;
})
.join('\n')
);
await execa('prettier', ['--write', '--single-quote', 'src/*.js'], {
cwd: __dirname
});
});

View File

@ -0,0 +1,37 @@
{
"name": "joyent-logo-assets",
"version": "1.0.0",
"license": "MPL-2.0",
"repository": "github:yldio/joyent-portal",
"main": "dist/umd/index.js",
"jsnext:main": "dist/es/index.js",
"module": "dist/es/index.js",
"scripts": {
"test-ci": "redrun -s test",
"test": "NODE_ENV=test joyent-react-scripts test --env=jsdom",
"compile:es": "babel src --out-dir dist/es",
"compile:umd": "UMD=1 babel src --out-dir dist/umd",
"compile": "redrun -p compile:*",
"dev": "NODE_ENV=development npm run compile -- -- --watch --source-maps inline",
"prepublish": "NODE_ENV=production npm run compile"
},
"devDependencies": {
"apr-for-each": "^3.0.3",
"apr-main": "^4.0.3",
"babel-cli": "^6.26.0",
"babel-preset-joyent-portal": "^6.0.3",
"eslint": "^4.16.0",
"eslint-config-joyent-portal": "^3.3.1",
"execa": "^0.9.0",
"globby": "^7.1.1",
"htmltojsx": "^0.3.0",
"joyent-react-scripts": "^7.2.2",
"mz": "^2.7.0",
"prettier": "^1.10.2",
"react": "^16.2.0",
"redrun": "^5.10.0"
},
"peerDependencies": {
"react": "^16.2.0"
}
}

View File

@ -0,0 +1,18 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 32.32 42"
{...props}
>
<title>Illumos</title>
<g id="Layer_2" data-name="Layer 2">
<g id="svg4300">
<path d="M32.25,15.62l0,.06a1.34,1.34,0,0,0-.56-.43,7.51,7.51,0,0,0-1.24-.51,7.89,7.89,0,0,0-1.87-.4,5.55,5.55,0,0,0-4.16,1.49,0,0,0,0,1,0,0,8.88,8.88,0,0,0-.92.92A8.7,8.7,0,0,0,22.3,18.5a6.75,6.75,0,0,0-.43,1.08,1.68,1.68,0,0,0-.44-.58c-.33-.24-.66-.48-1-.71a76.21,76.21,0,0,1-8.24-6.17L12,11.93l-.15-.15-.45-.42-.86-.87c-.59-.62-1.17-1.26-1.72-1.91-.29-.35-.58-.7-.85-1.06L7.8,7.34l0,0-.33-.5c-.09-.13-.17-.26-.25-.39l-.07-.12C6.83,5.61,7,6,7,6A17.24,17.24,0,0,0,6.1,4.07,3.72,3.72,0,0,0,5.41,3c-.27-.23-.15.33-.15.36v0a2.42,2.42,0,0,0,0,.38c0,.21.07.42.11.62h0l-.13-.08.08.05c-.41-.26-.83-.5-1.23-.76A11.34,11.34,0,0,1,2.34,2.14a9.05,9.05,0,0,1-.65-.74,2.43,2.43,0,0,1-.14-.2A6.48,6.48,0,0,0,1.07.05L1,0a2.23,2.23,0,0,0,.1.81,18,18,0,0,0,.6,1.89,8.71,8.71,0,0,0,.59,1.37,4.91,4.91,0,0,1-.63-.47l-.15-.12,0,0-.12-.13,0,0c-.14-.2-.27-.4-.43-.59A4,4,0,0,0,0,1.81l.06,0A.16.16,0,0,0,0,1.79s0,.05,0,.08H0v0A.19.19,0,0,0,0,2,7.71,7.71,0,0,0,.47,3l.32.62.07.12c.12.21.24.42.37.62A11.3,11.3,0,0,0,2.32,5.79l.47.48-.08,0a9,9,0,0,1-.84-.52l-.2-.14a5.66,5.66,0,0,0-.8-1l-.06,0a2.36,2.36,0,0,0,.34.74A18.2,18.2,0,0,0,2.28,7,8.33,8.33,0,0,0,3.54,8.34a7.07,7.07,0,0,0,1.32.85c.53.26,1,.53,1.59.75l.41.14H6.75a4.47,4.47,0,0,1-1.3-.25,5.83,5.83,0,0,1-.72-.32l-.16-.09,0,0-.15-.1,0,0C4.2,9.12,4,9,3.83,8.8a3.73,3.73,0,0,0-1.09-.71l.07,0a.18.18,0,0,0-.09,0,.21.21,0,0,0,0,.07h0l0,.07a7,7,0,0,0,.64,1l.44.53L4,9.83c.16.18.32.36.49.53a11.49,11.49,0,0,0,1.36,1.15,7.08,7.08,0,0,0,1.51.86l.27.1a10,10,0,0,1-1.23-.29,7.92,7.92,0,0,1-.93-.33l-.22-.1a6,6,0,0,0-1-.78l-.07,0a2.38,2.38,0,0,0,.48.66A18.51,18.51,0,0,0,6.08,13,8.71,8.71,0,0,0,7.6,14.09a7,7,0,0,0,1.46.56c.49.14,1,.27,1.46.37A5.29,5.29,0,0,1,8,14.9s-.19-.07-.33-.14l-.27-.12L7,14.37a3.69,3.69,0,0,0-.46-.29.89.89,0,0,0,0,.15v-.08a1.62,1.62,0,0,0,.38.69,8.51,8.51,0,0,0,1,1.05A8.34,8.34,0,0,0,9.68,17.1a6.27,6.27,0,0,0,1.18.46,4.41,4.41,0,0,0,1.24.17,5.36,5.36,0,0,1-1.78.2L10,17.88l-.29-.07c-.06,0,0,0-.4-.17a3.16,3.16,0,0,0-.52-.18.42.42,0,0,0,.06.14.25.25,0,0,1,0-.07,1.66,1.66,0,0,0,.54.58,8.4,8.4,0,0,0,1.24.79,8.34,8.34,0,0,0,1.91.78,6,6,0,0,0,1.26.18h.08a10.09,10.09,0,0,1-1.89.49,6.68,6.68,0,0,1-1,.11h-.25a5.71,5.71,0,0,0-1.21-.27H9.41a2.31,2.31,0,0,0,.71.38,18.88,18.88,0,0,0,1.89.61,8.48,8.48,0,0,0,1.85.34,6.89,6.89,0,0,0,1.57-.13l.34-.07a5.08,5.08,0,0,1-1.76,1l-.35.09-.29.05c-.06,0,0,0-.43,0a2.61,2.61,0,0,0-.55,0l.11.11-.06-.06a1.62,1.62,0,0,0,.71.34,9,9,0,0,0,1.45.26,8.43,8.43,0,0,0,2.07,0l.44-.09a5.14,5.14,0,0,1-1.56,1.14l-.33.12-.28.09c-.06,0,0,0-.44,0a2.77,2.77,0,0,0-.54.09l0,.05a1.52,1.52,0,0,0,.75.25,8.07,8.07,0,0,0,1.47.09A9.11,9.11,0,0,0,18,24.76a8.85,8.85,0,0,1-1.15,1,6,6,0,0,1-.78.54l-.21.12a5.38,5.38,0,0,0-1.19.33l-.05,0a2.5,2.5,0,0,0,.82,0c.67-.08,1.32-.22,2-.36a8.14,8.14,0,0,0,1.77-.57l.17-.08-.09.18A4.92,4.92,0,0,1,18,27.19a3.37,3.37,0,0,1-.38.19l-.28.12a3.43,3.43,0,0,1-.43.08,2.89,2.89,0,0,0-.52.14s.07.05.12.08l-.07,0a1.59,1.59,0,0,0,.77.18,7.23,7.23,0,0,0,1.47-.05,14.79,14.79,0,0,0-.4,1.75l-.06.4A13.15,13.15,0,0,1,17,31.45a14.82,14.82,0,0,1-1.16,1.08l-.62.5-.29.22-.16.11h0c-.44.31-.9.59-1.36.86l-.71.38-.39.18-.14.06h0a14.59,14.59,0,0,1-1.44.53l-.15,0-.34.08-.33.09-.12,0A5,5,0,0,0,8.62,36c-.09,0-.39.2-.16.32a2.21,2.21,0,0,0,1,.12A10.32,10.32,0,0,0,11,36.23a17.9,17.9,0,0,0,5-1.6l-.39.38-.74.65-.16.12c-.11.1-.23.19-.35.28l-.72.51-.16.1-.38.23-.16.1-.38.2,0,0-.33.15-.05,0-.27.11-.85.22-.28.07-.09,0a6.12,6.12,0,0,0-1.61.6,9.72,9.72,0,0,0-1.25.73l0,0-.06,0c-.08.05-.47.27-.45.43s1.71-.24,2-.32a23.6,23.6,0,0,0,6.77-3.05c-.11.17-.22.34-.34.5l-.15.2-.27.35-.12.15-.28.32,0,0-.26.27,0,0-.21.19-.72.51-.24.16-.08.05a6.34,6.34,0,0,0-1.29,1.13A9,9,0,0,0,11,41.31l0,.06,0,.05c-.06.08-.35.42-.28.56s1.52-.82,1.75-1a25.17,25.17,0,0,0,6.24-6.61l.06-.09a18.78,18.78,0,0,0,3.82-4.19,2.46,2.46,0,0,1-.09.29c0,.07-.05.14-.07.21l-.05.08a11.85,11.85,0,0,0-.66,1.13s-.23.39,0,.22A6,6,0,0,0,22.57,31,24.43,24.43,0,0,0,24,28.79a9.89,9.89,0,0,0,.84-1.61c.06-.14.21-.5.23-.56a6.77,6.77,0,0,0,.26-.71,11.59,11.59,0,0,0,.33-1.15,8.36,8.36,0,0,0,.37-2.9,3.84,3.84,0,0,0-.24-1,2,2,0,0,0-.4-.76h0A11.22,11.22,0,0,1,26,18.21l.24-.54a1.64,1.64,0,0,0,.64-.1,1.48,1.48,0,0,0,.61-.4l0,0a7.56,7.56,0,0,1,.95-.74,5.4,5.4,0,0,1,2.22-.83l.44,0h.27c.06,0,0,0,.39.09a3.64,3.64,0,0,0,.51.08A.47.47,0,0,0,32.25,15.62ZM10.76,37.79H10.7C10.87,37.76,10.83,37.78,10.76,37.79ZM13,37Zm1.71-1.18ZM13.33,39l-.05,0C13.42,38.91,13.4,39,13.33,39Zm1.76-1.54c.17-.21.07-.08,0,0Z" />
</g>
</g>
</svg>
);

View File

@ -0,0 +1,24 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="25.55"
height={30}
viewBox="0 0 30.66 36"
{...props}
>
<defs>
<style dangerouslySetInnerHTML={{ __html: '.cls-1{fill:#010002;}' }} />
</defs>
<title>Linux</title>
<g id="Layer_2" data-name="Layer 2">
<g id="svg4300">
<path
className="cls-1"
d="M29.88,29.37a2.23,2.23,0,0,1-1.68-2.19,2.67,2.67,0,0,0-.84-1.95,8.85,8.85,0,0,0,.05-4.7c-.72-2.13-3.13-5.54-5-8.12s-.27-5.54-1.95-9.34-6.05-3.58-8.4-2-1.62,5.65-1.51,7.55a11.1,11.1,0,0,1-.17,3.75c-.22.49-1.73,2.3-2.74,3.81S5.93,20.86,5.2,22.15A3,3,0,0,0,5,24.61a1.77,1.77,0,0,0-.89,1c-.39.84-1.18,1.23-2.58,1.5S.11,28.3.44,29.31s0,1.57-.39,2.85,1.57,1.68,3.47,1.9,4,1.46,5.82,1.68a2.15,2.15,0,0,0,2.35-1.23,24.13,24.13,0,0,1,4.14-.5,17.14,17.14,0,0,1,4.14.45,3,3,0,0,0,1.12,1.28,3,3,0,0,0,3.3-.61c1-1.07,3.69-2.41,5.2-3.25S30.83,29.75,29.88,29.37ZM16.78,4.69a2,2,0,0,1,1.74,2.12,2.19,2.19,0,0,1-1,1.9l-.46-.19a1.24,1.24,0,0,0,.59-1.11,1.09,1.09,0,0,0-.92-1.2,1.09,1.09,0,0,0-.91,1.2,1.47,1.47,0,0,0,.16.67l-.79-.31a2.49,2.49,0,0,1-.18-1A2,2,0,0,1,16.78,4.69Zm-.12,4.48c.48.17,1,.48,1,.79s-.31.31-1,.7A12.94,12.94,0,0,1,14.15,12c-.45,0-.71-.2-1.19-.51s-1.38-1-1.15-1.44c0,0,.7-.53,1-.82s1.1-1,1.58-.87S16.18,9,16.66,9.17ZM12.33,5c.76,0,1.37.9,1.37,2a3.68,3.68,0,0,1,0,.58,1.65,1.65,0,0,0-.56.31l-.25.22A1.38,1.38,0,0,0,13,7.27c-.1-.61-.5-1-.9-1s-.64.62-.54,1.23.5,1.05.9,1l.07,0a4.78,4.78,0,0,1-.56.48A2.09,2.09,0,0,1,11,7C11,5.93,11.58,5,12.33,5ZM10.86,33.3a2.69,2.69,0,0,1-1.12,1.38c-.85.27-3.22-.75-4.29-1.21s-3.8-.58-4.16-1,.18-1.3.31-2.15-.26-1.39-.13-2,1.88-.58,2.55-1,.8-1.57,1.34-1.88,1.52.8,1.92,1.43a44.68,44.68,0,0,0,2.55,4A3,3,0,0,1,10.86,33.3Zm9.89-7.8a34.43,34.43,0,0,0-.16,3.64,7.5,7.5,0,0,1-4.42,2.8,12.9,12.9,0,0,1-4,.11l-1.51-1.73a1.18,1.18,0,0,0,1-1.35c-.17-1.17-3.58-2.8-4.2-4.25a6.65,6.65,0,0,1,.67-5.15c.78-1.23,1.29-3.92,2.07-4.81a5,5,0,0,0,1.12-3.64s1.68,2,2.85,1.68,3.81-2.29,4.2-2,3.74,7.72,4.08,10.07a10.38,10.38,0,0,1-.23,4.14S20.92,24.72,20.75,25.5Zm8.59,5.27c-.52.48-3.43,1.66-4.3,2.57s-2,1.65-2.7,1.44-1.3-1.18-1-2.57a17.43,17.43,0,0,0,.52-3.78c0-.87-.22-2.05,0-2.22a.78.78,0,0,1,.57-.09s-.17,1.65.82,2.09a3.12,3.12,0,0,0,2.87-.61,4.22,4.22,0,0,0,.74-1.08.9.9,0,0,1,.39.91,2.34,2.34,0,0,0,1,2C28.86,29.82,29.86,30.3,29.34,30.77Z"
/>
</g>
</g>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 6</title>
<path
fill="#1B3240"
d="M38.9 19.6c-2.7-4.8-5.5-9.6-8.2-14.4a1.36 1.36 0 0 0-1.3-.7H13a1.21 1.21 0 0 0-1.3.8c-2.6 4.6-5.3 9.3-8 13.9-.2.3-.5.7-.7 1v.2c.1.2.3.3.4.5 2.8 4.9 5.6 9.8 8.5 14.7.1.2.1.3.2.5h18.2c2.1-3.8 4.3-7.6 6.4-11.3.7-1.2 1.5-2.5 2.1-3.8a1.72 1.72 0 0 0 .1-1.4zm-22.7 4.8c-1-.4-1.9-.8-2.9-1.2 1.1-1 1.9-1.8 2.9-2.7zm13.4-1.2c-1.2-1.2-2.4-2.5-3.7-3.7a4.22 4.22 0 0 0-1.2-.3c1.2 1.3 2.4 2.5 3.6 3.8-1.9 1.7-3.6 1.5-4.8.1-1.7-1.9-3.6-3.6-5.6-5.5-1.7 1.8-3.4 3.6-5.2 5.4-1.6 1.7-3 1.7-4.7.2 3.3-3.4 6.7-6.8 10.1-10.3 1.5 1.4 2.9 2.8 4.4 4.2.9-1 1.7-2 2.4-2.9 3.1 3.1 6.1 6 9.2 9a2.87 2.87 0 0 1-4.5 0z"
/>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 13</title>
<path
fill="#1B3240"
d="M39.91 3s-.6-2.5-2.4-2.1a18.78 18.78 0 0 0-4.6 2.3c-.1.1-.3.2-.4.3-.5.4-1.1.7-1.7 1.2l-2.1 1.5c-.7.5-1.3 1-2 1.6s-1.2.9-1.8 1.4l-.1.1-.1.1-1.9 1.6c-.6.6-1.3 1.2-1.9 1.7s-1.1 1-1.6 1.5l-.3.3c-.6.7-1.2 1.3-1.8 1.9s-1.2 1.4-1.7 2c-.3.4-.7.9-1 1.3a4.13 4.13 0 0 0-.7 1.1c-.6.8-1.1 1.7-1.6 2.5v.1a31.82 31.82 0 0 0-1.6 3.2v.1a8 8 0 0 0-1.4-2.4 12 12 0 0 1 .5 5.2 5.33 5.33 0 0 1-2.1-1.1 5 5 0 0 0 1.5 1.8 7 7 0 0 0-3.1.4 5.22 5.22 0 0 1 3.3.5c-2.3 3-4.8 6.3-7.3 9.9a1.05 1.05 0 0 0 .9-.5c.5-.6 3.4-4.9 7.7-10.4a1.76 1.76 0 0 1 .4-.5l.1-.1c.5-.6.9-1.2 1.4-1.8.1-.1.2-.3.3-.4l1.3-1.6c.1-.2.3-.3.4-.5.6-.7 1.1-1.4 1.7-2.1l1.7-2c.6-.7 1.2-1.3 1.8-2s1.2-1.4 1.8-2 1.2-1.3 1.9-2a4.62 4.62 0 0 1 .7-.7l1.2-1.2.1-.1c.6-.6 1.2-1.2 1.9-1.8s1.3-1.2 2-1.8 1.4-1.2 2-1.8l.1-.1c.7-.5 1.3-1.1 2-1.6a31 31 0 0 1 4.1-2.6.31.31 0 0 1 .2-.1c-.1 0-.1.1-.2.1a31.09 31.09 0 0 0-3.9 2.7c-.6.5-1.3 1-2 1.6l-.1.1c-.6.5-1.3 1.1-2 1.8s-1.3 1.2-2 1.9l-1.9 1.9-.3.3-.8.8-.9.9c-.1.2-.3.3-.4.5a19.2 19.2 0 0 1-1.4 1.5c-.6.6-1.2 1.3-1.8 2s-1.2 1.3-1.8 2l-1.8 2.1c-.5.6-1.1 1.3-1.6 2l-.1.1c-.5.7-1.1 1.4-1.7 2.1-.1.1-.2.2-.2.3-.4.6-.9 1.1-1.3 1.7-.1.1-.1.2-.2.2-.3.4-.6.7-1.2 1.6a4.64 4.64 0 0 1 .8 2 2.87 2.87 0 0 0-.3-2.2c2.5 1 4.9 1 6.6-.4.2-.1.3-.3.5-.4a2.61 2.61 0 0 1-2.6.1 7.33 7.33 0 0 0 4.4-1.7 6.47 6.47 0 0 0 .9-.8 6 6 0 0 1-5.8 0h-.1a11.59 11.59 0 0 0 6.4-1.2 14.83 14.83 0 0 0 2.7-1.9 20.32 20.32 0 0 0 2-2.1 23.05 23.05 0 0 0 1.8-2.3 3.78 3.78 0 0 1-1.5 0h-.6a6.57 6.57 0 0 0 4.4-2.1 6.84 6.84 0 0 1-2.2.2.76.76 0 0 1-.4-.1H27a8.58 8.58 0 0 0 1.7-.3c.1 0 .2-.1.3-.1s.3-.1.5-.2.2-.1.3-.2a2.65 2.65 0 0 0 .6-.5l.2-.2.2-.2a7.3 7.3 0 0 0 .9-1 1.38 1.38 0 0 1 .3-.4c0-.1.1-.1.1-.2s.2-.3.3-.4a1.38 1.38 0 0 1 .3-.4c-.1 0-.1 0-.2.1a8.09 8.09 0 0 1-2.2 0h-.2a6.29 6.29 0 0 0 3.1-1.1 4.23 4.23 0 0 1 .7-.5l2.1-1.8c.6-.6 1.2-1.3 1.7-1.8.3-.4.6-.7.8-1a5.58 5.58 0 0 1 .5-.8c1.41-2.88.91-4.6.91-4.6z"
/>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 14</title>
<path
fill="#1B3240"
d="M37.38 20a7.62 7.62 0 0 0 2.7-5.7 7.38 7.38 0 0 0-7.4-7.4H4.08c7.3 7.4 14.3 11.2 19.8 13.1-5.5 1.9-12.4 5.7-19.8 13.1h28.6a7.38 7.38 0 0 0 7.4-7.4 7.12 7.12 0 0 0-2.7-5.7m-5 9.1h-17.2c6.49-4.6 12.1-6.8 17.1-6.8a3.37 3.37 0 0 1 3.4 3.4 3.43 3.43 0 0 1-3.3 3.4m0-11.4c-5 0-10.61-2.2-17.11-6.8h17.11a3.37 3.37 0 0 1 3.4 3.4 3.59 3.59 0 0 1-3.4 3.4"
/>
</svg>
);

View File

@ -0,0 +1,29 @@
import React from 'react';
export default props => (
<svg
id="svg4300"
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<defs>
<style dangerouslySetInnerHTML={{ __html: '.cls-1{fill:#fff}' }} />
</defs>
<title>Artboard 1 copy 15</title>
<path
fill="#1B3240"
d="M42 13.35s-2.6 3-4.5 2.3a10.24 10.24 0 0 0 3-3.4s-3.3 3.4-5.6 2.9a10.87 10.87 0 0 0 3.1-4.5s-2.6 4.1-4.3 4.2a10.74 10.74 0 0 0 2.7-4.1s-2.2 3.2-3.8 3.4c2.3-2 2.3-3.3 2.3-3.3s-2.2 2.8-3.6 3.4c-.2-.1-.3-.2-.5-.3a21.11 21.11 0 0 0 2.2-3.4s-2 2.7-3 3c-.1-.1-.3-.1-.4-.2 0-.4.9-1.5.9-1.5s-1.3 1.2-1.9 1.1h-.1a12.81 12.81 0 0 0 2.2-2.9 13.23 13.23 0 0 1-2.9 2.6c-.1 0-.2-.1-.3-.1l1.2-2.5s-1 2.1-2.5 2.2c-.2 0-.3-.1-.5-.1a6.88 6.88 0 0 0 1.1-1.9s-1.3 2.1-3 1.5c-.4-.1.5-1.1.5-1.1s-1.1 1.1-1.9.9 0-1.5 0-1.5-.9 1.3-1.3 1.8h-.3a3.47 3.47 0 0 1 .2-1.3 6.77 6.77 0 0 1-1.1 1.4h-.5c-.3-.3.1-1.5.1-1.5s-.6 1.7-1 1.6S18 11 18 11a2.89 2.89 0 0 1-.5 1.4 21.76 21.76 0 0 0-4.9 1.4C9.1 15.1 5.2 17.5.7 22c2.9-1.5 4.9-3.4 7.5-5a4.18 4.18 0 0 0-.9 2.7c.1 1.7 1.6 3.2 3.9 4.1-.1 0-.3-.1-.4-.1-4-1.1-7.2.9-10.7-.9.8.6 1.7 1.3 4.4 1.2.9 0 3.8-.1 4.3.3S7 27 7 27s3.9-3.3 4.3-2.2c.2.7-1.1 2.6-1.1 2.6s1.4-1.9 2.4-2.2a1.33 1.33 0 0 1 1.8.5c.3.5-1.6 2.7-1.6 2.7s2.6-2.5 3-2.4 0 2.4 0 2.4 1-2.3 1.5-2.4c.7-.2-1.6 5.3-1.6 5.3s2.8-5.1 3.3-5.2c.9-.2 1.5 3.6 1.5 3.6s-.4-3.3 0-3.5c3-1.3 1.3 5.7 1.3 5.7s2-4.8.8-5.8a6.77 6.77 0 0 1 2.8 5.8s.8-1.8-1.5-6.2c1.3-.1 3.1 3.2 3.1 3.2s-2-3.6-.7-3.7c2.8-.1 3 4.8 3 4.8s.8-.7-1.4-5.6c1.4-.9 4.8 4.5 4.8 4.5s-3.1-5.3-2.6-5.6 2.4 1.7 2.4 1.7-1.4-2-1-2.1 4.1 3.9 4.1 3.9-3.3-4-2.7-4.5c.3-.3 1.2.2 2 .7-1-.8-2.5-1.9-2-2.1 1-.5 3.9 1.3 3.9 1.3s-1.7-1.4-1.5-1.8 3.7 2.2 3.7 2.2-3-2.4-3.2-3 2.4.2 2.4.2-2.8-1.3-2.9-1.7 1.9.4 1.9.4-2.6-2.1-3.2-.4c-.2.3-.3.6-.5.9a2.62 2.62 0 0 0 .2-1.5 2.84 2.84 0 0 0-.4-1.3 7.37 7.37 0 0 0 2.1.9c3.95.35 6.6-3.75 6.6-3.75z"
/>
<path
fill="#1B3240"
d="M34.65 23.05c.6.4 1 .7 1 .7a4.24 4.24 0 0 0-1-.7z"
/>
<path
className="cls-1"
d="M27.25 13.25c-1.5-.2-3.4-.5-5.4-.6a7.07 7.07 0 0 1 3.7 1.2 7.84 7.84 0 0 1-.5 1.4h-.2a.68.68 0 0 0-.7.7.52.52 0 0 0 .2.4 6.73 6.73 0 0 1-1.5 1.4 2.32 2.32 0 0 0-4.6.4v.1a5.41 5.41 0 0 1-2.2-1.5 5.39 5.39 0 0 1 .7-1.3h.3a.79.79 0 0 0 .8-.8.37.37 0 0 0-.1-.3 6.39 6.39 0 0 1 4.6-1.3c-.1 0-.3-.1-.4-.1a5.36 5.36 0 0 0-4.6 1h-.3a.79.79 0 0 0-.8.8v.3a4.73 4.73 0 0 0-.7 1.2 5.36 5.36 0 0 1-1.1-2.7h-.1v.1a5.45 5.45 0 0 0 1 3.1 4.33 4.33 0 0 1-.1.5 6.08 6.08 0 0 0-.1 1.9 1.15 1.15 0 0 0-.6.9.94.94 0 0 0 1 1h.1a7.1 7.1 0 0 0 1 1.4 7 7 0 0 1-4.1-6.4 2.8 2.8 0 0 1 1.6-2.5 24.88 24.88 0 0 0-2.9 1.1 8.52 8.52 0 0 0-.4 2.3c0 4.3 3.9 7.7 8.6 7.7s8.6-3.4 8.6-7.7a4.88 4.88 0 0 0-.8-3.7zm-10.2 8.6a3.88 3.88 0 0 1-.6-1.1.91.91 0 0 0 .3-.7 1.08 1.08 0 0 0-.8-1 5 5 0 0 1 .1-1.7v-.1a6 6 0 0 0 2.5 1.6 2.19 2.19 0 0 0 .3.5 8.32 8.32 0 0 0-1.8 2.5zm2.7 1.3A11 11 0 0 1 18 23c-.2-.2-.4-.3-.5-.5a5.46 5.46 0 0 1 1.8-2.4 2.39 2.39 0 0 0 1.4.5 2.43 2.43 0 0 0 2.2-1.5 6.72 6.72 0 0 1 2.8 1 7.43 7.43 0 0 1-5.95 3.05zm6.1-3.6a5.51 5.51 0 0 0-2.7-1.2 5.51 5.51 0 0 0 1.7-1.7H25a.68.68 0 0 0 .7-.7.76.76 0 0 0-.2-.5 4 4 0 0 0 .3-1.5 2.66 2.66 0 0 1 1 2.1 6.76 6.76 0 0 1-.95 3.5z"
/>
</svg>
);

View File

@ -0,0 +1,107 @@
import React from 'react';
export default props => (
<svg
id="svg4300"
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<defs>
<style dangerouslySetInnerHTML={{ __html: '.cls-1{fill:#fff}' }} />
</defs>
<title>Artboard 1</title>
<g id="g12802">
<g id="g12804">
<g id="g12806">
<path
fill="#1B3240"
d="M18.54 19.68l1.3 1.32-1.3 1.28h-9.2v4.38L3.74 21l5.6-5.54v4.26z"
id="path12808"
/>
</g>
</g>
</g>
<g id="g12768">
<g id="g12770">
<g id="g12772">
<path
fill="#1B3240"
d="M22.76 18.17l-1.28 1.3-1.28-1.3V9h-4.37l5.65-5.6L27 9h-4.24v9.2z"
id="path12774"
/>
</g>
</g>
</g>
<g id="g12780">
<g id="g12782">
<path
fill="#1B3240"
d="M24.23 22.29L22.93 21l1.3-1.28h9.2v-4.36L39 21l-5.6 5.55v-4.26z"
id="path12784"
/>
</g>
</g>
<g id="g12790">
<g id="g12792">
<g id="g12794">
<path
fill="#1B3240"
d="M20.05 23.86l1.28-1.3 1.28 1.3v9.2H27l-5.65 5.6-5.55-5.6h4.27z"
id="path12796"
/>
</g>
</g>
</g>
<g id="rect12744">
<path fill="#1B3240" d="M9 8.6h11.2v11.2H9z" />
<path
className="cls-1"
d="M20.63 20.2H8.73V8.3h11.9zm-11.2-.8h10.4V9H9.43z"
/>
</g>
<g id="rect12746">
<path fill="#1B3240" d="M22.63 8.6h11.2v11.2h-11.2z" />
<path
className="cls-1"
d="M34.13 20.2h-11.9V8.3h11.9zm-11.2-.8h10.4V9h-10.4z"
/>
</g>
<g id="rect12748">
<path fill="#1B3240" d="M22.63 22.2h11.2v11.2h-11.2z" />
<path
className="cls-1"
d="M34.13 33.7h-11.9V21.8h11.9zm-11.2-.7h10.4V22.6h-10.4z"
/>
</g>
<g id="rect12750">
<path fill="#1B3240" d="M9 22.2h11.2v11.2H9z" />
<path
className="cls-1"
d="M20.63 33.7H8.73V21.8h11.9zM9.43 33h10.4V22.6H9.43z"
/>
</g>
<path
className="cls-1"
d="M11.83 29.4L3.43 21l8.4-8.4 8.4 8.4zM4.43 21l7.4 7.4 7.4-7.4-7.4-7.4z"
id="rect12760"
/>
<path
className="cls-1"
d="M21.43 19.8L13 11.4 21.43 3l8.4 8.4zM14 11.4l7.4 7.4 7.4-7.4L21.43 4z"
id="rect12762"
/>
<path
className="cls-1"
d="M31 29.4L22.63 21 31 12.6l8.4 8.4zM23.63 21L31 28.4l7.4-7.4-7.4-7.4z"
id="rect12764"
/>
<path
className="cls-1"
d="M21.43 39L13 30.6l8.4-8.4 8.4 8.4zM14 30.6l7.4 7.4 7.4-7.4-7.4-7.4z"
id="rect12766"
/>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 7</title>
<path
fill="#1B3240"
d="M21.7 5.15a15 15 0 1 0 15 15 15 15 0 0 0-15-15zm10.1 17.6a1.83 1.83 0 0 1-1.5 1.9 65.23 65.23 0 0 1-8.6.5 65.23 65.23 0 0 1-8.6-.5 1.83 1.83 0 0 1-1.5-1.9V17a2 2 0 0 1 1.5-1.9 17.57 17.57 0 0 1 2.7-.2.68.68 0 0 1 .7.7v4.1l5.3-.1 5.3.1v-4.1a.68.68 0 0 1 .7-.7 17.57 17.57 0 0 1 2.7.2A1.85 1.85 0 0 1 32 17a55.24 55.24 0 0 0-.2 5.8z"
/>
</svg>
);

View File

@ -0,0 +1,25 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy</title>
<path
fill="#1B3240"
d="M24.37 22.2c-.7 0 .1.4 1 .5a4.35 4.35 0 0 0 .7-.6 9.15 9.15 0 0 1-1.7.1m3.8-1a4.76 4.76 0 0 0 .8-1.8 3.1 3.1 0 0 1-.6 1.3c-1.3.8-.1-.5 0-1-1.4 1.7-.2 1-.2 1.5m1.3-3.6c.1-1.3-.2-.9-.4-.4.2.1.3.9.4.4M21.77.5c.4.1.8.1.7.2.4-.1.5-.2-.7-.2m.7.2l-.3.1.3-.1"
/>
<path
fill="#1B3240"
d="M34.07 18.1a5.59 5.59 0 0 1-.7 2.6l-.6.3c-.5 1 0 .6-.3 1.4a22.09 22.09 0 0 1-2.8 2.3c-.4 0 .2-.4.3-.6-1 .7-.8 1.1-2.4 1.5v-.1c-3.9 1.8-9.3-1.8-9.2-6.7 0 .3-.1.2-.2.4a6.2 6.2 0 0 1 3.5-6.1 5.69 5.69 0 0 1 6.5.9 5.88 5.88 0 0 0-4.8-2.3 5.06 5.06 0 0 0-4.6 2.8c-1.1.7-1.2 2.6-1.6 2.9-.6 4.5 1.2 6.5 4.2 8.8.5.3.1.4.2.6a10.52 10.52 0 0 1-2.7-2 5.39 5.39 0 0 0 1.4 1.6c-.9-.3-2.2-2.3-2.6-2.4 1.6 2.9 6.6 5.1 9.2 4a12.11 12.11 0 0 1-4.1-.5c-.6-.3-1.3-.9-1.2-1a10.14 10.14 0 0 0 10.3-1.5c.8-.6 1.6-1.6 1.9-1.7-.4.6.1.3-.2.8.8-1.3-.3-.5.8-2.2l.4.6c-.2-1 1.3-2.3 1.1-4 .3-.5.4.5 0 1.7.5-1.3.1-1.5.3-2.6.1.4.3.7.4 1.1a4.71 4.71 0 0 1 .5-2.8c-.2-.1-.5.6-.6-.9 0-.6.2-.3.2-.5A3.3 3.3 0 0 1 36 13c.1-.2.4.6.6.6-.1-.7-.3-1.3-.4-1.9-.6-1.2-.2.2-.7-.5-.6-1.9.5-.4.6-1.3a14.09 14.09 0 0 1 1.7 4.3 15.83 15.83 0 0 0-.9-3.1c.3.1-.5-2.2.4-.7a14.05 14.05 0 0 0-6.4-7.7c.3.3.7.7.6.7-1.3-.8-1.1-.8-1.3-1.2-1.1-.4-1.1 0-1.9 0A16.23 16.23 0 0 0 24 .6l.1.4c-1.3-.4-1.6.2-3 0-.1-.1.5-.2.9-.3-1.3.2-1.2-.3-2.5 0a8.79 8.79 0 0 1 1-.6c-1.1.1-2.5.6-2.1.1-1.7.8-4.8 1.9-6.5 3.5l-.1-.4c-.8.9-3.4 2.8-3.6 4.1H8a21.4 21.4 0 0 0-1 2.2c-.5.9-.8.4-.7.5a24.48 24.48 0 0 0-2 5.4c.3.5 0 2.9.1 4.8-.5 9.6 6.7 18.9 14.6 21a15.34 15.34 0 0 0 4.4.4c-1.7-.5-2-.3-3.6-.9a7.56 7.56 0 0 1-2.3-2l.3.6c-1.7-.6-1-.7-2.4-1.2l.4-.5a2.91 2.91 0 0 1-1.7-1.4h-.6c-.7-.9-1.1-1.5-1.1-2l-.2.3c-.2-.4-2.7-3.3-1.4-2.6a3 3 0 0 1-.9-1l.3-.3a6 6 0 0 1-1.1-2.1 1.41 1.41 0 0 0 .8.6c-1.5-3.8-1.6-.2-2.8-3.9h.2c-.2-.3-.3-.6-.5-.9l.1-1.1c-1.1-1.3-.3-5.4-.1-7.7.1-.9.9-1.9 1.5-3.5l-.4-.1c.7-1.3 4.1-5 5.7-4.8.8-1-.2 0-.3-.2 1.7-1.7 2.2-1.2 3.3-1.5 1.2-.7-1 .3-.5-.3 2.1-.5 1.5-1.2 4.2-1.5.3.2-.7.3-.9.5 1.7-.9 5.5-.7 8 .5 2.8 1.3 6.1 5.3 6.2 9h.1c-.1 1.5.2 3.2-.3 4.7l.7-.3"
/>
<path
fill="#1B3240"
d="M16.77 23.1l-.1.5a12.38 12.38 0 0 0 1.4 1.8c-.4-.8-.7-1.2-1.3-2.3m1.1 0a4.05 4.05 0 0 1-.5-.9 7.14 7.14 0 0 0 .8 1.5l-.3-.6M37 18.9l-.1.3a14.58 14.58 0 0 1-1.2 3.9 11.34 11.34 0 0 0 1.3-4.2M21.87.2a9.85 9.85 0 0 1 1.7-.2c-.7.1-1.3.1-1.9.2h.2M5.37 9c.1 1-.8 1.4.2.7.5-1.2-.2-.3-.2-.7m-1.1 4.6a5.56 5.56 0 0 0 .3-1.5c-.6.8-.2 1-.3 1.5"
/>
</svg>
);

View File

@ -0,0 +1,33 @@
import React from 'react';
export default props => (
<svg
id="svg4300"
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<defs>
<style
dangerouslySetInnerHTML={{
__html: '.cls-1,.cls-2{fill:#fff}.cls-1{opacity:.5;isolation:isolate}'
}}
/>
</defs>
<title>Artboard 1 copy 2</title>
<path
id="voice"
d="M39.7 20.3a18 18 0 0 0-36 0v13.9a4.06 4.06 0 0 0 4.1 4.1h13.9a18 18 0 0 0 18-18"
/>
<path
className="cls-1"
d="M27 6.6a8.39 8.39 0 0 0-8.4 8.4v4.5h-4.5a8.4 8.4 0 1 0 8.4 8.4v-4.5H27a8.4 8.4 0 0 0 0-16.8zm-8.4 21.3a4.5 4.5 0 1 1-4.5-4.5h4.5zm8.4-8.4h-4.5V15a4.5 4.5 0 1 1 4.5 4.5z"
/>
<path
className="cls-2"
d="M28.9 6.8a6.28 6.28 0 0 0-1.9-.3 8.39 8.39 0 0 0-8.4 8.4v4.5h-3.5a2 2 0 0 0 0 4H18a.65.65 0 0 1 .6.6v3.9a4.48 4.48 0 0 1-4.5 4.5c-.8 0-1-.1-1.6-.1a1.87 1.87 0 0 0-2 1.9 2.12 2.12 0 0 0 1.7 1.9 6.28 6.28 0 0 0 1.9.3 8.39 8.39 0 0 0 8.4-8.4v-4.5H26a2 2 0 0 0 0-4h-2.9a.65.65 0 0 1-.6-.6V15a4.48 4.48 0 0 1 4.5-4.5c.8 0 1 .1 1.6.1a1.87 1.87 0 0 0 2-1.9 2.34 2.34 0 0 0-1.7-1.9z"
/>
</svg>
);

View File

@ -0,0 +1,16 @@
import React from 'react';
export default props => (
<svg
id="svg4300"
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 3</title>
<path d="M35.66,6.09c1.6,1.6-2.8,8.6-3.6,9.3s-2.6.1-4.2-1.5-2.3-3.5-1.5-4.2,7.7-5.2,9.3-3.6m-22.3,1.7c-2.4-1.4-5.9-2.9-7-1.8s.5,4.6,1.9,7.1a14.41,14.41,0,0,1,5.1-5.3" />
<path d="M33.26,14.89c.2.8.2,1.4-.2,1.7-.8.8-3.1-.1-5.2-2l-.4-.4a9.12,9.12,0,0,1-1.7-2.3c-.7-1.3-.9-2.4-.4-3a1.57,1.57,0,0,1,1.4-.3c.4-.2.8-.5,1.3-.8a15,15,0,0,0-6.7-1.6,14.4,14.4,0,1,0,14.4,14.4,14.21,14.21,0,0,0-1.9-7.1,4.54,4.54,0,0,1-.6,1.4" />
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 16</title>
<path
fill="#1B3240"
d="M3 30.8h14.4V38H3zm21.6 0H39V38H24.6zM3 16.4h36v7.2H3zM3 2h21.6v7.2H3zm28.8 0H39v7.2h-7.2z"
/>
</svg>
);

View File

@ -0,0 +1,29 @@
export { default as Alpine } from './alpine';
export { default as Apache } from './apache';
export { default as Brocade } from './brocade';
export { default as Cassandra } from './cassandra';
export { default as Centos } from './centos';
export { default as Couchbase } from './couchbase';
export { default as Debian } from './debian';
export { default as Fedora } from './fedora';
export { default as Freebsd } from './freebsd';
export { default as Ghost } from './ghost';
export { default as Illumos } from './illumos';
export { default as Java } from './java';
export { default as Linux } from './linux';
export { default as Mariadb } from './mariadb';
export { default as Mongodb } from './mongodb';
export { default as Multiarch } from './multiarch';
export { default as Mysql } from './mysql';
export { default as Nginx } from './nginx';
export { default as NoPackages } from './no-packages';
export { default as Node } from './node';
export { default as Openbsd } from './openbsd';
export { default as Percona } from './percona';
export { default as Placeholder } from './placeholder';
export { default as Postgresql } from './postgresql';
export { default as Redis } from './redis';
export { default as Scylladb } from './scylladb';
export { default as Smart } from './smart';
export { default as Ubuntu } from './ubuntu';
export { default as Windows } from './windows';

View File

@ -0,0 +1,25 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 17</title>
<path
fill="#1B3240"
d="M14.79 32.38s-1.6.9 1.1 1.2a23.57 23.57 0 0 0 8.7-.4 16.47 16.47 0 0 0 2.3 1.1c-8.2 3.7-18.6 0-12.1-1.9m-1-4.6s-1.8 1.3.9 1.6a33.65 33.65 0 0 0 11.2-.5 5.63 5.63 0 0 0 1.7 1.1c-9.9 2.9-21 .2-13.8-2.2m8.4-7.78c2 2.3-.5 4.4-.5 4.4s5.1-2.7 2.8-6c-2.2-3.1-3.9-4.6 5.3-10-.1.1-14.4 3.7-7.6 11.6"
/>
<path
fill="#1B3240"
d="M33.09 35.78s1.2 1-1.3 1.7c-4.7 1.4-19.8 1.9-23.9.1-1.5-.7 1.3-1.6 2.2-1.7a7.21 7.21 0 0 1 1.4-.2C9.79 34.48.69 38 6.89 39c16.8 2.8 30.6-1.2 26.2-3.2m-17.6-12.72s-7.6 1.8-2.7 2.5a57.48 57.48 0 0 0 10.1-.1c3.2-.3 6.3-.8 6.3-.8a19.64 19.64 0 0 0-1.9 1c-7.8 2-22.7 1.1-18.4-1a14.31 14.31 0 0 1 6.6-1.6m13.7 7.6c7.9-4.1 4.2-8 1.7-7.5a6.59 6.59 0 0 0-.9.2 1 1 0 0 1 .7-.5c5-1.8 8.9 5.2-1.6 8a.35.35 0 0 0 .1-.2M24.49 0s4.4 4.4-4.1 11.1c-6.8 5.4-1.6 8.5 0 12-4-3.6-6.9-6.8-4.9-9.7 2.8-4.4 10.7-6.5 9-13.4"
/>
<path
fill="#1B3240"
d="M16.29 41.78c7.6.5 19.2-.3 19.5-3.8 0 0-.5 1.4-6.3 2.4a61.75 61.75 0 0 1-19.1.3s.9.8 5.9 1.1"
/>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 18</title>
<path
fill="#1B3240"
d="M42 9c0-.6-.3-1-.9-.9-.6 0-.4.2-1.8.6s-3.1.2-4.7.9C30 11.5 29.05 18 25 20.4c-3.1 1.7-6.2 1.9-9 2.8a17.18 17.18 0 0 0-5.5 3.2c-1.3 1.1-1.3 2.1-2.7 3.5S2 29.9.05 32.2a1.86 1.86 0 0 0 2.1.6c-.3.5-1.8.9-1.5 1.6s4 1.3 7.3-.7c1.5-.9 2.8-2.3 5.2-2.6 3.1-.4 6.7.3 10.3.8A13 13 0 0 1 21 35.8c-.3.3.5.3 1.5.1a13.35 13.35 0 0 0 4.1-1.5c1.5-.9 1.8-3.2 3.6-3.7 1 1.6 3.9 2 5.6.7-1.5-.4-2-3.7-1.5-5.2s1-3.6 1.5-5.4.7-4.4 1.4-5.4c1-1.5 2.1-2 3-2.9A3.71 3.71 0 0 0 42 9zm-7.5 22.4c-1 .2-2.8-.2-3.2-.9.2-1 1.4-2 2-2.6a8.5 8.5 0 0 0 1.15 3.5zm4.7-18.5a8.62 8.62 0 0 0-2.5 2.2c-.6 1-1 4.4-2 7.7-.9 2.9-2.1 5.7-4.4 7-.2-.6 0-1.7-.4-2a13.32 13.32 0 0 1-1 2.4 8.91 8.91 0 0 1-6.5 5c1.5-2.1 3-4.3 3.1-7.9-1.1.2-1.1 2.8-2.2 3.5a8.09 8.09 0 0 1-2.2 0c-3-.2-6.1-1.1-8.9-.2-1.9.6-3.5 2.1-5.1 2.8a9 9 0 0 1-5.7.8c-.3-.4 1.7-.9 1.6-1.8a8.58 8.58 0 0 1-2.3-.2.78.78 0 0 1 .4-.4c1.5-1 5.7-.2 6.8-1.3a14.62 14.62 0 0 0 1.6-2.1 9.5 9.5 0 0 1 1.6-1.9l.9-.6a18.33 18.33 0 0 1 4.2-2.1c2-.7 4.1-.8 6.3-1.6a16.64 16.64 0 0 0 4-2 5 5 0 0 0 .8-.7c3.4-3.3 4.1-9.1 9.3-9.7.6-.1 1.2 0 1.6-.1a3.43 3.43 0 0 0 1.6-.4c.2.5.4.8 1.5.9a4.09 4.09 0 0 1-2.15 2.7zm-4.4-1c.7.6 2.3.1 2-1.2-1.15-.1-1.8.3-2.05 1.2zm5.3-1.5a3.93 3.93 0 0 0-.6 2c0 .2-.1.3-.1 0a4 4 0 0 1 .6-2.1c.1-.2.1-.1.1.1zm-.2-.2a5.14 5.14 0 0 0-.9 2.2c0 .2-.2.3-.1 0a5 5 0 0 1 .9-2.2c.05-.3.2-.2.05 0zm-.2-.2a5.34 5.34 0 0 0-1.3 2.3c0 .2-.2.3-.1 0a6.81 6.81 0 0 1 1.3-2.4c.05-.2.15-.1.05.1zm-.2-.2a6.68 6.68 0 0 0-1.7 2.5c-.1.2-.2.2-.1 0a6.87 6.87 0 0 1 1.7-2.5c.15-.3.15-.2.05 0z"
/>
</svg>
);

View File

@ -0,0 +1,52 @@
import React from 'react';
export default props => (
<svg
id="svg4300"
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<defs>
<style
dangerouslySetInnerHTML={{
__html:
'.cls-1{fill:none}.cls-2,.cls-4{fill:#fff}.cls-2{opacity:.5;isolation:isolate}.cls-3{opacity:.25}.cls-5{clip-path:url(#clip-path)}'
}}
/>
<clipPath id="clip-path">
<path
className="cls-1"
d="M21.11 36.7s-9.2-6.3-8.7-17.3 7-16.5 8.3-17.5a2.48 2.48 0 0 0 .9-2.1c.6 1.2.5 18.4.5 20.4.3 7.8-.4 15-1 16.5z"
/>
</clipPath>
</defs>
<title>Artboard 1 copy 8</title>
<path
fill="#1B3240"
d="M30.91 16.5c-2.2-9.7-7.4-12.9-8-14.1a16.31 16.31 0 0 1-1.2-2.4v-.1a2.8 2.8 0 0 1-.9 2.1c-1.3 1-7.7 6.4-8.3 17.5C12 29.8 20 36 21 36.7a14.06 14.06 0 0 1 .7 4.9l1.1.4a22.75 22.75 0 0 1 .1-4.4 2.38 2.38 0 0 1 .6-1.1 11.46 11.46 0 0 0 1.4-1.1h.1a21.29 21.29 0 0 0 5.91-18.9z"
/>
<path
className="cls-2"
d="M23.41 36.4c-1.1-.5-1.4-2.9-1.5-5.1a23.76 23.76 0 0 1-.8 5.5l-.1-.1a14.06 14.06 0 0 1 .7 4.9l1.1.4a22.75 22.75 0 0 1 .1-4.4 2.25 2.25 0 0 1 .5-1.2z"
/>
<g id="g48" className="cls-3">
<path
id="SVGID"
className="cls-4"
d="M21.11 36.7s-9.2-6.3-8.7-17.3 7-16.5 8.3-17.5a2.48 2.48 0 0 0 .9-2.1c.6 1.2.5 18.4.5 20.4.3 7.8-.4 15-1 16.5z"
/>
<g className="cls-5">
<g id="g50">
<path
id="path62"
className="cls-4"
d="M21.11 36.7s-9.2-6.3-8.7-17.3 7-16.5 8.3-17.5a2.48 2.48 0 0 0 .9-2.1c.6 1.2.5 18.4.5 20.4.3 7.8-.4 15-1 16.5"
/>
</g>
</g>
</g>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 43</title>
<path
fill="#1B3240"
d="M19.11 22.13l-1.62 1.28a37.59 37.59 0 0 1-7.34 4.51.48.48 0 0 1-.71-.18 37.78 37.78 0 0 1-6.27-14.13A5.29 5.29 0 0 1 3 12.37a1 1 0 0 1 .26-.65C4 11 4.76 10.19 5.57 9.51c1.52-1.3 3.09-2.51 4.64-3.8.07-.06.14-.1.28-.2.07.51.12 1 .18 1.43a20.7 20.7 0 0 0 2.87 7.93 39.56 39.56 0 0 0 5.22 6.86zm3.79-2.87a40.15 40.15 0 0 1 9.1-5.84c.3-.14.43 0 .59.19A35.64 35.64 0 0 1 37.81 24c.44 1.35.73 2.75 1.1 4.12a1.87 1.87 0 0 1-.63 2.08c-1.9 1.61-3.78 3.23-5.68 4.85-.32.27-.66.51-1.08.82-.06-.53-.12-1-.17-1.45a20.15 20.15 0 0 0-2.6-7.42 38.72 38.72 0 0 0-5.53-7.39zm-.48 3.32c.93 1.25 1.84 2.44 2.7 3.66a32.47 32.47 0 0 1 3.05 5.31.51.51 0 0 1-.2.74 36.18 36.18 0 0 1-10.91 5.38c-1.39.43-2.84.7-4.27 1a1 1 0 0 1-.78-.2c-.88-.86-1.75-1.72-2.54-2.65C8.3 34.45 7.19 33 6.05 31.64q-.13-.18-.27-.39c1-.16 2-.27 3-.48a22.65 22.65 0 0 0 8.5-4c1.68-1.22 3.23-2.6 4.84-3.91zm-2.8-3.8c-.7-.91-1.39-1.78-2-2.67a35.8 35.8 0 0 1-3.69-6.18.61.61 0 0 1 .2-.93 37.82 37.82 0 0 1 14.56-6.25 1.75 1.75 0 0 1 1.78.52A77.82 77.82 0 0 1 36.16 10a.78.78 0 0 1 .06.16c-.68.08-1.34.15-2 .26a21.55 21.55 0 0 0-7.71 3 40.5 40.5 0 0 0-6.46 5c-.12.1-.25.2-.43.36zm7.45 16.92l2.08-1.41a5.22 5.22 0 0 1 .27 2.09c0 .06-.26.18-.36.15-.67-.21-1.33-.44-2-.67zM5.89 26.72L7.39 29c-.8.06-1.46.12-2.12.15-.07 0-.21-.18-.2-.25a6.43 6.43 0 0 1 .82-2.18zM15 5.67l-2.14 1.41A5.47 5.47 0 0 1 12.6 5c0-.06.23-.17.32-.14.68.21 1.36.44 2 .67zm21.14 8.98l-1.45-2.12a5.14 5.14 0 0 1 2.1-.27c.06 0 .17.14.16.2a6.64 6.64 0 0 1-.81 2.19z"
/>
</svg>
);

View File

@ -0,0 +1,21 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 19</title>
<path
fill="#1B3240"
d="M10.66 9.6a3.08 3.08 0 0 0-1 .1 3.92 3.92 0 0 0 .8 1l.6 1.2a1.36 1.36 0 0 0 .5-1.2c-.1-.2-.2-.3-.3-.5s-.4-.4-.6-.6"
/>
<path
fill="#1B3240"
d="M35.56 30.9a11.32 11.32 0 0 0-4.8.7c-.4.1-1 .1-1 .6.2.2.2.5.4.8a6.1 6.1 0 0 0 1.3 1.5 9.06 9.06 0 0 0 1.6 1.1c1 .6 2 .9 3 1.5a16.67 16.67 0 0 1 1.6 1.2c.3.2.4.5.8.6v-.1c-.2-.2-.2-.5-.4-.8l-.7-.7a11.85 11.85 0 0 0-2.5-2.5c-.8-.5-2.5-1.3-2.8-2.2v-.1a5.26 5.26 0 0 0 1.7-.4c.8-.2 1.6-.2 2.4-.4l1.2-.3v-.2c-.4-.4-.8-1-1.2-1.4a29.81 29.81 0 0 0-4-3c-.8-.5-1.7-.8-2.5-1.2-.3-.1-.8-.2-1-.5a8.48 8.48 0 0 1-1-1.9 42.85 42.85 0 0 1-2-4.3 23.58 23.58 0 0 0-1.2-2.8A24.7 24.7 0 0 0 15 6.9a14.08 14.08 0 0 0-3.1-1c-.6 0-1.2-.1-1.8-.1A4.81 4.81 0 0 1 9 4.9C7.56 4 4 2.1 3 4.6c-.7 1.6 1 3.2 1.5 4a9.39 9.39 0 0 1 1.2 1.8c.2.4.2.9.4 1.3A32.35 32.35 0 0 0 7.36 15c.3.5.6 1.1.9 1.5s.5.4.6.8a9.5 9.5 0 0 0-.6 1.8A10.82 10.82 0 0 0 9 27.3c.4.6 1.3 2 2.6 1.4 1.1-.4.9-1.8 1.2-3.1.1-.3 0-.5.2-.7.3.7.7 1.3 1 2a16.68 16.68 0 0 0 3.2 3.3c.6.4 1.1 1.2 1.8 1.5v-.1c-.1-.2-.4-.3-.6-.5-.4-.4-.9-1-1.3-1.5a33.5 33.5 0 0 1-2.7-4.5c-.4-.8-.7-1.6-1.1-2.4-.1-.3-.1-.7-.4-.9a7.35 7.35 0 0 0-1.2 1.7 14.29 14.29 0 0 0-.7 3.7h-.1c-.8-.2-1.1-1-1.3-1.7a10.26 10.26 0 0 1-.2-6.5c.2-.5.9-2.1.6-2.6-.1-.5-.6-.7-.9-1.1a12.9 12.9 0 0 1-.9-1.6c-.6-1.4-.9-2.9-1.5-4.3a19.92 19.92 0 0 0-1.2-1.9 8 8 0 0 1-1.3-1.9c-.1-.3-.3-.7-.1-1a.27.27 0 0 1 .3-.3c.3-.3 1.2.1 1.5.2a13.43 13.43 0 0 1 2.4 1.2c.3.2.7.7 1.2.8h.5a17.48 17.48 0 0 1 2.4.3 12.65 12.65 0 0 1 3.5 1.7 20.59 20.59 0 0 1 7.6 8.4c.3.6.4 1.1.7 1.7.5 1.2 1.2 2.4 1.7 3.6a17.1 17.1 0 0 0 1.7 3.3c.4.5 1.8.8 2.5 1.1a12.2 12.2 0 0 1 1.7.7 20.71 20.71 0 0 1 2.4 1.7c.1.8 1.4 1.4 1.4 1.9"
/>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 9</title>
<path
fill="#1B3240"
d="M36.86 12.05a.75.75 0 0 0-.5-.8c-4.9-2.8-9.9-5.7-14.8-8.6a.61.61 0 0 0-.8 0c-5 2.9-9.9 5.7-14.9 8.6a.75.75 0 0 0-.4.7v17.2a.67.67 0 0 0 .4.7c1.4.8 2.7 1.6 4.1 2.4 3.6 2.1 7.1 4.1 10.7 6.2a.9.9 0 0 0 1 0c4.9-2.8 9.8-5.7 14.8-8.5a.89.89 0 0 0 .5-.8c-.1-5.8-.1-11.5-.1-17.1zm-6.7 12.5v2.8a2 2 0 0 1-1.2 1.9 2.62 2.62 0 0 1-1.5.2 3.26 3.26 0 0 1-1.9-.8 6 6 0 0 1-.8-.8c-2.5-3-5-6-7.6-9-.4-.4-.7-.9-1.1-1.3l-.1-.1v10.2a1.94 1.94 0 0 1-1.7 1.9 1.89 1.89 0 0 1-2-.9 2 2 0 0 1-.3-1.1v-13.8a2.08 2.08 0 0 1 1.7-2.1 3.38 3.38 0 0 1 3.4 1.1c1.5 1.7 2.9 3.5 4.4 5.3l4.6 5.5.1.1v-10.1a2.39 2.39 0 0 1 .5-1.4 2 2 0 0 1 1.4-.6 2 2 0 0 1 2.1 2.1z"
/>
</svg>
);

View File

@ -0,0 +1,138 @@
import React from 'react';
export default props => (
<svg
width={79}
height={60}
viewBox="0 0 79 60"
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
{...props}
>
<title>Guilty_Salamander</title>
<desc>Created using Figma</desc>
<use xlinkHref="#a" transform="translate(23.8 22)" fill="#FAA427" />
<use xlinkHref="#b" transform="translate(27.3 25.5)" fill="#F3722C" />
<use xlinkHref="#c" transform="translate(4.8 32.1)" fill="#FAA427" />
<use xlinkHref="#d" transform="translate(12.2 31.8)" fill="#F3722C" />
<use xlinkHref="#e" transform="translate(54.4 31.9)" fill="#FAA427" />
<use xlinkHref="#f" transform="translate(54.4 32)" fill="#F3722C" />
<use xlinkHref="#g" transform="translate(15.8 26.8)" fill="#FAA427" />
<use xlinkHref="#h" transform="translate(5)" fill="#FAA427" />
<use xlinkHref="#i" transform="rotate(-15.13 41.037 5.45)" fill="#FAFBFC" />
<use
xlinkHref="#j"
transform="rotate(-15.13 67.273 -24.78)"
fill="#412B13"
/>
<use xlinkHref="#k" transform="translate(2.2 8)" fill="#F3722C" />
<use
xlinkHref="#l"
transform="rotate(-74.87 40.46 -20.511)"
fill="#FAFBFC"
/>
<use
xlinkHref="#m"
transform="rotate(-74.87 41.364 -22.098)"
fill="#412B13"
/>
<use xlinkHref="#n" transform="translate(52.1 8)" fill="#F3722C" />
<use xlinkHref="#o" transform="translate(31.5 34.3)" fill="#F3722C" />
<use xlinkHref="#p" transform="translate(14.3)" fill="#F3722C" />
<use xlinkHref="#q" transform="translate(30.9 18.9)" fill="#F3722C" />
<use xlinkHref="#r" transform="translate(37.6 18.9)" fill="#F3722C" />
<use xlinkHref="#s" transform="translate(27.4 53.9)" fill="#FAA427" />
<use xlinkHref="#t" transform="translate(39.1 53.9)" fill="#FAA427" />
<use xlinkHref="#u" transform="translate(27.4 53.9)" fill="#F3722C" />
<use xlinkHref="#v" transform="translate(28.6 26.2)" fill="#342013" />
<use xlinkHref="#w" transform="translate(32.6 28.7)" fill="#FFF" />
<defs>
<path
id="a"
d="M54.921 36.053L0 0l1.413 24.908c.359 6.249 5.752 11.145 12.283 11.145H54.92z"
/>
<path
id="b"
d="M42.12 32.526L13.47 0 0 23.737c.282 4.924 4.527 8.778 9.672 8.778l32.448.01z"
/>
<path
id="c"
d="M3.326 17.01a3.312 3.312 0 0 1-1.545-6.25C6.059 8.52 8.482 2.226 8.52 2.165a3.313 3.313 0 0 1 6.216 2.296c-.133.354-3.312 8.717-9.86 12.145-.475.26-1.008.4-1.55.403z"
/>
<path
id="d"
d="M5.079 9.205A28.654 28.654 0 0 0 7.287 4.75a3.312 3.312 0 1 0-6.183-2.296C.781 3.234.412 3.996 0 4.734c1.33 1.181 3.544 3.152 5.079 4.471z"
/>
<path
id="e"
d="M11.682 17.27a3.312 3.312 0 0 0 1.545-6.248C8.95 8.78 6.526 2.487 6.504 2.427A3.312 3.312 0 1 0 .316 4.723c.126.353 3.312 8.717 9.853 12.145.464.254.983.393 1.513.403z"
/>
<path
id="f"
d="M2.45 9.01A28.33 28.33 0 0 1 .242 4.553a3.312 3.312 0 1 1 6.21-2.296c.326.78.695 1.54 1.104 2.28C6.187 5.719 3.973 7.69 2.45 9.009z"
/>
<path
id="g"
d="M35.159 0H6.542A6.542 6.542 0 0 0 0 6.542v14.016a6.542 6.542 0 0 0 6.542 6.541h28.617a6.541 6.541 0 0 0 6.541-6.541V6.542A6.542 6.542 0 0 0 35.16 0z"
/>
<path
id="h"
d="M54.254 0H9.026A9.026 9.026 0 0 0 0 9.026v17.207a9.026 9.026 0 0 0 9.026 9.025h45.228a9.026 9.026 0 0 0 9.025-9.026V9.027A9.026 9.026 0 0 0 54.253 0z"
/>
<path
id="i"
d="M9.721 18.637c5.37 0 9.721-4.172 9.721-9.319C19.442 4.172 15.09 0 9.722 0 4.351 0 0 4.172 0 9.318c0 5.147 4.352 9.319 9.721 9.319z"
/>
<path
id="j"
d="M5.19 9.959c2.865 0 5.188-2.23 5.188-4.98C10.378 2.23 8.055 0 5.19 0S0 2.23 0 4.98c0 2.75 2.323 4.979 5.19 4.979z"
/>
<path
id="k"
d="M7.262.351C2.078 1.753-1.018 6.921.306 11.89l18.77-5.073C17.705 1.847 12.411-1.045 7.261.35z"
/>
<path
id="l"
d="M9.318 19.442c5.147 0 9.319-4.352 9.319-9.72C18.637 4.351 14.465 0 9.318 0 4.172 0 0 4.352 0 9.721c0 5.37 4.172 9.721 9.318 9.721z"
/>
<path
id="m"
d="M4.98 10.378c2.75 0 4.979-2.323 4.979-5.189S7.729 0 4.979 0C2.23 0 0 2.323 0 5.19c0 2.865 2.23 5.188 4.98 5.188z"
/>
<path
id="n"
d="M11.819.351c5.178 1.402 8.28 6.57 6.95 11.538L0 6.816C1.347 1.847 6.635-1.045 11.819.35z"
/>
<path
id="o"
d="M5.106 4.897A5.007 5.007 0 0 0 10.218 0H0a5.001 5.001 0 0 0 5.106 4.897z"
/>
<path id="p" d="M0 0l22.258 18.498L44.516 0H0z" />
<path
id="q"
d="M2.445 0A2.396 2.396 0 0 0 0 2.342h4.885a2.39 2.39 0 0 0-2.44-2.34z"
/>
<path
id="r"
d="M2.462 0A2.396 2.396 0 0 0 0 2.343h4.885A2.39 2.39 0 0 0 2.462 0z"
/>
<path
id="s"
d="M0 0h6.227v3.091A3.047 3.047 0 0 1 3.18 6.14h-.127A3.047 3.047 0 0 1 .006 3.09V0H0z"
/>
<path
id="t"
d="M.006 0H6.22v3.091A3.047 3.047 0 0 1 3.174 6.14h-.127A3.047 3.047 0 0 1 0 3.09V0h.006z"
/>
<path id="u" d="M31.328 0H0v1.474h31.328V0z" />
<path
id="v"
d="M15.422 1.503A17.422 17.422 0 0 0 8.113.002 17.4 17.4 0 0 0 .805 1.503a1.457 1.457 0 0 0 .629 2.76h2.572V4.06a1.579 1.579 0 0 1 2.126-1.468 6.194 6.194 0 0 0 3.963 0 1.574 1.574 0 0 1 2.12 1.468v.204h2.572a1.463 1.463 0 0 0 .635-2.76z"
/>
<path
id="w"
d="M6.072.104a6.194 6.194 0 0 1-3.963 0A1.579 1.579 0 0 0 0 1.573v.204h8.209v-.204A1.573 1.573 0 0 0 6.072.104z"
/>
</defs>
</svg>
);

View File

@ -0,0 +1,63 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
width={42}
height={42}
viewBox="0 0 30 34.22"
{...props}
>
<defs>
<style
dangerouslySetInnerHTML={{
__html:
'.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#1b3240;opacity:0.66;isolation:isolate;}.cls-3{fill:url(#linear-gradient-2);}'
}}
/>
<linearGradient
id="linear-gradient"
y1="225.5"
x2={30}
y2="225.5"
gradientTransform="matrix(1, 0, 0, -1, 0, 242.65)"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.01" stopColor="#1b3240" />
<stop offset={1} stopColor="#436275" />
</linearGradient>
<linearGradient
id="linear-gradient-2"
x1="-0.1"
y1="225.58"
x2="30.85"
y2="225.58"
gradientTransform="matrix(1, 0, 0, -1, 0, 242.65)"
gradientUnits="userSpaceOnUse"
>
<stop offset={0} stopColor="#436275" />
<stop offset={1} stopColor="#1b3240" />
</linearGradient>
</defs>
<title>Nodejs</title>
<g id="Layer_2" data-name="Layer 2">
<g id="svg4300">
<path
id="_Path_"
data-name="<Path>"
className="cls-1"
d="M14.2.3a1.53,1.53,0,0,1,1.6,0L29.2,8A1.6,1.6,0,0,1,30,9.4V24.9a1.6,1.6,0,0,1-.8,1.4L15.8,34a1.53,1.53,0,0,1-1.6,0L.8,26.3A1.6,1.6,0,0,1,0,24.9V9.4A1.6,1.6,0,0,1,.8,8Z"
/>
<path
className="cls-2"
d="M28.8,8,15.5.2c-.1-.1-.3-.1-.4-.2L0,25.8a1,1,0,0,0,.5.4l13.4,7.7a1.5,1.5,0,0,0,1.3.1L29.3,8.2C29.1,8.2,29,8.1,28.8,8Z"
/>
<path
className="cls-3"
d="M15.9,34l13.4-7.7a1.51,1.51,0,0,0,.7-1.4v-.1L15.6.1a1.53,1.53,0,0,0-1.3.2L1.1,7.9,15.5,34.1C15.6,34.1,15.7,34,15.9,34Z"
/>
</g>
</g>
</svg>
);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,18 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 11</title>
<path
fill="#1B3240"
d="M21.05 3.4c-9.9 0-18 7.9-18 17.5A17.69 17.69 0 0 0 11 35.5V20.7a10.2 10.2 0 0 1 10-10.2 10.18 10.18 0 0 1 10 10.4 10.25 10.25 0 0 1-10 10.4 9.6 9.6 0 0 1-5.8-1.9v8.2a18.53 18.53 0 0 0 5.8.9c9.9 0 18-7.9 18-17.5A17.76 17.76 0 0 0 21.05 3.4"
/>
<path fill="#1B3240" d="M27.15 21.2a6 6 0 1 1-6-6 6 6 0 0 1 6 6" />
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 45</title>
<path
fill="#1B3240"
d="M26.79 3h-18A1.29 1.29 0 0 0 7.5 4.3v33.42A1.29 1.29 0 0 0 8.79 39h24.42a1.29 1.29 0 0 0 1.29-1.29V10.53zm6.42 8.36h-7.07V4.3zm0 26.35H8.79V4.3h16.07v8.35h8.35zM30 18.44h-1.16l-7.2-3V13.3a.64.64 0 1 0-1.28 0v2.14l-7.26 3H12a1.28 1.28 0 0 0-1.29 1.28v9A1.28 1.28 0 0 0 12 30h18a1.28 1.28 0 0 0 1.29-1.28v-9A1.28 1.28 0 0 0 30 18.44zm-9-1.88l4.5 1.88h-9zm-9 12.17v-9h18v9zm3.21-7.08v5.15a.64.64 0 0 1-.64.64.64.64 0 0 1-.64-.64v-5.15a.64.64 0 0 1 .64-.64.64.64 0 0 1 .64.64zm3.22 0v5.15a.65.65 0 0 1-1.29 0v-5.15a.65.65 0 0 1 1.29 0zm3.21 0v5.15a.64.64 0 0 1-1.28 0v-5.15a.64.64 0 1 1 1.28 0zm3.22 0v5.15a.65.65 0 0 1-1.29 0v-5.15a.65.65 0 0 1 1.29 0zm3.21 0v5.15a.64.64 0 0 1-.64.64.64.64 0 0 1-.64-.64v-5.15a.64.64 0 0 1 .64-.64.64.64 0 0 1 .64.64z"
/>
</svg>
);

View File

@ -0,0 +1,33 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 12</title>
<path
fill="#1B3240"
d="M18.67 22.9l.1-.2c.1-.3.2-.5.3-.8.6-1.3 1.3-3 .5-6.9a1.75 1.75 0 0 0-1.2-1.4 6 6 0 0 0-3.9 1.1v.3a17.45 17.45 0 0 1-.1 4.5 4.47 4.47 0 0 0 1.1 3.7 3.57 3.57 0 0 0 2.7 1.2 8.8 8.8 0 0 1 .5-1.5zm-1.3-8a.76.76 0 0 1-.2-.4c0-.1 0-.1.1-.2a1.25 1.25 0 0 1 .9-.1c.5.1.9.3.9.6s-.5.6-.9.6h-.1a1.16 1.16 0 0 1-.7-.5zm2.5 10.8c-.3-.1-.4-.2-.8.2a3.81 3.81 0 0 1-.5.6c-.6.8-.9 1.1-2.8 1.5-.4.1-.6.2-.7.2a4.88 4.88 0 0 0 .7.3c1.4.3 3.3.4 4.6-1.5.2-.2.1-.5.1-.7a1.72 1.72 0 0 0-.6-.6zm10.3-17.6a9.77 9.77 0 0 1 2.5 4.8v.3a12.31 12.31 0 0 1-.2 2 7.77 7.77 0 0 0-.2 1.6c0 .6.1 1.2.1 1.8a7 7 0 0 1-.7 5l.1.1c0 .1.1.1.1.2 4.1-6.5 5.5-14 4.2-15.6A8.51 8.51 0 0 0 29 5a12.62 12.62 0 0 0-3 .3 7.81 7.81 0 0 1 4.17 2.8z"
/>
<path
fill="#1B3240"
d="M31.57 14.9c.1-.5.1-1 .2-1.5-2.1-.3-2.9.2-3.2.7-1.1 1.5 1 5.3 1.9 7 .2.4.4.7.5.9l.3.6a6.87 6.87 0 0 0 .3-4 6.08 6.08 0 0 1-.1-1.9 5.15 5.15 0 0 1 .1-1.8zm-1.1-.3a.85.85 0 0 1-.6.3h-.1c-.4 0-.8-.3-.8-.5s.4-.5.8-.5.9 0 .9.3c.1.1 0 .3-.2.4zm-17.1 4.8a15.94 15.94 0 0 0 .1-4.3v-.5c0-.3-.1-5.4 2.9-8.4l.1-.1c-1.8-.6-6.3-1.8-9 .2-1.7 1.2-2.47 3.4-2.3 6.6A52.73 52.73 0 0 0 7 21.1c1.3 4.1 2.7 6.7 3.9 7.1.2.1.8.3 1.6-.7 1.2-1.4 2.3-2.6 2.8-3.2-.1-.1-.3-.2-.4-.3a5.64 5.64 0 0 1-1.53-4.6z"
/>
<path
fill="#1B3240"
d="M39 24.9a1.72 1.72 0 0 0-1.5-1.2 2.63 2.63 0 0 0-1.2.1 7.18 7.18 0 0 1-1.9.2 34.44 34.44 0 0 0 3.8-9.1c1.3-4.9.6-7.1-.2-8.1a10.64 10.64 0 0 0-8.8-4.1 20.5 20.5 0 0 0-4.6.6 21.3 21.3 0 0 0-2.7-.2 10.18 10.18 0 0 0-4.7 1.1 22.81 22.81 0 0 0-3.3-.8c-3.2-.5-5.8-.1-7.7 1.2C3.87 6.2 2.77 9 3 13a52.13 52.13 0 0 0 1.9 8.7 25.8 25.8 0 0 0 2 5.1c1 1.9 2.1 3 3.2 3.4a3.24 3.24 0 0 0 3.2-.7 4.35 4.35 0 0 0 .7.6 5 5 0 0 0 1.3.5 6.55 6.55 0 0 0 4.4-.3v1.5a15.45 15.45 0 0 0 .6 4.4c0 .1 0 .1.1.2a5 5 0 0 0 1.3 2.3 3.74 3.74 0 0 0 2.8 1c.5 0 .9-.1 1.3-.1a5.76 5.76 0 0 0 4.1-2.4c1.1-1.5 1.6-3.8 1.7-7.5v-.5h.4a9.53 9.53 0 0 0 4.2-.7c.67-.2 3.37-1.6 2.8-3.6zm-3.4 2.8a8.45 8.45 0 0 1-3.3.6 6.05 6.05 0 0 1-1.5-.2c-.2 1.7-.6 5-.8 6.3-.4 2.5-1.6 3.7-4.2 4.3a4.87 4.87 0 0 1-1.2.1A3.75 3.75 0 0 1 21 36c-.4-1-.5-4.2-.5-7.5a4.79 4.79 0 0 1-3.3 1.2 11.14 11.14 0 0 1-1.7-.2c-.2 0-1.6-.4-1.6-1.4 0-.8 1.2-1.1 1.7-1.2 1.6-.3 1.7-.5 2.2-1.1.1-.1.2-.3.4-.4v-.1a4.2 4.2 0 0 1-2.1-.6c-.4.5-1.6 1.7-2.9 3.2a2.89 2.89 0 0 1-2.1 1.2 1.7 1.7 0 0 1-.7-.1c-1.6-.5-3.2-3.2-4.6-7.8A39.62 39.62 0 0 1 4 12.8q-.3-5.4 2.7-7.5c1.7-1.2 4-1.5 6.9-1.1a19.58 19.58 0 0 1 3.6 1A7.23 7.23 0 0 1 21.67 4a10.9 10.9 0 0 1 2.6.3 11.44 11.44 0 0 1 4.6-.7 9.74 9.74 0 0 1 8 3.7 4.6 4.6 0 0 1 .7 2.9 14.72 14.72 0 0 1-.7 4.3 34.56 34.56 0 0 1-4.5 10c.3.2 1.2.6 3.7.1.9-.2 1.4 0 1.5.5.7 1.1-1 2.1-2 2.6z"
/>
<path
fill="#1B3240"
d="M32.07 25.6a.1.1 0 0 1-.1-.1c-.1 0-.1 0-.2.1-.5.1-.9.3-.9 1.5a2.82 2.82 0 0 0 1.7.2 8.56 8.56 0 0 0 2.6-.5 4.83 4.83 0 0 0 1.5-1c-2.2.4-3.67.4-4.6-.2z"
/>
<path
fill="#1B3240"
d="M31.07 24.2A7 7 0 0 1 30 22.4a5.56 5.56 0 0 1-.4-.8c-1.1-1.9-3.3-6-1.9-8.1.7-1 2-1.3 3.9-1.1a11.91 11.91 0 0 0-2.1-3.6 10.27 10.27 0 0 0-7.7-3.7 6.41 6.41 0 0 0-4.7 1.8c-1.9 1.9-2.4 4.9-2.5 6.6.1 0 .2-.1.3-.2a8.12 8.12 0 0 1 2.5-.8 2.73 2.73 0 0 1 3.3 2.2c.9 4.3.1 6.2-.6 7.6a4.88 4.88 0 0 1-.3.7l-.1.2a12.13 12.13 0 0 0-.5 1.4 1.89 1.89 0 0 1 1.1.1 1.81 1.81 0 0 1 1.1 1.4c0 .1.1.2.1.3v.2c-.1 4.3 0 8.2.4 9.1a2.85 2.85 0 0 0 3.7 2c2.2-.5 3-1.3 3.4-3.4.3-1.6.8-6.2.9-7.2-.1-2 1-2.3 1.5-2.5-.13-.1-.23-.3-.33-.4z"
/>
</svg>
);

View File

@ -0,0 +1,53 @@
import React from 'react';
export default props => (
<svg
id="svg4300"
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<defs>
<style
dangerouslySetInnerHTML={{
__html:
'.cls-1,.cls-2{fill:#fff}.cls-1{opacity:.25;isolation:isolate}.cls-3{fill:#333}'
}}
/>
</defs>
<title>Artboard 1 copy 20</title>
<path
fill="#1B3240"
d="M37.57 23.65c-1.9-.7-11.8-4.6-13.7-5.3s-2.7-.7-4.9.1-12.8 4.9-14.6 5.7c-.9.4-1.4.7-1.4 1.1H3v3.6c0 .4.5.7 1.5 1.2 1.9.9 12.5 5.2 14.2 6s2.9.8 5-.3 12.1-5.2 14-6.2c1-.5 1.4-.9 1.4-1.3v-3.6c-.1-.4-.53-.65-1.53-1z"
/>
<path
className="cls-1"
d="M37.57 25.85c-1.9 1-11.9 5.1-14 6.2s-3.3 1.1-5 .3-12.3-5.1-14.2-6-1.9-1.5-.1-2.3 12.4-4.9 14.6-5.7 3-.8 4.9-.1 11.8 4.6 13.7 5.3 2 1.3.1 2.3z"
/>
<path
fill="#1B3240"
d="M37.57 17.75c-1.9-.7-11.8-4.6-13.7-5.3s-2.7-.7-4.9.1-12.8 4.9-14.6 5.7c-.9.4-1.4.7-1.4 1.1H3V23c0 .4.5.7 1.5 1.2 1.9.9 12.5 5.2 14.2 6s2.9.8 5-.3 12.1-5.2 14-6.2c1-.5 1.4-.9 1.4-1.3v-3.6c-.1-.35-.53-.75-1.53-1.05z"
/>
<path
className="cls-1"
d="M37.57 20c-1.9 1-11.9 5.1-14 6.2s-3.3 1.1-5 .3-12.3-5.1-14.2-6-1.9-1.5-.1-2.3 12.4-4.9 14.6-5.7 3-.8 4.9-.1 11.8 4.6 13.7 5.3 2 1.3.1 2.3z"
/>
<path
fill="#1B3240"
d="M37.57 11.55c-1.9-.7-11.8-4.6-13.7-5.3s-2.7-.7-4.9.1-12.8 4.9-14.6 5.7c-.9.4-1.4.7-1.4 1.1H3v3.6c0 .4.5.7 1.5 1.2 1.9.9 12.5 5.2 14.2 6s2.9.8 5-.3 12.1-5.2 14-6.2c1-.5 1.4-.9 1.4-1.3v-3.6c-.1-.3-.53-.7-1.53-1z"
/>
<path
className="cls-1"
d="M37.57 13.75c-1.9 1-11.9 5.1-14 6.2s-3.3 1.1-5 .3-12.3-5.1-14.2-6-1.9-1.5-.1-2.3 12.4-4.9 14.6-5.7 3-.8 4.9-.1 11.8 4.6 13.7 5.3 2 1.3.1 2.3z"
/>
<path
className="cls-2"
d="M25.77 10.25l-3.2.4-.7 1.6-1.1-1.8-3.6-.4 2.7-.9-.8-1.5 2.5 1 2.4-.8-.7 1.5 2.5.9zm-4.1 8.2l-5.8-2.4 8.4-1.3-2.6 3.7z"
/>
<ellipse className="cls-2" cx="13.67" cy="12.95" rx="4.5" ry="1.7" />
<path fill="#1B3240" d="M29.37 10.75l5 1.9-5 2v-3.9z" />
<path className="cls-3" d="M23.97 12.95l5.4-2.2v3.9l-.5.2-4.9-1.9z" />
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 44</title>
<path
fill="#1B3240"
d="M15.05 28.79a.73.73 0 1 1-.73-.73.73.73 0 0 1 .73.73zm.21-3.6a.73.73 0 1 0 .73.73.73.73 0 0 0-.73-.73zM18 23.83a.73.73 0 1 0 .73.73.73.73 0 0 0-.73-.73zm2.89 1a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.76zm-5.22 6a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.79zm2.89 1a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.83zm2.72-1.35a.73.73 0 1 0 .73.73.73.73 0 0 0-.74-.83zm-7.42 2.26a.94.94 0 1 0 .94.94.95.95 0 0 0-.95-1.04zm4.91 1.62a.94.94 0 1 0 .93.93.94.94 0 0 0-.94-1.03zm-7.19-6.2a.94.94 0 1 0 .94.94.94.94 0 0 0-.95-1.04zm1.63-4.89a.94.94 0 1 0 .93.94.94.94 0 0 0-.94-1.04zM17.82 21a.94.94 0 1 0 .94.94.94.94 0 0 0-.95-1.04zm4.86 1.6a.94.94 0 1 0 .94.94.94.94 0 0 0-.95-1.04zM8.27 28a1.17 1.17 0 1 0 1.17 1.2A1.16 1.16 0 0 0 8.27 28zm3.43 6.85a1.17 1.17 0 1 0 0 2.34 1.17 1.17 0 1 0 0-2.34zm-1-14.08A1.17 1.17 0 1 0 11.85 22a1.17 1.17 0 0 0-1.16-1.19zm6.86-3.42a1.17 1.17 0 1 0 1.17 1.16 1.16 1.16 0 0 0-1.18-1.12zm7.22 2.41A1.17 1.17 0 1 0 25.94 21a1.17 1.17 0 0 0-1.17-1.2zM5 28a1.42 1.42 0 1 0 1.4 1.43A1.43 1.43 0 0 0 5 28zm3.22-9.6a1.42 1.42 0 1 0 1.42 1.42 1.42 1.42 0 0 0-1.44-1.41zm-3-3A1.8 1.8 0 1 0 7 17.19a1.79 1.79 0 0 0-1.8-1.79zm11.84-5.9a1.8 1.8 0 1 0 1.79 1.79 1.8 1.8 0 0 0-1.79-1.79zm12.57 4.18a1.8 1.8 0 1 0 1.8 1.8 1.8 1.8 0 0 0-1.8-1.8zm3.06-3.95A2.22 2.22 0 1 0 34.91 12a2.22 2.22 0 0 0-2.22-2.27zM16.76 4.41A2.22 2.22 0 1 0 19 6.63a2.22 2.22 0 0 0-2.24-2.22zm19.71.06a2.94 2.94 0 1 0 2.94 2.94 2.94 2.94 0 0 0-2.94-2.94zm-19.13 9.37a1.42 1.42 0 1 0 1.42 1.42 1.43 1.43 0 0 0-1.42-1.42zM27 17.05a1.43 1.43 0 1 0 1.43 1.42A1.43 1.43 0 0 0 27 17.05z"
/>
</svg>
);

View File

@ -0,0 +1,17 @@
import React from 'react';
export default props => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={42}
height={42}
viewBox="0 0 42 42"
{...props}
>
<title>Artboard 1 copy 43</title>
<path
fill="#1B3240"
d="M19.11 22.13l-1.62 1.28a37.59 37.59 0 0 1-7.34 4.51.48.48 0 0 1-.71-.18 37.78 37.78 0 0 1-6.27-14.13A5.29 5.29 0 0 1 3 12.37a1 1 0 0 1 .26-.65C4 11 4.76 10.19 5.57 9.51c1.52-1.3 3.09-2.51 4.64-3.8.07-.06.14-.1.28-.2.07.51.12 1 .18 1.43a20.7 20.7 0 0 0 2.87 7.93 39.56 39.56 0 0 0 5.22 6.86zm3.79-2.87a40.15 40.15 0 0 1 9.1-5.84c.3-.14.43 0 .59.19A35.64 35.64 0 0 1 37.81 24c.44 1.35.73 2.75 1.1 4.12a1.87 1.87 0 0 1-.63 2.08c-1.9 1.61-3.78 3.23-5.68 4.85-.32.27-.66.51-1.08.82-.06-.53-.12-1-.17-1.45a20.15 20.15 0 0 0-2.6-7.42 38.72 38.72 0 0 0-5.53-7.39zm-.48 3.32c.93 1.25 1.84 2.44 2.7 3.66a32.47 32.47 0 0 1 3.05 5.31.51.51 0 0 1-.2.74 36.18 36.18 0 0 1-10.91 5.38c-1.39.43-2.84.7-4.27 1a1 1 0 0 1-.78-.2c-.88-.86-1.75-1.72-2.54-2.65C8.3 34.45 7.19 33 6.05 31.64q-.13-.18-.27-.39c1-.16 2-.27 3-.48a22.65 22.65 0 0 0 8.5-4c1.68-1.22 3.23-2.6 4.84-3.91zm-2.8-3.8c-.7-.91-1.39-1.78-2-2.67a35.8 35.8 0 0 1-3.69-6.18.61.61 0 0 1 .2-.93 37.82 37.82 0 0 1 14.56-6.25 1.75 1.75 0 0 1 1.78.52A77.82 77.82 0 0 1 36.16 10a.78.78 0 0 1 .06.16c-.68.08-1.34.15-2 .26a21.55 21.55 0 0 0-7.71 3 40.5 40.5 0 0 0-6.46 5c-.12.1-.25.2-.43.36zm7.45 16.92l2.08-1.41a5.22 5.22 0 0 1 .27 2.09c0 .06-.26.18-.36.15-.67-.21-1.33-.44-2-.67zM5.89 26.72L7.39 29c-.8.06-1.46.12-2.12.15-.07 0-.21-.18-.2-.25a6.43 6.43 0 0 1 .82-2.18zM15 5.67l-2.14 1.41A5.47 5.47 0 0 1 12.6 5c0-.06.23-.17.32-.14.68.21 1.36.44 2 .67zm21.14 8.98l-1.45-2.12a5.14 5.14 0 0 1 2.1-.27c.06 0 .17.14.16.2a6.64 6.64 0 0 1-.81 2.19z"
/>
</svg>
);

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