diff --git a/docs/assets/css/bootstrap-responsive.css b/docs/assets/css/bootstrap-responsive.css index 06e55c0b..3f83bdb5 100644 --- a/docs/assets/css/bootstrap-responsive.css +++ b/docs/assets/css/bootstrap-responsive.css @@ -813,3 +813,142 @@ overflow: visible !important; } } +/*! + * Jasny Bootstrap Responsive Extensions j1 + * + * Copyright 2012 Jasny BV + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Extended with pride by @ArnoldDaniels of jasny.net + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.container-semifluid { + max-width: 1170px; +} + +@media (min-width: 768px) and (max-width: 979px) { + .row-desktop.row-fluid { + width: 100%; + } + .row-desktop.row { + margin-left: 0; + } + .row-desktop > [class*="span"], + .row-desktop > [class*="span"] { + display: block; + float: none; + width: auto; + margin: 0; + } +} + +@media (max-width: 480px) { + .form-horizontal .controls, + .form-horizontal .well .controls, + .small-labels .controls { + margin-left: 0; + } +} + +@media (max-width: 768px) { + .form-horizontal .form-actions { + padding-left: 18px; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .form-horizontal .control-label { + width: 100px; + } + .form-horizontal .controls { + margin-left: 110px; + } + .form-horizontal .form-actions { + padding-left: 110px; + } + .form-horizontal .well .control-label { + width: 80px; + } + .form-horizontal .well .controls { + margin-left: 90px; + } + .small-labels .control-group > label { + width: 50px; + } + .small-labels .controls { + margin-left: 60px; + } + .small-labels .form-actions { + padding-left: 60px; + } +} + +@media (min-width: 1200px) { + .small-labels .control-group > label { + width: 80px; + } + .small-labels .controls { + margin-left: 100px; + } + .small-labels .form-actions { + padding-left: 100px; + } +} + +@media (max-width: 480px) { + .page-alert { + position: static; + width: auto; + } + .page-alert .alert { + width: auto; + margin-left: 0; + border-top-width: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + body > .page-alert { + position: static; + } +} + +@media (min-width: 1200px) { + .page-alert .alert { + width: 700px; + margin-left: -375px; + } +} diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index bb40c85f..e66ec446 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -4981,3 +4981,1414 @@ a.badge:hover { .invisible { visibility: hidden; } +/*! + * Jasny Bootstrap Extensions j1 + * + * Copyright 2012 Jasny BV + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Extended with pride by @ArnoldDaniels of jasny.net + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.container-semifluid { + max-width: 940px; + padding-right: 20px; + padding-left: 20px; + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container-semifluid:before, +.container-semifluid:after { + display: table; + content: ""; +} + +.container-semifluid:after { + clear: both; +} + +form > *:last-child { + margin-bottom: 0; +} + +label input[type="image"], +label input[type="checkbox"], +label input[type="radio"] { + vertical-align: middle; +} + +.small-labels .control-group > label { + width: 70px; +} + +.small-labels .controls { + margin-left: 80px; +} + +.small-labels .form-actions { + padding-left: 80px; +} + +.form-vertical .form-horizontal .control-group > label { + text-align: left; +} + +.form-horizontal .form-vertical .control-group > label { + float: none; + padding-top: 0; + text-align: left; +} + +.form-horizontal .form-vertical .controls { + margin-left: 0; +} + +.form-horizontal .form-vertical.form-actions, +.form-horizontal .form-vertical .form-actions { + padding-left: 20px; +} + +.control-group .control-group { + margin-bottom: 0; +} + +.form-horizontal .well .control-label { + width: 120px; +} + +.form-horizontal .well .controls { + margin-left: 140px; +} + +form .well > *:last-child { + margin-bottom: 0; +} + +.uneditable-input, +.uneditable-textarea { + display: inline-block; + padding: 4px 3px 4px 5px; + font-size: 13px; + line-height: 18px; + color: #555555; + cursor: not-allowed; + background-color: #ffffff; + border: 1px solid #eee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + height: 18px; + overflow: hidden; + white-space: pre; +} + +.uneditable-textarea { + overflow-x: hidden; + overflow-y: auto; + white-space: pre-wrap; +} + +select[disabled], +textarea[disabled], +input[type="text"][disabled], +input[type="password"][disabled], +input[type="datetime"][disabled], +input[type="datetime-local"][disabled], +input[type="date"][disabled], +input[type="month"][disabled], +input[type="time"][disabled], +input[type="week"][disabled], +input[type="number"][disabled], +input[type="email"][disabled], +input[type="url"][disabled], +input[type="search"][disabled] { + color: #999; +} + +.uneditable-input.disabled, +.uneditable-textarea.disabled { + color: #999; + cursor: not-allowed; + background-color: #f5f5f5; + border-color: #ddd; +} + +textarea, +.uneditable-textarea { + height: 54px; +} + +textarea[rows="1"], +.uneditable-textarea[rows="1"] { + height: 36px; +} + +textarea[rows="2"], +.uneditable-textarea[rows="2"] { + height: 54px; +} + +textarea[rows="3"], +.uneditable-textarea[rows="3"] { + height: 72px; +} + +textarea[rows="4"], +.uneditable-textarea[rows="4"] { + height: 90px; +} + +textarea[rows="5"], +.uneditable-textarea[rows="5"] { + height: 108px; +} + +textarea[rows="6"], +.uneditable-textarea[rows="6"] { + height: 126px; +} + +textarea[rows="7"], +.uneditable-textarea[rows="7"] { + height: 144px; +} + +textarea[rows="8"], +.uneditable-textarea[rows="8"] { + height: 162px; +} + +textarea[rows="9"], +.uneditable-textarea[rows="9"] { + height: 180px; +} + +textarea[rows="10"], +.uneditable-textarea[rows="10"] { + height: 198px; +} + +textarea[rows="11"], +.uneditable-textarea[rows="11"] { + height: 216px; +} + +textarea[rows="12"], +.uneditable-textarea[rows="12"] { + height: 234px; +} + +textarea[rows="13"], +.uneditable-textarea[rows="13"] { + height: 252px; +} + +textarea[rows="14"], +.uneditable-textarea[rows="14"] { + height: 270px; +} + +textarea[rows="15"], +.uneditable-textarea[rows="15"] { + height: 288px; +} + +textarea[rows="16"], +.uneditable-textarea[rows="16"] { + height: 306px; +} + +textarea[rows="17"], +.uneditable-textarea[rows="17"] { + height: 324px; +} + +textarea[rows="18"], +.uneditable-textarea[rows="18"] { + height: 342px; +} + +textarea[rows="19"], +.uneditable-textarea[rows="19"] { + height: 360px; +} + +textarea[rows="20"], +.uneditable-textarea[rows="20"] { + height: 378px; +} + +textarea[rows="21"], +.uneditable-textarea[rows="21"] { + height: 396px; +} + +textarea[rows="22"], +.uneditable-textarea[rows="22"] { + height: 414px; +} + +textarea[rows="23"], +.uneditable-textarea[rows="23"] { + height: 432px; +} + +textarea[rows="24"], +.uneditable-textarea[rows="24"] { + height: 450px; +} + +textarea[rows="25"], +.uneditable-textarea[rows="25"] { + height: 468px; +} + +textarea[rows="26"], +.uneditable-textarea[rows="26"] { + height: 486px; +} + +textarea[rows="27"], +.uneditable-textarea[rows="27"] { + height: 504px; +} + +textarea[rows="28"], +.uneditable-textarea[rows="28"] { + height: 522px; +} + +textarea[rows="29"], +.uneditable-textarea[rows="29"] { + height: 540px; +} + +textarea[rows="30"], +.uneditable-textarea[rows="30"] { + height: 558px; +} + +textarea[rows="35"], +.uneditable-textarea[rows="35"] { + height: 648px; +} + +textarea[rows="40"], +.uneditable-textarea[rows="40"] { + height: 738px; +} + +textarea[rows="45"], +.uneditable-textarea[rows="45"] { + height: 828px; +} + +textarea[rows="50"], +.uneditable-textarea[rows="50"] { + height: 918px; +} + +textarea[rows="55"], +.uneditable-textarea[rows="55"] { + height: 1008px; +} + +textarea[rows="60"], +.uneditable-textarea[rows="60"] { + height: 1098px; +} + +textarea[rows="65"], +.uneditable-textarea[rows="65"] { + height: 1188px; +} + +textarea[rows="70"], +.uneditable-textarea[rows="70"] { + height: 1278px; +} + +textarea[rows="75"], +.uneditable-textarea[rows="75"] { + height: 1368px; +} + +textarea[rows="80"], +.uneditable-textarea[rows="80"] { + height: 1458px; +} + +textarea[rows="85"], +.uneditable-textarea[rows="85"] { + height: 1548px; +} + +textarea[rows="90"], +.uneditable-textarea[rows="90"] { + height: 1638px; +} + +textarea[rows="95"], +.uneditable-textarea[rows="95"] { + height: 1728px; +} + +textarea[rows="100"], +.uneditable-textarea[rows="100"] { + height: 1818px; +} + +.uneditable-textarea { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.uneditable-input[class*="span"], +.uneditable-textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .uneditable-textarea[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append .uneditable-input, +.input-prepend .uneditable-input { + vertical-align: top; +} + +.input-append .uneditable-input[class*="span"], +.input-prepend .uneditable-input[class*="span"] { + display: inline-block; +} + +.uneditable-form input[disabled], +.uneditable-form textarea[disabled], +.uneditable-form select[disabled] { + cursor: auto; +} + +.uneditable-form .uneditable-input, +.uneditable-form .uneditable-textarea { + cursor: text; +} + +.uneditable-form .form-actions { + background-color: transparent; +} + +.editor { + width: 100%; + height: 100px; + padding: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.uneditable-textarea.editor-html { + padding: 5px 3px 5px 5px; + white-space: normal; +} + +textarea.editor-html { + visibility: hidden; +} + +.header-actions { + padding: 0 20px; + line-height: 36px; +} + +.table-actions { + padding-bottom: 20px; + *zoom: 1; +} + +.table-actions:before, +.table-actions:after { + display: table; + content: ""; +} + +.table-actions:after { + clear: both; +} + +tr.rowlink td { + cursor: pointer; +} + +tr.rowlink td.nolink { + cursor: auto; +} + +.table tbody tr.rowlink:hover td { + background-color: #cfcfcf; +} + +a.rowlink { + font: inherit; + color: inherit; + text-decoration: inherit; +} + +.act { + display: inline; + padding: 0; + font-weight: bold; + color: #555555; + background: inherit; + border: none; + -webkit-transition: text-shadow 0.1s linear; + -moz-transition: text-shadow 0.1s linear; + -ms-transition: text-shadow 0.1s linear; + -o-transition: text-shadow 0.1s linear; + transition: text-shadow 0.1s linear; +} + +.act:hover { + color: #333333; + text-decoration: none; + text-shadow: 1px 1px 3px rgba(85, 85, 85, 0.5); +} + +.act-primary { + color: #006dcc; +} + +.act-primary:hover { + color: #0044cc; + text-shadow: 1px 1px 3px rgba(0, 109, 204, 0.5); +} + +.act-info { + color: #49afcd; +} + +.act-info:hover { + color: #2f96b4; + text-shadow: 1px 1px 3px rgba(75, 175, 206, 0.5); +} + +.act-success { + color: #51a351; +} + +.act-success:hover { + color: #468847; + text-shadow: 1px 1px 3px rgba(81, 164, 81, 0.5); +} + +.act-warning { + color: #c09853; +} + +.act-warning:hover { + color: #f89406; + text-shadow: 1px 1px 3px rgba(192, 152, 84, 0.5); +} + +.act-danger { + color: #b94a48; +} + +.act-danger:hover { + color: #bd362f; + text-shadow: 1px 1px 3px rgba(185, 72, 70, 0.5); +} + +.act.disabled, +.act[disabled] { + color: #AAAAAA; + cursor: not-allowed; +} + +.act.disabled:hover, +.act[disabled]:hover { + color: #AAAAAA; + text-shadow: none; +} + +.form-actions .act { + line-height: 30px; +} + +@font-face { + font-family: IconicStroke; + font-weight: normal; + src: url('../fonts/iconic_stroke.eot'); + src: local('IconicStroke'), url('iconic_stroke.eot?#iefix') format('../fonts/embedded-opentype'), url('../fonts/iconic_stroke.woff') format('woff'), url('../fonts/iconic_stroke.ttf') format('truetype'), url('iconic_stroke.svg#iconic') format('svg'), url('../fonts/iconic_stroke.otf') format('opentype'); +} + +@font-face { + font-family: IconicFill; + font-weight: normal; + src: url('../fonts/iconic_fill.eot'); + src: local('IconicFill'), url('../fonts/iconic_fill.eot?#iefix') format('embedded-opentype'), url('../fonts/iconic_fill.woff') format('woff'), url('../fonts/iconic_fill.ttf') format('truetype'), url('iconic_fill.svg#iconic') format('svg'), url('../fonts/iconic_fill.otf') format('opentype'); +} + +@media screen, print { + [class*="iconic-"] { + font-style: inherit; + font-weight: normal; + vertical-align: bottom; + } + [class*="iconic-"]:before { + display: inline-block; + width: 1em; + font-family: IconicFill; + font-size: 0.9em; + text-align: center; + vertical-align: middle; + content: ""; + } + .iconic-stroke:before { + font-family: IconicStroke; + } + .iconic-hash:before { + content: '\23'; + } + .iconic-question-mark:before { + content: '\3f'; + } + .iconic-at:before { + content: '\40'; + } + .iconic-pilcrow:before { + content: '\b6'; + } + .iconic-info:before { + content: '\2139'; + } + .iconic-arrow-left:before { + content: '\2190'; + } + .iconic-arrow-up:before { + content: '\2191'; + } + .iconic-arrow-right:before { + content: '\2192'; + } + .iconic-arrow-down:before { + content: '\2193'; + } + .iconic-home:before { + content: '\2302'; + } + .iconic-sun:before { + content: '\2600'; + } + .iconic-cloud:before { + content: '\2601'; + } + .iconic-umbrella:before { + content: '\2602'; + } + .iconic-star:before { + content: '\2605'; + } + .iconic-moon:before { + content: '\263e'; + } + .iconic-heart:before { + content: '\2764'; + } + .iconic-cog:before { + content: '\2699'; + } + .iconic-bolt:before { + content: '\26a1'; + } + .iconic-key:before { + content: '\26bf'; + } + .iconic-rain:before { + content: '\26c6'; + } + .iconic-denied:before { + content: '\26d4'; + } + .iconic-mail:before { + content: '\2709'; + } + .iconic-pen:before { + content: '\270e'; + } + .iconic-x:before { + content: '\2717'; + } + .iconic-o-x:before { + content: '\2718'; + } + .iconic-check:before { + content: '\2713'; + } + .iconic-o-check:before { + content: '\2714'; + } + .iconic-left-quote:before { + content: '\275d'; + } + .iconic-right-quote:before { + content: '\275e'; + } + .iconic-plus:before { + content: '\2795'; + } + .iconic-minus:before { + content: '\2796'; + } + .iconic-curved-arrow:before { + content: '\2935'; + } + .iconic-document-alt:before { + content: '\e000'; + } + .iconic-calendar:before { + content: '\e001'; + } + .iconic-map-pin-alt:before { + content: '\e002'; + } + .iconic-comment-alt1:before { + content: '\e003'; + } + .iconic-comment-alt2:before { + content: '\e004'; + } + .iconic-pen-alt:before { + content: '\e005'; + } + .iconic-pen-alt2:before { + content: '\e006'; + } + .iconic-chat-alt:before { + content: '\e007'; + } + .iconic-o-plus:before { + content: '\e008'; + } + .iconic-o-minus:before { + content: '\e009'; + } + .iconic-bars-alt:before { + content: '\e00a'; + } + .iconic-book-alt:before { + content: '\e00b'; + } + .iconic-aperture-alt:before { + content: '\e00c'; + } + .iconic-beaker-alt:before { + content: '\e010'; + } + .iconic-left-quote-alt:before { + content: '\e011'; + } + .iconic-right-quote-alt:before { + content: '\e012'; + } + .iconic-o-arrow-left:before { + content: '\e013'; + } + .iconic-o-arrow-up:before { + content: '\e014'; + } + .iconic-o-arrow-right:before { + content: '\e015'; + } + .iconic-o-arrow-down:before { + content: '\e016'; + } + .iconic-o-arrow-left-alt:before { + content: '\e017'; + } + .iconic-o-arrow-up-alt:before { + content: '\e018'; + } + .iconic-o-arrow-right-alt:before { + content: '\e019'; + } + .iconic-o-arrow-down-alt:before { + content: '\e01a'; + } + .iconic-brush:before { + content: '\e01b'; + } + .iconic-brush-alt:before { + content: '\e01c'; + } + .iconic-eyedropper:before { + content: '\e01e'; + } + .iconic-layers:before { + content: '\e01f'; + } + .iconic-layers-alt:before { + content: '\e020'; + } + .iconic-compass:before { + content: '\e021'; + } + .iconic-award:before { + content: '\e022'; + } + .iconic-beaker:before { + content: '\e023'; + } + .iconic-steering-wheel:before { + content: '\e024'; + } + .iconic-eye:before { + content: '\e025'; + } + .iconic-aperture:before { + content: '\e026'; + } + .iconic-image:before { + content: '\e027'; + } + .iconic-chart:before { + content: '\e028'; + } + .iconic-chart-alt:before { + content: '\e029'; + } + .iconic-target:before { + content: '\e02a'; + } + .iconic-tag:before { + content: '\e02b'; + } + .iconic-rss:before { + content: '\e02c'; + } + .iconic-rss-alt:before { + content: '\e02d'; + } + .iconic-share:before { + content: '\e02e'; + } + .iconic-undo:before { + content: '\e02f'; + } + .iconic-reload:before { + content: '\e030'; + } + .iconic-reload-alt:before { + content: '\e031'; + } + .iconic-loop:before { + content: '\e032'; + } + .iconic-loop-alt:before { + content: '\e033'; + } + .iconic-back-forth:before { + content: '\e034'; + } + .iconic-back-forth-alt:before { + content: '\e035'; + } + .iconic-spin:before { + content: '\e036'; + } + .iconic-spin-alt:before { + content: '\e037'; + } + .iconic-move-horizontal:before { + content: '\e038'; + } + .iconic-move-horizontal-alt:before { + content: '\e039'; + } + .iconic-o-move-horizontal:before { + content: '\e03a'; + } + .iconic-move-vertical:before { + content: '\e03b'; + } + .iconic-move-vertical-alt:before { + content: '\e03c'; + } + .iconic-o-move-vertical:before { + content: '\e03d'; + } + .iconic-move:before { + content: '\e03e'; + } + .iconic-move-alt:before { + content: '\e03f'; + } + .iconic-o-move:before { + content: '\e040'; + } + .iconic-transfer:before { + content: '\e041'; + } + .iconic-download:before { + content: '\e042'; + } + .iconic-upload:before { + content: '\e043'; + } + .iconic-cloud-download:before { + content: '\e044'; + } + .iconic-cloud-upload:before { + content: '\e045'; + } + .iconic-fork:before { + content: '\e046'; + } + .iconic-play:before { + content: '\e047'; + } + .iconic-o-play:before { + content: '\e048'; + } + .iconic-pause:before { + content: '\e049'; + } + .iconic-stop:before { + content: '\e04a'; + } + .iconic-eject:before { + content: '\e04b'; + } + .iconic-first:before { + content: '\e04c'; + } + .iconic-last:before { + content: '\e04d'; + } + .iconic-fullscreen:before { + content: '\e04e'; + } + .iconic-fullscreen-alt:before { + content: '\e04f'; + } + .iconic-fullscreen-exit:before { + content: '\e050'; + } + .iconic-fullscreen-exit-alt:before { + content: '\e051'; + } + .iconic-equalizer:before { + content: '\e052'; + } + .iconic-article:before { + content: '\e053'; + } + .iconic-read-more:before { + content: '\e054'; + } + .iconic-list:before { + content: '\e055'; + } + .iconic-list-nested:before { + content: '\e056'; + } + .iconic-cursor:before { + content: '\e057'; + } + .iconic-dial:before { + content: '\e058'; + } + .iconic-new-window:before { + content: '\e059'; + } + .iconic-trash:before { + content: '\e05a'; + } + .iconic-battery-half:before { + content: '\e05b'; + } + .iconic-battery-empty:before { + content: '\e05c'; + } + .iconic-battery-charging:before { + content: '\e05d'; + } + .iconic-chat:before { + content: '\e05e'; + } + .iconic-mic:before { + content: '\e05f'; + } + .iconic-movie:before { + content: '\e060'; + } + .iconic-headphones:before { + content: '\e061'; + } + .iconic-user:before { + content: '\e062'; + } + .iconic-lightbulb:before { + content: '\e063'; + } + .iconic-cd:before { + content: '\e064'; + } + .iconic-folder:before { + content: '\e065'; + } + .iconic-document:before { + content: '\e066'; + } + .iconic-pin:before { + content: '\e067'; + } + .iconic-map-pin:before { + content: '\e068'; + } + .iconic-book:before { + content: '\e069'; + } + .iconic-book-alt2:before { + content: '\e06a'; + } + .iconic-box:before { + content: '\e06b'; + } + .iconic-calendar-alt:before { + content: '\e06c'; + } + .iconic-comment:before { + content: '\e06d'; + } + .iconic-iphone:before { + content: '\e06e'; + } + .iconic-bars:before { + content: '\e06f'; + } + .iconic-camera:before { + content: '\e070'; + } + .iconic-volume-mute:before { + content: '\e071'; + } + .iconic-volume:before { + content: '\e072'; + } + .iconic-battery-full:before { + content: '\e073'; + } + .iconic-magnifying-glass:before { + content: '\e074'; + } + .iconic-lock:before { + content: '\e075'; + } + .iconic-unlock:before { + content: '\e076'; + } + .iconic-link:before { + content: '\e077'; + } + .iconic-wrench:before { + content: '\e078'; + } + .iconic-clock:before { + content: '\e079'; + } + .iconic-sun-stroke:before { + font-family: IconicStroke; + content: '\2600'; + } + .iconic-moon-stroke:before { + font-family: IconicStroke; + content: '\263e'; + } + .iconic-star-stroke:before { + font-family: IconicStroke; + content: '\2605'; + } + .iconic-heart-stroke:before { + font-family: IconicStroke; + content: '\2764'; + } + .iconic-key-stroke:before { + font-family: IconicStroke; + content: '\26bf'; + } + .iconic-document-alt-stroke:before { + font-family: IconicStroke; + content: '\e000'; + } + .iconic-comment-alt1-stroke:before { + font-family: IconicStroke; + content: '\e003'; + } + .iconic-comment-alt2-stroke:before { + font-family: IconicStroke; + content: '\e004'; + } + .iconic-pen-alt-stroke:before { + font-family: IconicStroke; + content: '\e005'; + } + .iconic-chat-alt-stroke:before { + font-family: IconicStroke; + content: '\e007'; + } + .iconic-award-stroke:before { + font-family: IconicStroke; + content: '\e022'; + } + .iconic-tag-stroke:before { + font-family: IconicStroke; + content: '\e02b'; + } + .iconic-trash-stroke:before { + font-family: IconicStroke; + content: '\e05a'; + } + .iconic-folder-stroke:before { + font-family: IconicStroke; + content: '\e065'; + } + .iconic-document-stroke:before { + font-family: IconicStroke; + content: '\e066'; + } + .iconic-map-pin-stroke:before { + font-family: IconicStroke; + content: '\e068'; + } + .iconic-calendar-alt-stroke:before { + font-family: IconicStroke; + content: '\e06c'; + } + .iconic-comment-stroke:before { + font-family: IconicStroke; + content: '\e06d'; + } + .iconic-lock-stroke:before { + font-family: IconicStroke; + content: '\e075'; + } + .iconic-unlock-stroke:before { + font-family: IconicStroke; + content: '\e076'; + } +} + +.page-alert { + position: absolute; + top: 0; + left: 50%; + z-index: 1020; + width: 0; +} + +.page-alert .alert { + width: 550px; + margin-left: -300px; + border-top-width: 0; + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.navbar-fixed-top + .page-alert { + top: 40px; +} + +body > .page-alert { + position: fixed; +} + +.btn-file { + position: relative; + overflow: hidden; + vertical-align: middle; +} + +.btn-file > input { + position: absolute; + top: 0; + right: 0; + margin: 0; + cursor: pointer; + border: solid transparent; + border-width: 0 0 100px 200px; + opacity: 0; + filter: alpha(opacity=0); + -moz-transform: translate(-300px, 0) scale(4); + direction: ltr; +} + +.fileupload { + margin-bottom: 9px; +} + +.fileupload .uneditable-input { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + cursor: text; +} + +.fileupload .thumbnail { + display: inline-block; + margin-bottom: 5px; + overflow: hidden; + text-align: center; + vertical-align: middle; +} + +.fileupload .thumbnail > img { + display: inline-block; + max-height: 100%; + vertical-align: middle; +} + +.fileupload .btn { + vertical-align: middle; +} + +.fileupload-exists .fileupload-new, +.fileupload-new .fileupload-exists { + display: none; +} + +.fileupload-inline .fileupload-controls { + display: inline; +} + +.fileupload-new .input-append .btn-file { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.thumbnail-borderless .thumbnail { + padding: 0; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.fileupload-new.thumbnail-borderless .thumbnail { + border: 1px solid #ddd; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + outline: none; +} + +.nav-tabs > li.disabled > a { + color: #CCCCCC; + cursor: not-allowed; +} + +.tabbable { + border-color: #ddd; + border-style: solid; + border-width: 0; + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tabbable > .nav-tabs { + margin: 0; +} + +.tab-content { + padding: 18px 0 0 0; + overflow: auto; + border-color: #ddd; + border-style: solid; + border-width: 0; +} + +.tabbable-bordered { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tabbable-bordered > .tab-content { + padding: 20px 20px 10px 20px; + border-width: 0 1px 1px 1px; + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +body > .container.tabbable > .nav-tabs { + padding-top: 15px; +} + +.tabs-below > .tab-content { + padding: 0 0 10px 0; +} + +.tabs-below.tabbable-bordered > .tab-content { + padding: 20px 20px 10px 20px; + border-width: 1px 1px 0 1px; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +body > .container.tabs-below.tabbable-bodered > .tab-content { + border-top-width: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.tabs-left, +.tabs-right { + margin-bottom: 20px; +} + +.tabs-left > .nav-tabs, +.tabs-right > .nav-tabs { + position: relative; + z-index: 1; + margin-bottom: 0; +} + +.tabs-left > .tab-content, +.tabs-right > .tab-content { + overflow: hidden; +} + +.tabs-left > .nav-tabs { + left: 1px; +} + +.tabs-left > .nav-tabs > .active > a, +.tabs-left > .nav-tabs > .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-left > .tab-content { + padding: 0 0 0 19px; + border-left-width: 1px; +} + +.tabs-left.tabbable-bordered { + border-width: 0 1px 0 0; +} + +.tabs-left.tabbable-bordered > .tab-content { + padding: 20px 20px 10px 20px; + border-width: 1px 0 1px 1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +body > .container.tabs-left.tabbable-bodered > .tab-content { + border-top-width: 0; + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} + +.tabs-right > .nav-tabs { + right: 1px; +} + +.tabs-right > .nav-tabs > .active > a, +.tabs-right > .nav-tabs > .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.tabs-right > .tab-content { + padding: 0 19px 0 0; + border-right-width: 1px; +} + +.tabs-right.tabbable-bordered { + border-width: 0 0 0 1px; +} + +.tabs-right.tabbable-bordered > .tab-content { + padding: 20px 20px 10px 20px; + border-width: 1px 1px 1px 0; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +body > .container.tabs-right.tabbable-bodered > .tab-content { + border-top-width: 0; + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} + +.modal form { + margin-bottom: 0; +} diff --git a/docs/assets/fonts/iconic_fill.eot b/docs/assets/fonts/iconic_fill.eot new file mode 100644 index 00000000..dc8aa7dc Binary files /dev/null and b/docs/assets/fonts/iconic_fill.eot differ diff --git a/docs/assets/fonts/iconic_fill.otf b/docs/assets/fonts/iconic_fill.otf new file mode 100644 index 00000000..52da7907 Binary files /dev/null and b/docs/assets/fonts/iconic_fill.otf differ diff --git a/docs/assets/fonts/iconic_fill.svg b/docs/assets/fonts/iconic_fill.svg new file mode 100644 index 00000000..f228fab1 --- /dev/null +++ b/docs/assets/fonts/iconic_fill.svg @@ -0,0 +1,475 @@ + + + + +Created by FontForge 20110222 at Thu Dec 29 18:55:15 2011 + By PJ Onori,,, +Icons by PJ Onori, font creation script by Yann + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/fonts/iconic_fill.ttf b/docs/assets/fonts/iconic_fill.ttf new file mode 100644 index 00000000..194a753c Binary files /dev/null and b/docs/assets/fonts/iconic_fill.ttf differ diff --git a/docs/assets/fonts/iconic_fill.woff b/docs/assets/fonts/iconic_fill.woff new file mode 100644 index 00000000..833f4632 Binary files /dev/null and b/docs/assets/fonts/iconic_fill.woff differ diff --git a/docs/assets/fonts/iconic_stroke.eot b/docs/assets/fonts/iconic_stroke.eot new file mode 100644 index 00000000..430ae76c Binary files /dev/null and b/docs/assets/fonts/iconic_stroke.eot differ diff --git a/docs/assets/fonts/iconic_stroke.otf b/docs/assets/fonts/iconic_stroke.otf new file mode 100644 index 00000000..9d611150 Binary files /dev/null and b/docs/assets/fonts/iconic_stroke.otf differ diff --git a/docs/assets/fonts/iconic_stroke.svg b/docs/assets/fonts/iconic_stroke.svg new file mode 100644 index 00000000..18e8c345 --- /dev/null +++ b/docs/assets/fonts/iconic_stroke.svg @@ -0,0 +1,492 @@ + + + + +Created by FontForge 20110222 at Thu Dec 29 18:54:06 2011 + By PJ Onori,,, +Icons by PJ Onori, font creation script by Yann + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/fonts/iconic_stroke.ttf b/docs/assets/fonts/iconic_stroke.ttf new file mode 100644 index 00000000..f0b1878c Binary files /dev/null and b/docs/assets/fonts/iconic_stroke.ttf differ diff --git a/docs/assets/fonts/iconic_stroke.woff b/docs/assets/fonts/iconic_stroke.woff new file mode 100644 index 00000000..b2649347 Binary files /dev/null and b/docs/assets/fonts/iconic_stroke.woff differ diff --git a/docs/assets/js/bootstrap-fileupload.js b/docs/assets/js/bootstrap-fileupload.js new file mode 100644 index 00000000..af29a7a7 --- /dev/null +++ b/docs/assets/js/bootstrap-fileupload.js @@ -0,0 +1,124 @@ +/* =========================================================== + * bootstrap-fileupload.js j1 + * http://jasny.github.com/bootstrap/javascript.html#fileupload + * =========================================================== + * Copyright 2012 Jasny BV, Netherlands. + * + * Licensed under the Apache License, Version 2.0 (the "License") + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function ($) { + + "use strict"; // jshint ;_ + + /* INPUTMASK PUBLIC CLASS DEFINITION + * ================================= */ + + var Fileupload = function (element, options) { + this.$element = $(element) + this.type = this.$element.data('uploadtype') || (this.$element.find('.thumbnail').length > 0 ? "image" : "file") + + this.$input = this.$element.find(':file') + if (this.$input.length === 0) return + + this.name = this.$input.attr('name') || options.name + + this.$hidden = this.$element.find(':hidden[name="'+this.name+'"]') + if (this.$hidden.length === 0) { + this.$hidden = $('') + this.$element.prepend(this.$hidden) + } + + this.$preview = this.$element.find('.fileupload-preview') + var height = this.$preview.css('height') + if (this.$preview.css('display') != 'inline' && height != '0px' && height != 'none') this.$preview.css('line-height', height) + + this.$remove = this.$element.find('[data-dismiss="fileupload"]') + + this.listen() + } + + Fileupload.prototype = { + + listen: function() { + this.$input.on('change.fileupload', $.proxy(this.change, this)) + if (this.$remove) this.$remove.on('click.fileupload', $.proxy(this.clear, this)) + }, + + change: function(e, invoked) { + var file = e.target.files[0] + if (!file || invoked === 'clear') return + + this.$hidden.val('') + this.$hidden.attr('name', '') + this.$input.attr('name', this.name) + + if (this.type === "image" && this.$preview.length > 0 && (typeof file.type !== "undefined" ? file.type.match('image.*') : file.name.match('\\.(gif|png|jpe?g)$')) && typeof FileReader !== "undefined") { + var reader = new FileReader() + var preview = this.$preview + var element = this.$element + + reader.onload = function(e) { + preview.html('') + element.addClass('fileupload-exists').removeClass('fileupload-new') + } + + reader.readAsDataURL(file) + } else { + this.$preview.html(window.escape(file.name)) + this.$element.addClass('fileupload-exists').removeClass('fileupload-new') + } + }, + + clear: function(e) { + this.$hidden.val('') + this.$hidden.attr('name', this.name) + this.$input.attr('name', '') + + this.$preview.html('') + this.$element.addClass('fileupload-new').removeClass('fileupload-exists') + + this.$input.trigger('change', [ 'clear' ]) + + e.preventDefault() + return false + } + } + + + /* INPUTMASK PLUGIN DEFINITION + * =========================== */ + + $.fn.fileupload = function (options) { + return this.each(function () { + var $this = $(this) + , data = $this.data('fileupload') + if (!data) $this.data('fileupload', (data = new Fileupload(this, options))) + }) + } + + $.fn.fileupload.Constructor = Fileupload + + + /* INPUTMASK DATA-API + * ================== */ + + $(function () { + $('body').on('click.fileupload.data-api', '[data-provides="fileupload"]', function (e) { + var $this = $(this) + if ($this.data('fileupload')) return + $this.fileupload($this.data()) + }) + }) + +}(window.jQuery) diff --git a/docs/assets/js/bootstrap-inputmask.js b/docs/assets/js/bootstrap-inputmask.js new file mode 100644 index 00000000..438074b6 --- /dev/null +++ b/docs/assets/js/bootstrap-inputmask.js @@ -0,0 +1,361 @@ +/* =========================================================== + * bootstrap-inputmask.js j1 + * http://twitter.github.com/bootstrap/javascript.html#tooltips + * Based on Masked Input plugin by Josh Bush (digitalbush.com) + * =========================================================== + * Copyright 2012 Jasny BV, Netherlands. + * + * Licensed under the Apache License, Version 2.0 (the "License") + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function ($) { + + "use strict"; // jshint ;_; + + var isIphone = (window.orientation !== undefined), + isAndroid = navigator.userAgent.toLowerCase().indexOf("android") > -1 + + $.mask = { + //Predefined character definitions + definitions: { + '9': "[0-9]", + 'a': "[A-Za-z]", + '?': "[A-Za-z0-9]", + '*': "." + }, + dataName:"rawMaskFn" + } + + + /* INPUTMASK PUBLIC CLASS DEFINITION + * ================================= */ + + var Inputmask = function (element, options) { + if (isAndroid) return // No support because caret positioning doesn't work on Android + + this.$element = $(element) + this.mask = options.mask + this.options = $.extend({}, $.fn.inputmask.defaults, options) + + this.init() + this.listen() + + this.checkVal() //Perform initial check for existing values + } + + Inputmask.prototype = { + + init: function() { + var defs = $.mask.definitions + var len = this.mask.length + + this.tests = [] + this.partialPosition = this.mask.length + this.firstNonMaskPos = null + + $.each(this.mask.split(""), $.proxy(function(i, c) { + if (c == '?') { + len-- + this.partialPosition = i + } else if (defs[c]) { + this.tests.push(new RegExp(defs[c])) + if(this.firstNonMaskPos === null) + this.firstNonMaskPos = this.tests.length - 1 + } else { + this.tests.push(null) + } + }, this)) + + this.buffer = $.map(this.mask.split(""), $.proxy(function(c, i) { + if (c != '?') return defs[c] ? this.options.placeholder : c + }, this)) + + this.focusText = this.$element.val() + + this.$element.data($.mask.dataName, $.proxy(function() { + return $.map(this.buffer, function(c, i) { + return this.tests[i] && c != this.options.placeholder ? c : null + }).join('') + }, this)) + }, + + listen: function() { + if (this.$element.attr("readonly")) return + + var pasteEventName = ($.browser.msie ? 'paste' : 'input') + ".mask" + + this.$element + .on("unmask", $.proxy(this.unmask, this)) + + .on("focus.mask", $.proxy(this.focusEvent, this)) + .on("blur.mask", $.proxy(this.blurEvent, this)) + + .on("keydown.mask", $.proxy(this.keydownEvent, this)) + .on("keypress.mask", $.proxy(this.keypressEvent, this)) + + .on(pasteEventName, $.proxy(this.pasteEvent, this)) + }, + + //Helper Function for Caret positioning + caret: function(begin, end) { + if (this.$element.length === 0) return + if (typeof begin == 'number') { + end = (typeof end == 'number') ? end : begin + return this.$element.each(function() { + if (this.setSelectionRange) { + this.setSelectionRange(begin, end) + } else if (this.createTextRange) { + var range = this.createTextRange() + range.collapse(true) + range.moveEnd('character', end) + range.moveStart('character', begin) + range.select() + } + }) + } else { + if (this.$element[0].setSelectionRange) { + begin = this.$element[0].selectionStart + end = this.$element[0].selectionEnd + } else if (document.selection && document.selection.createRange) { + var range = document.selection.createRange() + begin = 0 - range.duplicate().moveStart('character', -100000) + end = begin + range.text.length + } + return { + begin: begin, + end: end + } + } + }, + + seekNext: function(pos) { + var len = this.mask.length + while (++pos <= len && !this.tests[pos]); + + return pos + }, + + seekPrev: function(pos) { + while (--pos >= 0 && !this.tests[pos]); + + return pos + }, + + shiftL: function(begin,end) { + var len = this.mask.length + + if(begin<0) return + + for (var i = begin,j = this.seekNext(end); i < len; i++) { + if (this.tests[i]) { + if (j < len && this.tests[i].test(this.buffer[j])) { + this.buffer[i] = this.buffer[j] + this.buffer[j] = this.options.placeholder + } else + break + j = this.seekNext(j) + } + } + this.writeBuffer() + this.caret(Math.max(this.firstNonMaskPos, begin)) + }, + + shiftR: function(pos) { + var len = this.mask.length + + for (var i = pos, c = this.options.placeholder; i < len; i++) { + if (this.tests[i]) { + var j = this.seekNext(i) + var t = this.buffer[i] + this.buffer[i] = c + if (j < len && this.tests[j].test(t)) + c = t + else + break + } + } + }, + + unmask: function() { + this.$element + .unbind(".mask") + .removeData("inputmask") + }, + + focusEvent: function() { + this.focusText = this.$element.val() + var len = this.mask.length + var pos = this.checkVal() + this.writeBuffer() + + var that = this + var moveCaret = function() { + if (pos == len) + that.caret(0, pos) + else + that.caret(pos) + } + + if ($.browser.msie) + moveCaret() + else + setTimeout(moveCaret, 0) + }, + + blurEvent: function() { + this.checkVal() + if (this.$element.val() != this.focusText) + this.$element.trigger('change') + }, + + keydownEvent: function(e) { + var k=e.which + + //backspace, delete, and escape get special treatment + if (k == 8 || k == 46 || (isIphone && k == 127)) { + var pos = this.caret(), + begin = pos.begin, + end = pos.end + + if (end-begin === 0) { + begin = k!=46 ? this.seekPrev(begin) : (end=this.seekNext(begin-1)) + end = k==46 ? this.seekNext(end) : end + } + this.clearBuffer(begin, end) + this.shiftL(begin,end-1) + + return false + } else if (k == 27) {//escape + this.$element.val(this.focusText) + this.caret(0, this.checkVal()) + return false + } + }, + + keypressEvent: function(e) { + var len = this.mask.length + + var k = e.which, + pos = this.caret() + + if (e.ctrlKey || e.altKey || e.metaKey || k<32) {//Ignore + return true + } else if (k) { + if (pos.end - pos.begin !== 0) { + this.clearBuffer(pos.begin, pos.end) + this.shiftL(pos.begin, pos.end-1) + } + + var p = this.seekNext(pos.begin - 1) + if (p < len) { + var c = String.fromCharCode(k) + if (this.tests[p].test(c)) { + this.shiftR(p) + this.buffer[p] = c + this.writeBuffer() + var next = this.seekNext(p) + this.caret(next) + } + } + return false + } + }, + + pasteEvent: function() { + var that = this + + setTimeout(function() { + that.caret(that.checkVal(true)) + }, 0) + }, + + clearBuffer: function(start, end) { + var len = this.mask.length + + for (var i = start; i < end && i < len; i++) { + if (this.tests[i]) + this.buffer[i] = this.options.placeholder + } + }, + + writeBuffer: function() { + return this.$element.val(this.buffer.join('')).val() + }, + + checkVal: function(allow) { + var len = this.mask.length + //try to place characters where they belong + var test = this.$element.val() + var lastMatch = -1 + + for (var i = 0, pos = 0; i < len; i++) { + if (this.tests[i]) { + this.buffer[i] = this.options.placeholder + while (pos++ < test.length) { + var c = test.charAt(pos - 1) + if (this.tests[i].test(c)) { + this.buffer[i] = c + lastMatch = i + break + } + } + if (pos > test.length) + break + } else if (this.buffer[i] == test.charAt(pos) && i != this.partialPosition) { + pos++ + lastMatch = i + } + } + if (!allow && lastMatch + 1 < this.partialPosition) { + this.$element.val("") + this.clearBuffer(0, len) + } else if (allow || lastMatch + 1 >= this.partialPosition) { + this.writeBuffer() + if (!allow) this.$element.val(this.$element.val().substring(0, lastMatch + 1)) + } + return (this.partialPosition ? i : this.firstNonMaskPos) + } + } + + + /* INPUTMASK PLUGIN DEFINITION + * =========================== */ + + $.fn.inputmask = function (options) { + return this.each(function () { + var $this = $(this) + , data = $this.data('inputmask') + if (!data) $this.data('inputmask', (data = new Inputmask(this, options))) + }) + } + + $.fn.inputmask.defaults = { + placeholder: "_" + } + + $.fn.inputmask.Constructor = Inputmask + + + /* INPUTMASK DATA-API + * ================== */ + + $(function () { + $('body').on('focus.inputmask.data-api', '[data-mask]', function (e) { + var $this = $(this) + if ($this.data('inputmask')) return + e.preventDefault() + $this.inputmask($this.data()) + }) + }) + +}(window.jQuery) \ No newline at end of file diff --git a/docs/assets/js/bootstrap-rowlink.js b/docs/assets/js/bootstrap-rowlink.js new file mode 100644 index 00000000..3b964fd2 --- /dev/null +++ b/docs/assets/js/bootstrap-rowlink.js @@ -0,0 +1,71 @@ +/* ============================================================ + * bootstrap-rowlink.js j1 + * http://jasny.github.com/bootstrap/javascript.html#rowlink + * ============================================================ + * Copyright 2012 Jasny BV, Netherlands. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function ($) { + + "use strict"; // jshint ;_; + + var Rowlink = function (element, options) { + options = $.extend({}, $.fn.rowlink.defaults, options) + var tr = element.nodeName == 'tr' ? $(element) : $(element).find('tr:has(td)') + + tr.each(function() { + var link = $(this).find(options.target).first() + if (!link.length) return + + var href = link.attr('href') + + $(this).find('td').not('.nolink').click(function() { + window.location = href; + }) + + $(this).addClass('rowlink') + link.replaceWith(link.html()) + }) + } + + + /* ROWLINK PLUGIN DEFINITION + * =========================== */ + + $.fn.rowlink = function (options) { + return this.each(function () { + var $this = $(this) + , data = $this.data('rowlink') + if (!data) $this.data('rowlink', (data = new Rowlink(this, options))) + }) + } + + $.fn.rowlink.defaults = { + target: "a" + } + + $.fn.rowlink.Constructor = Rowlink + + + /* ROWLINK DATA-API + * ================== */ + + $(function () { + $('[data-provides="rowlink"]').each(function () { + $(this).rowlink($(this).data()) + }) + }) + +}(window.jQuery) diff --git a/docs/assets/js/bootstrap.js b/docs/assets/js/bootstrap.js index 5d6e65b8..320dce10 100644 --- a/docs/assets/js/bootstrap.js +++ b/docs/assets/js/bootstrap.js @@ -1822,4 +1822,558 @@ }) }) -}(window.jQuery); \ No newline at end of file +}(window.jQuery);/* =========================================================== + * bootstrap-inputmask.js j1 + * http://twitter.github.com/bootstrap/javascript.html#tooltips + * Based on Masked Input plugin by Josh Bush (digitalbush.com) + * =========================================================== + * Copyright 2012 Jasny BV, Netherlands. + * + * Licensed under the Apache License, Version 2.0 (the "License") + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function ($) { + + "use strict"; // jshint ;_; + + var isIphone = (window.orientation !== undefined), + isAndroid = navigator.userAgent.toLowerCase().indexOf("android") > -1 + + $.mask = { + //Predefined character definitions + definitions: { + '9': "[0-9]", + 'a': "[A-Za-z]", + '?': "[A-Za-z0-9]", + '*': "." + }, + dataName:"rawMaskFn" + } + + + /* INPUTMASK PUBLIC CLASS DEFINITION + * ================================= */ + + var Inputmask = function (element, options) { + if (isAndroid) return // No support because caret positioning doesn't work on Android + + this.$element = $(element) + this.mask = options.mask + this.options = $.extend({}, $.fn.inputmask.defaults, options) + + this.init() + this.listen() + + this.checkVal() //Perform initial check for existing values + } + + Inputmask.prototype = { + + init: function() { + var defs = $.mask.definitions + var len = this.mask.length + + this.tests = [] + this.partialPosition = this.mask.length + this.firstNonMaskPos = null + + $.each(this.mask.split(""), $.proxy(function(i, c) { + if (c == '?') { + len-- + this.partialPosition = i + } else if (defs[c]) { + this.tests.push(new RegExp(defs[c])) + if(this.firstNonMaskPos === null) + this.firstNonMaskPos = this.tests.length - 1 + } else { + this.tests.push(null) + } + }, this)) + + this.buffer = $.map(this.mask.split(""), $.proxy(function(c, i) { + if (c != '?') return defs[c] ? this.options.placeholder : c + }, this)) + + this.focusText = this.$element.val() + + this.$element.data($.mask.dataName, $.proxy(function() { + return $.map(this.buffer, function(c, i) { + return this.tests[i] && c != this.options.placeholder ? c : null + }).join('') + }, this)) + }, + + listen: function() { + if (this.$element.attr("readonly")) return + + var pasteEventName = ($.browser.msie ? 'paste' : 'input') + ".mask" + + this.$element + .on("unmask", $.proxy(this.unmask, this)) + + .on("focus.mask", $.proxy(this.focusEvent, this)) + .on("blur.mask", $.proxy(this.blurEvent, this)) + + .on("keydown.mask", $.proxy(this.keydownEvent, this)) + .on("keypress.mask", $.proxy(this.keypressEvent, this)) + + .on(pasteEventName, $.proxy(this.pasteEvent, this)) + }, + + //Helper Function for Caret positioning + caret: function(begin, end) { + if (this.$element.length === 0) return + if (typeof begin == 'number') { + end = (typeof end == 'number') ? end : begin + return this.$element.each(function() { + if (this.setSelectionRange) { + this.setSelectionRange(begin, end) + } else if (this.createTextRange) { + var range = this.createTextRange() + range.collapse(true) + range.moveEnd('character', end) + range.moveStart('character', begin) + range.select() + } + }) + } else { + if (this.$element[0].setSelectionRange) { + begin = this.$element[0].selectionStart + end = this.$element[0].selectionEnd + } else if (document.selection && document.selection.createRange) { + var range = document.selection.createRange() + begin = 0 - range.duplicate().moveStart('character', -100000) + end = begin + range.text.length + } + return { + begin: begin, + end: end + } + } + }, + + seekNext: function(pos) { + var len = this.mask.length + while (++pos <= len && !this.tests[pos]); + + return pos + }, + + seekPrev: function(pos) { + while (--pos >= 0 && !this.tests[pos]); + + return pos + }, + + shiftL: function(begin,end) { + var len = this.mask.length + + if(begin<0) return + + for (var i = begin,j = this.seekNext(end); i < len; i++) { + if (this.tests[i]) { + if (j < len && this.tests[i].test(this.buffer[j])) { + this.buffer[i] = this.buffer[j] + this.buffer[j] = this.options.placeholder + } else + break + j = this.seekNext(j) + } + } + this.writeBuffer() + this.caret(Math.max(this.firstNonMaskPos, begin)) + }, + + shiftR: function(pos) { + var len = this.mask.length + + for (var i = pos, c = this.options.placeholder; i < len; i++) { + if (this.tests[i]) { + var j = this.seekNext(i) + var t = this.buffer[i] + this.buffer[i] = c + if (j < len && this.tests[j].test(t)) + c = t + else + break + } + } + }, + + unmask: function() { + this.$element + .unbind(".mask") + .removeData("inputmask") + }, + + focusEvent: function() { + this.focusText = this.$element.val() + var len = this.mask.length + var pos = this.checkVal() + this.writeBuffer() + + var that = this + var moveCaret = function() { + if (pos == len) + that.caret(0, pos) + else + that.caret(pos) + } + + if ($.browser.msie) + moveCaret() + else + setTimeout(moveCaret, 0) + }, + + blurEvent: function() { + this.checkVal() + if (this.$element.val() != this.focusText) + this.$element.trigger('change') + }, + + keydownEvent: function(e) { + var k=e.which + + //backspace, delete, and escape get special treatment + if (k == 8 || k == 46 || (isIphone && k == 127)) { + var pos = this.caret(), + begin = pos.begin, + end = pos.end + + if (end-begin === 0) { + begin = k!=46 ? this.seekPrev(begin) : (end=this.seekNext(begin-1)) + end = k==46 ? this.seekNext(end) : end + } + this.clearBuffer(begin, end) + this.shiftL(begin,end-1) + + return false + } else if (k == 27) {//escape + this.$element.val(this.focusText) + this.caret(0, this.checkVal()) + return false + } + }, + + keypressEvent: function(e) { + var len = this.mask.length + + var k = e.which, + pos = this.caret() + + if (e.ctrlKey || e.altKey || e.metaKey || k<32) {//Ignore + return true + } else if (k) { + if (pos.end - pos.begin !== 0) { + this.clearBuffer(pos.begin, pos.end) + this.shiftL(pos.begin, pos.end-1) + } + + var p = this.seekNext(pos.begin - 1) + if (p < len) { + var c = String.fromCharCode(k) + if (this.tests[p].test(c)) { + this.shiftR(p) + this.buffer[p] = c + this.writeBuffer() + var next = this.seekNext(p) + this.caret(next) + } + } + return false + } + }, + + pasteEvent: function() { + var that = this + + setTimeout(function() { + that.caret(that.checkVal(true)) + }, 0) + }, + + clearBuffer: function(start, end) { + var len = this.mask.length + + for (var i = start; i < end && i < len; i++) { + if (this.tests[i]) + this.buffer[i] = this.options.placeholder + } + }, + + writeBuffer: function() { + return this.$element.val(this.buffer.join('')).val() + }, + + checkVal: function(allow) { + var len = this.mask.length + //try to place characters where they belong + var test = this.$element.val() + var lastMatch = -1 + + for (var i = 0, pos = 0; i < len; i++) { + if (this.tests[i]) { + this.buffer[i] = this.options.placeholder + while (pos++ < test.length) { + var c = test.charAt(pos - 1) + if (this.tests[i].test(c)) { + this.buffer[i] = c + lastMatch = i + break + } + } + if (pos > test.length) + break + } else if (this.buffer[i] == test.charAt(pos) && i != this.partialPosition) { + pos++ + lastMatch = i + } + } + if (!allow && lastMatch + 1 < this.partialPosition) { + this.$element.val("") + this.clearBuffer(0, len) + } else if (allow || lastMatch + 1 >= this.partialPosition) { + this.writeBuffer() + if (!allow) this.$element.val(this.$element.val().substring(0, lastMatch + 1)) + } + return (this.partialPosition ? i : this.firstNonMaskPos) + } + } + + + /* INPUTMASK PLUGIN DEFINITION + * =========================== */ + + $.fn.inputmask = function (options) { + return this.each(function () { + var $this = $(this) + , data = $this.data('inputmask') + if (!data) $this.data('inputmask', (data = new Inputmask(this, options))) + }) + } + + $.fn.inputmask.defaults = { + placeholder: "_" + } + + $.fn.inputmask.Constructor = Inputmask + + + /* INPUTMASK DATA-API + * ================== */ + + $(function () { + $('body').on('focus.inputmask.data-api', '[data-mask]', function (e) { + var $this = $(this) + if ($this.data('inputmask')) return + e.preventDefault() + $this.inputmask($this.data()) + }) + }) + +}(window.jQuery)/* ============================================================ + * bootstrap-rowlink.js j1 + * http://jasny.github.com/bootstrap/javascript.html#rowlink + * ============================================================ + * Copyright 2012 Jasny BV, Netherlands. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function ($) { + + "use strict"; // jshint ;_; + + var Rowlink = function (element, options) { + options = $.extend({}, $.fn.rowlink.defaults, options) + var tr = element.nodeName == 'tr' ? $(element) : $(element).find('tr:has(td)') + + tr.each(function() { + var link = $(this).find(options.target).first() + if (!link.length) return + + var href = link.attr('href') + + $(this).find('td').not('.nolink').click(function() { + window.location = href; + }) + + $(this).addClass('rowlink') + link.replaceWith(link.html()) + }) + } + + + /* ROWLINK PLUGIN DEFINITION + * =========================== */ + + $.fn.rowlink = function (options) { + return this.each(function () { + var $this = $(this) + , data = $this.data('rowlink') + if (!data) $this.data('rowlink', (data = new Rowlink(this, options))) + }) + } + + $.fn.rowlink.defaults = { + target: "a" + } + + $.fn.rowlink.Constructor = Rowlink + + + /* ROWLINK DATA-API + * ================== */ + + $(function () { + $('[data-provides="rowlink"]').each(function () { + $(this).rowlink($(this).data()) + }) + }) + +}(window.jQuery) +/* =========================================================== + * bootstrap-fileupload.js j1 + * http://jasny.github.com/bootstrap/javascript.html#fileupload + * =========================================================== + * Copyright 2012 Jasny BV, Netherlands. + * + * Licensed under the Apache License, Version 2.0 (the "License") + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function ($) { + + "use strict"; // jshint ;_ + + /* INPUTMASK PUBLIC CLASS DEFINITION + * ================================= */ + + var Fileupload = function (element, options) { + this.$element = $(element) + this.type = this.$element.data('uploadtype') || (this.$element.find('.thumbnail').length > 0 ? "image" : "file") + + this.$input = this.$element.find(':file') + if (this.$input.length === 0) return + + this.name = this.$input.attr('name') || options.name + + this.$hidden = this.$element.find(':hidden[name="'+this.name+'"]') + if (this.$hidden.length === 0) { + this.$hidden = $('') + this.$element.prepend(this.$hidden) + } + + this.$preview = this.$element.find('.fileupload-preview') + var height = this.$preview.css('height') + if (this.$preview.css('display') != 'inline' && height != '0px' && height != 'none') this.$preview.css('line-height', height) + + this.$remove = this.$element.find('[data-dismiss="fileupload"]') + + this.listen() + } + + Fileupload.prototype = { + + listen: function() { + this.$input.on('change.fileupload', $.proxy(this.change, this)) + if (this.$remove) this.$remove.on('click.fileupload', $.proxy(this.clear, this)) + }, + + change: function(e, invoked) { + var file = e.target.files[0] + if (!file || invoked === 'clear') return + + this.$hidden.val('') + this.$hidden.attr('name', '') + this.$input.attr('name', this.name) + + if (this.type === "image" && this.$preview.length > 0 && (typeof file.type !== "undefined" ? file.type.match('image.*') : file.name.match('\\.(gif|png|jpe?g)$')) && typeof FileReader !== "undefined") { + var reader = new FileReader() + var preview = this.$preview + var element = this.$element + + reader.onload = function(e) { + preview.html('') + element.addClass('fileupload-exists').removeClass('fileupload-new') + } + + reader.readAsDataURL(file) + } else { + this.$preview.html(window.escape(file.name)) + this.$element.addClass('fileupload-exists').removeClass('fileupload-new') + } + }, + + clear: function(e) { + this.$hidden.val('') + this.$hidden.attr('name', this.name) + this.$input.attr('name', '') + + this.$preview.html('') + this.$element.addClass('fileupload-new').removeClass('fileupload-exists') + + this.$input.trigger('change', [ 'clear' ]) + + e.preventDefault() + return false + } + } + + + /* INPUTMASK PLUGIN DEFINITION + * =========================== */ + + $.fn.fileupload = function (options) { + return this.each(function () { + var $this = $(this) + , data = $this.data('fileupload') + if (!data) $this.data('fileupload', (data = new Fileupload(this, options))) + }) + } + + $.fn.fileupload.Constructor = Fileupload + + + /* INPUTMASK DATA-API + * ================== */ + + $(function () { + $('body').on('click.fileupload.data-api', '[data-provides="fileupload"]', function (e) { + var $this = $(this) + if ($this.data('fileupload')) return + $this.fileupload($this.data()) + }) + }) + +}(window.jQuery) diff --git a/docs/assets/js/bootstrap.min.js b/docs/assets/js/bootstrap.min.js index d5ccdee2..5be69a5e 100644 --- a/docs/assets/js/bootstrap.min.js +++ b/docs/assets/js/bootstrap.min.js @@ -3,4 +3,4 @@ * Copyright 2012 Twitter, Inc. * http://www.apache.org/licenses/LICENSE-2.0.txt */ -!function(a){a(function(){"use strict",a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=c,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},to:function(b){var c=this.$element.find(".active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(a){return a||(this.paused=!0),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j=a.Event("slide");this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();if(e.hasClass("active"))return;if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c);e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():f.interval&&e.cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning)return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning)return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";var b='[data-toggle="dropdown"]',c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),e,f,g;if(c.is(".disabled, :disabled"))return;return f=c.attr("data-target"),f||(f=c.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,"")),e=a(f),e.length||(e=c.parent()),g=e.hasClass("open"),d(),g||e.toggleClass("open"),!1}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api",d),a("body").on("click.dropdown",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a(' @@ -1703,8 +2154,10 @@ For example, <code>section</code> should be wrapped as inline. + + + - diff --git a/docs/components.html b/docs/components.html index 55eb2e4a..e45b3490 100644 --- a/docs/components.html +++ b/docs/components.html @@ -62,9 +62,6 @@ Using LESS
  • -
  • - Customize -
  • Examples
  • @@ -805,7 +802,7 @@

    Howdy, I'm in Section 2.

    -

    What up girl, this is Section 3.

    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque iaculis sapien lorem. Nullam justo leo, rhoncus et convallis id, tincidunt non lacus. Curabitur cursus dignissim ipsum, id ultricies est rhoncus sed. Proin vel dapibus lacus. Sed vulputate iaculis turpis vel egestas. Curabitur in accumsan nunc. In et urna ligula. Sed lorem neque, suscipit sed consequat at, laoreet vitae sapien. Curabitur congue dapibus dolor et eleifend. Curabitur vel lacinia eros.

    @@ -847,7 +844,7 @@

    Howdy, I'm in Section B.

    -

    What up girl, this is Section C.

    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque iaculis sapien lorem. Nullam justo leo, rhoncus et convallis id, tincidunt non lacus. Curabitur cursus dignissim ipsum, id ultricies est rhoncus sed. Proin vel dapibus lacus. Sed vulputate iaculis turpis vel egestas. Curabitur in accumsan nunc. In et urna ligula. Sed lorem neque, suscipit sed consequat at, laoreet vitae sapien. Curabitur congue dapibus dolor et eleifend. Curabitur vel lacinia eros.