first stab at converting vendor modules from bower

This commit is contained in:
Radek Stepan 2014-10-18 11:38:42 -07:00
parent 07aae10c2e
commit afa02e6cac
29 changed files with 39256 additions and 528 deletions

View File

@ -15,6 +15,10 @@ module.exports = (grunt) ->
# Mustaches.
'ractivate'
]
alias: [
'./vendor/d3-tip/index.js:d3-tip'
'./vendor/firebase-simple-login/firebase-simple-login.js:firebase-simple-login'
]
stylus:
compile:
@ -27,32 +31,32 @@ module.exports = (grunt) ->
]
dest: 'public/css/app.css'
concat:
scripts:
src: [
# CommonJS loader.
'public/js/commonjs.js'
# Vendor dependencies.
'vendor/lodash/dist/lodash.js'
'vendor/ractive/ractive.js'
'vendor/ractive-transitions-fade/ractive-transitions-fade.js'
'vendor/ractive-ractive/index.js'
'vendor/firebase/firebase.js'
'vendor/firebase-simple-login/firebase-simple-login.js'
'vendor/superagent/superagent.js'
'vendor/lscache/lscache.js'
'vendor/async/lib/async.js'
'vendor/moment/moment.js'
'vendor/d3/d3.js'
'vendor/d3-tip/index.js'
'vendor/marked/lib/marked.js'
'vendor/director/build/director.js'
# Our app.
'public/js/app.js'
]
dest: 'public/js/app.bundle.js'
options:
separator: ';' # for minification purposes
# concat:
# scripts:
# src: [
# # CommonJS loader.
# 'public/js/commonjs.js'
# # Vendor dependencies.
# 'vendor/lodash/dist/lodash.js'
# 'vendor/ractive/ractive.js'
# 'vendor/ractive-transitions-fade/ractive-transitions-fade.js'
# 'vendor/ractive-ractive/index.js'
# 'vendor/firebase/firebase.js'
# 'vendor/firebase-simple-login/firebase-simple-login.js'
# 'vendor/superagent/superagent.js'
# 'vendor/lscache/lscache.js'
# 'vendor/async/lib/async.js'
# 'vendor/moment/moment.js'
# 'vendor/d3/d3.js'
# 'vendor/d3-tip/index.js'
# 'vendor/marked/lib/marked.js'
# 'vendor/director/build/director.js'
# # Our app.
# 'public/js/app.js'
# ]
# dest: 'public/js/app.bundle.js'
# options:
# separator: ';' # for minification purposes
styles:
src: [

View File

@ -2,21 +2,8 @@
"name": "burnchart",
"version": "0.0.0",
"dependencies": {
"lodash": "2.3.0",
"normalize-css": "2.1.3",
"ractive": "~0.6.0",
"ractive-adaptor": "radekstepan/ractive-adaptor-ractive",
"ractive-ractive": "rstacruz/ractive-ractive",
"firebase": "~1.0.21",
"firebase-simple-login": "~1.6.3",
"superagent": "~0.19.0",
"async": "~0.9.0",
"moment": "~2.8.3",
"d3": "~3.4.11",
"d3-tip": "~0.6.5",
"marked": "~0.3.2",
"director": "~1.2.2",
"ractive-transitions-fade": "~0.1.2",
"lscache": "~1.0.2"
"d3-tip": "~0.6.5"
}
}

View File

@ -3,17 +3,29 @@
"version": "0.0.0",
"description": "GitHub Burndown Chart as a Service",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-stylus": "~0.9.0",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-uglify": "~0.2.5",
"grunt-contrib-cssmin": "~0.6.2",
"grunt-contrib-watch": "~0.6.1",
"grunt-browserify": "~3.1.0",
"async": "^0.9.0",
"browserify": "^6.1.0",
"coffeeify": "~0.7.0",
"ractivate": "~0.2.0",
"d3": "^3.4.13",
"director": "^1.2.3",
"firebase": "^1.1.2",
"grunt": "~0.4.1",
"grunt-browserify": "~3.1.0",
"grunt-contrib-clean": "~0.6.0",
"grunt-watchify": "~0.1.0"
"grunt-contrib-cssmin": "~0.6.2",
"grunt-contrib-stylus": "~0.9.0",
"grunt-contrib-uglify": "~0.2.5",
"grunt-contrib-watch": "~0.6.1",
"grunt-watchify": "~0.1.0",
"lodash": "^2.4.1",
"lscache": "^1.0.2",
"marked": "^0.3.2",
"moment": "^2.8.3",
"ractivate": "~0.2.0",
"ractive": "^0.6.0",
"ractive-ractive": "^0.4.4",
"ractive-transitions-fade": "^0.1.2",
"superagent": "^0.20.0"
},
"repository": {
"type": "git",

View File

@ -1,415 +1,47 @@
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined in IE 8/9.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* Correct `inline-block` display not defined in IE 8/9.
*/
audio,
canvas,
video {
display: inline-block;
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9.
* Hide the `template` element in IE, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background: transparent;
}
/**
* Address `outline` inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari 5, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Correct font family set oddly in Safari 5 and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
}
/**
* Improve readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre-wrap;
}
/**
* Set consistent quote types.
*/
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9.
*/
img {
border: 0;
}
/**
* Correct overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari 5.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Correct font family not being inherited in all browsers.
* 2. Correct font size not being inherited in all browsers.
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
*/
button,
input,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 2 */
margin: 0; /* 3 */
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
* Correct `select` style inheritance in Firefox 4+ and Opera.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* 1. Remove default vertical scrollbar in IE 8/9.
* 2. Improve readability and alignment in all browsers.
*/
textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
/* normalize.css v2.1.3 | MIT License | git.io/normalize */
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}
body{margin:0}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0;}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],/* 1 */,input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top;}
table{border-collapse:collapse;border-spacing:0}
@font-face{font-family:'MuseoSlab500Regular';src:url("../fonts/museo-slab-500.eot");src:url("../fonts/museo-slab-500.eot?#iefix") format('embedded-opentype'),url("../fonts/museo-slab-500.woff") format('woff'),url("../fonts/museo-slab-500.ttf") format('truetype'),url("../fonts/museo-slab-500.svg#MuseoSlab500Regular") format('svg');font-weight:normal;font-style:normal}
@font-face{font-family:'MuseoSans500Regular';src:url("../fonts/museo-sans-500.eot");src:url("../fonts/museo-sans-500.eot?#iefix") format('embedded-opentype'),url("../fonts/museo-sans-500.woff") format('woff'),url("../fonts/museo-sans-500.ttf") format('truetype'),url("../fonts/museo-sans-500.svg#MuseoSans500Regular") format('svg');font-weight:normal;font-style:normal}
@font-face{font-family:'Fontello';src:url("../fonts/fontello.eot?74672344");src:url("../fonts/fontello.eot?74672344#iefix") format('embedded-opentype'),url("../fonts/fontello.woff?74672344") format('woff'),url("../fonts/fontello.ttf?74672344") format('truetype'),url("../fonts/fontello.svg?74672344#fontello") format('svg');font-weight:normal;font-style:normal}
.icon{vertical-align:middle;font-family:"Fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;}
.icon{vertical-align:middle;font-family:"Fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none}
.icon[class^='spin'],.icon[class*=' spin']{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-ms-animation:spin 2s infinite linear;animation:spin 2s infinite linear}
@-moz-keyframes spin{0%{-moz-transform:rotate(0)}
100%{-moz-transform:rotate(360deg)}
@ -423,37 +55,33 @@ table {
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}@-ms-keyframes spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}@keyframes spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}
#chart{height:300px;position:relative;}
}#chart{height:300px;position:relative}
#chart #tooltip{position:absolute;top:0;left:0}
#chart svg path.line{fill:none;stroke-width:1px;clip-path:url("#clip");}
#chart svg path.line{fill:none;stroke-width:1px;clip-path:url("#clip")}
#chart svg path.line.actual{stroke:#64584c;stroke-width:3px}
#chart svg path.line.ideal{stroke:#cacaca;stroke-width:3px}
#chart svg path.line.trendline{stroke:#64584c;stroke-width:1.5px;stroke-dasharray:5,5}
#chart svg line.today{stroke:#cacaca;stroke-width:1px;shape-rendering:crispEdges;stroke-dasharray:5,5}
#chart svg circle{fill:#64584c;stroke:transparent;stroke-width:15px;cursor:pointer}
#chart svg .axis{shape-rendering:crispEdges;}
#chart svg .axis{shape-rendering:crispEdges}
#chart svg .axis line{stroke:rgba(202,202,202,0.25);shape-rendering:crispEdges}
#chart svg .axis text{font-weight:bold;fill:#cacaca}
#chart svg .axis path{display:none}
.d3-tip{margin-top:-10px;font-size:11px;padding:8px 10px 7px 10px;text-align:center;background:rgba(0,0,0,0.75);color:#fff;-webkit-border-radius:3px;border-radius:3px;}
.d3-tip{margin-top:-10px;font-size:11px;padding:8px 10px 7px 10px;text-align:center;background:rgba(0,0,0,0.75);color:#fff;-webkit-border-radius:3px;border-radius:3px}
.d3-tip:after{width:100%;color:rgba(0,0,0,0.8);content:"\25BC";position:absolute}
.d3-tip.n:after{margin:-3px 0 0 0;top:100%;left:0}
html,body{margin:0;padding:0;height:100%}
body{color:#3e4457;font-family:'MuseoSans500Regular',sans-serif}
#app{position:relative;height:auto !important;min-height:100%}
a{text-decoration:none;color:#aaafbf;cursor:pointer}
h1,h2,h3,p{margin:0}
ul{list-style-type:none;margin:0;padding:0;}
ul{list-style-type:none;margin:0;padding:0}
ul li{display:inline-block}
.wrap{width:800px;margin:0 auto}
#notify{position:fixed;top:-68px;z-index:1;width:100%;background:#fcfcfc;color:#aaafbf;border-top:3px solid #aaafbf;border-bottom:1px solid #f3f4f8;}
#notify .close{float:right;font-size:16px;padding:22px;cursor:pointer;}
#notify{position:fixed;top:-68px;z-index:1;width:100%;background:#fcfcfc;color:#aaafbf;border-top:3px solid #aaafbf;border-bottom:1px solid #f3f4f8}
#notify .close{float:right;font-size:16px;padding:22px;cursor:pointer}
#notify .close:before{content:"\d7";display:block}
#notify.system{top:0%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:500px;}
#notify.system{top:0%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:500px}
#notify.system p{padding-top:20px}
#notify.success,#notify.ok,#notify.good{border-top-color:#00b361;color:#00b361}
#notify.warn,#notify.trouble{border-top-color:#ea9712;color:#ea9712}
@ -461,55 +89,55 @@ ul li{display:inline-block}
#notify .icon,#notify p{display:block}
#notify .icon{font-size:26px;padding:18px;width:38px;float:left}
#notify p{padding:22px 20px 20px 74px;text-align:justify}
#head{background:#c1041c;height:64px;}
#head{background:#c1041c;height:64px}
#head #icon{font-size:26px;margin:0;padding:10px 0;line-height:44px;height:44px;width:74px;background:#77000e;display:inline-block;color:#c1041c;margin:0;text-align:center}
#head .q{position:relative;display:inline-block;margin:13px 20px 0 20px;vertical-align:top;}
#head .q .icon{position:absolute;color:#c1041c;}
#head .q{position:relative;display:inline-block;margin:13px 20px 0 20px;vertical-align:top}
#head .q .icon{position:absolute;color:#c1041c}
#head .q .icon.search{top:8px;left:12px}
#head .q .icon.down-open{top:8px;right:12px}
#head .q input{background:#77000e;border:0;padding:10px 12px 10px 36px;font-size:14px;-webkit-border-radius:2px;border-radius:2px;color:#fff;width:220px}
#head ul{display:inline-block;}
#head ul{display:inline-block}
#head ul li{margin-left:30px}
#head a{color:#e0808d;font-weight:bold;}
#head a{color:#e0808d;font-weight:bold}
#head a.active,#head a:hover{color:#fff}
#head .right{float:right;margin-right:20px;line-height:64px;color:#e0808d;}
#head .right{float:right;margin-right:20px;line-height:64px;color:#e0808d}
#head .right a{-webkit-border-radius:2px;border-radius:2px;background:#ffbb2a;color:#c1041c;padding:11px 20px}
#title{border-bottom:3px solid #f3f4f8;}
#title{border-bottom:3px solid #f3f4f8}
#title .title{border-bottom:3px solid #aaafbf;margin:30px 0 -3px 0;display:inline-block;padding-bottom:20px}
#title .sub{font-size:16px;font-weight:bold;margin:0 20px}
#title .description{display:inline-block;font-family:'MuseoSlab500Regular',serif;white-space:nowrap;color:#b1b6c4}
#page{padding-bottom:80px;}
#page #content{padding:20px;margin-top:20px;margin-bottom:40px;}
#page #content #hero{background:url("../img/hires/2.jpg") center;-webkit-background-size:cover;-moz-background-size:cover;background-size:cover;-webkit-border-radius:2px;border-radius:2px;margin-bottom:30px;}
#page #content #hero .content{-webkit-border-radius:2px;border-radius:2px;color:#fff;padding:30px;background:rgba(0,0,0,0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.2);box-shadow:inset 0 1px 2px rgba(0,0,0,0.2);}
#page{padding-bottom:80px}
#page #content{padding:20px;margin-top:20px;margin-bottom:40px}
#page #content #hero{background:url("../img/hires/2.jpg") center;-webkit-background-size:cover;-moz-background-size:cover;background-size:cover;-webkit-border-radius:2px;border-radius:2px;margin-bottom:30px}
#page #content #hero .content{-webkit-border-radius:2px;border-radius:2px;color:#fff;padding:30px;background:rgba(0,0,0,0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.2);box-shadow:inset 0 1px 2px rgba(0,0,0,0.2)}
#page #content #hero .content h2{margin-bottom:20px;margin-left:140px}
#page #content #hero .content p{font-family:'MuseoSlab500Regular',serif;font-size:18px;line-height:24px;margin-left:140px;text-align:justify;text-justify:inter-word}
#page #content #hero .content .address{font-size:120px;float:left}
#page #content #hero .content .cta{text-align:center;margin-top:10px;}
#page #content #hero .content .cta a{font-family:'MuseoSlab500Regular',serif;padding:11px 20px;-webkit-border-radius:2px;border-radius:2px;display:inline-block;margin:0 4px;}
#page #content #hero .content .cta{text-align:center;margin-top:10px}
#page #content #hero .content .cta a{font-family:'MuseoSlab500Regular',serif;padding:11px 20px;-webkit-border-radius:2px;border-radius:2px;display:inline-block;margin:0 4px}
#page #content #hero .content .cta a.primary{font-weight:bold;background:#c1041c;color:#fff}
#page #content #hero .content .cta a.secondary{background:#fff;color:#c1041c}
#page #content #add h2{color:#3e4457}
#page #content #add p{font-family:'MuseoSlab500Regular',serif;color:#b1b6c4;margin-top:10px;line-height:20px;text-align:justify;text-justify:inter-word;}
#page #content #add p{font-family:'MuseoSlab500Regular',serif;color:#b1b6c4;margin-top:10px;line-height:20px;text-align:justify;text-justify:inter-word}
#page #content #add p a{color:#3e4457}
#page #content #add .form{margin-top:20px;}
#page #content #add .form table{width:100%;}
#page #content #add .form{margin-top:20px}
#page #content #add .form table{width:100%}
#page #content #add .form table tr td:first-child{width:100%}
#page #content #add .form input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:10px;width:100%;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px;border:1px solid #dde1ed;border-right:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.2);box-shadow:inset 0 1px 2px rgba(0,0,0,0.2)}
#page #content #add .form a{margin-left:-2px;font-family:'MuseoSlab500Regular',serif;padding:11px 20px;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;display:inline-block;font-weight:bold;background:#c1041c;color:#fff}
#page #content #projects{border:1px solid #cdcecf;-webkit-border-radius:2px;border-radius:2px;}
#page #content #projects{border:1px solid #cdcecf;-webkit-border-radius:2px;border-radius:2px}
#page #content #projects h2{color:#3e4457;display:inline-block}
#page #content #projects .sort{float:right;line-height:30px}
#page #content #projects table{width:100%;}
#page #content #projects table tr td{background:#fcfcfc;padding:20px 30px;border-bottom:1px solid #eaecf2;}
#page #content #projects table tr td .project{color:inherit;}
#page #content #projects table{width:100%}
#page #content #projects table tr td{background:#fcfcfc;padding:20px 30px;border-bottom:1px solid #eaecf2}
#page #content #projects table tr td .project{color:inherit}
#page #content #projects table tr td .project .error{cursor:help;color:#c1041c}
#page #content #projects table tr td a.project{font-weight:bold}
#page #content #projects table tr td .milestone .icon{font-size:10px;margin:0}
#page #content #projects table tr td .progress{width:200px;}
#page #content #projects table tr td .progress{width:200px}
#page #content #projects table tr td .progress .percent,#page #content #projects table tr td .progress .due{color:#9399ad;font-size:13px}
#page #content #projects table tr td .progress .percent{float:right}
#page #content #projects table tr td .progress .bar{-webkit-border-radius:4px;border-radius:4px;background:#eaecf2;height:10px;width:100%;}
#page #content #projects table tr td .progress .bar{-webkit-border-radius:4px;border-radius:4px;background:#eaecf2;height:10px;width:100%}
#page #content #projects table tr td .progress .bar.inner{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.2);box-shadow:inset 0 1px 2px rgba(0,0,0,0.2)}
#page #content #projects table tr td .progress .bar.red{background:#c1041c}
#page #content #projects table tr td .progress .bar.green{background:#00b361}
@ -517,11 +145,22 @@ ul li{display:inline-block}
#page #content #projects table tr td:first-child{color:#3e4457}
#page #content #projects table tr:nth-child(even) td{background:#fefefe}
#page #content #projects table tr:last-child td{border:0}
#page #content #projects table tr.done td{background:#ebf6f1;}
#page #content #projects table tr.done td{background:#ebf6f1}
#page #content #projects table tr.done td .milestone,#page #content #projects table tr.done td .percent,#page #content #projects table tr.done td .due{color:#00b361}
#page #content #projects .header,#page #content #projects .footer{padding:20px 30px}
#page #content #projects .header{-webkit-box-shadow:0 1px 2px rgba(221,225,237,0.5);box-shadow:0 1px 2px rgba(221,225,237,0.5);margin-bottom:2px;border-bottom:1px solid #dde1ed;}
#page #content #projects .header{-webkit-box-shadow:0 1px 2px rgba(221,225,237,0.5);box-shadow:0 1px 2px rgba(221,225,237,0.5);margin-bottom:2px;border-bottom:1px solid #dde1ed}
#page #content #projects .header a{font-family:'MuseoSlab500Regular',serif}
#page #content #projects .footer{background:#f9fafb;color:#aaafbf;-webkit-box-shadow:inset 0 1px 2px rgba(221,225,237,0.2);box-shadow:inset 0 1px 2px rgba(221,225,237,0.2);border-top:1px solid #dde1ed;text-align:right;font-family:'MuseoSlab500Regular',serif;}
#page #content #projects .footer{background:#f9fafb;color:#aaafbf;-webkit-box-shadow:inset 0 1px 2px rgba(221,225,237,0.2);box-shadow:inset 0 1px 2px rgba(221,225,237,0.2);border-top:1px solid #dde1ed;text-align:right;font-family:'MuseoSlab500Regular',serif}
#page #content #projects .footer .icon{color:#aaafbf}
#footer{position:absolute;width:100%;bottom:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-top:1px solid #f3f4f8;text-align:center;padding:30px;font-family:'MuseoSlab500Regular',serif}
@-moz-keyframes spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}@-o-keyframes spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}@-ms-keyframes spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}@keyframes spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}
100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
{ Ractive, RactiveRactive, RactiveTransitionsFade } = require './modules/vendor.coffee'
# Lodash mixins.
require './utils/mixins.coffee'
# Will load projects from localStorage.

View File

@ -1,3 +1,5 @@
{ Firebase, FirebaseSimpleLogin } = require '../modules/vendor.coffee'
Model = require '../utils/model.coffee'
user = require './user.coffee'
config = require './config.coffee'

View File

@ -1,3 +1,5 @@
{ _, lscache } = require '../modules/vendor.coffee'
config = require '../models/config.coffee'
mediator = require '../modules/mediator.coffee'
Model = require '../utils/model.coffee'

View File

@ -1,3 +1,5 @@
{ d3 } = require '../vendor.coffee'
module.exports =
horizontal: (height, x) ->

View File

@ -1,3 +1,5 @@
{ _, d3 } = require '../../modules/vendor.coffee'
config = require '../../models/config.coffee'
module.exports =

View File

@ -1,3 +1,5 @@
{ _, async } = require '../vendor.coffee'
#!/usr/bin/env coffee
config = require '../../models/config.coffee'
request = require './request.coffee'

View File

@ -1,3 +1,5 @@
{ _, superagent } = require '../vendor.coffee'
user = require '../../models/user.coffee'
# Custom JSON parser.

View File

@ -1,3 +1,5 @@
{ Ractive } = require './vendor.coffee'
Mediator = Ractive.extend {}
module.exports = new Mediator()

View File

@ -1,3 +1,5 @@
{ _, director } = require './vendor.coffee'
mediator = require './mediator.coffee'
system = require '../models/system.coffee'
@ -34,7 +36,7 @@ routes =
window.location.hash = '#'
# Flatiron Director router.
module.exports = Router(routes).configure
module.exports = director.Router(routes).configure
'strict': no # allow trailing slashes
notfound: ->
throw 404

15
src/modules/vendor.coffee Normal file
View File

@ -0,0 +1,15 @@
# All our vendor dependencies in one place.moment
exports._ = exports.lodash = require 'lodash'
exports.Ractive = require 'Ractive'
exports.RactiveRactive = require 'ractive-ractive'
exports.RactiveTransitionsFade = require 'ractive-transitions-fade'
exports.Firebase = require 'Firebase'
exports.FirebaseSimpleLogin = require 'firebase-simple-login'
exports.superagent = require 'superagent'
exports.async = require 'async'
exports.moment = require 'moment'
exports.d3 = require 'd3'
exports.d3tip = require 'd3-tip'
exports.marked = require 'marked'
exports.director = require 'director'
exports.lscache = require 'lscache'

View File

@ -1,3 +1,5 @@
{ _, moment, marked } = require '../modules/vendor.coffee'
module.exports =
# Progress in percentages.

View File

@ -1,3 +1,5 @@
{ _ } = require '../modules/vendor.coffee'
_.mixin
'pluckMany': (source, keys) ->
throw '`keys` needs to be an Array' unless _.isArray keys

View File

@ -1,3 +1,5 @@
{ Ractive } = require '../modules/vendor.coffee'
module.exports = (opts) ->
Model = Ractive.extend(opts)
model = new Model()

View File

@ -1,3 +1,5 @@
{ Ractive, d3, d3tip } = require '../modules/vendor.coffee'
lines = require '../modules/chart/lines.coffee'
axes = require '../modules/chart/axes.coffee'

View File

@ -1,3 +1,5 @@
{ Ractive } = require '../modules/vendor.coffee'
{ system } = require '../models/system.coffee'
firebase = require '../models/firebase.coffee'
user = require '../models/user.coffee'

View File

@ -1,3 +1,5 @@
{ Ractive } = require '../modules/vendor.coffee'
mediator = require '../modules/mediator.coffee'
Icons = require './icons.coffee'

View File

@ -1,3 +1,5 @@
{ Ractive } = require '../modules/vendor.coffee'
format = require '../utils/format.coffee'
# Fontello icon hex codes.

View File

@ -1,3 +1,5 @@
{ _, Ractive, d3 } = require '../modules/vendor.coffee'
mediator = require '../modules/mediator.coffee'
Icons = require './icons.coffee'

View File

@ -1,3 +1,5 @@
{ _, Ractive, async } = require '../../modules/vendor.coffee'
Hero = require '../hero.coffee'
Projects = require '../tables/projects.coffee'

View File

@ -1,3 +1,5 @@
{ _, Ractive, async } = require '../../modules/vendor.coffee'
Chart = require '../chart.coffee'
projects = require '../../models/projects.coffee'

View File

@ -1,3 +1,5 @@
{ _, Ractive } = require '../../modules/vendor.coffee'
mediator = require '../../modules/mediator.coffee'
system = require '../../models/system.coffee'
user = require '../../models/user.coffee'

View File

@ -1,3 +1,5 @@
{ _, Ractive, async } = require '../../modules/vendor.coffee'
Milestones = require '../tables/milestones.coffee'
projects = require '../../models/projects.coffee'

View File

@ -1,3 +1,5 @@
{ Ractive } = require '../../modules/vendor.coffee'
mediator = require '../../modules/mediator.coffee'
projects = require '../../models/projects.coffee'
format = require '../../utils/format.coffee'

View File

@ -1,3 +1,5 @@
{ Ractive } = require '../../modules/vendor.coffee'
mediator = require '../../modules/mediator.coffee'
format = require '../../utils/format.coffee'
Icons = require '../icons.coffee'