├── .travis.yml ├── docs ├── build │ ├── node_modules │ │ ├── hogan.js │ │ │ ├── .git_ignore │ │ │ ├── .gitmodules │ │ │ ├── test │ │ │ │ ├── html │ │ │ │ │ └── list.html │ │ │ │ ├── templates │ │ │ │ │ └── list.mustache │ │ │ │ ├── index.html │ │ │ │ ├── spec │ │ │ │ │ ├── Rakefile │ │ │ │ │ ├── Changes │ │ │ │ │ ├── TESTING.md │ │ │ │ │ ├── specs │ │ │ │ │ │ ├── comments.json │ │ │ │ │ │ ├── partials.json │ │ │ │ │ │ ├── comments.yml │ │ │ │ │ │ ├── delimiters.json │ │ │ │ │ │ ├── partials.yml │ │ │ │ │ │ └── delimiters.yml │ │ │ │ │ └── README.md │ │ │ │ ├── spec.js │ │ │ │ └── mustache.js │ │ │ ├── web │ │ │ │ ├── favicon.ico │ │ │ │ ├── images │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── noise.png │ │ │ │ │ ├── stripes.png │ │ │ │ │ └── small-hogan-icon.png │ │ │ │ └── builds │ │ │ │ │ └── 1.0.5 │ │ │ │ │ └── template-1.0.5.min.js │ │ │ ├── package.json │ │ │ ├── wrappers │ │ │ │ ├── js.mustache │ │ │ │ ├── amd.js.mustache │ │ │ │ ├── common.js.mustache │ │ │ │ └── mustache.js.mustache │ │ │ ├── lib │ │ │ │ └── hogan.js │ │ │ ├── tools │ │ │ │ ├── web_templates.js │ │ │ │ └── release.js │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ └── bin │ │ │ │ └── hulk │ │ └── .bin │ │ │ └── hulk │ ├── package.json │ └── index.js ├── assets │ ├── ico │ │ ├── favicon.ico │ │ ├── favicon.png │ │ ├── apple-touch-icon-57-precomposed.png │ │ ├── apple-touch-icon-72-precomposed.png │ │ ├── apple-touch-icon-114-precomposed.png │ │ └── apple-touch-icon-144-precomposed.png │ ├── img │ │ ├── less-logo-large.png │ │ ├── examples │ │ │ ├── slide-01.jpg │ │ │ ├── slide-02.jpg │ │ │ ├── slide-03.jpg │ │ │ ├── browser-icon-chrome.png │ │ │ ├── browser-icon-safari.png │ │ │ ├── bootstrap-example-hero.jpg │ │ │ ├── browser-icon-firefox.png │ │ │ ├── bootstrap-example-fluid.jpg │ │ │ ├── bootstrap-example-signin.png │ │ │ ├── bootstrap-example-carousel.png │ │ │ ├── bootstrap-example-starter.jpg │ │ │ ├── bootstrap-example-sticky-footer.png │ │ │ └── bootstrap-example-marketing-narrow.png │ │ ├── grid-baseline-20px.png │ │ ├── bootstrap-docs-readme.png │ │ ├── example-sites │ │ │ ├── fleetio.png │ │ │ ├── jshint.png │ │ │ ├── kippt.png │ │ │ ├── 8020select.png │ │ │ ├── breakingnews.png │ │ │ ├── soundready.png │ │ │ ├── adoptahydrant.png │ │ │ └── gathercontent.png │ │ ├── glyphicons-halflings.png │ │ ├── bootstrap-mdo-sfmoma-01.jpg │ │ ├── bootstrap-mdo-sfmoma-02.jpg │ │ ├── bootstrap-mdo-sfmoma-03.jpg │ │ ├── bs-docs-twitter-github.png │ │ ├── bs-docs-bootstrap-features.png │ │ ├── bs-docs-masthead-pattern.png │ │ ├── glyphicons-halflings-white.png │ │ ├── responsive-illustrations.png │ │ └── bs-docs-responsive-illustrations.png │ └── js │ │ ├── google-code-prettify │ │ └── prettify.css │ │ ├── bootstrap-transition.js │ │ ├── bootstrap-alert.js │ │ ├── bootstrap-button.js │ │ ├── bootstrap-popover.js │ │ ├── README.md │ │ ├── bootstrap-affix.js │ │ ├── bootstrap-tab.js │ │ └── application.js └── examples │ ├── starter-template.html │ ├── signin.html │ └── sticky-footer.html ├── img ├── glyphicons-halflings.png └── glyphicons-halflings-white.png ├── component.json ├── js ├── .jshintrc ├── tests │ ├── server.js │ ├── unit │ │ ├── bootstrap-transition.js │ │ ├── bootstrap-phantom.js │ │ ├── bootstrap-affix.js │ │ ├── bootstrap-scrollspy.js │ │ ├── bootstrap-alert.js │ │ ├── bootstrap-tab.js │ │ ├── bootstrap-collapse.js │ │ ├── bootstrap-button.js │ │ ├── bootstrap-modal.js │ │ └── bootstrap-carousel.js │ ├── index.html │ └── phantom.js ├── bootstrap-transition.js ├── bootstrap-alert.js ├── bootstrap-button.js ├── bootstrap-popover.js ├── bootstrap-affix.js └── bootstrap-tab.js ├── composer.json ├── less ├── layouts.less ├── component-animations.less ├── utilities.less ├── grid.less ├── breadcrumbs.less ├── responsive-768px-979px.less ├── hero-unit.less ├── wells.less ├── responsive-1200px-min.less ├── close.less ├── accordion.less ├── pager.less ├── media.less ├── scaffolding.less ├── responsive-utilities.less ├── thumbnails.less ├── responsive.less ├── code.less ├── alerts.less ├── bootstrap.less ├── tooltip.less ├── labels-badges.less ├── modals.less ├── tests │ └── forms-responsive.html ├── carousel.less ├── pagination.less ├── progress-bars.less └── popovers.less ├── .gitignore ├── package.json ├── CONTRIBUTING.md ├── Makefile └── README.md /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 -------------------------------------------------------------------------------- /docs/build/node_modules/hogan.js/.git_ignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /docs/assets/ico/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/ico/favicon.ico -------------------------------------------------------------------------------- /docs/assets/ico/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/ico/favicon.png -------------------------------------------------------------------------------- /img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /docs/assets/img/less-logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/less-logo-large.png -------------------------------------------------------------------------------- /img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /docs/assets/img/examples/slide-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/examples/slide-01.jpg -------------------------------------------------------------------------------- /docs/assets/img/examples/slide-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/examples/slide-02.jpg -------------------------------------------------------------------------------- /docs/assets/img/examples/slide-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/examples/slide-03.jpg -------------------------------------------------------------------------------- /docs/assets/img/grid-baseline-20px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/grid-baseline-20px.png -------------------------------------------------------------------------------- /docs/assets/img/bootstrap-docs-readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/bootstrap-docs-readme.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/fleetio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/fleetio.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/jshint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/jshint.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/kippt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/kippt.png -------------------------------------------------------------------------------- /docs/assets/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /docs/assets/img/bootstrap-mdo-sfmoma-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/bootstrap-mdo-sfmoma-01.jpg -------------------------------------------------------------------------------- /docs/assets/img/bootstrap-mdo-sfmoma-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/bootstrap-mdo-sfmoma-02.jpg -------------------------------------------------------------------------------- /docs/assets/img/bootstrap-mdo-sfmoma-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/bootstrap-mdo-sfmoma-03.jpg -------------------------------------------------------------------------------- /docs/assets/img/bs-docs-twitter-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/bs-docs-twitter-github.png -------------------------------------------------------------------------------- /docs/build/node_modules/hogan.js/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "test/spec"] 2 | path = test/spec 3 | url = https://github.com/mustache/spec.git 4 | -------------------------------------------------------------------------------- /docs/assets/img/bs-docs-bootstrap-features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/bs-docs-bootstrap-features.png -------------------------------------------------------------------------------- /docs/assets/img/bs-docs-masthead-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/bs-docs-masthead-pattern.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/8020select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/8020select.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/breakingnews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/breakingnews.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/soundready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/soundready.png -------------------------------------------------------------------------------- /docs/assets/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /docs/assets/img/responsive-illustrations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/responsive-illustrations.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/adoptahydrant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/adoptahydrant.png -------------------------------------------------------------------------------- /docs/assets/img/example-sites/gathercontent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/example-sites/gathercontent.png -------------------------------------------------------------------------------- /docs/assets/img/examples/browser-icon-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/examples/browser-icon-chrome.png -------------------------------------------------------------------------------- /docs/assets/img/examples/browser-icon-safari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/bootstrap/master/docs/assets/img/examples/browser-icon-safari.png -------------------------------------------------------------------------------- /docs/build/node_modules/hogan.js/test/html/list.html: -------------------------------------------------------------------------------- 1 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/js/tests/unit/bootstrap-transition.js:
--------------------------------------------------------------------------------
1 | $(function () {
2 |
3 | module("bootstrap-transition")
4 |
5 | test("should be defined on jquery support object", function () {
6 | ok($.support.transition !== undefined, 'transition object is defined')
7 | })
8 |
9 | test("should provide an end object", function () {
10 | ok($.support.transition ? $.support.transition.end : true, 'end string is defined')
11 | })
12 |
13 | })
--------------------------------------------------------------------------------
/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Quick floats
7 | .pull-right {
8 | float: right;
9 | }
10 | .pull-left {
11 | float: left;
12 | }
13 |
14 | // Toggling content
15 | .hide {
16 | display: none;
17 | }
18 | .show {
19 | display: block;
20 | }
21 |
22 | // Visibility
23 | .invisible {
24 | visibility: hidden;
25 | }
26 |
27 | // For Affix plugin
28 | .affix {
29 | position: fixed;
30 | }
31 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Numerous always-ignore extensions
2 | *.diff
3 | *.err
4 | *.orig
5 | *.log
6 | *.rej
7 | *.swo
8 | *.swp
9 | *.zip
10 | *.vi
11 | *~
12 | *.sass-cache
13 |
14 | # OS or Editor folders
15 | .DS_Store
16 | ._*
17 | Thumbs.db
18 | .cache
19 | .project
20 | .settings
21 | .tmproj
22 | *.esproj
23 | nbproject
24 | *.sublime-project
25 | *.sublime-workspace
26 |
27 | # Komodo
28 | *.komodoproject
29 | .komodotools
30 |
31 | # Folders to ignore
32 | .hg
33 | .svn
34 | .CVS
35 | .idea
36 | node_modules
37 | dist
38 |
--------------------------------------------------------------------------------
/less/grid.less:
--------------------------------------------------------------------------------
1 | //
2 | // Grid system
3 | // --------------------------------------------------
4 |
5 |
6 | // Fixed (940px)
7 | #grid > .core(@gridColumnWidth, @gridGutterWidth);
8 |
9 | // Fluid (940px)
10 | #grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);
11 |
12 | // Reset utility classes due to specificity
13 | [class*="span"].hide,
14 | .row-fluid [class*="span"].hide {
15 | display: none;
16 | }
17 |
18 | [class*="span"].pull-right,
19 | .row-fluid [class*="span"].pull-right {
20 | float: right;
21 | }
22 |
--------------------------------------------------------------------------------
/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: 8px 15px;
8 | margin: 0 0 @baseLineHeight;
9 | list-style: none;
10 | background-color: #f5f5f5;
11 | .border-radius(@baseBorderRadius);
12 | > li {
13 | display: inline-block;
14 | .ie7-inline-block();
15 | text-shadow: 0 1px 0 @white;
16 | > .divider {
17 | padding: 0 5px;
18 | color: #ccc;
19 | }
20 | }
21 | > .active {
22 | color: @grayLight;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/less/responsive-768px-979px.less:
--------------------------------------------------------------------------------
1 | //
2 | // Responsive: Tablet to desktop
3 | // --------------------------------------------------
4 |
5 |
6 | @media (min-width: 768px) and (max-width: 979px) {
7 |
8 | // Fixed grid
9 | #grid > .core(@gridColumnWidth768, @gridGutterWidth768);
10 |
11 | // Fluid grid
12 | #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768);
13 |
14 | // Input grid
15 | #grid > .input(@gridColumnWidth768, @gridGutterWidth768);
16 |
17 | // No need to reset .thumbnails here since it's the same @gridGutterWidth
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/less/hero-unit.less:
--------------------------------------------------------------------------------
1 | //
2 | // Hero unit
3 | // --------------------------------------------------
4 |
5 |
6 | .hero-unit {
7 | padding: 60px;
8 | margin-bottom: 30px;
9 | font-size: 18px;
10 | font-weight: 200;
11 | line-height: @baseLineHeight * 1.5;
12 | color: @heroUnitLeadColor;
13 | background-color: @heroUnitBackground;
14 | .border-radius(6px);
15 | h1 {
16 | margin-bottom: 0;
17 | font-size: 60px;
18 | line-height: 1;
19 | color: @heroUnitHeadingColor;
20 | letter-spacing: -1px;
21 | }
22 | li {
23 | line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hogan.js"
3 | , "description": "A mustache compiler."
4 | , "version": "1.0.5-dev"
5 | , "keywords": ["mustache", "template"]
6 | , "main": "./lib/hogan.js"
7 | , "homepage": "http://twitter.github.com/hogan.js/"
8 | , "author": "Twitter Inc."
9 | , "repository": {
10 | "type": "git"
11 | , "url": "https://github.com/twitter/hogan.js.git"
12 | }
13 | , "licenses": [
14 | { "type": "Apache-2.0"
15 | , "url": "http://www.apache.org/licenses/LICENSE-2.0"
16 | }
17 | ]
18 | , "devDependencies": { "uglify-js": "*" }
19 | , "bin" : { "hulk" : "./bin/hulk" }
20 | }
21 |
--------------------------------------------------------------------------------
/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @wellBackground;
12 | border: 1px solid darken(@wellBackground, 7%);
13 | .border-radius(@baseBorderRadius);
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-large {
23 | padding: 24px;
24 | .border-radius(@borderRadiusLarge);
25 | }
26 | .well-small {
27 | padding: 9px;
28 | .border-radius(@borderRadiusSmall);
29 | }
30 |
--------------------------------------------------------------------------------
/less/responsive-1200px-min.less:
--------------------------------------------------------------------------------
1 | //
2 | // Responsive: Large desktop and up
3 | // --------------------------------------------------
4 |
5 |
6 | @media (min-width: 1200px) {
7 |
8 | // Fixed grid
9 | #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200);
10 |
11 | // Fluid grid
12 | #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);
13 |
14 | // Input grid
15 | #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200);
16 |
17 | // Thumbnails
18 | .thumbnails {
19 | margin-left: -@gridGutterWidth1200;
20 | }
21 | .thumbnails > li {
22 | margin-left: @gridGutterWidth1200;
23 | }
24 | .row-fluid .thumbnails {
25 | margin-left: 0;
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/wrappers/js.mustache:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011 Twitter, Inc.
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | {{{template}}}
17 | {{{compiler}}}
18 |
--------------------------------------------------------------------------------
/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: 20px;
9 | font-weight: bold;
10 | line-height: @baseLineHeight;
11 | color: @black;
12 | text-shadow: 0 1px 0 rgba(255,255,255,1);
13 | .opacity(20);
14 | &:hover {
15 | color: @black;
16 | text-decoration: none;
17 | cursor: pointer;
18 | .opacity(40);
19 | }
20 | }
21 |
22 | // Additional properties for button version
23 | // iOS requires the button element instead of an anchor tag.
24 | // If you want the anchor version, it requires `href="#"`.
25 | button.close {
26 | padding: 0;
27 | cursor: pointer;
28 | background: transparent;
29 | border: 0;
30 | -webkit-appearance: none;
31 | }
--------------------------------------------------------------------------------
/less/accordion.less:
--------------------------------------------------------------------------------
1 | //
2 | // Accordion
3 | // --------------------------------------------------
4 |
5 |
6 | // Parent container
7 | .accordion {
8 | margin-bottom: @baseLineHeight;
9 | }
10 |
11 | // Group == heading + body
12 | .accordion-group {
13 | margin-bottom: 2px;
14 | border: 1px solid #e5e5e5;
15 | .border-radius(@baseBorderRadius);
16 | }
17 | .accordion-heading {
18 | border-bottom: 0;
19 | }
20 | .accordion-heading .accordion-toggle {
21 | display: block;
22 | padding: 8px 15px;
23 | }
24 |
25 | // General toggle styles
26 | .accordion-toggle {
27 | cursor: pointer;
28 | }
29 |
30 | // Inner needs the styles because you can't animate properly with any styles on the element
31 | .accordion-inner {
32 | padding: 9px 15px;
33 | border-top: 1px solid #e5e5e5;
34 | }
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap"
3 | , "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
4 | , "version": "2.2.2"
5 | , "keywords": ["bootstrap", "css"]
6 | , "homepage": "http://twitter.github.com/bootstrap/"
7 | , "author": "Twitter Inc."
8 | , "scripts": { "test": "make test" }
9 | , "repository": {
10 | "type": "git"
11 | , "url": "https://github.com/twitter/bootstrap.git"
12 | }
13 | , "licenses": [
14 | {
15 | "type": "Apache-2.0"
16 | , "url": "http://www.apache.org/licenses/LICENSE-2.0"
17 | }
18 | ]
19 | , "devDependencies": {
20 | "uglify-js": "1.2.6"
21 | , "jshint": "0.6.1"
22 | , "recess": "1.0.3"
23 | , "connect": "2.1.3"
24 | , "hogan.js": "2.0.0"
25 | }
26 | }
--------------------------------------------------------------------------------
/js/tests/unit/bootstrap-phantom.js:
--------------------------------------------------------------------------------
1 | // Logging setup for phantom integration
2 | // adapted from Modernizr
3 |
4 | QUnit.begin = function () {
5 | console.log("Starting test suite")
6 | console.log("================================================\n")
7 | }
8 |
9 | QUnit.moduleDone = function (opts) {
10 | if (opts.failed === 0) {
11 | console.log("\u2714 All tests passed in '" + opts.name + "' module")
12 | } else {
13 | console.log("\u2716 " + opts.failed + " tests failed in '" + opts.name + "' module")
14 | }
15 | }
16 |
17 | QUnit.done = function (opts) {
18 | console.log("\n================================================")
19 | console.log("Tests completed in " + opts.runtime + " milliseconds")
20 | console.log(opts.passed + " tests of " + opts.total + " passed, " + opts.failed + " failed.")
21 | }
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/wrappers/amd.js.mustache:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011 Twitter, Inc.
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | {{{template}}}
17 | {{{compiler}}}
18 |
19 | if (typeof define === 'function' && define.amd) {
20 | define(Hogan);
21 | }
22 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/wrappers/common.js.mustache:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011 Twitter, Inc.
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | {{{template}}}
17 | {{{compiler}}}
18 |
19 | if (typeof module !== 'undefined' && module.exports) {
20 | module.exports = Hogan;
21 | }
22 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/lib/hogan.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011 Twitter, Inc.
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | // This file is for use with Node.js. See dist/ for browser files.
17 |
18 | var Hogan = require('./compiler');
19 | Hogan.Template = require('./template').Template;
20 | module.exports = Hogan;
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/test/spec/Rakefile:
--------------------------------------------------------------------------------
1 | require 'json'
2 | require 'yaml'
3 |
4 | # Our custom YAML tags must retain their magic.
5 | %w[ code ].each do |tag|
6 | YAML::add_builtin_type(tag) { |_,val| val.merge(:__tag__ => tag) }
7 | end
8 |
9 | desc 'Build all alternate versions of the specs.'
10 | multitask :build => [ 'build:json' ]
11 |
12 | namespace :build do
13 | note = 'Do not edit this file; changes belong in the appropriate YAML file.'
14 |
15 | desc 'Build JSON versions of the specs.'
16 | task :json do
17 | rm(Dir['specs/*.json'], :verbose => false)
18 | Dir.glob('specs/*.yml').each do |filename|
19 | json_file = filename.gsub('.yml', '.json')
20 |
21 | File.open(json_file, 'w') do |file|
22 | doc = YAML.load_file(filename)
23 | file << doc.merge(:__ATTN__ => note).to_json()
24 | end
25 | end
26 | end
27 | end
28 |
--------------------------------------------------------------------------------
/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | margin: @baseLineHeight 0;
8 | list-style: none;
9 | text-align: center;
10 | .clearfix();
11 | }
12 | .pager li {
13 | display: inline;
14 | }
15 | .pager li > a,
16 | .pager li > span {
17 | display: inline-block;
18 | padding: 5px 14px;
19 | background-color: #fff;
20 | border: 1px solid #ddd;
21 | .border-radius(15px);
22 | }
23 | .pager li > a:hover {
24 | text-decoration: none;
25 | background-color: #f5f5f5;
26 | }
27 | .pager .next > a,
28 | .pager .next > span {
29 | float: right;
30 | }
31 | .pager .previous > a,
32 | .pager .previous > span {
33 | float: left;
34 | }
35 | .pager .disabled > a,
36 | .pager .disabled > a:hover,
37 | .pager .disabled > span {
38 | color: @grayLight;
39 | background-color: #fff;
40 | cursor: default;
41 | }
--------------------------------------------------------------------------------
/js/tests/unit/bootstrap-affix.js:
--------------------------------------------------------------------------------
1 | $(function () {
2 |
3 | module("bootstrap-affix")
4 |
5 | test("should provide no conflict", function () {
6 | var affix = $.fn.affix.noConflict()
7 | ok(!$.fn.affix, 'affix was set back to undefined (org value)')
8 | $.fn.affix = affix
9 | })
10 |
11 | test("should be defined on jquery object", function () {
12 | ok($(document.body).affix, 'affix method is defined')
13 | })
14 |
15 | test("should return element", function () {
16 | ok($(document.body).affix()[0] == document.body, 'document.body returned')
17 | })
18 |
19 | test("should exit early if element is not visible", function () {
20 | var $affix = $('').affix()
21 | $affix.data('affix').checkPosition()
22 | ok(!$affix.hasClass('affix'), 'affix class was not added')
23 | })
24 |
25 | })
--------------------------------------------------------------------------------
/docs/assets/js/google-code-prettify/prettify.css:
--------------------------------------------------------------------------------
1 | .com { color: #93a1a1; }
2 | .lit { color: #195f91; }
3 | .pun, .opn, .clo { color: #93a1a1; }
4 | .fun { color: #dc322f; }
5 | .str, .atv { color: #D14; }
6 | .kwd, .prettyprint .tag { color: #1e347b; }
7 | .typ, .atn, .dec, .var { color: teal; }
8 | .pln { color: #48484c; }
9 |
10 | .prettyprint {
11 | padding: 8px;
12 | background-color: #f7f7f9;
13 | border: 1px solid #e1e1e8;
14 | }
15 | .prettyprint.linenums {
16 | -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
17 | -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
18 | box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
19 | }
20 |
21 | /* Specify class=linenums on a pre to get line numbering */
22 | ol.linenums {
23 | margin: 0 0 0 33px; /* IE indents via margin-left */
24 | }
25 | ol.linenums li {
26 | padding-left: 12px;
27 | color: #bebec5;
28 | line-height: 20px;
29 | text-shadow: 0 1px 0 #fff;
30 | }
--------------------------------------------------------------------------------
/less/media.less:
--------------------------------------------------------------------------------
1 | // Media objects
2 | // Source: http://stubbornella.org/content/?p=497
3 | // --------------------------------------------------
4 |
5 |
6 | // Common styles
7 | // -------------------------
8 |
9 | // Clear the floats
10 | .media,
11 | .media-body {
12 | overflow: hidden;
13 | *overflow: visible;
14 | zoom: 1;
15 | }
16 |
17 | // Proper spacing between instances of .media
18 | .media,
19 | .media .media {
20 | margin-top: 15px;
21 | }
22 | .media:first-child {
23 | margin-top: 0;
24 | }
25 |
26 | // For images and videos, set to block
27 | .media-object {
28 | display: block;
29 | }
30 |
31 | // Reset margins on headings for tighter default spacing
32 | .media-heading {
33 | margin: 0 0 5px;
34 | }
35 |
36 |
37 | // Media image alignment
38 | // -------------------------
39 |
40 | .media .pull-left {
41 | margin-right: 10px;
42 | }
43 | .media .pull-right {
44 | margin-left: 10px;
45 | }
46 |
47 |
48 | // Media list variation
49 | // -------------------------
50 |
51 | // Undo default ul/ol styles
52 | .media-list {
53 | margin-left: 0;
54 | list-style: none;
55 | }
56 |
--------------------------------------------------------------------------------
/less/scaffolding.less:
--------------------------------------------------------------------------------
1 | //
2 | // Scaffolding
3 | // --------------------------------------------------
4 |
5 |
6 | // Body reset
7 | // -------------------------
8 |
9 | body {
10 | margin: 0;
11 | font-family: @baseFontFamily;
12 | font-size: @baseFontSize;
13 | line-height: @baseLineHeight;
14 | color: @textColor;
15 | background-color: @bodyBackground;
16 | }
17 |
18 |
19 | // Links
20 | // -------------------------
21 |
22 | a {
23 | color: @linkColor;
24 | text-decoration: none;
25 | }
26 | a:hover {
27 | color: @linkColorHover;
28 | text-decoration: underline;
29 | }
30 |
31 |
32 | // Images
33 | // -------------------------
34 |
35 | // Rounded corners
36 | .img-rounded {
37 | .border-radius(6px);
38 | }
39 |
40 | // Add polaroid-esque trim
41 | .img-polaroid {
42 | padding: 4px;
43 | background-color: #fff;
44 | border: 1px solid #ccc;
45 | border: 1px solid rgba(0,0,0,.2);
46 | .box-shadow(0 1px 3px rgba(0,0,0,.1));
47 | }
48 |
49 | // Perfect circle
50 | .img-circle {
51 | .border-radius(500px); // crank the border-radius so it works with most reasonably sized images
52 | }
53 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/test/spec/Changes:
--------------------------------------------------------------------------------
1 | 2011-03-20: v1.1.2
2 | Added tests for standalone tags at string boundaries.
3 | Added tests for rendering lambda returns after delimiter changes.
4 |
5 | 2011-03-20: v1.0.3
6 | Added tests for standalone tags at string boundaries.
7 | Added tests for rendering lambda returns after delimiter changes.
8 |
9 | 2011-03-05: v1.1.1
10 | Added tests for indented inline sections.
11 | Added tests for Windows-style newlines.
12 |
13 | 2011-03-05: v1.0.2
14 | Added tests for indented inline sections.
15 | Added tests for Windows-style newlines.
16 |
17 | 2011-03-04: v1.1.0
18 | Implicit iterators.
19 | A single period (`.`) may now be used as a name in Interpolation tags,
20 | which represents the top of stack (cast as a String).
21 | Dotted names.
22 | Names containing one or more periods should be resolved as chained
23 | properties; naïvely, this is like nesting section tags, but with some
24 | built-in scoping protections.
25 |
26 | 2011-03-02: v1.0.1
27 | Clarifying a point in the README about version compliance.
28 | Adding high-level documentation to each spec file.
29 |
30 | 2011-02-28: v1.0.0
31 | Initial Release
32 |
--------------------------------------------------------------------------------
/docs/build/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | var hogan = require('hogan.js')
3 | , fs = require('fs')
4 | , prod = process.argv[2] == 'production'
5 | , title = 'Bootstrap'
6 |
7 | var layout, pages
8 |
9 | // compile layout template
10 | layout = fs.readFileSync(__dirname + '/../templates/layout.mustache', 'utf-8')
11 | layout = hogan.compile(layout, { sectionTags: [{o:'_i', c:'i'}] })
12 |
13 | // retrieve pages
14 | pages = fs.readdirSync(__dirname + '/../templates/pages')
15 |
16 | // iterate over pages
17 | pages.forEach(function (name) {
18 |
19 | if (!name.match(/\.mustache$/)) return
20 |
21 | var page = fs.readFileSync(__dirname + '/../templates/pages/' + name, 'utf-8')
22 | , context = {}
23 |
24 | context[name.replace(/\.mustache$/, '')] = 'active'
25 | context._i = true
26 | context.production = prod
27 | context.title = name
28 | .replace(/\.mustache/, '')
29 | .replace(/\-.*/, '')
30 | .replace(/(.)/, function ($1) { return $1.toUpperCase() })
31 |
32 | if (context.title == 'Index') {
33 | context.title = title
34 | } else {
35 | context.title += ' · ' + title
36 | }
37 |
38 | page = hogan.compile(page, { sectionTags: [{o:'_i', c:'i'}] })
39 | page = layout.render(context, {
40 | body: page
41 | })
42 |
43 | fs.writeFileSync(__dirname + '/../' + name.replace(/mustache$/, 'html'), page, 'utf-8')
44 | })
--------------------------------------------------------------------------------
/js/tests/unit/bootstrap-scrollspy.js:
--------------------------------------------------------------------------------
1 | $(function () {
2 |
3 | module("bootstrap-scrollspy")
4 |
5 | test("should provide no conflict", function () {
6 | var scrollspy = $.fn.scrollspy.noConflict()
7 | ok(!$.fn.scrollspy, 'scrollspy was set back to undefined (org value)')
8 | $.fn.scrollspy = scrollspy
9 | })
10 |
11 | test("should be defined on jquery object", function () {
12 | ok($(document.body).scrollspy, 'scrollspy method is defined')
13 | })
14 |
15 | test("should return element", function () {
16 | ok($(document.body).scrollspy()[0] == document.body, 'document.body returned')
17 | })
18 |
19 | test("should switch active class on scroll", function () {
20 | var sectionHTML = ''
21 | , $section = $(sectionHTML).append('#qunit-fixture')
22 | , topbarHTML =''
32 | , $topbar = $(topbarHTML).scrollspy()
33 |
34 | ok($topbar.find('.active', true))
35 | })
36 |
37 | })
--------------------------------------------------------------------------------
/less/responsive-utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Responsive: Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Hide from screenreaders and browsers
7 | // Credit: HTML5 Boilerplate
8 | .hidden {
9 | display: none;
10 | visibility: hidden;
11 | }
12 |
13 | // Visibility utilities
14 |
15 | // For desktops
16 | .visible-phone { display: none !important; }
17 | .visible-tablet { display: none !important; }
18 | .hidden-phone { }
19 | .hidden-tablet { }
20 | .hidden-desktop { display: none !important; }
21 | .visible-desktop { display: inherit !important; }
22 |
23 | // Tablets & small desktops only
24 | @media (min-width: 768px) and (max-width: 979px) {
25 | // Hide everything else
26 | .hidden-desktop { display: inherit !important; }
27 | .visible-desktop { display: none !important ; }
28 | // Show
29 | .visible-tablet { display: inherit !important; }
30 | // Hide
31 | .hidden-tablet { display: none !important; }
32 | }
33 |
34 | // Phones only
35 | @media (max-width: 767px) {
36 | // Hide everything else
37 | .hidden-desktop { display: inherit !important; }
38 | .visible-desktop { display: none !important; }
39 | // Show
40 | .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior
41 | // Hide
42 | .hidden-phone { display: none !important; }
43 | }
44 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/tools/web_templates.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011 Twitter, Inc.
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | var Hogan = require(__dirname + '/../lib/hogan.js');
17 | var fs = require('fs');
18 | var path = require('path');
19 |
20 | // Substitute variables in the homepage with values from package.json
21 | var homeTemplatePath = __dirname + '/../build/gh-pages/index.html.mustache';
22 | var contextPath = __dirname + '/../dist/nodejs/package.json';
23 |
24 | var homepage = fs.readFileSync(homeTemplatePath).toString();
25 | var context = JSON.parse(fs.readFileSync(contextPath).toString());
26 |
27 | var template = Hogan.compile(homepage);
28 |
29 | fs.writeFileSync(path.dirname(homeTemplatePath) + '/index.html',
30 | template.render(context));
31 |
32 | fs.unlinkSync(homeTemplatePath);
--------------------------------------------------------------------------------
/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files
7 |
8 | // Make wrapper ul behave like the grid
9 | .thumbnails {
10 | margin-left: -@gridGutterWidth;
11 | list-style: none;
12 | .clearfix();
13 | }
14 | // Fluid rows have no left margin
15 | .row-fluid .thumbnails {
16 | margin-left: 0;
17 | }
18 |
19 | // Float li to make thumbnails appear in a row
20 | .thumbnails > li {
21 | float: left; // Explicity set the float since we don't require .span* classes
22 | margin-bottom: @baseLineHeight;
23 | margin-left: @gridGutterWidth;
24 | }
25 |
26 | // The actual thumbnail (can be `a` or `div`)
27 | .thumbnail {
28 | display: block;
29 | padding: 4px;
30 | line-height: @baseLineHeight;
31 | border: 1px solid #ddd;
32 | .border-radius(@baseBorderRadius);
33 | .box-shadow(0 1px 3px rgba(0,0,0,.055));
34 | .transition(all .2s ease-in-out);
35 | }
36 | // Add a hover state for linked versions only
37 | a.thumbnail:hover {
38 | border-color: @linkColor;
39 | .box-shadow(0 1px 4px rgba(0,105,214,.25));
40 | }
41 |
42 | // Images and captions
43 | .thumbnail > img {
44 | display: block;
45 | max-width: 100%;
46 | margin-left: auto;
47 | margin-right: auto;
48 | }
49 | .thumbnail .caption {
50 | padding: 9px;
51 | color: @gray;
52 | }
53 |
--------------------------------------------------------------------------------
/less/responsive.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Responsive v2.2.2
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */
10 |
11 |
12 | // Responsive.less
13 | // For phone and tablet devices
14 | // -------------------------------------------------------------
15 |
16 |
17 | // IE10 Metro responsive
18 | // Required for Windows 8 Metro split-screen snapping with IE10
19 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
20 |
21 | @-ms-viewport{
22 | width: device-width;
23 | }
24 |
25 |
26 | // REPEAT VARIABLES & MIXINS
27 | // -------------------------
28 | // Required since we compile the responsive stuff separately
29 |
30 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc
31 | @import "mixins.less";
32 |
33 |
34 | // RESPONSIVE CLASSES
35 | // ------------------
36 |
37 | @import "responsive-utilities.less";
38 |
39 |
40 | // MEDIA QUERIES
41 | // ------------------
42 |
43 | // Large desktops
44 | @import "responsive-1200px-min.less";
45 |
46 | // Tablets to regular desktops
47 | @import "responsive-768px-979px.less";
48 |
49 | // Phones to portrait tablets and narrow desktops
50 | @import "responsive-767px-max.less";
51 |
52 |
53 | // RESPONSIVE NAVBAR
54 | // ------------------
55 |
56 | // From 979px and below, show a button to toggle navbar contents
57 | @import "responsive-navbar.less";
58 |
--------------------------------------------------------------------------------
/less/code.less:
--------------------------------------------------------------------------------
1 | //
2 | // Code (inline and blocK)
3 | // --------------------------------------------------
4 |
5 |
6 | // Inline and block code styles
7 | code,
8 | pre {
9 | padding: 0 3px 2px;
10 | #font > #family > .monospace;
11 | font-size: @baseFontSize - 2;
12 | color: @grayDark;
13 | .border-radius(3px);
14 | }
15 |
16 | // Inline code
17 | code {
18 | padding: 2px 4px;
19 | color: #d14;
20 | background-color: #f7f7f9;
21 | border: 1px solid #e1e1e8;
22 | white-space: nowrap;
23 | }
24 |
25 | // Blocks of code
26 | pre {
27 | display: block;
28 | padding: (@baseLineHeight - 1) / 2;
29 | margin: 0 0 @baseLineHeight / 2;
30 | font-size: @baseFontSize - 1; // 14px to 13px
31 | line-height: @baseLineHeight;
32 | word-break: break-all;
33 | word-wrap: break-word;
34 | white-space: pre;
35 | white-space: pre-wrap;
36 | background-color: #f5f5f5;
37 | border: 1px solid #ccc; // fallback for IE7-8
38 | border: 1px solid rgba(0,0,0,.15);
39 | .border-radius(@baseBorderRadius);
40 |
41 | // Make prettyprint styles more spaced out for readability
42 | &.prettyprint {
43 | margin-bottom: @baseLineHeight;
44 | }
45 |
46 | // Account for some code outputs that place code tags in pre tags
47 | code {
48 | padding: 0;
49 | color: inherit;
50 | white-space: pre;
51 | white-space: pre-wrap;
52 | background-color: transparent;
53 | border: 0;
54 | }
55 | }
56 |
57 | // Enable scrollable blocks of code
58 | .pre-scrollable {
59 | max-height: 340px;
60 | overflow-y: scroll;
61 | }
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/Makefile:
--------------------------------------------------------------------------------
1 | REPO = git@github.com:twitter/hogan.js.git
2 | BUILD := build
3 | VERSION = ${shell node -e 'var s = JSON.parse(require("fs").readFileSync("package.json").toString()).version; console.log(s.substring(0, s.indexOf("-")));'}
4 |
5 | #
6 | # Run command line tests
7 | #
8 | test:
9 | @ node test/index.js
10 |
11 | #
12 | # Run Mustache spec tests
13 | #
14 | spec:
15 | @ node test/spec.js
16 |
17 | #
18 | # Run benchmark
19 | #
20 | benchmark:
21 | @ node benchmark/console/index.js
22 |
23 | clean:
24 | @ rm -rf dist/*
25 | #
26 | # Make a new version of Hogan from the current dev version.
27 | #
28 | release: clean
29 | @ echo "Creating a new version of Hogan."
30 | @ mkdir -p dist/nodejs
31 | @ cp -R lib dist/nodejs/lib
32 | @ node tools/release.js
33 | @ mkdir -p web/builds/$(VERSION)
34 | @ cp dist/*.* web/builds/$(VERSION)/.
35 | #
36 | # Make the gh-pages website
37 | #
38 | # This target builds the hogan.js github website using hogan.js.
39 | #
40 | # cd into build/gh-pages to check in the new site.
41 | #
42 | GH_PAGES = $(BUILD)/gh-pages
43 | web: | pages
44 | @cp -R web/* $(GH_PAGES)
45 | @@ node tools/web_templates.js
46 | @echo
47 | @echo "Website built in $(GH_PAGES)."
48 |
49 | #
50 | # Checkout the gh-pages branch.
51 | #
52 | pages: | $(BUILD)
53 | @if [ ! -d "$(GH_PAGES)" ]; then \
54 | git clone -b gh-pages $(REPO) $(GH_PAGES); \
55 | rm -rf $(GH_PAGES)/*; \
56 | fi;
57 | @mkdir -p $(GH_PAGES)/images
58 |
59 | $(BUILD):
60 | mkdir -p $(BUILD)
61 |
62 | .PHONY: test spec benchmark web release
63 |
--------------------------------------------------------------------------------
/less/alerts.less:
--------------------------------------------------------------------------------
1 | //
2 | // Alerts
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // -------------------------
8 |
9 | .alert {
10 | padding: 8px 35px 8px 14px;
11 | margin-bottom: @baseLineHeight;
12 | text-shadow: 0 1px 0 rgba(255,255,255,.5);
13 | background-color: @warningBackground;
14 | border: 1px solid @warningBorder;
15 | .border-radius(@baseBorderRadius);
16 | }
17 | .alert,
18 | .alert h4 {
19 | // Specified for the h4 to prevent conflicts of changing @headingsColor
20 | color: @warningText;
21 | }
22 | .alert h4 {
23 | margin: 0;
24 | }
25 |
26 | // Adjust close link position
27 | .alert .close {
28 | position: relative;
29 | top: -2px;
30 | right: -21px;
31 | line-height: @baseLineHeight;
32 | }
33 |
34 |
35 | // Alternate styles
36 | // -------------------------
37 |
38 | .alert-success {
39 | background-color: @successBackground;
40 | border-color: @successBorder;
41 | color: @successText;
42 | }
43 | .alert-success h4 {
44 | color: @successText;
45 | }
46 | .alert-danger,
47 | .alert-error {
48 | background-color: @errorBackground;
49 | border-color: @errorBorder;
50 | color: @errorText;
51 | }
52 | .alert-danger h4,
53 | .alert-error h4 {
54 | color: @errorText;
55 | }
56 | .alert-info {
57 | background-color: @infoBackground;
58 | border-color: @infoBorder;
59 | color: @infoText;
60 | }
61 | .alert-info h4 {
62 | color: @infoText;
63 | }
64 |
65 |
66 | // Block alerts
67 | // -------------------------
68 |
69 | .alert-block {
70 | padding-top: 14px;
71 | padding-bottom: 14px;
72 | }
73 | .alert-block > p,
74 | .alert-block > ul {
75 | margin-bottom: 0;
76 | }
77 | .alert-block p + p {
78 | margin-top: 5px;
79 | }
80 |
--------------------------------------------------------------------------------
/less/bootstrap.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v2.2.2
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */
10 |
11 | // CSS Reset
12 | @import "reset.less";
13 |
14 | // Core variables and mixins
15 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc
16 | @import "mixins.less";
17 |
18 | // Grid system and page structure
19 | @import "scaffolding.less";
20 | @import "grid.less";
21 | @import "layouts.less";
22 |
23 | // Base CSS
24 | @import "type.less";
25 | @import "code.less";
26 | @import "forms.less";
27 | @import "tables.less";
28 |
29 | // Components: common
30 | @import "sprites.less";
31 | @import "dropdowns.less";
32 | @import "wells.less";
33 | @import "component-animations.less";
34 | @import "close.less";
35 |
36 | // Components: Buttons & Alerts
37 | @import "buttons.less";
38 | @import "button-groups.less";
39 | @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
40 |
41 | // Components: Nav
42 | @import "navs.less";
43 | @import "navbar.less";
44 | @import "breadcrumbs.less";
45 | @import "pagination.less";
46 | @import "pager.less";
47 |
48 | // Components: Popovers
49 | @import "modals.less";
50 | @import "tooltip.less";
51 | @import "popovers.less";
52 |
53 | // Components: Misc
54 | @import "thumbnails.less";
55 | @import "media.less";
56 | @import "labels-badges.less";
57 | @import "progress-bars.less";
58 | @import "accordion.less";
59 | @import "carousel.less";
60 | @import "hero-unit.less";
61 |
62 | // Utility classes
63 | @import "utilities.less"; // Has to be last to override when necessary
64 |
--------------------------------------------------------------------------------
/less/tooltip.less:
--------------------------------------------------------------------------------
1 | //
2 | // Tooltips
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .tooltip {
8 | position: absolute;
9 | z-index: @zindexTooltip;
10 | display: block;
11 | visibility: visible;
12 | padding: 5px;
13 | font-size: 11px;
14 | .opacity(0);
15 | &.in { .opacity(80); }
16 | &.top { margin-top: -3px; }
17 | &.right { margin-left: 3px; }
18 | &.bottom { margin-top: 3px; }
19 | &.left { margin-left: -3px; }
20 | }
21 |
22 | // Wrapper for the tooltip content
23 | .tooltip-inner {
24 | max-width: 200px;
25 | padding: 3px 8px;
26 | color: @tooltipColor;
27 | text-align: center;
28 | text-decoration: none;
29 | background-color: @tooltipBackground;
30 | .border-radius(@baseBorderRadius);
31 | }
32 |
33 | // Arrows
34 | .tooltip-arrow {
35 | position: absolute;
36 | width: 0;
37 | height: 0;
38 | border-color: transparent;
39 | border-style: solid;
40 | }
41 | .tooltip {
42 | &.top .tooltip-arrow {
43 | bottom: 0;
44 | left: 50%;
45 | margin-left: -@tooltipArrowWidth;
46 | border-width: @tooltipArrowWidth @tooltipArrowWidth 0;
47 | border-top-color: @tooltipArrowColor;
48 | }
49 | &.right .tooltip-arrow {
50 | top: 50%;
51 | left: 0;
52 | margin-top: -@tooltipArrowWidth;
53 | border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0;
54 | border-right-color: @tooltipArrowColor;
55 | }
56 | &.left .tooltip-arrow {
57 | top: 50%;
58 | right: 0;
59 | margin-top: -@tooltipArrowWidth;
60 | border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth;
61 | border-left-color: @tooltipArrowColor;
62 | }
63 | &.bottom .tooltip-arrow {
64 | top: 0;
65 | left: 50%;
66 | margin-left: -@tooltipArrowWidth;
67 | border-width: 0 @tooltipArrowWidth @tooltipArrowWidth;
68 | border-bottom-color: @tooltipArrowColor;
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/test/spec/TESTING.md:
--------------------------------------------------------------------------------
1 | Testing your Mustache implementation against this specification should be
2 | relatively simple. If you have a readily available testing framework on your
3 | platform, your task may be even simpler.
4 |
5 | In general, the process for each `.yml` file is as follows:
6 |
7 | 1. Use a YAML parser to load the file.
8 |
9 | 2. For each test in the 'tests' array:
10 |
11 | 1. Ensure that each element of the 'partials' hash (if it exists) is
12 | stored in a place where the interpreter will look for it.
13 |
14 | 2. If your implementation will not support lambdas, feel free to skip over
15 | the optional '~lambdas.yml' file.
16 |
17 | 2.1. If your implementation will support lambdas, ensure that each member of
18 | 'data' tagged with '!code' is properly processed into a language-
19 | specific lambda reference.
20 |
21 | * e.g. Given this YAML data hash:
22 |
23 | `{ x: !code { ruby: 'proc { "x" }', perl: 'sub { "x" }' } }`
24 |
25 | a Ruby-based Mustache implementation would process it such that it
26 | was equivalent to this Ruby hash:
27 |
28 | `{ 'x' => proc { "x" } }`
29 |
30 | * If your implementation language does not currently have lambda
31 | examples in the spec, feel free to implement them and send a pull
32 | request.
33 |
34 | * The JSON version of the spec represents these tagged values as a hash
35 | with a '`__tag__`' key of 'code'.
36 |
37 | 3. Render the template (stored in the 'template' key) with the given 'data'
38 | hash.
39 |
40 | 4. Compare the results of your rendering against the 'expected' value; any
41 | differences should be reported, along with any useful debugging
42 | information.
43 |
44 | * Of note, the 'desc' key contains a rough one-line description of the
45 | behavior being tested -- this is most useful in conjunction with the
46 | file name and test 'name'.
47 |
--------------------------------------------------------------------------------
/js/bootstrap-transition.js:
--------------------------------------------------------------------------------
1 | /* ===================================================
2 | * bootstrap-transition.js v2.2.2
3 | * http://twitter.github.com/bootstrap/javascript.html#transitions
4 | * ===================================================
5 | * Copyright 2012 Twitter, Inc.
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * ========================================================== */
19 |
20 |
21 | !function ($) {
22 |
23 | "use strict"; // jshint ;_;
24 |
25 |
26 | /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
27 | * ======================================================= */
28 |
29 | $(function () {
30 |
31 | $.support.transition = (function () {
32 |
33 | var transitionEnd = (function () {
34 |
35 | var el = document.createElement('bootstrap')
36 | , transEndEventNames = {
37 | 'WebkitTransition' : 'webkitTransitionEnd'
38 | , 'MozTransition' : 'transitionend'
39 | , 'OTransition' : 'oTransitionEnd otransitionend'
40 | , 'transition' : 'transitionend'
41 | }
42 | , name
43 |
44 | for (name in transEndEventNames){
45 | if (el.style[name] !== undefined) {
46 | return transEndEventNames[name]
47 | }
48 | }
49 |
50 | }())
51 |
52 | return transitionEnd && {
53 | end: transitionEnd
54 | }
55 |
56 | })()
57 |
58 | })
59 |
60 | }(window.jQuery);
--------------------------------------------------------------------------------
/docs/assets/js/bootstrap-transition.js:
--------------------------------------------------------------------------------
1 | /* ===================================================
2 | * bootstrap-transition.js v2.2.2
3 | * http://twitter.github.com/bootstrap/javascript.html#transitions
4 | * ===================================================
5 | * Copyright 2012 Twitter, Inc.
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * ========================================================== */
19 |
20 |
21 | !function ($) {
22 |
23 | "use strict"; // jshint ;_;
24 |
25 |
26 | /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
27 | * ======================================================= */
28 |
29 | $(function () {
30 |
31 | $.support.transition = (function () {
32 |
33 | var transitionEnd = (function () {
34 |
35 | var el = document.createElement('bootstrap')
36 | , transEndEventNames = {
37 | 'WebkitTransition' : 'webkitTransitionEnd'
38 | , 'MozTransition' : 'transitionend'
39 | , 'OTransition' : 'oTransitionEnd otransitionend'
40 | , 'transition' : 'transitionend'
41 | }
42 | , name
43 |
44 | for (name in transEndEventNames){
45 | if (el.style[name] !== undefined) {
46 | return transEndEventNames[name]
47 | }
48 | }
49 |
50 | }())
51 |
52 | return transitionEnd && {
53 | end: transitionEnd
54 | }
55 |
56 | })()
57 |
58 | })
59 |
60 | }(window.jQuery);
--------------------------------------------------------------------------------
/less/labels-badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels and badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base classes
7 | .label,
8 | .badge {
9 | display: inline-block;
10 | padding: 2px 4px;
11 | font-size: @baseFontSize * .846;
12 | font-weight: bold;
13 | line-height: 14px; // ensure proper line-height if floated
14 | color: @white;
15 | vertical-align: baseline;
16 | white-space: nowrap;
17 | text-shadow: 0 -1px 0 rgba(0,0,0,.25);
18 | background-color: @grayLight;
19 | }
20 | // Set unique padding and border-radii
21 | .label {
22 | .border-radius(3px);
23 | }
24 | .badge {
25 | padding-left: 9px;
26 | padding-right: 9px;
27 | .border-radius(9px);
28 | }
29 |
30 | // Empty labels/badges collapse
31 | .label,
32 | .badge {
33 | &:empty {
34 | display: none;
35 | }
36 | }
37 |
38 | // Hover state, but only for links
39 | a {
40 | &.label:hover,
41 | &.badge:hover {
42 | color: @white;
43 | text-decoration: none;
44 | cursor: pointer;
45 | }
46 | }
47 |
48 | // Colors
49 | // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
50 | .label,
51 | .badge {
52 | // Important (red)
53 | &-important { background-color: @errorText; }
54 | &-important[href] { background-color: darken(@errorText, 10%); }
55 | // Warnings (orange)
56 | &-warning { background-color: @orange; }
57 | &-warning[href] { background-color: darken(@orange, 10%); }
58 | // Success (green)
59 | &-success { background-color: @successText; }
60 | &-success[href] { background-color: darken(@successText, 10%); }
61 | // Info (turquoise)
62 | &-info { background-color: @infoText; }
63 | &-info[href] { background-color: darken(@infoText, 10%); }
64 | // Inverse (black)
65 | &-inverse { background-color: @grayDark; }
66 | &-inverse[href] { background-color: darken(@grayDark, 10%); }
67 | }
68 |
69 | // Quick fix for labels/badges in buttons
70 | .btn {
71 | .label,
72 | .badge {
73 | position: relative;
74 | top: -1px;
75 | }
76 | }
77 | .btn-mini {
78 | .label,
79 | .badge {
80 | top: 0;
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/docs/build/node_modules/hogan.js/web/builds/1.0.5/template-1.0.5.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve Copyright 2012 Twitter, Inc.
3 | * @license http://www.apache.org/licenses/LICENSE-2.0.txt
4 | */
5 | var Hogan={};(function(a){function h(a){return a=String(a===null||a===undefined?"":a),g.test(a)?a.replace(b,"&").replace(c,"<").replace(d,">").replace(e,"'").replace(f,"""):a}a.Template=function j(a,b,c){a&&(this.r=a),this.c=c,this.text=b||""},a.Template.prototype={r:function(a,b,c){return""},v:h,render:function(b,c,d){return this.ri([b],c||{},d)},ri:function(a,b,c){return this.r(a,b,c)},rp:function(a,b,c,d){var e=c[a];return e?(this.c&&typeof e=="string"&&(e=this.c.compile(e)),e.ri(b,c,d)):""},rs:function(a,b,c){var d="",e=a[a.length-1];if(!i(e))return d=c(a,b);for(var f=0;fUse this document as a way to quick start any new project.
All you get is this message and a barebones HTML document.
Pin a fixed-height footer to the bottom of the viewport in desktop browsers with this custom HTML and CSS.
93 |