Merge branch 'master' into toolbar

main
Jake Dexheimer 8 years ago
commit 6befb747db

@ -0,0 +1,58 @@
import { EOL } from 'os'
import React from 'react'
import domtoimage from 'dom-to-image'
import CodeMirror from 'react-codemirror'
import WindowControls from '../components/svg/Controls'
// hack to only call modes on browser
if (typeof window !== 'undefined' && typeof window.navigator !== 'undefined') {
require('../lib/constants')
}
const DEFAULT_SETTINGS = {
paddingVertical: '50px',
paddingHorizontal: '50px',
marginVertical: '45px',
marginHorizontal: '45px',
background: '#fed0ec',
theme: 'dracula',
language: 'javascript'
}
const CodeImage = (props) => {
const config = Object.assign(DEFAULT_SETTINGS, props.config)
const options = {
lineNumbers: false,
mode: config.language,
theme: config.theme,
scrollBarStyle: null,
viewportMargin: Infinity,
lineWrapping: true
}
// create styles
const containerStyle = {
background: config.background,
padding: `${config.paddingVertical} ${config.paddingHorizontal}`
}
return (
<div id="section">
<div id="container" style={containerStyle}>
{ true ? <WindowControls /> : null }
<CodeMirror className="CodeMirrorContainer" value={props.children} options={options} />
</div>
<style jsx>{`
#section {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
`}</style>
</div>
)
}
export default CodeImage

@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import enhanceWithClickOutside from 'react-click-outside' import enhanceWithClickOutside from 'react-click-outside'
import ArrowDown from './svg/arrowdown' import ArrowDown from './svg/Arrowdown'
class Dropdown extends React.Component { class Dropdown extends React.Component {
constructor(props) { constructor(props) {
@ -14,8 +14,11 @@ class Dropdown extends React.Component {
} }
select(item) { select(item) {
if (this.state.selected !== item) {
this.props.onChange(item)
this.setState({ selected: item }) this.setState({ selected: item })
} }
}
toggle() { toggle() {
this.setState({ isVisible: !this.state.isVisible }) this.setState({ isVisible: !this.state.isVisible })
@ -63,7 +66,7 @@ class Dropdown extends React.Component {
// find longest list value in number of characters // find longest list value in number of characters
const MIN_WIDTH = this.props.list.reduce((max, { name }) => const MIN_WIDTH = this.props.list.reduce((max, { name }) =>
(name.length > max ? name.length : max), 0) (name.length > max ? name.length : max), 0)
console.log(MIN_WIDTH);
return ( return (
<div className="dropdown-container" style={{ minWidth: MIN_WIDTH * 16 }} onClick={this.toggle}> <div className="dropdown-container" style={{ minWidth: MIN_WIDTH * 16 }} onClick={this.toggle}>
<div className={`dropdown-display ${this.state.isVisible ? 'is-visible' : ''}`}> <div className={`dropdown-display ${this.state.isVisible ? 'is-visible' : ''}`}>

@ -3,6 +3,8 @@ import Head from 'next/head'
export default () => ( export default () => (
<div className="meta"> <div className="meta">
<Head> <Head>
<link rel="stylesheet" href='//cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/codemirror.min.css' />
<link rel="stylesheet" href='//cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/theme/dracula.min.css'/>
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charSet="utf-8" /> <meta charSet="utf-8" />
<link rel="shortcut icon" href="/static/favicon.ico" /> <link rel="shortcut icon" href="/static/favicon.ico" />
@ -39,6 +41,13 @@ export default () => (
#toolbar>div:last-child { #toolbar>div:last-child {
margin-right: 0px; margin-right: 0px;
} }
.CodeMirrorContainer .CodeMirror {
height: auto;
min-width: 680px;
padding: 40px 18px 24px;
border-radius: 3px;
}
`}</style> `}</style>
</div> </div>
) )

@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import enhanceWithClickOutside from 'react-click-outside' import enhanceWithClickOutside from 'react-click-outside'
import SettingsIcon from './svg/settings' import SettingsIcon from './svg/Settings'
class Settings extends React.Component { class Settings extends React.Component {
constructor(props) { constructor(props) {

@ -0,0 +1,46 @@
import React from 'react'
import Dropdown from './Dropdown'
import ColorPicker from './Colorpicker'
import Settings from './Settings'
import Button from './Button'
import { THEMES, LANGUAGES } from '../lib/constants'
const Toolbar = (props) => (
<div id="toolbar">
<Dropdown list={THEMES} onChange={props.onThemeChange}/>
<Dropdown list={LANGUAGES} onChange={props.onLanguageChange}/>
<ColorPicker
onChange={props.onBGChange}
bg={props.bg}
/>
<Settings />
<div className="buttons">
<Button
onClick={props.upload}
title="Copy Imgur Link"
bg="#84ACFC"
style={{ borderRadius: '3px 0px 0px 3px' }}
/>
<Button onClick={props.save} title="Save Image" bg="#C3E98D" />
</div>
<style jsx>{`
#toolbar {
width: 100%;
height: 40px; // TODO fix
margin-bottom: 16px;
display: flex;
position: relative;
z-index: 1;
font-size: 14px;
color: #4F6875;
}
.buttons {
display: flex;
margin-left: auto;
}
`}</style>
</div>
)
export default Toolbar

@ -1,100 +0,0 @@
import { EOL } from 'os'
import React from 'react'
import { NativeTypes } from 'react-dnd-html5-backend'
import { DropTarget } from 'react-dnd'
import domtoimage from 'dom-to-image'
import WindowControls from '../components/svg/controls'
const margin = '45px 54px'
const DEFAULT_CODE = `
const pluckDeep = key => obj => key.split('.').reduce((accum, key) => accum[key], obj)
const compose = (...fns) => res => fns.reduce((accum, next) => next(accum), res)
const unfold = (f, seed) => {
const go = (f, seed, acc) => {
const res = f(seed)
return res ? go(f, res[1], acc.concat([res[0]])) : acc
}
return go(f, seed, [])
}`
const MAX_LINES = 40
class CodeImage extends React.Component {
constructor () {
super()
this.state = {}
}
render () {
let code = this.state.droppedContent || this.props.children || DEFAULT_CODE
const split = code.split(EOL)
if (split.length > MAX_LINES) code = [...split.slice(0, MAX_LINES - 1), '', '...'].join(EOL)
return this.props.connectDropTarget(
<div id='section'>
<div id='container' style={Object.assign({ background: this.props.bg }, this.props.style)}>
<pre className='hyper'>
<div className="window-controls">
<WindowControls />
</div>
<code>{code}</code>
</pre>
</div>
<style jsx>{`
#section {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
#container {
height: 100%;
background: #000;
display: flex;
justify-content: center;
align-items: center;
}
.window-controls {
position: absolute;
margin-left: -2px;
margin-top: -14px;
}
.hyper {
border: 1px solid #393939;
border-radius: 5px;
background: black;
padding: 26px 18px;
margin: ${margin}
color: white;
}
.bw {}
`}</style>
</div>
)
}
}
const drop = (props, monitor, component) => {
const bundle = monitor.getItem()
const file = bundle.files[0]
const reader = new FileReader()
reader.onload = function(event) {
component.setState({
droppedContent: event.target.result
})
};
reader.readAsText(file, "UTF-8");
}
export default DropTarget(NativeTypes.FILE, { drop }, (connect, monitor) => ({
connectDropTarget: connect.dropTarget(),
isOver: monitor.isOver(),
canDrop: monitor.canDrop(),
item: monitor.getItem()
}))(CodeImage)

@ -0,0 +1,25 @@
const drop = (props, monitor, component) => {
const bundle = monitor.getItem()
const file = bundle.files[0]
const reader = new FileReader()
reader.onload = function(event) {
component.setState({
droppedContent: event.target.result
})
};
reader.readAsText(file, "UTF-8");
}
export default DropTarget(NativeTypes.FILE, { drop }, (connect, monitor) => ({
connectDropTarget: connect.dropTarget(),
isOver: monitor.isOver(),
canDrop: monitor.canDrop(),
item: monitor.getItem()
}))(CodeImage)
let code = this.props.content
const split = code.split(EOL)
if (split.length > MAX_LINES) code = [...split.slice(0, MAX_LINES - 1), '', '...'].join(EOL)
return this.props.connectDropTarget(

@ -0,0 +1,22 @@
import React from 'react'
export default () => (
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14">
<g fill="none" fillRule="evenodd" transform="translate(1 1)">
<circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" strokeWidth=".5"/>
<circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" strokeWidth=".5"/>
<circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" strokeWidth=".5"/>
</g>
</svg>
<style jsx>{`
div {
position: absolute;
margin-left: 18px;
margin-top: 12px;
z-index: 1;
}
`}
</style>
</div>
)

@ -1,11 +0,0 @@
import React from 'react'
export default () => (
<svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14">
<g fill="none" fillRule="evenodd" transform="translate(1 1)">
<circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" strokeWidth=".5"/>
<circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" strokeWidth=".5"/>
<circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" strokeWidth=".5"/>
</g>
</svg>
)

@ -1,117 +0,0 @@
import React from 'react'
import Dropdown from './dropdown'
import ColorPicker from './colorpicker'
import Settings from './settings'
import Button from './button'
const themes = [
{
name: 'dracula'
},
{
name: 'solarized'
}
]
const langauges = [
'Auto Detect',
'Plain Text',
'AppleScript',
'BoxNote',
'C',
'C#',
'CSS',
'CSV',
'Closure',
'CoffeeScript',
'Cold Fusion',
'Crystal',
'Cypher',
'D',
'Dart',
'Diff',
'Docker',
'Erlang',
'F#',
'Fortran',
'Gherkin',
'Go',
'Groovy',
'HTML',
'Haskell',
'Haxe',
'Java',
'JavaScript',
'JSON',
'Julia',
'Kotlin',
'LaTex',
'Lisp',
'Lua',
'MATLAB',
'MUMPS',
'OCaml',
'Objective-C',
'PHP',
'Pascal',
'Perl',
'Pig',
'Post',
'Puppet',
'Python',
'R',
'Ruby',
'Rust',
'SQL',
'Sass',
'Scheme',
'Smalltalk',
'Swift',
'TSV',
'VB.NET',
'VBScript',
'Velocity',
'Verilog',
'XML',
'YAML'
].map(name => ({ name }))
const Toolbar = (props) => (
<div id="toolbar">
<Dropdown list={themes} />
<Dropdown list={langauges} />
<ColorPicker
onChange={props.onBGChange}
bg={props.bg}
/>
<Settings />
<div className="buttons">
<Button
onClick={props.upload}
title="Copy Imgur Link"
bg="#84ACFC"
style={{ borderRadius: '3px 0px 0px 3px' }}
/>
<Button onClick={props.save} title="Save Image" bg="#C3E98D" />
</div>
<style jsx>{`
#toolbar {
width: 100%;
height: 40px; // TODO fix
margin-bottom: 16px;
display: flex;
position: relative;
z-index: 1;
font-size: 14px;
color: #4F6875;
}
.buttons {
display: flex;
margin-left: auto;
}
`}</style>
</div>
)
export default Toolbar

@ -0,0 +1,206 @@
if (typeof window !== 'undefined' && typeof window.navigator !== 'undefined') {
require('codemirror/mode/clojure/clojure')
require('codemirror/mode/cobol/cobol')
require('codemirror/mode/coffeescript/coffeescript')
require('codemirror/mode/commonlisp/commonlisp')
require('codemirror/mode/crystal/crystal')
require('codemirror/mode/css/css')
require('codemirror/mode/d/d')
require('codemirror/mode/dart/dart')
require('codemirror/mode/django/django')
require('codemirror/mode/dockerfile/dockerfile')
require('codemirror/mode/elm/elm')
require('codemirror/mode/erlang/erlang')
require('codemirror/mode/fortran/fortran')
require('codemirror/mode/go/go')
require('codemirror/mode/groovy/groovy')
require('codemirror/mode/handlebars/handlebars')
require('codemirror/mode/haskell/haskell')
require('codemirror/mode/haxe/haxe')
require('codemirror/mode/htmlembedded/htmlembedded')
require('codemirror/mode/htmlmixed/htmlmixed')
require('codemirror/mode/javascript/javascript')
require('codemirror/mode/julia/julia')
require('codemirror/mode/lua/lua')
require('codemirror/mode/markdown/markdown')
require('codemirror/mode/mathematica/mathematica')
require('codemirror/mode/nginx/nginx')
require('codemirror/mode/pascal/pascal')
require('codemirror/mode/perl/perl')
require('codemirror/mode/php/php')
require('codemirror/mode/python/python')
require('codemirror/mode/r/r')
require('codemirror/mode/ruby/ruby')
require('codemirror/mode/rust/rust')
require('codemirror/mode/shell/shell')
require('codemirror/mode/smalltalk/smalltalk')
require('codemirror/mode/spreadsheet/spreadsheet')
require('codemirror/mode/sql/sql')
require('codemirror/mode/swift/swift')
require('codemirror/mode/tcl/tcl')
require('codemirror/mode/vb/vb')
require('codemirror/mode/verilog/verilog')
require('codemirror/mode/vhdl/vhdl')
require('codemirror/mode/vue/vue')
require('codemirror/mode/xml/xml')
require('codemirror/mode/yaml/yaml')
}
export const THEMES = [
{
id: 'dracula',
name: 'Dracula'
},
{
id: 'solarized',
name: 'Solarized'
}
]
export const LANGUAGES = [
{
name: 'Auto Detect'
},
{
name: 'Plain Text'
},
{
name: 'Clojure'
},
{
name: 'Cobol'
},
{
name: 'CoffeeScript'
},
{
name: 'Crystal'
},
{
name: 'CSS'
},
{
name: 'D'
},
{
name: 'Dart'
},
{
name: 'Django'
},
{
name: 'Docker'
},
{
name: 'Elm'
},
{
name: 'Erlang'
},
{
name: 'Fortran'
},
{
name: 'Groovy'
},
{
name: 'Handlebars'
},
{
name: 'Haskell'
},
{
name: 'Haxe'
},
{
name: 'HTML'
},
{
name: 'JavaScript'
},
{
name: 'JSX'
},
{
name: 'Julia'
},
{
name: 'Lua'
},
{
name: 'Markdown'
},
{
name: 'Mathematica'
},
{
name: 'NGINX'
},
{
name: 'Pascal'
},
{
name: 'Perl'
},
{
name: 'PHP'
},
{
name: 'Python'
},
{
name: 'R'
},
{
name: 'Ruby'
},
{
name: 'Rust'
},
{
name: 'Sass'
},
{
name: 'Smalltalk'
},
{
name: 'SQL'
},
{
name: 'Swift'
},
{
name: 'TCL'
},
{
name: 'VB.NET'
},
{
name: 'Verilog'
},
{
name: 'VHDL'
},
{
name: 'Vue'
},
{
name: 'XML'
},
{
name: 'YAML'
}
]
export const DEFAULT_CODE = `const pluckDeep = key => obj => key.split('.').reduce((accum, key) => accum[key], obj)
const compose = (...fns) => res => fns.reduce((accum, next) => next(accum), res)
const unfold = (f, seed) => {
const go = (f, seed, acc) => {
const res = f(seed)
return res ? go(f, res[1], acc.concat([res[0]])) : acc
}
return go(f, seed, [])
}
`

@ -11,16 +11,20 @@
"dependencies": { "dependencies": {
"axios": "^0.16.2", "axios": "^0.16.2",
"body-parser": "^1.17.2", "body-parser": "^1.17.2",
"codemirror": "^5.26.0",
"dom-to-image": "^2.5.2", "dom-to-image": "^2.5.2",
"express": "^4.15.3", "express": "^4.15.3",
"form-data": "^2.2.0", "form-data": "^2.2.0",
"highlight.js": "^9.12.0",
"morgan": "^1.8.2", "morgan": "^1.8.2",
"next": "^2.4.3", "next": "^2.4.3",
"react": "^15.5.4", "react": "^15.5.4",
"react-codemirror": "^1.0.0",
"react-click-outside": "^2.3.1", "react-click-outside": "^2.3.1",
"react-color": "^2.12.1", "react-color": "^2.12.1",
"react-dnd": "^2.4.0", "react-dnd": "^2.4.0",
"react-dnd-html5-backend": "^2.4.1", "react-dnd-html5-backend": "^2.4.1",
"react-dom": "^15.5.4" "react-dom": "^15.5.4",
"react-syntax-highlight": "^0.0.6"
} }
} }

@ -4,28 +4,33 @@ import { DragDropContext } from 'react-dnd'
import Axios from 'axios' import Axios from 'axios'
import domtoimage from 'dom-to-image' import domtoimage from 'dom-to-image'
import Logo from '../components/svg/logo' import Logo from '../components/svg/Logo'
import Meta from '../components/meta' import Meta from '../components/Meta'
import Toolbar from '../components/toolbar' import Toolbar from '../components/Toolbar'
import CodeImage from '../components/codeImage' import CodeImage from '../components/CodeImage'
import api from '../lib/api' import api from '../lib/api'
import { THEMES, LANGUAGES, DEFAULT_CODE } from '../lib/constants'
class Index extends React.Component { class Index extends React.Component {
/* pathname, asPath, err, req, res */ /* pathname, asPath, err, req, res */
static async getInitialProps ({ asPath }) { static async getInitialProps ({ asPath }) {
try { try {
if (asPath !== '/') {
const content = await api.getGist(asPath) const content = await api.getGist(asPath)
return { content } return { content }
}
} catch (e) { } catch (e) {
console.log(e) console.log(e)
return {}
} }
return {}
} }
constructor() { constructor() {
super() super()
this.state = { this.state = {
bgColor: '#111111' bgColor: '#111111',
theme: THEMES[0].id,
language: 'javascript' // TODO LANGUAGES[0]
} }
} }
@ -61,10 +66,12 @@ class Index extends React.Component {
save={this.save} save={this.save}
upload={this.upload} upload={this.upload}
onBGChange={color => this.setState({ bgColor: color })} onBGChange={color => this.setState({ bgColor: color })}
onThemeChange={theme => this.setState({ theme: theme.id })}
onLanguageChange={language => this.setState({ language })}
bg={this.state.bgColor} bg={this.state.bgColor}
/> />
<CodeImage bg={this.state.bgColor}> <CodeImage config={this.state}>
{this.props.content} {this.droppedContent || this.props.content || DEFAULT_CODE}
</CodeImage> </CodeImage>
</div> </div>
<div className="footer"> <div className="footer">

@ -987,8 +987,8 @@ camelcase@^3.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
caniuse-db@^1.0.30000639: caniuse-db@^1.0.30000639:
version "1.0.30000684" version "1.0.30000690"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000684.tgz#99acb0118b8fd1fdd601a15e0c0f2dfc15a81680" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000690.tgz#ee4e0750070f6aae6f40e76477984449bd6cb48a"
case-sensitive-paths-webpack-plugin@2.0.0: case-sensitive-paths-webpack-plugin@2.0.0:
version "2.0.0" version "2.0.0"
@ -1036,6 +1036,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
dependencies: dependencies:
inherits "^2.0.1" inherits "^2.0.1"
classnames@^2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
cliui@^2.1.0: cliui@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
@ -1060,6 +1064,10 @@ code-point-at@^1.0.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
codemirror@^5.18.2, codemirror@^5.26.0:
version "5.26.0"
resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.26.0.tgz#bcbee86816ed123870c260461c2b5c40b68746e5"
combined-stream@^1.0.5, combined-stream@~1.0.5: combined-stream@^1.0.5, combined-stream@~1.0.5:
version "1.0.5" version "1.0.5"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
@ -1151,6 +1159,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1" safe-buffer "^5.0.1"
sha.js "^2.4.8" sha.js "^2.4.8"
create-react-class@^15.5.1, create-react-class@^15.6.0:
version "15.6.0"
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
object-assign "^4.1.1"
cross-spawn@5.1.0: cross-spawn@5.1.0:
version "5.1.0" version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
@ -1737,6 +1753,10 @@ hawk@~3.1.3:
hoek "2.x.x" hoek "2.x.x"
sntp "1.x.x" sntp "1.x.x"
highlight.js@^9.10.0, highlight.js@^9.12.0:
version "9.12.0"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e"
hmac-drbg@^1.0.0: hmac-drbg@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@ -2105,6 +2125,14 @@ lodash-es@^4.2.1:
version "4.17.4" version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
lodash@^4.0.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.5.1, lodash@^4.6.1: lodash@^4.0.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.5.1, lodash@^4.6.1:
version "4.17.4" version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@ -2188,10 +2216,14 @@ mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7:
dependencies: dependencies:
mime-db "~1.27.0" mime-db "~1.27.0"
mime@1.3.4, mime@^1.3.4: mime@1.3.4:
version "1.3.4" version "1.3.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
mime@^1.3.4:
version "1.3.6"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
min-document@^2.19.0: min-document@^2.19.0:
version "2.19.0" version "2.19.0"
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
@ -2292,8 +2324,8 @@ negotiator@0.6.1:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
next@^2.4.3: next@^2.4.3:
version "2.4.3" version "2.4.4"
resolved "https://registry.yarnpkg.com/next/-/next-2.4.3.tgz#8d84a3a4552e584a1d7930817f3408de494e974c" resolved "https://registry.yarnpkg.com/next/-/next-2.4.4.tgz#1caac2ee5cc195564ad330b9fcbff40380b0627e"
dependencies: dependencies:
ansi-html "0.0.7" ansi-html "0.0.7"
babel-core "6.24.0" babel-core "6.24.0"
@ -2336,7 +2368,7 @@ next@^2.4.3:
send "0.15.2" send "0.15.2"
source-map-support "0.4.15" source-map-support "0.4.15"
strip-ansi "3.0.1" strip-ansi "3.0.1"
styled-jsx "1.0.3" styled-jsx "1.0.5"
touch "1.0.0" touch "1.0.0"
unfetch "2.1.2" unfetch "2.1.2"
url "0.11.0" url "0.11.0"
@ -2441,7 +2473,7 @@ oauth-sign@~0.8.1:
version "0.8.2" version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
object-assign@^4.0.1, object-assign@^4.1.0: object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@ -2648,12 +2680,12 @@ process@~0.5.1:
resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
promise@^7.1.1: promise@^7.1.1:
version "7.1.1" version "7.3.0"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.0.tgz#e7feec5aa87a2cbb81acf47d9a3adbd9d4642d7b"
dependencies: dependencies:
asap "~2.0.3" asap "~2.0.3"
prop-types@15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@~15.5.7: prop-types@15.5.10, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8:
version "15.5.10" version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies: dependencies:
@ -2745,6 +2777,17 @@ react-click-outside@^2.3.1:
dependencies: dependencies:
hoist-non-react-statics "^1.2.0" hoist-non-react-statics "^1.2.0"
react-codemirror@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/react-codemirror/-/react-codemirror-1.0.0.tgz#91467b53b1f5d80d916a2fd0b4c7adb85a9001ba"
dependencies:
classnames "^2.2.5"
codemirror "^5.18.2"
create-react-class "^15.5.1"
lodash.debounce "^4.0.8"
lodash.isequal "^4.5.0"
prop-types "^15.5.4"
react-color@^2.12.1: react-color@^2.12.1:
version "2.12.1" version "2.12.1"
resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.12.1.tgz#ef5a4dc4260ed7d1642047d5b6693d68939b19f7" resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.12.1.tgz#ef5a4dc4260ed7d1642047d5b6693d68939b19f7"
@ -2777,13 +2820,13 @@ react-dnd@^2.4.0:
prop-types "^15.5.8" prop-types "^15.5.8"
react-dom@^15.5.4: react-dom@^15.5.4:
version "15.5.4" version "15.6.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.5.4.tgz#ba0c28786fd52ed7e4f2135fe0288d462aef93da" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470"
dependencies: dependencies:
fbjs "^0.8.9" fbjs "^0.8.9"
loose-envify "^1.1.0" loose-envify "^1.1.0"
object-assign "^4.1.0" object-assign "^4.1.0"
prop-types "~15.5.7" prop-types "^15.5.10"
react-hot-loader@3.0.0-beta.7: react-hot-loader@3.0.0-beta.7:
version "3.0.0-beta.7" version "3.0.0-beta.7"
@ -2802,14 +2845,21 @@ react-proxy@^3.0.0-alpha.0:
dependencies: dependencies:
lodash "^4.6.1" lodash "^4.6.1"
react-syntax-highlight@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/react-syntax-highlight/-/react-syntax-highlight-0.0.6.tgz#2a657a9a693ffd16a22181ad08de96902957f87a"
dependencies:
highlight.js "^9.10.0"
react@^15.5.4: react@^15.5.4:
version "15.5.4" version "15.6.1"
resolved "https://registry.yarnpkg.com/react/-/react-15.5.4.tgz#fa83eb01506ab237cdc1c8c3b1cea8de012bf047" resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df"
dependencies: dependencies:
create-react-class "^15.6.0"
fbjs "^0.8.9" fbjs "^0.8.9"
loose-envify "^1.1.0" loose-envify "^1.1.0"
object-assign "^4.1.0" object-assign "^4.1.0"
prop-types "^15.5.7" prop-types "^15.5.10"
reactcss@^1.2.0: reactcss@^1.2.0:
version "1.2.2" version "1.2.2"
@ -2854,8 +2904,8 @@ readdirp@^2.0.0:
set-immediate-shim "^1.0.1" set-immediate-shim "^1.0.1"
redbox-react@^1.3.6: redbox-react@^1.3.6:
version "1.4.1" version "1.4.2"
resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.4.1.tgz#90552c45374e2003b9665ee5470b60d4bb74a5ba" resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.4.2.tgz#7fe35d3c567301e97938cc7fd6a10918f424c6b4"
dependencies: dependencies:
error-stack-parser "^1.3.6" error-stack-parser "^1.3.6"
object-assign "^4.0.1" object-assign "^4.0.1"
@ -3230,9 +3280,9 @@ strip-json-comments@~2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
styled-jsx@1.0.3: styled-jsx@1.0.5:
version "1.0.3" version "1.0.5"
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-1.0.3.tgz#3d8e2eda09fffccc131d321a02ae6d6f9f79da53" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-1.0.5.tgz#943fced48295ff70000794311f9f3bf3688e427f"
dependencies: dependencies:
babel-plugin-syntax-jsx "6.18.0" babel-plugin-syntax-jsx "6.18.0"
babel-traverse "6.21.0" babel-traverse "6.21.0"
@ -3243,11 +3293,11 @@ styled-jsx@1.0.3:
escape-string-regexp "1.0.5" escape-string-regexp "1.0.5"
source-map "0.5.6" source-map "0.5.6"
string-hash "1.1.1" string-hash "1.1.1"
stylis "3.0.10" stylis "3.1.5"
stylis@3.0.10: stylis@3.1.5:
version "3.0.10" version "3.1.5"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.0.10.tgz#9f561e8a9799c2c317c596583bcaaa52a0d27663" resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.1.5.tgz#c585186286aaa79856c9ac62bbb38113923edda3"
supports-color@^2.0.0: supports-color@^2.0.0:
version "2.0.0" version "2.0.0"
@ -3360,8 +3410,8 @@ ua-parser-js@^0.7.9:
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb"
uglify-js@^2.8.5: uglify-js@^2.8.5:
version "2.8.28" version "2.8.29"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.28.tgz#e335032df9bb20dcb918f164589d5af47f38834a" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
dependencies: dependencies:
source-map "~0.5.1" source-map "~0.5.1"
yargs "~3.10.0" yargs "~3.10.0"

Loading…
Cancel
Save