From 5e83bf3b7f2e722cc8034f9e3dcca3c106489bf4 Mon Sep 17 00:00:00 2001 From: Jan Enning Date: Tue, 6 Feb 2018 21:07:52 +0100 Subject: [PATCH] Bootstrap4 support (#29) --- .editorconfig | 21 + Gulpfile.js | 39 +- README.md | 8 +- _includes/howto.html | 22 +- _includes/indicator.html | 38 +- _includes/intro.html | 112 +- _includes/slider-intro.html | 63 +- bower.json | 4 +- dist/titatoggle-dist-min.css | 2 +- dist/titatoggle-dist.css | 1296 +++++------------ less/_titatoggle.less => dist/titatoggle.scss | 509 +++---- docs/index.html | 233 +-- docs/js/highlight.js | 42 +- docs/js/index.js | 7 + docs/js/languages/1c.js | 557 ++++++- docs/js/languages/aspectj.js | 3 +- docs/js/languages/autohotkey.js | 23 +- docs/js/languages/bash.js | 2 +- docs/js/languages/clojure.js | 1 + docs/js/languages/cpp.js | 19 +- docs/js/languages/crystal.js | 25 +- docs/js/languages/cs.js | 24 +- docs/js/languages/dockerfile.js | 4 +- docs/js/languages/elm.js | 3 +- docs/js/languages/gams.js | 2 +- docs/js/languages/gauss.js | 6 +- docs/js/languages/haxe.js | 2 +- docs/js/languages/hy.js | 101 ++ docs/js/languages/jboss-cli.js | 46 + docs/js/languages/julia-repl.js | 23 + docs/js/languages/julia.js | 124 +- docs/js/languages/kotlin.js | 16 +- docs/js/languages/leaf.js | 39 + docs/js/languages/lua.js | 24 +- docs/js/languages/makefile.js | 100 +- docs/js/languages/n1ql.js | 68 + docs/js/languages/python.js | 40 +- docs/js/languages/qml.js | 2 +- docs/js/languages/routeros.js | 158 ++ docs/js/languages/ruby.js | 1 + docs/js/languages/rust.js | 30 +- docs/js/languages/scheme.js | 5 +- docs/js/languages/shell.js | 14 + docs/js/languages/swift.js | 4 +- docs/js/languages/typescript.js | 35 +- docs/js/languages/yaml.js | 16 +- less/main.less | 76 - less/titatoggle.less | 5 - package.json | 7 +- less/_syntax.less => scss/_syntax.scss | 0 scss/_titatoggle.scss | 848 +++++++++++ scss/main.scss | 78 + less/theme.less => scss/theme.scss | 0 scss/titatoggle.scss | 6 + 54 files changed, 3133 insertions(+), 1800 deletions(-) create mode 100644 .editorconfig rename less/_titatoggle.less => dist/titatoggle.scss (68%) create mode 100644 docs/js/languages/hy.js create mode 100644 docs/js/languages/jboss-cli.js create mode 100644 docs/js/languages/julia-repl.js create mode 100644 docs/js/languages/leaf.js create mode 100644 docs/js/languages/n1ql.js create mode 100644 docs/js/languages/routeros.js create mode 100644 docs/js/languages/shell.js delete mode 100755 less/main.less delete mode 100755 less/titatoggle.less rename less/_syntax.less => scss/_syntax.scss (100%) create mode 100644 scss/_titatoggle.scss create mode 100755 scss/main.scss rename less/theme.less => scss/theme.scss (100%) create mode 100755 scss/titatoggle.scss diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c2c1583 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.scss] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/Gulpfile.js b/Gulpfile.js index 7690d9c..1a8536e 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,10 +1,11 @@ var gulp = require('gulp'), - less = require('gulp-less'), + // less = require('gulp-less'), autoprefixer = require('gulp-autoprefixer'), concat = require('gulp-concat'), cssmin = require('gulp-cssmin'), rename = require('gulp-rename'), clean = require('gulp-clean'), + sass = require('gulp-sass'); fileinclude = require('gulp-file-include'), runSequence = require('run-sequence'), browserSync = require('browser-sync'), @@ -25,11 +26,11 @@ gulp.task('fileinclude', function () { }); -gulp.task('less:main', function () { - return gulp.src('./less/main.less') - .pipe(less({ - paths: [path.join(__dirname, 'less', 'includes')] - })).pipe(autoprefixer({ +gulp.task('scss:main', function () { + return gulp.src('./scss/main.scss') + .pipe(sass({ + paths: [path.join(__dirname, 'scss', 'includes')] + }).on('error', sass.logError)).pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false })) @@ -37,10 +38,10 @@ gulp.task('less:main', function () { .pipe(browserSync.stream()); }); -gulp.task('less:slider', function () { - return gulp.src('./less/titatoggle.less') - .pipe(less({ - paths: [path.join(__dirname, 'less', 'includes')] +gulp.task('scss:slider', function () { + return gulp.src('./scss/titatoggle.scss') + .pipe(sass({ + paths: [path.join(__dirname, 'scss', 'includes')] })).pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false @@ -49,10 +50,10 @@ gulp.task('less:slider', function () { .pipe(gulp.dest('./dist')); }); -gulp.task('less:slider-min', function () { - return gulp.src('./less/titatoggle.less') - .pipe(less({ - paths: [path.join(__dirname, 'less', 'includes')] +gulp.task('scss:slider-min', function () { + return gulp.src('./scss/titatoggle.scss') + .pipe(sass({ + paths: [path.join(__dirname, 'scss', 'includes')] })).pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false @@ -62,7 +63,7 @@ gulp.task('less:slider-min', function () { }); gulp.task('copy:src', function () { - return gulp.src('./less/_titatoggle.less') + return gulp.src('./scss/_titatoggle.scss') .pipe(rename({basename: "titatoggle",})) .pipe(gulp.dest('./dist')); }); @@ -79,20 +80,20 @@ gulp.task('browser-sync', function () { baseDir: "./docs" } }); - gulp.watch("less/**/*.*", ['less']); + gulp.watch("scss/**/*.*", ['scss']); gulp.watch("_includes/**/*.*", ['fileinclude']); gulp.watch("docs/**/*.*").on("change", reload); }); -gulp.task('less', function (callback) { - runSequence(['less:main', 'less:slider', 'less:slider-min'], +gulp.task('scss', function (callback) { + runSequence(['scss:main', 'scss:slider', 'scss:slider-min'], callback ) }); gulp.task('default', function (callback) { - runSequence(['copy:js', 'copy:src', 'less', 'fileinclude'], 'browser-sync', + runSequence(['copy:js', 'copy:src', 'scss', 'fileinclude'], 'browser-sync', callback ) }); diff --git a/README.md b/README.md index 2614317..1e5fa8d 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,15 @@ -TiTatoggle - (bs3 addon without JS) -========== +TiTatoggle - (bootstrap 3 addon without JS) +=========================================== Using awesome toggle buttons without Javascript or any other logic, other than plane form elements. The Pattern is the same as Twitter-Bootstrap. So it can be implemented without a breeze. -Browser support: Internet Explorer 9, FireFox, Safari, Chrome, Safari Ios, Stock Android browser 4.2, Chrome Android +Browser support: Internet Explorer 9/10/11, Edge, FireFox, Safari, Chrome, Safari Ios, Stock Android browser 4.2, Chrome Android Install: ''' +$ npm i titatoggle --save-dev (Bootstrap 4.x.x) +$ npm i titatoggle@1.0.0 --save-dev (Legacy bootstrap 3.x.x) $ bower install titatoggle ''' diff --git a/_includes/howto.html b/_includes/howto.html index 3e0b67c..c058a93 100644 --- a/_includes/howto.html +++ b/_includes/howto.html @@ -7,15 +7,25 @@

Howto

You have a few options to include this into your project.

+

Install

+ +

Latest version (Bootstrap 4)

+ +$ npm install titatoggle --save-dev + +

Previous version (Bootstrap 3)

+$ npm install titatoggle@1.0.0 --save-dev +

Bower

-

- $ bower install titatoggle -

+$ bower install titatoggle + + + -

Less

+

SASS

- Inside the project you will find _titatoggle.less Include this file into your own project, and stuff just works. - If needed, you can fiddle around with some less variables. + Inside the project you will find _titatoggle.scss Include this file into your own project, and stuff just works. + If needed, you can fiddle around with some sass variables.

CSS

diff --git a/_includes/indicator.html b/_includes/indicator.html index d89233e..1c3b271 100644 --- a/_includes/indicator.html +++ b/_includes/indicator.html @@ -1,55 +1,55 @@

Indicator

- Small visual que for the label to show that the checkbox is checked. + Small visual que for the label to show that the checkbox is checked.

- Not so usable for the visually impaired, due - to the fact it's only a color and contrast is to low. + Not so usable for the visually impaired, due + to the fact it's only a color and contrast is to low.
- +
- +
- +
- +

 
 
... - danger + danger ...
... - danger + danger ...
... - danger + danger ...
... - danger + danger ...
diff --git a/_includes/intro.html b/_includes/intro.html index 8ec535f..5e082cd 100644 --- a/_includes/intro.html +++ b/_includes/intro.html @@ -1,56 +1,62 @@
-
-

Bootstrap 3 Ti-Ta-Toggle (bs3 addon without JS)

-

- Using awesome toggle buttons without Javascript or any other logic, other than plane form elements. - The Pattern is the same as Twitter-Bootstrap. So it can be implemented without a breeze. -

-

- Browser support: Internet Explorer 9, FireFox, Safari, Chrome, Safari Ios, Stock Android browser 4.2, Chrome Android -

-
-
-
-
Default checkbox
-
- -
-
-
-
With text
-
- -
-
-
-
iOS like
-
- -
-
-
-
Material like
-
- -
-
-
-
-
-

- - -

+
+

Bootstrap 4 Ti-Ta-Toggle + (addon without JS) +

+

+ Using awesome toggle buttons without Javascript or any other logic, other than plane form elements. + The Pattern is the same as Twitter-Bootstrap. So it can be implemented without a breeze. +

+

+ Browser support: Internet Explorer 9/10/11, Edge, FireFox, Safari, Chrome, Safari Ios, Stock Android browser + 4.2, Chrome Android +

+

+ Version 1.0.0 of TitaToggle has support for Bootstrap v3.x.x +

+
+
+
+
Default checkbox
+
+ +
+
+
+
With text
+
+ +
+
+
+
iOS like
+
+ +
+
+
+
Material like
+
+ +
+
+
+
+
+

+ + +

-
+
diff --git a/_includes/slider-intro.html b/_includes/slider-intro.html index 64d77a8..629954c 100644 --- a/_includes/slider-intro.html +++ b/_includes/slider-intro.html @@ -1,57 +1,68 @@

Intro

- The only difference between default Bootstrap is the additional span. After that it's only a question of adding a class that fits your needs. + The only difference between default Bootstrap is the additional span. After that it's only a question of adding a class that fits your needs.

-

Bootstrap 3

+

Bootstrap 4

- The Bootstrap 3 default way of generating checkbox looks a like this: + The Bootstrap 4 default way of generating checkbox looks a like this:

- +

 
- +

Ti-Ta-Toggle awesomenes

- Just by adding one <span> plus the class .checkbox-slider--TYPE you get this result: + Just by adding one +

+ +

+  
+
+

+ plus the class

+

+  .checkbox-slider--TYPE
+
+

you get this result:

+ - -
- -
+
+ +
-

+

 
-
+
-

-

Note:

-

- Don't forget to add the span after the input -

-

+

+

Note:

+

+ Don't forget to add the span after the input +

+


diff --git a/bower.json b/bower.json index 6fd52d5..3954888 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "titatoggle", - "version": "1.2.14", + "version": "2.0.0", "homepage": "https://github.com/kleinejan/titatoggle", "authors": [ "Jan Enning " @@ -40,6 +40,6 @@ ], "license": "GNU GENERAL PUBLIC LICENSE V2.0", "dependencies": { - "bootstrap": "~3.3.0" + "bootstrap": "~4.0.0" } } diff --git a/dist/titatoggle-dist-min.css b/dist/titatoggle-dist-min.css index 28b5f4e..7786f75 100755 --- a/dist/titatoggle-dist-min.css +++ b/dist/titatoggle-dist-min.css @@ -1 +1 @@ -.checkbox-slider input+span,.checkbox-toggle input+span{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.checkbox-slider input[type=checkbox]:focus+:before,.checkbox-slider--a input[type=checkbox]:focus+:before,.checkbox-slider--a-rounded input[type=checkbox]:focus+:before,.checkbox-slider--b input[type=checkbox]:focus+:before,.checkbox-slider--b-flat input[type=checkbox]:focus+:before,.checkbox-slider--c input[type=checkbox]:focus+:before,.checkbox-slider--c-weight input[type=checkbox]:focus+:before,.checkbox-slider--default input[type=checkbox]:focus+:before,.checkbox-toggle input[type=checkbox]:focus+:before{outline:#66afe9 solid 2px}@keyframes popIn{0%,100%{transform:scale(1,1)}25%{transform:scale(1.2,1)}50%{transform:scale(1.4,1)}}@keyframes popOut{0%,100%{transform:scale(1,1)}25%{transform:scale(1.2,1)}50%{transform:scale(1.4,1)}}@keyframes splashIn{0%,100%{transform:scale(1);opacity:1}25%{transform:scale(1.1);opacity:.8}50%{transform:scale(1.1);opacity:.9}}@keyframes splashOut{0%{transform:scale(1);opacity:1}25%{transform:scale(1);opacity:.8}50%{transform:scale(1);opacity:.9}100%{transform:scale(.5);opacity:1}}.checkbox-toggle{position:relative}.checkbox-toggle input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-toggle input+span{user-select:none}.checkbox-toggle input+span:before{position:absolute;left:0;display:inline-block}.checkbox-toggle input+span>h4{display:inline}.form-horizontal [class^=checkbox] input+span:after{top:7px}.checkbox-slider{position:relative}.checkbox-slider input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider input+span:after,.checkbox-slider input+span:before{height:20px;position:absolute;content:"";left:0}.checkbox-slider input+span{user-select:none;padding-left:40px}.checkbox-slider--a-rounded input+span,.checkbox-slider--default input+span{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;padding-left:40px}.checkbox-slider input+span:before{display:inline-block;width:40px;background:rgba(100,100,100,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.8);transition:background .2s ease-out}.checkbox-slider input+span>h4{display:inline}.checkbox-slider input+span:after{width:20px;top:0;display:block;background:#FFF;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700}.checkbox-slider input:checked+span:after{margin-left:20px;content:""}.checkbox-slider input:checked+span:before{transition:background .2s ease-in}.checkbox-slider--default{position:relative}.checkbox-slider--default input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider--default input+span{user-select:none}.checkbox-slider--default input+span:before{position:absolute;left:0;display:inline-block;content:"";height:20px;width:40px;background:rgba(100,100,100,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.8);transition:background .2s ease-out}.checkbox-slider--default input+span>h4{display:inline}.checkbox-slider--default input+span:after{width:20px;height:20px;position:absolute;left:0;top:0;display:block;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700;content:"";background:#FFF;border:1px solid transparent;background-clip:content-box}.checkbox-slider--default input:checked+span:after{margin-left:20px;content:"";background:#5cb85c;border:1px solid transparent;background-clip:content-box}.checkbox-slider--default input:checked+span:before{transition:background .2s ease-in}.checkbox-slider--a-rounded{position:relative}.checkbox-slider--a-rounded input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider--a-rounded input+span{user-select:none}.checkbox-slider--a input+span,.checkbox-slider--b input+span{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.checkbox-slider--a-rounded input+span:before{position:absolute;left:0;display:inline-block;content:"";height:20px;width:40px;background:rgba(100,100,100,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.8);transition:background .2s ease-out}.checkbox-slider--a-rounded input+span>h4{display:inline}.checkbox-slider--a-rounded input+span:after{width:20px;height:20px;position:absolute;left:0;top:0;display:block;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700;content:"";background:#FFF}.checkbox-slider--a-rounded input:checked+span:after{margin-left:20px;content:"";background:#5cb85c}.checkbox-slider--a-rounded input:checked+span:before{transition:background .2s ease-in}.checkbox-slider--a-rounded input+span:after,.checkbox-slider--a-rounded input+span:before{border-radius:4px}.checkbox-slider--a-rounded input+span:after,.checkbox-slider--a-rounded input:checked+span:after{border:2px solid transparent;background-clip:content-box}.checkbox-slider--a-rounded.checkbox-slider-sm input+span:after,.checkbox-slider--a-rounded.checkbox-slider-sm input+span:before{border-radius:3px}.checkbox-slider--a-rounded.checkbox-slider-md input+span:after,.checkbox-slider--a-rounded.checkbox-slider-md input+span:before{border-radius:4px}.checkbox-slider--a-rounded.checkbox-slider-lg input+span:after,.checkbox-slider--a-rounded.checkbox-slider-lg input+span:before{border-radius:6px}.checkbox-slider--a{position:relative}.checkbox-slider--a input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider--a input+span{user-select:none;padding-left:60px}.checkbox-slider--a input+span:before{position:absolute;left:0;display:inline-block;height:20px;background:rgba(100,100,100,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.8);transition:background .2s ease-out;content:"";width:60px}.checkbox-slider--a input+span>h4{display:inline}.checkbox-slider--a input+span:after{height:20px;position:absolute;left:0;top:0;display:block;background:#FFF;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700;width:40px;font-size:10px;color:#000;content:"Off";border:1px solid transparent;background-clip:content-box}.checkbox-slider--a input:checked+span:after{margin-left:20px;content:"On";color:#fff;background:#5cb85c;border:1px solid transparent;background-clip:content-box}.checkbox-slider--a input:checked+span:before{transition:background .2s ease-in}.checkbox-slider--a.checkbox-slider-sm input+span{padding-left:30px}.checkbox-slider--a.checkbox-slider-sm input+span:before{width:30px}.checkbox-slider--a.checkbox-slider-sm input+span:after{width:20px;font-size:5px}.checkbox-slider--a.checkbox-slider-sm input:checked+span:after{margin-left:10px}.checkbox-slider--a.checkbox-slider-md input+span{padding-left:90px}.checkbox-slider--a.checkbox-slider-md input+span:before{width:90px}.checkbox-slider--a.checkbox-slider-md input+span:after{width:60px;font-size:15px}.checkbox-slider--a.checkbox-slider-md input:checked+span:after{margin-left:30px}.checkbox-slider--a.checkbox-slider-lg input+span{padding-left:120px}.checkbox-slider--a.checkbox-slider-lg input+span:before{width:120px}.checkbox-slider--a.checkbox-slider-lg input+span:after{width:80px;font-size:20px}.checkbox-slider--a.checkbox-slider-lg input:checked+span:after{margin-left:40px}.checkbox-slider--b{position:relative}.checkbox-slider--b input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider--b input+span:after,.checkbox-slider--b input+span:before{height:20px;position:absolute;left:0;content:""}.checkbox-slider--b input+span{user-select:none;padding-left:40px}.checkbox-slider--b-flat input+span,.checkbox-slider--c input+span{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;padding-left:40px}.checkbox-slider--b input+span:before{display:inline-block;background:rgba(100,100,100,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.8);transition:background .2s ease-out;border-radius:20px;width:40px}.checkbox-slider--b input+span>h4{display:inline}.checkbox-slider--b input+span:after{top:0;display:block;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700;background:#FFF;width:20px;border:2px solid transparent;background-clip:padding-box;border-radius:20px}.checkbox-slider--b input:not(:checked)+span:after{animation:popOut ease-in .3s normal}.checkbox-slider--b input:checked+span:after{content:"";margin-left:20px;border:2px solid transparent;background-clip:padding-box;animation:popIn ease-in .3s normal}.checkbox-slider--b input:checked+span:before{transition:background .2s ease-in;background:#5cb85c}.checkbox-slider--b.checkbox-slider-md input+span:after,.checkbox-slider--b.checkbox-slider-md input+span:before{border-radius:30px}.checkbox-slider--b.checkbox-slider-lg input+span:after,.checkbox-slider--b.checkbox-slider-lg input+span:before{border-radius:40px}.checkbox-slider--b-flat{position:relative}.checkbox-slider--b-flat input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider--b-flat input+span{user-select:none}.checkbox-slider--b-flat input+span:before{position:absolute;left:0;display:inline-block;content:"";height:20px;background:rgba(100,100,100,.2);transition:background .2s ease-out;border-radius:20px;width:40px;box-shadow:none}.checkbox-slider--b-flat input+span>h4{display:inline}.checkbox-slider--b-flat input+span:after{height:20px;position:absolute;left:0;top:0;display:block;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700}.checkbox-slider--b-flat input+span:after{background:#FFF;content:"";width:20px;border:2px solid transparent;background-clip:padding-box;border-radius:20px}.checkbox-slider--b-flat input:not(:checked)+span:after{animation:popOut ease-in .3s normal}.checkbox-slider--b-flat input:checked+span:after{content:"";margin-left:20px;border:2px solid transparent;background-clip:padding-box;animation:popIn ease-in .3s normal}.checkbox-slider--b-flat input:checked+span:before{transition:background .2s ease-in;background:#5cb85c}.checkbox-slider--b-flat.checkbox-slider-md input+span:after,.checkbox-slider--b-flat.checkbox-slider-md input+span:before{border-radius:30px}.checkbox-slider--b-flat.checkbox-slider-lg input+span:after,.checkbox-slider--b-flat.checkbox-slider-lg input+span:before{border-radius:40px}.checkbox-slider--c{position:relative}.checkbox-slider--c input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider--c input+span{user-select:none}.checkbox-slider--c input+span:before{position:absolute;left:0;display:inline-block;content:"";transition:background .2s ease-out}.checkbox-slider--c input+span>h4{display:inline}.checkbox-slider--c input+span:after{height:20px;position:absolute;left:0;top:0;display:block;background:#FFF;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700;content:""}.checkbox-slider--c input+span:before{height:2px!important;top:10px;box-shadow:none;width:40px;background:#555}.checkbox-slider--c input+span:after{box-shadow:none;width:20px;border:2px solid #555;border-radius:20px}.checkbox-slider--c input:checked+span:after{content:"";background:#5cb85c;margin-left:20px;border:2px solid #5cb85c;animation:splashIn ease-in .3s normal}.checkbox-slider--c input:checked+span:before{transition:background .2s ease-in;background:#5cb85c}.checkbox-slider--c.checkbox-slider-sm input+span:before{top:4px}.checkbox-slider--c.checkbox-slider-md input+span:before{top:14px}.checkbox-slider--c.checkbox-slider-md input+span:after{width:30px;border-radius:30px}.checkbox-slider--c.checkbox-slider-lg input+span:before{top:19px}.checkbox-slider--c.checkbox-slider-lg input+span:after{width:40px;border-radius:40px}.form-horizontal [class*=checkbox-slider--c].checkbox-slider-sm input+span:before{top:10px}.form-horizontal [class*=checkbox-slider--c].checkbox-slider-md input+span:before{top:20px}.form-horizontal [class*=checkbox-slider--c].checkbox-slider-lg input+span:before{top:25px}.checkbox-slider--c-weight{position:relative}.checkbox-slider--c-weight input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider--c-weight input+span{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-left:40px}.checkbox-slider--c-weight input+span:before{position:absolute;left:0;display:inline-block;content:"";transition:background .2s ease-out}.checkbox-slider--c-weight input+span>h4{display:inline}.checkbox-slider--c-weight input+span:after{height:20px;position:absolute;left:0;top:0;display:block;background:#FFF;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700;content:""}.checkbox-slider--c-weight input+span:before{top:10px;box-shadow:none;width:40px;background:#555;height:1px!important}.checkbox-slider--c-weight input+span:after{box-shadow:none;width:20px;border:2px solid #555;border-radius:20px}.checkbox-slider--a input:disabled+span:before,.checkbox-slider--a-rounded input:disabled+span:before,.checkbox-slider--b input:disabled+span:before,.checkbox-slider--b-flat input:disabled+span:before,.checkbox-slider--default input:disabled+span:before{box-shadow:0 0 0 #000}.checkbox-slider--c-weight input:checked+span:after{content:"";background:#5cb85c;margin-left:20px;border:2px solid #5cb85c;animation:splashIn ease-in .3s normal}.checkbox-slider--c-weight input:checked+span:before{transition:background .2s ease-in;background:#5cb85c;height:2px!important}.checkbox-slider--b input:disabled:checked+span:before,.checkbox-slider--b-flat input:disabled:checked+span:before,.checkbox-slider--c input:disabled+span:before,.checkbox-slider--c input:disabled:checked+span:after,.checkbox-slider--c-weight input:disabled+span:before,.checkbox-slider--c-weight input:disabled:checked+span:after,.checkbox-slider--default input:disabled+span:after{background:#777}.checkbox-slider--c-weight.checkbox-slider-sm input+span:before{top:4px}.checkbox-slider--c-weight.checkbox-slider-md input+span:before{top:14px}.checkbox-slider--c-weight.checkbox-slider-md input+span:after{width:30px;border-radius:30px}.checkbox-slider--c-weight.checkbox-slider-lg input+span:before{top:19px}.checkbox-slider--c-weight.checkbox-slider-lg input+span:after{width:40px;border-radius:40px}.checkbox-slider--c-weight input:not(:checked)+span:after{transform:scale(.7);left:-6px}.checkbox-slider--default input:disabled+span{color:#777}.checkbox-slider--a input:disabled+span:after,.checkbox-slider--a-rounded input:disabled+span:after{background:#777;color:#FFF}.checkbox-slider--a input:disabled+span,.checkbox-slider--a-rounded input:disabled+span,.checkbox-slider--b input:disabled+span,.checkbox-slider--b-flat input:disabled+span,.checkbox-slider--c input:disabled+span,.checkbox-slider--c-weight input:disabled+span{color:#777}.checkbox-slider--b input:disabled+span:after,.checkbox-slider--b-flat input:disabled+span:after{border:2px solid transparent;border-radius:40px}.checkbox-slider--c input:disabled+span:after,.checkbox-slider--c-weight input:disabled+span:after{border-color:#777}input:checked+.indicator-primary{color:#337ab7}input:checked+.indicator-success{color:#5cb85c}input:checked+.indicator-info{color:#5bc0de}input:checked+.indicator-warning{color:#f0ad4e}input:checked+.indicator-danger{color:#d9534f}.checkbox-slider-sm{line-height:10px}.checkbox-slider-sm input+span{padding-left:20px}.checkbox-slider-sm input+span:before{width:20px}.checkbox-slider-sm input+span:after,.checkbox-slider-sm input+span:before{height:10px;line-height:10px}.checkbox-slider-sm input+span:after{width:10px;vertical-align:middle}.checkbox-slider-sm input:checked+span:after{margin-left:10px}.checkbox-slider-md{line-height:30px}.checkbox-slider-md input+span{padding-left:60px}.checkbox-slider-md input+span:before{width:60px}.checkbox-slider-md input+span:after,.checkbox-slider-md input+span:before{height:30px;line-height:30px}.checkbox-slider-md input+span:after{width:30px;vertical-align:middle}.checkbox-slider-md input:checked+span:after{margin-left:30px}.checkbox-slider-lg{line-height:40px}.checkbox-slider-lg input+span{padding-left:80px}.checkbox-slider-lg input+span:before{width:80px}.checkbox-slider-lg input+span:after,.checkbox-slider-lg input+span:before{height:40px;line-height:40px}.checkbox-slider-lg input+span:after{width:40px;vertical-align:middle}.checkbox-slider-lg input:checked+span:after{margin-left:40px}.checkbox-slider-primary.checkbox-slider--a input:checked+span:after,.checkbox-slider-primary.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-primary.checkbox-slider--c input:checked+span:after,.checkbox-slider-primary.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-primary.checkbox-slider--default input:checked+span:after{background:#337ab7;background-clip:content-box}.checkbox-slider-primary.checkbox-slider--c input:checked+span:after,.checkbox-slider-primary.checkbox-slider--c-weight input:checked+span:after{border-color:#337ab7}.checkbox-slider-primary.checkbox-slider--b input:checked+span:before,.checkbox-slider-primary.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-primary.checkbox-slider--c input:checked+span:before,.checkbox-slider-primary.checkbox-slider--c-weight input:checked+span:before{background:#337ab7}.checkbox-slider-info.checkbox-slider--a input:checked+span:after,.checkbox-slider-info.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-info.checkbox-slider--c input:checked+span:after,.checkbox-slider-info.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-info.checkbox-slider--default input:checked+span:after{background:#5bc0de;background-clip:content-box}.checkbox-slider-info.checkbox-slider--c input:checked+span:after,.checkbox-slider-info.checkbox-slider--c-weight input:checked+span:after{border-color:#5bc0de}.checkbox-slider-info.checkbox-slider--b input:checked+span:before,.checkbox-slider-info.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-info.checkbox-slider--c input:checked+span:before,.checkbox-slider-info.checkbox-slider--c-weight input:checked+span:before{background:#5bc0de}.checkbox-slider-warning.checkbox-slider--a input:checked+span:after,.checkbox-slider-warning.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-warning.checkbox-slider--c input:checked+span:after,.checkbox-slider-warning.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-warning.checkbox-slider--default input:checked+span:after{background:#f0ad4e;background-clip:content-box}.checkbox-slider-warning.checkbox-slider--c input:checked+span:after,.checkbox-slider-warning.checkbox-slider--c-weight input:checked+span:after{border-color:#f0ad4e}.checkbox-slider-warning.checkbox-slider--b input:checked+span:before,.checkbox-slider-warning.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-warning.checkbox-slider--c input:checked+span:before,.checkbox-slider-warning.checkbox-slider--c-weight input:checked+span:before{background:#f0ad4e}.checkbox-slider-danger.checkbox-slider--a input:checked+span:after,.checkbox-slider-danger.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-danger.checkbox-slider--c input:checked+span:after,.checkbox-slider-danger.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-danger.checkbox-slider--default input:checked+span:after{background:#d9534f;background-clip:content-box}.checkbox-slider-danger.checkbox-slider--c input:checked+span:after,.checkbox-slider-danger.checkbox-slider--c-weight input:checked+span:after{border-color:#d9534f}.checkbox-slider-danger.checkbox-slider--b input:checked+span:before,.checkbox-slider-danger.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-danger.checkbox-slider--c input:checked+span:before,.checkbox-slider-danger.checkbox-slider--c-weight input:checked+span:before{background:#d9534f} \ No newline at end of file +@keyframes popIn{0%,100%{transform:scale(1,1)}25%{transform:scale(1.2,1)}50%{transform:scale(1.4,1)}}@keyframes popOut{0%,100%{transform:scale(1,1)}25%{transform:scale(1.2,1)}50%{transform:scale(1.4,1)}}@keyframes splashIn{0%,100%{transform:scale(1);opacity:1}25%{transform:scale(1.1);opacity:.8}50%{transform:scale(1.1);opacity:.9}}@keyframes splashOut{0%{transform:scale(1);opacity:1}25%{transform:scale(1);opacity:.8}50%{transform:scale(1);opacity:.9}100%{transform:scale(.5);opacity:1}}.checkbox-slider,.checkbox-slider--a,.checkbox-slider--a-rounded,.checkbox-slider--b,.checkbox-slider--b-flat,.checkbox-slider--c,.checkbox-slider--c-weight,.checkbox-slider--default,.checkbox-toggle{position:relative}.checkbox-slider input[type=checkbox],.checkbox-slider--a input[type=checkbox],.checkbox-slider--a-rounded input[type=checkbox],.checkbox-slider--b input[type=checkbox],.checkbox-slider--b-flat input[type=checkbox],.checkbox-slider--c input[type=checkbox],.checkbox-slider--c-weight input[type=checkbox],.checkbox-slider--default input[type=checkbox],.checkbox-toggle input[type=checkbox]{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:0%;height:0%;margin:0;cursor:pointer;opacity:0}.checkbox-slider input[type=checkbox]:focus+:before,.checkbox-slider--a input[type=checkbox]:focus+:before,.checkbox-slider--a-rounded input[type=checkbox]:focus+:before,.checkbox-slider--b input[type=checkbox]:focus+:before,.checkbox-slider--b-flat input[type=checkbox]:focus+:before,.checkbox-slider--c input[type=checkbox]:focus+:before,.checkbox-slider--c-weight input[type=checkbox]:focus+:before,.checkbox-slider--default input[type=checkbox]:focus+:before,.checkbox-toggle input[type=checkbox]:focus+:before{outline:#80bdff solid 2px}.checkbox-slider input+span,.checkbox-slider--a input+span,.checkbox-slider--a-rounded input+span,.checkbox-slider--b input+span,.checkbox-slider--b-flat input+span,.checkbox-slider--c input+span,.checkbox-slider--c-weight input+span,.checkbox-slider--default input+span,.checkbox-toggle input+span{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox-slider input+span:before,.checkbox-slider--a input+span:before,.checkbox-slider--a-rounded input+span:before,.checkbox-slider--b input+span:before,.checkbox-slider--b-flat input+span:before,.checkbox-slider--c input+span:before,.checkbox-slider--c-weight input+span:before,.checkbox-slider--default input+span:before,.checkbox-toggle input+span:before{position:absolute;left:0;display:inline-block}.checkbox-slider input+span>h4,.checkbox-slider--a input+span>h4,.checkbox-slider--a-rounded input+span>h4,.checkbox-slider--b input+span>h4,.checkbox-slider--b-flat input+span>h4,.checkbox-slider--c input+span>h4,.checkbox-slider--c-weight input+span>h4,.checkbox-slider--default input+span>h4,.checkbox-toggle input+span>h4{display:inline}.form-horizontal [class^=checkbox] input+span:after{top:7px}.checkbox-slider input+span,.checkbox-slider--a input+span,.checkbox-slider--a-rounded input+span,.checkbox-slider--b input+span,.checkbox-slider--b-flat input+span,.checkbox-slider--c input+span,.checkbox-slider--c-weight input+span,.checkbox-slider--default input+span{padding-left:40px}.checkbox-slider input+span:before,.checkbox-slider--a input+span:before,.checkbox-slider--a-rounded input+span:before,.checkbox-slider--b input+span:before,.checkbox-slider--b-flat input+span:before,.checkbox-slider--c input+span:before,.checkbox-slider--c-weight input+span:before,.checkbox-slider--default input+span:before{content:"";height:20px;width:40px;background:rgba(100,100,100,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.8);transition:background .2s ease-out}.checkbox-slider input+span:after,.checkbox-slider--a input+span:after,.checkbox-slider--a-rounded input+span:after,.checkbox-slider--b input+span:after,.checkbox-slider--b-flat input+span:after,.checkbox-slider--c input+span:after,.checkbox-slider--c-weight input+span:after,.checkbox-slider--default input+span:after{width:20px;height:20px;position:absolute;left:0;top:0;display:block;background:#FFF;transition:margin-left .1s ease-in-out;text-align:center;font-weight:700;content:""}.checkbox-slider input:checked+span:after,.checkbox-slider--a input:checked+span:after,.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider--b input:checked+span:after,.checkbox-slider--b-flat input:checked+span:after,.checkbox-slider--c input:checked+span:after,.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider--default input:checked+span:after{margin-left:20px;content:""}.checkbox-slider input:checked+span:before,.checkbox-slider--a input:checked+span:before,.checkbox-slider--a-rounded input:checked+span:before,.checkbox-slider--b input:checked+span:before,.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider--c input:checked+span:before,.checkbox-slider--c-weight input:checked+span:before,.checkbox-slider--default input:checked+span:before{transition:background .2s ease-in}.checkbox-slider--a-rounded input+span:after,.checkbox-slider--default input+span:after{background:#FFF;border:1px solid transparent;background-clip:content-box}.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider--default input:checked+span:after{background:#28a745;border:1px solid transparent;background-clip:content-box}.checkbox-slider--a-rounded input+span:after,.checkbox-slider--a-rounded input+span:before{border-radius:.25rem}.checkbox-slider--a-rounded input+span:after,.checkbox-slider--a-rounded input:checked+span:after{border:2px solid transparent;background-clip:content-box}.checkbox-slider--a-rounded.checkbox-slider-sm input+span:after,.checkbox-slider--a-rounded.checkbox-slider-sm input+span:before{border-radius:.2rem}.checkbox-slider--a-rounded.checkbox-slider-md input+span:after,.checkbox-slider--a-rounded.checkbox-slider-md input+span:before{border-radius:.25rem}.checkbox-slider--a-rounded.checkbox-slider-lg input+span:after,.checkbox-slider--a-rounded.checkbox-slider-lg input+span:before{border-radius:.3rem}.checkbox-slider--a input+span{padding-left:60px}.checkbox-slider--a input+span:before{content:"";width:60px}.checkbox-slider--a input+span:after{width:40px;font-size:10px;color:#000;content:"Off";border:1px solid transparent;background-clip:content-box}.checkbox-slider--a input:checked+span:after{content:"On";color:#fff;background:#28a745;border:1px solid transparent;background-clip:content-box}.checkbox-slider--a.checkbox-slider-sm input+span{padding-left:30px}.checkbox-slider--a.checkbox-slider-sm input+span:before{width:30px}.checkbox-slider--a.checkbox-slider-sm input+span:after{width:20px;font-size:5px}.checkbox-slider--a.checkbox-slider-sm input:checked+span:after{margin-left:10px}.checkbox-slider--a.checkbox-slider-md input+span{padding-left:90px}.checkbox-slider--a.checkbox-slider-md input+span:before{width:90px}.checkbox-slider--a.checkbox-slider-md input+span:after{width:60px;font-size:15px}.checkbox-slider--a.checkbox-slider-md input:checked+span:after{margin-left:30px}.checkbox-slider--a.checkbox-slider-lg input+span{padding-left:120px}.checkbox-slider--b input+span,.checkbox-slider--b-flat input+span,.checkbox-slider--c input+span,.checkbox-slider--c-weight input+span{padding-left:40px}.checkbox-slider--a.checkbox-slider-lg input+span:before{width:120px}.checkbox-slider--a.checkbox-slider-lg input+span:after{width:80px;font-size:20px}.checkbox-slider--a.checkbox-slider-lg input:checked+span:after{margin-left:40px}.checkbox-slider--b input+span:before,.checkbox-slider--b-flat input+span:before{border-radius:20px;width:40px}.checkbox-slider--b input+span:after,.checkbox-slider--b-flat input+span:after{background:#FFF;content:"";width:20px;border:2px solid transparent;background-clip:padding-box;border-radius:20px}.checkbox-slider--b input:not(:checked)+span:after,.checkbox-slider--b-flat input:not(:checked)+span:after{animation:popOut ease-in .3s normal}.checkbox-slider--b input:checked+span:after,.checkbox-slider--b-flat input:checked+span:after{content:"";margin-left:20px;border:2px solid transparent;background-clip:padding-box;animation:popIn ease-in .3s normal}.checkbox-slider--b input:checked+span:before,.checkbox-slider--b-flat input:checked+span:before{background:#28a745}.checkbox-slider--b.checkbox-slider-md input+span:after,.checkbox-slider--b.checkbox-slider-md input+span:before{border-radius:30px}.checkbox-slider--b.checkbox-slider-lg input+span:after,.checkbox-slider--b.checkbox-slider-lg input+span:before{border-radius:40px}.checkbox-slider--b-flat input+span:before{box-shadow:none}.checkbox-slider--c input+span:before,.checkbox-slider--c-weight input+span:before{height:2px!important;top:10px;box-shadow:none;width:40px;background:#adb5bd}.checkbox-slider--c input+span:after,.checkbox-slider--c-weight input+span:after{box-shadow:none;width:20px;border:2px solid #adb5bd;border-radius:20px}.checkbox-slider--a input:disabled+span:before,.checkbox-slider--a-rounded input:disabled+span:before,.checkbox-slider--b input:disabled+span:before,.checkbox-slider--b-flat input:disabled+span:before,.checkbox-slider--default input:disabled+span:before{box-shadow:0 0 0 #000}.checkbox-slider--c input:checked+span:after,.checkbox-slider--c-weight input:checked+span:after{background:#28a745;margin-left:20px;border:2px solid #28a745;animation:splashIn ease-in .3s normal}.checkbox-slider--c input:checked+span:before,.checkbox-slider--c-weight input:checked+span:before{background:#28a745}.checkbox-slider--b input:disabled:checked+span:before,.checkbox-slider--b-flat input:disabled:checked+span:before,.checkbox-slider--c input:disabled+span:before,.checkbox-slider--c input:disabled:checked+span:after,.checkbox-slider--c-weight input:disabled+span:before,.checkbox-slider--c-weight input:disabled:checked+span:after,.checkbox-slider--default input:disabled+span:after{background:#f8f9fa}.checkbox-slider--c.checkbox-slider-sm input+span:before{top:4px}.checkbox-slider--c.checkbox-slider-md input+span:before{top:14px}.checkbox-slider--c.checkbox-slider-md input+span:after{width:30px;border-radius:30px}.checkbox-slider--c.checkbox-slider-lg input+span:before{top:19px}.checkbox-slider--c.checkbox-slider-lg input+span:after{width:40px;border-radius:40px}.form-horizontal [class*=checkbox-slider--c].checkbox-slider-sm input+span:before{top:10px}.form-horizontal [class*=checkbox-slider--c].checkbox-slider-md input+span:before{top:20px}.form-horizontal [class*=checkbox-slider--c].checkbox-slider-lg input+span:before{top:25px}.checkbox-slider--c-weight input+span:before{height:1px!important}.checkbox-slider--c-weight input:checked+span:before{height:2px!important}.checkbox-slider--c-weight input:not(:checked)+span:after{transform:scale(.7);left:-6px}.checkbox-slider--default input:disabled+span{color:#f8f9fa}.checkbox-slider--a input:disabled+span:after,.checkbox-slider--a-rounded input:disabled+span:after{background:#f8f9fa;color:#FFF}.checkbox-slider--a input:disabled+span,.checkbox-slider--a-rounded input:disabled+span,.checkbox-slider--b input:disabled+span,.checkbox-slider--b-flat input:disabled+span,.checkbox-slider--c input:disabled+span,.checkbox-slider--c-weight input:disabled+span{color:#f8f9fa}.checkbox-slider--b input:disabled+span:after,.checkbox-slider--b-flat input:disabled+span:after{border:2px solid transparent;border-radius:40px}.checkbox-slider--c input:disabled+span:after,.checkbox-slider--c-weight input:disabled+span:after{border-color:#f8f9fa}input:checked+.indicator-primary{color:#007bff}input:checked+.indicator-success{color:#28a745}input:checked+.indicator-info{color:#17a2b8}input:checked+.indicator-warning{color:#ffc107}input:checked+.indicator-danger{color:#dc3545}.checkbox-slider-sm{line-height:10px}.checkbox-slider-sm input+span{padding-left:20px}.checkbox-slider-sm input+span:before{width:20px}.checkbox-slider-sm input+span:after,.checkbox-slider-sm input+span:before{height:10px;line-height:10px}.checkbox-slider-sm input+span:after{width:10px;vertical-align:middle}.checkbox-slider-sm input:checked+span:after{margin-left:10px}.checkbox-slider-md{line-height:30px}.checkbox-slider-md input+span{padding-left:60px}.checkbox-slider-md input+span:before{width:60px}.checkbox-slider-md input+span:after,.checkbox-slider-md input+span:before{height:30px;line-height:30px}.checkbox-slider-md input+span:after{width:30px;vertical-align:middle}.checkbox-slider-md input:checked+span:after{margin-left:30px}.checkbox-slider-lg{line-height:40px}.checkbox-slider-lg input+span{padding-left:80px}.checkbox-slider-lg input+span:before{width:80px}.checkbox-slider-lg input+span:after,.checkbox-slider-lg input+span:before{height:40px;line-height:40px}.checkbox-slider-lg input+span:after{width:40px;vertical-align:middle}.checkbox-slider-lg input:checked+span:after{margin-left:40px}.checkbox-slider-primary.checkbox-slider--a input:checked+span:after,.checkbox-slider-primary.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-primary.checkbox-slider--c input:checked+span:after,.checkbox-slider-primary.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-primary.checkbox-slider--default input:checked+span:after{background:#007bff;background-clip:content-box}.checkbox-slider-primary.checkbox-slider--c input:checked+span:after,.checkbox-slider-primary.checkbox-slider--c-weight input:checked+span:after{border-color:#007bff}.checkbox-slider-primary.checkbox-slider--b input:checked+span:before,.checkbox-slider-primary.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-primary.checkbox-slider--c input:checked+span:before,.checkbox-slider-primary.checkbox-slider--c-weight input:checked+span:before{background:#007bff}.checkbox-slider-info.checkbox-slider--a input:checked+span:after,.checkbox-slider-info.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-info.checkbox-slider--c input:checked+span:after,.checkbox-slider-info.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-info.checkbox-slider--default input:checked+span:after{background:#17a2b8;background-clip:content-box}.checkbox-slider-info.checkbox-slider--c input:checked+span:after,.checkbox-slider-info.checkbox-slider--c-weight input:checked+span:after{border-color:#17a2b8}.checkbox-slider-info.checkbox-slider--b input:checked+span:before,.checkbox-slider-info.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-info.checkbox-slider--c input:checked+span:before,.checkbox-slider-info.checkbox-slider--c-weight input:checked+span:before{background:#17a2b8}.checkbox-slider-warning.checkbox-slider--a input:checked+span:after,.checkbox-slider-warning.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-warning.checkbox-slider--c input:checked+span:after,.checkbox-slider-warning.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-warning.checkbox-slider--default input:checked+span:after{background:#ffc107;background-clip:content-box}.checkbox-slider-warning.checkbox-slider--c input:checked+span:after,.checkbox-slider-warning.checkbox-slider--c-weight input:checked+span:after{border-color:#ffc107}.checkbox-slider-warning.checkbox-slider--b input:checked+span:before,.checkbox-slider-warning.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-warning.checkbox-slider--c input:checked+span:before,.checkbox-slider-warning.checkbox-slider--c-weight input:checked+span:before{background:#ffc107}.checkbox-slider-danger.checkbox-slider--a input:checked+span:after,.checkbox-slider-danger.checkbox-slider--a-rounded input:checked+span:after,.checkbox-slider-danger.checkbox-slider--c input:checked+span:after,.checkbox-slider-danger.checkbox-slider--c-weight input:checked+span:after,.checkbox-slider-danger.checkbox-slider--default input:checked+span:after{background:#dc3545;background-clip:content-box}.checkbox-slider-danger.checkbox-slider--c input:checked+span:after,.checkbox-slider-danger.checkbox-slider--c-weight input:checked+span:after{border-color:#dc3545}.checkbox-slider-danger.checkbox-slider--b input:checked+span:before,.checkbox-slider-danger.checkbox-slider--b-flat input:checked+span:before,.checkbox-slider-danger.checkbox-slider--c input:checked+span:before,.checkbox-slider-danger.checkbox-slider--c-weight input:checked+span:before{background:#dc3545} \ No newline at end of file diff --git a/dist/titatoggle-dist.css b/dist/titatoggle-dist.css index 9538b7e..fc00380 100755 --- a/dist/titatoggle-dist.css +++ b/dist/titatoggle-dist.css @@ -6,1166 +6,520 @@ Animation *******************************************************/ @keyframes popIn { 0% { - transform: scale(1, 1); - } + transform: scale(1, 1); } 25% { - transform: scale(1.2, 1); - } + transform: scale(1.2, 1); } 50% { - transform: scale(1.4, 1); - } + transform: scale(1.4, 1); } 100% { - transform: scale(1, 1); - } -} + transform: scale(1, 1); } } + @keyframes popOut { 0% { - transform: scale(1, 1); - } + transform: scale(1, 1); } 25% { - transform: scale(1.2, 1); - } + transform: scale(1.2, 1); } 50% { - transform: scale(1.4, 1); - } + transform: scale(1.4, 1); } 100% { - transform: scale(1, 1); - } -} + transform: scale(1, 1); } } + @keyframes splashIn { 0% { transform: scale(1); - opacity: 1; - } + opacity: 1; } 25% { transform: scale(1.1); - opacity: 0.8; - } + opacity: .8; } 50% { transform: scale(1.1); - opacity: .9; - } + opacity: .9; } 100% { transform: scale(1); - opacity: 1; - } -} + opacity: 1; } } + @keyframes splashOut { 0% { transform: scale(1); - opacity: 1; - } + opacity: 1; } 25% { transform: scale(1); - opacity: 0.8; - } + opacity: .8; } 50% { transform: scale(1); - opacity: .9; - } + opacity: .9; } 100% { transform: scale(0.5); - opacity: 1; - } -} + opacity: 1; } } + /******************************************************* Main Slider basics *******************************************************/ +.checkbox-slider, .checkbox-slider--default, .checkbox-slider--a-rounded, .checkbox-slider--a, .checkbox-slider--b, .checkbox-slider--b-flat, .checkbox-slider--c, .checkbox-slider--c-weight, .checkbox-toggle { - position: relative; -} -.checkbox-toggle input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-toggle input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-toggle input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-toggle input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-toggle input + span > h4 { - display: inline; -} + position: relative; } + .checkbox-slider input[type="checkbox"], .checkbox-slider--default input[type="checkbox"], .checkbox-slider--a-rounded input[type="checkbox"], .checkbox-slider--a input[type="checkbox"], .checkbox-slider--b input[type="checkbox"], .checkbox-slider--b-flat input[type="checkbox"], .checkbox-slider--c input[type="checkbox"], .checkbox-slider--c-weight input[type="checkbox"], + .checkbox-toggle input[type="checkbox"] { + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 0%; + height: 0%; + margin: 0 0; + cursor: pointer; + opacity: 0; } + .checkbox-slider input[type="checkbox"]:focus + *:before, .checkbox-slider--default input[type="checkbox"]:focus + *:before, .checkbox-slider--a-rounded input[type="checkbox"]:focus + *:before, .checkbox-slider--a input[type="checkbox"]:focus + *:before, .checkbox-slider--b input[type="checkbox"]:focus + *:before, .checkbox-slider--b-flat input[type="checkbox"]:focus + *:before, .checkbox-slider--c input[type="checkbox"]:focus + *:before, .checkbox-slider--c-weight input[type="checkbox"]:focus + *:before, + .checkbox-toggle input[type="checkbox"]:focus + *:before { + outline: solid #80bdff 2px; } + .checkbox-slider input + span, .checkbox-slider--default input + span, .checkbox-slider--a-rounded input + span, .checkbox-slider--a input + span, .checkbox-slider--b input + span, .checkbox-slider--b-flat input + span, .checkbox-slider--c input + span, .checkbox-slider--c-weight input + span, + .checkbox-toggle input + span { + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .checkbox-slider input + span:before, .checkbox-slider--default input + span:before, .checkbox-slider--a-rounded input + span:before, .checkbox-slider--a input + span:before, .checkbox-slider--b input + span:before, .checkbox-slider--b-flat input + span:before, .checkbox-slider--c input + span:before, .checkbox-slider--c-weight input + span:before, + .checkbox-toggle input + span:before { + position: absolute; + left: 0px; + display: inline-block; } + .checkbox-slider input + span > h4, .checkbox-slider--default input + span > h4, .checkbox-slider--a-rounded input + span > h4, .checkbox-slider--a input + span > h4, .checkbox-slider--b input + span > h4, .checkbox-slider--b-flat input + span > h4, .checkbox-slider--c input + span > h4, .checkbox-slider--c-weight input + span > h4, + .checkbox-toggle input + span > h4 { + display: inline; } + .form-horizontal [class^='checkbox'] input + span:after { - top: 7px; -} + top: 7px; } + /******************************************************* Main Slider *******************************************************/ -.checkbox-slider { - position: relative; -} -.checkbox-slider input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-slider input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider input + span > h4 { - display: inline; -} -.checkbox-slider input + span { - padding-left: 40px; -} -.checkbox-slider input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider input:checked + span:after { +.checkbox-slider input + span, .checkbox-slider--default input + span, .checkbox-slider--a-rounded input + span, .checkbox-slider--a input + span, .checkbox-slider--b input + span, .checkbox-slider--b-flat input + span, .checkbox-slider--c input + span, .checkbox-slider--c-weight input + span { + padding-left: 40px; } + .checkbox-slider input + span:before, .checkbox-slider--default input + span:before, .checkbox-slider--a-rounded input + span:before, .checkbox-slider--a input + span:before, .checkbox-slider--b input + span:before, .checkbox-slider--b-flat input + span:before, .checkbox-slider--c input + span:before, .checkbox-slider--c-weight input + span:before { + content: ""; + height: 20px; + width: 40px; + background: rgba(100, 100, 100, 0.2); + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); + transition: background .2s ease-out; } + .checkbox-slider input + span:after, .checkbox-slider--default input + span:after, .checkbox-slider--a-rounded input + span:after, .checkbox-slider--a input + span:after, .checkbox-slider--b input + span:after, .checkbox-slider--b-flat input + span:after, .checkbox-slider--c input + span:after, .checkbox-slider--c-weight input + span:after { + width: 20px; + height: 20px; + position: absolute; + left: 0px; + top: 0; + display: block; + background: #FFF; + transition: margin-left 0.1s ease-in-out; + text-align: center; + font-weight: bold; + content: ""; } + +.checkbox-slider input:checked + span:after, .checkbox-slider--default input:checked + span:after, .checkbox-slider--a-rounded input:checked + span:after, .checkbox-slider--a input:checked + span:after, .checkbox-slider--b input:checked + span:after, .checkbox-slider--b-flat input:checked + span:after, .checkbox-slider--c input:checked + span:after, .checkbox-slider--c-weight input:checked + span:after { margin-left: 20px; - content: ""; -} -.checkbox-slider input:checked + span:before { - transition: background 0.2s ease-in; -} + content: ""; } + +.checkbox-slider input:checked + span:before, .checkbox-slider--default input:checked + span:before, .checkbox-slider--a-rounded input:checked + span:before, .checkbox-slider--a input:checked + span:before, .checkbox-slider--b input:checked + span:before, .checkbox-slider--b-flat input:checked + span:before, .checkbox-slider--c input:checked + span:before, .checkbox-slider--c-weight input:checked + span:before { + transition: background .2s ease-in; } + /******************************************************* Slider default *******************************************************/ -.checkbox-slider--default { - position: relative; -} -.checkbox-slider--default input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider--default input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider--default input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-slider--default input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider--default input + span > h4 { - display: inline; -} -.checkbox-slider--default input + span { - padding-left: 40px; -} -.checkbox-slider--default input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider--default input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider--default input:checked + span:after { - margin-left: 20px; - content: ""; -} -.checkbox-slider--default input:checked + span:before { - transition: background 0.2s ease-in; -} -.checkbox-slider--default input + span:after { +.checkbox-slider--default input + span:after, .checkbox-slider--a-rounded input + span:after { background: #FFF; border: solid transparent 1px; - background-clip: content-box; -} -.checkbox-slider--default input:checked + span:after { - background: #5cb85c; + background-clip: content-box; } + +.checkbox-slider--default input:checked + span:after, .checkbox-slider--a-rounded input:checked + span:after { + background: #28a745; border: solid transparent 1px; - background-clip: content-box; -} + background-clip: content-box; } + /******************************************************* Slider default rounded *******************************************************/ -.checkbox-slider--a-rounded { - position: relative; -} -.checkbox-slider--a-rounded input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider--a-rounded input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider--a-rounded input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-slider--a-rounded input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider--a-rounded input + span > h4 { - display: inline; -} -.checkbox-slider--a-rounded input + span { - padding-left: 40px; -} -.checkbox-slider--a-rounded input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider--a-rounded input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider--a-rounded input:checked + span:after { - margin-left: 20px; - content: ""; -} -.checkbox-slider--a-rounded input:checked + span:before { - transition: background 0.2s ease-in; -} -.checkbox-slider--a-rounded input + span:after { - background: #FFF; - border: solid transparent 1px; - background-clip: content-box; -} -.checkbox-slider--a-rounded input:checked + span:after { - background: #5cb85c; - border: solid transparent 1px; - background-clip: content-box; -} .checkbox-slider--a-rounded input + span:after, .checkbox-slider--a-rounded input + span:before { - border-radius: 4px; -} + border-radius: 0.25rem; } + .checkbox-slider--a-rounded input + span:after, .checkbox-slider--a-rounded input:checked + span:after { border: solid transparent 2px; - background-clip: content-box; -} + background-clip: content-box; } + /******************************************************* Slider default rounded Sizes *******************************************************/ .checkbox-slider--a-rounded.checkbox-slider-sm input + span:before, .checkbox-slider--a-rounded.checkbox-slider-sm input + span:after { - border-radius: 3px; -} + border-radius: 0.2rem; } + .checkbox-slider--a-rounded.checkbox-slider-md input + span:before, .checkbox-slider--a-rounded.checkbox-slider-md input + span:after { - border-radius: 4px; -} + border-radius: 0.25rem; } + .checkbox-slider--a-rounded.checkbox-slider-lg input + span:before, .checkbox-slider--a-rounded.checkbox-slider-lg input + span:after { - border-radius: 6px; -} + border-radius: 0.3rem; } + /******************************************************* Slider A *******************************************************/ -.checkbox-slider--a { - position: relative; -} -.checkbox-slider--a input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider--a input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider--a input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-slider--a input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider--a input + span > h4 { - display: inline; -} -.checkbox-slider--a input + span { - padding-left: 40px; -} -.checkbox-slider--a input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider--a input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider--a input:checked + span:after { - margin-left: 20px; - content: ""; -} -.checkbox-slider--a input:checked + span:before { - transition: background 0.2s ease-in; -} .checkbox-slider--a input + span { - padding-left: 60px; -} + padding-left: 60px; } + .checkbox-slider--a input + span:before { content: ""; - width: 60px; -} + width: 60px; } + .checkbox-slider--a input + span:after { width: 40px; font-size: 10px; color: #000; content: "Off"; border: solid transparent 1px; - background-clip: content-box; -} + background-clip: content-box; } + .checkbox-slider--a input:checked + span:after { content: "On"; color: #fff; - background: #5cb85c; + background: #28a745; border: solid transparent 1px; - background-clip: content-box; -} + background-clip: content-box; } + /******************************************************* Slider A SIZES *******************************************************/ .checkbox-slider--a.checkbox-slider-sm input + span { - padding-left: 30px; -} + padding-left: 30px; } + .checkbox-slider--a.checkbox-slider-sm input + span:before { - width: 30px; -} + width: 30px; } + .checkbox-slider--a.checkbox-slider-sm input + span:after { width: 20px; - font-size: 5px; -} + font-size: 5px; } + .checkbox-slider--a.checkbox-slider-sm input:checked + span:after { - margin-left: 10px; -} + margin-left: 10px; } + .checkbox-slider--a.checkbox-slider-md input + span { - padding-left: 90px; -} + padding-left: 90px; } + .checkbox-slider--a.checkbox-slider-md input + span:before { - width: 90px; -} + width: 90px; } + .checkbox-slider--a.checkbox-slider-md input + span:after { width: 60px; - font-size: 15px; -} + font-size: 15px; } + .checkbox-slider--a.checkbox-slider-md input:checked + span:after { - margin-left: 30px; -} + margin-left: 30px; } + .checkbox-slider--a.checkbox-slider-lg input + span { - padding-left: 120px; -} + padding-left: 120px; } + .checkbox-slider--a.checkbox-slider-lg input + span:before { - width: 120px; -} + width: 120px; } + .checkbox-slider--a.checkbox-slider-lg input + span:after { width: 80px; - font-size: 20px; -} + font-size: 20px; } + .checkbox-slider--a.checkbox-slider-lg input:checked + span:after { - margin-left: 40px; -} + margin-left: 40px; } + /******************************************************* Slider B *******************************************************/ -.checkbox-slider--b { - position: relative; -} -.checkbox-slider--b input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider--b input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider--b input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-slider--b input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider--b input + span > h4 { - display: inline; -} -.checkbox-slider--b input + span { - padding-left: 40px; -} -.checkbox-slider--b input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider--b input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider--b input:checked + span:after { - margin-left: 20px; - content: ""; -} -.checkbox-slider--b input:checked + span:before { - transition: background 0.2s ease-in; -} -.checkbox-slider--b input + span { - padding-left: 40px; -} -.checkbox-slider--b input + span:before { +.checkbox-slider--b input + span, .checkbox-slider--b-flat input + span { + padding-left: 40px; } + +.checkbox-slider--b input + span:before, .checkbox-slider--b-flat input + span:before { border-radius: 20px; - width: 40px; -} -.checkbox-slider--b input + span:after { + width: 40px; } + +.checkbox-slider--b input + span:after, .checkbox-slider--b-flat input + span:after { background: #FFF; content: ""; width: 20px; border: solid transparent 2px; background-clip: padding-box; - border-radius: 20px; -} -.checkbox-slider--b input:not(:checked) + span:after { - animation: popOut ease-in 0.3s normal; -} -.checkbox-slider--b input:checked + span:after { + border-radius: 20px; } + +.checkbox-slider--b input:not(:checked) + span:after, .checkbox-slider--b-flat input:not(:checked) + span:after { + animation: popOut ease-in .3s normal; } + +.checkbox-slider--b input:checked + span:after, .checkbox-slider--b-flat input:checked + span:after { content: ""; margin-left: 20px; border: solid transparent 2px; background-clip: padding-box; - animation: popIn ease-in 0.3s normal; -} -.checkbox-slider--b input:checked + span:before { - background: #5cb85c; -} + animation: popIn ease-in .3s normal; } + +.checkbox-slider--b input:checked + span:before, .checkbox-slider--b-flat input:checked + span:before { + background: #28a745; } + /******************************************************* Slider B Sizes *******************************************************/ .checkbox-slider--b.checkbox-slider-md input + span:before { - border-radius: 30px; -} + border-radius: 30px; } + .checkbox-slider--b.checkbox-slider-md input + span:after { - border-radius: 30px; -} + border-radius: 30px; } + .checkbox-slider--b.checkbox-slider-lg input + span:before { - border-radius: 40px; -} + border-radius: 40px; } + .checkbox-slider--b.checkbox-slider-lg input + span:after { - border-radius: 40px; -} + border-radius: 40px; } + /******************************************************* Slider B-flat *******************************************************/ -.checkbox-slider--b-flat { - position: relative; -} -.checkbox-slider--b-flat input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider--b-flat input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider--b-flat input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} .checkbox-slider--b-flat input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider--b-flat input + span > h4 { - display: inline; -} -.checkbox-slider--b-flat input + span { - padding-left: 40px; -} -.checkbox-slider--b-flat input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider--b-flat input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider--b-flat input:checked + span:after { - margin-left: 20px; - content: ""; -} -.checkbox-slider--b-flat input:checked + span:before { - transition: background 0.2s ease-in; -} -.checkbox-slider--b-flat input + span { - padding-left: 40px; -} -.checkbox-slider--b-flat input + span:before { - border-radius: 20px; - width: 40px; -} -.checkbox-slider--b-flat input + span:after { - background: #FFF; - content: ""; - width: 20px; - border: solid transparent 2px; - background-clip: padding-box; - border-radius: 20px; -} -.checkbox-slider--b-flat input:not(:checked) + span:after { - animation: popOut ease-in 0.3s normal; -} -.checkbox-slider--b-flat input:checked + span:after { - content: ""; - margin-left: 20px; - border: solid transparent 2px; - background-clip: padding-box; - animation: popIn ease-in 0.3s normal; -} -.checkbox-slider--b-flat input:checked + span:before { - background: #5cb85c; -} -.checkbox-slider--b-flat.checkbox-slider-md input + span:before { - border-radius: 30px; -} -.checkbox-slider--b-flat.checkbox-slider-md input + span:after { - border-radius: 30px; -} -.checkbox-slider--b-flat.checkbox-slider-lg input + span:before { - border-radius: 40px; -} -.checkbox-slider--b-flat.checkbox-slider-lg input + span:after { - border-radius: 40px; -} -.checkbox-slider--b-flat input + span:before { - box-shadow: none; -} + box-shadow: none; } + /******************************************************* Slider C *******************************************************/ -.checkbox-slider--c { - position: relative; -} -.checkbox-slider--c input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider--c input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider--c input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-slider--c input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider--c input + span > h4 { - display: inline; -} -.checkbox-slider--c input + span { - padding-left: 40px; -} -.checkbox-slider--c input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider--c input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider--c input:checked + span:after { - margin-left: 20px; - content: ""; -} -.checkbox-slider--c input:checked + span:before { - transition: background 0.2s ease-in; -} -.checkbox-slider--c input + span { - padding-left: 40px; -} -.checkbox-slider--c input + span:before { +.checkbox-slider--c input + span, .checkbox-slider--c-weight input + span { + padding-left: 40px; } + +.checkbox-slider--c input + span:before, .checkbox-slider--c-weight input + span:before { height: 2px !important; top: 10px; box-shadow: none; width: 40px; - background: #555555; -} -.checkbox-slider--c input + span:after { + background: #adb5bd; } + +.checkbox-slider--c input + span:after, .checkbox-slider--c-weight input + span:after { box-shadow: none; width: 20px; - border: solid #555555 2px; - border-radius: 20px; -} -.checkbox-slider--c input:checked + span:after { - background: #5cb85c; + border: solid #adb5bd 2px; + border-radius: 20px; } + +.checkbox-slider--c input:checked + span:after, .checkbox-slider--c-weight input:checked + span:after { + background: #28a745; margin-left: 20px; - border: solid #5cb85c 2px; - animation: splashIn ease-in 0.3s normal; -} -.checkbox-slider--c input:checked + span:before { - background: #5cb85c; -} + border: solid #28a745 2px; + animation: splashIn ease-in .3s normal; } + +.checkbox-slider--c input:checked + span:before, .checkbox-slider--c-weight input:checked + span:before { + background: #28a745; } + /******************************************************* Slider C Sizes *******************************************************/ .checkbox-slider--c.checkbox-slider-sm input + span:before { - top: 4px; -} + top: 4px; } + .checkbox-slider--c.checkbox-slider-md input + span:before { - top: 14px; -} + top: 14px; } + .checkbox-slider--c.checkbox-slider-md input + span:after { width: 30px; - border-radius: 30px; -} + border-radius: 30px; } + .checkbox-slider--c.checkbox-slider-lg input + span:before { - top: 19px; -} + top: 19px; } + .checkbox-slider--c.checkbox-slider-lg input + span:after { width: 40px; - border-radius: 40px; -} + border-radius: 40px; } + .form-horizontal [class*='checkbox-slider--c'].checkbox-slider-sm input + span:before { - top: 10px; -} + top: 10px; } + .form-horizontal [class*='checkbox-slider--c'].checkbox-slider-md input + span:before { - top: 20px; -} + top: 20px; } + .form-horizontal [class*='checkbox-slider--c'].checkbox-slider-lg input + span:before { - top: 25px; -} + top: 25px; } + /******************************************************* Slider C-weight *******************************************************/ -.checkbox-slider--c-weight { - position: relative; -} -.checkbox-slider--c-weight input[type="checkbox"] { - display: block; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 0%; - height: 0%; - margin: 0 0; - cursor: pointer; - opacity: 0; -} -.checkbox-slider--c-weight input[type="checkbox"]:focus + *:before { - outline: solid #66afe9 2px; -} -.checkbox-slider--c-weight input + span { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkbox-slider--c-weight input + span:before { - position: absolute; - left: 0px; - display: inline-block; -} -.checkbox-slider--c-weight input + span > h4 { - display: inline; -} -.checkbox-slider--c-weight input + span { - padding-left: 40px; -} .checkbox-slider--c-weight input + span:before { - content: ""; - height: 20px; - width: 40px; - background: rgba(100, 100, 100, 0.2); - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8); - transition: background 0.2s ease-out; -} -.checkbox-slider--c-weight input + span:after { - width: 20px; - height: 20px; - position: absolute; - left: 0px; - top: 0; - display: block; - background: #FFF; - transition: margin-left 0.1s ease-in-out; - text-align: center; - font-weight: bold; - content: ""; -} -.checkbox-slider--c-weight input:checked + span:after { - margin-left: 20px; - content: ""; -} + height: 1px !important; } + .checkbox-slider--c-weight input:checked + span:before { - transition: background 0.2s ease-in; -} -.checkbox-slider--c-weight input + span { - padding-left: 40px; -} -.checkbox-slider--c-weight input + span:before { - height: 2px !important; - top: 10px; - box-shadow: none; - width: 40px; - background: #555555; -} -.checkbox-slider--c-weight input + span:after { - box-shadow: none; - width: 20px; - border: solid #555555 2px; - border-radius: 20px; -} -.checkbox-slider--c-weight input:checked + span:after { - background: #5cb85c; - margin-left: 20px; - border: solid #5cb85c 2px; - animation: splashIn ease-in 0.3s normal; -} -.checkbox-slider--c-weight input:checked + span:before { - background: #5cb85c; -} -.checkbox-slider--c-weight.checkbox-slider-sm input + span:before { - top: 4px; -} -.checkbox-slider--c-weight.checkbox-slider-md input + span:before { - top: 14px; -} -.checkbox-slider--c-weight.checkbox-slider-md input + span:after { - width: 30px; - border-radius: 30px; -} -.checkbox-slider--c-weight.checkbox-slider-lg input + span:before { - top: 19px; -} -.checkbox-slider--c-weight.checkbox-slider-lg input + span:after { - width: 40px; - border-radius: 40px; -} -.checkbox-slider--c-weight input + span:before { - height: 1px !important; -} -.checkbox-slider--c-weight input:checked + span:before { - height: 2px !important; -} + height: 2px !important; } + .checkbox-slider--c-weight input:not(:checked) + span:after { transform: scale(0.7); - left: -6px; -} + left: -6px; } + /****************************************************** State Disabled *******************************************************/ .checkbox-slider--default input:disabled + span:after { - background: #777777; -} + background: #f8f9fa; } + .checkbox-slider--default input:disabled + span:before { - box-shadow: 0 0 0 black; -} + box-shadow: 0 0 0 black; } + .checkbox-slider--default input:disabled + span { - color: #777777; -} + color: #f8f9fa; } + .checkbox-slider--a-rounded input:disabled + span:after, .checkbox-slider--a input:disabled + span:after { - background: #777777; - color: #FFF; -} + background: #f8f9fa; + color: #FFF; } + .checkbox-slider--a-rounded input:disabled + span:before, .checkbox-slider--a input:disabled + span:before { - box-shadow: 0 0 0 black; -} + box-shadow: 0 0 0 black; } + .checkbox-slider--a-rounded input:disabled + span, .checkbox-slider--a input:disabled + span { - color: #777777; -} + color: #f8f9fa; } + .checkbox-slider--b-flat input:disabled + span:after, .checkbox-slider--b input:disabled + span:after { border: solid transparent 2px; - border-radius: 40px; -} + border-radius: 40px; } + .checkbox-slider--b-flat input:disabled + span:before, .checkbox-slider--b input:disabled + span:before { - box-shadow: 0 0 0 black; -} + box-shadow: 0 0 0 black; } + .checkbox-slider--b-flat input:disabled + span, .checkbox-slider--b input:disabled + span { - color: #777777; -} + color: #f8f9fa; } + .checkbox-slider--b-flat input:disabled:checked + span:before, .checkbox-slider--b input:disabled:checked + span:before { - background: #777777; -} + background: #f8f9fa; } + .checkbox-slider--c-weight input:disabled:checked + span:after, .checkbox-slider--c input:disabled:checked + span:after { - background: #777777; -} + background: #f8f9fa; } + .checkbox-slider--c-weight input:disabled + span:after, .checkbox-slider--c input:disabled + span:after { - border-color: #777777; -} + border-color: #f8f9fa; } + .checkbox-slider--c-weight input:disabled + span:before, .checkbox-slider--c input:disabled + span:before { - background: #777777; -} + background: #f8f9fa; } + .checkbox-slider--c-weight input:disabled + span, .checkbox-slider--c input:disabled + span { - color: #777777; -} + color: #f8f9fa; } + /******************************************************* Indicators *******************************************************/ input:checked + .indicator-primary { - color: #337ab7; -} + color: #007bff; } + input:checked + .indicator-success { - color: #5cb85c; -} + color: #28a745; } + input:checked + .indicator-info { - color: #5bc0de; -} + color: #17a2b8; } + input:checked + .indicator-warning { - color: #f0ad4e; -} + color: #ffc107; } + input:checked + .indicator-danger { - color: #d9534f; -} + color: #dc3545; } + /******************************************************* Sizes *******************************************************/ .checkbox-slider-sm { - line-height: 10px; -} -.checkbox-slider-sm input + span { - padding-left: 20px; -} -.checkbox-slider-sm input + span:before { - width: 20px; -} -.checkbox-slider-sm input + span:after, -.checkbox-slider-sm input + span:before { - height: 10px; - line-height: 10px; -} -.checkbox-slider-sm input + span:after { - width: 10px; - vertical-align: middle; -} -.checkbox-slider-sm input:checked + span:after { - margin-left: 10px; -} + line-height: 10px; } + .checkbox-slider-sm input + span { + padding-left: 20px; } + .checkbox-slider-sm input + span:before { + width: 20px; } + .checkbox-slider-sm input + span:after, + .checkbox-slider-sm input + span:before { + height: 10px; + line-height: 10px; } + .checkbox-slider-sm input + span:after { + width: 10px; + vertical-align: middle; } + .checkbox-slider-sm input:checked + span:after { + margin-left: 10px; } + .checkbox-slider-md { - line-height: 30px; -} -.checkbox-slider-md input + span { - padding-left: 60px; -} -.checkbox-slider-md input + span:before { - width: 60px; -} -.checkbox-slider-md input + span:after, -.checkbox-slider-md input + span:before { - height: 30px; - line-height: 30px; -} -.checkbox-slider-md input + span:after { - width: 30px; - vertical-align: middle; -} -.checkbox-slider-md input:checked + span:after { - margin-left: 30px; -} + line-height: 30px; } + .checkbox-slider-md input + span { + padding-left: 60px; } + .checkbox-slider-md input + span:before { + width: 60px; } + .checkbox-slider-md input + span:after, + .checkbox-slider-md input + span:before { + height: 30px; + line-height: 30px; } + .checkbox-slider-md input + span:after { + width: 30px; + vertical-align: middle; } + .checkbox-slider-md input:checked + span:after { + margin-left: 30px; } + .checkbox-slider-lg { - line-height: 40px; -} -.checkbox-slider-lg input + span { - padding-left: 80px; -} -.checkbox-slider-lg input + span:before { - width: 80px; -} -.checkbox-slider-lg input + span:after, -.checkbox-slider-lg input + span:before { - height: 40px; - line-height: 40px; -} -.checkbox-slider-lg input + span:after { - width: 40px; - vertical-align: middle; -} -.checkbox-slider-lg input:checked + span:after { - margin-left: 40px; -} + line-height: 40px; } + .checkbox-slider-lg input + span { + padding-left: 80px; } + .checkbox-slider-lg input + span:before { + width: 80px; } + .checkbox-slider-lg input + span:after, + .checkbox-slider-lg input + span:before { + height: 40px; + line-height: 40px; } + .checkbox-slider-lg input + span:after { + width: 40px; + vertical-align: middle; } + .checkbox-slider-lg input:checked + span:after { + margin-left: 40px; } + /******************************************************* Variations *******************************************************/ -.checkbox-slider-primary.checkbox-slider--default input:checked + span:after, -.checkbox-slider-primary.checkbox-slider--a input:checked + span:after, -.checkbox-slider-primary.checkbox-slider--a-rounded input:checked + span:after, -.checkbox-slider-primary.checkbox-slider--c input:checked + span:after, -.checkbox-slider-primary.checkbox-slider--c-weight input:checked + span:after { - background: #337ab7; - background-clip: content-box; -} -.checkbox-slider-primary.checkbox-slider--c input:checked + span:after, -.checkbox-slider-primary.checkbox-slider--c-weight input:checked + span:after { - border-color: #337ab7; -} -.checkbox-slider-primary.checkbox-slider--b input:checked + span:before, -.checkbox-slider-primary.checkbox-slider--b-flat input:checked + span:before, -.checkbox-slider-primary.checkbox-slider--c input:checked + span:before, -.checkbox-slider-primary.checkbox-slider--c-weight input:checked + span:before { - background: #337ab7; -} -.checkbox-slider-info.checkbox-slider--default input:checked + span:after, -.checkbox-slider-info.checkbox-slider--a input:checked + span:after, -.checkbox-slider-info.checkbox-slider--a-rounded input:checked + span:after, -.checkbox-slider-info.checkbox-slider--c input:checked + span:after, -.checkbox-slider-info.checkbox-slider--c-weight input:checked + span:after { - background: #5bc0de; - background-clip: content-box; -} -.checkbox-slider-info.checkbox-slider--c input:checked + span:after, -.checkbox-slider-info.checkbox-slider--c-weight input:checked + span:after { - border-color: #5bc0de; -} -.checkbox-slider-info.checkbox-slider--b input:checked + span:before, -.checkbox-slider-info.checkbox-slider--b-flat input:checked + span:before, -.checkbox-slider-info.checkbox-slider--c input:checked + span:before, -.checkbox-slider-info.checkbox-slider--c-weight input:checked + span:before { - background: #5bc0de; -} -.checkbox-slider-warning.checkbox-slider--default input:checked + span:after, -.checkbox-slider-warning.checkbox-slider--a input:checked + span:after, -.checkbox-slider-warning.checkbox-slider--a-rounded input:checked + span:after, -.checkbox-slider-warning.checkbox-slider--c input:checked + span:after, -.checkbox-slider-warning.checkbox-slider--c-weight input:checked + span:after { - background: #f0ad4e; - background-clip: content-box; -} -.checkbox-slider-warning.checkbox-slider--c input:checked + span:after, -.checkbox-slider-warning.checkbox-slider--c-weight input:checked + span:after { - border-color: #f0ad4e; -} -.checkbox-slider-warning.checkbox-slider--b input:checked + span:before, -.checkbox-slider-warning.checkbox-slider--b-flat input:checked + span:before, -.checkbox-slider-warning.checkbox-slider--c input:checked + span:before, -.checkbox-slider-warning.checkbox-slider--c-weight input:checked + span:before { - background: #f0ad4e; -} -.checkbox-slider-danger.checkbox-slider--default input:checked + span:after, -.checkbox-slider-danger.checkbox-slider--a input:checked + span:after, -.checkbox-slider-danger.checkbox-slider--a-rounded input:checked + span:after, -.checkbox-slider-danger.checkbox-slider--c input:checked + span:after, -.checkbox-slider-danger.checkbox-slider--c-weight input:checked + span:after { - background: #d9534f; - background-clip: content-box; -} -.checkbox-slider-danger.checkbox-slider--c input:checked + span:after, -.checkbox-slider-danger.checkbox-slider--c-weight input:checked + span:after { - border-color: #d9534f; -} -.checkbox-slider-danger.checkbox-slider--b input:checked + span:before, -.checkbox-slider-danger.checkbox-slider--b-flat input:checked + span:before, -.checkbox-slider-danger.checkbox-slider--c input:checked + span:before, -.checkbox-slider-danger.checkbox-slider--c-weight input:checked + span:before { - background: #d9534f; -} +.checkbox-slider-primary.checkbox-slider--default input:checked + span:after, .checkbox-slider-primary.checkbox-slider--a input:checked + span:after, .checkbox-slider-primary.checkbox-slider--a-rounded input:checked + span:after, .checkbox-slider-primary.checkbox-slider--c input:checked + span:after, .checkbox-slider-primary.checkbox-slider--c-weight input:checked + span:after { + background: #007bff; + background-clip: content-box; } + +.checkbox-slider-primary.checkbox-slider--c input:checked + span:after, .checkbox-slider-primary.checkbox-slider--c-weight input:checked + span:after { + border-color: #007bff; } + +.checkbox-slider-primary.checkbox-slider--b input:checked + span:before, .checkbox-slider-primary.checkbox-slider--b-flat input:checked + span:before, .checkbox-slider-primary.checkbox-slider--c input:checked + span:before, .checkbox-slider-primary.checkbox-slider--c-weight input:checked + span:before { + background: #007bff; } + +.checkbox-slider-info.checkbox-slider--default input:checked + span:after, .checkbox-slider-info.checkbox-slider--a input:checked + span:after, .checkbox-slider-info.checkbox-slider--a-rounded input:checked + span:after, .checkbox-slider-info.checkbox-slider--c input:checked + span:after, .checkbox-slider-info.checkbox-slider--c-weight input:checked + span:after { + background: #17a2b8; + background-clip: content-box; } + +.checkbox-slider-info.checkbox-slider--c input:checked + span:after, .checkbox-slider-info.checkbox-slider--c-weight input:checked + span:after { + border-color: #17a2b8; } + +.checkbox-slider-info.checkbox-slider--b input:checked + span:before, .checkbox-slider-info.checkbox-slider--b-flat input:checked + span:before, .checkbox-slider-info.checkbox-slider--c input:checked + span:before, .checkbox-slider-info.checkbox-slider--c-weight input:checked + span:before { + background: #17a2b8; } + +.checkbox-slider-warning.checkbox-slider--default input:checked + span:after, .checkbox-slider-warning.checkbox-slider--a input:checked + span:after, .checkbox-slider-warning.checkbox-slider--a-rounded input:checked + span:after, .checkbox-slider-warning.checkbox-slider--c input:checked + span:after, .checkbox-slider-warning.checkbox-slider--c-weight input:checked + span:after { + background: #ffc107; + background-clip: content-box; } + +.checkbox-slider-warning.checkbox-slider--c input:checked + span:after, .checkbox-slider-warning.checkbox-slider--c-weight input:checked + span:after { + border-color: #ffc107; } + +.checkbox-slider-warning.checkbox-slider--b input:checked + span:before, .checkbox-slider-warning.checkbox-slider--b-flat input:checked + span:before, .checkbox-slider-warning.checkbox-slider--c input:checked + span:before, .checkbox-slider-warning.checkbox-slider--c-weight input:checked + span:before { + background: #ffc107; } + +.checkbox-slider-danger.checkbox-slider--default input:checked + span:after, .checkbox-slider-danger.checkbox-slider--a input:checked + span:after, .checkbox-slider-danger.checkbox-slider--a-rounded input:checked + span:after, .checkbox-slider-danger.checkbox-slider--c input:checked + span:after, .checkbox-slider-danger.checkbox-slider--c-weight input:checked + span:after { + background: #dc3545; + background-clip: content-box; } + +.checkbox-slider-danger.checkbox-slider--c input:checked + span:after, .checkbox-slider-danger.checkbox-slider--c-weight input:checked + span:after { + border-color: #dc3545; } + +.checkbox-slider-danger.checkbox-slider--b input:checked + span:before, .checkbox-slider-danger.checkbox-slider--b-flat input:checked + span:before, .checkbox-slider-danger.checkbox-slider--c input:checked + span:before, .checkbox-slider-danger.checkbox-slider--c-weight input:checked + span:before { + background: #dc3545; } diff --git a/less/_titatoggle.less b/dist/titatoggle.scss similarity index 68% rename from less/_titatoggle.less rename to dist/titatoggle.scss index e9ef75e..8fe796b 100644 --- a/less/_titatoggle.less +++ b/dist/titatoggle.scss @@ -1,20 +1,20 @@ /******************************************************* Variables *******************************************************/ -@white: #FFF; +$white: #FFF; // Sizes -@scrubber-width-default: 20px; -@scrubber-width-sm: 10px; -@scrubber-width-md: 30px; -@scrubber-width-lg: 40px; +$scrubber-width-default: 20px; +$scrubber-width-sm: 10px; +$scrubber-width-md: 30px; +$scrubber-width-lg: 40px; // Scrubber text // - off -@slider-text-unchecked: "Off"; -@slider-text-unchecked-color: #000; +$slider-text-unchecked: "Off"; +$slider-text-unchecked-color: #000; // - on -@slider-text-checked: "On"; -@slider-text-checked-color: #fff; +$slider-text-checked: "On"; +$slider-text-checked-color: #fff; /******************************************************* Animation @@ -52,9 +52,10 @@ Animation Main Slider basics *******************************************************/ +%checkbox-toggle, .checkbox-toggle { position: relative; - + input[type="checkbox"] { display: block; position: absolute; @@ -67,24 +68,24 @@ Main Slider basics margin: 0 0; cursor: pointer; opacity: 0; - - + + &:focus + *:before { - outline:solid @input-border-focus 2px; + outline:solid $input-focus-border-color 2px; } } - + input + span { cursor: pointer; user-select: none; - + &:before { position: absolute; left: 0px; display: inline-block; } - + > h4 { display: inline; } @@ -101,31 +102,31 @@ Main Slider basics Main Slider *******************************************************/ -.checkbox-slider { - .checkbox-toggle; - +%checkbox-slider { + @extend %checkbox-toggle; + input { - + + span { - padding-left: @scrubber-width-default * 2; - + padding-left: $scrubber-width-default * 2; + &:before { content: ""; - height: @scrubber-width-default; - width: @scrubber-width-default * 2; + height: $scrubber-width-default; + width: $scrubber-width-default * 2; background: rgba(100, 100, 100, .2); box-shadow: inset 0 0 5px rgba(0, 0, 0, .8); transition: background .2s ease-out; } // Off State &:after { - width: @scrubber-width-default; - height: @scrubber-width-default; + width: $scrubber-width-default; + height: $scrubber-width-default; position: absolute; left: 0px; top: 0; display: block; - background: @white; + background: $white; transition: margin-left 0.1s ease-in-out; text-align: center; font-weight: bold; @@ -134,36 +135,46 @@ Main Slider } // On state &:checked + span:after { - margin-left: @scrubber-width-default; + margin-left: $scrubber-width-default; content: ""; } &:checked + span:before { transition: background .2s ease-in; } - + } - + +} + + +.checkbox-slider { + @extend %checkbox-toggle; + @extend %checkbox-slider; } /******************************************************* Slider default *******************************************************/ -.checkbox-slider--default { - .checkbox-slider; - +%checkbox-slider--default { + @extend %checkbox-slider; + input + span:after { - background: @white; + background: $white; border: solid transparent 1px; background-clip: content-box; } - + input:checked + span:after { - background: @brand-success; + background: $success; border: solid transparent 1px; background-clip: content-box; } - + +} + +.checkbox-slider--default { + @extend %checkbox-slider--default; } /******************************************************* @@ -171,13 +182,13 @@ Slider default rounded *******************************************************/ .checkbox-slider--a-rounded { - .checkbox-slider--default; - + @extend %checkbox-slider--default; + input + span:after, input + span:before { - border-radius: @border-radius-base; + border-radius: $border-radius; } - + input + span:after, input:checked + span:after { border: solid transparent 2px; @@ -190,31 +201,31 @@ Slider default rounded Sizes *******************************************************/ .checkbox-slider--a-rounded { - + &.checkbox-slider-sm { - + input + span:before, input + span:after { - border-radius: @border-radius-small; + border-radius: $border-radius-sm; } } - + &.checkbox-slider-md { - + input + span:before, input + span:after { - border-radius: @border-radius-base; + border-radius: $border-radius; } } - + &.checkbox-slider-lg { - + input + span:before, input + span:after { - border-radius: @border-radius-large; + border-radius: $border-radius-lg; } } - + } /******************************************************* @@ -222,31 +233,31 @@ Slider A *******************************************************/ .checkbox-slider--a { - .checkbox-slider; - + @extend %checkbox-slider; + input { + span { - padding-left: @scrubber-width-default * 3; + padding-left: $scrubber-width-default * 3; } - + + span:before { content: ""; - width: @scrubber-width-default * 3; + width: $scrubber-width-default * 3; } - + + span:after { - width: @scrubber-width-default * 2; - font-size: @scrubber-width-default / 2; - color: @slider-text-unchecked-color; - content: @slider-text-unchecked; + width: $scrubber-width-default * 2; + font-size: $scrubber-width-default / 2; + color: $slider-text-unchecked-color; + content: $slider-text-unchecked; border: solid transparent 1px; background-clip: content-box; } - + &:checked + span:after { - content: @slider-text-checked; - color: @slider-text-checked-color; - background: @brand-success; + content: $slider-text-checked; + color: $slider-text-checked-color; + background: $success; border: solid transparent 1px; background-clip: content-box; } @@ -258,62 +269,62 @@ Slider A SIZES *******************************************************/ .checkbox-slider--a { - + &.checkbox-slider-sm { - + input + span { - padding-left: @scrubber-width-sm * 3; + padding-left: $scrubber-width-sm * 3; } - + input + span:before { - width: @scrubber-width-sm * 3; + width: $scrubber-width-sm * 3; } - + input + span:after { - width: @scrubber-width-sm * 2; - font-size: @scrubber-width-sm / 2; + width: $scrubber-width-sm * 2; + font-size: $scrubber-width-sm / 2; } input:checked + span:after { - margin-left: @scrubber-width-sm; + margin-left: $scrubber-width-sm; } } - + &.checkbox-slider-md { - + input + span { - padding-left: @scrubber-width-md * 3; + padding-left: $scrubber-width-md * 3; } - + input + span:before { - width: @scrubber-width-md * 3; + width: $scrubber-width-md * 3; } - + input + span:after { - width: @scrubber-width-md * 2; - font-size: @scrubber-width-md / 2; + width: $scrubber-width-md * 2; + font-size: $scrubber-width-md / 2; } input:checked + span:after { - margin-left: @scrubber-width-md; + margin-left: $scrubber-width-md; } } - + &.checkbox-slider-lg { - + input + span { - padding-left: @scrubber-width-lg * 3;; + padding-left: $scrubber-width-lg * 3;; } - + input + span:before { - width: @scrubber-width-lg * 3; + width: $scrubber-width-lg * 3; } - + input + span:after { - width: @scrubber-width-lg * 2; - font-size: @scrubber-width-lg / 2; + width: $scrubber-width-lg * 2; + font-size: $scrubber-width-lg / 2; } - + input:checked + span:after { - margin-left: @scrubber-width-lg; + margin-left: $scrubber-width-lg; } } } @@ -322,44 +333,48 @@ Slider A SIZES Slider B *******************************************************/ -.checkbox-slider--b { - .checkbox-slider; - +%checkbox-slider--b { + @extend %checkbox-slider; + input { - + + span { - padding-left: @scrubber-width-default * 2; + padding-left: $scrubber-width-default * 2; } - + + span:before { - border-radius: @scrubber-width-default; - width: @scrubber-width-default * 2; + border-radius: $scrubber-width-default; + width: $scrubber-width-default * 2; } - + + span:after { - background: @white; + background: $white; content: ""; - width: @scrubber-width-default; + width: $scrubber-width-default; border: solid transparent 2px; background-clip: padding-box; - border-radius: @scrubber-width-default; + border-radius: $scrubber-width-default; } &:not(:checked) + span:after { animation: popOut ease-in .3s normal; } &:checked + span:after { content: ""; - margin-left: @scrubber-width-default; + margin-left: $scrubber-width-default; border: solid transparent 2px; background-clip: padding-box; animation: popIn ease-in .3s normal; } - + &:checked + span:before { - background: @brand-success; + background: $success; } } - + +} + +.checkbox-slider--b { + @extend %checkbox-slider--b; } /******************************************************* @@ -367,29 +382,29 @@ Slider B Sizes *******************************************************/ .checkbox-slider--b { - + &.checkbox-slider-md { - + input + span:before { - border-radius: @scrubber-width-md; + border-radius: $scrubber-width-md; } - + input + span:after { - border-radius: @scrubber-width-md; + border-radius: $scrubber-width-md; } - + } - + &.checkbox-slider-lg { - + input + span:before { - border-radius: @scrubber-width-lg; + border-radius: $scrubber-width-lg; } - + input + span:after { - border-radius: @scrubber-width-lg; + border-radius: $scrubber-width-lg; } - + } } @@ -398,59 +413,63 @@ Slider B-flat *******************************************************/ .checkbox-slider--b-flat { - .checkbox-slider--b; - + @extend %checkbox-slider--b; + input { - + + span:before { box-shadow: none; } - + } - + } /******************************************************* Slider C *******************************************************/ -.checkbox-slider--c { - .checkbox-slider; - +%checkbox-slider--c { + @extend %checkbox-slider; + input { - + + span { - padding-left: @scrubber-width-default * 2; + padding-left: $scrubber-width-default * 2; } - + + span:before { height: 2px !important; // needs to be - top: @scrubber-width-default / 2; + top: $scrubber-width-default / 2; box-shadow: none; - width: @scrubber-width-default * 2; - background: @gray; + width: $scrubber-width-default * 2; + background: $gray-500; } - + + span:after { box-shadow: none; - width: @scrubber-width-default; - border: solid @gray 2px; - border-radius: @scrubber-width-default; + width: $scrubber-width-default; + border: solid $gray-500 2px; + border-radius: $scrubber-width-default; } - + &:checked + span:after { - background: @brand-success; - margin-left: @scrubber-width-default; - border: solid @brand-success 2px; + background: $success; + margin-left: $scrubber-width-default; + border: solid $success 2px; animation: splashIn ease-in .3s normal; } - + &:checked + span:before { - background: @brand-success; + background: $success; } - + } - + +} + +.checkbox-slider--c { + @extend %checkbox-slider--c; } /******************************************************* @@ -458,62 +477,62 @@ Slider C Sizes *******************************************************/ .checkbox-slider--c { - + &.checkbox-slider-sm { - + input + span:before { - top: @scrubber-width-sm / 2 - 1; + top: $scrubber-width-sm / 2 - 1; } } - + &.checkbox-slider-md { - + input + span:before { - top: @scrubber-width-md / 2 - 1; + top: $scrubber-width-md / 2 - 1; } - + input + span:after { - width: @scrubber-width-md; - border-radius: @scrubber-width-md; + width: $scrubber-width-md; + border-radius: $scrubber-width-md; } } - + &.checkbox-slider-lg { - + input + span:before { - top: @scrubber-width-lg / 2 - 1; //correct border + top: $scrubber-width-lg / 2 - 1; //correct border } input + span:after { - width: @scrubber-width-lg; - border-radius: @scrubber-width-lg; + width: $scrubber-width-lg; + border-radius: $scrubber-width-lg; } } - + } // Horizontal Form .form-horizontal [class*='checkbox-slider--c'] { &.checkbox-slider-sm { - + input + span:before { - top: @scrubber-width-sm / 2 + 5; + top: $scrubber-width-sm / 2 + 5; } } - + &.checkbox-slider-md { - + input + span:before { - top: @scrubber-width-md / 2 + 5; + top: $scrubber-width-md / 2 + 5; } - + } - + &.checkbox-slider-lg { - + input + span:before { - top: @scrubber-width-lg / 2 + 5; + top: $scrubber-width-lg / 2 + 5; } } @@ -524,14 +543,14 @@ Slider C-weight *******************************************************/ .checkbox-slider--c-weight { - .checkbox-slider--c; - + @extend %checkbox-slider--c; + input { - + + span:before { height: 1px !important; // needs to be } - + &:checked + span:before { height: 2px !important; // needs to be } @@ -540,7 +559,7 @@ Slider C-weight left: -6px } } - + } /****************************************************** @@ -548,52 +567,52 @@ State Disabled *******************************************************/ .checkbox-slider--default input:disabled { - + span:after { background: @gray-light; } + + span:after { background: $gray-100; } + span:before { box-shadow: 0 0 0 black; } + span { - color: @gray-light; + color: $gray-100; } } .checkbox-slider--a-rounded input:disabled, .checkbox-slider--a input:disabled { - + span:after { background: @gray-light; color: @white; } + + span:after { background: $gray-100; color: $white; } + span:before { box-shadow: 0 0 0 black; } + span { - color: @gray-light; + color: $gray-100; } } .checkbox-slider--b-flat input:disabled, .checkbox-slider--b input:disabled { - + + span:after { - + border: solid transparent 2px; - border-radius: @scrubber-width-lg; + border-radius: $scrubber-width-lg; } + span:before { box-shadow: 0 0 0 black; } + span { - color: @gray-light; + color: $gray-100; } &:checked + span:before { - background: @gray-light; + background: $gray-100; } } .checkbox-slider--c-weight input:disabled, .checkbox-slider--c input:disabled { &:checked + span:after { - background: @gray-light; + background: $gray-100; } - + + span:after { - border-color: @gray-light; + border-color: $gray-100; } - + span:before { background: @gray-light; } + + span:before { background: $gray-100; } + span { - color: @gray-light; + color: $gray-100; } } @@ -602,23 +621,23 @@ State Disabled Indicators *******************************************************/ input:checked + .indicator-primary { - color: @brand-primary; + color: $primary; } input:checked + .indicator-success { - color: @brand-success; + color: $success; } input:checked + .indicator-info { - color: @brand-info; + color: $info; } input:checked + .indicator-warning { - color: @brand-warning; + color: $warning; } input:checked + .indicator-danger { - color: @brand-danger; + color: $danger; } /******************************************************* @@ -627,84 +646,84 @@ Sizes // Small .checkbox-slider-sm { - line-height: @scrubber-width-sm; - + line-height: $scrubber-width-sm; + input + span { - padding-left: @scrubber-width-sm * 2; + padding-left: $scrubber-width-sm * 2; } - + input + span:before { - width: @scrubber-width-sm * 2; + width: $scrubber-width-sm * 2; } - + input + span:after, input + span:before { - height: @scrubber-width-sm; - line-height: @scrubber-width-sm; + height: $scrubber-width-sm; + line-height: $scrubber-width-sm; } - + input + span:after { - width: @scrubber-width-sm; + width: $scrubber-width-sm; vertical-align: middle; } - + input:checked + span:after { - margin-left: @scrubber-width-sm; + margin-left: $scrubber-width-sm; } } // Medium .checkbox-slider-md { - line-height: @scrubber-width-md; - + line-height: $scrubber-width-md; + input + span { - padding-left: @scrubber-width-md * 2; + padding-left: $scrubber-width-md * 2; } - + input + span:before { - width: @scrubber-width-md * 2; + width: $scrubber-width-md * 2; } - + input + span:after, input + span:before { - height: @scrubber-width-md; - line-height: @scrubber-width-md; + height: $scrubber-width-md; + line-height: $scrubber-width-md; } - + input + span:after { - width: @scrubber-width-md; + width: $scrubber-width-md; vertical-align: middle; } - + input:checked + span:after { - margin-left: @scrubber-width-md; + margin-left: $scrubber-width-md; } } // Large .checkbox-slider-lg { - line-height: @scrubber-width-lg; - + line-height: $scrubber-width-lg; + input + span { - padding-left: @scrubber-width-lg * 2; + padding-left: $scrubber-width-lg * 2; } - + input + span:before { - width: @scrubber-width-lg * 2; + width: $scrubber-width-lg * 2; } - + input + span:after, input + span:before { - height: @scrubber-width-lg; - line-height: @scrubber-width-lg; + height: $scrubber-width-lg; + line-height: $scrubber-width-lg; } input + span:after { - width: @scrubber-width-lg; + width: $scrubber-width-lg; vertical-align: middle; } - + input:checked + span:after { - margin-left: @scrubber-width-lg; + margin-left: $scrubber-width-lg; } } @@ -719,14 +738,14 @@ Variations &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - background: @brand-primary; + background: $primary; background-clip: content-box; } } &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - border-color: @brand-primary; + border-color: $primary; } } @@ -735,7 +754,7 @@ Variations &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:before { - background: @brand-primary; + background: $primary; } } } @@ -748,23 +767,23 @@ Variations &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - background: @brand-info; + background: $info; background-clip: content-box; } } &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - border-color: @brand-info; + border-color: $info; } } - + &.checkbox-slider--b, &.checkbox-slider--b-flat, &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:before { - background: @brand-info; + background: $info; } } } @@ -777,23 +796,23 @@ Variations &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - background: @brand-warning; + background: $warning; background-clip: content-box; } } &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - border-color: @brand-warning; + border-color: $warning; } } - + &.checkbox-slider--b, &.checkbox-slider--b-flat, &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:before { - background: @brand-warning; + background: $warning; } } } @@ -806,23 +825,23 @@ Variations &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - background: @brand-danger; + background: $danger; background-clip: content-box; } } &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:after { - border-color: @brand-danger; + border-color: $danger; } } - + &.checkbox-slider--b, &.checkbox-slider--b-flat, &.checkbox-slider--c, &.checkbox-slider--c-weight { input:checked + span:before { - background: @brand-danger; + background: $danger; } } } diff --git a/docs/index.html b/docs/index.html index 33b6c7b..365d92a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -40,116 +40,131 @@
-
-

Bootstrap 3 Ti-Ta-Toggle (bs3 addon without JS)

-

- Using awesome toggle buttons without Javascript or any other logic, other than plane form elements. - The Pattern is the same as Twitter-Bootstrap. So it can be implemented without a breeze. -

-

- Browser support: Internet Explorer 9, FireFox, Safari, Chrome, Safari Ios, Stock Android browser 4.2, Chrome Android -

-
-
-
-
Default checkbox
-
- -
-
-
-
With text
-
- -
-
-
-
iOS like
-
- -
-
-
-
Material like
-
- -
-
-
-
-
-

- - -

- -
+
+

Bootstrap 4 Ti-Ta-Toggle + (addon without JS) +

+

+ Using awesome toggle buttons without Javascript or any other logic, other than plane form elements. + The Pattern is the same as Twitter-Bootstrap. So it can be implemented without a breeze. +

+

+ Browser support: Internet Explorer 9/10/11, Edge, FireFox, Safari, Chrome, Safari Ios, Stock Android browser + 4.2, Chrome Android +

+

+ Version 1.0.0 of TitaToggle has support for Bootstrap v3.x.x +

+
+
+
+
Default checkbox
+
+ +
+
+
+
With text
+
+ +
+
+
+
iOS like
+
+ +
+
+
+
Material like
+
+ +
+
+
+
+
+

+ + +

+ +

Intro

- The only difference between default Bootstrap is the additional span. After that it's only a question of adding a class that fits your needs. + The only difference between default Bootstrap is the additional span. After that it's only a question of adding a class that fits your needs.

-

Bootstrap 3

+

Bootstrap 4

- The Bootstrap 3 default way of generating checkbox looks a like this: + The Bootstrap 4 default way of generating checkbox looks a like this:

- +

 <div class="checkbox">
-	<label>
-		<input type="checkbox">default Bootstrap 3
-	</label>
+    <label>
+        <input type="checkbox">default Bootstrap 4
+    </label>
 </div>
 

Ti-Ta-Toggle awesomenes

- Just by adding one &lt;span&gt; plus the class .checkbox-slider--TYPE you get this result: + Just by adding one

- +

+  <span&gt; <="" span&gt;="" code="">
+</span&gt;>
+

+ plus the class +

+

+  .checkbox-slider--TYPE
+
+

you get this result:

-
- -
-

+
+ +
+ + +

 <div class="checkbox checkbox-slider--default">
 	<label>
 		<input type="checkbox"><span>TiTaToggle</span>
 	</label>
 </div>
-		
+
-

-

Note:

-

- Don't forget to add the span after the input -

-

+

+

Note:

+

+ Don't forget to add the span after the input +

+


@@ -776,56 +791,56 @@
Large

Indicator

- Small visual que for the label to show that the checkbox is checked. + Small visual que for the label to show that the checkbox is checked.

- Not so usable for the visually impaired, due - to the fact it's only a color and contrast is to low. + Not so usable for the visually impaired, due + to the fact it's only a color and contrast is to low.
- +
- +
- +
- +

 
 <div class="checkbox ...">
 ...
-	<span class="indicator-success">danger</span>
+  <span class="indicator-success">danger</span>
 ...
 </div>
 
 <div class="checkbox ...">
 ...
-	<span class="indicator-info">danger</span>
+  <span class="indicator-info">danger</span>
 ...
 </div>
 
 <div class="checkbox ...">
 ...
-	<span class="indicator-warning">danger</span>
+  <span class="indicator-warning">danger</span>
 ...
 </div>
 
 <div class="checkbox ...">
 ...
-	<span class="indicator-danger">danger</span>
+  <span class="indicator-danger">danger</span>
 ...
 </div>
 
@@ -997,22 +1012,32 @@

Howto

You have a few options to include this into your project.

+

Install

+ +

Latest version (Bootstrap 4)

+ +$ npm install titatoggle --save-dev + +

Previous version (Bootstrap 3)

+$ npm install titatoggle@1.0.0 --save-dev +

Bower

-

- $ bower install titatoggle -

+$ bower install titatoggle + + + -

Less

+

SASS

- Inside the project you will find _titatoggle.less Include this file into your own project, and stuff just works. - If needed, you can fiddle around with some less variables. + Inside the project you will find _titatoggle.scss Include this file into your own project, and stuff just works. + If needed, you can fiddle around with some sass variables.

CSS

There is alway the option to include only the titatoggle-dist.css. Keep in mind this thing is build on top off Bootstrap 3.


-	<link href="css/titatoggle-dist.css" rel="stylesheet">
+	<link href="css/titatoggle-dist.css" rel="stylesheet">
 	

diff --git a/docs/js/highlight.js b/docs/js/highlight.js index 4c9c065..795cc28 100644 --- a/docs/js/highlight.js +++ b/docs/js/highlight.js @@ -51,19 +51,11 @@ https://highlightjs.org/ languages: undefined }; - // Object map that is used to escape some common HTML characters. - var escapeRegexMap = { - '&': '&', - '<': '<', - '>': '>' - }; /* Utility functions */ function escape(value) { - return value.replace(/[&<>]/gm, function(character) { - return escapeRegexMap[character]; - }); + return value.replace(/&/g, '&').replace(//g, '>'); } function tag(node) { @@ -102,15 +94,17 @@ https://highlightjs.org/ } } - function inherit(parent, obj) { + function inherit(parent) { // inherit(parent, override_obj, override_obj, ...) var key; var result = {}; + var objects = Array.prototype.slice.call(arguments, 1); for (key in parent) result[key] = parent[key]; - if (obj) + objects.forEach(function(obj) { for (key in obj) result[key] = obj[key]; + }); return result; } @@ -178,7 +172,7 @@ https://highlightjs.org/ } function open(node) { - function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';} + function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value).replace('"', '"') + '"';} result += '<' + tag(node) + ArrayProto.map.call(node.attributes, attr_str).join('') + '>'; } @@ -221,6 +215,15 @@ https://highlightjs.org/ /* Initialization */ + function expand_mode(mode) { + if (mode.variants && !mode.cached_variants) { + mode.cached_variants = mode.variants.map(function(variant) { + return inherit(mode, {variants: null}, variant); + }); + } + return mode.cached_variants || (mode.endsWithParent && [inherit(mode)]) || [mode]; + } + function compileLanguage(language) { function reStr(re) { @@ -286,15 +289,9 @@ https://highlightjs.org/ if (!mode.contains) { mode.contains = []; } - var expanded_contains = []; - mode.contains.forEach(function(c) { - if (c.variants) { - c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));}); - } else { - expanded_contains.push(c === 'self' ? mode : c); - } - }); - mode.contains = expanded_contains; + mode.contains = Array.prototype.concat.apply([], mode.contains.map(function(c) { + return expand_mode(c === 'self' ? mode : c) + })); mode.contains.forEach(function(c) {compileMode(c, mode);}); if (mode.starts) { @@ -593,6 +590,7 @@ https://highlightjs.org/ } else if (options.tabReplace) { return p1.replace(/\t/g, options.tabReplace); } + return ''; }); } @@ -735,7 +733,7 @@ https://highlightjs.org/ contains: [hljs.BACKSLASH_ESCAPE] }; hljs.PHRASAL_WORDS_MODE = { - begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/ + begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ }; hljs.COMMENT = function (begin, end, inherits) { var mode = hljs.inherit( diff --git a/docs/js/index.js b/docs/js/index.js index 06d685b..e65f97e 100644 --- a/docs/js/index.js +++ b/docs/js/index.js @@ -77,16 +77,20 @@ hljs.registerLanguage('haxe', require('./languages/haxe')); hljs.registerLanguage('hsp', require('./languages/hsp')); hljs.registerLanguage('htmlbars', require('./languages/htmlbars')); hljs.registerLanguage('http', require('./languages/http')); +hljs.registerLanguage('hy', require('./languages/hy')); hljs.registerLanguage('inform7', require('./languages/inform7')); hljs.registerLanguage('ini', require('./languages/ini')); hljs.registerLanguage('irpf90', require('./languages/irpf90')); hljs.registerLanguage('java', require('./languages/java')); hljs.registerLanguage('javascript', require('./languages/javascript')); +hljs.registerLanguage('jboss-cli', require('./languages/jboss-cli')); hljs.registerLanguage('json', require('./languages/json')); hljs.registerLanguage('julia', require('./languages/julia')); +hljs.registerLanguage('julia-repl', require('./languages/julia-repl')); hljs.registerLanguage('kotlin', require('./languages/kotlin')); hljs.registerLanguage('lasso', require('./languages/lasso')); hljs.registerLanguage('ldif', require('./languages/ldif')); +hljs.registerLanguage('leaf', require('./languages/leaf')); hljs.registerLanguage('less', require('./languages/less')); hljs.registerLanguage('lisp', require('./languages/lisp')); hljs.registerLanguage('livecodeserver', require('./languages/livecodeserver')); @@ -106,6 +110,7 @@ hljs.registerLanguage('perl', require('./languages/perl')); hljs.registerLanguage('mojolicious', require('./languages/mojolicious')); hljs.registerLanguage('monkey', require('./languages/monkey')); hljs.registerLanguage('moonscript', require('./languages/moonscript')); +hljs.registerLanguage('n1ql', require('./languages/n1ql')); hljs.registerLanguage('nginx', require('./languages/nginx')); hljs.registerLanguage('nimrod', require('./languages/nimrod')); hljs.registerLanguage('nix', require('./languages/nix')); @@ -131,6 +136,7 @@ hljs.registerLanguage('qml', require('./languages/qml')); hljs.registerLanguage('r', require('./languages/r')); hljs.registerLanguage('rib', require('./languages/rib')); hljs.registerLanguage('roboconf', require('./languages/roboconf')); +hljs.registerLanguage('routeros', require('./languages/routeros')); hljs.registerLanguage('rsl', require('./languages/rsl')); hljs.registerLanguage('ruleslanguage', require('./languages/ruleslanguage')); hljs.registerLanguage('rust', require('./languages/rust')); @@ -138,6 +144,7 @@ hljs.registerLanguage('scala', require('./languages/scala')); hljs.registerLanguage('scheme', require('./languages/scheme')); hljs.registerLanguage('scilab', require('./languages/scilab')); hljs.registerLanguage('scss', require('./languages/scss')); +hljs.registerLanguage('shell', require('./languages/shell')); hljs.registerLanguage('smali', require('./languages/smali')); hljs.registerLanguage('smalltalk', require('./languages/smalltalk')); hljs.registerLanguage('sml', require('./languages/sml')); diff --git a/docs/js/languages/1c.js b/docs/js/languages/1c.js index eaf89e7..574daa9 100644 --- a/docs/js/languages/1c.js +++ b/docs/js/languages/1c.js @@ -1,78 +1,509 @@ module.exports = function(hljs){ - var IDENT_RE_RU = '[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*'; - var OneS_KEYWORDS = 'возврат дата для если и или иначе иначеесли исключение конецесли ' + - 'конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем ' + - 'перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл ' + - 'число экспорт'; - var OneS_BUILT_IN = 'ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ' + - 'ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос ' + - 'восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц ' + - 'датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации ' + - 'запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр ' + - 'значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера ' + - 'имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы ' + - 'кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби ' + - 'конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс ' + - 'максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ ' + - 'назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби ' + - 'началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели ' + - 'номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки ' + - 'основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально ' + - 'отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята ' + - 'получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта ' + - 'получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации ' + - 'пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц ' + - 'разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына ' + - 'рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп ' + - 'сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить ' + - 'стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента ' + - 'счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты ' + - 'установитьтана установитьтапо фиксшаблон формат цел шаблон'; - var DQUOTE = {begin: '""'}; - var STR_START = { - className: 'string', - begin: '"', end: '"|$', - contains: [DQUOTE] - }; - var STR_CONT = { + + // общий паттерн для определения идентификаторов + var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+'; + + // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword + var v7_keywords = + 'далее '; + + // v8 ключевые слова ==> keyword + var v8_keywords = + 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' + + 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт '; + + // keyword : ключевые слова + var KEYWORD = v7_keywords + v8_keywords; + + // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword + var v7_meta_keywords = + 'загрузитьизфайла '; + + // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword + var v8_meta_keywords = + 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' + + 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' + + 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент '; + + // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях + var METAKEYWORD = v7_meta_keywords + v8_meta_keywords; + + // v7 системные константы ==> built_in + var v7_system_constants = + 'разделительстраниц разделительстрок символтабуляции '; + + // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in + var v7_global_context_methods = + 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' + + 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' + + 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' + + 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' + + 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' + + 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' + + 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' + + 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' + + 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' + + 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' + + 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон '; + + // v8 методы глобального контекста ==> built_in + var v8_global_context_methods = + 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' + + 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' + + 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' + + 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' + + 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' + + 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' + + 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' + + 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' + + 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' + + 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' + + 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' + + 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' + + 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' + + 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' + + 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' + + 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' + + 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' + + 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' + + 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' + + 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' + + 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' + + 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' + + 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' + + 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' + + 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' + + 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' + + 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' + + 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' + + 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' + + 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' + + 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' + + 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' + + 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' + + 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' + + 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' + + 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' + + 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' + + 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' + + 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' + + 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' + + 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' + + 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' + + 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' + + 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' + + 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' + + 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' + + 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' + + 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' + + 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' + + 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' + + 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' + + 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' + + 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' + + 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' + + 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' + + 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' + + 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+ + 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' + + 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' + + 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' + + 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' + + 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' + + 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' + + 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' + + 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' + + 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' + + 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' + + 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' + + 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' + + 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' + + 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' + + 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища '; + + // v8 свойства глобального контекста ==> built_in + var v8_global_context_property = + 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' + + 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' + + 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' + + 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' + + 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' + + 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' + + 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' + + 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' + + 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' + + 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' + + 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек '; + + // built_in : встроенные или библиотечные объекты (константы, классы, функции) + var BUILTIN = + v7_system_constants + + v7_global_context_methods + v8_global_context_methods + + v8_global_context_property; + + // v8 системные наборы значений ==> class + var v8_system_sets_of_values = + 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля '; + + // v8 системные перечисления - интерфейсные ==> class + var v8_system_enums_interface = + 'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' + + 'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' + + 'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' + + 'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' + + 'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' + + 'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' + + 'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' + + 'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' + + 'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' + + 'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' + + 'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' + + 'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' + + 'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' + + 'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' + + 'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' + + 'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' + + 'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' + + 'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' + + 'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' + + 'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' + + 'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' + + 'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' + + 'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' + + 'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' + + 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' + + 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' + + 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' + + 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' + + 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' + + 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' + + 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' + + 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' + + 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' + + 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' + + 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' + + 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' + + 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' + + 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' + + 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' + + 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' + + 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' + + 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' + + 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' + + 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' + + 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' + + 'форматкартинки ширинаподчиненныхэлементовформы '; + + // v8 системные перечисления - свойства прикладных объектов ==> class + var v8_system_enums_objects_properties = + 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' + + 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' + + 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента '; + + // v8 системные перечисления - планы обмена ==> class + var v8_system_enums_exchange_plans = + 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных '; + + // v8 системные перечисления - табличный документ ==> class + var v8_system_enums_tabular_document = + 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' + + 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' + + 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' + + 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' + + 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' + + 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' + + 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц '; + + // v8 системные перечисления - планировщик ==> class + var v8_system_enums_sheduler = + 'отображениевремениэлементовпланировщика '; + + // v8 системные перечисления - форматированный документ ==> class + var v8_system_enums_formatted_document = + 'типфайлаформатированногодокумента '; + + // v8 системные перечисления - запрос ==> class + var v8_system_enums_query = + 'обходрезультатазапроса типзаписизапроса '; + + // v8 системные перечисления - построитель отчета ==> class + var v8_system_enums_report_builder = + 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов '; + + // v8 системные перечисления - работа с файлами ==> class + var v8_system_enums_files = + 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла '; + + // v8 системные перечисления - построитель запроса ==> class + var v8_system_enums_query_builder = + 'типизмеренияпостроителязапроса '; + + // v8 системные перечисления - анализ данных ==> class + var v8_system_enums_data_analysis = + 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' + + 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' + + 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' + + 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' + + 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' + + 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений '; + + // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class + var v8_system_enums_xml_json_xs_dom_xdto_ws = + 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' + + 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' + + 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' + + 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' + + 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' + + 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' + + 'форматдатыjson экранированиесимволовjson '; + + // v8 системные перечисления - система компоновки данных ==> class + var v8_system_enums_data_composition_system = + 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' + + 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' + + 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' + + 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' + + 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' + + 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' + + 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' + + 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' + + 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' + + 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+ + 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' + + 'использованиеусловногооформлениякомпоновкиданных '; + + // v8 системные перечисления - почта ==> class + var v8_system_enums_email = + 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' + + 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' + + 'статусразборапочтовогосообщения '; + + // v8 системные перечисления - журнал регистрации ==> class + var v8_system_enums_logbook = + 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации '; + + // v8 системные перечисления - криптография ==> class + var v8_system_enums_cryptography = + 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' + + 'типхранилищасертификатовкриптографии '; + + // v8 системные перечисления - ZIP ==> class + var v8_system_enums_zip = + 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' + + 'режимсохраненияпутейzip уровеньсжатияzip '; + + // v8 системные перечисления - + // Блокировка данных, Фоновые задания, Автоматизированное тестирование, + // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class + var v8_system_enums_other = + 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' + + 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp '; + + // v8 системные перечисления - схема запроса ==> class + var v8_system_enums_request_schema = + 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' + + 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса '; + + // v8 системные перечисления - свойства объектов метаданных ==> class + var v8_system_enums_properties_of_metadata_objects = + 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' + + 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' + + 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' + + 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' + + 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' + + 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' + + 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' + + 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' + + 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' + + 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+ + 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' + + 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' + + 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' + + 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' + + 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' + + 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' + + 'типномерадокумента типномеразадачи типформы удалениедвижений '; + + // v8 системные перечисления - разные ==> class + var v8_system_enums_differents = + 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' + + 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' + + 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' + + 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' + + 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' + + 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' + + 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' + + 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' + + 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты'; + + // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование) + var CLASS = + v8_system_sets_of_values + + v8_system_enums_interface + + v8_system_enums_objects_properties + + v8_system_enums_exchange_plans + + v8_system_enums_tabular_document + + v8_system_enums_sheduler + + v8_system_enums_formatted_document + + v8_system_enums_query + + v8_system_enums_report_builder + + v8_system_enums_files + + v8_system_enums_query_builder + + v8_system_enums_data_analysis + + v8_system_enums_xml_json_xs_dom_xdto_ws + + v8_system_enums_data_composition_system + + v8_system_enums_email + + v8_system_enums_logbook + + v8_system_enums_cryptography + + v8_system_enums_zip + + v8_system_enums_other + + v8_system_enums_request_schema + + v8_system_enums_properties_of_metadata_objects + + v8_system_enums_differents; + + // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type + var v8_shared_object = + 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' + + 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' + + 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' + + 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' + + 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' + + 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' + + 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' + + 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' + + 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' + + 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' + + 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' + + 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' + + 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' + + 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' + + 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' + + 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' + + 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' + + 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' + + 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' + + 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' + + 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' + + 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' + + 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' + + 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' + + 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' + + 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' + + 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' + + 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' + + 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' + + 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' + + 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' + + 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' + + 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' + + 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' + + 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных '; + + // v8 универсальные коллекции значений ==> type + var v8_universal_collection = + 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' + + 'фиксированноесоответствие фиксированныймассив '; + + // type : встроенные типы + var TYPE = + v8_shared_object + + v8_universal_collection; + + // literal : примитивные типы + var LITERAL = 'null истина ложь неопределено'; + + // number : числа + var NUMBERS = hljs.inherit(hljs.NUMBER_MODE); + + // string : строки + var STRINGS = { className: 'string', - begin: '\\|', end: '"|$', - contains: [DQUOTE] + begin: '"|\\|', end: '"|$', + contains: [{begin: '""'}] }; - return { - case_insensitive: true, - lexemes: IDENT_RE_RU, - keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN}, + // number : даты + var DATE = { + begin: "'", end: "'", excludeBegin: true, excludeEnd: true, contains: [ - hljs.C_LINE_COMMENT_MODE, - hljs.NUMBER_MODE, - STR_START, STR_CONT, { - className: 'function', - begin: '(процедура|функция)', end: '$', - lexemes: IDENT_RE_RU, - keywords: 'процедура функция', + className: 'number', + begin: '\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}' + } + ] + }; + + // comment : комментарии + var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE); + + // meta : инструкции препроцессора, директивы компиляции + var META = { + className: 'meta', + lexemes: UNDERSCORE_IDENT_RE, + begin: '#|&', end: '$', + keywords: {'meta-keyword': KEYWORD + METAKEYWORD}, + contains: [ + COMMENTS + ] + }; + + // symbol : метка goto + var SYMBOL = { + className: 'symbol', + begin: '~', end: ';|:', excludeEnd: true + }; + + // function : объявление процедур и функций + var FUNCTION = { + className: 'function', + lexemes: UNDERSCORE_IDENT_RE, + variants: [ + {begin: 'процедура|функция', end: '\\)', keywords: 'процедура функция'}, + {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'} + ], + contains: [ + { + begin: '\\(', end: '\\)', endsParent : true, contains: [ - { - begin: 'экспорт', endsWithParent: true, - lexemes: IDENT_RE_RU, - keywords: 'экспорт', - contains: [hljs.C_LINE_COMMENT_MODE] - }, { className: 'params', - begin: '\\(', end: '\\)', - lexemes: IDENT_RE_RU, - keywords: 'знач', - contains: [STR_START, STR_CONT] + lexemes: UNDERSCORE_IDENT_RE, + begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true, + keywords: { + keyword: 'знач', + literal: LITERAL + }, + contains: [ + NUMBERS, + STRINGS, + DATE + ] }, - hljs.C_LINE_COMMENT_MODE, - hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU}) + COMMENTS ] }, - {className: 'meta', begin: '#', end: '$'}, - {className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date + hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE}) ] }; + + return { + case_insensitive: true, + lexemes: UNDERSCORE_IDENT_RE, + keywords: { + keyword: KEYWORD, + built_in: BUILTIN, + class: CLASS, + type: TYPE, + literal: LITERAL + }, + contains: [ + META, + FUNCTION, + COMMENTS, + SYMBOL, + NUMBERS, + STRINGS, + DATE + ] + } }; \ No newline at end of file diff --git a/docs/js/languages/aspectj.js b/docs/js/languages/aspectj.js index a32f291..e48ee8b 100644 --- a/docs/js/languages/aspectj.js +++ b/docs/js/languages/aspectj.js @@ -91,7 +91,8 @@ module.exports = function (hljs) { contains : [ { begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', - keywords : KEYWORDS + ' ' + SHORTKEYS + keywords : KEYWORDS + ' ' + SHORTKEYS, + relevance: 0 }, hljs.QUOTE_STRING_MODE ] diff --git a/docs/js/languages/autohotkey.js b/docs/js/languages/autohotkey.js index 3c15fc5..e008712 100644 --- a/docs/js/languages/autohotkey.js +++ b/docs/js/languages/autohotkey.js @@ -1,12 +1,13 @@ module.exports = function(hljs) { var BACKTICK_ESCAPE = { - begin: /`[\s\S]/ + begin: '`[\\s\\S]' }; return { case_insensitive: true, + aliases: [ 'ahk' ], keywords: { - keyword: 'Break Continue Else Gosub If Loop Return While', + keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group', literal: 'A|0 true false NOT AND OR', built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel', }, @@ -18,16 +19,26 @@ module.exports = function(hljs) { BACKTICK_ESCAPE, hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}), hljs.COMMENT(';', '$', {relevance: 0}), + hljs.C_BLOCK_COMMENT_MODE, { className: 'number', begin: hljs.NUMBER_RE, relevance: 0 }, { - className: 'variable', // FIXME - begin: '%', end: '%', - illegal: '\\n', - contains: [BACKTICK_ESCAPE] + className: 'subst', // FIXED + begin: '%(?=[a-zA-Z0-9#_$@])', end: '%', + illegal: '[^a-zA-Z0-9#_$@]' + }, + { + className: 'built_in', + begin: '^\\s*\\w+\\s*,' + //I don't really know if this is totally relevant + }, + { + className: 'meta', + begin: '^\\s*#\w+', end:'$', + relevance: 0 }, { className: 'symbol', diff --git a/docs/js/languages/bash.js b/docs/js/languages/bash.js index a8bb5d2..ab9b114 100644 --- a/docs/js/languages/bash.js +++ b/docs/js/languages/bash.js @@ -26,7 +26,7 @@ module.exports = function(hljs) { return { aliases: ['sh', 'zsh'], - lexemes: /-?[a-z\._]+/, + lexemes: /\b-?[a-z\._]+\b/, keywords: { keyword: 'if then else elif fi for while in do done case esac function', diff --git a/docs/js/languages/clojure.js b/docs/js/languages/clojure.js index 4c9d6e9..27a46db 100644 --- a/docs/js/languages/clojure.js +++ b/docs/js/languages/clojure.js @@ -85,6 +85,7 @@ module.exports = function(hljs) { LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY]; BODY.contains = DEFAULT_CONTAINS; COLLECTION.contains = DEFAULT_CONTAINS; + HINT_COL.contains = [COLLECTION]; return { aliases: ['clj'], diff --git a/docs/js/languages/cpp.js b/docs/js/languages/cpp.js index 393f728..47edf42 100644 --- a/docs/js/languages/cpp.js +++ b/docs/js/languages/cpp.js @@ -27,7 +27,7 @@ module.exports = function(hljs) { className: 'number', variants: [ { begin: '\\b(0b[01\']+)' }, - { begin: '\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' }, + { begin: '(-?)\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' }, { begin: '(-?)(\\b0[xX][a-fA-F0-9\']+|(\\b[\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)([eE][-+]?[\\d\']+)?)' } ], relevance: 0 @@ -48,7 +48,7 @@ module.exports = function(hljs) { hljs.inherit(STRINGS, {className: 'meta-string'}), { className: 'meta-string', - begin: '<', end: '>', + begin: /<[^\n>]*>/, end: /$/, illegal: '\\n', }, hljs.C_LINE_COMMENT_MODE, @@ -60,15 +60,16 @@ module.exports = function(hljs) { var CPP_KEYWORDS = { keyword: 'int float while private char catch import module export virtual operator sizeof ' + - 'dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace ' + + 'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' + 'unsigned long volatile static protected bool template mutable if public friend ' + - 'do goto auto void enum else break extern using class asm case typeid ' + + 'do goto auto void enum else break extern using asm case typeid ' + 'short reinterpret_cast|10 default double register explicit signed typename try this ' + 'switch continue inline delete alignof constexpr decltype ' + 'noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary ' + 'atomic_bool atomic_char atomic_schar ' + 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' + - 'atomic_ullong new throw return', + 'atomic_ullong new throw return ' + + 'and or not', built_in: 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' + 'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' + 'unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos ' + @@ -154,6 +155,14 @@ module.exports = function(hljs) { hljs.C_BLOCK_COMMENT_MODE, PREPROCESSOR ] + }, + { + className: 'class', + beginKeywords: 'class struct', end: /[{;:]/, + contains: [ + {begin: //, contains: ['self']}, // skip generic stuff + hljs.TITLE_MODE + ] } ]), exports: { diff --git a/docs/js/languages/crystal.js b/docs/js/languages/crystal.js index 28a2797..95209b9 100644 --- a/docs/js/languages/crystal.js +++ b/docs/js/languages/crystal.js @@ -6,10 +6,10 @@ module.exports = function(hljs) { var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?'; var CRYSTAL_KEYWORDS = { keyword: - 'abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef ' + - 'include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? ' + - 'return require self sizeof struct super then type typeof union unless until when while with yield ' + - '__DIR__ __FILE__ __LINE__', + 'abstract alias as as? asm begin break case class def do else elsif end ensure enum extend for fun if ' + + 'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? ' + + 'return require select self sizeof struct super then type typeof union uninitialized unless until when while with yield ' + + '__DIR__ __END_LINE__ __FILE__ __LINE__', literal: 'false nil true' }; var SUBST = { @@ -47,6 +47,22 @@ module.exports = function(hljs) { {begin: '%w?%', end: '%'}, {begin: '%w?-', end: '-'}, {begin: '%w?\\|', end: '\\|'}, + {begin: /<<-\w+$/, end: /^\s*\w+$/}, + ], + relevance: 0, + }; + var Q_STRING = { + className: 'string', + variants: [ + {begin: '%q\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')}, + {begin: '%q\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')}, + {begin: '%q{', end: '}', contains: recursiveParen('{', '}')}, + {begin: '%q<', end: '>', contains: recursiveParen('<', '>')}, + {begin: '%q/', end: '/'}, + {begin: '%q%', end: '%'}, + {begin: '%q-', end: '-'}, + {begin: '%q\\|', end: '\\|'}, + {begin: /<<-'\w+'$/, end: /^\s*\w+$/}, ], relevance: 0, }; @@ -97,6 +113,7 @@ module.exports = function(hljs) { var CRYSTAL_DEFAULT_CONTAINS = [ EXPANSION, STRING, + Q_STRING, REGEXP, REGEXP2, ATTRIBUTE, diff --git a/docs/js/languages/cs.js b/docs/js/languages/cs.js index f680392..b92473c 100644 --- a/docs/js/languages/cs.js +++ b/docs/js/languages/cs.js @@ -3,12 +3,11 @@ module.exports = function(hljs) { keyword: // Normal keywords. 'abstract as base bool break byte case catch char checked const continue decimal ' + - 'default delegate do double else enum event explicit extern finally fixed float ' + - 'for foreach goto if implicit in int interface internal is lock long ' + + 'default delegate do double enum event explicit extern finally fixed float ' + + 'for foreach goto if implicit in int interface internal is lock long nameof ' + 'object operator out override params private protected public readonly ref sbyte ' + 'sealed short sizeof stackalloc static string struct switch this try typeof ' + 'uint ulong unchecked unsafe ushort using virtual void volatile while ' + - 'nameof ' + // Contextual keywords. 'add alias ascending async await by descending dynamic equals from get global group into join ' + 'let on orderby partial remove select set value var where yield', @@ -72,6 +71,7 @@ module.exports = function(hljs) { }; var TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\s*,\\s*' + hljs.IDENT_RE + ')*>)?(\\[\\])?'; + return { aliases: ['csharp'], keywords: KEYWORDS, @@ -105,7 +105,9 @@ module.exports = function(hljs) { { className: 'meta', begin: '#', end: '$', - keywords: {'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'} + keywords: { + 'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum' + } }, STRING, hljs.C_NUMBER_MODE, @@ -127,16 +129,24 @@ module.exports = function(hljs) { hljs.C_BLOCK_COMMENT_MODE ] }, + { + // [Attributes("")] + className: 'meta', + begin: '^\\s*\\[', excludeBegin: true, end: '\\]', excludeEnd: true, + contains: [ + {className: 'meta-string', begin: /"/, end: /"/} + ] + }, { // Expression keywords prevent 'keyword Name(...)' from being // recognized as a function definition - beginKeywords: 'new return throw await', + beginKeywords: 'new return throw await else', relevance: 0 }, { className: 'function', - begin: '(' + TYPE_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/, - excludeEnd: true, + begin: '(' + TYPE_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true, + end: /[{;=]/, excludeEnd: true, keywords: KEYWORDS, contains: [ { diff --git a/docs/js/languages/dockerfile.js b/docs/js/languages/dockerfile.js index f2de28b..0fcb694 100644 --- a/docs/js/languages/dockerfile.js +++ b/docs/js/languages/dockerfile.js @@ -2,14 +2,14 @@ module.exports = function(hljs) { return { aliases: ['docker'], case_insensitive: true, - keywords: 'from maintainer expose env user onbuild', + keywords: 'from maintainer expose env arg user onbuild stopsignal', contains: [ hljs.HASH_COMMENT_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, hljs.NUMBER_MODE, { - beginKeywords: 'run cmd entrypoint volume add copy workdir label healthcheck', + beginKeywords: 'run cmd entrypoint volume add copy workdir label healthcheck shell', starts: { end: /[^\\]\n/, subLanguage: 'bash' diff --git a/docs/js/languages/elm.js b/docs/js/languages/elm.js index 27caf5d..893218d 100644 --- a/docs/js/languages/elm.js +++ b/docs/js/languages/elm.js @@ -77,6 +77,7 @@ module.exports = function(hljs) { COMMENT, {begin: '->|<-'} // No markup, relevance booster - ] + ], + illegal: /;/ }; }; \ No newline at end of file diff --git a/docs/js/languages/gams.js b/docs/js/languages/gams.js index 665ec14..dc39892 100644 --- a/docs/js/languages/gams.js +++ b/docs/js/languages/gams.js @@ -140,7 +140,7 @@ module.exports = function (hljs) { contains: [ { // Function title className: 'title', - begin: /^[a-z][a-z0-9_]+/, + begin: /^[a-z0-9_]+/, }, PARAMS, SYMBOLS, diff --git a/docs/js/languages/gauss.js b/docs/js/languages/gauss.js index 059e0b9..a5e4f62 100644 --- a/docs/js/languages/gauss.js +++ b/docs/js/languages/gauss.js @@ -50,7 +50,7 @@ module.exports = function(hljs) { 'getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT ' + 'gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm ' + 'hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 ' + - 'indicesf indicesfn indnv indsav indx integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 ' + + 'indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 ' + 'inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf ' + 'isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv ' + 'lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn ' + @@ -90,7 +90,9 @@ module.exports = function(hljs) { 'utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs ' + 'vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window ' + 'writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM ' + - 'xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics', + 'xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute ' + + 'h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels ' + + 'plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin strtrim sylvester', literal: 'DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS ' + 'DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 ' + 'DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS ' + diff --git a/docs/js/languages/haxe.js b/docs/js/languages/haxe.js index 0080ff9..ca81702 100644 --- a/docs/js/languages/haxe.js +++ b/docs/js/languages/haxe.js @@ -7,7 +7,7 @@ module.exports = function(hljs) { return { aliases: ['hx'], keywords: { - keyword: 'break callback case cast catch continue default do dynamic else enum extern ' + + keyword: 'break case cast catch continue default do dynamic else enum extern ' + 'for function here if import in inline never new override package private get set ' + 'public return static super switch this throw trace try typedef untyped using var while ' + HAXE_BASIC_TYPES, diff --git a/docs/js/languages/hy.js b/docs/js/languages/hy.js new file mode 100644 index 0000000..9beb36a --- /dev/null +++ b/docs/js/languages/hy.js @@ -0,0 +1,101 @@ +module.exports = function(hljs) { + var keywords = { + 'builtin-name': + // keywords + '!= % %= & &= * ** **= *= *map ' + + '+ += , --build-class-- --import-- -= . / // //= ' + + '/= < << <<= <= = > >= >> >>= ' + + '@ @= ^ ^= abs accumulate all and any ap-compose ' + + 'ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ' + + 'ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast ' + + 'callable calling-module-name car case cdr chain chr coll? combinations compile ' + + 'compress cond cons cons? continue count curry cut cycle dec ' + + 'def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn ' + + 'defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir ' + + 'disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? ' + + 'end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first ' + + 'flatten float? fn fnc fnr for for* format fraction genexpr ' + + 'gensym get getattr global globals group-by hasattr hash hex id ' + + 'identity if if* if-not if-python2 import in inc input instance? ' + + 'integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even ' + + 'is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none ' + + 'is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass ' + + 'iter iterable? iterate iterator? keyword keyword? lambda last len let ' + + 'lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all ' + + 'map max merge-with method-decorator min multi-decorator multicombinations name neg? next ' + + 'none? nonlocal not not-in not? nth numeric? oct odd? open ' + + 'or ord partition permutations pos? post-route postwalk pow prewalk print ' + + 'product profile/calls profile/cpu put-route quasiquote quote raise range read read-str ' + + 'recursive-replace reduce remove repeat repeatedly repr require rest round route ' + + 'route-with-methods rwm second seq set-comp setattr setv some sorted string ' + + 'string? sum switch symbol? take take-nth take-while tee try unless ' + + 'unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms ' + + 'xi xor yield yield-from zero? zip zip-longest | |= ~' + }; + + var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\''; + var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*'; + var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?'; + + var SHEBANG = { + className: 'meta', + begin: '^#!', end: '$' + }; + + var SYMBOL = { + begin: SYMBOL_RE, + relevance: 0 + }; + var NUMBER = { + className: 'number', begin: SIMPLE_NUMBER_RE, + relevance: 0 + }; + var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}); + var COMMENT = hljs.COMMENT( + ';', + '$', + { + relevance: 0 + } + ); + var LITERAL = { + className: 'literal', + begin: /\b([Tt]rue|[Ff]alse|nil|None)\b/ + }; + var COLLECTION = { + begin: '[\\[\\{]', end: '[\\]\\}]' + }; + var HINT = { + className: 'comment', + begin: '\\^' + SYMBOL_RE + }; + var HINT_COL = hljs.COMMENT('\\^\\{', '\\}'); + var KEY = { + className: 'symbol', + begin: '[:]{1,2}' + SYMBOL_RE + }; + var LIST = { + begin: '\\(', end: '\\)' + }; + var BODY = { + endsWithParent: true, + relevance: 0 + }; + var NAME = { + keywords: keywords, + lexemes: SYMBOL_RE, + className: 'name', begin: SYMBOL_RE, + starts: BODY + }; + var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL]; + + LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY]; + BODY.contains = DEFAULT_CONTAINS; + COLLECTION.contains = DEFAULT_CONTAINS; + + return { + aliases: ['hylang'], + illegal: /\S/, + contains: [SHEBANG, LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL] + } +}; \ No newline at end of file diff --git a/docs/js/languages/jboss-cli.js b/docs/js/languages/jboss-cli.js new file mode 100644 index 0000000..68bb496 --- /dev/null +++ b/docs/js/languages/jboss-cli.js @@ -0,0 +1,46 @@ +module.exports = function (hljs) { + var PARAM = { + begin: /[\w-]+ *=/, returnBegin: true, + relevance: 0, + contains: [{className: 'attr', begin: /[\w-]+/}] + }; + var PARAMSBLOCK = { + className: 'params', + begin: /\(/, + end: /\)/, + contains: [PARAM], + relevance : 0 + }; + var OPERATION = { + className: 'function', + begin: /:[\w\-.]+/, + relevance: 0 + }; + var PATH = { + className: 'string', + begin: /\B(([\/.])[\w\-.\/=]+)+/, + }; + var COMMAND_PARAMS = { + className: 'params', + begin: /--[\w\-=\/]+/, + }; + return { + aliases: ['wildfly-cli'], + lexemes: '[a-z\-]+', + keywords: { + keyword: 'alias batch cd clear command connect connection-factory connection-info data-source deploy ' + + 'deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls ' + + 'patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias ' + + 'undeploy unset version xa-data-source', // module + literal: 'true false' + }, + contains: [ + hljs.HASH_COMMENT_MODE, + hljs.QUOTE_STRING_MODE, + COMMAND_PARAMS, + OPERATION, + PATH, + PARAMSBLOCK + ] + } +}; \ No newline at end of file diff --git a/docs/js/languages/julia-repl.js b/docs/js/languages/julia-repl.js new file mode 100644 index 0000000..fded81f --- /dev/null +++ b/docs/js/languages/julia-repl.js @@ -0,0 +1,23 @@ +module.exports = function(hljs) { + return { + contains: [ + { + className: 'meta', + begin: /^julia>/, + relevance: 10, + starts: { + // end the highlighting if we are on a new line and the line does not have at + // least six spaces in the beginning + end: /^(?![ ]{6})/, + subLanguage: 'julia' + }, + // jldoctest Markdown blocks are used in the Julia manual and package docs indicate + // code snippets that should be verified when the documentation is built. They can be + // either REPL-like or script-like, but are usually REPL-like and therefore we apply + // julia-repl highlighting to them. More information can be found in Documenter's + // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html + aliases: ['jldoctest'] + } + ] + } +}; \ No newline at end of file diff --git a/docs/js/languages/julia.js b/docs/js/languages/julia.js index ef3ef71..ea67298 100644 --- a/docs/js/languages/julia.js +++ b/docs/js/languages/julia.js @@ -1,104 +1,84 @@ module.exports = function(hljs) { // Since there are numerous special names in Julia, it is too much trouble // to maintain them by hand. Hence these names (i.e. keywords, literals and - // built-ins) are automatically generated from Julia (v0.3.0 and v0.4.1) - // itself through following scripts for each. + // built-ins) are automatically generated from Julia v0.6 itself through + // the following scripts for each. var KEYWORDS = { - // # keyword generator - // println("in") + // # keyword generator, multi-word keywords handled manually below + // foreach(println, ["in", "isa", "where"]) // for kw in Base.REPLCompletions.complete_keyword("") - // println(kw) + // if !(contains(kw, " ") || kw == "struct") + // println(kw) + // end // end keyword: - 'in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export ' + - 'finally for function global if immutable import importall let local macro module quote return try type ' + - 'typealias using while', + 'in isa where ' + + 'baremodule begin break catch ccall const continue do else elseif end export false finally for function ' + + 'global if import importall let local macro module quote return true try using while ' + + // legacy, to be deprecated in the next release + 'type immutable abstract bitstype typealias ', // # literal generator // println("true") // println("false") // for name in Base.REPLCompletions.completions("", 0)[1] // try - // s = symbol(name) - // v = eval(s) - // if !isa(v, Function) && - // !isa(v, DataType) && - // !isa(v, IntrinsicFunction) && - // !issubtype(typeof(v), Tuple) && - // !isa(v, Union) && - // !isa(v, Module) && - // !isa(v, TypeConstructor) && - // !isa(v, TypeVar) && - // !isa(v, Colon) + // v = eval(Symbol(name)) + // if !(v isa Function || v isa Type || v isa TypeVar || v isa Module || v isa Colon) // println(name) // end // end // end literal: - // v0.3 - 'true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 ' + - 'InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort ' + - 'RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown ' + - 'RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 ' + - 'eulergamma golden im nothing pi γ π φ ' + - // v0.4 (diff) - 'Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ', + 'true false ' + + 'ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort ' + + 'NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway ' + + 'RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im ' + + 'nothing pi γ π φ ', // # built_in generator: // for name in Base.REPLCompletions.completions("", 0)[1] // try - // v = eval(symbol(name)) - // if isa(v, DataType) || isa(v, TypeConstructor) || isa(v, TypeVar) + // v = eval(Symbol(name)) + // if v isa Type || v isa TypeVar // println(name) // end // end // end built_in: - // v0.3 - 'ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe ' + - 'Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char ' + - 'CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 ' + - 'Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType ' + - 'DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError ' + - 'EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 ' + - 'Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 ' + - 'InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError ' + - 'LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister ' + - 'Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange ' + - 'OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 ' + - 'Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set ' + - 'SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString ' + - 'SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular ' + - 'Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket ' + - 'Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange ' + - 'Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip ' + - // v0.4 (diff) - 'AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream ' + - 'CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t ' + - 'Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace ' + - 'LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ' + - 'ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector ' + - 'TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular ' + - 'Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector ' + - 'DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix ' + - 'StridedVecOrMat StridedVector VecOrMat Vector ' + 'ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet ' + + 'AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat ' + + 'AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal '+ + 'BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException ' + + 'CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager ' + + 'Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ' + + 'ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t ' + + 'Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict ' + + 'DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ' + + 'ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function ' + + 'Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear ' + + 'IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException ' + + 'InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix ' + + 'MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict ' + + 'OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe ' + + 'PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ' + + 'ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode ' + + 'RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed ' + + 'SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange ' + + 'StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal ' + + 'Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry ' + + 'TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError ' + + 'UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector ' + + 'VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool ' }; // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*'; // placeholder for recursive self-reference - var DEFAULT = { lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// }; - - var TYPE_ANNOTATION = { - className: 'type', - begin: /::/ - }; - - var SUBTYPE = { - className: 'type', - begin: /<:/ + var DEFAULT = { + lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// }; // ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/ @@ -163,13 +143,17 @@ module.exports = function(hljs) { DEFAULT.contains = [ NUMBER, CHAR, - TYPE_ANNOTATION, - SUBTYPE, STRING, COMMAND, MACROCALL, COMMENT, - hljs.HASH_COMMENT_MODE + hljs.HASH_COMMENT_MODE, + { + className: 'keyword', + begin: + '\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b' + }, + {begin: /<:/} // relevance booster ]; INTERPOLATION.contains = DEFAULT.contains; diff --git a/docs/js/languages/kotlin.js b/docs/js/languages/kotlin.js index ff7f05e..573d5ae 100644 --- a/docs/js/languages/kotlin.js +++ b/docs/js/languages/kotlin.js @@ -1,9 +1,9 @@ -module.exports = function (hljs) { +module.exports = function(hljs) { var KEYWORDS = { keyword: 'abstract as val var vararg get set class object open private protected public noinline ' + 'crossinline dynamic final enum if else do while for when throw try catch finally ' + - 'import package is in fun override companion reified inline ' + + 'import package is in fun override companion reified inline lateinit init' + 'interface annotation data sealed internal infix operator out by constructor super ' + // to be deleted soon 'trait volatile transient native default', @@ -31,17 +31,17 @@ module.exports = function (hljs) { // for string templates var SUBST = { className: 'subst', - variants: [ - {begin: '\\$' + hljs.UNDERSCORE_IDENT_RE}, - {begin: '\\${', end: '}', contains: [hljs.APOS_STRING_MODE, hljs.C_NUMBER_MODE]} - ] + begin: '\\${', end: '}', contains: [hljs.APOS_STRING_MODE, hljs.C_NUMBER_MODE] + }; + var VARIABLE = { + className: 'variable', begin: '\\$' + hljs.UNDERSCORE_IDENT_RE }; var STRING = { className: 'string', variants: [ { begin: '"""', end: '"""', - contains: [SUBST] + contains: [VARIABLE, SUBST] }, // Can't use built-in modes easily, as we want to use STRING in the meta // context as 'meta-string' and there's no syntax to remove explicitly set @@ -54,7 +54,7 @@ module.exports = function (hljs) { { begin: '"', end: '"', illegal: /\n/, - contains: [hljs.BACKSLASH_ESCAPE, SUBST] + contains: [hljs.BACKSLASH_ESCAPE, VARIABLE, SUBST] } ] }; diff --git a/docs/js/languages/leaf.js b/docs/js/languages/leaf.js new file mode 100644 index 0000000..2e51fcd --- /dev/null +++ b/docs/js/languages/leaf.js @@ -0,0 +1,39 @@ +module.exports = function (hljs) { + return { + contains: [ + { + className: 'function', + begin: '#+' + '[A-Za-z_0-9]*' + '\\(', + end:' {', + returnBegin: true, + excludeEnd: true, + contains : [ + { + className: 'keyword', + begin: '#+' + }, + { + className: 'title', + begin: '[A-Za-z_][A-Za-z_0-9]*' + }, + { + className: 'params', + begin: '\\(', end: '\\)', + endsParent: true, + contains: [ + { + className: 'string', + begin: '"', + end: '"' + }, + { + className: 'variable', + begin: '[A-Za-z_][A-Za-z_0-9]*' + } + ] + } + ] + } + ] + }; +}; \ No newline at end of file diff --git a/docs/js/languages/lua.js b/docs/js/languages/lua.js index fa21abb..a0287f7 100644 --- a/docs/js/languages/lua.js +++ b/docs/js/languages/lua.js @@ -19,14 +19,24 @@ module.exports = function(hljs) { return { lexemes: hljs.UNDERSCORE_IDENT_RE, keywords: { - keyword: - 'and break do else elseif end false for if in local nil not or repeat return then ' + - 'true until while', + literal: "true false nil", + keyword: "and break do else elseif end for goto if in local not or repeat return then until while", built_in: - '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' + - 'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' + - 'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' + - 'io math os package string table' + //Metatags and globals: + '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len ' + + '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert ' + + //Standard methods and properties: + 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring' + + 'module next pairs pcall print rawequal rawget rawset require select setfenv' + + 'setmetatable tonumber tostring type unpack xpcall arg self' + + //Library methods and properties (one line per library): + 'coroutine resume yield status wrap create running debug getupvalue ' + + 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv ' + + 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile ' + + 'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan ' + + 'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall ' + + 'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower ' + + 'table setn insert getn foreachi maxn foreach concat sort remove' }, contains: COMMENTS.concat([ { diff --git a/docs/js/languages/makefile.js b/docs/js/languages/makefile.js index d3ef54e..300cf26 100644 --- a/docs/js/languages/makefile.js +++ b/docs/js/languages/makefile.js @@ -1,44 +1,80 @@ module.exports = function(hljs) { + /* Variables: simple (eg $(var)) and special (eg $@) */ var VARIABLE = { className: 'variable', - begin: /\$\(/, end: /\)/, - contains: [hljs.BACKSLASH_ESCAPE] - }; - return { - aliases: ['mk', 'mak'], - contains: [ - hljs.HASH_COMMENT_MODE, - { - begin: /^\w+\s*\W*=/, returnBegin: true, - relevance: 0, - starts: { - end: /\s*\W*=/, excludeEnd: true, - starts: { - end: /$/, - relevance: 0, - contains: [ - VARIABLE - ] - } - } - }, + variants: [ { - className: 'section', - begin: /^[\w]+:\s*$/ + begin: '\\$\\(' + hljs.UNDERSCORE_IDENT_RE + '\\)', + contains: [hljs.BACKSLASH_ESCAPE], }, { - className: 'meta', - begin: /^\.PHONY:/, end: /$/, - keywords: {'meta-keyword': '.PHONY'}, lexemes: /[\.\w]+/ + begin: /\$[@%>>|\.\.\.) / }; + var SUBST = { + className: 'subst', + begin: /\{/, end: /\}/, + keywords: KEYWORDS, + illegal: /#/ + }; var STRING = { className: 'string', contains: [hljs.BACKSLASH_ESCAPE], @@ -16,6 +30,14 @@ module.exports = function(hljs) { contains: [PROMPT], relevance: 10 }, + { + begin: /(fr|rf|f)'''/, end: /'''/, + contains: [PROMPT, SUBST] + }, + { + begin: /(fr|rf|f)"""/, end: /"""/, + contains: [PROMPT, SUBST] + }, { begin: /(u|r|ur)'/, end: /'/, relevance: 10 @@ -30,6 +52,14 @@ module.exports = function(hljs) { { begin: /(b|br)"/, end: /"/ }, + { + begin: /(fr|rf|f)'/, end: /'/, + contains: [SUBST] + }, + { + begin: /(fr|rf|f)"/, end: /"/, + contains: [SUBST] + }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE ] @@ -47,16 +77,10 @@ module.exports = function(hljs) { begin: /\(/, end: /\)/, contains: ['self', PROMPT, NUMBER, STRING] }; + SUBST.contains = [STRING, NUMBER, PROMPT]; return { aliases: ['py', 'gyp'], - keywords: { - keyword: - 'and elif is global as in if from raise for except finally print import pass return ' + - 'exec else break not with class assert yield try while continue del or def lambda ' + - 'async await nonlocal|10 None True False', - built_in: - 'Ellipsis NotImplemented' - }, + keywords: KEYWORDS, illegal: /(<\/|->|\?)|=>/, contains: [ PROMPT, diff --git a/docs/js/languages/qml.js b/docs/js/languages/qml.js index 192333f..3ed4b8b 100644 --- a/docs/js/languages/qml.js +++ b/docs/js/languages/qml.js @@ -16,7 +16,7 @@ module.exports = function(hljs) { 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' + 'Behavior bool color coordinate date double enumeration font geocircle georectangle ' + 'geoshape int list matrix4x4 parent point quaternion real rect ' + - 'size string url var variant vector2d vector3d vector4d' + + 'size string url variant vector2d vector3d vector4d' + 'Promise' }; diff --git a/docs/js/languages/routeros.js b/docs/js/languages/routeros.js new file mode 100644 index 0000000..55ad00f --- /dev/null +++ b/docs/js/languages/routeros.js @@ -0,0 +1,158 @@ +module.exports = // Colors from RouterOS terminal: +// green - #0E9A00 +// teal - #0C9A9A +// purple - #99069A +// light-brown - #9A9900 + +function(hljs) { + + var STATEMENTS = 'foreach do while for if from to step else on-error and or not in'; + + // Global commands: Every global command should start with ":" token, otherwise it will be treated as variable. + var GLOBAL_COMMANDS = 'global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime'; + + // Common commands: Following commands available from most sub-menus: + var COMMON_COMMANDS = 'add remove enable disable set get print export edit find run debug error info warning'; + + var LITERALS = 'true false yes no nothing nil null'; + + var OBJECTS = 'traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firewall firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw'; + + // print parameters + // Several parameters are available for print command: + // ToDo: var PARAMETERS_PRINT = 'append as-value brief detail count-only file follow follow-only from interval terse value-list without-paging where info'; + // ToDo: var OPERATORS = '&& and ! not || or in ~ ^ & << >> + - * /'; + // ToDo: var TYPES = 'num number bool boolean str string ip ip6-prefix id time array'; + // ToDo: The following tokens serve as delimiters in the grammar: () [] {} : ; $ / + + var VAR_PREFIX = 'global local set for foreach'; + + var VAR = { + className: 'variable', + variants: [ + {begin: /\$[\w\d#@][\w\d_]*/}, + {begin: /\$\{(.*?)}/} + ] + }; + + var QUOTE_STRING = { + className: 'string', + begin: /"/, end: /"/, + contains: [ + hljs.BACKSLASH_ESCAPE, + VAR, + { + className: 'variable', + begin: /\$\(/, end: /\)/, + contains: [hljs.BACKSLASH_ESCAPE] + } + ] + }; + + var APOS_STRING = { + className: 'string', + begin: /'/, end: /'/ + }; + + var IPADDR = '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b'; + var IPADDR_wBITMASK = IPADDR+'/(3[0-2]|[1-2][0-9]|\\d)'; + ////////////////////////////////////////////////////////////////////// + return { + aliases: ['routeros', 'mikrotik'], + case_insensitive: true, + lexemes: /:?[\w-]+/, + keywords: { + literal: LITERALS, + keyword: STATEMENTS + ' :' + STATEMENTS.split(' ').join(' :') + ' :' + GLOBAL_COMMANDS.split(' ').join(' :'), + }, + contains: [ + { // недопустимые конструкции + variants: [ + { begin: /^@/, end: /$/, }, // dns + { begin: /\/\*/, end: /\*\//, }, // -- comment + { begin: /%%/, end: /$/, }, // -- comment + { begin: /^'/, end: /$/, }, // Monkey one line comment + { begin: /^\s*\/[\w-]+=/, end: /$/, }, // jboss-cli + { begin: /\/\//, end: /$/, }, // Stan comment + { begin: /^\[\\]$/, }, // F# class declaration? + { begin: /<\//, end: />/, }, // HTML tags + { begin: /^facet /, end: /\}/, }, // roboconf - лютый костыль ))) + { begin: '^1\\.\\.(\\d+)$', end: /$/, }, // tap + ], + illegal: /./, + }, + hljs.COMMENT('^#', '$'), + QUOTE_STRING, + APOS_STRING, + VAR, + { // attribute=value + begin: /[\w-]+\=([^\s\{\}\[\]\(\)]+)/, + relevance: 0, + returnBegin: true, + contains: [ + { + className: 'attribute', + begin: /[^=]+/ + }, + { + begin: /=/, + endsWithParent: true, + relevance: 0, + contains: [ + QUOTE_STRING, + APOS_STRING, + VAR, + { + className: 'literal', + begin: '\\b(' + LITERALS.split(' ').join('|') + ')\\b', + }, + /*{ + // IPv4 addresses and subnets + className: 'number', + variants: [ + {begin: IPADDR_wBITMASK+'(,'+IPADDR_wBITMASK+')*'}, //192.168.0.0/24,1.2.3.0/24 + {begin: IPADDR+'-'+IPADDR}, // 192.168.0.1-192.168.0.3 + {begin: IPADDR+'(,'+IPADDR+')*'}, // 192.168.0.1,192.168.0.34,192.168.24.1,192.168.0.1 + ] + }, // */ + /*{ + // MAC addresses and DHCP Client IDs + className: 'number', + begin: /\b(1:)?([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]){1,2}\b/, + }, //*/ + { + // Не форматировать не классифицированные значения. Необходимо для исключения подсветки значений как built_in. + // className: 'number', + begin: /("[^"]*"|[^\s\{\}\[\]]+)/, + }, //*/ + ] + } //*/ + ] + },//*/ + { + // HEX values + className: 'number', + begin: /\*[0-9a-fA-F]+/, + }, //*/ + + { + begin: '\\b(' + COMMON_COMMANDS.split(' ').join('|') + ')([\\s\[\(]|\])', + returnBegin: true, + contains: [ + { + className: 'builtin-name', //'function', + begin: /\w+/, + }, + ], + }, + + { + className: 'built_in', + variants: [ + {begin: '(\\.\\./|/|\\s)((' + OBJECTS.split(' ').join('|') + ');?\\s)+',relevance: 10,}, + {begin: /\.\./,}, + ], + },//*/ + ] + }; +}; \ No newline at end of file diff --git a/docs/js/languages/ruby.js b/docs/js/languages/ruby.js index 20680ad..7f771c4 100644 --- a/docs/js/languages/ruby.js +++ b/docs/js/languages/ruby.js @@ -124,6 +124,7 @@ module.exports = function(hljs) { }, { // regexp container begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\s*', + keywords: 'unless', contains: [ IRB_OBJECT, { diff --git a/docs/js/languages/rust.js b/docs/js/languages/rust.js index 43af503..c4b0d1c 100644 --- a/docs/js/languages/rust.js +++ b/docs/js/languages/rust.js @@ -1,26 +1,30 @@ module.exports = function(hljs) { - var NUM_SUFFIX = '([uif](8|16|32|64|size))\?'; + var NUM_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\?'; var KEYWORDS = 'alignof as be box break const continue crate do else enum extern ' + 'false fn for if impl in let loop match mod mut offsetof once priv ' + 'proc pub pure ref return self Self sizeof static struct super trait true ' + - 'type typeof unsafe unsized use virtual while where yield move default ' + - 'int i8 i16 i32 i64 isize ' + - 'uint u8 u32 u64 usize ' + - 'float f32 f64 ' + - 'str char bool' + 'type typeof unsafe unsized use virtual while where yield move default'; var BUILTINS = - // prelude - 'Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone ' + + // functions + 'drop ' + + // types + 'i8 i16 i32 i64 i128 isize ' + + 'u8 u16 u32 u64 u128 usize ' + + 'f32 f64 ' + + 'str char bool ' + + 'Box Option Result String Vec ' + + // traits + 'Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug ' + 'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' + - 'Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option ' + - 'Result SliceConcatExt String ToString Vec ' + + 'Extend IntoIterator DoubleEndedIterator ExactSizeIterator ' + + 'SliceConcatExt ToString ' + // macros 'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' + 'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' + 'include_bin! include_str! line! local_data_key! module_path! ' + 'option_env! print! println! select! stringify! try! unimplemented! ' + - 'unreachable! vec! write! writeln! macro_rules!'; + 'unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!'; return { aliases: ['rs'], keywords: { @@ -40,7 +44,7 @@ module.exports = function(hljs) { { className: 'string', variants: [ - { begin: /r(#*)".*?"\1(?!#)/ }, + { begin: /r(#*)"(.|\n)*?"\1(?!#)/ }, { begin: /b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ } ] }, @@ -85,7 +89,7 @@ module.exports = function(hljs) { }, { className: 'class', - beginKeywords: 'trait enum struct', end: '{', + beginKeywords: 'trait enum struct union', end: '{', contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {endsParent: true}) ], diff --git a/docs/js/languages/scheme.js b/docs/js/languages/scheme.js index 26fced7..f4cd10c 100644 --- a/docs/js/languages/scheme.js +++ b/docs/js/languages/scheme.js @@ -96,7 +96,10 @@ module.exports = function(hljs) { }; var QUOTED_LIST = { - begin: /'/, + variants: [ + { begin: /'/ }, + { begin: '`' } + ], contains: [ { begin: '\\(', end: '\\)', diff --git a/docs/js/languages/shell.js b/docs/js/languages/shell.js new file mode 100644 index 0000000..8217981 --- /dev/null +++ b/docs/js/languages/shell.js @@ -0,0 +1,14 @@ +module.exports = function(hljs) { + return { + aliases: ['console'], + contains: [ + { + className: 'meta', + begin: '^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]', + starts: { + end: '$', subLanguage: 'bash' + } + }, + ] + } +}; \ No newline at end of file diff --git a/docs/js/languages/swift.js b/docs/js/languages/swift.js index b996240..33a065a 100644 --- a/docs/js/languages/swift.js +++ b/docs/js/languages/swift.js @@ -2,9 +2,9 @@ module.exports = function(hljs) { var SWIFT_KEYWORDS = { keyword: '__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity ' + 'break case catch class continue convenience default defer deinit didSet do ' + - 'dynamic dynamicType else enum extension fallthrough false final for func ' + + 'dynamic dynamicType else enum extension fallthrough false fileprivate final for func ' + 'get guard if import in indirect infix init inout internal is lazy left let ' + - 'mutating nil none nonmutating operator optional override postfix precedence ' + + 'mutating nil none nonmutating open operator optional override postfix precedence ' + 'prefix private protocol Protocol public repeat required rethrows return ' + 'right self Self set static struct subscript super switch throw throws true ' + 'try try! try? Type typealias unowned var weak where while willSet', diff --git a/docs/js/languages/typescript.js b/docs/js/languages/typescript.js index 0135c2f..e65fe04 100644 --- a/docs/js/languages/typescript.js +++ b/docs/js/languages/typescript.js @@ -4,7 +4,8 @@ module.exports = function(hljs) { 'in if for while finally var new function do return void else break catch ' + 'instanceof with throw case default try this switch continue typeof delete ' + 'let yield const class public private protected get set super ' + - 'static implements enum export import declare type namespace abstract', + 'static implements enum export import declare type namespace abstract ' + + 'as from extends async await', literal: 'true false null undefined NaN Infinity', built_in: @@ -14,7 +15,7 @@ module.exports = function(hljs) { 'TypeError URIError Number Math Date String RegExp Array Float32Array ' + 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' + 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' + - 'module console window document any number boolean string void' + 'module console window document any number boolean string void Promise' }; return { @@ -55,7 +56,35 @@ module.exports = function(hljs) { contains: [ hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, - hljs.REGEXP_MODE + hljs.REGEXP_MODE, + { + className: 'function', + begin: '(\\(.*?\\)|' + hljs.IDENT_RE + ')\\s*=>', returnBegin: true, + end: '\\s*=>', + contains: [ + { + className: 'params', + variants: [ + { + begin: hljs.IDENT_RE + }, + { + begin: /\(\s*\)/, + }, + { + begin: /\(/, end: /\)/, + excludeBegin: true, excludeEnd: true, + keywords: KEYWORDS, + contains: [ + 'self', + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE + ] + } + ] + } + ] + } ], relevance: 0 }, diff --git a/docs/js/languages/yaml.js b/docs/js/languages/yaml.js index 083ee85..585f125 100644 --- a/docs/js/languages/yaml.js +++ b/docs/js/languages/yaml.js @@ -1,5 +1,5 @@ module.exports = function(hljs) { - var LITERALS = {literal: '{ } true false yes no Yes No True False null'}; + var LITERALS = 'true false yes no null'; var keyPrefix = '^[ \\-]*'; var keyName = '[a-zA-Z_][\\w\\-]*'; @@ -24,7 +24,8 @@ module.exports = function(hljs) { relevance: 0, variants: [ {begin: /'/, end: /'/}, - {begin: /"/, end: /"/} + {begin: /"/, end: /"/}, + {begin: /\S+/} ], contains: [ hljs.BACKSLASH_ESCAPE, @@ -74,10 +75,13 @@ module.exports = function(hljs) { begin: '^ *-', relevance: 0 }, - STRING, hljs.HASH_COMMENT_MODE, - hljs.C_NUMBER_MODE - ], - keywords: LITERALS + { + beginKeywords: LITERALS, + keywords: {literal: LITERALS} + }, + hljs.C_NUMBER_MODE, + STRING + ] }; }; \ No newline at end of file diff --git a/less/main.less b/less/main.less deleted file mode 100755 index f939c7e..0000000 --- a/less/main.less +++ /dev/null @@ -1,76 +0,0 @@ -// @import "node_modules/lesshat/build/lesshat.less"; -// Core variables and mixins -@import "node_modules/bootstrap/less/variables.less"; -@import "node_modules/bootstrap/less/mixins.less"; - -// Reset -@import "node_modules/bootstrap/less/normalize.less"; -@import "node_modules/bootstrap/less/print.less"; - -// Core CSS -@import "node_modules/bootstrap/less/scaffolding.less"; -@import "node_modules/bootstrap/less/type.less"; -@import "node_modules/bootstrap/less/code.less"; -@import "node_modules/bootstrap/less/grid.less"; -@import "node_modules/bootstrap/less/tables.less"; -@import "node_modules/bootstrap/less/forms.less"; -// @import "node_modules/bootstrap/less/buttons.less"; - -// Components -@import "node_modules/bootstrap/less/component-animations.less"; -// @import "node_modules/bootstrap/less/glyphicons.less"; - -// FA -// @import "node_modules/font-awesome/less/mixins.less"; -// @import "node_modules/font-awesome/less/path.less"; -// @import "node_modules/font-awesome/less/core.less"; -// @import "node_modules/font-awesome/less/larger.less"; -// @import "node_modules/font-awesome/less/fixed-width.less"; -// @import "node_modules/font-awesome/less/list.less"; -// @import "node_modules/font-awesome/less/bordered-pulled.less"; -// @import "node_modules/font-awesome/less/spinning.less"; -// @import "node_modules/font-awesome/less/rotated-flipped.less"; -// @import "node_modules/font-awesome/less/stacked.less"; -// @import "node_modules/font-awesome/less/icons.less"; - -// FA-Animate -// @import (less) "node_modules/font-awesome-animation/dist/font-awesome-animation.css"; - -// Animate.css -// @import (less) "node_modules/animate.css/animate.css"; - -// @import "node_modules/bootstrap/less/dropdowns.less"; -@import "node_modules/bootstrap/less/button-groups.less"; -@import "node_modules/bootstrap/less/input-groups.less"; -@import "node_modules/bootstrap/less/navs.less"; -@import "node_modules/bootstrap/less/navbar.less"; -// @import "node_modules/bootstrap/less/breadcrumbs.less"; -// @import "node_modules/bootstrap/less/pagination.less"; -// @import "node_modules/bootstrap/less/pager.less"; -@import "node_modules/bootstrap/less/labels.less"; -@import "node_modules/bootstrap/less/badges.less"; -// @import "node_modules/bootstrap/less/jumbotron.less"; -// @import "node_modules/bootstrap/less/thumbnails.less"; -@import "node_modules/bootstrap/less/alerts.less"; -// @import "node_modules/bootstrap/less/progress-bars.less"; -// @import "node_modules/bootstrap/less/media.less"; -// @import "node_modules/bootstrap/less/list-group.less"; -// @import "node_modules/bootstrap/less/panels.less"; -// @import "node_modules/bootstrap/less/wells.less"; -// @import "node_modules/bootstrap/less/close.less"; - -// Components w/ JavaScript -// @import "node_modules/bootstrap/less/modals.less"; -// @import "node_modules/bootstrap/less/tooltip.less"; -// @import "node_modules/bootstrap/less/popovers.less"; -// @import "node_modules/bootstrap/less/carousel.less"; - -// Utility classes -@import "node_modules/bootstrap/less/utilities.less"; -@import "node_modules/bootstrap/less/responsive-utilities.less"; - -@import "theme.less"; -// @import "theme-debug.less"; -//@import "_syntax.less"; -@import "_titatoggle.less"; -@import (less) "node_modules/highlight.js/styles/github.css"; \ No newline at end of file diff --git a/less/titatoggle.less b/less/titatoggle.less deleted file mode 100755 index 52dc684..0000000 --- a/less/titatoggle.less +++ /dev/null @@ -1,5 +0,0 @@ -//@import "bower_components/lesshat/build/lesshat.less"; -@import "node_modules/bootstrap/less/variables.less"; -@import "node_modules/bootstrap/less/mixins.less"; - -@import "_titatoggle.less"; diff --git a/package.json b/package.json index 1e75a2e..92e0099 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "titatoggle", - "version": "1.2.15", + "version": "2.0.0", "description": "Default bootstrap checkbox toggle buttons. Just default Bootstrap, add a class to use these awesome toggle buttons. Browser support: Internet Explorer 9, FireFox, Safari, Chrome, Safari Ios, Stock Android browser 4.2, Chrome Android", "main": "Gruntfile.js", "scripts": { @@ -12,6 +12,7 @@ "type": "git", "url": "https://github.com/kleinejan/titatoggle" }, + "license": "GPL-2.0", "keywords": [ "css", "less", @@ -22,9 +23,8 @@ "buttons", "toggle" ], - "license": "GPLv2", "devDependencies": { - "bootstrap": "^3.3.7", + "bootstrap": "^4.0.0", "browser-sync": "^2.18.7", "del": "^2.2.2", "gh-pages": "^0.12.0", @@ -39,6 +39,7 @@ "gulp-less": "^3.3.0", "gulp-path": "^3.0.3", "gulp-rename": "^1.2.2", + "gulp-sass": "^3.1.0", "gulp-snippet-highlight": "^1.0.0", "gulp-watch": "^4.3.11", "highlight": "^0.2.4", diff --git a/less/_syntax.less b/scss/_syntax.scss similarity index 100% rename from less/_syntax.less rename to scss/_syntax.scss diff --git a/scss/_titatoggle.scss b/scss/_titatoggle.scss new file mode 100644 index 0000000..8fe796b --- /dev/null +++ b/scss/_titatoggle.scss @@ -0,0 +1,848 @@ +/******************************************************* +Variables +*******************************************************/ +$white: #FFF; +// Sizes +$scrubber-width-default: 20px; +$scrubber-width-sm: 10px; +$scrubber-width-md: 30px; +$scrubber-width-lg: 40px; + +// Scrubber text +// - off +$slider-text-unchecked: "Off"; +$slider-text-unchecked-color: #000; +// - on +$slider-text-checked: "On"; +$slider-text-checked-color: #fff; + +/******************************************************* +Animation +*******************************************************/ + +@keyframes popIn { + 0% { transform: scale(1, 1); } + 25% { transform: scale(1.2, 1); } + 50% { transform: scale(1.4, 1); } + 100% { transform: scale(1, 1); } +} + +@keyframes popOut { + 0% { transform: scale(1, 1); } + 25% { transform: scale(1.2, 1); } + 50% { transform: scale(1.4, 1); } + 100% { transform: scale(1, 1); } +} + +@keyframes splashIn { + 0% { transform: scale(1); opacity: 1; } + 25% { transform: scale(1.1); opacity: .8 } + 50% { transform: scale(1.1); opacity: .9; } + 100% { transform: scale(1); opacity: 1; } +} + +@keyframes splashOut { + 0% { transform: scale(1); opacity: 1; } + 25% { transform: scale(1); opacity: .8 } + 50% { transform: scale(1); opacity: .9; } + 100% { transform: scale(.5); opacity: 1; } +} + +/******************************************************* +Main Slider basics +*******************************************************/ + +%checkbox-toggle, +.checkbox-toggle { + position: relative; + + input[type="checkbox"] { + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 0%; + height: 0%; + margin: 0 0; + cursor: pointer; + opacity: 0; + + + &:focus + *:before + { + outline:solid $input-focus-border-color 2px; + } + } + + input + span { + cursor: pointer; + user-select: none; + + &:before { + position: absolute; + left: 0px; + display: inline-block; + } + + > h4 { + display: inline; + } + } +} + +.form-horizontal [class^='checkbox'] { + input + span:after { + top: 7px; + } +} + +/******************************************************* +Main Slider +*******************************************************/ + +%checkbox-slider { + @extend %checkbox-toggle; + + input { + + + span { + padding-left: $scrubber-width-default * 2; + + &:before { + content: ""; + height: $scrubber-width-default; + width: $scrubber-width-default * 2; + background: rgba(100, 100, 100, .2); + box-shadow: inset 0 0 5px rgba(0, 0, 0, .8); + transition: background .2s ease-out; + } + // Off State + &:after { + width: $scrubber-width-default; + height: $scrubber-width-default; + position: absolute; + left: 0px; + top: 0; + display: block; + background: $white; + transition: margin-left 0.1s ease-in-out; + text-align: center; + font-weight: bold; + content: ""; + } + } + // On state + &:checked + span:after { + margin-left: $scrubber-width-default; + content: ""; + } + &:checked + span:before { + transition: background .2s ease-in; + } + + } + +} + + +.checkbox-slider { + @extend %checkbox-toggle; + @extend %checkbox-slider; +} + +/******************************************************* +Slider default +*******************************************************/ + +%checkbox-slider--default { + @extend %checkbox-slider; + + input + span:after { + background: $white; + border: solid transparent 1px; + background-clip: content-box; + } + + input:checked + span:after { + background: $success; + border: solid transparent 1px; + background-clip: content-box; + } + +} + +.checkbox-slider--default { + @extend %checkbox-slider--default; +} + +/******************************************************* +Slider default rounded +*******************************************************/ + +.checkbox-slider--a-rounded { + @extend %checkbox-slider--default; + + input + span:after, + input + span:before { + border-radius: $border-radius; + } + + input + span:after, + input:checked + span:after { + border: solid transparent 2px; + background-clip: content-box; + } +} + +/******************************************************* +Slider default rounded Sizes +*******************************************************/ + +.checkbox-slider--a-rounded { + + &.checkbox-slider-sm { + + input + span:before, + input + span:after { + border-radius: $border-radius-sm; + } + } + + &.checkbox-slider-md { + + input + span:before, + input + span:after { + border-radius: $border-radius; + } + } + + &.checkbox-slider-lg { + + input + span:before, + input + span:after { + border-radius: $border-radius-lg; + } + } + +} + +/******************************************************* +Slider A +*******************************************************/ + +.checkbox-slider--a { + @extend %checkbox-slider; + + input { + + span { + padding-left: $scrubber-width-default * 3; + } + + + span:before { + content: ""; + width: $scrubber-width-default * 3; + } + + + span:after { + width: $scrubber-width-default * 2; + font-size: $scrubber-width-default / 2; + color: $slider-text-unchecked-color; + content: $slider-text-unchecked; + border: solid transparent 1px; + background-clip: content-box; + } + + &:checked + span:after { + content: $slider-text-checked; + color: $slider-text-checked-color; + background: $success; + border: solid transparent 1px; + background-clip: content-box; + } + } +} + +/******************************************************* +Slider A SIZES +*******************************************************/ + +.checkbox-slider--a { + + &.checkbox-slider-sm { + + input + span { + padding-left: $scrubber-width-sm * 3; + } + + input + span:before { + width: $scrubber-width-sm * 3; + } + + input + span:after { + width: $scrubber-width-sm * 2; + font-size: $scrubber-width-sm / 2; + } + input:checked + span:after { + margin-left: $scrubber-width-sm; + } + } + + &.checkbox-slider-md { + + input + span { + padding-left: $scrubber-width-md * 3; + } + + input + span:before { + width: $scrubber-width-md * 3; + } + + input + span:after { + width: $scrubber-width-md * 2; + font-size: $scrubber-width-md / 2; + } + input:checked + span:after { + margin-left: $scrubber-width-md; + } + } + + &.checkbox-slider-lg { + + input + span { + padding-left: $scrubber-width-lg * 3;; + } + + input + span:before { + width: $scrubber-width-lg * 3; + } + + input + span:after { + width: $scrubber-width-lg * 2; + font-size: $scrubber-width-lg / 2; + } + + input:checked + span:after { + margin-left: $scrubber-width-lg; + } + } +} + +/******************************************************* +Slider B +*******************************************************/ + +%checkbox-slider--b { + @extend %checkbox-slider; + + input { + + + span { + padding-left: $scrubber-width-default * 2; + } + + + span:before { + border-radius: $scrubber-width-default; + width: $scrubber-width-default * 2; + } + + + span:after { + background: $white; + content: ""; + width: $scrubber-width-default; + border: solid transparent 2px; + background-clip: padding-box; + border-radius: $scrubber-width-default; + } + &:not(:checked) + span:after { + animation: popOut ease-in .3s normal; + } + &:checked + span:after { + content: ""; + margin-left: $scrubber-width-default; + border: solid transparent 2px; + background-clip: padding-box; + animation: popIn ease-in .3s normal; + } + + &:checked + span:before { + background: $success; + } + } + +} + +.checkbox-slider--b { + @extend %checkbox-slider--b; +} + +/******************************************************* +Slider B Sizes +*******************************************************/ + +.checkbox-slider--b { + + &.checkbox-slider-md { + + input + span:before { + border-radius: $scrubber-width-md; + } + + input + span:after { + border-radius: $scrubber-width-md; + } + + } + + &.checkbox-slider-lg { + + input + span:before { + border-radius: $scrubber-width-lg; + } + + input + span:after { + border-radius: $scrubber-width-lg; + } + + } +} + +/******************************************************* +Slider B-flat +*******************************************************/ + +.checkbox-slider--b-flat { + @extend %checkbox-slider--b; + + input { + + + span:before { + box-shadow: none; + } + + } + +} + +/******************************************************* +Slider C +*******************************************************/ + +%checkbox-slider--c { + @extend %checkbox-slider; + + input { + + + span { + padding-left: $scrubber-width-default * 2; + } + + + span:before { + height: 2px !important; // needs to be + top: $scrubber-width-default / 2; + box-shadow: none; + width: $scrubber-width-default * 2; + background: $gray-500; + } + + + span:after { + box-shadow: none; + width: $scrubber-width-default; + border: solid $gray-500 2px; + border-radius: $scrubber-width-default; + } + + &:checked + span:after { + background: $success; + margin-left: $scrubber-width-default; + border: solid $success 2px; + animation: splashIn ease-in .3s normal; + } + + &:checked + span:before { + background: $success; + } + + } + +} + +.checkbox-slider--c { + @extend %checkbox-slider--c; +} + +/******************************************************* +Slider C Sizes +*******************************************************/ + +.checkbox-slider--c { + + &.checkbox-slider-sm { + + input + span:before { + top: $scrubber-width-sm / 2 - 1; + } + } + + &.checkbox-slider-md { + + input + span:before { + top: $scrubber-width-md / 2 - 1; + } + + input + span:after { + width: $scrubber-width-md; + border-radius: $scrubber-width-md; + } + } + + &.checkbox-slider-lg { + + input + span:before { + top: $scrubber-width-lg / 2 - 1; //correct border + } + input + span:after { + width: $scrubber-width-lg; + border-radius: $scrubber-width-lg; + } + } + +} + +// Horizontal Form +.form-horizontal [class*='checkbox-slider--c'] { + + &.checkbox-slider-sm { + + input + span:before { + top: $scrubber-width-sm / 2 + 5; + } + } + + &.checkbox-slider-md { + + input + span:before { + top: $scrubber-width-md / 2 + 5; + } + + + } + + &.checkbox-slider-lg { + + input + span:before { + top: $scrubber-width-lg / 2 + 5; + } + + } +} + +/******************************************************* +Slider C-weight +*******************************************************/ + +.checkbox-slider--c-weight { + @extend %checkbox-slider--c; + + input { + + + span:before { + height: 1px !important; // needs to be + } + + &:checked + span:before { + height: 2px !important; // needs to be + } + &:not(:checked) + span:after { + transform: scale(.7); + left: -6px + } + } + +} + +/****************************************************** +State Disabled +*******************************************************/ + +.checkbox-slider--default input:disabled { + + span:after { background: $gray-100; } + + span:before { box-shadow: 0 0 0 black; } + + span { + color: $gray-100; + } +} + +.checkbox-slider--a-rounded input:disabled, +.checkbox-slider--a input:disabled { + + span:after { background: $gray-100; color: $white; } + + span:before { box-shadow: 0 0 0 black; } + + span { + color: $gray-100; + } +} + +.checkbox-slider--b-flat input:disabled, +.checkbox-slider--b input:disabled { + + + span:after { + + border: solid transparent 2px; + border-radius: $scrubber-width-lg; + } + + span:before { box-shadow: 0 0 0 black; } + + span { + color: $gray-100; + } + + &:checked + span:before { + background: $gray-100; + } +} + +.checkbox-slider--c-weight input:disabled, +.checkbox-slider--c input:disabled { + &:checked + span:after { + background: $gray-100; + } + + + span:after { + border-color: $gray-100; + } + + span:before { background: $gray-100; } + + span { + color: $gray-100; + } + +} + +/******************************************************* +Indicators +*******************************************************/ +input:checked + .indicator-primary { + color: $primary; +} + +input:checked + .indicator-success { + color: $success; +} + +input:checked + .indicator-info { + color: $info; +} + +input:checked + .indicator-warning { + color: $warning; +} + +input:checked + .indicator-danger { + color: $danger; +} + +/******************************************************* +Sizes +*******************************************************/ + +// Small +.checkbox-slider-sm { + line-height: $scrubber-width-sm; + + input + span { + padding-left: $scrubber-width-sm * 2; + } + + input + span:before { + width: $scrubber-width-sm * 2; + } + + input + span:after, + input + span:before { + height: $scrubber-width-sm; + line-height: $scrubber-width-sm; + } + + input + span:after { + width: $scrubber-width-sm; + vertical-align: middle; + } + + input:checked + span:after { + margin-left: $scrubber-width-sm; + } +} + +// Medium +.checkbox-slider-md { + line-height: $scrubber-width-md; + + input + span { + padding-left: $scrubber-width-md * 2; + } + + input + span:before { + width: $scrubber-width-md * 2; + } + + input + span:after, + input + span:before { + height: $scrubber-width-md; + line-height: $scrubber-width-md; + } + + input + span:after { + width: $scrubber-width-md; + vertical-align: middle; + } + + input:checked + span:after { + margin-left: $scrubber-width-md; + } +} + +// Large +.checkbox-slider-lg { + line-height: $scrubber-width-lg; + + input + span { + padding-left: $scrubber-width-lg * 2; + } + + input + span:before { + width: $scrubber-width-lg * 2; + } + + input + span:after, + input + span:before { + height: $scrubber-width-lg; + line-height: $scrubber-width-lg; + } + input + span:after { + width: $scrubber-width-lg; + vertical-align: middle; + } + + input:checked + span:after { + margin-left: $scrubber-width-lg; + } +} + +/******************************************************* +Variations +*******************************************************/ +// primary +.checkbox-slider-primary { + &.checkbox-slider--default, + &.checkbox-slider--a, + &.checkbox-slider--a-rounded, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + background: $primary; + background-clip: content-box; + } + } + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + border-color: $primary; + } + } + + &.checkbox-slider--b, + &.checkbox-slider--b-flat, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:before { + background: $primary; + } + } +} + +// info +.checkbox-slider-info { + &.checkbox-slider--default, + &.checkbox-slider--a, + &.checkbox-slider--a-rounded, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + background: $info; + background-clip: content-box; + } + } + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + border-color: $info; + } + } + + &.checkbox-slider--b, + &.checkbox-slider--b-flat, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:before { + background: $info; + } + } +} + +// warning +.checkbox-slider-warning { + &.checkbox-slider--default, + &.checkbox-slider--a, + &.checkbox-slider--a-rounded, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + background: $warning; + background-clip: content-box; + } + } + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + border-color: $warning; + } + } + + &.checkbox-slider--b, + &.checkbox-slider--b-flat, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:before { + background: $warning; + } + } +} + +// danger +.checkbox-slider-danger { + &.checkbox-slider--default, + &.checkbox-slider--a, + &.checkbox-slider--a-rounded, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + background: $danger; + background-clip: content-box; + } + } + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:after { + border-color: $danger; + } + } + + &.checkbox-slider--b, + &.checkbox-slider--b-flat, + &.checkbox-slider--c, + &.checkbox-slider--c-weight { + input:checked + span:before { + background: $danger; + } + } +} + diff --git a/scss/main.scss b/scss/main.scss new file mode 100755 index 0000000..d05198f --- /dev/null +++ b/scss/main.scss @@ -0,0 +1,78 @@ +//// @import "node_modules/lesshat/build/lesshat.less"; +//// Core variables and mixins +//@import "node_modules/bootstrap/less/variables.less"; +//@import "node_modules/bootstrap/less/mixins.less"; +// +//// Reset +//@import "node_modules/bootstrap/less/normalize.less"; +//@import "node_modules/bootstrap/less/print.less"; +// +//// Core CSS +//@import "node_modules/bootstrap/less/scaffolding.less"; +//@import "node_modules/bootstrap/less/type.less"; +//@import "node_modules/bootstrap/less/code.less"; +//@import "node_modules/bootstrap/less/grid.less"; +//@import "node_modules/bootstrap/less/tables.less"; +//@import "node_modules/bootstrap/less/forms.less"; +//// @import "node_modules/bootstrap/less/buttons.less"; +// +//// Components +//@import "node_modules/bootstrap/less/component-animations.less"; +//// @import "node_modules/bootstrap/less/glyphicons.less"; +// +//// FA +//// @import "node_modules/font-awesome/less/mixins.less"; +//// @import "node_modules/font-awesome/less/path.less"; +//// @import "node_modules/font-awesome/less/core.less"; +//// @import "node_modules/font-awesome/less/larger.less"; +//// @import "node_modules/font-awesome/less/fixed-width.less"; +//// @import "node_modules/font-awesome/less/list.less"; +//// @import "node_modules/font-awesome/less/bordered-pulled.less"; +//// @import "node_modules/font-awesome/less/spinning.less"; +//// @import "node_modules/font-awesome/less/rotated-flipped.less"; +//// @import "node_modules/font-awesome/less/stacked.less"; +//// @import "node_modules/font-awesome/less/icons.less"; +// +//// FA-Animate +//// @import (less) "node_modules/font-awesome-animation/dist/font-awesome-animation.css"; +// +//// Animate.css +//// @import (less) "node_modules/animate.css/animate.css"; +// +//// @import "node_modules/bootstrap/less/dropdowns.less"; +//@import "node_modules/bootstrap/less/button-groups.less"; +//@import "node_modules/bootstrap/less/input-groups.less"; +//@import "node_modules/bootstrap/less/navs.less"; +//@import "node_modules/bootstrap/less/navbar.less"; +//// @import "node_modules/bootstrap/less/breadcrumbs.less"; +//// @import "node_modules/bootstrap/less/pagination.less"; +//// @import "node_modules/bootstrap/less/pager.less"; +//@import "node_modules/bootstrap/less/labels.less"; +//@import "node_modules/bootstrap/less/badges.less"; +//// @import "node_modules/bootstrap/less/jumbotron.less"; +//// @import "node_modules/bootstrap/less/thumbnails.less"; +//@import "node_modules/bootstrap/less/alerts.less"; +//// @import "node_modules/bootstrap/less/progress-bars.less"; +//// @import "node_modules/bootstrap/less/media.less"; +//// @import "node_modules/bootstrap/less/list-group.less"; +//// @import "node_modules/bootstrap/less/panels.less"; +//// @import "node_modules/bootstrap/less/wells.less"; +//// @import "node_modules/bootstrap/less/close.less"; +// +//// Components w/ JavaScript +//// @import "node_modules/bootstrap/less/modals.less"; +//// @import "node_modules/bootstrap/less/tooltip.less"; +//// @import "node_modules/bootstrap/less/popovers.less"; +//// @import "node_modules/bootstrap/less/carousel.less"; +// +//// Utility classes +//@import "node_modules/bootstrap/less/utilities.less"; +//@import "node_modules/bootstrap/less/responsive-utilities.less"; + +@import "node_modules/bootstrap/bootstrap; + +@import "theme.scss"; +// @import "theme-debug.scss"; +//@import "_syntax.less"; +@import "_titatoggle.scss"; +@import (less) "node_modules/highlight.js/styles/github.css"; diff --git a/less/theme.less b/scss/theme.scss similarity index 100% rename from less/theme.less rename to scss/theme.scss diff --git a/scss/titatoggle.scss b/scss/titatoggle.scss new file mode 100755 index 0000000..b504dd6 --- /dev/null +++ b/scss/titatoggle.scss @@ -0,0 +1,6 @@ +//@import "bower_components/lesshat/build/lesshat.less"; +@import "node_modules/bootstrap/scss/_functions"; +@import "node_modules/bootstrap/scss/_variables.scss"; +//@import "node_modules/bootstrap/scss/mixins.less"; + +@import "_titatoggle.scss";