├── .gitignore
├── README.md
├── labs
├── img
│ ├── .gitkeep
│ ├── lab01
│ │ ├── gulp.init.png
│ │ ├── gulp.serve.png
│ │ ├── gulp.test.png
│ │ ├── gulp.watch.png
│ │ └── welcome.png
│ ├── lab02
│ │ ├── breakpoint.png
│ │ ├── gulp.test.png
│ │ ├── howdy.partner.png
│ │ ├── karma.debug.png
│ │ ├── mocha.htmlreporter.png
│ │ ├── sourcemaps.png
│ │ └── woohoo.png
│ ├── lab03
│ │ └── first.page.png
│ ├── lab04
│ │ ├── employee.deleted.png
│ │ └── employees.png
│ ├── lab05
│ │ ├── create.employee.png
│ │ ├── edit.employee.png
│ │ ├── employees.png
│ │ ├── login.form.png
│ │ └── validation.errors.png
│ └── lab06
│ │ ├── progress.png
│ │ └── snackbar.png
├── lab-01-setup.md
├── lab-02-first-component.md
├── lab-03-routing.md
├── lab-04-flux.md
├── lab-05-forms.md
└── lab-06-custom-components.md
└── slidedeck
├── .bowerrc
├── .gitignore
├── README.md
├── bower.json
├── dist
├── assets
│ ├── css
│ │ ├── pdf.css
│ │ └── style.css
│ ├── font
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ ├── league_gothic-webfont.eot
│ │ ├── league_gothic-webfont.svg
│ │ ├── league_gothic-webfont.ttf
│ │ ├── league_gothic-webfont.woff
│ │ └── league_gothic_license
│ ├── img
│ │ ├── 2015-OPI-Logo-Long.png
│ │ ├── 2015-OPI-Logo-Stacked.png
│ │ ├── bootstrap-logo.png
│ │ ├── bower-logo.png
│ │ ├── browserify-logo.png
│ │ ├── emote
│ │ │ ├── awesome.gif
│ │ │ ├── mind-blown.gif
│ │ │ ├── protractor-flow.png
│ │ │ ├── scope.png
│ │ │ ├── transclude-frame.png
│ │ │ └── wat_grande.jpg
│ │ ├── flux-logo.png
│ │ ├── gulp-logo.png
│ │ ├── lecture-01
│ │ │ ├── gulp.test.png
│ │ │ └── mocha.htmlreporter.png
│ │ ├── lecture-04
│ │ │ └── flux.diagram.png
│ │ ├── node-logo.png
│ │ ├── opi-logo.png
│ │ └── react-logo.png
│ └── js
│ │ └── app.js
├── includes
│ └── mixins.html
├── index.html
├── lectures
│ ├── intro.html
│ ├── lecture-01.html
│ ├── lecture-02.html
│ ├── lecture-03.html
│ ├── lecture-04.html
│ ├── lecture-05.html
│ └── lecture-06.html
└── temp
│ ├── app.js
│ ├── pdf.css
│ └── style.css
├── gulpfile.js
├── package.json
├── publish.sh
└── src
├── assets
├── img
│ ├── 2015-OPI-Logo-Long.png
│ ├── 2015-OPI-Logo-Stacked.png
│ ├── bootstrap-logo.png
│ ├── bower-logo.png
│ ├── browserify-logo.png
│ ├── emote
│ │ ├── awesome.gif
│ │ ├── mind-blown.gif
│ │ ├── protractor-flow.png
│ │ ├── scope.png
│ │ ├── transclude-frame.png
│ │ └── wat_grande.jpg
│ ├── flux-logo.png
│ ├── gulp-logo.png
│ ├── lecture-01
│ │ ├── gulp.test.png
│ │ └── mocha.htmlreporter.png
│ ├── lecture-04
│ │ └── flux.diagram.png
│ ├── node-logo.png
│ ├── opi-logo.png
│ └── react-logo.png
├── js
│ └── components
│ │ ├── font-awesome
│ │ ├── .bower.json
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── bower.json
│ │ ├── css
│ │ │ ├── font-awesome.css
│ │ │ ├── font-awesome.css.map
│ │ │ └── font-awesome.min.css
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── less
│ │ │ ├── animated.less
│ │ │ ├── bordered-pulled.less
│ │ │ ├── core.less
│ │ │ ├── fixed-width.less
│ │ │ ├── font-awesome.less
│ │ │ ├── icons.less
│ │ │ ├── larger.less
│ │ │ ├── list.less
│ │ │ ├── mixins.less
│ │ │ ├── path.less
│ │ │ ├── rotated-flipped.less
│ │ │ ├── stacked.less
│ │ │ └── variables.less
│ │ └── scss
│ │ │ ├── _animated.scss
│ │ │ ├── _bordered-pulled.scss
│ │ │ ├── _core.scss
│ │ │ ├── _fixed-width.scss
│ │ │ ├── _icons.scss
│ │ │ ├── _larger.scss
│ │ │ ├── _list.scss
│ │ │ ├── _mixins.scss
│ │ │ ├── _path.scss
│ │ │ ├── _rotated-flipped.scss
│ │ │ ├── _stacked.scss
│ │ │ ├── _variables.scss
│ │ │ └── font-awesome.scss
│ │ ├── headjs
│ │ ├── .bower.json
│ │ ├── bower.json
│ │ └── dist
│ │ │ └── 1.0.0
│ │ │ ├── changelog.txt
│ │ │ ├── head.core.js
│ │ │ ├── head.core.min.js
│ │ │ ├── head.core.min.js.map
│ │ │ ├── head.css3.js
│ │ │ ├── head.css3.min.js
│ │ │ ├── head.css3.min.js.map
│ │ │ ├── head.js
│ │ │ ├── head.load.js
│ │ │ ├── head.load.min.js
│ │ │ ├── head.load.min.js.map
│ │ │ ├── head.min.js
│ │ │ └── head.min.js.map
│ │ ├── highlight.js
│ │ ├── .bower.json
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── component.json
│ │ ├── composer.json
│ │ ├── highlight.pack.js
│ │ └── styles
│ │ │ ├── arta.css
│ │ │ ├── ascetic.css
│ │ │ ├── atelier-dune.dark.css
│ │ │ ├── atelier-dune.light.css
│ │ │ ├── atelier-forest.dark.css
│ │ │ ├── atelier-forest.light.css
│ │ │ ├── atelier-heath.dark.css
│ │ │ ├── atelier-heath.light.css
│ │ │ ├── atelier-lakeside.dark.css
│ │ │ ├── atelier-lakeside.light.css
│ │ │ ├── atelier-seaside.dark.css
│ │ │ ├── atelier-seaside.light.css
│ │ │ ├── brown_paper.css
│ │ │ ├── brown_papersq.png
│ │ │ ├── codepen-embed.css
│ │ │ ├── color-brewer.css
│ │ │ ├── dark.css
│ │ │ ├── default.css
│ │ │ ├── docco.css
│ │ │ ├── far.css
│ │ │ ├── foundation.css
│ │ │ ├── github.css
│ │ │ ├── googlecode.css
│ │ │ ├── hybrid.css
│ │ │ ├── idea.css
│ │ │ ├── ir_black.css
│ │ │ ├── kimbie.dark.css
│ │ │ ├── kimbie.light.css
│ │ │ ├── magula.css
│ │ │ ├── mono-blue.css
│ │ │ ├── monokai.css
│ │ │ ├── monokai_sublime.css
│ │ │ ├── obsidian.css
│ │ │ ├── paraiso.dark.css
│ │ │ ├── paraiso.light.css
│ │ │ ├── pojoaque.css
│ │ │ ├── pojoaque.jpg
│ │ │ ├── railscasts.css
│ │ │ ├── rainbow.css
│ │ │ ├── school_book.css
│ │ │ ├── school_book.png
│ │ │ ├── solarized_dark.css
│ │ │ ├── solarized_light.css
│ │ │ ├── sunburst.css
│ │ │ ├── tomorrow-night-blue.css
│ │ │ ├── tomorrow-night-bright.css
│ │ │ ├── tomorrow-night-eighties.css
│ │ │ ├── tomorrow-night.css
│ │ │ ├── tomorrow.css
│ │ │ ├── vs.css
│ │ │ ├── xcode.css
│ │ │ └── zenburn.css
│ │ ├── jquery.classList
│ │ ├── .bower.json
│ │ ├── .eslintignore
│ │ ├── .eslintrc
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .jscsrc
│ │ ├── .jshintrc
│ │ ├── Gruntfile.js
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── package.json
│ │ └── src
│ │ │ ├── .eslintrc
│ │ │ └── jquery.class_list.js
│ │ ├── lesshat
│ │ ├── .bower.json
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── Gruntfile.js
│ │ ├── LICENSE
│ │ ├── README-template.md
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── build
│ │ │ ├── lesshat-prefixed.less
│ │ │ └── lesshat.less
│ │ ├── mixins
│ │ │ ├── align-content
│ │ │ │ ├── align-content.js
│ │ │ │ ├── align-content.md
│ │ │ │ └── test.js
│ │ │ ├── align-items
│ │ │ │ ├── align-items.js
│ │ │ │ ├── align-items.md
│ │ │ │ └── test.js
│ │ │ ├── align-self
│ │ │ │ ├── align-self.js
│ │ │ │ ├── align-self.md
│ │ │ │ └── test.js
│ │ │ ├── animation-delay
│ │ │ │ ├── animation-delay.js
│ │ │ │ ├── animation-delay.md
│ │ │ │ └── test.js
│ │ │ ├── animation-direction
│ │ │ │ ├── animation-direction.js
│ │ │ │ ├── animation-direction.md
│ │ │ │ └── test.js
│ │ │ ├── animation-duration
│ │ │ │ ├── animation-duration.js
│ │ │ │ ├── animation-duration.md
│ │ │ │ └── test.js
│ │ │ ├── animation-fill-mode
│ │ │ │ ├── animation-fill-mode.js
│ │ │ │ ├── animation-fill-mode.md
│ │ │ │ └── test.js
│ │ │ ├── animation-iteration-count
│ │ │ │ ├── animation-iteration-count.js
│ │ │ │ ├── animation-iteration-count.md
│ │ │ │ └── test.js
│ │ │ ├── animation-name
│ │ │ │ ├── animation-name.js
│ │ │ │ ├── animation-name.md
│ │ │ │ └── test.js
│ │ │ ├── animation-play-state
│ │ │ │ ├── animation-play-state.js
│ │ │ │ ├── animation-play-state.md
│ │ │ │ └── test.js
│ │ │ ├── animation-timing-function
│ │ │ │ ├── animation-timing-function.js
│ │ │ │ ├── animation-timing-function.md
│ │ │ │ └── test.js
│ │ │ ├── animation
│ │ │ │ ├── animation.js
│ │ │ │ ├── animation.md
│ │ │ │ └── test.js
│ │ │ ├── appearance
│ │ │ │ ├── appearance.js
│ │ │ │ ├── appearance.md
│ │ │ │ └── test.js
│ │ │ ├── backface-visibility
│ │ │ │ ├── backface-visibility.js
│ │ │ │ ├── backface-visibility.md
│ │ │ │ └── test.js
│ │ │ ├── background-clip
│ │ │ │ ├── background-clip.js
│ │ │ │ ├── background-clip.md
│ │ │ │ └── test.js
│ │ │ ├── background-image
│ │ │ │ ├── background-image.js
│ │ │ │ ├── background-image.md
│ │ │ │ └── test.js
│ │ │ ├── background-origin
│ │ │ │ ├── background-origin.js
│ │ │ │ ├── background-origin.md
│ │ │ │ └── test.js
│ │ │ ├── background-size
│ │ │ │ ├── background-size.js
│ │ │ │ ├── background-size.md
│ │ │ │ └── test.js
│ │ │ ├── blur
│ │ │ │ ├── blur.js
│ │ │ │ ├── blur.md
│ │ │ │ └── test.js
│ │ │ ├── border-bottom-left-radius
│ │ │ │ ├── border-bottom-left-radius.js
│ │ │ │ ├── border-bottom-left-radius.md
│ │ │ │ └── test.js
│ │ │ ├── border-bottom-right-radius
│ │ │ │ ├── border-bottom-right-radius.js
│ │ │ │ ├── border-bottom-right-radius.md
│ │ │ │ └── test.js
│ │ │ ├── border-image
│ │ │ │ ├── border-image.js
│ │ │ │ ├── border-image.md
│ │ │ │ └── test.js
│ │ │ ├── border-radius
│ │ │ │ ├── border-radius.js
│ │ │ │ ├── border-radius.md
│ │ │ │ └── test.js
│ │ │ ├── border-top-left-radius
│ │ │ │ ├── border-top-left-radius.js
│ │ │ │ ├── border-top-left-radius.md
│ │ │ │ └── test.js
│ │ │ ├── border-top-right-radius
│ │ │ │ ├── border-top-right-radius.js
│ │ │ │ ├── border-top-right-radius.md
│ │ │ │ └── test.js
│ │ │ ├── box-shadow
│ │ │ │ ├── box-shadow.js
│ │ │ │ ├── box-shadow.md
│ │ │ │ └── test.js
│ │ │ ├── box-sizing
│ │ │ │ ├── box-sizing.js
│ │ │ │ ├── box-sizing.md
│ │ │ │ └── test.js
│ │ │ ├── brightness
│ │ │ │ ├── brightness.js
│ │ │ │ ├── brightness.md
│ │ │ │ └── test.js
│ │ │ ├── calc
│ │ │ │ ├── calc.js
│ │ │ │ ├── calc.md
│ │ │ │ └── result.less
│ │ │ ├── column-count
│ │ │ │ ├── column-count.js
│ │ │ │ ├── column-count.md
│ │ │ │ └── test.js
│ │ │ ├── column-gap
│ │ │ │ ├── column-gap.js
│ │ │ │ ├── column-gap.md
│ │ │ │ └── test.js
│ │ │ ├── column-rule
│ │ │ │ ├── column-rule.js
│ │ │ │ ├── column-rule.md
│ │ │ │ └── test.js
│ │ │ ├── column-width
│ │ │ │ ├── column-width.js
│ │ │ │ ├── column-width.md
│ │ │ │ └── test.js
│ │ │ ├── columns
│ │ │ │ ├── columns.js
│ │ │ │ ├── columns.md
│ │ │ │ └── test.js
│ │ │ ├── contrast
│ │ │ │ ├── contrast.js
│ │ │ │ ├── contrast.md
│ │ │ │ └── test.js
│ │ │ ├── display
│ │ │ │ ├── display.js
│ │ │ │ ├── display.md
│ │ │ │ └── test.js
│ │ │ ├── drop-shadow
│ │ │ │ ├── drop-shadow.js
│ │ │ │ ├── drop-shadow.md
│ │ │ │ └── test.js
│ │ │ ├── filter
│ │ │ │ ├── filter.js
│ │ │ │ ├── filter.md
│ │ │ │ └── test.js
│ │ │ ├── flex-basis
│ │ │ │ ├── flex-basis.js
│ │ │ │ ├── flex-basis.md
│ │ │ │ └── test.js
│ │ │ ├── flex-direction
│ │ │ │ ├── flex-direction.js
│ │ │ │ ├── flex-direction.md
│ │ │ │ └── test.js
│ │ │ ├── flex-grow
│ │ │ │ ├── flex-grow.js
│ │ │ │ ├── flex-grow.md
│ │ │ │ └── test.js
│ │ │ ├── flex-shrink
│ │ │ │ ├── flex-shrink.js
│ │ │ │ ├── flex-shrink.md
│ │ │ │ └── test.js
│ │ │ ├── flex-wrap
│ │ │ │ ├── flex-wrap.js
│ │ │ │ ├── flex-wrap.md
│ │ │ │ └── test.js
│ │ │ ├── flex
│ │ │ │ ├── flex.js
│ │ │ │ ├── flex.md
│ │ │ │ └── test.js
│ │ │ ├── font-face
│ │ │ │ ├── font-face.less
│ │ │ │ └── font-face.md
│ │ │ ├── footer.less
│ │ │ ├── grayscale
│ │ │ │ ├── grayscale.js
│ │ │ │ ├── grayscale.md
│ │ │ │ └── test.js
│ │ │ ├── header.less
│ │ │ ├── hue-rotate
│ │ │ │ ├── hue-rotate.js
│ │ │ │ ├── hue-rotate.md
│ │ │ │ └── test.js
│ │ │ ├── hyphens
│ │ │ │ ├── hyphens.js
│ │ │ │ ├── hyphens.md
│ │ │ │ └── test.js
│ │ │ ├── invert
│ │ │ │ ├── invert.js
│ │ │ │ ├── invert.md
│ │ │ │ └── test.js
│ │ │ ├── justify-content
│ │ │ │ ├── justify-content.js
│ │ │ │ ├── justify-content.md
│ │ │ │ └── test.js
│ │ │ ├── keyframes
│ │ │ │ ├── keyframes.js
│ │ │ │ ├── keyframes.md
│ │ │ │ └── result.less
│ │ │ ├── opacity
│ │ │ │ ├── opacity.js
│ │ │ │ ├── opacity.md
│ │ │ │ └── test.js
│ │ │ ├── order
│ │ │ │ ├── order.js
│ │ │ │ ├── order.md
│ │ │ │ └── test.js
│ │ │ ├── perspective-origin
│ │ │ │ ├── perspective-origin.js
│ │ │ │ ├── perspective-origin.md
│ │ │ │ └── test.js
│ │ │ ├── perspective
│ │ │ │ ├── perspective.js
│ │ │ │ ├── perspective.md
│ │ │ │ └── test.js
│ │ │ ├── placeholder
│ │ │ │ ├── placeholder.less
│ │ │ │ └── placeholder.md
│ │ │ ├── properties.doc
│ │ │ ├── rotate
│ │ │ │ ├── rotate.js
│ │ │ │ ├── rotate.md
│ │ │ │ └── test.js
│ │ │ ├── rotate3d
│ │ │ │ ├── rotate3d.js
│ │ │ │ ├── rotate3d.md
│ │ │ │ └── test.js
│ │ │ ├── rotateX
│ │ │ │ ├── rotateX.js
│ │ │ │ ├── rotateX.md
│ │ │ │ └── test.js
│ │ │ ├── rotateY
│ │ │ │ ├── rotateY.js
│ │ │ │ ├── rotateY.md
│ │ │ │ └── test.js
│ │ │ ├── rotateZ
│ │ │ │ ├── rotateZ.js
│ │ │ │ ├── rotateZ.md
│ │ │ │ └── test.js
│ │ │ ├── saturate
│ │ │ │ ├── saturate.js
│ │ │ │ ├── saturate.md
│ │ │ │ └── test.js
│ │ │ ├── scale
│ │ │ │ ├── scale.js
│ │ │ │ ├── scale.md
│ │ │ │ └── test.js
│ │ │ ├── scale3d
│ │ │ │ ├── scale3d.js
│ │ │ │ ├── scale3d.md
│ │ │ │ └── test.js
│ │ │ ├── scaleX
│ │ │ │ ├── scaleX.js
│ │ │ │ ├── scaleX.md
│ │ │ │ └── test.js
│ │ │ ├── scaleY
│ │ │ │ ├── scaleY.js
│ │ │ │ ├── scaleY.md
│ │ │ │ └── test.js
│ │ │ ├── scaleZ
│ │ │ │ ├── scaleZ.js
│ │ │ │ ├── scaleZ.md
│ │ │ │ └── test.js
│ │ │ ├── selection
│ │ │ │ ├── result.less
│ │ │ │ ├── selection.js
│ │ │ │ └── selection.md
│ │ │ ├── sepia
│ │ │ │ ├── sepia.js
│ │ │ │ ├── sepia.md
│ │ │ │ └── test.js
│ │ │ ├── size
│ │ │ │ ├── size.less
│ │ │ │ └── size.md
│ │ │ ├── skew
│ │ │ │ ├── skew.js
│ │ │ │ ├── skew.md
│ │ │ │ └── test.js
│ │ │ ├── skewX
│ │ │ │ ├── skewX.js
│ │ │ │ ├── skewX.md
│ │ │ │ └── test.js
│ │ │ ├── skewY
│ │ │ │ ├── skewY.js
│ │ │ │ ├── skewY.md
│ │ │ │ └── test.js
│ │ │ ├── transform-origin
│ │ │ │ ├── test.js
│ │ │ │ ├── transform-origin.js
│ │ │ │ └── transform-origin.md
│ │ │ ├── transform-style
│ │ │ │ ├── test.js
│ │ │ │ ├── transform-style.js
│ │ │ │ └── transform-style.md
│ │ │ ├── transform
│ │ │ │ ├── test.js
│ │ │ │ ├── transform.js
│ │ │ │ └── transform.md
│ │ │ ├── transition-delay
│ │ │ │ ├── test.js
│ │ │ │ ├── transition-delay.js
│ │ │ │ └── transition-delay.md
│ │ │ ├── transition-duration
│ │ │ │ ├── test.js
│ │ │ │ ├── transition-duration.js
│ │ │ │ └── transition-duration.md
│ │ │ ├── transition-property
│ │ │ │ ├── test.js
│ │ │ │ ├── transition-property.js
│ │ │ │ └── transition-property.md
│ │ │ ├── transition-timing-function
│ │ │ │ ├── test.js
│ │ │ │ ├── transition-timing-function.js
│ │ │ │ └── transition-timing-function.md
│ │ │ ├── transition
│ │ │ │ ├── test.js
│ │ │ │ ├── transition.js
│ │ │ │ └── transition.md
│ │ │ ├── translate
│ │ │ │ ├── test.js
│ │ │ │ ├── translate.js
│ │ │ │ └── translate.md
│ │ │ ├── translate3d
│ │ │ │ ├── test.js
│ │ │ │ ├── translate3d.js
│ │ │ │ └── translate3d.md
│ │ │ ├── translateX
│ │ │ │ ├── test.js
│ │ │ │ ├── translateX.js
│ │ │ │ └── translateX.md
│ │ │ ├── translateY
│ │ │ │ ├── test.js
│ │ │ │ ├── translateY.js
│ │ │ │ └── translateY.md
│ │ │ ├── translateZ
│ │ │ │ ├── test.js
│ │ │ │ ├── translateZ.js
│ │ │ │ └── translateZ.md
│ │ │ └── user-select
│ │ │ │ ├── test.js
│ │ │ │ ├── user-select.js
│ │ │ │ └── user-select.md
│ │ └── package.json
│ │ └── reveal.js
│ │ ├── .bower.json
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── Gruntfile.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── css
│ │ ├── print
│ │ │ ├── paper.css
│ │ │ └── pdf.css
│ │ ├── reveal.css
│ │ ├── reveal.min.css
│ │ └── theme
│ │ │ ├── README.md
│ │ │ ├── beige.css
│ │ │ ├── blood.css
│ │ │ ├── default.css
│ │ │ ├── moon.css
│ │ │ ├── night.css
│ │ │ ├── serif.css
│ │ │ ├── simple.css
│ │ │ ├── sky.css
│ │ │ ├── solarized.css
│ │ │ ├── source
│ │ │ ├── beige.scss
│ │ │ ├── blood.scss
│ │ │ ├── default.scss
│ │ │ ├── moon.scss
│ │ │ ├── night.scss
│ │ │ ├── serif.scss
│ │ │ ├── simple.scss
│ │ │ ├── sky.scss
│ │ │ └── solarized.scss
│ │ │ └── template
│ │ │ ├── mixins.scss
│ │ │ ├── settings.scss
│ │ │ └── theme.scss
│ │ ├── index.html
│ │ ├── js
│ │ ├── reveal.js
│ │ └── reveal.min.js
│ │ ├── lib
│ │ ├── css
│ │ │ └── zenburn.css
│ │ ├── font
│ │ │ ├── league_gothic-webfont.eot
│ │ │ ├── league_gothic-webfont.svg
│ │ │ ├── league_gothic-webfont.ttf
│ │ │ ├── league_gothic-webfont.woff
│ │ │ └── league_gothic_license
│ │ └── js
│ │ │ ├── classList.js
│ │ │ ├── head.min.js
│ │ │ └── html5shiv.js
│ │ ├── package.json
│ │ ├── plugin
│ │ ├── highlight
│ │ │ └── highlight.js
│ │ ├── leap
│ │ │ └── leap.js
│ │ ├── markdown
│ │ │ ├── example.html
│ │ │ ├── example.md
│ │ │ ├── markdown.js
│ │ │ └── marked.js
│ │ ├── math
│ │ │ └── math.js
│ │ ├── multiplex
│ │ │ ├── client.js
│ │ │ ├── index.js
│ │ │ └── master.js
│ │ ├── notes-server
│ │ │ ├── client.js
│ │ │ ├── index.js
│ │ │ └── notes.html
│ │ ├── notes
│ │ │ ├── notes.html
│ │ │ └── notes.js
│ │ ├── postmessage
│ │ │ ├── example.html
│ │ │ └── postmessage.js
│ │ ├── print-pdf
│ │ │ └── print-pdf.js
│ │ ├── remotes
│ │ │ └── remotes.js
│ │ ├── search
│ │ │ └── search.js
│ │ └── zoom-js
│ │ │ └── zoom.js
│ │ └── test
│ │ ├── examples
│ │ ├── assets
│ │ │ ├── image1.png
│ │ │ └── image2.png
│ │ ├── barebones.html
│ │ ├── embedded-media.html
│ │ ├── math.html
│ │ └── slide-backgrounds.html
│ │ ├── qunit-1.12.0.css
│ │ ├── qunit-1.12.0.js
│ │ ├── test-markdown-element-attributes.html
│ │ ├── test-markdown-element-attributes.js
│ │ ├── test-markdown-slide-attributes.html
│ │ ├── test-markdown-slide-attributes.js
│ │ ├── test-markdown.html
│ │ ├── test-markdown.js
│ │ ├── test.html
│ │ └── test.js
└── less
│ ├── custom.less
│ ├── pdf.less
│ ├── reveal.less
│ ├── style.less
│ └── templates
│ ├── default.less
│ └── react.less
├── js
└── reveal.init.js
├── snippets.jade
└── views
├── includes
└── mixins.jade
├── index.jade
└── lectures
├── intro.jade
├── lecture-01.jade
├── lecture-02.jade
├── lecture-03.jade
├── lecture-04.jade
├── lecture-05.jade
└── lecture-06.jade
/.gitignore:
--------------------------------------------------------------------------------
1 | npm-debug.log
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | React Workshop Labs and Slides
2 | ================
3 |
4 | ## Labs ##
5 | Lab markdown files are located in the labs folder
6 |
7 | ## Slide Deck ##
8 | The slide deck is located in the slidedeck folder. You can access the
9 | slides using GitHub pages [here](http://objectpartners.github.io/react-workshop)
10 |
--------------------------------------------------------------------------------
/labs/img/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/.gitkeep
--------------------------------------------------------------------------------
/labs/img/lab01/gulp.init.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab01/gulp.init.png
--------------------------------------------------------------------------------
/labs/img/lab01/gulp.serve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab01/gulp.serve.png
--------------------------------------------------------------------------------
/labs/img/lab01/gulp.test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab01/gulp.test.png
--------------------------------------------------------------------------------
/labs/img/lab01/gulp.watch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab01/gulp.watch.png
--------------------------------------------------------------------------------
/labs/img/lab01/welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab01/welcome.png
--------------------------------------------------------------------------------
/labs/img/lab02/breakpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab02/breakpoint.png
--------------------------------------------------------------------------------
/labs/img/lab02/gulp.test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab02/gulp.test.png
--------------------------------------------------------------------------------
/labs/img/lab02/howdy.partner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab02/howdy.partner.png
--------------------------------------------------------------------------------
/labs/img/lab02/karma.debug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab02/karma.debug.png
--------------------------------------------------------------------------------
/labs/img/lab02/mocha.htmlreporter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab02/mocha.htmlreporter.png
--------------------------------------------------------------------------------
/labs/img/lab02/sourcemaps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab02/sourcemaps.png
--------------------------------------------------------------------------------
/labs/img/lab02/woohoo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab02/woohoo.png
--------------------------------------------------------------------------------
/labs/img/lab03/first.page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab03/first.page.png
--------------------------------------------------------------------------------
/labs/img/lab04/employee.deleted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab04/employee.deleted.png
--------------------------------------------------------------------------------
/labs/img/lab04/employees.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab04/employees.png
--------------------------------------------------------------------------------
/labs/img/lab05/create.employee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab05/create.employee.png
--------------------------------------------------------------------------------
/labs/img/lab05/edit.employee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab05/edit.employee.png
--------------------------------------------------------------------------------
/labs/img/lab05/employees.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab05/employees.png
--------------------------------------------------------------------------------
/labs/img/lab05/login.form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab05/login.form.png
--------------------------------------------------------------------------------
/labs/img/lab05/validation.errors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab05/validation.errors.png
--------------------------------------------------------------------------------
/labs/img/lab06/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab06/progress.png
--------------------------------------------------------------------------------
/labs/img/lab06/snackbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/labs/img/lab06/snackbar.png
--------------------------------------------------------------------------------
/slidedeck/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "src/assets/js/components"
3 | }
4 |
--------------------------------------------------------------------------------
/slidedeck/.gitignore:
--------------------------------------------------------------------------------
1 | src/assets/js/components
2 | node_modules
3 |
--------------------------------------------------------------------------------
/slidedeck/README.md:
--------------------------------------------------------------------------------
1 | ### Slided Deck Dependencies ###
2 |
3 | * [Node](http://nodejs.org/)
4 | * [Grunt](https://github.com/cowboy/grunt) `npm install -g grunt-cli`
5 | * [Bower](http://twitter.github.com/bower/) `npm install -g bower`
6 |
7 | ####Getting Started
8 | * Run `npm install` to install node dependencies
9 | * Run `bower install` to install client-side dependencies
10 |
11 | ####Grunt Commands
12 | `grunt assemble`
13 | * Minify/uglify the javascript source and css
14 | * Compiles jade
15 | * Stages everything in the dist folder
16 |
17 | `grunt run`
18 | * Starts a server running on port 8001
19 | * Watches for changes on project files
20 | * When files change, the assemble task is re-run and
21 | * Livereload triggers browser update on assemble task completion
22 |
23 | `grunt publish`
24 | * Publishes slides to GitHub pages
25 | * Uses git subtree merge to merge the contents of dist into the gh-pages branch
26 |
--------------------------------------------------------------------------------
/slidedeck/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-workshop-slides",
3 | "version": "0.0.1",
4 | "ignore": [
5 | "**/.*",
6 | "node_modules",
7 | "bower_components",
8 | "test",
9 | "tests"
10 | ],
11 | "dependencies": {
12 | "reveal.js": "2.6.1",
13 | "jquery.classList": "*",
14 | "headjs": "1.0.3",
15 | "lesshat": "~2.0.15",
16 | "font-awesome": "4.3.0",
17 | "highlight.js": "components/highlightjs#8.7.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/FontAwesome.otf
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/league_gothic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/league_gothic-webfont.eot
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/league_gothic-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/league_gothic-webfont.ttf
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/league_gothic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/font/league_gothic-webfont.woff
--------------------------------------------------------------------------------
/slidedeck/dist/assets/font/league_gothic_license:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/2015-OPI-Logo-Long.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/2015-OPI-Logo-Long.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/2015-OPI-Logo-Stacked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/2015-OPI-Logo-Stacked.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/bootstrap-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/bootstrap-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/bower-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/bower-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/browserify-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/browserify-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/emote/awesome.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/emote/awesome.gif
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/emote/mind-blown.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/emote/mind-blown.gif
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/emote/protractor-flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/emote/protractor-flow.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/emote/scope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/emote/scope.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/emote/transclude-frame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/emote/transclude-frame.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/emote/wat_grande.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/emote/wat_grande.jpg
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/flux-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/flux-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/gulp-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/gulp-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/lecture-01/gulp.test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/lecture-01/gulp.test.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/lecture-01/mocha.htmlreporter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/lecture-01/mocha.htmlreporter.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/lecture-04/flux.diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/lecture-04/flux.diagram.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/node-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/node-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/opi-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/opi-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/assets/img/react-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/assets/img/react-logo.png
--------------------------------------------------------------------------------
/slidedeck/dist/includes/mixins.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/dist/includes/mixins.html
--------------------------------------------------------------------------------
/slidedeck/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-workshop-slides",
3 | "version": "0.0.1",
4 | "description": "react-workshop-slides",
5 | "main": "index.js",
6 | "devDependencies": {
7 | "connect": "2.14.3",
8 | "connect-redirection": "0.0.1",
9 | "gulp": "^3.9.0",
10 | "gulp-clean": "^0.3.1",
11 | "gulp-concat": "^2.6.0",
12 | "gulp-connect": "^2.2.0",
13 | "gulp-cssmin": "^0.1.7",
14 | "gulp-jade": "^1.0.1",
15 | "gulp-less": "^3.0.3",
16 | "gulp-livereload": "^3.8.0",
17 | "gulp-uglify": "^1.2.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/slidedeck/publish.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | cd ../
4 | git subtree split --branch gh-pages --prefix slidedeck/dist/
5 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/2015-OPI-Logo-Long.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/2015-OPI-Logo-Long.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/2015-OPI-Logo-Stacked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/2015-OPI-Logo-Stacked.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/bootstrap-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/bootstrap-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/bower-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/bower-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/browserify-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/browserify-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/emote/awesome.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/emote/awesome.gif
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/emote/mind-blown.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/emote/mind-blown.gif
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/emote/protractor-flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/emote/protractor-flow.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/emote/scope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/emote/scope.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/emote/transclude-frame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/emote/transclude-frame.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/emote/wat_grande.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/emote/wat_grande.jpg
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/flux-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/flux-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/gulp-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/gulp-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/lecture-01/gulp.test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/lecture-01/gulp.test.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/lecture-01/mocha.htmlreporter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/lecture-01/mocha.htmlreporter.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/lecture-04/flux.diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/lecture-04/flux.diagram.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/node-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/node-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/opi-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/opi-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/img/react-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/img/react-logo.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "font-awesome",
3 | "description": "Font Awesome",
4 | "version": "4.3.0",
5 | "keywords": [],
6 | "homepage": "http://fontawesome.io",
7 | "dependencies": {},
8 | "devDependencies": {},
9 | "license": [
10 | "OFL-1.1",
11 | "MIT",
12 | "CC-BY-3.0"
13 | ],
14 | "main": [
15 | "./css/font-awesome.css",
16 | "./fonts/*"
17 | ],
18 | "ignore": [
19 | "*/.*",
20 | "*.json",
21 | "src",
22 | "*.yml",
23 | "Gemfile",
24 | "Gemfile.lock",
25 | "*.md"
26 | ],
27 | "_release": "4.3.0",
28 | "_resolution": {
29 | "type": "version",
30 | "tag": "v4.3.0",
31 | "commit": "e9665bad5b5b944da1095faf88209fabbfe725c1"
32 | },
33 | "_source": "git://github.com/FortAwesome/Font-Awesome.git",
34 | "_target": "4.3.0",
35 | "_originalSource": "font-awesome"
36 | }
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.egg-info
3 | *.db
4 | *.db.old
5 | *.swp
6 | *.db-journal
7 |
8 | .coverage
9 | .DS_Store
10 | .installed.cfg
11 | _gh_pages/*
12 |
13 | .idea/*
14 | .svn/*
15 | src/website/static/*
16 | src/website/media/*
17 |
18 | bin
19 | cfcache
20 | develop-eggs
21 | dist
22 | downloads
23 | eggs
24 | parts
25 | tmp
26 | .sass-cache
27 | node_modules
28 |
29 | src/website/settingslocal.py
30 | stunnel.log
31 |
32 | .ruby-version
33 | .bundle
34 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/.npmignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.egg-info
3 | *.db
4 | *.db.old
5 | *.swp
6 | *.db-journal
7 |
8 | .coverage
9 | .DS_Store
10 | .installed.cfg
11 | _gh_pages/*
12 |
13 | .idea/*
14 | .svn/*
15 | src/website/static/*
16 | src/website/media/*
17 |
18 | bin
19 | cfcache
20 | develop-eggs
21 | dist
22 | downloads
23 | eggs
24 | parts
25 | tmp
26 | .sass-cache
27 | node_modules
28 |
29 | src/website/settingslocal.py
30 | stunnel.log
31 |
32 | .ruby-version
33 |
34 | # don't need these in the npm package.
35 | src/
36 | _config.yml
37 | bower.json
38 | component.json
39 | composer.json
40 | CONTRIBUTING.md
41 | Gemfile
42 | Gemfile.lock
43 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "font-awesome",
3 | "description": "Font Awesome",
4 | "version": "4.3.0",
5 | "keywords": [],
6 | "homepage": "http://fontawesome.io",
7 | "dependencies": {},
8 | "devDependencies": {},
9 | "license": ["OFL-1.1", "MIT", "CC-BY-3.0"],
10 | "main": [
11 | "./css/font-awesome.css",
12 | "./fonts/*"
13 | ],
14 | "ignore": [
15 | "*/.*",
16 | "*.json",
17 | "src",
18 | "*.yml",
19 | "Gemfile",
20 | "Gemfile.lock",
21 | "*.md"
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .pull-right { float: right; }
11 | .pull-left { float: left; }
12 |
13 | .@{fa-css-prefix} {
14 | &.pull-left { margin-right: .3em; }
15 | &.pull-right { margin-left: .3em; }
16 | }
17 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .pull-right { float: right; }
11 | .pull-left { float: left; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.pull-left { margin-right: .3em; }
15 | &.pull-right { margin-left: .3em; }
16 | }
17 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/font-awesome/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/headjs/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "headjs",
3 | "description": "HeadJS: Responsive Design, Feature Detections & Asset Loading. The only script in your
",
4 | "version": "1.0.3",
5 | "license" : "MIT",
6 | "authors": [
7 | {"name": "Tero Piirainen"},
8 | {"name": "Robert Hoffmann"}
9 | ],
10 | "homepage " : "http://headjs.com",
11 | "main" : ["./dist/1.0.0/head.min.js","./dist/1.0.0/head.min.js.map","./dist/1.0.0/changelog.txt"],
12 | "ignore": [
13 | "**",
14 | "!/dist/1.0.0/*.js",
15 | "!/dist/1.0.0/*.map",
16 | "!/dist/1.0.0/*.txt"
17 | ],
18 | "directory": "public/scripts",
19 | "repository": {
20 | "type": "git", "url": "git://github.com/headjs/headjs.git"
21 | },
22 | "keywords": [
23 | "loader",
24 | "require",
25 | "polyfill",
26 | "html5",
27 | "css3",
28 | "feature",
29 | "responsive"
30 | ]
31 | }
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "highlightjs",
3 | "version": "8.7.0",
4 | "main": [
5 | "highlight.pack.min.js",
6 | "styles/default.css"
7 | ],
8 | "ignore": [
9 | "**/.*",
10 | "node_modules",
11 | "vendor",
12 | "components"
13 | ],
14 | "homepage": "https://github.com/components/highlightjs",
15 | "_release": "8.7.0",
16 | "_resolution": {
17 | "type": "version",
18 | "tag": "8.7.0",
19 | "commit": "3c0b4bc4a70ca3312437829c6d48ccd342467d74"
20 | },
21 | "_source": "git://github.com/components/highlightjs.git",
22 | "_target": "8.7.0",
23 | "_originalSource": "components/highlightjs"
24 | }
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/Makefile:
--------------------------------------------------------------------------------
1 | VERSION=8.7
2 |
3 | default: build
4 | @cp -f build/highlight.* .
5 | @cp -f highlight/src/styles/* styles
6 | @du -hs highlight.*
7 |
8 | build: highlight
9 | @cd highlight && git fetch && git checkout $(VERSION)
10 | @cd highlight && npm install
11 | @mkdir -p build
12 | @cd highlight && node tools/build.js && cp build/highlight.pack.js ../build/highlight.pack.min.js
13 | @cd highlight && node tools/build.js -n && cp build/highlight.pack.js ../build/highlight.pack.js
14 |
15 | highlight:
16 | @git clone git://github.com/isagalaev/highlight.js.git $@
17 |
18 | clean:
19 | @rm -rf build
20 |
21 | .PHONY: default
22 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/README.md:
--------------------------------------------------------------------------------
1 | Highlight.js
2 | ============
3 |
4 | Shim repository for [Highlight.js](http://highlightjs.org/).
5 |
6 | Package Managers
7 | ----------------
8 |
9 | * [Bower](http://bower.io): `highlightjs`
10 | * [Composer](http://packagist.org/packages/components/highlightjs): `components/highlightjs`
11 | * [Component](http://component.io): `components/highlightjs`
12 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "highlightjs",
3 | "version": "8.7.0",
4 | "main": [
5 | "highlight.pack.min.js",
6 | "styles/default.css"
7 | ],
8 | "ignore": [
9 | "**/.*",
10 | "node_modules",
11 | "vendor",
12 | "components"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/component.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "highlightjs",
3 | "repo": "components/highlightjs",
4 | "version": "8.7.0",
5 | "main": "highlight.pack.min.js",
6 | "scripts": [
7 | "highlight.pack.min.js"
8 | ],
9 | "files": [
10 | "styles/default.css"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "components/highlightjs",
3 | "description": "Highlight.js highlights syntax in code examples on blogs, forums and in fact on any web pages.",
4 | "type": "component",
5 | "license": "BSD-3-Clause",
6 | "authors": [
7 | {
8 | "name": "Ivan Sagalaev",
9 | "email": "maniac@softwaremaniacs.org",
10 | "homepage": "http://softwaremaniacs.org"
11 | }
12 | ],
13 | "extra": {
14 | "component": {
15 | "scripts": [
16 | "highlight.pack.min.js"
17 | ],
18 | "files": [
19 | "styles/*"
20 | ],
21 | "shim": {
22 | "exports": "hljs"
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/styles/brown_papersq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/highlight.js/styles/brown_papersq.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/styles/pojoaque.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/highlight.js/styles/pojoaque.jpg
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/highlight.js/styles/school_book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/improving-minnesota/react-workshop/2b58047bbd4faa957cb870a3ddd1b3c927417b4a/slidedeck/src/assets/js/components/highlight.js/styles/school_book.png
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/jquery.classList/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery.classList",
3 | "homepage": "https://github.com/mzgol/jquery.classList",
4 | "version": "0.2.0",
5 | "_release": "0.2.0",
6 | "_resolution": {
7 | "type": "version",
8 | "tag": "0.2.0",
9 | "commit": "b149428130d2cfe0c0cc07fe28b74b68a98a3ed8"
10 | },
11 | "_source": "git://github.com/mzgol/jquery.classList.git",
12 | "_target": "*",
13 | "_originalSource": "jquery.classList"
14 | }
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/jquery.classList/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules/**
2 | dist/**
3 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/jquery.classList/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/jquery.classList/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | .*~
3 | /dist/
4 | /node_modules/
5 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/jquery.classList/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "bitwise": true,
3 | "curly": true,
4 | "eqeqeq": true,
5 | "eqnull": true,
6 | "forin": false,
7 | "immed": true,
8 | "newcap": true,
9 | "noarg": true,
10 | "noempty": true,
11 | "nonew": true,
12 | "onevar": true,
13 | "strict": true,
14 | "trailing": true,
15 | "undef": true,
16 | "unused": false,
17 |
18 | "browser": true,
19 | "devel": true,
20 | "jquery": true,
21 |
22 | "quotmark": "single",
23 | "maxerr": 50,
24 | "maxlen": 120
25 | }
26 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/jquery.classList/src/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true
4 | },
5 |
6 | "globals": {
7 | "jQuery": false,
8 | "$": false
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lesshat",
3 | "version": "2.0.15",
4 | "main": "./build/lesshat.less",
5 | "homepage": "https://github.com/csshat/lesshat",
6 | "_release": "2.0.15",
7 | "_resolution": {
8 | "type": "version",
9 | "tag": "v2.0.15",
10 | "commit": "702a7d1286573a60fdf2e9e1445db5be8b4934e6"
11 | },
12 | "_source": "git://github.com/csshat/lesshat.git",
13 | "_target": "~2.0.15",
14 | "_originalSource": "lesshat"
15 | }
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.10"
4 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lesshat",
3 | "version": "2.0.15",
4 | "main": "./build/lesshat.less"
5 | }
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/align-content/align-content.md:
--------------------------------------------------------------------------------
1 | ### • align-content
2 | **Summary:**
3 |
4 | The CSS align-content property aligns a flex container's lines within the flex container when there is an extra space on the cross-axis. This property has no effect on the single line flexible boxes.
5 |
6 | Resources: **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/align-content)**, **[CSS-Tricks](http://css-tricks.com/almanac/properties/a/align-content/)**
7 |
8 | **Syntax:**
9 |
10 | Default value: stretch
11 |
12 | .align-content(flex-start | flex-end | center | space-between | space-around | stretch)
13 |
14 | **Example:**
15 |
16 | div {
17 | .align-content(flex-start);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-align-content: flex-start;
23 | -ms-flex-line-pack: start;
24 | align-content: flex-start;
25 | }
26 |
27 |
28 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/align-content/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('align-content', function() {
4 |
5 | /**
6 | * If you want to test this code, comment 'alignContent.result' from align-content.js
7 | */
8 | // it('should return start', function (done) {
9 | // test.alignContent.ms('flex-start', 'start', done);
10 | // });
11 |
12 | });
13 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/align-items/align-items.md:
--------------------------------------------------------------------------------
1 | ### • align-items
2 | **Summary:**
3 |
4 | The CSS align-items property aligns flex items of the current flex line the same way as justify-content but in the perpendicular direction.
5 |
6 | Resources: **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items)**, **[CSS-Tricks](http://css-tricks.com/almanac/properties/a/align-items/)**
7 |
8 | **Syntax:**
9 |
10 | Default value: stretch
11 |
12 | .align-items(flex-start | flex-end | center | baseline | stretch)
13 |
14 | **Example:**
15 |
16 | div {
17 | .align-items(flex-start);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-box-align: flex-start;
23 | -moz-box-align: start;
24 | -webkit-align-items: start;
25 | -ms-flex-align: flex-start;
26 | align-items: flex-start;
27 | }
28 |
29 |
30 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/align-items/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('align-items', function () {
4 |
5 | /**
6 | * If you want to test this code, comment 'alignItems.result' from align-items.js
7 | */
8 | // it('should return start', function (done) {
9 | // test.alignItems.ms('flex-start', 'start', done);
10 | // });
11 |
12 | });
13 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/align-self/align-self.js:
--------------------------------------------------------------------------------
1 | /**
2 | * AlignSelf (flexbox) mixin
3 | */
4 |
5 | var alignSelf = function alignSelf(value) {
6 | value = value || 'auto';
7 |
8 | return value;
9 | };
10 |
11 | alignSelf.ms = function msalignSelf(value) {
12 | value = value || 'auto';
13 |
14 | if (value == 'flex-start') {
15 | value = 'start';
16 | } else if (value == 'flex-end') {
17 | value = 'end';
18 | }
19 |
20 | return value;
21 | };
22 |
23 | /**
24 | * For which browsers is this mixin specified
25 | */
26 |
27 | alignSelf.vendors = ['webkit','ms'];
28 |
29 | /**
30 | * Export mixin
31 | */
32 |
33 | module.exports = alignSelf;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/align-self/align-self.md:
--------------------------------------------------------------------------------
1 | ### • align-self
2 | **Summary:**
3 |
4 | The align-self CSS property aligns flex items of the current flex line overriding the align-items value. If any of the flex item's cross-axis margin is set to auto, then align-self is ignored.
5 |
6 | Resources: **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/align-self)**, **[CSS-Tricks](http://css-tricks.com/almanac/properties/a/align-self/)**
7 |
8 | **Syntax:**
9 |
10 | Default value: auto
11 |
12 | .align-self(auto | flex-start | flex-end | center | baseline | stretch)
13 |
14 | **Example:**
15 |
16 | div {
17 | .align-self(flex-start);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-align-self: flex-start;
23 | -ms-align-self: start;
24 | align-self: flex-start;
25 | }
26 |
27 |
28 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/align-self/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('align-self', function () {
4 |
5 | it('should return start', function (done) {
6 | test.alignSelf.ms('flex-start', 'start', done);
7 | });
8 |
9 | });
10 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-delay/animation-delay.js:
--------------------------------------------------------------------------------
1 | /**
2 | * AnimationDelay mixin
3 | */
4 |
5 | var animationDelay = function animationDelay(value) {
6 | value = value || '0';
7 | var valueRegex = /(?:\d)(?:ms|s)/gi;
8 | var numWithoutValue = /(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;
9 |
10 | if (!valueRegex.test(value) && value !== '0') {
11 | value = value.replace(numWithoutValue, function(match) {
12 |
13 | if (parseFloat(match, 10) > 10) {
14 | match += 'ms';
15 | } else {
16 | match += 's';
17 | }
18 |
19 | return match;
20 | });
21 | }
22 |
23 | return value;
24 | };
25 |
26 | /**
27 | * For which browsers is this mixin specified
28 | */
29 |
30 | animationDelay.vendors = ['webkit', 'moz', 'opera'];
31 |
32 | /**
33 | * Export mixin
34 | */
35 |
36 | module.exports = animationDelay;
37 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-delay/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-delay', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationDelay('2s, 4s', '2s, 4s', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.animationDelay('200ms', '200ms', done);
11 | });
12 |
13 | it('should return numbers with second and milisecond value', function(done) {
14 | test.animationDelay('9, 200', '9s, 200ms', done);
15 | });
16 |
17 | it('should return the same value', function(done) {
18 | test.animationDelay('.2s', '0.2s', done);
19 | });
20 |
21 | it('should add unit and return the same value', function(done) {
22 | test.animationDelay('.2', '0.2s', done);
23 | });
24 |
25 | });
26 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-direction/animation-direction.js:
--------------------------------------------------------------------------------
1 | /**
2 | * animationDirection mixin
3 | */
4 |
5 | var animationDirection = function animationDirection(value) {
6 | return value || 'normal';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | animationDirection.vendors = ['webkit', 'moz', 'opera'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = animationDirection;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-direction/animation-direction.md:
--------------------------------------------------------------------------------
1 | ### • animation-direction
2 | **Summary:**
3 |
4 | The animation-direction CSS property indicates whether the animation should play in reverse on alternate cycles.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/animation-direction)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction)**
7 |
8 | **Syntax:**
9 |
10 | Default value: normal
11 |
12 | .animation-direction(, …)
13 |
14 | **Example:**
15 |
16 | div {
17 | .animation-direction(reverse, alternate);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-animation-direction: reverse, alternate;
23 | -moz-animation-direction: reverse, alternate;
24 | -opera-animation-direction: reverse, alternate;
25 | animation-direction: reverse, alternate;
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-direction/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-direction', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationDirection('reverse', 'reverse', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.animationDirection('reverse, alternate', 'reverse, alternate', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-duration/animation-duration.js:
--------------------------------------------------------------------------------
1 | /**
2 | * animationDuration mixin
3 | */
4 |
5 | var animationDuration = function animationDuration(value) {
6 | value = value || '0';
7 | var valueRegex = /ms|s/gi;
8 | var numWithoutValue = /(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;
9 |
10 | if (!valueRegex.test(value) && value !== '0') {
11 | value = value.replace(numWithoutValue, function(match) {
12 |
13 | if (parseFloat(match, 10) > 10) {
14 | match += 'ms';
15 | } else {
16 | match += 's';
17 | }
18 |
19 | return match;
20 | });
21 | }
22 |
23 | return value;
24 | };
25 |
26 | /**
27 | * For which browsers is this mixin specified
28 | */
29 |
30 | animationDuration.vendors = ['webkit', 'moz', 'opera'];
31 |
32 | /**
33 | * Export mixin
34 | */
35 |
36 | module.exports = animationDuration;
37 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-duration/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-duration', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationDuration('2s', '2s', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.animationDuration('200ms, 400ms', '200ms, 400ms', done);
11 | });
12 |
13 | it('should return number with ms', function(done) {
14 | test.animationDuration('2000', '2000ms', done);
15 | });
16 |
17 | it('should return number with s', function(done) {
18 | test.animationDuration('5', '5s', done);
19 | });
20 |
21 | it('should return the same value', function(done) {
22 | test.animationDuration('.3s', '0.3s', done);
23 | });
24 |
25 | });
26 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-fill-mode/animation-fill-mode.js:
--------------------------------------------------------------------------------
1 | /**
2 | * animationFillMode mixin
3 | */
4 |
5 | var animationFillMode = function animationFillMode(value) {
6 | return value || 'none';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | animationFillMode.vendors = ['webkit', 'moz', 'opera'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = animationFillMode;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-fill-mode/animation-fill-mode.md:
--------------------------------------------------------------------------------
1 | ### • animation-fill-mode
2 | **Summary:**
3 |
4 | The animation-fill-mode CSS property specifies how a CSS animation should apply styles to its target before and after it is executing.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/animation-fill-mode)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode)**
7 |
8 | **Syntax:**
9 |
10 | Default value: none
11 |
12 | .animation-fill-mode(, …)
13 |
14 | **Example:**
15 |
16 | div {
17 | .animation-fill-mode(forwards);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-animation-fill-mode: forwards;
23 | -moz-animation-fill-mode: forwards;
24 | -opera-animation-fill-mode: forwards;
25 | animation-fill-mode: forwards;
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-fill-mode/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-fill-mode', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationFillMode('forwards', 'forwards', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.animationFillMode('forwards, both', 'forwards, both', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-iteration-count/animation-iteration-count.js:
--------------------------------------------------------------------------------
1 | /**
2 | * animationIterationCount mixin
3 | */
4 |
5 | var animationIterationCount = function animationIterationCount(value) {
6 | return value || '0';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | animationIterationCount.vendors = ['webkit', 'moz', 'opera'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = animationIterationCount;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-iteration-count/animation-iteration-count.md:
--------------------------------------------------------------------------------
1 | ### • animation-iteration-count
2 | **Summary:**
3 |
4 | The animation-iteration-count CSS property specifies how a CSS animation should apply styles to its target before and after it is executing.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/animation-iteration-count)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-iteration-count)**
7 |
8 | **Syntax:**
9 |
10 | Default value: 1
11 |
12 | .animation-iteration-count(, …)
13 |
14 | **Example:**
15 |
16 | div {
17 | .animation-iteration-count(3);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-animation-iteration-count: 3;
23 | -moz-animation-iteration-count: 3;
24 | -opera-animation-iteration-count: 3;
25 | animation-iteration-count: 3;
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-iteration-count/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-iteration-count', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationIterationCount('3', '3', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.animationIterationCount('11, 44', '11, 44', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-name/animation-name.js:
--------------------------------------------------------------------------------
1 | /**
2 | * animationName mixin
3 | */
4 |
5 | var animationName = function animationName(value) {
6 | return value || 'none';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | animationName.vendors = ['webkit', 'moz', 'opera'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = animationName;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-name/animation-name.md:
--------------------------------------------------------------------------------
1 | ### • animation-name
2 | **Summary:**
3 |
4 | The animation-name CSS property specifies a list of animations that should be applied to the selected element. Each name indicates a @keyframes at-rule that defines the property values for the animation sequence.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/animation-name)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-name)**
7 |
8 | **Syntax:**
9 |
10 | Default value: none
11 |
12 | .animation-name(, …)
13 |
14 | **Example:**
15 |
16 | div {
17 | .animation-name(animation-1, animation-2);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-animation-name: animation-1, animation-2;
23 | -moz-animation-name: animation-1, animation-2;
24 | -opera-animation-name: animation-1, animation-2;
25 | animation-name: animation-1, animation-2;
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-name/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-name', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationName('brutalAnimation', 'brutalAnimation', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.animationName('anim-1, anim-2, anim-3', 'anim-1, anim-2, anim-3', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-play-state/animation-play-state.js:
--------------------------------------------------------------------------------
1 | /**
2 | * animationPlayState mixin
3 | */
4 |
5 | var animationPlayState = function animationPlayState(value) {
6 | return value || 'running';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | animationPlayState.vendors = ['webkit', 'moz', 'opera'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = animationPlayState;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-play-state/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-play-state', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationPlayState('running', 'running', done);
7 | });
8 |
9 | it('should return the default value running', function(done) {
10 | test.animationPlayState('', 'running', done);
11 | });
12 |
13 |
14 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-timing-function/animation-timing-function.js:
--------------------------------------------------------------------------------
1 | /**
2 | * animationTimingFunction mixin
3 | */
4 |
5 | var animationTimingFunction = function animationTimingFunction(value) {
6 | return value || 'ease';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | animationTimingFunction.vendors = ['webkit', 'moz', 'opera'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = animationTimingFunction;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation-timing-function/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('animation-timing-function', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.animationTimingFunction('cubic-bezier(0.42,0,0.58,1)', 'cubic-bezier(0.42, 0, 0.58, 1)', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.animationTimingFunction('cubic-bezier(0.42,0,0.58,1), cubic-bezier(0.42,0,0.58,1)', 'cubic-bezier(0.42, 0, 0.58, 1), cubic-bezier(0.42, 0, 0.58, 1)', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation/animation.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Animation mixin
3 | */
4 |
5 | var animation = function animation(value) {
6 | value = value || 'none';
7 |
8 | if (/^[^, ]*,/.test(value)) {
9 | value = value.replace(/(?:,)(?![^(]*\))/g, '');
10 | }
11 |
12 | return value;
13 | };
14 |
15 | /**
16 | * For which browsers is this mixin specified
17 | */
18 |
19 | animation.vendors = ['webkit', 'moz', 'opera'];
20 |
21 | /**
22 | * Export mixin
23 | */
24 |
25 | module.exports = animation;
26 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation/animation.md:
--------------------------------------------------------------------------------
1 | ### • animation
2 | **Summary:**
3 |
4 | Shorthand to define a CSS animation, setting all parameters at once.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/animation/animation)**, **[CSS3files](http://www.css3files.com/animation/)**
7 |
8 | **Syntax:**
9 |
10 | Default value: none
11 |
12 | .animation(animation-name | animation-duration | animation-timing-function | animation-delay | animation-iteration-count | animation-direction | animation-fill-mode , […]*)
13 |
14 | **Example:**
15 |
16 | div {
17 | .animation(nameAnimation 2s linear alternate);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-animation: nameAnimation 2s linear alternate;
23 | -moz-animation: nameAnimation 2s linear alternate;
24 | -opera-animation: nameAnimation 2s linear alternate;
25 | animation: nameAnimation 2s linear alternate;
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/animation/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 |
4 | describe('animation', function() {
5 |
6 | it('should add zero before dot and return the same value', function(done) {
7 | test.animation('nameAnimation .2s', 'nameAnimation 0.2s', done);
8 | });
9 |
10 | it('should return the same value', function(done) {
11 | test.animation('nameAnimation 2s linear alternate, nameAnimation2 1s linear alternate', 'nameAnimation 2s linear alternate, nameAnimation2 1s linear alternate', done);
12 | });
13 |
14 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/appearance/appearance.js:
--------------------------------------------------------------------------------
1 | /**
2 | * appearance mixin
3 | */
4 |
5 | var appearance = function appearance(value) {
6 | return value || 'none';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | appearance.vendors = ['webkit', 'moz'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = appearance;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/appearance/appearance.md:
--------------------------------------------------------------------------------
1 | ### • appearance
2 | **Summary:**
3 |
4 | Allows changing the style of any element to platform-based interface elements or vice versa.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/appearance)**, **[CSS-Tricks](http://css-tricks.com/almanac/properties/a/appearance/)**
7 |
8 | **Syntax:**
9 |
10 | Default value: none
11 |
12 | .appearance()
13 |
14 | **Example:**
15 |
16 | div {
17 | .appearance();
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-appearance: none;
23 | -moz-appearance: none;
24 | appearance: none;
25 | }
26 |
27 |
28 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/appearance/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('appearance', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.appearance('button', 'button', done);
7 | });
8 |
9 | it('should return the default value none', function(done) {
10 | test.appearance('', 'none', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/backface-visibility/backface-visibility.js:
--------------------------------------------------------------------------------
1 | /**
2 | * backfaceVisibility mixin
3 | */
4 |
5 | var backfaceVisibility = function backfaceVisibility(value) {
6 | return value || 'visible';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | backfaceVisibility.vendors = ['webkit', 'moz', 'opera', 'ms'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = backfaceVisibility;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/backface-visibility/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('backface-visibility', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.backfaceVisibility('hidden', 'hidden', done);
7 | });
8 |
9 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-clip/background-clip.js:
--------------------------------------------------------------------------------
1 | /**
2 | * backgroundClip mixin
3 | */
4 |
5 | var backgroundClip = function backgroundClip(value) {
6 | return value || 'border-box';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | backgroundClip.vendors = ['webkit', 'moz'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = backgroundClip;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-clip/background-clip.md:
--------------------------------------------------------------------------------
1 | ### • background-clip
2 | **Summary:**
3 |
4 | The background-clip CSS property specifies whether an element's background, either the color or image, extends underneath its border.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/background-clip)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip)**
7 |
8 | **Syntax:**
9 |
10 | Default value: border-box
11 |
12 | .background-clip()
13 |
14 | **Example:**
15 |
16 | div {
17 | .background-clip(padding-box);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-background-clip: padding-box;
23 | -moz-background-clip: padding-box;
24 | background-clip: padding-box;
25 | }
26 |
27 |
28 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-clip/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('background-clip', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.backgroundClip('padding-box', 'padding-box', done);
7 | });
8 |
9 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-origin/background-origin.js:
--------------------------------------------------------------------------------
1 | /**
2 | * backgroundOrigin mixin
3 | */
4 |
5 | var backgroundOrigin = function backgroundOrigin(value) {
6 | return value || 'padding-box';
7 | };
8 |
9 | /**
10 | * For which browsers is this mixin specified
11 | */
12 |
13 | backgroundOrigin.vendors = ['webkit', 'moz'];
14 |
15 | /**
16 | * Export mixin
17 | */
18 |
19 | module.exports = backgroundOrigin;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-origin/background-origin.md:
--------------------------------------------------------------------------------
1 | ### • background-origin
2 | **Summary:**
3 |
4 | The background-origin CSS property determines the background positioning area, that is the position of the origin of an image specified using the background-image CSS property.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/background-origin)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/background-origin)**
7 |
8 | **Syntax:**
9 |
10 | Default value: padding-box
11 |
12 | .background-origin()
13 |
14 | **Example:**
15 |
16 | div {
17 | .background-origin(content-box);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-background-origin: content-box;
23 | -moz-background-origin: content-box;
24 | background-origin: content-box;
25 | }
26 |
27 |
28 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-origin/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('background-origin', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.backgroundOrigin('content-box', 'content-box', done);
7 | });
8 |
9 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-size/background-size.js:
--------------------------------------------------------------------------------
1 | /**
2 | * backgroundSize mixin
3 | */
4 |
5 | var backgroundSize = function backgroundSize(value) {
6 | value = value || 'auto auto';
7 | var numRegex = /\d/gi;
8 | var numWithoutValue = /(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;
9 |
10 | if (/^[^, ]*,/.test(value)) {
11 | value = value.replace(/(?:,)(?![^(]*\))/g, '');
12 | }
13 |
14 | if (numRegex.test(value)) {
15 | value = value.replace(numWithoutValue, function(match) {
16 | return (match == 0) && match || match + 'px';
17 | });
18 | }
19 |
20 | return value;
21 | };
22 |
23 | /**
24 | * For which browsers is this mixin specified
25 | */
26 |
27 | backgroundSize.vendors = ['webkit', 'moz'];
28 |
29 | /**
30 | * Export mixin
31 | */
32 |
33 | module.exports = backgroundSize;
34 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-size/background-size.md:
--------------------------------------------------------------------------------
1 | ### • background-size
2 | **Summary:**
3 |
4 | The background-size CSS property specifies the size of the background images. The size of the image can be fully constrained or only partially in order to preserve its intrinsic ratio.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/background-size)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/background-size)**
7 |
8 | **Syntax:**
9 |
10 | Default value: auto auto
11 |
12 | .background-size(, ...)
13 |
14 | **Tips and tricks:**
15 |
16 | If you omit units, `background-size` adds `px` automatically.
17 |
18 | **Example:**
19 |
20 | div {
21 | .background-size(cover, 100%);
22 | }
23 |
24 | // Result
25 | div {
26 | -webkit-background-size: cover, 100%;
27 | -moz-background-size: cover, 100%;
28 | background-size: cover, 100%;
29 | }
30 |
31 |
32 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/background-size/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('background-size', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.backgroundSize('cover 100%', 'cover 100%', done);
7 | });
8 |
9 | it('should return numbers with px', function(done) {
10 | test.backgroundSize('400 300', '400px 300px', done);
11 | });
12 |
13 | it('should return the same value', function(done) {
14 | test.backgroundSize('.25em cover', '0.25em cover', done);
15 | });
16 |
17 | });
18 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/blur/blur.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Blur mixin
3 | */
4 |
5 | var blur = function blur(value) {
6 | value = value || '0';
7 | var numRegex = /\d/gi;
8 | var numWithoutValue = /(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;
9 |
10 | if (numRegex.test(value)) {
11 | value = value.replace(numWithoutValue, function(match) {
12 | return (match == 0) && match || match + 'px';
13 | });
14 | }
15 |
16 | return value;
17 | };
18 |
19 | /**
20 | * Result settings
21 | */
22 |
23 | blur.result = {
24 | property: 'filter',
25 | value: 'blur({{ result }})',
26 | };
27 |
28 | /**
29 | * For which browsers is this mixin specified
30 | */
31 |
32 | blur.vendors = ['webkit', 'moz', 'ms'];
33 |
34 | /**
35 | * Export mixin
36 | */
37 |
38 | module.exports = blur;
39 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/blur/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('blur', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.resultProperty = 'filter';
7 | test.blur('10', 'blur(10px)', done);
8 | });
9 |
10 | it('should return the same value', function(done) {
11 | test.resultProperty = 'filter';
12 | test.blur('0.6em', 'blur(0.6em)', done);
13 | });
14 |
15 | });
16 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/border-bottom-left-radius/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('border-bottom-left-radius', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.borderBottomLeftRadius('10px', '10px', done);
7 | });
8 |
9 | it('should return numbers with px', function(done) {
10 | test.borderBottomLeftRadius('20', '20px', done);
11 | });
12 |
13 | it('should return numbers with px', function(done) {
14 | test.resultProperty = 'border-radius-bottomleft';
15 | test.borderBottomLeftRadius.moz('20', '20px', done);
16 | });
17 |
18 | });
19 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/border-bottom-right-radius/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('border-bottom-right-radius', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.borderBottomRightRadius('10px', '10px', done);
7 | });
8 |
9 | it('should return numbers with px', function(done) {
10 | test.borderBottomRightRadius('20', '20px', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/border-image/border-image.js:
--------------------------------------------------------------------------------
1 | /**
2 | * borderImage mixin
3 | */
4 |
5 | var borderImage = function borderImage(value) {
6 | value = value || 08121991;
7 |
8 | if (/^[^, ]*,/.test(value)) {
9 | value = value.replace(/(?:,)(?![^(]*\))/g, '');
10 | }
11 |
12 | return value;
13 | };
14 |
15 | /**
16 | * For which browsers is this mixin specified
17 | */
18 |
19 | borderImage.vendors = ['webkit', 'moz', 'opera'];
20 |
21 | /**
22 | * Export mixin
23 | */
24 |
25 | module.exports = borderImage;
26 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/border-image/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('border-image', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.borderImage('url(border.png) 61 45 62 54 repeat', 'url(border.png) 61 45 62 54 repeat', done);
7 | });
8 |
9 | it('should return the same value', function(done) {
10 | test.borderImage('url(../images/border.png) 61 45 62 54 repeat', 'url(../images/border.png) 61 45 62 54 repeat', done);
11 | });
12 |
13 | });
14 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/border-radius/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('border-radius', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.borderRadius('10px', '10px', done);
7 | });
8 |
9 | it('should return numbers with px', function(done) {
10 | test.borderRadius('20 30', '20px 30px', done);
11 | });
12 |
13 | it('should return the same value', function(done) {
14 | test.borderRadius('0.33em', '0.33em', done);
15 | });
16 |
17 | it('should return the same value', function(done) {
18 | test.borderRadius('.46em', '0.46em', done);
19 | });
20 |
21 | });
22 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/border-top-left-radius/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('border-top-left-radius', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.borderTopLeftRadius('10px', '10px', done);
7 | });
8 |
9 | it('should return numbers with px', function(done) {
10 | test.borderTopLeftRadius('20', '20px', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/border-top-right-radius/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('border-top-right-radius', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.borderTopRightRadius('10px', '10px', done);
7 | });
8 |
9 | it('should return numbers with px', function(done) {
10 | test.borderTopRightRadius('20', '20px', done);
11 | });
12 |
13 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/box-shadow/box-shadow.js:
--------------------------------------------------------------------------------
1 | /**
2 | * boxShadow mixin
3 | */
4 |
5 | boxShadow = function boxShadow(value) {
6 | value = value || '0';
7 | var numRegex = /\d/gi;
8 | var numWithoutValue = /(?:\s|^)(\.?\d+\.?\d*)(?![^(]*\)|\w|%|\.)/gi;
9 |
10 | if (/^[^, ]*,/.test(value)) {
11 | value = value.replace(/(?:,)(?![^(]*\))/g, '');
12 | }
13 |
14 | if (numRegex.test(value)) {
15 | value = value.replace(numWithoutValue, function(match) {
16 | return (match == 0) && match || match + 'px';
17 | });
18 | }
19 |
20 | return value;
21 | };
22 |
23 | /**
24 | * For which browsers is this mixin specified
25 | */
26 |
27 | boxShadow.vendors = ['webkit', 'moz'];
28 |
29 | /**
30 | * Export mixin
31 | */
32 |
33 | module.exports = boxShadow;
34 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/box-shadow/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('box-shadow', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.boxShadow('0 1px 10px rgba(20,20,20,0.5)', '0 1px 10px rgba(20, 20, 20, 0.5)', done);
7 | });
8 |
9 | it('should add px for numbers', function(done) {
10 | test.boxShadow('5 4 100 rgba(20,20,20,0.5)', '5px 4px 100px rgba(20, 20, 20, 0.5)', done);
11 | });
12 |
13 | it('should add px for numbers', function(done) {
14 | test.boxShadow('5 4 100 rgba(20,20,20,0.5), inset 5 4 100 rgba(20,20,20,0.5)', '5px 4px 100px rgba(20, 20, 20, 0.5), inset 5px 4px 100px rgba(20, 20, 20, 0.5)', done);
15 | });
16 |
17 | it('should return the same value', function(done) {
18 | test.boxShadow('0em 0.125em 0.3125em 0em rgba(0, 0, 0, 0.5)', '0em 0.125em 0.3125em 0em rgba(0, 0, 0, 0.5)', done);
19 | });
20 |
21 | });
22 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/box-sizing/box-sizing.js:
--------------------------------------------------------------------------------
1 | /**
2 | * BoxSizing mixin
3 | */
4 |
5 | var boxSizing = function boxSizing(value) {
6 | value = value || 'content-box';
7 |
8 | return value;
9 | };
10 |
11 | /**
12 | * For which browsers is this mixin specified
13 | */
14 |
15 | boxSizing.vendors = ['webkit', 'moz'];
16 |
17 |
18 | /**
19 | * Export mixin
20 | */
21 |
22 | module.exports = boxSizing;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/box-sizing/box-sizing.md:
--------------------------------------------------------------------------------
1 | ### • box-sizing
2 | **Summary:**
3 |
4 | The box-sizing CSS property is used to alter the default CSS box model used to calculate widths and heights of elements. It is possible to use this property to emulate the behavior of browsers that do not correctly support the CSS box model specification.
5 |
6 | Resources: **[WebPlatform](http://docs.webplatform.org/wiki/css/properties/box-sizing)**, **[MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing)**
7 |
8 | **Syntax:**
9 |
10 | Default value: content-box
11 |
12 | .box-sizing(content-box | padding-box | border-box)
13 |
14 | **Example:**
15 |
16 | div {
17 | .box-sizing(padding-box);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-box-sizing: padding-box;
23 | -moz-box-sizing: padding-box;
24 | box-sizing: padding-box;
25 | }
26 |
27 |
28 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/box-sizing/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('box-sizing', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.boxSizing('border-box', 'border-box', done);
7 | });
8 |
9 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/brightness/brightness.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Brightness mixin
3 | */
4 |
5 | var brightness = function brightness(value) {
6 | value = value || '1';
7 |
8 | return value;
9 | };
10 |
11 | /**
12 | * Result settings
13 | */
14 |
15 | brightness.result = {
16 | property: 'filter',
17 | value: 'brightness({{ result }})',
18 | };
19 |
20 | /**
21 | * For which browsers is this mixin specified
22 | */
23 |
24 | brightness.vendors = ['webkit', 'moz', 'ms'];
25 |
26 | /**
27 | * Export mixin
28 | */
29 |
30 | module.exports = brightness;
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/brightness/brightness.md:
--------------------------------------------------------------------------------
1 | ### • brightness (shorthand for filter property)
2 | **Summary:**
3 |
4 | Applies a linear multiplier to input image, making it appear more or less bright. A value of 0% will create an image that is completely black. A value of 100% leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 100% are allowed, providing brighter results. If the ‘amount’ parameter is missing, a value of 100% is used.
5 |
6 | Resources: **MDN**
7 |
8 | **Syntax:**
9 |
10 | Default value: 0
11 |
12 | .brightness(amount)
13 |
14 | **Example:**
15 |
16 | div {
17 | .brightness(0.5);
18 | }
19 |
20 | // Result
21 | div {
22 | -webkit-filter: brightness(0.5);
23 | -moz-filter: brightness(0.5);
24 | -ms-filter: brightness(0.5);
25 | filter: brightness(0.5);
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/brightness/test.js:
--------------------------------------------------------------------------------
1 | var assert = require('assert');
2 |
3 | describe('brightness', function() {
4 |
5 | it('should return the same value', function(done) {
6 | test.resultProperty = 'filter';
7 | test.brightness('.5', 'brightness(0.5)', done);
8 | });
9 |
10 | });
--------------------------------------------------------------------------------
/slidedeck/src/assets/js/components/lesshat/mixins/calc/calc.md:
--------------------------------------------------------------------------------
1 | ### • calc
2 | **Summary:**
3 |
4 | The calc() CSS function can be used anywhere a ``, ``, ``, `