├── .editorconfig ├── .gitignore ├── .jshintrc ├── .kateconfig ├── .travis.yml ├── CHANGELOG.md ├── Gruntfile.js ├── LICENSE ├── README.md ├── artwork ├── gridlayout-icon.png ├── gridlayout-icon.svg ├── logo-browser-modern.svg ├── logo-gridlayout.svg ├── thumb-demo-holy.svg ├── thumb-demo-mail.svg ├── thumb-demo-simple.svg └── thumb-demo-sticky-footer.svg ├── bower.json ├── bower_components ├── components-jasmine │ ├── .bower.json │ ├── MIT.LICENSE │ ├── SpecRunner.html │ ├── bower.json │ ├── lib │ │ └── jasmine-2.0.0 │ │ │ ├── boot.js │ │ │ ├── console.js │ │ │ ├── jasmine-html.js │ │ │ ├── jasmine.css │ │ │ ├── jasmine.js │ │ │ └── jasmine_favicon.png │ ├── spec │ │ ├── PlayerSpec.js │ │ └── SpecHelper.js │ └── src │ │ ├── Player.js │ │ └── Song.js ├── html5shiv │ ├── .bower.json │ ├── Gruntfile.js │ ├── MIT and GPL2 licenses.md │ ├── bower.json │ ├── dist │ │ ├── html5shiv-printshiv.js │ │ ├── html5shiv-printshiv.min.js │ │ ├── html5shiv.js │ │ └── html5shiv.min.js │ ├── package.json │ └── readme.md ├── jasmine-jsreporter │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── examples │ │ ├── phantomjs-javascript │ │ │ └── TODO │ │ ├── selenium-java │ │ │ └── TODO │ │ └── spec-runner │ │ │ ├── spec-runner.html │ │ │ └── test-spec.js │ └── jasmine-jsreporter.js ├── jasmine │ ├── .bower.json │ ├── CONTRIBUTING.md │ ├── GOALS_2.0.md │ ├── MANIFEST.in │ ├── MIT.LICENSE │ ├── README.md │ ├── RELEASE.md │ ├── bower.json │ ├── images │ │ ├── jasmine-horizontal.png │ │ ├── jasmine-horizontal.svg │ │ └── jasmine_favicon.png │ ├── lib │ │ ├── console │ │ │ └── console.js │ │ ├── jasmine-core.js │ │ └── jasmine-core │ │ │ ├── boot.js │ │ │ ├── example │ │ │ └── node_example │ │ │ │ └── lib │ │ │ │ └── jasmine_examples │ │ │ │ ├── Player.js │ │ │ │ └── Song.js │ │ │ ├── jasmine-html.js │ │ │ ├── jasmine.css │ │ │ ├── jasmine.js │ │ │ ├── json2.js │ │ │ └── node_boot.js │ ├── package.json │ └── requirements.txt ├── normalize-css │ ├── .bower.json │ ├── LICENSE.md │ ├── README.md │ ├── bower.json │ └── normalize.css ├── normalize.css │ ├── .bower.json │ ├── LICENSE.md │ ├── README.md │ ├── bower.json │ └── normalize.css ├── prism │ ├── .bower.json │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── components.js │ ├── components │ │ ├── prism-actionscript.js │ │ ├── prism-actionscript.min.js │ │ ├── prism-apacheconf.js │ │ ├── prism-apacheconf.min.js │ │ ├── prism-applescript.js │ │ ├── prism-applescript.min.js │ │ ├── prism-aspnet.js │ │ ├── prism-aspnet.min.js │ │ ├── prism-autohotkey.js │ │ ├── prism-autohotkey.min.js │ │ ├── prism-bash.js │ │ ├── prism-bash.min.js │ │ ├── prism-c.js │ │ ├── prism-c.min.js │ │ ├── prism-clike.js │ │ ├── prism-clike.min.js │ │ ├── prism-coffeescript.js │ │ ├── prism-coffeescript.min.js │ │ ├── prism-core.js │ │ ├── prism-core.min.js │ │ ├── prism-cpp.js │ │ ├── prism-cpp.min.js │ │ ├── prism-csharp.js │ │ ├── prism-csharp.min.js │ │ ├── prism-css-extras.js │ │ ├── prism-css-extras.min.js │ │ ├── prism-css.js │ │ ├── prism-css.min.js │ │ ├── prism-dart.js │ │ ├── prism-dart.min.js │ │ ├── prism-eiffel.js │ │ ├── prism-eiffel.min.js │ │ ├── prism-erlang.js │ │ ├── prism-erlang.min.js │ │ ├── prism-fortran.js │ │ ├── prism-fortran.min.js │ │ ├── prism-fsharp.js │ │ ├── prism-fsharp.min.js │ │ ├── prism-gherkin.js │ │ ├── prism-gherkin.min.js │ │ ├── prism-git.js │ │ ├── prism-git.min.js │ │ ├── prism-go.js │ │ ├── prism-go.min.js │ │ ├── prism-groovy.js │ │ ├── prism-groovy.min.js │ │ ├── prism-haml.js │ │ ├── prism-haml.min.js │ │ ├── prism-handlebars.js │ │ ├── prism-handlebars.min.js │ │ ├── prism-haskell.js │ │ ├── prism-haskell.min.js │ │ ├── prism-http.js │ │ ├── prism-http.min.js │ │ ├── prism-ini.js │ │ ├── prism-ini.min.js │ │ ├── prism-jade.js │ │ ├── prism-jade.min.js │ │ ├── prism-java.js │ │ ├── prism-java.min.js │ │ ├── prism-javascript.js │ │ ├── prism-javascript.min.js │ │ ├── prism-jsx.js │ │ ├── prism-jsx.min.js │ │ ├── prism-julia.js │ │ ├── prism-julia.min.js │ │ ├── prism-latex.js │ │ ├── prism-latex.min.js │ │ ├── prism-less.js │ │ ├── prism-less.min.js │ │ ├── prism-lolcode.js │ │ ├── prism-lolcode.min.js │ │ ├── prism-markdown.js │ │ ├── prism-markdown.min.js │ │ ├── prism-markup.js │ │ ├── prism-markup.min.js │ │ ├── prism-matlab.js │ │ ├── prism-matlab.min.js │ │ ├── prism-nasm.js │ │ ├── prism-nasm.min.js │ │ ├── prism-nsis.js │ │ ├── prism-nsis.min.js │ │ ├── prism-objectivec.js │ │ ├── prism-objectivec.min.js │ │ ├── prism-pascal.js │ │ ├── prism-pascal.min.js │ │ ├── prism-perl.js │ │ ├── prism-perl.min.js │ │ ├── prism-php-extras.js │ │ ├── prism-php-extras.min.js │ │ ├── prism-php.js │ │ ├── prism-php.min.js │ │ ├── prism-powershell.js │ │ ├── prism-powershell.min.js │ │ ├── prism-python.js │ │ ├── prism-python.min.js │ │ ├── prism-r.js │ │ ├── prism-r.min.js │ │ ├── prism-rest.js │ │ ├── prism-rest.min.js │ │ ├── prism-rip.js │ │ ├── prism-rip.min.js │ │ ├── prism-ruby.js │ │ ├── prism-ruby.min.js │ │ ├── prism-rust.js │ │ ├── prism-rust.min.js │ │ ├── prism-sas.js │ │ ├── prism-sas.min.js │ │ ├── prism-scala.js │ │ ├── prism-scala.min.js │ │ ├── prism-scheme.js │ │ ├── prism-scheme.min.js │ │ ├── prism-scss.js │ │ ├── prism-scss.min.js │ │ ├── prism-smalltalk.js │ │ ├── prism-smalltalk.min.js │ │ ├── prism-smarty.js │ │ ├── prism-smarty.min.js │ │ ├── prism-sql.js │ │ ├── prism-sql.min.js │ │ ├── prism-stylus.js │ │ ├── prism-stylus.min.js │ │ ├── prism-swift.js │ │ ├── prism-swift.min.js │ │ ├── prism-twig.js │ │ ├── prism-twig.min.js │ │ ├── prism-typescript.js │ │ ├── prism-typescript.min.js │ │ ├── prism-wiki.js │ │ ├── prism-wiki.min.js │ │ ├── prism-yaml.js │ │ └── prism-yaml.min.js │ ├── examples.js │ ├── gulpfile.js │ ├── package.json │ ├── plugins │ │ ├── autolinker │ │ │ ├── prism-autolinker.css │ │ │ ├── prism-autolinker.js │ │ │ └── prism-autolinker.min.js │ │ ├── file-highlight │ │ │ ├── prism-file-highlight.js │ │ │ └── prism-file-highlight.min.js │ │ ├── highlight-keywords │ │ │ ├── prism-highlight-keywords.js │ │ │ └── prism-highlight-keywords.min.js │ │ ├── ie8 │ │ │ ├── prism-ie8.css │ │ │ ├── prism-ie8.js │ │ │ └── prism-ie8.min.js │ │ ├── line-highlight │ │ │ ├── prism-line-highlight.css │ │ │ ├── prism-line-highlight.js │ │ │ └── prism-line-highlight.min.js │ │ ├── line-numbers │ │ │ ├── prism-line-numbers.css │ │ │ ├── prism-line-numbers.js │ │ │ └── prism-line-numbers.min.js │ │ ├── show-invisibles │ │ │ ├── prism-show-invisibles.css │ │ │ ├── prism-show-invisibles.js │ │ │ └── prism-show-invisibles.min.js │ │ ├── show-language │ │ │ ├── prism-show-language.css │ │ │ ├── prism-show-language.js │ │ │ ├── prism-show-language.min.css │ │ │ └── prism-show-language.min.js │ │ └── wpd │ │ │ ├── prism-wpd.css │ │ │ ├── prism-wpd.js │ │ │ └── prism-wpd.min.js │ ├── prism.js │ ├── themes │ │ ├── prism-coy.css │ │ ├── prism-dark.css │ │ ├── prism-funky.css │ │ ├── prism-okaidia.css │ │ ├── prism-tomorrow.css │ │ ├── prism-twilight.css │ │ └── prism.css │ └── vendor │ │ └── promise.js ├── qunit │ ├── .bower.json │ ├── AUTHORS.txt │ ├── CONTRIBUTING.md │ ├── History.md │ ├── LICENSE.txt │ ├── README.md │ ├── bower.json │ ├── browserstack.json │ ├── build │ │ └── release.js │ ├── qunit │ │ ├── qunit.css │ │ └── qunit.js │ ├── reporter │ │ └── html.js │ └── src │ │ ├── assert.js │ │ ├── core.js │ │ ├── diff.js │ │ ├── dump.js │ │ ├── equiv.js │ │ ├── export.js │ │ ├── intro.js │ │ ├── outro.js │ │ ├── qunit.css │ │ └── test.js └── respond │ ├── .bower.json │ ├── Gruntfile.js │ ├── LICENSE-MIT │ ├── README.md │ ├── bower.json │ ├── cross-domain │ ├── example.html │ ├── respond-proxy.html │ ├── respond.proxy.gif │ └── respond.proxy.js │ ├── dest │ ├── respond.matchmedia.addListener.min.js │ ├── respond.matchmedia.addListener.src.js │ ├── respond.min.js │ └── respond.src.js │ ├── package.json │ └── src │ ├── matchmedia.addListener.js │ ├── matchmedia.polyfill.js │ └── respond.js ├── gridlayout-ie.js ├── gridlayout-ie.min.js ├── gridlayout.css ├── gridlayout.min.css ├── package-lock.json ├── package.json ├── site ├── css │ └── site.css ├── demos │ ├── holy.hbs │ ├── mail.hbs │ ├── simple.hbs │ └── sticky.hbs ├── favicon.ico ├── images │ ├── logo-android.png │ ├── logo-android2.png │ ├── logo-browser-modern.png │ ├── logo-gridlayout.png │ ├── logo-ie.png │ ├── logo-opera-mini.png │ ├── logo-safari-ios.png │ ├── logo-safari-ios4.png │ ├── thumb-demo-holy.png │ ├── thumb-demo-mail.png │ ├── thumb-demo-simple.png │ └── thumb-demo-sticky-footer.png ├── index.hbs ├── js │ └── demos.js ├── layouts │ ├── demo.html │ └── main.html └── partials │ └── extra-content.md ├── src ├── gridlayout-ie.js └── gridlayout.styl └── test ├── dynamic.spec.js ├── holygrail.spec.js ├── index.html ├── polyfill └── polyfill.min.js └── tests.css /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | 9 | # Change these settings to your own preference 10 | indent_style = space 11 | indent_size = 2 12 | 13 | # We recommend you to keep these unchanged 14 | end_of_line = lf 15 | charset = utf-8 16 | trim_trailing_whitespace = true 17 | insert_final_newline = true 18 | 19 | [*.md] 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | build/ 3 | sauce_connect.log 4 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "bitwise": true, 6 | "camelcase": false, 7 | "curly": true, 8 | "eqeqeq": true, 9 | "immed": true, 10 | "indent": 2, 11 | "latedef": true, 12 | "newcap": false, 13 | "noarg": true, 14 | "quotmark": "single", 15 | "regexp": true, 16 | "undef": true, 17 | "unused": false, 18 | "strict": true, 19 | "trailing": true, 20 | "smarttabs": true, 21 | "globals": { 22 | "test": true, 23 | "describe": true, 24 | "beforeAll": true, 25 | "it": true, 26 | "expect": true 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /.kateconfig: -------------------------------------------------------------------------------- 1 | kate: replace-tabs on; tab-width 2; indent-width 2; eol unix; 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - '0.10' 5 | install: 6 | - npm install 7 | env: 8 | global: 9 | - secure: ms0cV7Vz+Tx2VlIT0d8qhEFcsM4oOdhkZMq0jHesw/PAyx69/hps6FErHfnVHxv2FxdQWUFc3Z21omIBYj6k8kL72Ed1/COCHfMDWXmubpKpzw6iEZT7gB2h83/l1OVeJuXnfYIy6jgoumlKEQmUgsRJJJhq96Tw3t7sOFw/it0= 10 | - secure: Rr/YKyMA8suw3EL6W3x2dYZLeJcC+3uCdv2mh2F80Qhp3mk2kKhaFFu6ytv35aBuC0hfjBVAQwObDgUGlwB0wgOCvtyBbPjtW+Euf1jrUVHM2Uwdi9E5+wn7p2GRSUDMWvmPV7XWIpspXxi6XUu26lQB4/nVhGZwoegRl+3GcUI= 11 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | ## [1.0.2] - 2015-10-12 3 | 4 | * Make sure the DOM ready event runs only once, in the IE support script. 5 | * Reduce the number of times the grid height setter method runs on the grid cells, by improving the debouncer in the IE support script. 6 | * Fix issues with MS Edge by adding `position:relative` on the `gl-scrollview`. 7 | * Fix failing tests on MS Edge by rounding the numbers returned by `getBoundingClientRect`. 8 | 9 | ## [1.0.1] - 2015-07-29 10 | 11 | * Improvements to the IE-support script for slightly better performance and better support for IE8. 12 | * Fix issues with extra right-side padding on scrollviews, in IE9. 13 | * Website improvements and IE fixes. 14 | 15 | ## [1.0.0] - 2015-07-28 16 | 17 | * Reduce the medium and large breakpoints by 1px, to use 640 and 2014, instead of 641 and 1025. 18 | * Introduce the `.gl-fill` class for grids that take up the entire height of the parent container. Mostly for nested grids that mix grids and other content. Previously, nested grids would take up the entire height of the parent container. 19 | * Improve documentation. 20 | 21 | ## [0.1.0] - 2015-05-29 22 | 23 | * Initial release. 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Ionut Colceriu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /artwork/gridlayout-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/artwork/gridlayout-icon.png -------------------------------------------------------------------------------- /artwork/logo-browser-modern.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 63 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gridlayout", 3 | "version": "1.0.2", 4 | "authors": [ 5 | "Ionut Colceriu " 6 | ], 7 | "description": "Lightweight grid system for advanced horizontal and vertical web app layouts, with support for older browsers.", 8 | "license": "MIT", 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/ghinda/gridlayout.git" 12 | }, 13 | "ignore": [ 14 | "**/*", 15 | "!gridlayout*", 16 | "!LICENSE", 17 | "!README.md" 18 | ], 19 | "main": [ 20 | "gridlayout.css", 21 | "gridlayout-ie.js" 22 | ], 23 | "devDependencies": { 24 | "normalize-css": "~2", 25 | "jasmine": "~2.2.1", 26 | "prism": "~1.0.0", 27 | "respond": "~1.4.2", 28 | "normalize.css": "~3.0.3", 29 | "html5shiv": "~3.7.3" 30 | }, 31 | "dependencies": {} 32 | } 33 | -------------------------------------------------------------------------------- /bower_components/components-jasmine/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "components-jasmine", 3 | "description": "DOM-less simple JavaScript testing framework http://jasmine.github.io/", 4 | "version": "2.0.0", 5 | "main": [ 6 | "lib/jasmine-2.0.0/jasmine.js" 7 | ], 8 | "homepage": "https://github.com/ericlemerdy/components-jasmine", 9 | "_release": "2.0.0", 10 | "_resolution": { 11 | "type": "version", 12 | "tag": "2.0.0", 13 | "commit": "a34ce8857699207f3454ad5d8067f40eaa761ed4" 14 | }, 15 | "_source": "git://github.com/ericlemerdy/components-jasmine.git", 16 | "_target": "~2.0.0", 17 | "_originalSource": "components-jasmine" 18 | } -------------------------------------------------------------------------------- /bower_components/components-jasmine/MIT.LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2011 Pivotal Labs 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /bower_components/components-jasmine/SpecRunner.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Jasmine Spec Runner v2.0.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /bower_components/components-jasmine/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "components-jasmine", 3 | "description": "DOM-less simple JavaScript testing framework http://jasmine.github.io/", 4 | "version": "2.0.0", 5 | "main": [ 6 | "lib/jasmine-2.0.0/jasmine.js" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /bower_components/components-jasmine/lib/jasmine-2.0.0/jasmine_favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/bower_components/components-jasmine/lib/jasmine-2.0.0/jasmine_favicon.png -------------------------------------------------------------------------------- /bower_components/components-jasmine/spec/PlayerSpec.js: -------------------------------------------------------------------------------- 1 | describe("Player", function() { 2 | var player; 3 | var song; 4 | 5 | beforeEach(function() { 6 | player = new Player(); 7 | song = new Song(); 8 | }); 9 | 10 | it("should be able to play a Song", function() { 11 | player.play(song); 12 | expect(player.currentlyPlayingSong).toEqual(song); 13 | 14 | //demonstrates use of custom matcher 15 | expect(player).toBePlaying(song); 16 | }); 17 | 18 | describe("when song has been paused", function() { 19 | beforeEach(function() { 20 | player.play(song); 21 | player.pause(); 22 | }); 23 | 24 | it("should indicate that the song is currently paused", function() { 25 | expect(player.isPlaying).toBeFalsy(); 26 | 27 | // demonstrates use of 'not' with a custom matcher 28 | expect(player).not.toBePlaying(song); 29 | }); 30 | 31 | it("should be possible to resume", function() { 32 | player.resume(); 33 | expect(player.isPlaying).toBeTruthy(); 34 | expect(player.currentlyPlayingSong).toEqual(song); 35 | }); 36 | }); 37 | 38 | // demonstrates use of spies to intercept and test method calls 39 | it("tells the current song if the user has made it a favorite", function() { 40 | spyOn(song, 'persistFavoriteStatus'); 41 | 42 | player.play(song); 43 | player.makeFavorite(); 44 | 45 | expect(song.persistFavoriteStatus).toHaveBeenCalledWith(true); 46 | }); 47 | 48 | //demonstrates use of expected exceptions 49 | describe("#resume", function() { 50 | it("should throw an exception if song is already playing", function() { 51 | player.play(song); 52 | 53 | expect(function() { 54 | player.resume(); 55 | }).toThrowError("song is already playing"); 56 | }); 57 | }); 58 | }); 59 | -------------------------------------------------------------------------------- /bower_components/components-jasmine/spec/SpecHelper.js: -------------------------------------------------------------------------------- 1 | beforeEach(function () { 2 | jasmine.addMatchers({ 3 | toBePlaying: function () { 4 | return { 5 | compare: function (actual, expected) { 6 | var player = actual; 7 | 8 | return { 9 | pass: player.currentlyPlayingSong === expected && player.isPlaying 10 | } 11 | } 12 | }; 13 | } 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /bower_components/components-jasmine/src/Player.js: -------------------------------------------------------------------------------- 1 | function Player() { 2 | } 3 | Player.prototype.play = function(song) { 4 | this.currentlyPlayingSong = song; 5 | this.isPlaying = true; 6 | }; 7 | 8 | Player.prototype.pause = function() { 9 | this.isPlaying = false; 10 | }; 11 | 12 | Player.prototype.resume = function() { 13 | if (this.isPlaying) { 14 | throw new Error("song is already playing"); 15 | } 16 | 17 | this.isPlaying = true; 18 | }; 19 | 20 | Player.prototype.makeFavorite = function() { 21 | this.currentlyPlayingSong.persistFavoriteStatus(true); 22 | }; -------------------------------------------------------------------------------- /bower_components/components-jasmine/src/Song.js: -------------------------------------------------------------------------------- 1 | function Song() { 2 | } 3 | 4 | Song.prototype.persistFavoriteStatus = function(value) { 5 | // something complicated 6 | throw new Error("not yet implemented"); 7 | }; -------------------------------------------------------------------------------- /bower_components/html5shiv/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "html5shiv", 3 | "version": "3.7.3", 4 | "main": [ 5 | "dist/html5shiv.js" 6 | ], 7 | "ignore": [ 8 | "**/.*", 9 | "composer.json", 10 | "test", 11 | "build", 12 | "src", 13 | "build.xml" 14 | ], 15 | "homepage": "https://github.com/aFarkas/html5shiv", 16 | "_release": "3.7.3", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.7.3", 20 | "commit": "ed28c56c071bddfe7d635ad88995674957a016be" 21 | }, 22 | "_source": "git://github.com/aFarkas/html5shiv.git", 23 | "_target": "~3.7.3", 24 | "_originalSource": "html5shiv", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /bower_components/html5shiv/Gruntfile.js: -------------------------------------------------------------------------------- 1 | /*global module:false*/ 2 | module.exports = function(grunt){ 3 | 4 | 5 | // Project configuration. 6 | grunt.initConfig({ 7 | pkg: grunt.file.readJSON('package.json'), 8 | bower: grunt.file.readJSON('bower.json'), 9 | copy: { 10 | demo: { 11 | files: [ 12 | {expand: true, src: ['src/*'], dest: 'dist/', filter: 'isFile', flatten: true} 13 | ] 14 | } 15 | }, 16 | 17 | uglify: { 18 | options: { 19 | beautify: { 20 | ascii_only : true 21 | }, 22 | preserveComments: 'some' 23 | }, 24 | html5shiv: { 25 | files: [{ 26 | expand: true, // Enable dynamic expansion. 27 | cwd: 'src/', // Src matches are relative to this path. 28 | src: ['**/*.js'], // Actual pattern(s) to match. 29 | dest: 'dist/', // Destination path prefix. 30 | ext: '.min.js' 31 | }] 32 | } 33 | }, 34 | watch: { 35 | js: { 36 | files: ['src/**/*.js'], 37 | tasks: ['copy', 'uglify', 'bytesize'] 38 | } 39 | }, 40 | bytesize: { 41 | all: { 42 | src: [ 43 | 'dist/**.min.js' 44 | ] 45 | } 46 | } 47 | }); 48 | 49 | 50 | // Default task. 51 | 52 | 53 | 54 | grunt.loadNpmTasks('grunt-contrib-copy'); 55 | grunt.loadNpmTasks('grunt-contrib-uglify'); 56 | grunt.loadNpmTasks('grunt-contrib-watch'); 57 | grunt.loadNpmTasks('grunt-bytesize'); 58 | 59 | grunt.registerTask('default', ['copy', 'uglify', 'bytesize', 'watch']); 60 | 61 | }; 62 | -------------------------------------------------------------------------------- /bower_components/html5shiv/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "html5shiv", 3 | "version": "3.7.3", 4 | "main": [ 5 | "dist/html5shiv.js" 6 | ], 7 | "ignore": [ 8 | "**/.*", 9 | "composer.json", 10 | "test", 11 | "build", 12 | "src", 13 | "build.xml" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /bower_components/html5shiv/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "html5shiv", 3 | "version": "3.7.3", 4 | "repository": { 5 | "type": "git", 6 | "url": "https://github.com/aFarkas/html5shiv.git" 7 | }, 8 | "main": "dist/html5shiv.js", 9 | "devDependencies": { 10 | "grunt-bytesize": ">=0.1.0", 11 | "grunt-contrib-watch": ">=0.3.0", 12 | "grunt-contrib-copy": ">=0.4.0", 13 | "grunt-contrib-uglify": ">=0.2.7", 14 | "grunt": ">=0.4.1" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /bower_components/jasmine-jsreporter/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jasmine-jsreporter", 3 | "main": "jasmine-jsreporter.js", 4 | "version": "0.1.2", 5 | "homepage": "https://github.com/RobinQu/jasmine-jsreporter", 6 | "authors": [ 7 | "RobinQu " 8 | ], 9 | "description": "Port of jasmine jsreporter", 10 | "moduleType": [ 11 | "globals" 12 | ], 13 | "keywords": [ 14 | "jasmine", 15 | "js" 16 | ], 17 | "license": "MIT", 18 | "private": true, 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "test", 24 | "tests" 25 | ], 26 | "dependencies": { 27 | "components-jasmine": "~2.0.0" 28 | }, 29 | "_release": "0.1.2", 30 | "_resolution": { 31 | "type": "version", 32 | "tag": "0.1.2", 33 | "commit": "23c1c3206c2b1c153c1af20f6bab899f84eb9d94" 34 | }, 35 | "_source": "git://github.com/RobinQu/jasmine-jsreporter.git", 36 | "_target": "~0.1.2", 37 | "_originalSource": "jasmine-jsreporter", 38 | "_direct": true 39 | } -------------------------------------------------------------------------------- /bower_components/jasmine-jsreporter/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jasmine-jsreporter", 3 | "main": "jasmine-jsreporter.js", 4 | "version": "0.1.2", 5 | "homepage": "https://github.com/RobinQu/jasmine-jsreporter", 6 | "authors": [ 7 | "RobinQu " 8 | ], 9 | "description": "Port of jasmine jsreporter", 10 | "moduleType": [ 11 | "globals" 12 | ], 13 | "keywords": [ 14 | "jasmine", 15 | "js" 16 | ], 17 | "license": "MIT", 18 | "private": true, 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "test", 24 | "tests" 25 | ], 26 | "dependencies": { 27 | "components-jasmine": "~2.0.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /bower_components/jasmine-jsreporter/examples/phantomjs-javascript/TODO: -------------------------------------------------------------------------------- 1 | TODO 2 | -------------------------------------------------------------------------------- /bower_components/jasmine-jsreporter/examples/selenium-java/TODO: -------------------------------------------------------------------------------- 1 | TODO 2 | -------------------------------------------------------------------------------- /bower_components/jasmine/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jasmine-core", 3 | "version": "2.2.1", 4 | "homepage": "http://jasmine.github.io", 5 | "authors": [ 6 | "slackersoft " 7 | ], 8 | "description": "Official packaging of Jasmine's core files", 9 | "keywords": [ 10 | "jasmine", 11 | "bdd" 12 | ], 13 | "license": "MIT", 14 | "moduleType": "globals", 15 | "ignore": [ 16 | "**/.*", 17 | "dist", 18 | "grunt", 19 | "node_modules", 20 | "pkg", 21 | "release_notes", 22 | "spec", 23 | "src", 24 | "Gemfile", 25 | "Gemfile.lock", 26 | "Rakefile", 27 | "jasmine-core.gemspec", 28 | "*.sh", 29 | "*.py", 30 | "Gruntfile.js", 31 | "lib/jasmine-core.rb", 32 | "lib/jasmine-core/boot/", 33 | "lib/jasmine-core/spec", 34 | "lib/jasmine-core/version.rb", 35 | "lib/jasmine-core/*.py", 36 | "sauce_connect.log" 37 | ], 38 | "_release": "2.2.1", 39 | "_resolution": { 40 | "type": "version", 41 | "tag": "v2.2.1", 42 | "commit": "e173cd1c9dbd1ec829d03c29d1c8528982c289f4" 43 | }, 44 | "_source": "git://github.com/pivotal/jasmine.git", 45 | "_target": "~2.2.1", 46 | "_originalSource": "jasmine", 47 | "_direct": true 48 | } -------------------------------------------------------------------------------- /bower_components/jasmine/MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include . *.py 2 | include lib/jasmine-core/*.js 3 | include lib/jasmine-core/*.css 4 | include images/*.png 5 | include package.json 6 | -------------------------------------------------------------------------------- /bower_components/jasmine/MIT.LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2014 Pivotal Labs 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /bower_components/jasmine/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jasmine-core", 3 | "version": "2.2.1", 4 | "homepage": "http://jasmine.github.io", 5 | "authors": [ 6 | "slackersoft " 7 | ], 8 | "description": "Official packaging of Jasmine's core files", 9 | "keywords": [ 10 | "jasmine", 11 | "bdd" 12 | ], 13 | "license": "MIT", 14 | "moduleType": "globals", 15 | "ignore": [ 16 | "**/.*", 17 | "dist", 18 | "grunt", 19 | "node_modules", 20 | "pkg", 21 | "release_notes", 22 | "spec", 23 | "src", 24 | "Gemfile", 25 | "Gemfile.lock", 26 | "Rakefile", 27 | "jasmine-core.gemspec", 28 | "*.sh", 29 | "*.py", 30 | "Gruntfile.js", 31 | "lib/jasmine-core.rb", 32 | "lib/jasmine-core/boot/", 33 | "lib/jasmine-core/spec", 34 | "lib/jasmine-core/version.rb", 35 | "lib/jasmine-core/*.py", 36 | "sauce_connect.log" 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /bower_components/jasmine/images/jasmine-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/bower_components/jasmine/images/jasmine-horizontal.png -------------------------------------------------------------------------------- /bower_components/jasmine/images/jasmine_favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/bower_components/jasmine/images/jasmine_favicon.png -------------------------------------------------------------------------------- /bower_components/jasmine/lib/jasmine-core.js: -------------------------------------------------------------------------------- 1 | module.exports = require("./jasmine-core/jasmine.js"); 2 | module.exports.boot = require('./jasmine-core/node_boot.js'); 3 | 4 | var path = require('path'), 5 | fs = require('fs'); 6 | 7 | var rootPath = path.join(__dirname, "jasmine-core"), 8 | bootFiles = ['boot.js'], 9 | nodeBootFiles = ['node_boot.js'], 10 | cssFiles = [], 11 | jsFiles = [], 12 | jsFilesToSkip = ['jasmine.js'].concat(bootFiles, nodeBootFiles); 13 | 14 | fs.readdirSync(rootPath).forEach(function(file) { 15 | if(fs.statSync(path.join(rootPath, file)).isFile()) { 16 | switch(path.extname(file)) { 17 | case '.css': 18 | cssFiles.push(file); 19 | break; 20 | case '.js': 21 | if (jsFilesToSkip.indexOf(file) < 0) { 22 | jsFiles.push(file); 23 | } 24 | break; 25 | } 26 | } 27 | }); 28 | 29 | module.exports.files = { 30 | path: rootPath, 31 | bootDir: rootPath, 32 | bootFiles: bootFiles, 33 | nodeBootFiles: nodeBootFiles, 34 | cssFiles: cssFiles, 35 | jsFiles: ['jasmine.js'].concat(jsFiles), 36 | imagesDir: path.join(__dirname, '../images') 37 | }; 38 | -------------------------------------------------------------------------------- /bower_components/jasmine/lib/jasmine-core/example/node_example/lib/jasmine_examples/Player.js: -------------------------------------------------------------------------------- 1 | function Player() { 2 | } 3 | Player.prototype.play = function(song) { 4 | this.currentlyPlayingSong = song; 5 | this.isPlaying = true; 6 | }; 7 | 8 | Player.prototype.pause = function() { 9 | this.isPlaying = false; 10 | }; 11 | 12 | Player.prototype.resume = function() { 13 | if (this.isPlaying) { 14 | throw new Error("song is already playing"); 15 | } 16 | 17 | this.isPlaying = true; 18 | }; 19 | 20 | Player.prototype.makeFavorite = function() { 21 | this.currentlyPlayingSong.persistFavoriteStatus(true); 22 | }; 23 | 24 | module.exports = Player; 25 | -------------------------------------------------------------------------------- /bower_components/jasmine/lib/jasmine-core/example/node_example/lib/jasmine_examples/Song.js: -------------------------------------------------------------------------------- 1 | function Song() { 2 | } 3 | 4 | Song.prototype.persistFavoriteStatus = function(value) { 5 | // something complicated 6 | throw new Error("not yet implemented"); 7 | }; 8 | 9 | module.exports = Song; 10 | -------------------------------------------------------------------------------- /bower_components/jasmine/lib/jasmine-core/node_boot.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2008-2015 Pivotal Labs 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | */ 23 | module.exports = function(jasmineRequire) { 24 | var jasmine = jasmineRequire.core(jasmineRequire); 25 | 26 | var consoleFns = require('../console/console.js'); 27 | consoleFns.console(consoleFns, jasmine); 28 | 29 | var env = jasmine.getEnv(); 30 | 31 | var jasmineInterface = jasmineRequire.interface(jasmine, env); 32 | 33 | extend(global, jasmineInterface); 34 | 35 | function extend(destination, source) { 36 | for (var property in source) destination[property] = source[property]; 37 | return destination; 38 | } 39 | 40 | return jasmine; 41 | }; 42 | -------------------------------------------------------------------------------- /bower_components/jasmine/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jasmine-core", 3 | "license": "MIT", 4 | "version": "2.2.1", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/jasmine/jasmine.git" 8 | }, 9 | "description": "Official packaging of Jasmine's core files for use by Node.js projects.", 10 | "homepage": "http://jasmine.github.io", 11 | "main": "./lib/jasmine-core.js", 12 | "devDependencies": { 13 | "grunt": "~0.4.1", 14 | "grunt-contrib-jshint": "~0.7.0", 15 | "grunt-contrib-concat": "~0.3.0", 16 | "grunt-contrib-compass": "~0.6.0", 17 | "grunt-contrib-compress": "~0.5.2", 18 | "shelljs": "~0.1.4", 19 | "glob": "~3.2.9", 20 | "jasmine": "https://github.com/jasmine/jasmine-npm/archive/master.tar.gz", 21 | "load-grunt-tasks": "^0.4.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bower_components/jasmine/requirements.txt: -------------------------------------------------------------------------------- 1 | ordereddict==1.1 2 | -------------------------------------------------------------------------------- /bower_components/normalize-css/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "normalize-css", 3 | "version": "2.1.3", 4 | "main": "normalize.css", 5 | "author": "Nicolas Gallagher", 6 | "ignore": [ 7 | "CHANGELOG.md", 8 | "CONTRIBUTING.md", 9 | "component.json", 10 | "test.html" 11 | ], 12 | "homepage": "https://github.com/necolas/normalize.css", 13 | "_release": "2.1.3", 14 | "_resolution": { 15 | "type": "version", 16 | "tag": "v2.1.3", 17 | "commit": "be14934fad255a01ed345de6ae59ff612adcf3b9" 18 | }, 19 | "_source": "git://github.com/necolas/normalize.css.git", 20 | "_target": "~2", 21 | "_originalSource": "normalize-css" 22 | } -------------------------------------------------------------------------------- /bower_components/normalize-css/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) Nicolas Gallagher and Jonathan Neal 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /bower_components/normalize-css/README.md: -------------------------------------------------------------------------------- 1 | # normalize.css v2 2 | 3 | Normalize.css is a customisable CSS file that makes browsers render all 4 | elements more consistently and in line with modern standards. 5 | 6 | The project relies on researching the differences between default browser 7 | styles in order to precisely target only the styles that need or benefit from 8 | normalizing. 9 | 10 | [Check out the demo](http://necolas.github.io/normalize.css/latest/test.html) 11 | 12 | ## Install 13 | 14 | Download from the [project page](http://necolas.github.io/normalize.css/). 15 | 16 | Install with [Bower](http://bower.io/): `bower install --save normalize-css` 17 | 18 | Install with [Component(1)](http://component.io/): `component install necolas/normalize.css` 19 | 20 | ## What does it do? 21 | 22 | * Preserves useful defaults, unlike many CSS resets. 23 | * Normalizes styles for a wide range of elements. 24 | * Corrects bugs and common browser inconsistencies. 25 | * Improves usability with subtle improvements. 26 | * Explains what code does using detailed comments. 27 | 28 | ## How to use it 29 | 30 | No other styles should come before Normalize.css. 31 | 32 | It is recommended that you include the `normalize.css` file as untouched 33 | library code. 34 | 35 | ## Browser support 36 | 37 | * Google Chrome 38 | * Mozilla Firefox 4+ 39 | * Apple Safari 5+ 40 | * Opera 12+ 41 | * Internet Explorer 8+ 42 | 43 | [Normalize.css v1 provides legacy browser 44 | support](https://github.com/necolas/normalize.css/tree/v1) (IE 6+, Safari 4+), 45 | but is no longer actively developed. 46 | 47 | ## Contributing 48 | 49 | Please read the CONTRIBUTING.md 50 | 51 | ## Acknowledgements 52 | 53 | Normalize.css is a project by [Nicolas Gallagher](https://github.com/necolas), 54 | co-created with [Jonathan Neal](https://github.com/jonathantneal). 55 | -------------------------------------------------------------------------------- /bower_components/normalize-css/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "normalize-css", 3 | "version": "2.1.3", 4 | "main": "normalize.css", 5 | "author": "Nicolas Gallagher", 6 | "ignore": [ 7 | "CHANGELOG.md", 8 | "CONTRIBUTING.md", 9 | "component.json", 10 | "test.html" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /bower_components/normalize.css/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "normalize-css", 3 | "version": "3.0.3", 4 | "main": "normalize.css", 5 | "author": "Nicolas Gallagher", 6 | "ignore": [ 7 | "CHANGELOG.md", 8 | "CONTRIBUTING.md", 9 | "component.json", 10 | "package.json", 11 | "test.html" 12 | ], 13 | "homepage": "https://github.com/necolas/normalize.css", 14 | "_release": "3.0.3", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "3.0.3", 18 | "commit": "7d0ebab2ffdf2c2046e2b812456f3681f92b5f32" 19 | }, 20 | "_source": "git://github.com/necolas/normalize.css.git", 21 | "_target": "~3.0.3", 22 | "_originalSource": "normalize.css", 23 | "_direct": true 24 | } -------------------------------------------------------------------------------- /bower_components/normalize.css/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) Nicolas Gallagher and Jonathan Neal 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /bower_components/normalize.css/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "normalize-css", 3 | "version": "3.0.3", 4 | "main": "normalize.css", 5 | "author": "Nicolas Gallagher", 6 | "ignore": [ 7 | "CHANGELOG.md", 8 | "CONTRIBUTING.md", 9 | "component.json", 10 | "package.json", 11 | "test.html" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /bower_components/prism/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "prism", 3 | "version": "1.0.0", 4 | "main": [ 5 | "prism.js", 6 | "themes/prism.css" 7 | ], 8 | "homepage": "http://prismjs.com", 9 | "authors": "Lea Verou", 10 | "description": "Lightweight, robust, elegant syntax highlighting. A spin-off project from Dabblet.", 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "img", 15 | "templates", 16 | "CNAME", 17 | "*.html", 18 | "style.css", 19 | "favicon.png", 20 | "logo.svg", 21 | "download.js", 22 | "prefixfree.min.js", 23 | "utopia.js", 24 | "code.js" 25 | ], 26 | "_release": "1.0.0", 27 | "_resolution": { 28 | "type": "version", 29 | "tag": "v1.0.0", 30 | "commit": "534f34cd35526481e4a32ac4d1eaf447a5a64bf2" 31 | }, 32 | "_source": "git://github.com/LeaVerou/prism.git", 33 | "_target": "~1.0.0", 34 | "_originalSource": "prism", 35 | "_direct": true 36 | } -------------------------------------------------------------------------------- /bower_components/prism/LICENSE: -------------------------------------------------------------------------------- 1 | MIT LICENSE 2 | 3 | Copyright (c) 2012-2013 Lea Verou 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /bower_components/prism/README.md: -------------------------------------------------------------------------------- 1 | # [Prism](http://prismjs.com/) 2 | 3 | Prism is a lightweight, robust, elegant syntax highlighting library. It's a spin-off project from [Dabblet](http://dabblet.com/). 4 | 5 | You can learn more on http://prismjs.com/. 6 | 7 | Why another syntax highlighter?: http://lea.verou.me/2012/07/introducing-prism-an-awesome-new-syntax-highlighter/#more-1841 8 | 9 | ## Contribute to Prism! 10 | 11 | Prism depends on community contributions to expand and cover a wider array of use cases. If you like it, considering giving back by sending a pull request. Here are a few tips: 12 | 13 | - Read the [documentation](http://prismjs.com/extending.html). Prism was designed to be extensible. 14 | - Do not edit prism.js, it’s just the version of Prism used by the Prism website and is built automatically. Limit your changes to the unminified files in the components/ folder. The minified files are also generated automatically. 15 | - Currently the build system building prism.js and the minified files is just a bunch of local settings in CodeKit. If someone wants to help export them to a config file, please contact me by opening an issue. 16 | - Please follow the code conventions used in the files already. For example, I use [tabs for indentation and spaces for alignment](http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/). Opening braces are on the same line, closing braces on their own line regardless of construct. There is a space before the opening brace. etc etc. 17 | - Please try to err towards more smaller PRs rather than few huge PRs. If a PR includes changes I want to merge and changes I don't, handling it becomes difficult. 18 | - My time is very limited these days, so it might take a long time to review longer PRs (short ones are usually merged very quickly), especially those modifying the Prism Core. This doesn't mean your PR is rejected. 19 | - If you contribute a new language definition, you will be responsible for handling bug reports about that language definition. Soon I plan to add usernames of project owners for themes, plugins and language definitions so this becomes more clear to users. 20 | - If you add a new language definition, theme or plugin, you need to add it to `components.js` as well, so that it becomes available to the download build page. 21 | 22 | Thank you so much for contributing!! 23 | -------------------------------------------------------------------------------- /bower_components/prism/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "prism", 3 | "version": "0.0.1", 4 | "main": [ 5 | "prism.js", 6 | "themes/prism.css" 7 | ], 8 | "homepage": "http://prismjs.com", 9 | "authors": "Lea Verou", 10 | "description": "Lightweight, robust, elegant syntax highlighting. A spin-off project from Dabblet.", 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "img", 15 | "templates", 16 | "CNAME", 17 | "*.html", 18 | "style.css", 19 | "favicon.png", 20 | "logo.svg", 21 | "download.js", 22 | "prefixfree.min.js", 23 | "utopia.js", 24 | "code.js" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /bower_components/prism/components/prism-actionscript.js: -------------------------------------------------------------------------------- 1 | /* TODO 2 | Fix XML highlighting 3 | */ 4 | 5 | Prism.languages.actionscript = Prism.languages.extend('javascript', { 6 | 'keyword': /\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/, 7 | 'operator': /(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=)=?|[=~?@]/ 8 | }); 9 | Prism.languages.actionscript['class-name'].alias = 'function'; 10 | 11 | if (Prism.languages.markup) { 12 | Prism.languages.insertBefore('actionscript', 'operator', { 13 | 'xml': { 14 | pattern: /(^|[^.])<[\s\S]*>(?=\s*($|[\r\n,.;\]})<]))/, 15 | inside: { 16 | rest: Prism.languages.markup 17 | } 18 | } 19 | }); 20 | } -------------------------------------------------------------------------------- /bower_components/prism/components/prism-actionscript.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.actionscript=Prism.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=)=?|[=~?@]/}),Prism.languages.actionscript["class-name"].alias="function",Prism.languages.markup&&Prism.languages.insertBefore("actionscript","operator",{xml:{pattern:/(^|[^.])<[\s\S]*>(?=\s*($|[\r\n,.;\]})<]))/,inside:{rest:Prism.languages.markup}}}); -------------------------------------------------------------------------------- /bower_components/prism/components/prism-applescript.js: -------------------------------------------------------------------------------- 1 | /* TODO 2 | Add support for nested block comments... 3 | */ 4 | 5 | Prism.languages.applescript = { 6 | 'comment': [ 7 | /\(\*[\w\W]*?\*\)/, 8 | /--.+/, 9 | /#.+/ 10 | ], 11 | 'string': /"(?:\\?.)*?"/, 12 | 'operator': [ 13 | /[&=≠≤≥*+\-\/÷^]|[<>]=?/, 14 | /\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/ 15 | ], 16 | 'keyword': /\b(?:about|above|after|against|and|apart from|around|as|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out of|over|prop|property|put|ref|reference|repeat|return|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/, 17 | 'class': { 18 | pattern: /\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/, 19 | alias: 'builtin' 20 | }, 21 | 'number': /\b-?\d*\.?\d+([Ee]-?\d+)?\b/, 22 | 'punctuation': /[{}():,¬«»《》]/ 23 | }; -------------------------------------------------------------------------------- /bower_components/prism/components/prism-applescript.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.applescript={comment:[/\(\*[\w\W]*?\*\)/,/--.+/,/#.+/],string:/"(?:\\?.)*?"/,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/],keyword:/\b(?:about|above|after|against|and|apart from|around|as|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|continue|copy|div|does|eighth|else|end|equal|equals|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out of|over|prop|property|put|ref|reference|repeat|return|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,"class":{pattern:/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,alias:"builtin"},number:/\b-?\d*\.?\d+([Ee]-?\d+)?\b/,punctuation:/[{}():,¬«»《》]/}; -------------------------------------------------------------------------------- /bower_components/prism/components/prism-aspnet.js: -------------------------------------------------------------------------------- 1 | Prism.languages.aspnet = Prism.languages.extend('markup', { 2 | 'page-directive tag': { 3 | pattern: /<%\s*@.*%>/i, 4 | inside: { 5 | 'page-directive tag': /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master|MasterType|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i, 6 | rest: Prism.languages.markup.tag.inside 7 | } 8 | }, 9 | 'directive tag': { 10 | pattern: /<%.*%>/i, 11 | inside: { 12 | 'directive tag': /<%\s*?[$=%#:]{0,2}|%>/i, 13 | rest: Prism.languages.csharp 14 | } 15 | } 16 | }); 17 | 18 | // match directives of attribute value foo="<% Bar %>" 19 | Prism.languages.insertBefore('inside', 'punctuation', { 20 | 'directive tag': Prism.languages.aspnet['directive tag'] 21 | }, Prism.languages.aspnet.tag.inside["attr-value"]); 22 | 23 | Prism.languages.insertBefore('aspnet', 'comment', { 24 | 'asp comment': /<%--[\w\W]*?--%>/ 25 | }); 26 | 27 | // script runat="server" contains csharp, not javascript 28 | Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', { 29 | 'asp script': { 30 | pattern: /[\w\W]*?<\/script>/i, 31 | inside: { 32 | tag: { 33 | pattern: /<\/?script\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|\w+))?\s*)*\/?>/i, 34 | inside: Prism.languages.aspnet.tag.inside 35 | }, 36 | rest: Prism.languages.csharp || {} 37 | } 38 | } 39 | }); 40 | 41 | // Hacks to fix eager tag matching finishing too early: 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |

This is a visual test file for cross-domain proxy.

17 | 18 |

The media queries in the included CSS file simply change the body's background color depending on the browser width. If you see any colors aside from black, then the media queries are working in your browser. You can resize your browser window to see it change on the fly.

19 | 20 | 21 |

Media-attributes are working too! This should be visible above 600px.

22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /bower_components/respond/cross-domain/respond.proxy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/bower_components/respond/cross-domain/respond.proxy.gif -------------------------------------------------------------------------------- /bower_components/respond/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Respond.js", 3 | "description": "min/max-width media query polyfill", 4 | "version": "1.4.2", 5 | "homepage": "https://github.com/scottjehl/Respond", 6 | "author": { 7 | "name": "Scott Jehl", 8 | "email": "scott@filamentgroup.com", 9 | "url": "http://filamentgroup.com" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/scottjehl/Respond.git" 14 | }, 15 | "bugs": { 16 | "url": "https://github.com/scottjehl/Respond/issues" 17 | }, 18 | "licenses": [ 19 | { 20 | "type": "MIT", 21 | "url": "https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT" 22 | } 23 | ], 24 | "devDependencies": { 25 | "grunt-cli":"~0.1", 26 | "grunt": "~0.4.0", 27 | "grunt-contrib-jshint": "~0.2.0", 28 | "grunt-contrib-qunit": "~0.3.0", 29 | "grunt-contrib-uglify": "0.2.7" 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /bower_components/respond/src/matchmedia.polyfill.js: -------------------------------------------------------------------------------- 1 | /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ 2 | /*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ 3 | 4 | (function(w){ 5 | "use strict"; 6 | w.matchMedia = w.matchMedia || (function( doc, undefined ) { 7 | 8 | var bool, 9 | docElem = doc.documentElement, 10 | refNode = docElem.firstElementChild || docElem.firstChild, 11 | // fakeBody required for 12 | fakeBody = doc.createElement( "body" ), 13 | div = doc.createElement( "div" ); 14 | 15 | div.id = "mq-test-1"; 16 | div.style.cssText = "position:absolute;top:-100em"; 17 | fakeBody.style.background = "none"; 18 | fakeBody.appendChild(div); 19 | 20 | return function(q){ 21 | 22 | div.innerHTML = "­"; 23 | 24 | docElem.insertBefore( fakeBody, refNode ); 25 | bool = div.offsetWidth === 42; 26 | docElem.removeChild( fakeBody ); 27 | 28 | return { 29 | matches: bool, 30 | media: q 31 | }; 32 | 33 | }; 34 | 35 | }( w.document )); 36 | }( this )); 37 | -------------------------------------------------------------------------------- /gridlayout-ie.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var a,b=function(){return"TextRectangle"in window?function(){var a=this.getBoundingClientRect(),b={};return b.width=a.right-a.left,b.height=a.bottom-a.top,b}:window.Element.prototype.getBoundingClientRect}(),c=function(){return"addEventListener"in window.Element.prototype?function(a,b){this.addEventListener(a,b,!1)}:function(a,b){this.attachEvent("on"+a,b)}}(),d=function(){var a,c,d,e,f=document.querySelectorAll(".gl-cell > .gl-vertical,.gl-cell > .gl-fill,.gl-cell > .gl-scrollview,.gl-cell > .gl-scrollview > .gl-scrollview-content");for(a=0;a", 5 | "description": "Lightweight grid system for advanced horizontal and vertical web app layouts, with support for older browsers.", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/ghinda/gridlayout.git" 10 | }, 11 | "files": [ 12 | "gridlayout*", 13 | "LICENSE", 14 | "README.md" 15 | ], 16 | "devDependencies": { 17 | "coffeescript": "^2.7.0", 18 | "connect-livereload": "^0.6.0", 19 | "grunt": "^1.0.1", 20 | "grunt-assemble": "^0.5.0", 21 | "grunt-build-control": "^0.7.1", 22 | "grunt-contrib-clean": "^1.0.0", 23 | "grunt-contrib-concat": "^1.0.1", 24 | "grunt-contrib-connect": "^1.0.2", 25 | "grunt-contrib-copy": "^1.0.0", 26 | "grunt-contrib-jshint": "^1.0.0", 27 | "grunt-contrib-stylus": "^1.2.0", 28 | "grunt-contrib-uglify": "^2.0.0", 29 | "grunt-contrib-watch": "^1.0.0", 30 | "grunt-saucelabs": "^9.0.0", 31 | "matchdep": "^1.0.1" 32 | }, 33 | "engines": { 34 | "node": ">=4" 35 | }, 36 | "scripts": { 37 | "test": "grunt test" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /site/demos/holy.hbs: -------------------------------------------------------------------------------- 1 | --- 2 | layout: demo.html 3 | title: 'Holy Layout' 4 | base: '../' 5 | --- 6 | 7 |
8 | 9 |
10 | 11 |
12 | Holy Grail Header 13 |
14 | 15 |
16 | 17 |
18 | 19 |
20 | 21 |
22 | 23 |
24 | Left Sidebar 25 |
26 | 27 |
28 | 29 |
30 | 31 |
32 | 33 |

34 | Holy Grail layout 35 |

36 | 37 | 40 | 41 |
42 | 43 |
44 | {{#markdown}} 45 | {{> extra-content }} 46 | {{/markdown}} 47 |
48 | 49 |
50 | 51 |
52 | 53 |
54 | 55 |
56 | 57 |
58 | Right Sidebar 59 |
60 | 61 |
62 | 63 |
64 | 65 |
66 | 67 | 74 | 75 |
76 | -------------------------------------------------------------------------------- /site/demos/sticky.hbs: -------------------------------------------------------------------------------- 1 | --- 2 | layout: demo.html 3 | title: 'Sticky Footer' 4 | base: '../' 5 | --- 6 | 7 |
8 | 9 |
10 | 11 |
12 | 13 |
14 | 15 |

16 | Sticky footer 17 |

18 | 19 |

20 | Click the button bellow to toggle extra content on and off, and notice how the footer stays at the bottom regardless of how much content is in the top cell. 21 |

22 | 23 | 26 | 27 |
28 | 29 |
30 | {{#markdown}} 31 | {{> extra-content }} 32 | {{/markdown}} 33 |
34 | 35 |
36 | 37 |
38 | 39 |
40 | 41 |
42 |
43 | Sticky Footer 44 |
45 |
46 | 47 |
48 | 49 |
50 | -------------------------------------------------------------------------------- /site/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/favicon.ico -------------------------------------------------------------------------------- /site/images/logo-android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-android.png -------------------------------------------------------------------------------- /site/images/logo-android2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-android2.png -------------------------------------------------------------------------------- /site/images/logo-browser-modern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-browser-modern.png -------------------------------------------------------------------------------- /site/images/logo-gridlayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-gridlayout.png -------------------------------------------------------------------------------- /site/images/logo-ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-ie.png -------------------------------------------------------------------------------- /site/images/logo-opera-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-opera-mini.png -------------------------------------------------------------------------------- /site/images/logo-safari-ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-safari-ios.png -------------------------------------------------------------------------------- /site/images/logo-safari-ios4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/logo-safari-ios4.png -------------------------------------------------------------------------------- /site/images/thumb-demo-holy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/thumb-demo-holy.png -------------------------------------------------------------------------------- /site/images/thumb-demo-mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/thumb-demo-mail.png -------------------------------------------------------------------------------- /site/images/thumb-demo-simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/thumb-demo-simple.png -------------------------------------------------------------------------------- /site/images/thumb-demo-sticky-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghinda/gridlayout/6e72d77feefd05ff90876f8ba80fec53bf7ef1ae/site/images/thumb-demo-sticky-footer.png -------------------------------------------------------------------------------- /site/js/demos.js: -------------------------------------------------------------------------------- 1 | /* Demos 2 | */ 3 | 4 | (function() { 5 | 6 | // addEventListener with IE8 support 7 | var addEventListener = (function() { 8 | 9 | if('addEventListener' in window.Element.prototype) { 10 | return function(type, listener) { 11 | this.addEventListener(type, listener, false); 12 | }; 13 | } 14 | 15 | return function(type, listener) { 16 | this.attachEvent('on' + type, listener); 17 | }; 18 | 19 | })(); 20 | 21 | var toggleClass = function(node, className) { 22 | 23 | var foundClassPosition = node.className.indexOf(className); 24 | 25 | if(foundClassPosition === -1) { 26 | node.className += ' ' + className; 27 | } else { 28 | 29 | var tempClass = node.className.substr(0, foundClassPosition - 1); 30 | 31 | node.className = tempClass + node.className.substr(className.length + foundClassPosition); 32 | } 33 | 34 | }; 35 | 36 | var toggleDropdown = function(e) { 37 | 38 | var dropdowns = document.querySelectorAll('.dropdown'); 39 | var i; 40 | 41 | var target = e.target || e.srcElement; 42 | 43 | if(target.className.indexOf('dropdown-button') === -1) { 44 | 45 | // close all dropdowns 46 | for(i = 0; i < dropdowns.length; i++) { 47 | if(dropdowns[i].className.indexOf('dropdown-active') !== -1) { 48 | toggleClass(dropdowns[i], 'dropdown-active'); 49 | } 50 | } 51 | 52 | } else { 53 | 54 | var dropdown = target.parentNode; 55 | 56 | toggleClass(dropdown, 'dropdown-active'); 57 | 58 | e.preventDefault && e.preventDefault(); 59 | 60 | } 61 | 62 | }; 63 | 64 | var toggleContent = function(e) { 65 | 66 | var target = e.target || e.srcElement; 67 | 68 | if(target.className.indexOf('js-toggle-content') !== -1) { 69 | 70 | var contentNode = document.getElementById(target.getAttribute('data-content')); 71 | 72 | toggleClass(contentNode, 'content-show'); 73 | 74 | e.preventDefault && e.preventDefault(); 75 | } 76 | 77 | }; 78 | 79 | var init = function() { 80 | // init content togglers 81 | addEventListener.call(document.body, 'click', toggleDropdown); 82 | 83 | // init dropdowns 84 | addEventListener.call(document.body, 'click', toggleContent); 85 | }; 86 | 87 | init(); 88 | 89 | })(); 90 | -------------------------------------------------------------------------------- /site/layouts/demo.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: main.html 3 | --- 4 | 5 |
6 | 7 |
8 | 9 |
10 | 11 |
12 | 13 | 14 | ← Back to documentation 15 | 16 | 17 |

18 | GridLayout 19 |

20 | 21 |
22 | 23 | 57 | 58 |
59 | 60 |
61 | 62 |
63 | {{> body }} 64 |
65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /site/layouts/main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{#if title}} 8 | {{ title }} — GridLayout 9 | {{else}} 10 | GridLayout — Lightweight grid system for advanced web app layouts, with support for older browsers. 11 | {{/if}} 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 28 | 29 | 30 | 31 | 32 | {{> body }} 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /test/tests.css: -------------------------------------------------------------------------------- 1 | /* styles for tests 2 | */ 3 | 4 | /* values that cleanly devide by 3, 5 | * otherwise browsers round differently. 6 | */ 7 | 8 | .fixture { 9 | margin: 10px; 10 | width: 300px; 11 | height: 300px; 12 | } 13 | 14 | /* easier visual debugging 15 | */ 16 | 17 | .gl-cell { 18 | background: lightgreen; 19 | outline: 1px solid #fff; 20 | } 21 | 22 | /* utils 23 | */ 24 | 25 | .height-50 { 26 | height: 50px; 27 | } 28 | 29 | .height-100 { 30 | height: 100px; 31 | } 32 | 33 | .width-50 { 34 | width: 50px; 35 | } 36 | 37 | .width-100 { 38 | width: 100px; 39 | } 40 | --------------------------------------------------------------------------------