Merge pull request #2795 from balena-io/bump-styled-components-system

Upgrade rendition to v8
This commit is contained in:
Lorenzo Alberto Maria Ambrosi 2019-06-12 15:28:08 +02:00 committed by GitHub
commit be9c36828a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
52 changed files with 1027 additions and 1060 deletions

6
.gitattributes vendored
View File

@ -48,4 +48,10 @@ CODEOWNERS text
*.rpi-sdcard binary diff=hex *.rpi-sdcard binary diff=hex
*.wic binary diff=hex *.wic binary diff=hex
*.foo binary diff=hex *.foo binary diff=hex
*.eot binary diff=hex
*.otf binary diff=hex
*.woff binary diff=hex
*.woff2 binary diff=hex
*.ttf binary diff=hex
xz-without-extension binary diff=hex xz-without-extension binary diff=hex
wmic-output.txt binary diff=hex

View File

@ -0,0 +1,34 @@
/*
* Copyright 2019 resin.io
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict'
/**
* @module Etcher.Components.TargetSelector
*/
const angular = require('angular')
const { react2angular } = require('react2angular')
const MODULE_NAME = 'Etcher.Components.TargetSelector'
const SelectTargetButton = angular.module(MODULE_NAME, [])
SelectTargetButton.component(
'targetSelector',
react2angular(require('./target-selector.jsx'))
)
module.exports = MODULE_NAME

View File

@ -0,0 +1,166 @@
/*
* Copyright 2019 resin.io
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* eslint-disable no-magic-numbers */
'use strict'
// eslint-disable-next-line no-unused-vars
const React = require('react')
const propTypes = require('prop-types')
const { default: styled } = require('styled-components')
const {
ChangeButton,
DetailsText,
StepButton,
StepNameButton,
ThemedProvider
} = require('./../../styled-components')
const { Txt } = require('rendition')
const middleEllipsis = require('./../../utils/middle-ellipsis')
const { bytesToClosestUnit } = require('./../../../../shared/units')
const TargetDetail = styled((props) => (
<Txt.span {...props}>
</Txt.span>
)) `
float: ${({ float }) => float}
`
const TargetDisplayText = ({
description,
size,
...props
}) => {
return (
<Txt.span {...props}>
<TargetDetail
float='left'>
{description}
</TargetDetail>
<TargetDetail
float='right'
>
{size}
</TargetDetail>
</Txt.span>
)
}
const TargetSelector = (props) => {
const targets = props.selection.getSelectedDrives()
if (targets.length === 1) {
const target = targets[0]
return (
<ThemedProvider>
<StepNameButton
plain
tooltip={props.tooltip}
>
{/* eslint-disable no-magic-numbers */}
{ middleEllipsis(target.description, 20) }
</StepNameButton>
{ !props.flashing &&
<ChangeButton
plain
mb={14}
onClick={props.reselectDrive}
>
Change
</ChangeButton>
}
<DetailsText>
{ props.constraints.hasListDriveImageCompatibilityStatus(targets, props.image) &&
<Txt.span className='glyphicon glyphicon-exclamation-sign'
ml={2}
tooltip={
props.constraints.getListDriveImageCompatibilityStatuses(targets, props.image)[0].message
}
/>
}
{ bytesToClosestUnit(target.size) }
</DetailsText>
</ThemedProvider>
)
}
if (targets.length > 1) {
const targetsTemplate = []
for (const target of targets) {
targetsTemplate.push((
<DetailsText
key={target.device}
tooltip={
`${target.description} ${target.displayName} ${bytesToClosestUnit(target.size)}`
}
px={21}
>
<TargetDisplayText
description={middleEllipsis(target.description, 14)}
size={bytesToClosestUnit(target.size)}
>
</TargetDisplayText>
</DetailsText>
))
}
return (
<ThemedProvider>
<StepNameButton
plain
tooltip={props.tooltip}
>
{targets.length} Targets
</StepNameButton>
{ !props.flashing &&
<ChangeButton
plain
onClick={props.reselectDrive}
mb={14}
>
Change
</ChangeButton>
}
{targetsTemplate}
</ThemedProvider>
)
}
return (
<ThemedProvider>
<StepButton
tabindex={(targets.length > 0) ? -1 : 2 }
disabled={props.disabled}
onClick={props.openDriveSelector}
>
Select target
</StepButton>
</ThemedProvider>
)
}
TargetSelector.propTypes = {
disabled: propTypes.bool,
openDriveSelector: propTypes.func,
selection: propTypes.object,
reselectDrive: propTypes.func,
flashing: propTypes.bool,
constraints: propTypes.object,
show: propTypes.bool,
tooltip: propTypes.string
}
module.exports = TargetSelector

View File

@ -52,7 +52,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button class="button button-primary button-block" <button class="button button-primary"
tabindex="{{ 15 + modal.getDrives().length }}" tabindex="{{ 15 + modal.getDrives().length }}"
ng-class="{ ng-class="{
'button-warning': modal.constraints.hasListDriveImageCompatibilityStatus(modal.state.getSelectedDrives(), modal.state.getImage()) 'button-warning': modal.constraints.hasListDriveImageCompatibilityStatus(modal.state.getSelectedDrives(), modal.state.getImage())

View File

@ -87,7 +87,7 @@ class UnstyledFileListWrap extends React.PureComponent {
render () { render () {
return ( return (
<Flex className={ this.props.className } <Flex className={ this.props.className }
innerRef={ ::this.setScrollElem } ref={ ::this.setScrollElem }
wrap="wrap"> wrap="wrap">
{ this.props.children } { this.props.children }
</Flex> </Flex>

View File

@ -58,7 +58,7 @@ const Flex = styled.div`
overflow: ${ props => props.overflow }; overflow: ${ props => props.overflow };
` `
const Header = Flex.extend` const Header = styled(Flex) `
padding: 10px 15px 0; padding: 10px 15px 0;
border-bottom: 1px solid ${ colors.primary.faded }; border-bottom: 1px solid ${ colors.primary.faded };
@ -67,9 +67,9 @@ const Header = Flex.extend`
} }
` `
const Main = Flex.extend`` const Main = styled(Flex) ``
const Footer = Flex.extend` const Footer = styled(Flex) `
padding: 10px; padding: 10px;
flex: 0 0 auto; flex: 0 0 auto;
border-top: 1px solid ${ colors.primary.faded }; border-top: 1px solid ${ colors.primary.faded };

View File

@ -72,7 +72,7 @@ class Crumb extends React.PureComponent {
return ( return (
<rendition.Button <rendition.Button
onClick={ ::this.navigate } onClick={ ::this.navigate }
plaintext={ true }> plain={ true }>
<rendition.Txt bold={ this.props.bold }> <rendition.Txt bold={ this.props.bold }>
{ middleEllipsis(this.props.dir.name, FILENAME_CHAR_LIMIT_SHORT) } { middleEllipsis(this.props.dir.name, FILENAME_CHAR_LIMIT_SHORT) }
</rendition.Txt> </rendition.Txt>

View File

@ -49,7 +49,7 @@ class RecentFileLink extends React.PureComponent {
return ( return (
<rendition.Button <rendition.Button
onClick={ ::this.select } onClick={ ::this.select }
plaintext={ true }> plain={ true }>
{ middleEllipsis(file.name, FILENAME_CHAR_LIMIT_SHORT) } { middleEllipsis(file.name, FILENAME_CHAR_LIMIT_SHORT) }
</rendition.Button> </rendition.Button>
) )

View File

@ -16,10 +16,12 @@
'use strict' 'use strict'
// eslint-disable-next-line no-unused-vars
const React = require('react') const React = require('react')
const PropTypes = require('prop-types') const PropTypes = require('prop-types')
const styled = require('styled-components').default const styled = require('styled-components').default
const { position, right } = require('styled-system') const { position, right } = require('styled-system')
const { BaseButton, ThemedProvider } = require('../../styled-components')
const Div = styled.div ` const Div = styled.div `
${position} ${position}
@ -28,11 +30,15 @@ const Div = styled.div `
const FlashAnother = (props) => { const FlashAnother = (props) => {
return ( return (
<Div position='absolute' right='152px'> <ThemedProvider>
<button className="button button-primary button-brick" onClick={props.onClick.bind(null, { preserveImage: true })}> <Div position='absolute' right='152px'>
<b>Flash Another</b> <BaseButton
</button> primary
</Div> onClick={props.onClick.bind(null, { preserveImage: true })}>
Flash Another
</BaseButton>
</Div>
</ThemedProvider>
) )
} }

View File

@ -22,8 +22,6 @@ const propTypes = require('prop-types')
const middleEllipsis = require('./../../utils/middle-ellipsis') const middleEllipsis = require('./../../utils/middle-ellipsis')
const { Provider } = require('rendition')
const shared = require('./../../../../shared/units') const shared = require('./../../../../shared/units')
const { const {
StepButton, StepButton,
@ -32,40 +30,41 @@ const {
Footer, Footer,
Underline, Underline,
DetailsText, DetailsText,
ChangeButton ChangeButton,
ThemedProvider
} = require('./../../styled-components') } = require('./../../styled-components')
const SelectImageButton = (props) => { const SelectImageButton = (props) => {
if (props.hasImage) { if (props.hasImage) {
return ( return (
<Provider> <ThemedProvider>
<StepNameButton <StepNameButton
plaintext plain
onClick={props.showSelectedImageDetails} onClick={props.showSelectedImageDetails}
tooltip={props.imageBasename} tooltip={props.imageBasename}
> >
{/* eslint-disable no-magic-numbers */} {/* eslint-disable no-magic-numbers */}
{ middleEllipsis(props.imageName || props.imageBasename, 20) } { middleEllipsis(props.imageName || props.imageBasename, 20) }
</StepNameButton> </StepNameButton>
<DetailsText>
{shared.bytesToClosestUnit(props.imageSize)}
</DetailsText>
{ !props.flashing && { !props.flashing &&
<ChangeButton <ChangeButton
plaintext plain
mb={14}
onClick={props.reselectImage} onClick={props.reselectImage}
> >
Change Change
</ChangeButton> </ChangeButton>
} }
</Provider> <DetailsText>
{shared.bytesToClosestUnit(props.imageSize)}
</DetailsText>
</ThemedProvider>
) )
} }
return ( return (
<Provider> <ThemedProvider>
<StepSelection> <StepSelection>
<StepButton <StepButton
primary
onClick={props.openImageSelector} onClick={props.openImageSelector}
> >
Select image Select image
@ -79,7 +78,7 @@ const SelectImageButton = (props) => {
</Underline> </Underline>
</Footer> </Footer>
</StepSelection> </StepSelection>
</Provider> </ThemedProvider>
) )
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2016 resin.io * Copyright 2018 resin.io
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

View File

@ -83,6 +83,7 @@
.modal-footer { .modal-footer {
flex-grow: 0; flex-grow: 0;
border: 0; border: 0;
text-align: center;
} }
.modal { .modal {

View File

@ -20,7 +20,11 @@ const React = require('react')
const propTypes = require('prop-types') const propTypes = require('prop-types')
const Color = require('color') const Color = require('color')
const { default: styled, keyframes } = require('styled-components') const {
default: styled,
css,
keyframes
} = require('styled-components')
const { ProgressBar, Provider } = require('rendition') const { ProgressBar, Provider } = require('rendition')
@ -49,6 +53,10 @@ const ProgressButtonStripes = keyframes `
} }
` `
const ProgressButtonStripesRule = css `
${ProgressButtonStripes} 1s linear infinite;
`
const FlashProgressBar = styled(ProgressBar) ` const FlashProgressBar = styled(ProgressBar) `
> div { > div {
width: 200px; width: 200px;
@ -83,7 +91,7 @@ const FlashProgressBarValidating = styled(FlashProgressBar) `
background-color: white; background-color: white;
animation: ${ProgressButtonStripes} 1s linear infinite; animation: ${ProgressButtonStripesRule};
overflow: hidden; overflow: hidden;
background-size: 20px 20px; background-size: 20px 20px;
@ -130,7 +138,6 @@ class ProgressButton extends React.Component {
<Provider> <Provider>
<StepSelection> <StepSelection>
<StepButton <StepButton
primary
onClick= { this.props.callback } onClick= { this.props.callback }
disabled= { this.props.disabled } disabled= { this.props.disabled }
> >

View File

@ -28,5 +28,5 @@ const react2angular = require('react2angular').react2angular
const MODULE_NAME = 'Etcher.Components.SVGIcon' const MODULE_NAME = 'Etcher.Components.SVGIcon'
const angularSVGIcon = angular.module(MODULE_NAME, []) const angularSVGIcon = angular.module(MODULE_NAME, [])
angularSVGIcon.component('svgIcon', react2angular(require('./svg-icon/svg-icon.jsx'))) angularSVGIcon.component('svgIcon', react2angular(require('./svg-icon.jsx')))
module.exports = MODULE_NAME module.exports = MODULE_NAME

View File

@ -49,7 +49,6 @@
> b { > b {
color: $palette-theme-dark-soft-foreground; color: $palette-theme-dark-soft-foreground;
font-family: monospace;
} }
} }

View File

@ -44,6 +44,7 @@ const MainPage = angular.module(MODULE_NAME, [
require('../../components/reduced-flashing-infos'), require('../../components/reduced-flashing-infos'),
require('../../components/flash-another'), require('../../components/flash-another'),
require('../../components/flash-results'), require('../../components/flash-results'),
require('../../components/drive-selector'),
require('../../os/open-external/open-external'), require('../../os/open-external/open-external'),
require('../../os/dropzone/dropzone'), require('../../os/dropzone/dropzone'),

View File

@ -46,12 +46,6 @@ svg-icon > img[disabled] {
position: relative; position: relative;
} }
.page-main .button-brick {
width: 200px;
height: 48px;
font-size: 16px;
}
.page-main .button-abort-write { .page-main .button-abort-write {
width: 20px; width: 20px;
height: 20px; height: 20px;
@ -67,6 +61,7 @@ svg-icon > img[disabled] {
width: 200px; width: 200px;
height: 48px; height: 48px;
font-size: 16px; font-size: 16px;
font-weight: 300;
} }
%step-border { %step-border {
@ -125,10 +120,13 @@ svg-icon > img[disabled] {
} }
.page-main .button.step-footer { .page-main .button.step-footer {
font-size: 12px; font-size: 14px;
color: $palette-theme-primary-background; color: $palette-theme-primary-background;
border-radius: 0; border-radius: 0;
padding: 0; padding: 0;
width: 100%;
font-weight: 300;
height: 21px;
} }
.page-main .step-drive.glyphicon { .page-main .step-drive.glyphicon {
@ -167,7 +165,11 @@ svg-icon > img[disabled] {
.page-main .step-size { .page-main .step-size {
color: $palette-theme-dark-disabled-foreground; color: $palette-theme-dark-disabled-foreground;
margin-top: 10px; margin: 0 0 8px 0;
font-size: 14px;
line-height: 1.5;
height: 21px;
width: 100%;
} }
.page-main .step-list { .page-main .step-list {

View File

@ -21,11 +21,13 @@
> >
</image-selector> </image-selector>
</div> </div>
</div> </div>
</div> </div>
<div class="col-xs" ng-controller="DriveSelectionController as drive"> <div class="col-xs" ng-controller="DriveSelectionController as drive">
<div class="box text-center relative"> <div class="box text-center relative">
<div class="step-border-left" ng-disabled="main.shouldDriveStepBeDisabled()" ng-hide="main.state.isFlashing() && main.isWebviewShowing"></div> <div class="step-border-left" ng-disabled="main.shouldDriveStepBeDisabled()" ng-hide="main.state.isFlashing() && main.isWebviewShowing"></div>
<div class="step-border-right" ng-disabled="main.shouldFlashStepBeDisabled()" ng-hide="main.state.isFlashing() && main.isWebviewShowing"></div> <div class="step-border-right" ng-disabled="main.shouldFlashStepBeDisabled()" ng-hide="main.state.isFlashing() && main.isWebviewShowing"></div>
@ -35,58 +37,20 @@
</div> </div>
<div class="space-vertical-large"> <div class="space-vertical-large">
<div ng-if="!main.selection.hasDrive() && drive.shouldShowDrivesButton()"> <target-selector
disabled="main.shouldDriveStepBeDisabled()"
<div> show="!main.selection.hasDrive() && drive.shouldShowDrivesButton()"
<button class="button button-primary button-brick" tooltip="drive.getDriveListLabel()"
tabindex="{{ main.selection.hasDrive() ? -1 : 2 }}" selection="main.selection"
ng-disabled="main.shouldDriveStepBeDisabled()" open-drive-selector="drive.openDriveSelector"
ng-click="drive.openDriveSelector()">Select drive</button> reselect-drive="drive.reselectDrive"
</div> flashing="main.state.isFlashing()"
constraints="main.constraints"
</div> targets="drive.getMemoizedSelectedDrives()"
<div ng-if="main.selection.hasDrive() || !drive.shouldShowDrivesButton()"> >
</target-selector>
<div class="step-selection-text"
ng-class="{
'text-disabled': main.shouldDriveStepBeDisabled()
}">
<span class="step-drive step-name"
ng-class="{
'text-warning': !main.selection.getSelectedDevices().length
}"
uib-tooltip="{{ drive.getDriveListLabel() }}">
<!-- middleEllipsis errors on undefined, therefore fallback to empty string -->
{{ drive.getDrivesTitle() | middleEllipsis:20 }}
</span>
<span class="step-drive step-warning glyphicon glyphicon-exclamation-sign"
uib-tooltip="{{ main.constraints.getListDriveImageCompatibilityStatuses(main.selection.getSelectedDrives(), main.selection.getImage())[0].message }}"
ng-show="main.constraints.hasListDriveImageCompatibilityStatus(main.selection.getSelectedDrives(), main.selection.getImage())"></span>
<button class="button button-link step-footer"
tabindex="{{ main.selection.hasDrive() ? 2 : -1 }}"
ng-hide="main.state.isFlashing() || !drive.shouldShowDrivesButton()"
ng-click="drive.reselectDrive()">Change</button>
<span
ng-if="main.selection.getSelectedDevices().length <= 1"
ng-class="{
'step-fill': !drive.shouldShowDrivesButton()
}"
class="step-drive step-size">
{{ drive.getDrivesSubtitle() }}
</span>
</div>
</div>
<div ng-if="main.selection.getSelectedDevices().length > 1"
ng-class="{
'step-fill': !drive.shouldShowDrivesButton()
}"
class="step-drive step-list">
<div ng-repeat="driveObj in drive.getMemoizedSelectedDrives()"
uib-tooltip="{{ driveObj.description }} ({{ driveObj.displayName }})">
{{ driveObj.description | middleEllipsis:14 }}
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -20,7 +20,7 @@
padding: 10px; padding: 10px;
padding-top: 11px; padding-top: 11px;
border-radius: 2px; border-radius: 24px;
border: 0; border: 0;
letter-spacing: .5px; letter-spacing: .5px;
@ -33,6 +33,11 @@
margin-right: 2px; margin-right: 2px;
} }
&.button-primary{
width: 200px;
height: 48px;
}
&[disabled] { &[disabled] {
@extend .button-no-hover; @extend .button-no-hover;
background-color: $palette-theme-dark-disabled-background; background-color: $palette-theme-dark-disabled-background;

View File

@ -15,7 +15,7 @@
*/ */
$icon-font-path: "../../../node_modules/bootstrap-sass/assets/fonts/bootstrap/"; $icon-font-path: "../../../node_modules/bootstrap-sass/assets/fonts/bootstrap/";
$font-size-base: 13px; $font-size-base: 16px;
$cursor-disabled: initial; $cursor-disabled: initial;
$link-hover-decoration: none; $link-hover-decoration: none;
$btn-min-width: 170px; $btn-min-width: 170px;
@ -47,44 +47,90 @@ $fa-font-path: "../../../node_modules/@fortawesome/fontawesome-free-webfonts/web
@import "../../../../node_modules/@fortawesome/fontawesome-free-webfonts/scss/fa-solid"; @import "../../../../node_modules/@fortawesome/fontawesome-free-webfonts/scss/fa-solid";
@font-face { @font-face {
font-family: Roboto; font-family: 'Nunito';
src: url('../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Thin.woff'); src: url('Nunito-Regular.eot');
font-weight: 100; src: url('./fonts/Nunito-Regular.eot?#iefix') format('embedded-opentype'),
url('./fonts/Nunito-Regular.woff2') format('woff2'),
url('./fonts/Nunito-Regular.woff') format('woff'),
url('./fonts/Nunito-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal; font-style: normal;
font-display: block;
} }
@font-face { @font-face {
font-family: Roboto; font-family: 'Nunito';
src: url('../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Light.woff'); src: url('Nunito-Bold.eot');
src: url('./fonts/Nunito-Bold.eot?#iefix') format('embedded-opentype'),
url('./fonts/Nunito-Bold.woff2') format('woff2'),
url('./fonts/Nunito-Bold.woff') format('woff'),
url('./fonts/Nunito-Bold.ttf') format('truetype');
font-weight: bold;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'Nunito';
src: url('Nunito-Light.eot');
src: url('./fonts/Nunito-Light.eot?#iefix') format('embedded-opentype'),
url('./fonts/Nunito-Light.woff2') format('woff2'),
url('./fonts/Nunito-Light.woff') format('woff'),
url('./fonts/Nunito-Light.ttf') format('truetype');
font-weight: 300; font-weight: 300;
font-style: normal; font-style: normal;
font-display: block;
} }
@font-face { @font-face {
font-family: Roboto; font-family: 'CircularStd';
src: url('../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Regular.woff'); src: url('./fonts/CircularStd-Bold.eot');
font-weight: 400; src: url('./fonts/CircularStd-Bold.eot?#iefix') format('embedded-opentype'),
url('./fonts/CircularStd-Bold.woff2') format('woff2'),
url('./fonts/CircularStd-Bold.woff') format('woff'),
url('./fonts/CircularStd-Bold.ttf') format('truetype');
font-weight: bold;
font-style: normal; font-style: normal;
font-display: block;
} }
@font-face { @font-face {
font-family: Roboto; font-family: 'CircularStd';
src: url('../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Medium.woff'); src: url('./fonts/CircularStd-Book.eot');
src: url('./fonts/CircularStd-Book.eot?#iefix') format('embedded-opentype'),
url('./fonts/CircularStd-Book.woff2') format('woff2'),
url('./fonts/CircularStd-Book.woff') format('woff'),
url('./fonts/CircularStd-Book.ttf') format('truetype');
font-weight: 500; font-weight: 500;
font-style: normal; font-style: normal;
font-display: block;
} }
@font-face { @font-face {
font-family: Roboto; font-family: 'CircularStd';
src: url('../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Bold.woff'); src: url('./fonts/CircularStd-Medium.eot');
font-weight: 700; src: url('./fonts/CircularStd-Medium.eot?#iefix') format('embedded-opentype'),
url('./fonts/CircularStd-Medium.woff2') format('woff2'),
url('./fonts/CircularStd-Medium.woff') format('woff'),
url('./fonts/CircularStd-Medium.ttf') format('truetype');
font-weight: 400;
font-style: normal; font-style: normal;
font-display: block;
}
.circular {
font-family: 'CircularStd';
font-weight: 500;
}
.nunito {
font-family: 'Nunito';
} }
body { body {
letter-spacing: 0.5px; letter-spacing: 0.5px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
font-family: 'CircularStd';
> header { > header {
flex: 0 0 auto; flex: 0 0 auto;
@ -100,12 +146,6 @@ body {
} }
} }
body,
.tooltip,
.popover {
font-family: Roboto;
}
.section-footer-main { .section-footer-main {
display: flex; display: flex;
align-items: center; align-items: center;
@ -173,7 +213,6 @@ body,
.section-header { .section-header {
text-align: right; text-align: right;
padding: 5px 8px; padding: 5px 8px;
font-size: 15px;
> .button { > .button {
padding-left: 3px; padding-left: 3px;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2016 resin.io * Copyright 2018 resin.io
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,44 +16,79 @@
'use strict' 'use strict'
const styled = require('styled-components').default // eslint-disable-next-line no-unused-vars
const { colors } = require('./theme') const React = require('react')
const { default: styled } = require('styled-components')
const { const {
Button, Txt, Flex Button,
Txt,
Flex,
Provider
} = require('rendition') } = require('rendition')
const {
space
} = require('styled-system')
const { colors } = require('./theme')
exports.StepButton = styled(Button) ` const theme = {
width: 200px; button: {
height: 48px; border: {
font-size: 16px; width: '0',
margin: auto; radius: '24px'
overflow: hidden; },
disabled: {
opacity: 1
},
extend: () => `
width: 200px;
height: 48px;
font-size: 16px;
&:disabled { &:disabled {
background-color: ${colors.dark.disabled.background}; background-color: ${colors.dark.disabled.background};
color: ${colors.dark.disabled.foreground}; color: ${colors.dark.disabled.foreground};
opacity: 1; opacity: 1;
&:hover {
background-color: ${colors.dark.disabled.background}; &:hover {
color: ${colors.dark.disabled.foreground}; background-color: ${colors.dark.disabled.background};
} color: ${colors.dark.disabled.foreground};
}
}
`
} }
}
exports.ThemedProvider = (props) => (
<Provider theme={theme} {...props}>
</Provider>
)
const BaseButton = styled(Button) `
height: 48px;
` `
exports.ChangeButton = styled(Button) ` exports.BaseButton = BaseButton
exports.StepButton = (props) => (
<BaseButton primary {...props}>
</BaseButton>
)
exports.ChangeButton = styled(BaseButton) `
color: ${colors.primary.background}; color: ${colors.primary.background};
padding: 0; padding: 0;
width: 100%; width: 100%;
height: auto;
${space}
&:hover, &:focus, &:active { &:hover, &:focus, &:active {
color: ${colors.primary.background}; color: ${colors.primary.background};
} }
` `
exports.StepNameButton = styled(Button) ` exports.StepNameButton = styled(BaseButton) `
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 39px;
width: 100%; width: 100%;
font-weight: bold; font-weight: bold;
color: ${colors.dark.foreground}; color: ${colors.dark.foreground};
@ -77,5 +112,5 @@ exports.Underline = styled(Txt.span) `
` `
exports.DetailsText = styled(Txt.p) ` exports.DetailsText = styled(Txt.p) `
color: ${colors.dark.disabled.foreground}; color: ${colors.dark.disabled.foreground};
margin-bottom: 10px; margin-bottom: 0;
` `

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2016 resin.io * Copyright 2018 resin.io
* *
* Licensed under the Apache License, Version 2.0 (the "License"), * Licensed under the Apache License, Version 2.0 (the "License"),
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1074,7 +1074,7 @@ html {
body { body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px; font-size: 16px;
line-height: 1.42857; line-height: 1.42857;
color: #333333; color: #333333;
background-color: #fff; } background-color: #fff; }
@ -1128,8 +1128,8 @@ img {
border-radius: 50%; } border-radius: 50%; }
hr { hr {
margin-top: 18px; margin-top: 22px;
margin-bottom: 18px; margin-bottom: 22px;
border: 0; border: 0;
border-top: 1px solid #eeeeee; } border-top: 1px solid #eeeeee; }
@ -1181,8 +1181,8 @@ h1, h2, h3, h4, h5, h6,
h1, .h1, h1, .h1,
h2, .h2, h2, .h2,
h3, .h3 { h3, .h3 {
margin-top: 18px; margin-top: 22px;
margin-bottom: 9px; } margin-bottom: 11px; }
h1 small, h1 small,
h1 .small, .h1 small, h1 .small, .h1 small,
.h1 .small, .h1 .small,
@ -1197,8 +1197,8 @@ h3, .h3 {
h4, .h4, h4, .h4,
h5, .h5, h5, .h5,
h6, .h6 { h6, .h6 {
margin-top: 9px; margin-top: 11px;
margin-bottom: 9px; } margin-bottom: 11px; }
h4 small, h4 small,
h4 .small, .h4 small, h4 .small, .h4 small,
.h4 .small, .h4 .small,
@ -1211,38 +1211,38 @@ h6, .h6 {
font-size: 75%; } font-size: 75%; }
h1, .h1 { h1, .h1 {
font-size: 33px; } font-size: 41px; }
h2, .h2 { h2, .h2 {
font-size: 27px; } font-size: 34px; }
h3, .h3 { h3, .h3 {
font-size: 23px; } font-size: 28px; }
h4, .h4 { h4, .h4 {
font-size: 17px; } font-size: 20px; }
h5, .h5 { h5, .h5 {
font-size: 13px; } font-size: 16px; }
h6, .h6 { h6, .h6 {
font-size: 12px; } font-size: 14px; }
p { p {
margin: 0 0 9px; } margin: 0 0 11px; }
.lead { .lead {
margin-bottom: 18px; margin-bottom: 22px;
font-size: 14px; font-size: 18px;
font-weight: 300; font-weight: 300;
line-height: 1.4; } line-height: 1.4; }
@media (min-width: 768px) { @media (min-width: 768px) {
.lead { .lead {
font-size: 19.5px; } } font-size: 24px; } }
small, small,
.small { .small {
font-size: 92%; } font-size: 87%; }
mark, mark,
.mark { .mark {
@ -1350,14 +1350,14 @@ a.bg-danger:focus {
background-color: #e4b9b9; } background-color: #e4b9b9; }
.page-header { .page-header {
padding-bottom: 8px; padding-bottom: 10px;
margin: 36px 0 18px; margin: 44px 0 22px;
border-bottom: 1px solid #eeeeee; } border-bottom: 1px solid #eeeeee; }
ul, ul,
ol { ol {
margin-top: 0; margin-top: 0;
margin-bottom: 9px; } margin-bottom: 11px; }
ul ul, ul ul,
ul ol, ul ol,
ol ul, ol ul,
@ -1379,7 +1379,7 @@ ol {
dl { dl {
margin-top: 0; margin-top: 0;
margin-bottom: 18px; } margin-bottom: 22px; }
dt, dt,
dd { dd {
@ -1418,9 +1418,9 @@ abbr[data-original-title] {
font-size: 90%; } font-size: 90%; }
blockquote { blockquote {
padding: 9px 18px; padding: 11px 22px;
margin: 0 0 18px; margin: 0 0 22px;
font-size: 16.25px; font-size: 20px;
border-left: 5px solid #eeeeee; } border-left: 5px solid #eeeeee; }
blockquote p:last-child, blockquote p:last-child,
blockquote ul:last-child, blockquote ul:last-child,
@ -1461,7 +1461,7 @@ blockquote.pull-right {
content: "\00A0 \2014"; } content: "\00A0 \2014"; }
address { address {
margin-bottom: 18px; margin-bottom: 22px;
font-style: normal; font-style: normal;
line-height: 1.42857; } line-height: 1.42857; }
@ -1493,9 +1493,9 @@ kbd {
pre { pre {
display: block; display: block;
padding: 8.5px; padding: 10.5px;
margin: 0 0 9px; margin: 0 0 11px;
font-size: 12px; font-size: 15px;
line-height: 1.42857; line-height: 1.42857;
color: #333333; color: #333333;
word-break: break-all; word-break: break-all;
@ -2066,7 +2066,7 @@ th {
.table { .table {
width: 100%; width: 100%;
max-width: 100%; max-width: 100%;
margin-bottom: 18px; } margin-bottom: 22px; }
.table > thead > tr > th, .table > thead > tr > th,
.table > thead > tr > td, .table > thead > tr > td,
.table > tbody > tr > th, .table > tbody > tr > th,
@ -2230,7 +2230,7 @@ th {
@media screen and (max-width: 767px) { @media screen and (max-width: 767px) {
.table-responsive { .table-responsive {
width: 100%; width: 100%;
margin-bottom: 13.5px; margin-bottom: 16.5px;
overflow-y: hidden; overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar; -ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd; } border: 1px solid #ddd; }
@ -2275,8 +2275,8 @@ legend {
display: block; display: block;
width: 100%; width: 100%;
padding: 0; padding: 0;
margin-bottom: 18px; margin-bottom: 22px;
font-size: 19.5px; font-size: 24px;
line-height: inherit; line-height: inherit;
color: #333333; color: #333333;
border: 0; border: 0;
@ -2328,16 +2328,16 @@ input[type="checkbox"]:focus {
output { output {
display: block; display: block;
padding-top: 7px; padding-top: 7px;
font-size: 13px; font-size: 16px;
line-height: 1.42857; line-height: 1.42857;
color: #555555; } color: #555555; }
.form-control { .form-control {
display: block; display: block;
width: 100%; width: 100%;
height: 32px; height: 36px;
padding: 6px 12px; padding: 6px 12px;
font-size: 13px; font-size: 16px;
line-height: 1.42857; line-height: 1.42857;
color: #555555; color: #555555;
background-color: #fff; background-color: #fff;
@ -2380,7 +2380,7 @@ textarea.form-control {
input[type="time"].form-control, input[type="time"].form-control,
input[type="datetime-local"].form-control, input[type="datetime-local"].form-control,
input[type="month"].form-control { input[type="month"].form-control {
line-height: 32px; } line-height: 36px; }
input[type="date"].input-sm, .input-group-sm > input.form-control[type="date"], input[type="date"].input-sm, .input-group-sm > input.form-control[type="date"],
.input-group-sm > input.input-group-addon[type="date"], .input-group-sm > input.input-group-addon[type="date"],
.input-group-sm > .input-group-btn > input.btn[type="date"], .input-group-sm > .input-group-btn > input.button[type="date"], .input-group-sm > .input-group-btn > input.btn[type="date"], .input-group-sm > .input-group-btn > input.button[type="date"],
@ -2406,7 +2406,7 @@ textarea.form-control {
.input-group-sm > .input-group-btn > input.button[type="month"], .input-group-sm > .input-group-btn > input.button[type="month"],
.input-group-sm .input-group-sm
input[type="month"] { input[type="month"] {
line-height: 30px; } line-height: 33px; }
input[type="date"].input-lg, .input-group-lg > input.form-control[type="date"], input[type="date"].input-lg, .input-group-lg > input.form-control[type="date"],
.input-group-lg > input.input-group-addon[type="date"], .input-group-lg > input.input-group-addon[type="date"],
.input-group-lg > .input-group-btn > input.btn[type="date"], .input-group-lg > .input-group-btn > input.button[type="date"], .input-group-lg > .input-group-btn > input.btn[type="date"], .input-group-lg > .input-group-btn > input.button[type="date"],
@ -2432,7 +2432,7 @@ textarea.form-control {
.input-group-lg > .input-group-btn > input.button[type="month"], .input-group-lg > .input-group-btn > input.button[type="month"],
.input-group-lg .input-group-lg
input[type="month"] { input[type="month"] {
line-height: 45px; } } line-height: 49px; } }
.form-group { .form-group {
margin-bottom: 15px; } margin-bottom: 15px; }
@ -2451,7 +2451,7 @@ textarea.form-control {
cursor: initial; } cursor: initial; }
.radio label, .radio label,
.checkbox label { .checkbox label {
min-height: 18px; min-height: 22px;
padding-left: 20px; padding-left: 20px;
margin-bottom: 0; margin-bottom: 0;
font-weight: 400; font-weight: 400;
@ -2491,7 +2491,7 @@ textarea.form-control {
margin-left: 10px; } margin-left: 10px; }
.form-control-static { .form-control-static {
min-height: 31px; min-height: 38px;
padding-top: 7px; padding-top: 7px;
padding-bottom: 7px; padding-bottom: 7px;
margin-bottom: 0; } margin-bottom: 0; }
@ -2506,17 +2506,17 @@ textarea.form-control {
.input-sm, .input-group-sm > .form-control, .input-sm, .input-group-sm > .form-control,
.input-group-sm > .input-group-addon, .input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn, .input-group-sm > .input-group-btn > .button { .input-group-sm > .input-group-btn > .btn, .input-group-sm > .input-group-btn > .button {
height: 30px; height: 33px;
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
border-radius: 3px; } border-radius: 3px; }
select.input-sm, .input-group-sm > select.form-control, select.input-sm, .input-group-sm > select.form-control,
.input-group-sm > select.input-group-addon, .input-group-sm > select.input-group-addon,
.input-group-sm > .input-group-btn > select.btn, .input-group-sm > .input-group-btn > select.button { .input-group-sm > .input-group-btn > select.btn, .input-group-sm > .input-group-btn > select.button {
height: 30px; height: 33px;
line-height: 30px; } line-height: 33px; }
textarea.input-sm, .input-group-sm > textarea.form-control, textarea.input-sm, .input-group-sm > textarea.form-control,
.input-group-sm > textarea.input-group-addon, .input-group-sm > textarea.input-group-addon,
@ -2529,41 +2529,41 @@ select[multiple].input-sm,
height: auto; } height: auto; }
.form-group-sm .form-control { .form-group-sm .form-control {
height: 30px; height: 33px;
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
border-radius: 3px; } border-radius: 3px; }
.form-group-sm select.form-control { .form-group-sm select.form-control {
height: 30px; height: 33px;
line-height: 30px; } line-height: 33px; }
.form-group-sm textarea.form-control, .form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control { .form-group-sm select[multiple].form-control {
height: auto; } height: auto; }
.form-group-sm .form-control-static { .form-group-sm .form-control-static {
height: 30px; height: 33px;
min-height: 30px; min-height: 36px;
padding: 6px 10px; padding: 6px 10px;
font-size: 12px; font-size: 14px;
line-height: 1.5; } line-height: 1.5; }
.input-lg, .input-group-lg > .form-control, .input-lg, .input-group-lg > .form-control,
.input-group-lg > .input-group-addon, .input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn, .input-group-lg > .input-group-btn > .button { .input-group-lg > .input-group-btn > .btn, .input-group-lg > .input-group-btn > .button {
height: 45px; height: 49px;
padding: 10px 16px; padding: 10px 16px;
font-size: 17px; font-size: 20px;
line-height: 1.33333; line-height: 1.33333;
border-radius: 6px; } border-radius: 6px; }
select.input-lg, .input-group-lg > select.form-control, select.input-lg, .input-group-lg > select.form-control,
.input-group-lg > select.input-group-addon, .input-group-lg > select.input-group-addon,
.input-group-lg > .input-group-btn > select.btn, .input-group-lg > .input-group-btn > select.button { .input-group-lg > .input-group-btn > select.btn, .input-group-lg > .input-group-btn > select.button {
height: 45px; height: 49px;
line-height: 45px; } line-height: 49px; }
textarea.input-lg, .input-group-lg > textarea.form-control, textarea.input-lg, .input-group-lg > textarea.form-control,
.input-group-lg > textarea.input-group-addon, .input-group-lg > textarea.input-group-addon,
@ -2576,31 +2576,31 @@ select[multiple].input-lg,
height: auto; } height: auto; }
.form-group-lg .form-control { .form-group-lg .form-control {
height: 45px; height: 49px;
padding: 10px 16px; padding: 10px 16px;
font-size: 17px; font-size: 20px;
line-height: 1.33333; line-height: 1.33333;
border-radius: 6px; } border-radius: 6px; }
.form-group-lg select.form-control { .form-group-lg select.form-control {
height: 45px; height: 49px;
line-height: 45px; } line-height: 49px; }
.form-group-lg textarea.form-control, .form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control { .form-group-lg select[multiple].form-control {
height: auto; } height: auto; }
.form-group-lg .form-control-static { .form-group-lg .form-control-static {
height: 45px; height: 49px;
min-height: 35px; min-height: 42px;
padding: 11px 16px; padding: 11px 16px;
font-size: 17px; font-size: 20px;
line-height: 1.33333; } line-height: 1.33333; }
.has-feedback { .has-feedback {
position: relative; } position: relative; }
.has-feedback .form-control { .has-feedback .form-control {
padding-right: 40px; } padding-right: 45px; }
.form-control-feedback { .form-control-feedback {
position: absolute; position: absolute;
@ -2608,25 +2608,25 @@ select[multiple].input-lg,
right: 0; right: 0;
z-index: 2; z-index: 2;
display: block; display: block;
width: 32px; width: 36px;
height: 32px; height: 36px;
line-height: 32px; line-height: 36px;
text-align: center; text-align: center;
pointer-events: none; } pointer-events: none; }
.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback, .input-group-lg > .input-group-addon + .form-control-feedback, .input-group-lg > .input-group-btn > .btn + .form-control-feedback, .input-group-lg > .input-group-btn > .button + .form-control-feedback, .input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback, .input-group-lg > .input-group-addon + .form-control-feedback, .input-group-lg > .input-group-btn > .btn + .form-control-feedback, .input-group-lg > .input-group-btn > .button + .form-control-feedback,
.input-group-lg + .form-control-feedback, .input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback { .form-group-lg .form-control + .form-control-feedback {
width: 45px; width: 49px;
height: 45px; height: 49px;
line-height: 45px; } line-height: 49px; }
.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback, .input-group-sm > .input-group-addon + .form-control-feedback, .input-group-sm > .input-group-btn > .btn + .form-control-feedback, .input-group-sm > .input-group-btn > .button + .form-control-feedback, .input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback, .input-group-sm > .input-group-addon + .form-control-feedback, .input-group-sm > .input-group-btn > .btn + .form-control-feedback, .input-group-sm > .input-group-btn > .button + .form-control-feedback,
.input-group-sm + .form-control-feedback, .input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback { .form-group-sm .form-control + .form-control-feedback {
width: 30px; width: 33px;
height: 30px; height: 33px;
line-height: 30px; } line-height: 33px; }
.has-success .help-block, .has-success .help-block,
.has-success .control-label, .has-success .control-label,
@ -2716,7 +2716,7 @@ select[multiple].input-lg,
color: #a94442; } color: #a94442; }
.has-feedback label ~ .form-control-feedback { .has-feedback label ~ .form-control-feedback {
top: 23px; } top: 27px; }
.has-feedback label.sr-only ~ .form-control-feedback { .has-feedback label.sr-only ~ .form-control-feedback {
top: 0; } top: 0; }
@ -2776,7 +2776,7 @@ select[multiple].input-lg,
.form-horizontal .radio, .form-horizontal .radio,
.form-horizontal .checkbox { .form-horizontal .checkbox {
min-height: 25px; } min-height: 29px; }
.form-horizontal .form-group { .form-horizontal .form-group {
margin-right: -15px; margin-right: -15px;
@ -2799,12 +2799,12 @@ select[multiple].input-lg,
@media (min-width: 768px) { @media (min-width: 768px) {
.form-horizontal .form-group-lg .control-label { .form-horizontal .form-group-lg .control-label {
padding-top: 11px; padding-top: 11px;
font-size: 17px; } } font-size: 20px; } }
@media (min-width: 768px) { @media (min-width: 768px) {
.form-horizontal .form-group-sm .control-label { .form-horizontal .form-group-sm .control-label {
padding-top: 6px; padding-top: 6px;
font-size: 12px; } } font-size: 14px; } }
.btn, .button { .btn, .button {
display: inline-block; display: inline-block;
@ -2818,7 +2818,7 @@ select[multiple].input-lg,
background-image: none; background-image: none;
border: 1px solid transparent; border: 1px solid transparent;
padding: 6px 12px; padding: 6px 12px;
font-size: 13px; font-size: 16px;
line-height: 1.42857; line-height: 1.42857;
border-radius: 4px; border-radius: 4px;
-webkit-user-select: none; -webkit-user-select: none;
@ -3086,19 +3086,19 @@ fieldset[disabled] a.button {
.btn-lg, .btn-group-lg > .btn, .btn-group-lg > .button { .btn-lg, .btn-group-lg > .btn, .btn-group-lg > .button {
padding: 10px 16px; padding: 10px 16px;
font-size: 17px; font-size: 20px;
line-height: 1.33333; line-height: 1.33333;
border-radius: 6px; } border-radius: 6px; }
.btn-sm, .btn-group-sm > .btn, .btn-group-sm > .button { .btn-sm, .btn-group-sm > .btn, .btn-group-sm > .button {
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
border-radius: 3px; } border-radius: 3px; }
.btn-xs, .btn-group-xs > .btn, .btn-group-xs > .button { .btn-xs, .btn-group-xs > .btn, .btn-group-xs > .button {
padding: 1px 5px; padding: 1px 5px;
font-size: 12px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
border-radius: 3px; } border-radius: 3px; }
@ -3172,7 +3172,7 @@ tbody.collapse.in {
min-width: 160px; min-width: 160px;
padding: 5px 0; padding: 5px 0;
margin: 2px 0 0; margin: 2px 0 0;
font-size: 13px; font-size: 16px;
text-align: left; text-align: left;
list-style: none; list-style: none;
background-color: #fff; background-color: #fff;
@ -3187,7 +3187,7 @@ tbody.collapse.in {
left: auto; } left: auto; }
.dropdown-menu .divider { .dropdown-menu .divider {
height: 1px; height: 1px;
margin: 8px 0; margin: 10px 0;
overflow: hidden; overflow: hidden;
background-color: #e5e5e5; } background-color: #e5e5e5; }
.dropdown-menu > li > a { .dropdown-menu > li > a {
@ -3236,7 +3236,7 @@ tbody.collapse.in {
.dropdown-header { .dropdown-header {
display: block; display: block;
padding: 3px 20px; padding: 3px 20px;
font-size: 12px; font-size: 14px;
line-height: 1.42857; line-height: 1.42857;
color: #777777; color: #777777;
white-space: nowrap; } white-space: nowrap; }
@ -3496,7 +3496,7 @@ tbody.collapse.in {
.input-group-addon { .input-group-addon {
padding: 6px 12px; padding: 6px 12px;
font-size: 13px; font-size: 16px;
font-weight: 400; font-weight: 400;
line-height: 1; line-height: 1;
color: #555555; color: #555555;
@ -3508,13 +3508,13 @@ tbody.collapse.in {
.input-group-sm > .input-group-addon, .input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .input-group-addon.btn, .input-group-sm > .input-group-btn > .input-group-addon.button { .input-group-sm > .input-group-btn > .input-group-addon.btn, .input-group-sm > .input-group-btn > .input-group-addon.button {
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 14px;
border-radius: 3px; } border-radius: 3px; }
.input-group-addon.input-lg, .input-group-addon.input-lg,
.input-group-lg > .input-group-addon, .input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .input-group-addon.btn, .input-group-lg > .input-group-btn > .input-group-addon.button { .input-group-lg > .input-group-btn > .input-group-addon.btn, .input-group-lg > .input-group-btn > .input-group-addon.button {
padding: 10px 16px; padding: 10px 16px;
font-size: 17px; font-size: 20px;
border-radius: 6px; } border-radius: 6px; }
.input-group-addon input[type="radio"], .input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] { .input-group-addon input[type="checkbox"] {
@ -3607,7 +3607,7 @@ tbody.collapse.in {
border-color: #ddd; } border-color: #ddd; }
.nav .nav-divider { .nav .nav-divider {
height: 1px; height: 1px;
margin: 8px 0; margin: 10px 0;
overflow: hidden; overflow: hidden;
background-color: #e5e5e5; } background-color: #e5e5e5; }
.nav > li > a > img { .nav > li > a > img {
@ -3701,7 +3701,7 @@ tbody.collapse.in {
.navbar { .navbar {
position: relative; position: relative;
min-height: 50px; min-height: 50px;
margin-bottom: 18px; margin-bottom: 22px;
border: 1px solid transparent; } border: 1px solid transparent; }
.navbar:before, .navbar:after { .navbar:before, .navbar:after {
display: table; display: table;
@ -3806,9 +3806,9 @@ tbody.collapse.in {
.navbar-brand { .navbar-brand {
float: left; float: left;
height: 50px; height: 50px;
padding: 16px 15px; padding: 14px 15px;
font-size: 17px; font-size: 20px;
line-height: 18px; } line-height: 22px; }
.navbar-brand:hover, .navbar-brand:focus { .navbar-brand:hover, .navbar-brand:focus {
text-decoration: none; } text-decoration: none; }
.navbar-brand > img { .navbar-brand > img {
@ -3843,11 +3843,11 @@ tbody.collapse.in {
display: none; } } display: none; } }
.navbar-nav { .navbar-nav {
margin: 8px -15px; } margin: 7px -15px; }
.navbar-nav > li > a { .navbar-nav > li > a {
padding-top: 10px; padding-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
line-height: 18px; } line-height: 22px; }
@media (max-width: 767px) { @media (max-width: 767px) {
.navbar-nav .open .dropdown-menu { .navbar-nav .open .dropdown-menu {
position: static; position: static;
@ -3861,7 +3861,7 @@ tbody.collapse.in {
.navbar-nav .open .dropdown-menu .dropdown-header { .navbar-nav .open .dropdown-menu .dropdown-header {
padding: 5px 15px 5px 25px; } padding: 5px 15px 5px 25px; }
.navbar-nav .open .dropdown-menu > li > a { .navbar-nav .open .dropdown-menu > li > a {
line-height: 18px; } line-height: 22px; }
.navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {
background-image: none; } } background-image: none; } }
@media (min-width: 768px) { @media (min-width: 768px) {
@ -3871,8 +3871,8 @@ tbody.collapse.in {
.navbar-nav > li { .navbar-nav > li {
float: left; } float: left; }
.navbar-nav > li > a { .navbar-nav > li > a {
padding-top: 16px; padding-top: 14px;
padding-bottom: 16px; } } padding-bottom: 14px; } }
.navbar-form { .navbar-form {
padding: 10px 15px; padding: 10px 15px;
@ -3882,8 +3882,8 @@ tbody.collapse.in {
border-bottom: 1px solid transparent; border-bottom: 1px solid transparent;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
margin-top: 9px; margin-top: 7px;
margin-bottom: 9px; } margin-bottom: 7px; }
@media (min-width: 768px) { @media (min-width: 768px) {
.navbar-form .form-group { .navbar-form .form-group {
display: inline-block; display: inline-block;
@ -3951,18 +3951,18 @@ tbody.collapse.in {
border-bottom-left-radius: 0; } border-bottom-left-radius: 0; }
.navbar-btn { .navbar-btn {
margin-top: 9px; margin-top: 7px;
margin-bottom: 9px; } margin-bottom: 7px; }
.navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn, .btn-group-sm > .navbar-btn.button { .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn, .btn-group-sm > .navbar-btn.button {
margin-top: 10px; margin-top: 8.5px;
margin-bottom: 10px; } margin-bottom: 8.5px; }
.navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn, .btn-group-xs > .navbar-btn.button { .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn, .btn-group-xs > .navbar-btn.button {
margin-top: 14px; margin-top: 14px;
margin-bottom: 14px; } margin-bottom: 14px; }
.navbar-text { .navbar-text {
margin-top: 16px; margin-top: 14px;
margin-bottom: 16px; } margin-bottom: 14px; }
@media (min-width: 768px) { @media (min-width: 768px) {
.navbar-text { .navbar-text {
float: left; float: left;
@ -4104,7 +4104,7 @@ tbody.collapse.in {
.breadcrumb { .breadcrumb {
padding: 8px 15px; padding: 8px 15px;
margin-bottom: 18px; margin-bottom: 22px;
list-style: none; list-style: none;
background-color: #f5f5f5; background-color: #f5f5f5;
border-radius: 4px; } border-radius: 4px; }
@ -4120,7 +4120,7 @@ tbody.collapse.in {
.pagination { .pagination {
display: inline-block; display: inline-block;
padding-left: 0; padding-left: 0;
margin: 18px 0; margin: 22px 0;
border-radius: 4px; } border-radius: 4px; }
.pagination > li { .pagination > li {
display: inline; } display: inline; }
@ -4174,7 +4174,7 @@ tbody.collapse.in {
.pagination-lg > li > a, .pagination-lg > li > a,
.pagination-lg > li > span { .pagination-lg > li > span {
padding: 10px 16px; padding: 10px 16px;
font-size: 17px; font-size: 20px;
line-height: 1.33333; } line-height: 1.33333; }
.pagination-lg > li:first-child > a, .pagination-lg > li:first-child > a,
@ -4190,7 +4190,7 @@ tbody.collapse.in {
.pagination-sm > li > a, .pagination-sm > li > a,
.pagination-sm > li > span { .pagination-sm > li > span {
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 14px;
line-height: 1.5; } line-height: 1.5; }
.pagination-sm > li:first-child > a, .pagination-sm > li:first-child > a,
@ -4205,7 +4205,7 @@ tbody.collapse.in {
.pager { .pager {
padding-left: 0; padding-left: 0;
margin: 18px 0; margin: 22px 0;
text-align: center; text-align: center;
list-style: none; } list-style: none; }
.pager:before, .pager:after { .pager:before, .pager:after {
@ -4296,7 +4296,7 @@ a.label:hover, a.label:focus {
display: inline-block; display: inline-block;
min-width: 10px; min-width: 10px;
padding: 3px 7px; padding: 3px 7px;
font-size: 12px; font-size: 14px;
font-weight: bold; font-weight: bold;
line-height: 1; line-height: 1;
color: #fff; color: #fff;
@ -4342,7 +4342,7 @@ a.badge:hover, a.badge:focus {
color: inherit; } color: inherit; }
.jumbotron p { .jumbotron p {
margin-bottom: 15px; margin-bottom: 15px;
font-size: 20px; font-size: 24px;
font-weight: 200; } font-weight: 200; }
.jumbotron > hr { .jumbotron > hr {
border-top-color: #d5d5d5; } border-top-color: #d5d5d5; }
@ -4363,12 +4363,12 @@ a.badge:hover, a.badge:focus {
padding-left: 60px; } padding-left: 60px; }
.jumbotron h1, .jumbotron h1,
.jumbotron .h1 { .jumbotron .h1 {
font-size: 59px; } } font-size: 72px; } }
.thumbnail { .thumbnail {
display: block; display: block;
padding: 4px; padding: 4px;
margin-bottom: 18px; margin-bottom: 22px;
line-height: 1.42857; line-height: 1.42857;
background-color: #fff; background-color: #fff;
border: 1px solid #ddd; border: 1px solid #ddd;
@ -4394,7 +4394,7 @@ a.thumbnail.active {
.alert { .alert {
padding: 15px; padding: 15px;
margin-bottom: 18px; margin-bottom: 22px;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 4px; } border-radius: 4px; }
.alert h4 { .alert h4 {
@ -4467,8 +4467,8 @@ a.thumbnail.active {
background-position: 0 0; } } background-position: 0 0; } }
.progress { .progress {
height: 18px; height: 22px;
margin-bottom: 18px; margin-bottom: 22px;
overflow: hidden; overflow: hidden;
background-color: #f5f5f5; background-color: #f5f5f5;
border-radius: 4px; border-radius: 4px;
@ -4479,8 +4479,8 @@ a.thumbnail.active {
float: left; float: left;
width: 0%; width: 0%;
height: 100%; height: 100%;
font-size: 12px; font-size: 14px;
line-height: 18px; line-height: 22px;
color: #fff; color: #fff;
text-align: center; text-align: center;
background-color: #337ab7; background-color: #337ab7;
@ -4737,7 +4737,7 @@ button.list-group-item-danger {
line-height: 1.3; } line-height: 1.3; }
.panel { .panel {
margin-bottom: 18px; margin-bottom: 22px;
background-color: #fff; background-color: #fff;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 4px; border-radius: 4px;
@ -4763,7 +4763,7 @@ button.list-group-item-danger {
.panel-title { .panel-title {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-size: 15px; font-size: 18px;
color: inherit; } color: inherit; }
.panel-title > a, .panel-title > a,
.panel-title > small, .panel-title > small,
@ -4938,7 +4938,7 @@ button.list-group-item-danger {
border: 0; } border: 0; }
.panel-group { .panel-group {
margin-bottom: 18px; } margin-bottom: 22px; }
.panel-group .panel { .panel-group .panel {
margin-bottom: 0; margin-bottom: 0;
border-radius: 4px; } border-radius: 4px; }
@ -5086,7 +5086,7 @@ button.list-group-item-danger {
.close { .close {
float: right; float: right;
font-size: 19.5px; font-size: 24px;
font-weight: bold; font-weight: bold;
line-height: 1; line-height: 1;
color: #000; color: #000;
@ -5249,7 +5249,7 @@ button.close {
word-spacing: normal; word-spacing: normal;
word-wrap: normal; word-wrap: normal;
white-space: normal; white-space: normal;
font-size: 12px; font-size: 14px;
filter: alpha(opacity=0); filter: alpha(opacity=0);
opacity: 0; } opacity: 0; }
.tooltip.in { .tooltip.in {
@ -5354,7 +5354,7 @@ button.close {
word-spacing: normal; word-spacing: normal;
word-wrap: normal; word-wrap: normal;
white-space: normal; white-space: normal;
font-size: 13px; font-size: 16px;
background-color: #fff; background-color: #fff;
background-clip: padding-box; background-clip: padding-box;
border: 1px solid #ccc; border: 1px solid #ccc;
@ -5438,7 +5438,7 @@ button.close {
.popover-title { .popover-title {
padding: 8px 14px; padding: 8px 14px;
margin: 0; margin: 0;
font-size: 13px; font-size: 16px;
background-color: #f7f7f7; background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb; border-bottom: 1px solid #ebebeb;
border-radius: 5px 5px 0 0; } border-radius: 5px 5px 0 0; }
@ -6029,7 +6029,7 @@ body {
.button { .button {
padding: 10px; padding: 10px;
padding-top: 11px; padding-top: 11px;
border-radius: 2px; border-radius: 24px;
border: 0; border: 0;
letter-spacing: .5px; letter-spacing: .5px;
outline: none; outline: none;
@ -6037,6 +6037,9 @@ body {
.button > .glyphicon, .button > .tick { .button > .glyphicon, .button > .tick {
top: 2px; top: 2px;
margin-right: 2px; } margin-right: 2px; }
.button.button-primary {
width: 200px;
height: 48px; }
.button[disabled] { .button[disabled] {
background-color: #3a3c41; background-color: #3a3c41;
color: #787c7f; color: #787c7f;
@ -6182,7 +6185,8 @@ body {
.modal-footer { .modal-footer {
flex-grow: 0; flex-grow: 0;
border: 0; } border: 0;
text-align: center; }
.modal { .modal {
display: flex !important; display: flex !important;
@ -6388,11 +6392,6 @@ svg-icon > img[disabled] {
.page-main .relative { .page-main .relative {
position: relative; } position: relative; }
.page-main .button-brick {
width: 200px;
height: 48px;
font-size: 16px; }
.page-main .button-abort-write { .page-main .button-abort-write {
width: 20px; width: 20px;
height: 20px; height: 20px;
@ -6406,7 +6405,8 @@ svg-icon > img[disabled] {
.button-brick { .button-brick {
width: 200px; width: 200px;
height: 48px; height: 48px;
font-size: 16px; } font-size: 16px;
font-weight: 300; }
.page-main .step-border-left, .page-main .step-border-right { .page-main .step-border-left, .page-main .step-border-right {
height: 2px; height: 2px;
@ -6452,10 +6452,13 @@ svg-icon > img[disabled] {
padding-bottom: 2px; } padding-bottom: 2px; }
.page-main .button.step-footer { .page-main .button.step-footer {
font-size: 12px; font-size: 14px;
color: #2297de; color: #2297de;
border-radius: 0; border-radius: 0;
padding: 0; } padding: 0;
width: 100%;
font-weight: 300;
height: 21px; }
.page-main .step-drive.glyphicon, .page-main .step-drive.tick { .page-main .step-drive.glyphicon, .page-main .step-drive.tick {
margin-top: 1px; } margin-top: 1px; }
@ -6485,7 +6488,11 @@ svg-icon > img[disabled] {
.page-main .step-size { .page-main .step-size {
color: #787c7f; color: #787c7f;
margin-top: 10px; } margin: 0 0 8px 0;
font-size: 14px;
line-height: 1.5;
height: 21px;
width: 100%; }
.page-main .step-list { .page-main .step-list {
height: 80px; height: 80px;
@ -6591,8 +6598,7 @@ svg-icon > img[disabled] {
.page-finish .label { .page-finish .label {
display: inline-block; } display: inline-block; }
.page-finish .label > b { .page-finish .label > b {
color: #ddd; color: #ddd; }
font-family: monospace; }
.page-finish .soft { .page-finish .soft {
color: #ddd; } color: #ddd; }
@ -9855,39 +9861,65 @@ readers do not read off random characters that represent icons */
font-weight: 900; } font-weight: 900; }
@font-face { @font-face {
font-family: Roboto; font-family: 'Nunito';
src: url("../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Thin.woff"); src: url("Nunito-Regular.eot");
font-weight: 100; src: url("./fonts/Nunito-Regular.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Regular.woff2") format("woff2"), url("./fonts/Nunito-Regular.woff") format("woff"), url("./fonts/Nunito-Regular.ttf") format("truetype");
font-style: normal; } font-weight: normal;
font-style: normal;
font-display: block; }
@font-face { @font-face {
font-family: Roboto; font-family: 'Nunito';
src: url("../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Light.woff"); src: url("Nunito-Bold.eot");
src: url("./fonts/Nunito-Bold.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Bold.woff2") format("woff2"), url("./fonts/Nunito-Bold.woff") format("woff"), url("./fonts/Nunito-Bold.ttf") format("truetype");
font-weight: bold;
font-style: normal;
font-display: block; }
@font-face {
font-family: 'Nunito';
src: url("Nunito-Light.eot");
src: url("./fonts/Nunito-Light.eot?#iefix") format("embedded-opentype"), url("./fonts/Nunito-Light.woff2") format("woff2"), url("./fonts/Nunito-Light.woff") format("woff"), url("./fonts/Nunito-Light.ttf") format("truetype");
font-weight: 300; font-weight: 300;
font-style: normal; } font-style: normal;
font-display: block; }
@font-face { @font-face {
font-family: Roboto; font-family: 'CircularStd';
src: url("../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Regular.woff"); src: url("./fonts/CircularStd-Bold.eot");
font-weight: 400; src: url("./fonts/CircularStd-Bold.eot?#iefix") format("embedded-opentype"), url("./fonts/CircularStd-Bold.woff2") format("woff2"), url("./fonts/CircularStd-Bold.woff") format("woff"), url("./fonts/CircularStd-Bold.ttf") format("truetype");
font-style: normal; } font-weight: bold;
font-style: normal;
font-display: block; }
@font-face { @font-face {
font-family: Roboto; font-family: 'CircularStd';
src: url("../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Medium.woff"); src: url("./fonts/CircularStd-Book.eot");
src: url("./fonts/CircularStd-Book.eot?#iefix") format("embedded-opentype"), url("./fonts/CircularStd-Book.woff2") format("woff2"), url("./fonts/CircularStd-Book.woff") format("woff"), url("./fonts/CircularStd-Book.ttf") format("truetype");
font-weight: 500; font-weight: 500;
font-style: normal; } font-style: normal;
font-display: block; }
@font-face { @font-face {
font-family: Roboto; font-family: 'CircularStd';
src: url("../../../node_modules/roboto-fontface/fonts/roboto/Roboto-Bold.woff"); src: url("./fonts/CircularStd-Medium.eot");
font-weight: 700; src: url("./fonts/CircularStd-Medium.eot?#iefix") format("embedded-opentype"), url("./fonts/CircularStd-Medium.woff2") format("woff2"), url("./fonts/CircularStd-Medium.woff") format("woff"), url("./fonts/CircularStd-Medium.ttf") format("truetype");
font-style: normal; } font-weight: 400;
font-style: normal;
font-display: block; }
.circular {
font-family: 'CircularStd';
font-weight: 500; }
.nunito {
font-family: 'Nunito'; }
body { body {
letter-spacing: 0.5px; letter-spacing: 0.5px;
display: flex; display: flex;
flex-direction: column; } flex-direction: column;
font-family: 'CircularStd'; }
body > header { body > header {
flex: 0 0 auto; } flex: 0 0 auto; }
body > main { body > main {
@ -9896,11 +9928,6 @@ body {
body > footer { body > footer {
flex: 0 0 auto; } flex: 0 0 auto; }
body,
.tooltip,
.popover {
font-family: Roboto; }
.section-footer-main { .section-footer-main {
display: flex; display: flex;
align-items: center; align-items: center;
@ -9946,8 +9973,7 @@ body,
.section-header { .section-header {
text-align: right; text-align: right;
padding: 5px 8px; padding: 5px 8px; }
font-size: 15px; }
.section-header > .button { .section-header > .button {
padding-left: 3px; padding-left: 3px;
padding-right: 3px; } padding-right: 3px; }

1188
npm-shrinkwrap.json generated

File diff suppressed because it is too large Load Diff

View File

@ -65,16 +65,16 @@
"pretty-bytes": "^1.0.4", "pretty-bytes": "^1.0.4",
"prop-types": "^15.5.9", "prop-types": "^15.5.9",
"react": "^16.8.5", "react": "^16.8.5",
"react-dom": "^16.3.2", "react-dom": "^16.8.5",
"react2angular": "^4.0.2", "react2angular": "^4.0.2",
"redux": "^3.5.2", "redux": "^3.5.2",
"rendition": "4.41.1", "rendition": "^8.7.2",
"request": "^2.81.0", "request": "^2.81.0",
"resin-corvus": "^2.0.3", "resin-corvus": "^2.0.3",
"roboto-fontface": "^0.9.0", "roboto-fontface": "^0.9.0",
"semver": "^5.1.1", "semver": "^5.1.1",
"styled-components": "^3.2.3", "styled-components": "^4.2.0",
"styled-system": "^3.1.11", "styled-system": "^4.1.0",
"sudo-prompt": "^8.2.3", "sudo-prompt": "^8.2.3",
"tmp": "^0.1.0", "tmp": "^0.1.0",
"uuid": "^3.0.1", "uuid": "^3.0.1",
@ -85,6 +85,7 @@
"@babel/plugin-proposal-function-bind": "^7.2.0", "@babel/plugin-proposal-function-bind": "^7.2.0",
"@babel/preset-env": "^7.2.0", "@babel/preset-env": "^7.2.0",
"@babel/preset-react": "^7.0.0", "@babel/preset-react": "^7.0.0",
"@types/react-dom": "^16.8.4",
"acorn": "^6.0.5", "acorn": "^6.0.5",
"angular-mocks": "1.7.6", "angular-mocks": "1.7.6",
"babel-loader": "^8.0.4", "babel-loader": "^8.0.4",