diff --git a/.gitattributes b/.gitattributes index e02a2ef..1b43de9 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,4 +2,5 @@ *.md linguist-detectable -linguist-documentation linguist-language=Markdown export/** linguist-generated -src/pages/api-docs/** linguist-generated \ No newline at end of file +src/pages/api-docs/** linguist-generated +api-generator/api/** linguist-generated \ No newline at end of file diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index a180090..07882e5 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -21,6 +21,11 @@ jobs: with: node-version: '20' + - name: Setting up Haxe (for api docs) + uses: krdlab/setup-haxe@v1 + with: + haxe-version: 4.2.5 + - name: Cache dependencies uses: actions/cache@v3 with: @@ -29,8 +34,16 @@ jobs: restore-keys: | ${{ runner.os }}-node- + - name: Install Haxelib dependencies + run: | + haxelib --global install dox 1.6.0 --quiet + haxelib --global install hxtemplo 3.2.0 --quiet + haxelib --global install hxparse 4.3.0 --quiet + haxelib --global install hxargs 4.0.0 --quiet + haxelib --global install markdown 1.1.3 --quiet + - run: npm install - - run: npm run build ./ + - run: npm run build:full ./ - name: Deploy uses: peaceiris/actions-gh-pages@v4 diff --git a/.gitignore b/.gitignore index 9b144d2..da7895f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ export/* -node_modules/* \ No newline at end of file +node_modules/* +.vscode/* \ No newline at end of file diff --git a/api-generator/.gitignore b/api-generator/.gitignore new file mode 100644 index 0000000..32122b2 --- /dev/null +++ b/api-generator/.gitignore @@ -0,0 +1,2 @@ +pages/* +bin/* \ No newline at end of file diff --git a/api-generator/Macro.hx b/api-generator/Macro.hx new file mode 100644 index 0000000..c1b8ed7 --- /dev/null +++ b/api-generator/Macro.hx @@ -0,0 +1,37 @@ +import haxe.io.Path; +import haxe.macro.Expr; +import sys.FileSystem; +import sys.io.Process; + +using StringTools; + +class Macro { + // meh... + public macro static function getDoxPath():Expr { + var output = getProcessOutput('haxelib', ['--global', 'path', 'dox']); + for (line in output.split("\n")) { + var path = Path.normalize(line.trim()); + if (FileSystem.exists(path)) { + var path = Path.directory(Path.removeTrailingSlashes(path.trim())); + return macro $v{path}; + } + } + throw "dox path not found"; + } + + static function getProcessOutput(cmd:String, ?args:Array):String { + try { + var process = new Process(cmd, args); + var output = ""; + + try { + output = process.stdout.readAll().toString(); + } catch (_:Dynamic) {} + + process.close(); + return output; + } catch (_:Dynamic) { + return ""; + } + } +} \ No newline at end of file diff --git a/api-generator/Main.hx b/api-generator/Main.hx new file mode 100644 index 0000000..6a8618c --- /dev/null +++ b/api-generator/Main.hx @@ -0,0 +1,81 @@ +package; + +import dox.Api; +import dox.Config; +import dox.Dox; +import haxe.rtti.CType.TypeInfos; +import sys.io.File; + +using StringTools; + +class Main { + public static var defines:Map; + + static function main() { + /*defines = [ + for (line in File.getContent("../xml/bin/defines.txt").split("\n")) { + var parts = ~/ /.split(line); + parts[0] => parts[1]; + } + ];*/ + + // Generate doc-filter.xml if it exists + if(sys.FileSystem.exists("api/doc.xml")) { + var cwd = Sys.getCwd(); + Sys.setCwd(cwd + "/api"); + Sys.command("python3 filter.py"); + Sys.setCwd(cwd); + sys.FileSystem.rename("api/doc.xml", "api/doc-old.xml"); // so it doesnt convert it again + } + + // otherwise, check if cached doc-filter.xml exists + if(!sys.FileSystem.exists("api/doc-filter.xml")) { + trace("Couldn't find doc-filter.xml"); + Sys.exit(1); + } + + var config = new Config(Macro.getDoxPath()); + config.inputPath = "api/doc-filter.xml"; + config.outputPath = "../export/api-docs"; + config.rootPath = "./"; + config.loadTheme("./theme"); + config.pageTitle = "Codename Engine API"; + config.toplevelPackage = "funkin"; + //config.defines = [Version => defines["flixel"]]; + config.addFilter("(__ASSET__|ApplicationMain|DocumentClass|DefaultAssetLibrary|Main|NMEPreloader|zpp_nape)", false); + config.addFilter("funkin|scripting", true); + //config.rootPath = ""; + + Dox.run(config, CodenameApi.new); + } +} + +class CodenameApi extends Api { + override function getSourceLink(type:TypeInfos):Null { + var module = type.module != null ? type.module : type.path; + var ending = ".hx"; + var url = "https://github.com/FNF-CNE-Devs/CodenameEngine/blob/main/source/"; + + return haxe.io.Path.join([url, module.replace(".", "/") + ending]); + } + + public function getSourceLinkWithLine(type:TypeInfos, line:Int):Null { + var module = type.module != null ? type.module : type.path; + var ending = ".hx"; + var url = "https://github.com/FNF-CNE-Devs/CodenameEngine/blob/main/source/"; + + return haxe.io.Path.join([url, module.replace(".", "/") + ending + "#L" + line]); + } + + function isOneOf(module:String, classes:Array):Bool { + for (cl in classes) { + if (module.indexOf(cl) >= 0) + return true; + } + return false; + } + + override function hasSourceLink(type:TypeInfos):Bool { + return type.file != null && type.file.endsWith(".hx"); + } +} \ No newline at end of file diff --git a/api-generator/api/.gitignore b/api-generator/api/.gitignore new file mode 100644 index 0000000..e9d8ec4 --- /dev/null +++ b/api-generator/api/.gitignore @@ -0,0 +1,2 @@ +doc.xml +doc-old.xml \ No newline at end of file diff --git a/api-generator/api/doc-filter.xml b/api-generator/api/doc-filter.xml new file mode 100644 index 0000000..5a247c1 --- /dev/null +++ b/api-generator/api/doc-filter.xml @@ -0,0 +1,18385 @@ + + + + + + + "Beta" + + + + + + + + + + + null + + + + + + + false + + + + + + + false + + + + + + + + + + + + + + + + + + + + [] + + + + + + + false + + hide + + + + + + 0 + + + + + + + "../../../../" + + + + + + + false + + + + <__threadCycle expr="0" line="90" static="1"> + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1280 + + + + + + + 720 + + + + + + + true + + + + + + + false + + + + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + new FlxMatrix() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + + + + { def : NONE } + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + + + + { def : NONE } + + + + + + + + + + + + + + + + + + + + + + + { y : 0, x : 0 } + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__oldScrollFactor expr="new FlxPoint()" line="253" static="1"> + + new FlxPoint() + + <__oldScale expr="new FlxPoint()" line="254" static="1"> + + new FlxPoint() + + + + + + + [] + + + + NONE + + + + [] + + + + + 1 + + + + 1 + + + + false + + + + + + + [] + + + + 2 + * ODD interval -> asynced; EVEN interval -> synced + + + + 0 + + + + false + + + + + + + + + + + + + + + + + + + + + + { Key : null, Unique : false } + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__shouldDoScaleProcedure get="inline" set="null" line="251"> + <__skipZoomProcedure expr="false"> + + false + + <__doPreZoomScaleProcedure set="method" line="258"> + + + + <__doPostZoomScaleProcedure set="method" line="269"> + + + + + + new Map<String,FlxPoint>() + + + + + + + + + { y : 0, x : 0 } + + + + + + + + + DANCE + + + + + + + + + + + { Frame : 0, Reversed : false, Context : NONE } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { Y : 0, X : 0 } + + + + + + + + + + + + + + + + { Border : true, Size : 16, FieldWidth : 0, Y : 0, X : 0 } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + false + + + + 0 + + + + 0 + + + + new GraphicCacheSprite() + * Dummy sprite used to cache graphics to GPU. + + + + false + * Whenever the Conductor auto update should be enabled or not. + + + + * Current step + + + + * Current beat + + + + * Current beat + + + + * Current step, as a `Float` (ex: 4.94, instead of 4) + + + + * Current beat, as a `Float` (ex: 1.24, instead of 1) + + + + * Current beat, as a `Float` (ex: 1.24, instead of 1) + + + + * Current song position (in milliseconds). + + + + + + + + + + + * Game Controls. (All players / Solo) + + + + * Game Controls (Player 1 only) + + + + * Game Controls (Player 2 only) + + + + * Current injected script attached to the state. To add one, create a file at path "data/states/stateName" (ex: data/states/FreeplayState) + + + + true + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hide + + + + + + + hide + + + + + + + hide + + + + + + + + + + { fpsSensitive : false } + * Shortcut to `FlxMath.lerp` or `CoolUtil.lerp`, depending on `fpsSensitive` + * @param v1 Value 1 + * @param v2 Value 2 + * @param ratio Ratio + * @param fpsSensitive Whenever the ratio should not be adjusted to run at the same speed independent of framerate. + + + + + + + * SCRIPTING STUFF + + + + + + + + + + + + + + + + + + + + + + { scriptsAllowed : true } + + + + + + + + + 0 + + + + 0 + + + + * Current step + + + + * Current beat + + + + * Current beat + + + + * Current step, as a `Float` (ex: 4.94, instead of 4) + + + + * Current beat, as a `Float` (ex: 1.24, instead of 1) + + + + * Current beat, as a `Float` (ex: 1.24, instead of 1) + + + + * Current song position (in milliseconds). + + + + + + + + + + + * Current injected script attached to the state. To add one, create a file at path "data/states/stateName" (ex: "data/states/PauseMenuSubstate.hx") + + + + true + + + + null + + + + * Game Controls. (All players / Solo) + + + + * Game Controls (Player 1 only) + + + + * Game Controls (Player 2 only) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hide + + + + + + + hide + + + + + + + hide + + + + + + + + + + { fpsSensitive : false } + * Shortcut to `FlxMath.lerp` or `CoolUtil.lerp`, depending on `fpsSensitive` + * @param v1 Value 1 + * @param v2 Value 2 + * @param ratio Ratio + * @param fpsSensitive Whenever the ratio should not be adjusted to run at the same speed independent of framerate. + + + + + + + * SCRIPTING STUFF + + + + + + + + + + + + + + + + + + + + + + + { scriptsAllowed : true } + + + + + + + + false + + + + null + + + + + + + + + + + + + + + + + + + + + + + [] + + <__defaultLibraries expr="[]"> + + + [] + funkin.backend.system.Main + funkin.backend.system.MainState + + + + + + + + + + + + + + + { source : BOTH } + + + + + + + + + + + + + { source : BOTH } + + + + + + + + + + + + { source : BOTH } + + + + + + + + { source : BOTH } + + + + + + + + + { source : BOTH } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cast true + + + + + + + + cast false + + + + + + + + cast null + + + + + + + + + + + + cast true + + + + + + + + cast false + + + + + + + + cast null + + + + + + + + + + + <_parsedAsset public="1"> + + <__isCacheValid set="method"> + + + + + + + + + + { isLocal : false } + + <__parseAsset set="method"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * COPIED DIRECTLY FROM LIME SOURCE CAUSE LIME IS SO FUCKING DUMB!! + + + + + + + + + + true + + + + "assets/" + + + + + + + [] + + <_parsedAsset public="1" expr="null"> + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__getFiles public="1" set="method" line="92"> + + + + + + { folders : false } + + + + + + + + <__isCacheValid set="method" line="117"> + + + + + + + + + + { isLocalCache : false } + + <__parseAsset set="method" line="138"> + + + + + + + + + + + + + + + + + + + + + + + + + <__parseAsset set="method" line="34" override="1"> + + + + + + + + + + * Used to prevent crashes + + + + + + + + + new FlxTypedSignal<String>() + hide + + * INTERNAL - Only use when editing source mods!! + + + + null + * Current mod folder. Will affect `Paths`. + + + + "./mods/" + * Path to the `mods` folder. + + + + "./addons/" + * Path to the `addons` folder. + + + + true + * If accessing a file as assets/data/global/LIB_mymod.hx should redirect to mymod:assets/data/global.hx + + <__firstTime expr="true" line="52" static="1"> + + true + * Whenever its the first time mods has been reloaded. + + + + * Initialises `mods` folder. + + + + + + + * Switches mod - unloads all the other mods, then load this one. + * @param libName + + + + + + + + + + { force : false } + * Loads a mod library from the specified path. Supports folders and zips. + * @param modName Name of the mod + * @param force Whenever the mod should be reloaded if it has already been loaded + + + + + + + + + + { force : false } + + + + + + + + + + + + + { force : false } + + + + + + + + + + { force : false } + + + + + + + + + + { force : false } + + + + + + + + + + + + * Returns the `FlxAtlasFrame` of the specified `FlxGraphic` object. + * + * @param graphic `FlxGraphic` object to find the `FlxAtlasFrames` collection for. + * @return `FlxAtlasFrames` collection for the specified `FlxGraphic` object + * Could be `null` if `FlxGraphic` doesn't have it yet. + + + + [] + + + + + + + + + + + + * Base class for all frame collections. + + + + + + "ogg" + * Preferred sound extension for the game's audio files. + * Currently is set to `mp3` for web targets, and `ogg` for other targets. + + + + + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { prefix : "", difficulty : "normal" } + + + + + + + + + { prefix : "", difficulty : "normal" } + + + + + + + + + + { ext : "png", checkForAtlas : false } + + + + + + + + + { difficulty : "normal" } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { assetsPath : false } + * Gets frames at specified path. + * @param key Path to the frames + * @param library (Additional) library to load the frames from. + + + + + + + + + + { SkipAtlasCheck : false, Key : null, Unique : false } + * Loads frames from a specific image path. Supports Sparrow Atlases, Packer Atlases, and multiple spritesheets. + * @param path Path to the image + * @param Unique Whenever the image should be unique in the cache + * @param Key Key to the image in the cache + * @param SkipAtlasCheck Whenever the atlas check should be skipped. + * @return FlxFramesCollection Frames + + + + + + + + + { source : BOTH, addPath : false } + + + + + + + + + { source : BOTH, addPath : false } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { } + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__getFiles public="1" set="method" line="86" override="1"> + + + + + + { folders : false } + + + + + + + + + + + + <__isCacheValid set="method" line="118" override="1"> + + + + + + + + + + { isLocalCache : false } + + <__parseAsset set="method" line="126" override="1"> + + + + + + + + + + + + + { libName : "assets", folderPath : "./assets/", args : null } + + + + + + + + + + + + false + + + + "assets/" + + + + + + + + [] + + <_parsedAsset public="1"> + + + + + + + + + + + + + + + + + + + + + + + + + <__parseAsset public="1" set="method" line="84"> + + + + <__isCacheValid public="1" set="method" line="101"> + + + + + + + + + + { isLocal : false } + + + + + + + + + + + + + + + + + + + + + + + + + + + 0xFF9271FD + * Default background colors for songs without bg color + + + + + + + + + + + + + { fromMods : true, difficulty : "normal" } + + + + + + + + { difficulty : "normal" } + + + + + + + + + + + + + + + { difficulty : "normal" } + * Saves the chart to the specific song folder path. + * @param songFolderPath Path to the song folder (ex: `mods/your mod/songs/song/`) + * @param chart Chart to save + * @param difficulty Name of the difficulty + * @param saveSettings + * @return Filtered chart used for saving. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cast 0 + + + + * STRUMLINE IS MARKED AS OPPONENT - WILL BE PLAYED BY CPU, OR PLAYED BY PLAYER IF OPPONENT MODE IS ON + + + + + cast 1 + + + + * STRUMLINE IS MARKED AS PLAYER - WILL BE PLAYED AS PLAYER, OR PLAYED AS CPU IF OPPONENT MODE IS ON + + + + + cast 2 + + + + * STRUMLINE IS MARKED AS ADDITIONAL - WILL BE PLAYED AS CPU EVEN IF OPPONENT MODE IS ENABLED + + + + + + + + + cast 0 + + + + * STRUMLINE IS MARKED AS OPPONENT - WILL BE PLAYED BY CPU, OR PLAYED BY PLAYER IF OPPONENT MODE IS ON + + + + + cast 1 + + + + * STRUMLINE IS MARKED AS PLAYER - WILL BE PLAYED AS PLAYER, OR PLAYED AS CPU IF OPPONENT MODE IS ON + + + + + cast 2 + + + + * STRUMLINE IS MARKED AS ADDITIONAL - WILL BE PLAYED AS CPU EVEN IF OPPONENT MODE IS ENABLED + + + + + + + + + + + + + + + + + + + + + + + + + + ["HScript Call", "Camera Movement", "Add Camera Zoom", "Camera Modulo Change", "Camera Flash", "BPM Change", "Scroll Speed Change", "Alt Animation Toggle", "Play Animation"] + + + + + + + ["HScript Call" => [{ name : "Function Name", type : TString, defValue : "myFunc" }, { name : "Function Parameters (String split with commas)", type : TString, defValue : "" }], "Camera Movement" => [{ name : "Camera Target", type : TStrumLine, defValue : 0 }], "Add Camera Zoom" => [{ name : "Amount", type : TFloat(-10, 10, 0.01, 2), defValue : 0.05 }, { name : "Camera", type : TDropDown(["camGame", "camHUD"]), defValue : "camGame" }], "Camera Modulo Change" => [{ name : "Modulo Interval (Beats)", type : TInt(1, 9999999, 1), defValue : 4 }, { name : "Bump Strength", type : TFloat(0.1, 10, 0.01, 2), defValue : 1 }], "Camera Flash" => [{ name : "Reversed?", type : TBool, defValue : false }, { name : "Color", type : TColorWheel, defValue : "#FFFFFF" }, { name : "Time (Steps)", type : TFloat(0.25, 9999, 0.25, 2), defValue : 4 }, { name : "Camera", type : TDropDown(["camGame", "camHUD"]), defValue : "camHUD" }], "BPM Change" => [{ name : "Target BPM", type : TFloat(1), defValue : 100 }], "Scroll Speed Change" => [{ name : "Tween Speed?", type : TBool, defValue : true }, { name : "New Speed", type : TFloat(0.01, 99, 0.01, 2), defValue : 1. }, { name : "Tween Time (Steps)", type : TFloat(0.25, 9999, 0.25, 2), defValue : 4 }, { name : "Tween Ease (ex: circ, quad, cube)", type : TDropDown(["linear", "back", "bounce", "circ", "cube", "elastic", "expo", "quad", "quart", "quint", "sine", "smoothStep", "smootherStep"]), defValue : "linear" }, { name : "Tween Type (ex: InOut)", type : TDropDown(["In", "Out", "InOut"]), defValue : "In" }], "Alt Animation Toggle" => [{ name : "Enable On Sing Poses", type : TBool, defValue : true }, { name : "Enable On Idle", type : TBool, defValue : true }, { name : "Strumline", type : TStrumLine, defValue : 0 }], "Play Animation" => [{ name : "Character", type : TStrumLine, defValue : 0 }, { name : "Animation", type : TString, defValue : "animation" }, { name : "Is forced?", type : TBool, defValue : true }]] + + + + defaultEventsList.copy() + + + + + + + defaultEventsParams.copy() + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__convertToSwagSong public="1" set="method" line="143" static="1"> + + + + + + + <__convertToSwagSections public="1" set="method" line="168" static="1"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ["Camera Movement", "Alt Animation Toggle", "BPM Change"] + + + + + + + + + + + + + + + + + + + + + [] + * Use "static var thing = true;" in hscript to use those!! + * are reset every mod switch so once you're done with them make sure to make them null!! + + + + + + + + + + + + + + + ["hx", "hscript", "hsc", "hxs", "pack", "lua"] + * All available script extensions + + + + null + * Currently executing script. + + + + + + + * Creates a script from the specified asset path. The language is automatically determined. + * @param path Path in assets + + + + + + + + * Creates a script from the string. The language is determined based on the path. + * @param code code + * @param path filename + + + + * Script name (with extension) + + + + * Script Extension + + + + null + * Path to the script. + + + + null + + + + false + + + + + + + [] + + + + * Loads the script + + + + + + + + + + * HSCRIPT ONLY FOR NOW + * Sets the "public" variables map for ScriptPack + + + + * Hot-reloads the script, if possible + + + + + + + * Traces something as this script. + + + + + + + + * Calls the function `func` defined in the script. + * @param func Name of the function + * @param parameters (Optional) Parameters of the function. + * @return Result (if void, then null) + + + + + + + * Loads the code from a string, doesnt really work after the script has been loaded + * @param code The code. + + + + + + + * Sets a script's parent object so that its properties can be accessed easily. Ex: Passing `PlayState.instance` will allow `boyfriend` to be typed instead of `PlayState.instance.boyfriend`. + * @param variable Parent variable. + + + + + + + * Gets the variable `variable` from the script's variables. + * @param variable Name of the variable. + * @return Variable (or null if it doesn't exists) + + + + + + + + * Gets the variable `variable` from the script's variables. + * @param variable Name of the variable. + * @return Variable (or null if it doesn't exists) + + + + + + + + * Shows an error from this script. + * @param text Text of the error (ex: Null Object Reference). + * @param additionalInfo Additional information you could provide. + + + + + + + + + * PRIVATE HANDLERS - DO NOT TOUCH + + + + + + + + + + + + * Creates a new instance of the script class. + * @param path + + + + funkin.backend.scripting.ScriptPack + + + + + + + + + + [] + + + + + + + + + + + + + + + + + + + + * Simple class for empty scripts or scripts whose language isn't imported yet. + + + + + + [] + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Class for THE Global Script, aka script that runs in the background at all times. + + + + + + + + + + + null + + <__importedPaths> + + + + + + + + + + + + + <_errorHandler set="method" line="95"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + * Name of HScript file in assets/data/states. + + + + null + * Last Optional extra data. + + + + null + * Optional extra data. + + + + + + + + * ModState Constructor. + * Inherits from MusicBeatState and allows the execution of an HScript from assets/data/states passed via parameters. + * + * @param _stateName Name or path to a HScript file from assets/data/states. + * @param _data Optional extra Dynamic data passed from a previous state (JSON suggested). + + + + + + + + null + * Name of HScript file in assets/data/states. + + + + null + * Last Optional extra data. + + + + null + * Optional extra data. + + + + + + + + * ModSubState Constructor. + * Inherits from MusicBeatSubstate and allows the execution of an HScript from assets/data/states passed via parameters. + * + * @param _stateName Name or path to a HScript file from assets/data/states. + * @param _data Optional extra Dynamic data passed from a previous state (JSON suggested). + + + + + + + + + <__variables> + + + null + * Return value of the last call. + + + + true + * Whenever the current call has ended. + + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + + + + [] + + + + + + + [] + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Sends an event to every single script, and returns the event. + * @param func Function to call + * @param event Event (will be the first parameter of the function) + * @return (modified by scripts) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__configureNewScript set="method" line="119"> + + + + + + + + + + + CancellableEvent + + + + + + + + false + hide + + + <__continueCalls expr="true"> + + + true + hide + + + + + { } + * Additional data if used in scripts + + + + + + + { c : false } + * Prevents default action from occurring. + * @param c Whenever the scripts following this one should be called or not. (Defaults to `true`) + + + + + + + + { c : true } + hide + + + + + + * Returns a string representation of the event, in this format: + * `[CancellableEvent]` + * `[CancellableEvent (Cancelled)]` + * @return String + + + + + * Creates a new cancellable event. + * This allows scripts to call `cancel()` to cancel the event. + + + + funkin.backend.scripting.ScriptPack + funkin.backend.system.macros.EventMacro.build() + + + + + + + + * Amount + + + + true + * Shows whether or not psych users complained about this class + + + + + + + + { psychUsersComplained : true } + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Final camera position. + + + + * Currently focused strumline. + + + + * Number of focused characters + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * At which count the countdown is. Normally goes 0-1-2-3-4 unless `PlayState.instance.introLength` is changed. + + + + * Volume at which the intro countdown sound will play. + + + + * Path of the intro sound that'll be played. + + + + * Path to the sprite path that'll be shown. + + + + * Scale of the sprite. + + + + * Whenever antialiasing is enabled or not. + + + + * Created sprite, only available in `onPostCountdown` + + + + * Created tween for the sprite, only available in `onPostCountdown` + + + + * Created sound, only available in `onPostCountdown` + + + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + Default animation that will be played + + + + In which direction the animation will be played + + + + The suffix of the animation (ex: "-alt") - Defaults to "" + + + + Context of the animation. Is either equal to `SING` or `MISS`. + + + + Whenever the animation will play reversed or not. + + + + At what frame the animation will start playing + + + + Force the animation to replay even if it's already playing (if it's null it will be forced based on the sprite's data xml, if it has one). + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Object containing all of the data for the presence. Can be altered. + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + null + + + + null + + + + null + + + + null + + + + null + + + + + + + + + + + { value5 : null, value4 : null, value3 : null, value2 : null, value1 : null } + + + * Event with random dynamic values useful for making your own custom events + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * The alpha when nothing is playing and isnt selected + + + + * The alpha when something is playing and isnt selected + + + + * The alpha when nothing is playing and selected + + + + * The alpha when something is playing and selected + + + + * The lerp of the alpha + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Song name that is about to be played + + + + * Difficulty name + + + + * Whenever opponent mode is enabled or not. + + + + * Whenever coop mode is enabled. + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + + + + + + + + + + + * CANCEL this event to prevent default behaviour! + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * The X pos of where the gameover character will be. + + + + * The Y pos of where the gameover character will be. + + + + * Character which died. Default to `boyfriend`. + + + + * Character ID (name) for game over. Default to whatever is specified in the character's XML. + + + + * If the character has isPlayer + + + + * Song for the game over screen. Default to `this.gameOverSong` (`gameOver`) + + + + * SFX at the beginning of the game over (Mic drop). Default to `this.lossSFX` (`gameOverSFX`) + + + + * SFX played whenever the player retries. Defaults to `retrySFX` (`gameOverEnd`) + + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Array containing whenever a specific control is pressed or not. + * For example, `pressed[0]` will return whenever the left strum was pressed. + + + + * Array containing whenever a specific control was pressed (not hold) this frame or not. + * For example, `justPressed[0]` will return whenever the left strum was just pressed. + + + + * Array containing whenever a specific control was released this frame or not. + * For example, `justReleased[0]` will return whenever the left strum was just released. + + + + * Strumline which input is being processed. + + + + * ID of the Strumline. + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Value before the change + + + + * Value after the change + + + + * Amount of change + + + + true + * Whenever the menu SFX should be played. + + + + + + + + + + { playMenuSFX : true } + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Name + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Note that is being created + + + + * ID of the strum (from 0 to 3) + + + + * Note Type (ex: "My Super Cool Note", or "Mine") + + + + * ID of the note type. + + + + * ID of the player. + + + + * Whenever the note will need to be hit by the player + + + + * Note sprite, if you only want to replace the sprite. + + + + * Note scale, if you only want to replace the scale. + + + + * Sing animation suffix. "-alt" for alt anim or "" for normal notes. + + + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + false + hide + + + + + + false + hide + + + + + + true + hide + + + + + + true + hide + + + + + + true + hide + + + + + + true + hide + + + + + true + * Whenever a miss should be added. + + + + true + * Whether this hit increases combo. + + + + true + * Whether this hit increases the score + + + + null + * Whenever ratings should be shown or not. + + + + * Note that has been pressed + + + + * Character that pressed the note. + + + + * Characters that pressed the note. + + + + * Whenever the Character is a player + + + + * Note Type name (null if default note) + + + + * Suffix of the animation. "-alt" for alt notes, "" for normal ones. + + + + * Prefix of the rating sprite path. Defaults to "game/score/" + + + + * Suffix of the rating sprite path. + + + + * Direction of the press (0 = Left, 1 = Down, 2 = Up, 3 = Right) + + + + * Score gained after note press. + + + + * Accuracy gained from pressing this note. From 0 to 1. null means no accuracy is gained. + + + + * The amount of health that'll be gained from pressing that note. If called from `onPlayerMiss`, the value will be negative. + + + + "sick" + * Rating name. Defaults to "sick", "good", "bad" and "shit". Customisable. + + + + false + * Whenever a splash should be shown when the note is hit. + + + + 0.5 + * Scale of combo numbers. + + + + true + * Whenever antialiasing should be enabled on combo number. + + + + 0.7 + * Scale of ratings. + + + + true + * Whenever antialiasing should be enabled on ratings. + + + + true + * Whenever the animation should be forced to play (if it's null it will be forced based on the sprite's data xml, if it has one). + + + + * Prevents the default sing animation from being played. + + + + hide + + + + * Prevents the note from being deleted. + + + + hide + + + + * Prevents the vocals volume from being set to 1 after pressing the note. + + + + hide + + + + * Prevents the vocals volume from being muted in case its a parameter of `onPlayerMiss` + + + + hide + + + + * Prevents the camera zoom every 4 beats from enabling. + + + + hide + + + + * Prevents the sustain tail (the last one) from being automatically hit when the sustain before it is hit. + + + + hide + + + + * Prevents the strum from glowing after this note has been pressed. + + + + hide + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { forceAnim : true, ratingAntialiasing : true, ratingScale : 0.7, numAntialiasing : true, numScale : 0.5, showSplash : false, rating : "sick", showRating : null, countScore : true, countAsCombo : true, misses : true } + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + false + hide + + + + + + true + hide + + + + + + true + hide + + + + + + true + hide + + + + + + true + hide + + + + + * Note that has been missed + + + + + + + * The amount of health that'll be gained from missing that note. If called from `onPlayerMiss`, the value will be negative. + + + + + + + + + + * Whenever the animation should be forced to play (if it's null it will be forced based on the sprite's data xml, if it has one). + + + + * Suffix of the animation. "miss" for miss notes, "-alt" for alt notes, "" for normal ones. + + + + * Character that pressed the note. + + + + * Characters that pressed the note. + + + + * Whenever the Character is a player + + + + * Note Type name (null if default note) + + + + * Direction of the press (0 = Left, 1 = Down, 2 = Up, 3 = Right) + + + + * Accuracy gained from pressing this note. From 0 to 1. null means no accuracy is gained. + + + + * Prevents the miss sound from played. + + + + hide + + + + * Prevents the combo from being reset. + + + + hide + + + + * Prevents the default sing animation from being played. + + + + hide + + + + * Prevents the default sing animation from being played. + + + + hide + + + + * Prevents the note from being deleted. + + + + hide + + + + * Prevents the vocals volume from being set to 1 after pressing the note. + + + + hide + + + + * Prevents the vocals volume from being muted in case its a parameter of `onPlayerMiss` + + + + hide + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + <__updateHitWindow public="1" expr="true"> + + + true + hide + + + <__autoCPUHit public="1" expr="true"> + + + true + hide + + + <__reposNote public="1" expr="true"> + + + true + hide + + + + + * Note that is being updated + + + + * Time elapsed since last frame + + + + * Note's strum (can be changed) + + + + * Cancels the hit window update. + + + + hide + + + + * Cancels the automatic CPU hit. + + + + hide + + + + * Cancels the note position update (note will freeze). + + + + hide + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Music that is going to be played + + + + * All option names + + + + + + + + * CANCEL this event to prevent default behaviour! + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + Name of the animation that's going to be played. + + + + Whenever the animation will be forced or not (if it's null it will be forced based on the sprite's data xml, if it has one). + + + + Whenever the animation will play in reverse or not + + + + 0 + The frame at which the animation will start playing + + + + Context of the animation + + + + + + + + + + + { startingFrame : 0 } + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + Contains all contexts possible for `PlayAnimEvent`. + + + + + + cast null + + + + No context was given for the animation. + The character won't dance until the animation is finished + + + + + cast "SING" + + + + Whenever a note is hit and a sing animation will be played. + The character will only dance after their holdTime is reached. + + + + + cast "DANCE" + + + + Whenever a dance animation is played. + The character's dancing wont be blocked. + + + + + cast "MISS" + + + + Whenever a note is missed and a miss animation will be played. + Only for scripting, since it has the same effects as SING. + + + + + cast "LOCK" + + + + Locks the character's animation. + Prevents the character from dancing, even if the animation ended. + + + + + + + + + cast null + + + + No context was given for the animation. + The character won't dance until the animation is finished + + + + + cast "SING" + + + + Whenever a note is hit and a sing animation will be played. + The character will only dance after their holdTime is reached. + + + + + cast "DANCE" + + + + Whenever a dance animation is played. + The character's dancing wont be blocked. + + + + + cast "MISS" + + + + Whenever a note is missed and a miss animation will be played. + Only for scripting, since it has the same effects as SING. + + + + + cast "LOCK" + + + + Locks the character's animation. + Prevents the character from dancing, even if the animation ended. + + + + + + + + X position + + + + Y position + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + New combo + + + + Old combo (may be null) + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * New width + + + + * New height + + + + * Old width (may be null) + + + + * Old height (may be null) + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + Note that is affected. + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * The stage instance + + + + * The node which is currently being parsed + + + + * The sprite which was parsed + + + + * The name of the node, quicker access than e.node.name + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * The stage instance + + + + * The xml + + + + * The object which was parsed + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Substate that is about to be opened/closed + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + <__doAnimation public="1" expr="true"> + + + true + hide + + + + + * The strum that is being created + + + + s + * Player ID + + + + * Strum ID, for the sprite. + + + + * Animation prefix (`left` = `arrowLEFT`, `left press`, `left confirm`). + + + + "game/notes/default" + * Sprite path, in case you only want to change the sprite. + + + + * Cancels the animation that makes the strum "land" in the strumline. + + + + hide + + + + + + + + + + + { sprite : "game/notes/default" } + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + * Week that is going to be selected + + + + * The difficulty that has been selected + + + + * At which emplacement the week is. Goes from 0 to the number of weeks - 1. + + + + * At which emplacement the difficulty is. Goes from 0 to the number of weeks - 1. + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + * CANCEL this event to customize from 0 the xml structure part! + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + + + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + * CANCEL this event to customize from 0 the xml structure part! + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + * CANCEL this event to customize from 0 the xml structure part! + + + funkin.backend.system.macros.EventMacro.build() + funkin.backend.system.macros.EventMacro.build() + + + + + + + + + + + + + + + + + + + + + + + <__instanceFields expr="Type.getInstanceFields(FunkinShader)" line="26" static="1"> + + Type.getInstanceFields(FunkinShader) + + + + "120" + + + + + + + + + + + + + + + + <__initGL set="method" line="74" override="1"> + + + + <__processGLData set="method" line="188" override="1"> + + + + + + + + + + + + + + + + + + + + + + + + { glslVer : "120" } + * Creates a new shader from the specified fragment and vertex source. + * Accepts `#pragma header`. + * @param frag Fragment source (pass `null` to use default) + * @param vert Vertex source (pass `null` to use default) + * @param glslVer Version of GLSL to use (defaults to 120) + + + + openfl.utils._internal.ShaderMacro.build() + openfl.utils._internal.ShaderMacro.build() + openfl.display3D.Context3D + openfl.display3D.Program3D + openfl.display.ShaderInput + openfl.display.ShaderParameter + + + + + + + "" + + + + + + + + { glslVersion : "120" } + * Creates a new custom shader + * @param name Name of the frag and vert files. + * @param glslVersion GLSL version to use. Defaults to `120`. + + * Class for custom shaders. + * + * To create one, create a `shaders` folder in your assets/mod folder, then add a file named `my-shader.frag` or/and `my-shader.vert`. + * + * Non-existent shaders will only load the default one, and throw a warning in the console. + * + * To access the shader's uniform variables, use `shader.variable` + + + openfl.utils._internal.ShaderMacro.build() + openfl.utils._internal.ShaderMacro.build() + + + + + + "varying float openfl_Alphav;\r\nvarying vec4 openfl_ColorMultiplierv;\r\nvarying vec4 openfl_ColorOffsetv;\r\nvarying vec2 openfl_TextureCoordv;\r\n\r\nuniform bool openfl_HasColorTransform;\r\nuniform vec2 openfl_TextureSize;\r\nuniform sampler2D bitmap;\r\n\r\nuniform bool hasTransform;\r\nuniform bool hasColorTransform;\r\n\r\nvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\r\n{\r\n\tvec4 color = texture2D(bitmap, coord);\r\n\tif (!hasTransform)\r\n\t{\r\n\t\treturn color;\r\n\t}\r\n\r\n\tif (color.a == 0.0)\r\n\t{\r\n\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\r\n\t}\r\n\r\n\tif (!hasColorTransform)\r\n\t{\r\n\t\treturn color * openfl_Alphav;\r\n\t}\r\n\r\n\tcolor = vec4(color.rgb / color.a, color.a);\r\n\r\n\tmat4 colorMultiplier = mat4(0);\r\n\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\r\n\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\r\n\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\r\n\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\r\n\r\n\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\r\n\r\n\tif (color.a > 0.0)\r\n\t{\r\n\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\r\n\t}\r\n\treturn vec4(0.0, 0.0, 0.0, 0.0);\r\n}\r\n\r\nuniform vec4 _camSize;\r\n\r\nfloat map(float value, float min1, float max1, float min2, float max2) {\r\n\treturn min2 + (value - min1) * (max2 - min2) / (max1 - min1);\r\n}\r\n\r\nvec2 getCamPos(vec2 pos) {\r\n\tvec4 size = _camSize / vec4(openfl_TextureSize, openfl_TextureSize);\r\n\treturn vec2(map(pos.x, size.x, size.x + size.z, 0.0, 1.0), map(pos.y, size.y, size.y + size.w, 0.0, 1.0));\r\n}\r\nvec2 camToOg(vec2 pos) {\r\n\tvec4 size = _camSize / vec4(openfl_TextureSize, openfl_TextureSize);\r\n\treturn vec2(map(pos.x, 0.0, 1.0, size.x, size.x + size.z), map(pos.y, 0.0, 1.0, size.y, size.y + size.w));\r\n}\r\nvec4 textureCam(sampler2D bitmap, vec2 pos) {\r\n\treturn flixel_texture2D(bitmap, camToOg(pos));\r\n}" + + + + "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\r\n\r\nif (color.a == 0.0) {\r\n\r\n\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\r\n\r\n} else if (openfl_HasColorTransform) {\r\n\r\n\tcolor = vec4 (color.rgb / color.a, color.a);\r\n\r\n\tmat4 colorMultiplier = mat4 (0);\r\n\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\r\n\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\r\n\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\r\n\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\r\n\r\n\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\r\n\r\n\tif (color.a > 0.0) {\r\n\r\n\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\r\n\r\n\t} else {\r\n\r\n\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\r\n\r\n\t}\r\n\r\n} else {\r\n\r\n\tgl_FragColor = color * openfl_Alphav;\r\n\r\n}" + + + + "attribute float openfl_Alpha;\r\nattribute vec4 openfl_ColorMultiplier;\r\nattribute vec4 openfl_ColorOffset;\r\nattribute vec4 openfl_Position;\r\nattribute vec2 openfl_TextureCoord;\r\n\r\nvarying float openfl_Alphav;\r\nvarying vec4 openfl_ColorMultiplierv;\r\nvarying vec4 openfl_ColorOffsetv;\r\nvarying vec2 openfl_TextureCoordv;\r\n\r\nuniform mat4 openfl_Matrix;\r\nuniform bool openfl_HasColorTransform;\r\nuniform vec2 openfl_TextureSize;" + + + + "openfl_Alphav = openfl_Alpha;\r\nopenfl_TextureCoordv = openfl_TextureCoord;\r\n\r\nif (openfl_HasColorTransform) {\r\n\r\n\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\r\n\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\r\n\r\n}\r\n\r\ngl_Position = openfl_Matrix * openfl_Position;" + + + + "#pragma header\r\n\r\nattribute float alpha;\r\nattribute vec4 colorMultiplier;\r\nattribute vec4 colorOffset;\r\nuniform bool hasColorTransform;\r\n\r\nvoid main(void)\r\n{\r\n\t#pragma body\r\n\r\n\topenfl_Alphav = openfl_Alpha * alpha;\r\n\r\n\tif (hasColorTransform)\r\n\t{\r\n\t\topenfl_ColorOffsetv = colorOffset / 255.0;\r\n\t\topenfl_ColorMultiplierv = colorMultiplier;\r\n\t}\r\n}" + + + + "#pragma header\r\n\r\nvoid main(void)\r\n{\r\n\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\r\n}" + + + + + + + + + + + + + + + + + + + + + + + + + "\r\n#pragma header\r\nuniform vec4 uBlendColor;\r\n\r\nvec3 blendLighten(base:Vec3, blend:Vec3) : Vec3 {\r\n\treturn mix(\r\n\t\t1.0 - 2.0 * (1.0 - base) * (1.0 - blend),\r\n\t\t2.0 * base * blend,\r\n\t\tstep( base, vec3(0.5) )\r\n\t);\r\n}\r\n\r\nvec4 blendLighten(vec4 base, vec4 blend, float opacity)\r\n{\r\n\treturn (blendLighten(base, blend) * opacity + base * (1.0 - opacity));\r\n}\r\n\r\nvoid main()\r\n{\r\n\tvec4 base = texture2D(bitmap, openfl_TextureCoordv);\r\n\tgl_FragColor = blendLighten(base, uBlendColor, uBlendColor.a);\r\n}" + + + openfl.utils._internal.ShaderMacro.build() + openfl.utils._internal.ShaderMacro.build() + + + + + + + + + + + + + + + + + new WiggleShader() + + + + DREAMY + + + + 0 + + + + 0 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "\r\n#pragma header\r\n//uniform float tx, ty; // x,y waves phase\r\nuniform float uTime;\r\n\r\nconst int EFFECT_TYPE_DREAMY = 0;\r\nconst int EFFECT_TYPE_WAVY = 1;\r\nconst int EFFECT_TYPE_HEAT_WAVE_HORIZONTAL = 2;\r\nconst int EFFECT_TYPE_HEAT_WAVE_VERTICAL = 3;\r\nconst int EFFECT_TYPE_FLAG = 4;\r\n\r\nuniform int effectType;\r\n\r\n/**\r\n\t* How fast the waves move over time\r\n\t*/\r\nuniform float uSpeed;\r\n\r\n/**\r\n\t* Number of waves over time\r\n\t*/\r\nuniform float uFrequency;\r\n\r\n/**\r\n\t* How much the pixels are going to stretch over the waves\r\n\t*/\r\nuniform float uWaveAmplitude;\r\n\r\nvec2 sineWave(vec2 pt)\r\n{\r\n\tfloat x = 0.0;\r\n\tfloat y = 0.0;\r\n\r\n\tif (effectType == EFFECT_TYPE_DREAMY)\r\n\t{\r\n\t\tfloat offsetX = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;\r\n\t\tpt.x += offsetX; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving\r\n\t}\r\n\telse if (effectType == EFFECT_TYPE_WAVY)\r\n\t{\r\n\t\tfloat offsetY = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;\r\n\t\tpt.y += offsetY; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving\r\n\t}\r\n\telse if (effectType == EFFECT_TYPE_HEAT_WAVE_HORIZONTAL)\r\n\t{\r\n\t\tx = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;\r\n\t}\r\n\telse if (effectType == EFFECT_TYPE_HEAT_WAVE_VERTICAL)\r\n\t{\r\n\t\ty = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;\r\n\t}\r\n\telse if (effectType == EFFECT_TYPE_FLAG)\r\n\t{\r\n\t\ty = sin(pt.y * uFrequency + 10.0 * pt.x + uTime * uSpeed) * uWaveAmplitude;\r\n\t\tx = sin(pt.x * uFrequency + 5.0 * pt.y + uTime * uSpeed) * uWaveAmplitude;\r\n\t}\r\n\r\n\treturn vec2(pt.x + x, pt.y + y);\r\n}\r\n\r\nvoid main()\r\n{\r\n\tvec2 uv = sineWave(openfl_TextureCoordv);\r\n\tgl_FragColor = texture2D(bitmap, uv);\r\n}" + + + + openfl.utils._internal.ShaderMacro.build() + openfl.utils._internal.ShaderMacro.build() + + + + + + + + + + + + + + + + + + + + + new FlxTypedSignal() + * FlxSignals + + + + + + + new FlxTypedSignal() + + + + + + + new FlxTypedSignal() + + + + + + + new FlxTypedSignal() + + + + 100 + * Current BPM + + + + ((60 / bpm) * 1000) + * Current Crochet (time per beat), in milliseconds. + + + + crochet / 4 + * Current StepCrochet (time per step), in milliseconds. + + + + 4 + * Number of beats per mesure (top number in time signature). Defaults to 4. + + + + 4 + * Number of steps per beat (bottom number in time signature). Defaults to 4. + + + + * Current position of the song, in milliseconds. + + + + + 0 + * Offset of the song + + + + 0 + * Current step + + + + 0 + * Current beat + + + + 0 + * Current measure + + + + 0 + * Current step, as a `Float` (ex: 4.94, instead of 4) + + + + 0 + * Current beat, as a `Float` (ex: 1.24, instead of 1) + + + + 0 + * Current measure, as a `Float` (ex: 1.24, instead of 1) + + + + + 0 + hide + + + + + + 0 + hide + + + + + [] + * Array of all BPM changes that have been mapped. + + + + + + + + + + + + * Maps BPM changes from a song. + * @param song Song to map BPM changes from. + + + + <__updateSongPos set="method" line="161" static="1"> + + + + + + + + <__lastChange static="1"> + <__updateBeat static="1"> + <__updateMeasure static="1"> + + + + + + + + + { stepsPerBeat : 4, beatsPerMeasure : 4 } + + + + + + + + + + + + + + hide + + + + + + + + + + + + + cast "up" + + + + + + + + cast "left" + + + + + + + + cast "right" + + + + + + + + cast "down" + + + + + + + + cast "up-press" + + + + + + + + cast "left-press" + + + + + + + + cast "right-press" + + + + + + + + cast "down-press" + + + + + + + + cast "up-release" + + + + + + + + cast "left-release" + + + + + + + + cast "right-release" + + + + + + + + cast "down-release" + + + + + + + + cast "note-up" + + + + + + + + cast "note-left" + + + + + + + + cast "note-right" + + + + + + + + cast "note-down" + + + + + + + + cast "note-up-press" + + + + + + + + cast "note-left-press" + + + + + + + + cast "note-right-press" + + + + + + + + cast "note-down-press" + + + + + + + + cast "note-up-release" + + + + + + + + cast "note-left-release" + + + + + + + + cast "note-right-release" + + + + + + + + cast "note-down-release" + + + + + + + + cast "accept" + + + + + + + + cast "back" + + + + + + + + cast "pause" + + + + + + + + cast "reset" + + + + + + + + cast "cheat" + + + + + + + + cast "switchmod" + + + + + + + + + + + + cast "up" + + + + + + + + cast "left" + + + + + + + + cast "right" + + + + + + + + cast "down" + + + + + + + + cast "up-press" + + + + + + + + cast "left-press" + + + + + + + + cast "right-press" + + + + + + + + cast "down-press" + + + + + + + + cast "up-release" + + + + + + + + cast "left-release" + + + + + + + + cast "right-release" + + + + + + + + cast "down-release" + + + + + + + + cast "note-up" + + + + + + + + cast "note-left" + + + + + + + + cast "note-right" + + + + + + + + cast "note-down" + + + + + + + + cast "note-up-press" + + + + + + + + cast "note-left-press" + + + + + + + + cast "note-right-press" + + + + + + + + cast "note-down-press" + + + + + + + + cast "note-up-release" + + + + + + + + cast "note-left-release" + + + + + + + + cast "note-right-release" + + + + + + + + cast "note-down-release" + + + + + + + + cast "accept" + + + + + + + + cast "back" + + + + + + + + cast "pause" + + + + + + + + cast "reset" + + + + + + + + cast "cheat" + + + + + + + + cast "switchmod" + + + + + + + + + + + + + + + + + + + + + + + + + + * Since, in many cases multiple actions should use similar keys, we don't want the + * rebinding UI to list every action. ActionBinders are what the user perceives as + * an input so, for instance, they can't set jump-press and jump-release to different keys. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_up expr="new FlxActionDigital(Action.UP)"> + + new FlxActionDigital(Action.UP) + + <_left expr="new FlxActionDigital(Action.LEFT)"> + + new FlxActionDigital(Action.LEFT) + + <_right expr="new FlxActionDigital(Action.RIGHT)"> + + new FlxActionDigital(Action.RIGHT) + + <_down expr="new FlxActionDigital(Action.DOWN)"> + + new FlxActionDigital(Action.DOWN) + + <_upP expr="new FlxActionDigital(Action.UP_P)"> + + new FlxActionDigital(Action.UP_P) + + <_leftP expr="new FlxActionDigital(Action.LEFT_P)"> + + new FlxActionDigital(Action.LEFT_P) + + <_rightP expr="new FlxActionDigital(Action.RIGHT_P)"> + + new FlxActionDigital(Action.RIGHT_P) + + <_downP expr="new FlxActionDigital(Action.DOWN_P)"> + + new FlxActionDigital(Action.DOWN_P) + + <_upR expr="new FlxActionDigital(Action.UP_R)"> + + new FlxActionDigital(Action.UP_R) + + <_leftR expr="new FlxActionDigital(Action.LEFT_R)"> + + new FlxActionDigital(Action.LEFT_R) + + <_rightR expr="new FlxActionDigital(Action.RIGHT_R)"> + + new FlxActionDigital(Action.RIGHT_R) + + <_downR expr="new FlxActionDigital(Action.DOWN_R)"> + + new FlxActionDigital(Action.DOWN_R) + + <_noteUp expr="new FlxActionDigital(Action.NOTE_UP)"> + + new FlxActionDigital(Action.NOTE_UP) + + <_noteLeft expr="new FlxActionDigital(Action.NOTE_LEFT)"> + + new FlxActionDigital(Action.NOTE_LEFT) + + <_noteRight expr="new FlxActionDigital(Action.NOTE_RIGHT)"> + + new FlxActionDigital(Action.NOTE_RIGHT) + + <_noteDown expr="new FlxActionDigital(Action.NOTE_DOWN)"> + + new FlxActionDigital(Action.NOTE_DOWN) + + <_noteUpP expr="new FlxActionDigital(Action.NOTE_UP_P)"> + + new FlxActionDigital(Action.NOTE_UP_P) + + <_noteLeftP expr="new FlxActionDigital(Action.NOTE_LEFT_P)"> + + new FlxActionDigital(Action.NOTE_LEFT_P) + + <_noteRightP expr="new FlxActionDigital(Action.NOTE_RIGHT_P)"> + + new FlxActionDigital(Action.NOTE_RIGHT_P) + + <_noteDownP expr="new FlxActionDigital(Action.NOTE_DOWN_P)"> + + new FlxActionDigital(Action.NOTE_DOWN_P) + + <_noteUpR expr="new FlxActionDigital(Action.NOTE_UP_R)"> + + new FlxActionDigital(Action.NOTE_UP_R) + + <_noteLeftR expr="new FlxActionDigital(Action.NOTE_LEFT_R)"> + + new FlxActionDigital(Action.NOTE_LEFT_R) + + <_noteRightR expr="new FlxActionDigital(Action.NOTE_RIGHT_R)"> + + new FlxActionDigital(Action.NOTE_RIGHT_R) + + <_noteDownR expr="new FlxActionDigital(Action.NOTE_DOWN_R)"> + + new FlxActionDigital(Action.NOTE_DOWN_R) + + <_accept expr="new FlxActionDigital(Action.ACCEPT)"> + + new FlxActionDigital(Action.ACCEPT) + + <_back expr="new FlxActionDigital(Action.BACK)"> + + new FlxActionDigital(Action.BACK) + + <_pause expr="new FlxActionDigital(Action.PAUSE)"> + + new FlxActionDigital(Action.PAUSE) + + <_reset expr="new FlxActionDigital(Action.RESET)"> + + new FlxActionDigital(Action.RESET) + + <_cheat expr="new FlxActionDigital(Action.CHEAT)"> + + new FlxActionDigital(Action.CHEAT) + + <_switchMod expr="new FlxActionDigital(Action.SWITCHMOD)"> + + new FlxActionDigital(Action.SWITCHMOD) + + + + + + + [] + + + + [] + + + + KeyboardScheme.None + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Calls a function passing each action bound by the specified control + * @param control + * @param func + * @return ->Void) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Sets all actions that pertain to the binder to trigger when the supplied keys are used. + * If binder is a literal you can inline this + + + + + + + + * Sets all actions that pertain to the binder to trigger when the supplied keys are used. + * If binder is a literal you can inline this + + + + + + + + { reset : true } + + + + + + + + + + + + + + + + + + + + + + + + { deviceID : FlxInputDeviceID.ALL } + + + + + + + + + + + + + * Sets all actions that pertain to the binder to trigger when the supplied keys are used. + * If binder is a literal you can inline this + + + + + + + + + * Sets all actions that pertain to the binder to trigger when the supplied keys are used. + * If binder is a literal you can inline this + + + + + + + + + + + + + + + + + + { scheme : None } + + * A list of actions that a player would invoke via some input device. + * Uses FlxActions to funnel various inputs to a single action. + + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + + null + + + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + * Array containing all of the graphics cached by this sprite. + + + + [] + * Array containing all of the non rendered (not sent to GPU) cached graphics. + + + + + + + * Caches a graphic at specified path. + * @param path Path to the graphic. + + + + + + + * Caches a graphic. + * @param graphic The FlxGraphic + + + + + * Dummy FlxSprite that allows you to cache FlxGraphics, and immediatly send them to GPU memory. + + + + <__showing expr="false" line="10" static="1"> + + false + + + + + + + + Log.trace + + + + + + + + + { level : INFO } + + + + + + + + { color : LIGHTGRAY } + + <__showInConsole public="1" set="method" line="79" static="1"> + + + + + + + + + + { level : INFO } + + + + + + + + + { color : LIGHTGRAY, level : INFO } + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + + + + + + + + false + + + + false + + + + + + + * Simple state used for loading the game + + + + + <__fromImage set="method" line="11" override="1"> + + + + + + "checkstyle:Dynamic" + + + + + + + "checkstyle:Dynamic" + hide + + + + + + + + + + + + openfl.utils._internal.AssetsMacro.embedBitmap() + openfl.utils._internal.AssetsMacro.embedBitmap() + + + + + + + + + + + + + { Revive : true, Force : false } + + + + + + + + + + + + <c path="openfl.text.TextField"/> + + + <_text expr=""""> + + "" + + <__enterFrame public="1" set="method" line="43" override="1"> + + + + + + + + + + { text : "" } + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + <__enterFrame public="1" set="method" line="11" override="1"> + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + + + + <__enterFrame public="1" set="method" line="9" override="1"> + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + <__enterFrame public="1" set="method" line="8" override="1"> + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + + false + + + + + + + + "${Sys.getEnv(\"windir\")}\\Fonts\\consola.ttf" + + + + 1 + * 0: FPS INVISIBLE + * 1: FPS VISIBLE + * 2: FPS & DEBUG INFO VISIBLE + + + + new FlxPoint() + + <__bitmap public="1" get="accessor" set="null" expr="null" line="38" static="1"> + + + null + + + + + + + + [] + + <__addCategory set="method" line="86"> + + + + <__lastAddedSprite expr="null"> + + null + + <__addToList set="method" line="91"> + + + + + + 0 + + <__enterFrame public="1" set="method" line="101" override="1"> + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + + + 0 + + <__enterFrame public="1" set="method" line="30" override="1"> + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + + + 0 + + + + 0 + + <__enterFrame public="1" set="method" line="33" override="1"> + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + "Unknown" + + + + "Unknown" + + + + "Unknown" + + + + "Unknown" + + + + "Unknown" + + + + "Unknown" + + + + "Unknown" + + <__formattedSysText expr="""" line="18" static="1"> + + "" + + + + <__enterFrame public="1" set="method" line="140" override="1"> + + + + + + + openfl.utils._internal.AssetsMacro.initBinding() + openfl.utils._internal.AssetsMacro.initBinding() + + + + + + + + + + + + + + * Gets all the releases from a specific GitHub repository using the GitHub API. + * @param user The user/organization that owns the repository + * @param repository The repository name + * @param onError Error Callback + * @return Releases + + + + + + + + + + + + * Gets the contributors list from a specific GitHub repository using the GitHub API. + * @param user The user/organization that owns the repository + * @param repository The repository name + * @param onError Error Callback + * @return Contributors List + + + + + + + + + + + * Gets a specific GitHub organization using the GitHub API. + * @param org The organization to get + * @param onError Error Callback + * @return Organization + + + + + + + + + + + * Gets the members list from a specific GitHub organization using the GitHub API. + * NOTE: Members use Contributors' structure! + * @param org The organization to get the members from + * @param onError Error Callback + * @return Members List + + + + + + + + + + + * Gets a specific GitHub user/organization using the GitHub API. + * NOTE: If organization, it will be returned with the structure of a normal user; use `getOrganization` if you specifically want an organization! + * @param user The user/organization to get + * @param onError Error Callback + * @return User/Organization + + + + + + + + + { keepDrafts : false, keepPrereleases : true } + * Filters all releases gotten by `getReleases` + * @param releases Releases + * @param keepPrereleases Whenever to keep Pre-Releases. + * @param keepDrafts Whenever to keep Drafts. + * @return Filtered releases. + + <__parseGitHubException set="method" line="136" static="1"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Url of the release (GitHub API) + + + + * Template URL for asset download link. + + + + + + + + + + + + * ID of the release. + + + + * Link to the release on the GitHub website. + + + + + + * Body of the GitHub request (Markdown) + + + + * Author of the release + + + + * Url for the assets JSON. Also accessible via `GitHubRelease.assets` + + + + + + + * URL to the user on GitHub's servers. + + + + * Date of last account update. + + + + * Type of the user. + + + + * Twitter username of the user. Can be null. + + + + * URL on GitHub's API to access this user's starred repositories. + + + + * Whenever the user is a GitHub administrator. + + + + * Number of public repos this user own. + + + + * Number of public gists this user own. + + + + * ID of the current node on the GitHub database. + + + + * Name of the user. + + + + * Username of the user. + + + + + * ID of the user. + + + + * URL to the user on GitHub's website. + + + + + * Unknown + + + + * URL on GitHub's API to access this user's gists. + + + + * URL on GitHub's API to access the accounts this user is following. + + + + * Number of accounts this user follows. + + + + * URL on GitHub's API to access this user's followers. + + + + * Number of followers this user have + + + + + * Date of creation of the account + + + + * The company this user belongs to. Can be `null`. + + + + + + * Link to the avatar (profile picture). + + + + + + + + + + cast "User" + + + + + + + + cast "Organization" + + + + + + + + + + + + cast "User" + + + + + + + + cast "Organization" + + + + + + + + + + + + + * Returns the defined values + + + + + + + + + + * Returns the current commit number + + + + * Returns the current commit hash + + + + + + + + + + + + + + + + * if youre stealing this keep this comment at least please lol + * + * hi gray itsa me yoshicrafter29 i fixed it hehe + + + hide + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hide + + Internal + + + + + + + + + hide + + Internal + + + + + + + + + hide + + Internal + + + + + + + + + Retrieves a cached BitmapData. + + @param id The ID of the cached BitmapData + @return The cached BitmapData instance + + + + + + + Retrieves a cached Font. + + @param id The ID of the cached Font + @return The cached Font instance + + + + + + + Retrieves a cached Sound. + + @param id The ID of the cached Sound + @return The cached Sound instance + + + + + + + Checks whether a BitmapData asset is cached. + + @param id The ID of a BitmapData asset + @return Whether the object has been cached + + + + + + + Checks whether a Font asset is cached. + + @param id The ID of a Font asset + @return Whether the object has been cached + + + + + + + Checks whether a Sound asset is cached. + + @param id The ID of a Sound asset + @return Whether the object has been cached + + + + + + + Removes a BitmapData from the cache. + + @param id The ID of a BitmapData asset + @return `true` if the asset was removed, `false` if it was not in the cache + + + + + + + Removes a Font from the cache. + + @param id The ID of a Font asset + @return `true` if the asset was removed, `false` if it was not in the cache + + + + + + + Removes a Sound from the cache. + + @param id The ID of a Sound asset + @return `true` if the asset was removed, `false` if it was not in the cache + + + + + + + + + + + + + + + + + + + + { nbConnections : 1 } + + + + + + + + + + + + + + + + + + + + + + <__peakByte expr="0"> + + 0 + + <__timeMulti expr="0"> + + 0 + + + + + + + + + + + + + + + + + + + * Returns the most present color in a Bitmap. + * @param bmap Bitmap + * @return FlxColor Color that is the most present. + + + + + + + * Returns the most present saturated color in a Bitmap. + * @param bmap Bitmap + * @return FlxColor Color that is the most present. + + + + + + + + + + + + + + + + + + + + * Shortcut to parse JSON from an Asset path + * @param assetPath Path to the JSON asset. + + + + + + + + * Deletes a folder recursively + * @param delete Path to the folder. + + + + + + + + + + + + + { showErrorBox : true } + + + * Safe saves a file (even adding eventual missing folders) and shows a warning box instead of making the program crash + * @param path Path to save the file at. + * @param content Content of the file to save (as String or Bytes). + + + + + + + + + { useAbsol : true } + + + * Gets file attributes from a file or a folder adding eventual missing folders in the path + * (WARNING: Only works on `windows` for now. On other platforms the attributes' value it's always going to be `0` -thanks to the wrapper you can also use `isNothing` for checking- but still creates eventual missing folders if the platforms allows it to). + * @param path Path to the file or folder + * @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example) + * @return The attributes through the `FileAttributeWrapper` + + + + + + + + + + + + + + { useAbsol : true } + + + * Sets file attributes to a file or a folder adding eventual missing folders in the path + * (WARNING: Only works on `windows` for now. On other platforms the return code it's always going to be `0` but still creates eventual missing folders if the platforms allows it to). + * @param path Path to the file or folder + * @param attrib The attribute(s) to set (WARNING: There are some non settable attributes, such as the `COMPRESSED` one) + * @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example) + * @return The result code: `0` means that it failed setting + + + + + + + + + + + + + { useAbsol : true } + + + * Adds one (or more) file attributes to a file or a folder adding eventual missing folders in the path + * (WARNING: Only works on `windows` for now. On other platforms the return code it's always going to be `0` but still creates eventual missing folders if the platforms allows it to). + * @param path Path to the file or folder + * @param attrib The attribute(s) to add (WARNING: There are some non settable attributes, such as the `COMPRESSED` one) + * @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example) + * @return The result code: `0` means that it failed setting + + + + + + + + + + + + + { useAbsol : true } + + + * Removes one (or more) file attributes to a file or a folder adding eventual missing folders in the path + * (WARNING: Only works on `windows` for now. On other platforms the return code it's always going to be `0` but still creates eventual missing folders if the platforms allows it to). + * @param path Path to the file or folder + * @param attrib The attribute(s) to remove (WARNING: There are some non settable attributes, such as the `COMPRESSED` one) + * @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example) + * @return The result code: `0` means that it failed setting + + + + + + + + * Creates eventual missing folders to the specified `path` + * + * WARNING: eventual files in `path` will be considered as folders! Just to make possible folders be named as `songs.json` for example + * + * @param path Path to check. + * @return The initial Path. + + + + + + + * Shortcut to parse a JSON string + * @param str Path to the JSON string + * @return Parsed JSON + + + + + + + * Whenever a value is NaN or not. + * @param v Value + + + + + + + * Returns the last of an Array + * @param array Array + * @return T Last element + + + + + + + + + * Sets a field's default value, and returns it. In case it already exists, returns the existing one. + * @param v Dynamic to set the default value to + * @param name Name of the value + * @param defaultValue Default value + * @return T New/old value. + + + + + + + + * Add several zeros at the beginning of a string, so that `2` becomes `02`. + * @param str String to add zeros + * @param num The length required + + + + + + + + * Add several zeros at the end of a string, so that `2` becomes `20`, useful for ms. + * @param str String to add zeros + * @param num The length required + + + + + + + * Returns a string representation of a size, following this format: `1.02 GB`, `134.00 MB` + * @param size Size to convert to string + * @return String Result string representation + + + + + + + * Replaces in a string any kind of IP with `[Your IP]` making the string safer to trace. + * @param msg String to check and edit + * @return String Result without any kind of IP + + + + + + + + + + * Alternative linear interpolation function for each frame use, without worrying about framerate changes. + * @param v1 Begin value + * @param v2 End value + * @param ratio Ratio + * @return Float Final value + + + + + + + + + + + { fpsSensitive : false } + + + * Lerps from color1 into color2 (Shortcut to `FlxColor.interpolate`) + * @param color1 Color 1 + * @param color2 Color 2 + * @param ratio Ratio + * @param fpsSensitive Whenever the ratio should be fps sensitive (adapted when game is running at 120 instead of 60) + + + + + + + + * Modifies a lerp ratio based on current FPS to keep a stable speed on higher framerate. + * @param ratio Ratio + * @return FPS-Modified Ratio + + + + + + + * Tries to get a color from a `Dynamic` variable. + * @param c `Dynamic` color. + * @return The result color, or `null` if invalid. + + + + + + + + { fadeIn : false } + + + * Plays the main menu theme. + * @param fadeIn + + + + + + + + + * Preloads a character. + * @param name Character name + * @param spriteName (Optional) sprite name. + + + + + + + + + + + + + { DefaultBPM : 102, Looped : true, Volume : 1, Persist : false } + + + * Plays music, while resetting the Conductor, and taking info from INI in count. + * @param path Path to the music + * @param Persist Whenever the music should persist while switching states + * @param DefaultBPM Default BPM of the music (102) + * @param Volume Volume of the music (1) + * @param Looped Whenever the music loops (true) + * @param Group A group that this music belongs to (default) + + + + + + + + + { volume : 1, menuSFX : SCROLL } + + + * Plays a specified Menu SFX. + * @param menuSFX Menu SFX to play + * @param volume At which volume it should play + + + + + + + + * Allows you to split a text file from a path, into a "cool text file", AKA a list. Allows for comments. For example, + * `# comment` + * `test1` + * ` ` + * `test2` + * will return `["test1", "test2"]` + * @param path + * @return Array<String> + + + + + + + + + { min : 0 } + + + * Returns an array of number from min to max. Equivalent of `[for (i in min...max) i]`. + * @param max Max value + * @param min Minimal value (0) + * @return Array<Int> Final array + + + + + + + + + * Switches frames from 2 FlxAnimations. + * @param anim1 First animation + * @param anim2 Second animation + + + + + + + + + + + { maxScale : 0, fill : true } + * Allows you to set a graphic size (ex: 150x150), with proper hitbox without a stretched sprite. + * @param sprite Sprite to apply the new graphic size to + * @param width Width + * @param height Height + * @param fill Whenever the sprite should fill instead of shrinking (true) + * @param maxScale Maximum scale (0 / none) + + + + + + + * Returns a simple string representation of a FlxKey. Used in Controls options. + * @param key Key + * @return Simple representation + + + + + + + + + { axes : XY } + * Centers an object in a camera's field, basically `screenCenter()` but `camera.width` and `camera.height` are used instead of `FlxG.width` and `FlxG.height`. + * @param obj Sprite to center + * @param cam Camera + * @param axes Axes (XY) + + + + + + + + + * Equivalent of `setGraphicSize`, except that it can accept floats and automatically updates the hitbox. + * @param sprite Sprite to set the size of + * @param width Width + * @param height Height + + + + + + + + * Gets an XML attribute from an `Access` abstract, without throwing an exception if invalid. + * Example: `xml.getAtt("test").getDefault("Hello, World!");` + * @param xml XML to get the attribute from + * @param name Name of the attribute + + + + + + + + * Sets automatically all the compatible formats to a text. + * + * WARNING: These are dependant from the font, so if the font doesn't support for example the `bold` format it won't work! + * @param text Text to set the format for + * @param formats Array of the formats (to get the formats from a node, you can use `XMLUtil.getTextFormats(node)`) + + + + + + + + * Loads an animated graphic, and automatically animates it. + * @param spr Sprite to load the graphic for + * @param path Path to the graphic + + + + + + + + * Copies a color transform from color1 to color2 + * @param color1 Color transform to copy to + * @param color2 Color transform to copy from + + + + + + + + + * Resets an FlxSprite + * @param spr Sprite to reset + * @param x New X position + * @param y New Y position + + + + + + + + * Gets the macro class created by hscript-improved for an abstract / enum + + + + + + + + * Basically indexOf, but starts from the end. + * @param array Array to scan + * @param element Element + * @return Index, or -1 if unsuccessful. + + + + + + + * Clears the content of an array + + + + + + + + * Push an entire group into an array. + * @param array Array to push the group into + * @param ...args Group entries + * @return Array<T> + + + + + + + + * Opens an URL in the browser. + * @param url + + + + + + + * Converts a timestamp to a readable format such as `01:22` (`mm:ss`) + + + + + + + * Stops a sound, set its time to 0 then play it again. + * @param sound Sound to replay. + + + + + + + + + * Equivalent of `Math.max`, except doesn't require a Int -> Float -> Int conversion. + * @param p1 + * @param p2 + * @return return p1 < p2 ? p2 : p1 + + + + + + + * Equivalent of `Math.floor`, except doesn't require a Int -> Float -> Int conversion. + * @param e Value to get the floor of. + + + + + + + + + + + + + + + + * Sets a SoundFrontEnd's music to a FlxSound. + * Example: `FlxG.sound.setMusic(music);` + * @param frontEnd SoundFrontEnd to set the music of + * @param music Music + + + + + + + + + + + + + + + + + + + + + + * Converts a string of "1..3,5,7..9,8..5" into an array of numbers like [1,2,3,5,7,8,9,8,7,6,5] + * @param input String to parse + * @return Array of numbers + + + + + + + + { seperator : "," } + * Converts an array of numbers into a string of ranges. + * Example: [1,2,3,5,7,8,9,8,7,6,5] -> "1..3,5,7..9,8..5" + * @param numbers Array of numbers + * @return String representing the ranges + + + + funkin.game.PlayState + + + + + + * SFXs to play using `playMenuSFX`. + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + + + null + + + + null + + + + false + + + + false + + + + false + + + + null + + + + null + + + + null + + + + + Discord.REPLY_NO + + + + Discord.REPLY_YES + + + + Discord.REPLY_IGNORE + + + + Discord.PARTY_PRIVATE + + + + Discord.PARTY_PUBLIC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * The username + discriminator if they have it + + + + * The user id, aka 860561967383445535 + + + + * The user's username + + + + * The #number from before discord changed to usernames only, if the user has changed to a username them its just a 0 + + + + * The user's avatar filename + + + + * The user's display name + + + + * If the user is a bot or not + + + + * Idk check discord docs + + + + * If the user has nitro + + + + + + + { size : 256 } + * Calling this function gets the BitmapData of the user + + + + + + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Starts a new multithreaded script. + * This script will share all the variables with the current one, which means already existing callbacks will be replaced by new ones on conflict. + * @param path + + + + + + + + + * Returns a string representation of the attributes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Currently only for Windows, but planned to work on other platforms later. + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + * Additional class for FlxColor lerping. + * Gets rid of precision issues with `FlxColor.interpolate` + + + + + <__tweens> + <__cameras> + <__timers> + <__sounds> + <__replaceUponDestroy> + + + + + + + + + { replaceUponDestroy : false } + + * FlxBasic allowing you to disable those elements from the parent state while this substate is opened + * - Tweens + * - Camera Movement + * - Timers + * - Sounds + * + * To use, add `add(new FunkinParentDisabler());` after `super.create();` in your `create` function. + + + + + + "request" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * DOESNT SUPPORT CATEGORIES YET!! + + + + + + + + + + + + + + + + + + + + + { underline : false, italic : false, bold : false } + + + + + + + + + + + + + + + + + + + { emoteEnd : "\n" } + + + + + + + 0 + + + + + + + + + + + + <_nb expr="0" line="145" static="1"> + + 0 + + <_nbD expr="0" line="146" static="1"> + + 0 + + <_zombie static="1"> + + + + + + + hide + + + + hide + + + + * Allocates a new console. The console will automatically be opened + + + + + + + + { useAbsol : true } + * Gets the specified file's (or folder) attributes. + + + + + + + + { useAbsol : true } + * Gets the specified file's (or folder) attributes and passes it to `FileAttributeWrapper`. + + + + + + + + + + + + + { useAbsol : true } + * Sets the specified file's (or folder) attributes. If it fails, the return value is `0`. + + + + + + + + + + + + { useAbsol : true } + * Removes from the specified file's (or folder) one (or more) specific attribute. + + + + + + + + + + + + { useAbsol : true } + * Removes from the specified file's (or folder) one (or more) specific attribute. + + + + + + + + + + + + + + { icon : MSG_WARNING } + * Shows a message box + + + + + + + + { backgroundColor : NONE, foregroundColor : NONE } + * Sets the console colors + + + + + + + + + + * Class for functions that talk to a lower level than haxe, such as message boxes, and more. + * Some functions might not have effect on some platforms. + + + + + + + + + + + + cast 0x20 + + + + + + + + cast 0x2 + + + + + + + + cast 0x80 + + + + + + + + cast 0x2000 + + + + + + + + cast 0x1000 + + + + + + + + cast 0x1 + + + + + + + + cast 0x4 + + + + + + + + cast 0x100 + + + + + + + + cast 0x800 + + + + + + + + cast 0x40 + + + + + + + + cast 0x10 + + + + + + + + cast 0x4000 + + + + + + + + cast 0x400 + + + + + + + + cast 0x200 + + + + + + + + + + + + cast 0x20 + + + + + + + + cast 0x2 + + + + + + + + cast 0x80 + + + + + + + + cast 0x2000 + + + + + + + + cast 0x1000 + + + + + + + + cast 0x1 + + + + + + + + cast 0x4 + + + + + + + + cast 0x100 + + + + + + + + cast 0x800 + + + + + + + + cast 0x40 + + + + + + + + cast 0x10 + + + + + + + + cast 0x4000 + + + + + + + + cast 0x400 + + + + + + + + cast 0x200 + + + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + cast 6 + + + + + + + + cast 7 + + + + + + + + cast 8 + + + + + + + + cast 9 + + + + + + + + cast 10 + + + + + + + + cast 11 + + + + + + + + cast 12 + + + + + + + + cast 13 + + + + + + + + cast 14 + + + + + + + + cast 15 + + + + + + + + cast -1 + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + cast 6 + + + + + + + + cast 7 + + + + + + + + cast 8 + + + + + + + + cast 9 + + + + + + + + cast 10 + + + + + + + + cast 11 + + + + + + + + cast 12 + + + + + + + + cast 13 + + + + + + + + cast 14 + + + + + + + + cast 15 + + + + + + + + cast -1 + + + + + + + + + + + + + + cast 0x00000010 + + + + + + + + cast 0x00000020 + + + + + + + + cast 0x00000030 + + + + + + + + cast 0x00000040 + + + + + + + + + + + + cast 0x00000010 + + + + + + + + cast 0x00000020 + + + + + + + + cast 0x00000030 + + + + + + + + cast 0x00000040 + + + + + + + + + + "windows" + + + + + + + + + * Returns an function from a Haxe NDLL. + * Limited to 25 argument due to a limitation + * + * @param ndll Name of the NDLL. + * @param name Name of the function. + * @param args Number of arguments of that function. + + + + + + + + + * Returns an function from a Haxe NDLL at specified path. + * + * @param ndll Asset path to the NDLL. + * @param name Name of the function. + * @param args Number of arguments of that function. + + + + + hide + + + + * Small util that allows you to load any function from ndlls via `getFunction`. + * + * NDLLs must be in your mod's "ndlls" folder, and must follow this name scheme: + * - `name-windows.ndll` for Windows targeted ndlls + * - `name-linux.ndll` for Linux targeted ndlls + * - `name-mac.ndll` for Mac targeted ndlls + * + * If: + * - The platform does not support NDLLs + * - The NDLL is not found + * - The Function cannot be found in the NDLL + * then an empty function will be returned instead, and a message will be shown in logs. + + + + + true + + + + + + + + + + + + + + + + + + + + + * Gets the index of a possible new element of an Array of T using an efficient algorithm. + * @param array Array of T to check in + * @param getVal Function that returns the position value of T + * @return Index + + + + + + + + + + + + * Adds to a sorted array, using binary search. + * @param array Array to add to + * @param val Value to add + * @param getVal Function that returns the value that needs to be sorted + + * All types of utils only usable in a sorted array. + + + + + + + + + * Opens a zip from a specified path. + * @param path Path to the zip file. + + + + + + + + + + * Reads all the data present in a specified entry. + * NOTE: If the entry is compressed, the data won't be decompressed. For decompression, use `unzipEntry`. + * @param e Entry + + + + + + + * Unzips and returns all of the data present in an entry. + * @param f Entry to read from. + + + + + + + + + * Creates a new SysZip from a specified file input. + * @param input File input. + + * Class that extends Reader allowing you to load ZIP entries without blowing your RAM up!! + * Half of the code is taken from haxe libraries btw + + + + + + + + + + + + + + + + + + + + + + + { autoRestart : false } + * Creates a new Thread with an error handler. + * @param func Function to execute + * @param autoRestart Whenever the thread should auto restart itself after crashing. + + + + + + + + + + "" + + + + + + + + "" + + + + + + + + true + + + <__triedClosing expr="false" line="28" static="1"> + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Applies a property XML node to an object. + * @param object Object to which the xml property will be applied + * @param property `property` node. + + + + + + + + + + { defaultAnimType : BEAT, parentFolder : "" } + * Overrides a sprite based on a XML node. + + + + + + + + + + + { defaultAnimType : BEAT, parentFolder : "" } + * Creates a new sprite based on a XML node. + + + + + + + + + { loop : false, animType : NONE } + + + + + + + + + { loop : false } + * Adds an XML animation to `sprite`. + * @param sprite Destination sprite + * @param anim Animation (Must be a `anim` XML node) + + + + + + + + + + + + + + + + + + + + + * WARNING: will edit directly the node! + + + + + + + + + + + + { parsedSegments : null, currentFormat : null } + + * Class made to make XML parsing easier. + + + + + + + + + + + + + + + + + + + + + + + + [".git", ".gitignore", ".github", ".vscode", ".gitattributes", "readme.txt"] + + + + + + + + + + * [Description] Uncompresses `zip` into the `destFolder` folder + * @param zip + * @param destFolder + + + + + + + + + + + + + + * [Description] Returns a `zip.Reader` instance from path. + * @param zipPath + * @return Reader + + + + + + + * [Description] Copy of haxe's Zip unzip function cause lime replaced it. + * @param f Zip entry + + + + + + + * [Description] Creates a ZIP file at the specified location and returns the Writer. + * @param path + * @return Writer + + + + + + + + + + + [Description] Writes the entirety of a folder to a zip file. + @param zip ZIP file to write to + @param path Folder path + @param prefix (Additional) allows you to set a prefix in the zip itself. + + + + + + + + + + + + + * [Description] Converts an `Array<Entry>` to a `List<Entry>`. + * @param array + * @return List<Entry> + + + + + + + null + + + + 0 + + + + 0 + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + +
+ + +

+ + + + + + + + + + + + + + + +
+ +

+ + + + + + + + + + { block : true } + + + + + + + + + + +
+ + <__audioChangeCallback public="1" expr="function() { trace("test"); }" line="119" static="1"> + + function() { + trace("test"); +} + + + + "\r\n\tif (!curAudioFix) curAudioFix = new AudioFixClient();\r\n\t" + + + + + + + + "\r\n\t\tint darkMode = enable ? 1 : 0;\r\n\r\n\t\tHWND window = FindWindowA(NULL, title.c_str());\r\n\t\t// Look for child windows if top level aint found\r\n\t\tif (window == NULL) window = FindWindowExA(GetActiveWindow(), NULL, NULL, title.c_str());\r\n\r\n\t\tif (window != NULL && S_OK != DwmSetWindowAttribute(window, 19, &darkMode, sizeof(darkMode))) {\r\n\t\t\tDwmSetWindowAttribute(window, 20, &darkMode, sizeof(darkMode));\r\n\t\t}\r\n\t" + + + + "\r\n\t// https://stackoverflow.com/questions/15543571/allocconsole-not-displaying-cout\r\n\r\n\tif (!AllocConsole())\r\n\t\treturn;\r\n\r\n\tfreopen(\"CONIN$\", \"r\", stdin);\r\n\tfreopen(\"CONOUT$\", \"w\", stdout);\r\n\tfreopen(\"CONOUT$\", \"w\", stderr);\r\n\t" + + + + + + + "\r\n\t\treturn GetFileAttributes(path);\r\n\t" + + + + + + + + "\r\n\t\treturn SetFileAttributes(path, attrib);\r\n\t" + + + + + + + "\r\n\t\tHANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);\r\n\t\tSetConsoleTextAttribute(console, color);\r\n\t" + + + + "\r\n\t\tsystem(\"CLS\");\r\n\t\tstd::cout<< \"\" <<std::flush;\r\n\t" + + + + + + + + + + { icon : MSG_WARNING } + "\r\n\t\tMessageBox(GetActiveWindow(), message, caption, icon | MB_SETFOREGROUND);\r\n\t" + + + + + "\r\n\t\tSetProcessDPIAware();\r\n\t" + + + + "\r\n\t\t// simple but effective code\r\n\t\tunsigned long long allocatedRAM = 0;\r\n\t\tGetPhysicallyInstalledSystemMemory(&allocatedRAM);\r\n\t\treturn (allocatedRAM / 1024);\r\n\t" + + + + "\r\n<target id=\"haxe\">\r\n\t<lib name=\"dwmapi.lib\" if=\"windows\" />\r\n\t<lib name=\"shell32.lib\" if=\"windows\" />\r\n\t<lib name=\"gdi32.lib\" if=\"windows\" />\r\n\t<lib name=\"ole32.lib\" if=\"windows\" />\r\n\t<lib name=\"uxtheme.lib\" if=\"windows\" />\r\n</target>\r\n" + "\r\n#include \"mmdeviceapi.h\"\r\n#include \"combaseapi.h\"\r\n#include <iostream>\r\n#include <Windows.h>\r\n#include <cstdio>\r\n#include <tchar.h>\r\n#include <dwmapi.h>\r\n#include <winuser.h>\r\n#include <Shlobj.h>\r\n#include <wingdi.h>\r\n#include <shellapi.h>\r\n#include <uxtheme.h>\r\n\r\n#define SAFE_RELEASE(punk) \\\r\n\t\t\t if ((punk) != NULL) \\\r\n\t\t\t\t{ (punk)->Release(); (punk) = NULL; }\r\n\r\nstatic long lastDefId = 0;\r\n\r\nclass AudioFixClient : public IMMNotificationClient {\r\n\tLONG _cRef;\r\n\tIMMDeviceEnumerator *_pEnumerator;\r\n\r\n\tpublic:\r\n\tAudioFixClient() :\r\n\t\t_cRef(1),\r\n\t\t_pEnumerator(NULL)\r\n\t{\r\n\t\tHRESULT result = CoCreateInstance(__uuidof(MMDeviceEnumerator),\r\n\t\t\t\t\t\t\t NULL, CLSCTX_INPROC_SERVER,\r\n\t\t\t\t\t\t\t __uuidof(IMMDeviceEnumerator),\r\n\t\t\t\t\t\t\t (void**)&_pEnumerator);\r\n\t\tif (result == S_OK) {\r\n\t\t\t_pEnumerator->RegisterEndpointNotificationCallback(this);\r\n\t\t}\r\n\t}\r\n\r\n\t~AudioFixClient()\r\n\t{\r\n\t\tSAFE_RELEASE(_pEnumerator);\r\n\t}\r\n\r\n\tULONG STDMETHODCALLTYPE AddRef()\r\n\t{\r\n\t\treturn InterlockedIncrement(&_cRef);\r\n\t}\r\n\r\n\tULONG STDMETHODCALLTYPE Release()\r\n\t{\r\n\t\tULONG ulRef = InterlockedDecrement(&_cRef);\r\n\t\tif (0 == ulRef)\r\n\t\t{\r\n\t\t\tdelete this;\r\n\t\t}\r\n\t\treturn ulRef;\r\n\t}\r\n\r\n\tHRESULT STDMETHODCALLTYPE QueryInterface(\r\n\t\t\t\t\t\t\t\tREFIID riid, VOID **ppvInterface)\r\n\t{\r\n\t\treturn S_OK;\r\n\t}\r\n\r\n\tHRESULT STDMETHODCALLTYPE OnDeviceAdded(LPCWSTR pwstrDeviceId)\r\n\t{\r\n\t\treturn S_OK;\r\n\t};\r\n\r\n\tHRESULT STDMETHODCALLTYPE OnDeviceRemoved(LPCWSTR pwstrDeviceId)\r\n\t{\r\n\t\treturn S_OK;\r\n\t}\r\n\r\n\tHRESULT STDMETHODCALLTYPE OnDeviceStateChanged(\r\n\t\t\t\t\t\t\t\tLPCWSTR pwstrDeviceId,\r\n\t\t\t\t\t\t\t\tDWORD dwNewState)\r\n\t{\r\n\t\treturn S_OK;\r\n\t}\r\n\r\n\tHRESULT STDMETHODCALLTYPE OnPropertyValueChanged(\r\n\t\t\t\t\t\t\t\tLPCWSTR pwstrDeviceId,\r\n\t\t\t\t\t\t\t\tconst PROPERTYKEY key)\r\n\t{\r\n\t\treturn S_OK;\r\n\t}\r\n\r\n\tHRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged(\r\n\t\tEDataFlow flow, ERole role,\r\n\t\tLPCWSTR pwstrDeviceId)\r\n\t{\r\n\t\t::funkin::backend::_hx_system::Main_obj::audioDisconnected = true;\r\n\t\treturn S_OK;\r\n\t};\r\n};\r\n\r\nAudioFixClient *curAudioFix;\r\n" + hide + + + + + + + + + null + + + + null + + + + null + + + + null + + + + ARROW + + <__rect> + <__mousePos> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + + +
+ + + + + + + + + + + + { moreTxt : "" } + + + + + + + + + + + + +
+ + + + + + + + + + + 120 + + + + + 0 + + + + 0 + + <__firstFrame expr="true"> + + true + + + + + + + + + + + + + + + { force : false } + + + + + + + + + + + + + + + + + + + + + + + + + + + + [{ name : "Chart Editor", iconID : 0, state : funkin.editors.charter.CharterSelection }, { name : "Character Editor", iconID : 1, state : funkin.editors.character.CharacterSelection }, { name : "Stage Editor", iconID : 2, state : null }, { name : "UI Debug State", iconID : 3, state : UIDebugState }, { name : "Debug Options", iconID : 4, state : DebugOptions }] + + + + [] + + + + 0 + + + + + FlxPoint.get() + + + + FlxPoint.get() + + + + 0 + + + + false + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + 0 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + "default" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + null + + + + + + + + null + + + + + + + { closingWindow : false } + + + + + + + + + + + + + + + + + + + + + + [] + + + + [] + + + + 0 + + + + + + + + + + + + + + + + + + [] + + <__lastDrawCameras expr="[]"> + + [] + + <__rect expr="new FlxRect()"> + + new FlxRect() + + <__oldDefCams> + + + false + + + + false + + + + false + + + + true + + + + null + + + + ARROW + + + + + true + + + + true + + + + + + + + + + + + + + + + + + + * Called whenever the sprite is being hovered by the mouse. + + + + + + + + + + funkin.editors.ui.UIState + funkin.editors.ui.UIUtil + + + + + + + 120 + + + + 20 + + + + 0 + + + + false + + + + + + + + + + true + + + + true + + + + true + + + <__setSize set="method" line="144"> + + + + + + + + + + + + + + + + + + + null + + + + + true + + + + false + + + + + + + + + + + + + + + + + + + + + + + { h : 32, w : 120 } + + + + + + + + "" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + new CustomShader(Options.intensiveBlur ? "engine/editorBlur" : "engine/editorBlurFast") + + + + + + + + + 560 + + + + 570 + + + + "" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + + + + + + + + + + + + + <__character static="1"> + + + + + + + * CHARACTER UI STUFF + + + + + + new FlxTypedGroup<FlxSprite>() + + + + + + + + + new UndoList<CharacterChange>() + + + + + + FlxPoint.get(0, 0) + + + + + + <_file_exit set="method" line="323"> + + + + <_file_new set="method" line="328"> + + + + <_file_save set="method" line="331"> + + + + <_file_saveas set="method" line="343"> + + + + + <_edit_undo set="method" line="368"> + + + + <_edit_redo set="method" line="396"> + + + + <_char_add_anim set="method" line="416"> + + + + <_char_edit_anim set="method" line="420"> + + + + <_char_remove_anim set="method" line="424"> + + + + <_char_edit_info set="method" line="428"> + + + + + + + + + + + + + + + + { addtoUndo : true, animID : -1 } + + + + + + + + + { addtoUndo : true } + + + + + + + + { addtoUndo : true } + + + + + + + + + { addtoUndo : true } + + + + + + <_playback_play_anim set="method" line="531"> + + + + <_playback_stop_anim set="method" line="536"> + + + + + + + + <_offsets_left set="method" line="548"> + + + + <_offsets_up set="method" line="552"> + + + + <_offsets_down set="method" line="556"> + + + + <_offsets_right set="method" line="560"> + + + + <_offsets_extra_left set="method" line="564"> + + + + <_offsets_extra_up set="method" line="568"> + + + + <_offsets_extra_down set="method" line="572"> + + + + <_offsets_extra_right set="method" line="576"> + + + + <_offsets_clear set="method" line="580"> + + + + + + + + + + + { addtoUndo : true } + + + + + + + { addtoUndo : true } + + + + 0 + + <__camZoom set="accessor" expr="1"> + + 1 + + + + + + + + + + <_view_zoomin set="method" line="635"> + + + + <_view_zoomout set="method" line="639"> + + + + <_view_zoomreset set="method" line="643"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__song public="1" static="1"> + <__diff static="1"> + <__reload static="1"> + + + + + 0 + + + + + + + [] + + + + + 0 + + + + false + + + + + + + new FlxTypedGroup<FlxSprite>() + + + + + + 7 + + + + + + + 6 + + + + + + + 5 + + + + + + + + [] + + + + + + + + + + + + + + + + + + 16 + + + + [4, 8, 12, 16, 20, 24, 32, 48, 64, 192] + + + + 0 + + + + [] + + + + + new CharterStrumLineGroup() + + + + new CharterNoteGroup() + + + + new CharterEventGroup() + + + + + + + + + <__endStep public="1" expr="0"> + + 0 + + + + + + + + + + + + + + NONE + * NOTE AND CHARTER GRID LOGIC HERE + + + + new FlxPoint() + + + + new FlxPoint() + + + + false + + + <__autoSaveLocation expr="null"> + + null + + + + + + + + new Selection() + + + + + + + + + + + + + + + + { roundRatio : 0.5 } + + + + + + + + + + + + + + + + + { addToUndo : true } + + + + + + + + { addToUndo : true } + + + + + + + + { addToUndo : true } + + + + + + + + + + { __createNotes : true, addToUndo : true } + + + + + + + + { addToUndo : true } + + + + + + + + + + + + + + + + + + + <__crochet> + <__firstFrame expr="true"> + + true + + + + + + + + + 0 + + <__camZoom set="accessor" expr="1"> + + 1 + + + + + + + + + + <_file_exit set="method" line="1282"> + + + + <_file_save set="method" line="1287"> + + + + <_file_saveas set="method" line="1296"> + + + + <_file_save_no_events set="method" line="1303"> + + + + <_file_saveas_no_events set="method" line="1312"> + + + + <_file_meta_save set="method" line="1319"> + + + + <_file_meta_saveas set="method" line="1330"> + + + + <_file_saveas_fnflegacy set="method" line="1336"> + + + + <_file_saveas_psych set="method" line="1342"> + + + + <_file_events_save set="method" line="1348"> + + + + <_file_events_saveas set="method" line="1359"> + + + + + + + + + + { separateEvents : false } + + <_edit_copy set="method" line="1374"> + + + + <_edit_paste set="method" line="1392"> + + + + <_edit_cut set="method" line="1417"> + + + + <_edit_delete set="method" line="1424"> + + + + <_edit_undo set="method" line="1432"> + + + + <_edit_redo set="method" line="1478"> + + + + <_chart_playtest get="inline" set="null" line="1524"> + + + + <_chart_playtest_here get="inline" set="null" line="1526"> + + + + <_chart_playtest_opponent get="inline" set="null" line="1528"> + + + + <_chart_playtest_opponent_here get="inline" set="null" line="1530"> + + + + <_chart_enablescripts set="method" line="1531"> + + + + + + + + + + + + <_playback_play set="method" line="1540"> + + + + <_playback_speed_raise set="method" line="1558"> + + + + <_playback_speed_reset set="method" line="1559"> + + + + <_playback_speed_lower set="method" line="1560"> + + + + <_playback_metronome set="method" line="1562"> + + + + <_song_muteinst set="method" line="1565"> + + + + <_song_mutevoices set="method" line="1569"> + + + + <_playback_back set="method" line="1574"> + + + + <_playback_forward set="method" line="1578"> + + + + <_song_start set="method" line="1582"> + + + + <_song_end set="method" line="1586"> + + + + <_view_zoomin set="method" line="1590"> + + + + <_view_zoomout set="method" line="1594"> + + + + <_view_zoomreset set="method" line="1598"> + + + + <_view_showeventSecSeparator set="method" line="1602"> + + + + <_view_showeventBeatSeparator set="method" line="1606"> + + + + <_view_switchWaveformDetail set="method" line="1610"> + + + + <_snap_increasesnap get="inline" set="null" line="1615"> + + + + <_snap_decreasesnap get="inline" set="null" line="1616"> + + + + <_snap_resetsnap get="inline" set="null" line="1617"> + + + + + + + + + + + + + <_note_addsustain get="inline" set="null" line="1654"> + + + + <_note_subtractsustain get="inline" set="null" line="1657"> + + + + <_note_selectall set="method" line="1659"> + + + + <_note_selectmeasure set="method" line="1663"> + + + + + + + + + + + + + + { checkSelection : true } + + + + + + + + + + + + + + { here : false, opponentMode : false, time : 0 } + + + + + + + + + + + + + <__fixSelection public="1" get="inline" set="null" line="1819"> + + + + <__relinkSingleSelection public="1" set="method" line="1827"> + + + + + + + <__relinkSelection public="1" set="method" line="1835"> + + + + + + + <__relinkUndos public="1" get="inline" set="null" line="1842"> + + + + <__resetStatics public="1" set="method" line="1886"> + + + + <__clearStatics public="1" set="method" line="1894"> + + + + <__updatePlaytestInfo public="1" set="method" line="1899"> + + + + <__applyPlaytestInfo public="1" set="method" line="1912"> + + + + + + + + + + + { reload : true } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_new public="1" get="inline" set="null" line="1962" static="1"> + + + + + + + + + + + + + + + + + + + + + { draggableOnly : true } + + + + + <_new public="1" get="inline" set="null" line="1962" static="1"> + + + + + + + + + + + + + + + + + + + + + { draggableOnly : true } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + cast 2 + + + + + + + + cast 3 + + + + + + + + cast 4 + + + + + + + + cast 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + false + + <__timer> + <__tween> + + + + + + + + 0 + + + + + + + + + + + + { canned : false } + + + + + + + + + + + + + <__gridGraphic> + + + 0 + + + + 0 + + + + true + + + + true + + + + 0 + + + + + + + { amount : 0 } + + + + + + + + null + + + + + + + + + + + + + + + + + + + + + + new FlxTypedGroup<CharterNote>() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [0xFFC24B99, 0xFF00FFFF, 0xFF12FA05, 0xFFF9393F] + + + <__doAnim expr="false"> + + false + + <__animSpeed expr="1"> + + 1 + + <__susInstaLerp expr="false"> + + false + + + + + 0 + + + + false + + + + + false + + + + true + + + + + + + + + + -1 + + + + + true + + + + + + + + + + + + + { strumLine : null, type : 0, susLength : 0 } + + + <__passed expr="false"> + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + .4 + + <__garbageAlpha expr="0"> + + 0 + + <__deletionTimer expr=".1"> + + .1 + + <__mousePos expr="FlxPoint.get()"> + + + FlxPoint.get() + + + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + false + + + + true + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 0 + + + + null + + + + + + + + + + + + + + + + + + + + + + + true + + <__lastSort expr="0"> + + 0 + + + + + + + + + + + + { force : true } + + + + + + + + + + + + + + + + + 0 + + + + [] + + + + + + + [] + + + + + + + -1 + + + + + + + + { save : true } + + + + + + + + + + + + + + null + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__loopSprite> + + + 0 + + + + 0 + + <__currentlyLooping expr="false"> + + false + + + + true + + <__lastSort expr="0"> + + 0 + + + + + + + + + + + { recursive : false } + + + + + + + + + + + + { force : true } + + + + + + + + + + + + + + + + + + + + + + + false + + <__mousePos expr="FlxPoint.get()"> + + + FlxPoint.get() + + + + + + + + + + + + + + + + + "data/notes/" + + + + + + + + + + + { mods : false } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + 0 + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__pastStrumlines> + + + null + + + + 0 + + + + false + + + + + + + + + + + + + + + + + + + { addToUndo : true } + + + + + + + + + + + + + + + true + + + + + + + false + + + + false + + + + null + + + + + -1 + + + + + + + <__healthYOffset expr="0"> + + 0 + + <__draggingYOffset expr="0"> + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + FlxPoint.get(0, 0) + + + + FlxPoint.get(0, 0) + + + + 0 + + + + + + + 0 + + + + + 1 + + + + + + + + + + + + { extra : false } + + + + + + + + + + + + + -1 + + + + + + + + + + + + + + + [] + + + + + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + [] + + + + + + + [] + + + + + + + [] + + + + + + + [] + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + + + + + + + + + + + + + + + + + + new FlxGroup() + + + + new FlxGroup() + + + + [] + + + + [] + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + false + + + + 0x440364 + + + + + + + + + + + + + + + + + + + + + 0 + + + + false + + + + + + + <__wasFocused expr="false"> + + false + + + + new Rectangle() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { multiline : false, height : 32, width : 320, text : "" } + + + + + + + + + [] + + + + 0 + + + + + + + + + + + <_suggestions expr="[]"> + + [] + + + + + + + { refreshSuggestions : true } + + + + + + + + + + + + + + + + + + + + + + + + + + { multiline : false, height : 32, width : 320, text : "" } + + + + + + + + + + + + + + + + + + + new FlxTypedGroup<T>() + + + + + + + 30 + + + + 16 + + + + FlxPoint.get() + + + + FlxPoint.get() + + + + false + + + + + + + + + + null + + + + 0 + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + null + + + + + + + + + + + + + + + + + + + + + { w : 0, checked : false } + + + + + + + + 8 + + + + + + + + + + [] + + + + + "#FFFFFF" + + + + + + + + + + + + + + + + + + + + { checkChanged : true } + + + + false + + + + + + + + + + + + + + + + + + FlxColor.WHITE + + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + [] + + <__oobDeletion expr="true"> + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + null + + + + + + + + + + + + + + + + + + + + + { index : 0, height : 32, width : 320 } + + + + + + + + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + { fileType : "txt" } + + + + + + + + + 0 + + + + null + + + + null + + + + 1 + + <__onChange set="method" line="25"> + + + + + + + + + + + + + + + + + + + + + { h : 32, w : 180, precision : 0, step : 1, value : 0 } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { w : 20 } + + + + + + + + + + + + + [] + + + + 120 + + + + + + + + + + + 0 + + + + + + + + + + + <__barProgress expr="0"> + + 0 + + + + 0 + + <__stepperWidth expr="25"> + + 25 + + + + + + <__calcValue set="method" line="129"> + + + + <__calcProgress set="method" line="141"> + + + + + + + + + + + + + + { width : 120 } + + + + + + + + false + + + + + + + + + + + + + + { outline : true, color : 0xFFFFFFFF, size : 15 } + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + { y : 0, x : 0 } + + + + + + + + + + + * Process all options with shortcuts present in a `Array<UIContextMenuOption>`. Also checks childrens. + * @param topMenuOptions + + + + + + + + + + + + + + + + [] + + + + new CustomShader(Options.intensiveBlur ? "engine/editorBlur" : "engine/editorBlurFast") + + <c path="String"/> + + + + + true + + + + + + + + + + + + + + + + { isError : true } + + + + + + + + + + + + + + + + + + + + + ["x", "y", "sprite", "scale", "antialiasing", "flipX", "camx", "camy", "isPlayer", "icon", "color", "gameOverChar", "holdTime"] + + + + ["name", "anim", "x", "y", "fps", "loop", "indices"] + + + + "bf" + + + + "bf-dead" + + + + + + + + + + + + + + + + + + { mods : false } + + + + false + + + + "bf" + + + + "bf" + + + + Math.NEGATIVE_INFINITY + + + + 4 + + + + false + + + + null + + + + null + + + + Character.FALLBACK_DEAD_CHARACTER + + + + FlxPoint.get(0, 0) + + + + FlxPoint.get(0, 0) + + + + + + "" + + + + false + + <__stunnedTime expr="0"> + + + 0 + + + + <__lockAnimThisFrame expr="false"> + + + false + + + + <__switchAnims expr="true"> + + + true + + + + <__swappedLeftRightAnims expr="false"> + + + false + + + + <__autoInterval expr="false"> + + + false + + + + + + + + + + { autoInterval : false, switchAnims : false } + + + <__baseFlipped expr="false"> + + + false + + + + + + + false + + + + + + + + + + false + + + + + + true + * Whenever the character should dance on beat or not. Set to false for `gf`, since the dance animation is automatically handled by PlayState. + + + + + + + + + + <__reverseDrawProcedure expr="false"> + + + false + + + + + + + + + + + + + + + + + ["singLEFT", "singDOWN", "singUP", "singRIGHT"] + + + + + + + + + + + + { Frame : 0, Reversed : false, Force : null, Context : SING, suffix : "" } + + + + + + + + + + + { Frame : 0, Reversed : false, Context : NONE } + + + + <__reverseTrailProcedure expr="false"> + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { disableScripts : false, switchAnims : true, isPlayer : false, character : "bf" } + + + + funkin.desktop.editors.CharacterEditor + funkin.game.StrumLine + funkin.game.PlayState + + + + + + + + + + + + + + + + + PlayState.instance + + <__cancelDefault expr="false"> + + false + + + + 0 + + + + 0 + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + { retrySFX : "gameOverEnd", lossSFX : "gameOverSFX", gameOverSong : "gameOver", player : true, character : "bf-dead" } + + + + + + + + * Used for FreeplayState! If you use it elsewhere, prob gonna annoying + + + + null + * The currently showing icon + + + + * If the character is for the player + + + + + + + null + * Health steps in this format: + * Min Percentage => Frame Index + + + + + + + * Helper for HScript who can't make maps + * @param steps Something like this: `[[0, 1], [20, 0]]` + + + + + + + + + { height : 150, width : 150 } + + + + + + + + + + + + { isPlayer : false, char : "bf" } + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + 160 * 0.7 + + <__customNoteTypeExists expr="[]" line="91" static="1"> + + + + + [] + + + + + + <__notePosFrameOffset expr="new FlxPoint()" line="224" static="1"> + + new FlxPoint() + + <__posPoint expr="new FlxPoint()" line="225" static="1"> + + new FlxPoint() + + + + + + + [] + + + + 0 + + + + + + + + + + + 0 + + + + false + + + + false + + + + false + + + + false + * Whenever that note should be avoided by Botplay. + + + + * The note that comes before this one (sustain and not) + + + + * The note that comes after this one (sustain and not) + + + + * The next sustain after this one + + + + "default" + * Name of the splash. + + + + + + 0 + + + + false + + + + true + + + + 0 + + + + null + + + + null + + + <__strumCameras public="1" expr="null"> + + + null + hide + + + <__strum public="1" expr="null"> + + + null + hide + + + <__noteAngle public="1" expr="0"> + + + 0 + hide + + + + + + null + + + + null + + + + true + + + + 0 + + + + + + + + + + true + * Whenever the position of the note should be relative to the strum position or not. + * For example, if this is true, a note at the position 0; 0 will be on the strum, instead of at the top left of the screen. + + + + + + + + + 0.5 + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + { sustainOffset : 0, sustainLength : 0, sustain : false } + + + + funkin.game.PlayState + + + + + <__loopSprite> + + + 0 + + <__currentlyLooping expr="false"> + + false + + <__time expr="-1.0"> + + -1.0 + + + + 1500 + * How many ms it should show a note before it should be hit + + + + + + + * Preallocates the members array with nulls, but if theres anything in the array already it clears it + + + + + + + <__forcedSongPos public="1" expr="null"> + + + null + hide + + + <__getSongPos get="inline" set="null" line="41"> + + hide + + + + + + + + + + + + * Gets the correct order of notes + + + + + + + + + + + { recursive : false } + + + + + + + + + + + { recursive : false } + + + + + + + + { Splice : false } + + + + + + + + + + + + null + * Current PlayState instance. + + + + * SONG DATA (Chart, Metadata) + + + + false + * Whenever the song is being played in Story Mode. + + + + null + * The week data of the current week + + + + [] + * The remaining songs in the Story Mode playlist. + + + + "normal" + * The selected difficulty name + + + + false + * Whenever the week is coming from the mods folder or not. + + + + false + * Whenever Charting Mode has been enabled for this song. + + + + false + * Whenever the song has been started with opponent mode on. + + + + false + * Whenever the song has been started with co-op mode on. + + + + 0 + * Death counter on current week (or song if from freeplay). + + + + * Previous cam follow. + + + + 0 + * Score for the current week. + + + + 0 + * Misses for the current week. + + + + * Accuracy for the current week + + + + 0 + + + + 0 + + + + 6 + * Zoom for the pixel assets. + + + + false + * Whenever the game has already played a specific cutscene for the current song. Check `startCutscene` for more details. + + + + + + + + + + + { difficulty : "normal" } + * Load a week into PlayState. + * @param weekData Week Data + * @param difficulty Week Difficulty + + + + + + + + + + { coopMode : false, opponentMode : false, difficulty : "normal" } + * Loads a song into PlayState + * @param name Song name + * @param difficulty Chart difficulty (if invalid, will load an empty chart) + * @param opponentMode Whenever opponent mode is on + * @param coopMode Whenever co-op mode is on. + + <__loadSong public="1" set="method" line="1914" static="1"> + + + + + + * (INTERNAL) Loads a song without resetting story mode/opponent mode/coop mode values. + * @param name Song name + * @param difficulty Song difficulty + + + + * Script Pack of all the scripts being ran. + + + + new FlxTypedGroup<StrumLine>() + * Array of all the players in the stage. + + + + "gameOver" + * Game Over Song. (assets/music/gameOver.ogg) + + + + "gameOverSFX" + * Game Over Song. (assets/sounds/gameOverSFX.ogg) + + + + "gameOverEnd" + * Game Over End SFX, used when retrying. (assets/sounds/gameOverEnd.ogg) + + + + * Current Stage. + + + + true + * Whenever the score will save when you beat the song. + + + + !opponentMode && !coopMode + * Whenever the player can die. + + + + Options.ghostTapping + * Whenever Ghost Tapping is enabled. + + + + opponentMode && !coopMode + * Whenever the opponent can die. + + + + 0 + * Current scroll speed for all strums. + * To set a scroll speed for a specific strum, use `strum.scrollSpeed`. + + + + * Whenever the game is in downscroll or not. (Can be set) + + + + + + + hide + + + + hide + + + + * Instrumental sound (Inst.ogg). + + + + * Vocals sound (Vocals.ogg). + + + + * Dad character + + + + * Girlfriend character + + + + * Boyfriend character + + + + * Strum line position + + + + 0 + * Number of ratings. + + + + * Object defining the camera follow target. + + + + * Player strums. + + + + * CPU strums. + + + + * Shortcut to `playerStrums`. + + + + * Shortcut to `cpuStrums`. + + + + * Note splashes container + + + + true + * Whenever the vocals should be muted when a note is missed. + + + + true + * Whenever the player can press 7, 8 or 9 to access the debug menus. + + + + true + * Whether or not to show the secret gitaroo pause. + + + + true + * Whether or not to bop the icons on beat. + + + + false + * Whenever cam zooming is enabled, enables on a note hit if not cancelled. + + + + 4 + * Interval of cam zooming (beats). + * For example: if set to 4, the camera will zoom every 4 beats. + + + + 1 + * How strong the cam zooms should be (defaults to 1) + + + + 1.35 + * Maximum amount of zoom for the camera. + + + + "" + * Current song name (lowercase) + + + + "" + * Current stage name + + + + * Interval at which Girlfriend dances. + + + + 1 + * Current health. Goes from 0 to maxHealth (defaults to 2) + + + + + 2 + + + * Maximum health the player can have. Defaults to 2. + + + + 0 + * Current combo. + + + + !Options.ghostTapping + * Whenever the misses should show "Combo Breaks" instead of "Misses" + + + + * Health bar background. + + + + * Health bar. + + + + false + * Whenever the music has been generated. + + + + false + * Whenever the song is currently being started. + + + + * Player's icon + + + + * Opponent's icon + + + + * Camera for the HUD (notes, misses). + + + + * Camera for the game (stages, characters) + + + + 0 + * The player's current score. + + + + 0 + * The player's amount of misses. + + + + * The player's accuracy (shortcut to `accuracyPressedNotes / totalAccuracyAmount`). + + + + 0 + * The number of pressed notes. + + + + 0 + * The total accuracy amount. + + + + * FunkinText that shows your score. + + + + * FunkinText that shows your amount of misses. + + + + * FunkinText that shows your accuracy. + + + + 1.05 + * Camera zoom at which the game lerps to. + + + + 0.05 + * Speed at which the game camera zoom lerps to. + + + + 1.0 + * Camera zoom at which the hud lerps to. + + + + 0.05 + * Speed at which the hud camera zoom lerps to. + + + + false + * Whenever the game is currently in a cutscene or not. + + + + isStoryMode + * Whenever the game should play the cutscenes. Defaults to whenever the game is currently in Story Mode or not. + + + + null + * Cutscene script path. + + + + null + * End cutscene script path. + + + + * Last rating (may be null) + + + + * Timer for the start countdown + + + + [] + * Remaining events + + + + 0 + * Current camera target. -1 means no automatic camera targetting. + + + + 5 + * Length of the intro countdown. + + + + [null, "game/ready", "game/set", "game/go"] + * Array of sprites for the intro. + + + + ["intro3", "intro2", "intro1", "introGo"] + * Array of sounds for the intro. + + + + false + * Whenever the game is paused or not. + + + + false + * Whenever the countdown has started or not. + + + + true + * Whenever the game can be paused or not. + + + + new FlxTextFormat(0xFF888888, false, false, 0) + * Format for the accuracy rating. + + + + false + * Whenever the song is ending or not. + + + + * Group containing all of the combo sprites. + + + + [null] + * Array containing all of the note types names. + + + + Options.hitWindow + * Hit window, in milliseconds. Defaults to 250ms unless changed in options. + * Base game hit window is 175ms. + + <_startCountdownCalled expr="false"> + + + false + + hide + + + <_endSongCalled expr="false"> + + + false + + hide + + + <__vocalOffsetViolation expr="0"> + + + 0 + hide + + + + + + + + + + [new ComboRating(0, "F", 0xFFFF4444), new ComboRating(0.5, "E", 0xFFFF8844), new ComboRating(0.7, "D", 0xFFFFAA44), new ComboRating(0.8, "C", 0xFFFFFF44), new ComboRating(0.85, "B", 0xFFAAFF44), new ComboRating(0.9, "A", 0xFF88FF44), new ComboRating(0.95, "S", 0xFF44FFFF), new ComboRating(1, "S++", 0xFF44FFFF)] + * All combo ratings. + + + + "" + + + + "" + + <__cachedGraphics expr="[]"> + + + [] + + + + + + * Updates the rating. + + + + + + + + + hide + + + + hide + + + + * Function used to update Discord Presence. + * This function is dynamic, which means you can do `updateDiscordPresence = function() {}` in scripts. + + + + + + + + + + { checkSeen : false, prefix : "" } + * Starts a cutscene. + * @param prefix Custom prefix. Using `midsong-` will require you to for example rename your video cutscene to `songs/song/midsong-cutscene.mp4` instead of `songs/song/cutscene.mp4` + * @param cutsceneScriptPath Optional: Custom script path. + * @param callback Callback called after the cutscene ended. If equals to `null`, `startCountdown` will be called. + * @param checkSeen Bool that by default is false, if true and `seenCutscene` is also true, it won't play the cutscene but directly call `callback` (PS: `seenCutscene` becomes true if the cutscene gets played and `checkSeen` was true) + + + + hide + + + + + + + * Creates a fake countdown. + + + + hide + + + + + + + + hide + + + + + + + + hide + + + + + + + + { amount : 4 } + hide + + + + + + + + hide + + + + hide + + + + * Returns the Discord RPC icon. + + + + hide + + + + hide + + + + hide + + + + * Pauses the game. + + + + + + + { closingWindow : true } + + + + + + + + + hide + + + + + null + + + + + + <__updateNote_event public="1" expr="null"> + + + null + hide + + + + + + + + + + + + * Forces a game over. + * @param character Character which died. Default to `boyfriend`. + * @param deathCharID Character ID (name) for game over. Default to whatever is specified in the character's XML. + * @param gameOverSong Song for the game over screen. Default to `this.gameOverSong` (`gameOver`) + * @param lossSFX SFX at the beginning of the game over (Mic drop). Default to `this.lossSFX` (`gameOverSFX`) + * @param retrySFX SFX played whenever the player retries. Defaults to `retrySFX` (`gameOverEnd`) + + + + * Ends the song. + + + + * Immediately switches to the next song, or goes back to the Story/Freeplay menu. + + + + + + + + + + + + * Misses a note + * @param strumLine The strumline the miss happened on. + * @param note Note to miss. + * @param direction Specify a custom direction in case note is null. + * @param player Specify a custom player in case note is null. + + + + + + + hide + + + + + + + + * Hits a note + * @param note Note to hit. + + + + + + + + { evt : null } + + + + + + + { evt : null } + + + + + + + + + + + hide + + + + + + + hide + + + + + + + hide + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flixel.text.FlxText.FlxTextFormatRange + funkin.game.StrumLine + + + + + + + + + + + + + + + + + + + + + + + + + + + true + * Whenever the splash group has successfully loaded or not. + + + + * XML data for the note splashes. + + + + [] + * Animation names sorted by strum IDs. + * Use `getSplashAnim` to get one. + + + + + + + + + + + + + + + + + + + <__splash> + + + + + + + + + + * Creates a new Splash group + * @param path Path to the splash data (xml) + + + + + + + + + + + [] + * Map containing all of the splashes group. + + + + + + + * Returns a group of splashes, and creates it if it doesn't exist. + * @param path Path to the splashes XML (`Paths.xml('splashes/splash')`) + + + <_firstDraw expr="true"> + + true + + + <__grp> + + + + + + + + + + + + + + + + + { mods : false } + + + + + + + + + [] + + + + + + + + + [] + + + + + + + [] + + + + "" + + + + + + + + + + + + + + + + + + { def : false } + + + + + + + + + { id : 0 } + + + + + + + + + + + + + + + + + + + + + + + + + 20 + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + 1 + + + + false + + + + FlxPoint.get(1, 1) + + + + + + + + + { id : 0 } + + + + + + + + + + + + + + + + 565.4866776461628 + + + + + + + Note.swagWidth / 2 + + + + + + + + + [] + + + + "" + * Which animation suffix on characters that should be used when hitting notes. + + + + false + + + + -5000 + + + + null + + + + null + + + + [] + + + + + + + null + + + + + + + null + + + + + + + null + + <__getPressed public="1" get="inline" set="null" line="26"> + + + + <__getJustPressed public="1" get="inline" set="null" line="35"> + + + + <__getJustReleased public="1" get="inline" set="null" line="44"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { force : true } + + + + + + + + + + + + + + + + + + new FlxTypedSignal<NoteHitEvent>() + * Signal that triggers whenever a note is hit. Similar to onPlayerHit and onDadHit, except strumline specific. + * To add a listener, do + * `strumLine.onHit.add(function(e:NoteHitEvent) {});` + + + + + + + new FlxTypedSignal<NoteMissEvent>() + * Signal that triggers whenever a note is missed. Similar to onPlayerMiss, except strumline specific. + * To add a listener, do + * `strumLine.onMiss.add(function(e:NoteMissEvent) {});` + + + + + + + new FlxTypedSignal<NoteUpdateEvent>() + * Signal that triggers whenever a note is being updated. Similar to onNoteUpdate, except strumline specific. + * To add a listener, do + * `strumLine.onNoteUpdate.add(function(e:NoteUpdateEvent) {});` + + + + + + + new FlxTypedSignal<SimpleNoteEvent>() + * Signal that triggers whenever a note is being deleted. Similar to onNoteDelete, except strumline specific. + * To add a listener, do + * `strumLine.onNoteDelete.add(function(e:SimpleNoteEvent) {});` + + + + * Array containing all of the characters "attached" to those strums. + + + + false + * Whenever this strumline is controlled by cpu or not. + + + + false + * Whenever this strumline is from the opponent side or the player side. + + + + null + * Controls assigned to this strumline. + + + + null + * Chart JSON data assigned to this StrumLine (Codename format) + + + + + null + + + * Whenever Ghost Tapping is enabled. + + + + * Group of all of the notes in this strumline. Using `forEach` on this group will only loop through the first notes for performance reasons. + + + + * Whenever alt animation is enabled on this strumline. + + + + "" + * Which animation suffix on characters that should be used when hitting notes. + + + + ["left", "down", "up", "right"] + * TODO: Write documention about this being a variable that can help when making multi key + + + + * Vocals sound (Vocals.ogg). Used for individual vocals per strumline. + + + + + + + [] + + + + + + + + + FlxPoint.get(0, 0) + + + + 1 + + + + + + + + + + + + + <__updateNote_strum> + <__updateNote_songPos> + <__updateNote_event> + + + + + <__funcsToExec expr="[]"> + + + + + [] + + <__pressed expr="[]"> + + [] + + <__justPressed expr="[]"> + + [] + + <__justReleased expr="[]"> + + [] + + <__notePerStrum expr="[]"> + + [] + + <__inputProcessPressed set="method" line="217"> + + + + <__inputProcessJustPressed set="method" line="222"> + + + + + + + + + { id : 0 } + + + + + + + + + + + { amount : 4 } + + + + + + + + + * Creates a strum and returns the created strum (needs to be added manually). + * @param i Index of the strum + * @param animPrefix (Optional) Animation prefix (`left` = `arrowLEFT`, `left press`, `left confirm`). + + + + + + + * Deletes a note from this strumline. + * @param note Note to delete + + + + + + + * SETTERS & GETTERS + + + + + + + + + + + + + + + + + + + + + + { vocalPrefix : "", opponentSide : true, cpu : false } + + + + + + <__callback> + + + PlayState.instance + + + + + + + + + + + * Substate made for cutscenes. + + + + + + + + + + + + [] + + + + [] + + + + null + + + + null + + + + + + null + + + + + + + + + + + + + + + + + + + true + * Use this to cancel `next`! + + + + + + + { playFirst : false } + + + + + + + + + * Substate made for dialogue cutscenes. To use it in a scripted cutscene, call `startDialogue`. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Substate made for scripted cutscenes. + * To add cutscenes to your songs, add a `cutscene.hx` file in your song's directory (ex: `songs/song/cutscene.hx`) + + + + + + + 0 + + + + + + + + + + + true + + + + + + + false + + + + + + [] + + + + + + + + + + + + + + + + + + * Substate made for video cutscenes. To use it in a scripted cutscene, call `startVideo`. + + + + + + + + + + + + + + + + [] + + + + false + + + + Paths.sound("dialogue/next") + + + + + + "dialogue/boxes/" + + + + + DialogueCutscene.cutscene + + + + + + + + + + + { Frame : 0, Reversed : false, Context : NONE } + + + + + + + + + + + + + + + + { force : false } + + + + + + + + + + + + + + + { allowDefault : true, setTextAfter : false, speed : 0.05, text : "", suffix : "" } + + + + + + + + + { text : "" } + + + + + + + + + + { speed : 0.05, text : "" } + + + + + + + + + + + + + + + + + + + + NONE + + + + + + + + null + + + + "normal" + + + + "dialogue/characters/" + + + + + DialogueCutscene.cutscene + + + + + + + + + + + { Frame : 0, Reversed : false, Context : NONE } + + + + + + + + + + + + + + + + + + { force : false } + + + + + + + + { force : false } + + + + + + + + + + + + + + + + + cast -1 + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + + + + + cast -1 + + + + + + + + cast 0 + + + + + + + + cast 1 + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + [] + * Array containing all of the songs metadatas + + + + 0 + * Currently selected song + + + + 1 + * Currently selected difficulty + + + + 0 + * Currently selected coop/opponent mode + + + + * Text containing the score info (PERSONAL BEST: 0) + + + + * Text containing the current difficulty (< HARD >) + + + + * Text containing the current coop/opponent mode ([TAB] Co-Op mode) + + + + 0 + * Currently lerped score. Is updated to go towards `intendedScore`. + + + + 0 + * Destination for the currently lerped score. + + + + * Assigned FreeplaySonglist item. + + + + * Black background around the score, the difficulty text and the co-op text. + + + + * Background. + + + + true + * Whenever the player can navigate and select + + + + * Group containing all of the alphabets + + + + false + * Whenever the currently selected song is playing. + + + + [] + * Array containing all of the icons. + + + + * FlxInterpolateColor object for smooth transition between Freeplay colors. + + + + + 1 + * How much time a song stays selected until it autoplays. + + + + false + * Whenever the song autoplays when hovered over. + + + + false + * Whenever the autoplayed song gets async loaded. + + + + 0 + * Time elapsed since last autoplay. If this time exceeds `timeUntilAutoplay`, the currently selected song will play. + + + + true + * Whenever the currently selected song instrumental is playing. + + + + null + * Path to the currently playing song instrumental. + + + + + + <__opponentMode expr="false"> + + false + + <__coopMode expr="false"> + + false + + + + + + + + + + + { force : false, change : 0 } + * Changes the current difficulty + * @param change How much to change. + * @param force Force the change if `change` is equal to 0 + + + + + ["[TAB] Solo", "[TAB] Opponent Mode", "[TAB] Co-Op Mode", "[TAB] Co-Op Mode (Switched)"] + * Array containing all labels for Co-Op / Opponent modes. + + + + + + + + { force : false, change : 0 } + * Change the current coop mode context. + * @param change How much to change + * @param force Force the change, even if `change` is equal to 0. + + + + + + + + { force : false, change : 0 } + * Change the current selection. + * @param change How much to change + * @param force Force the change, even if `change` is equal to 0. + + + + + + + + + + + + + + + + { useTxt : true } + + + + [] + + + + + + + + { useTxt : true } + + + + + + + + + + + false + + + + + + + + + + + + + + + 0 + + + + + CoolUtil.coolTextFile(Paths.txt("config/menuItems")) + + + + + + + + true + + + + + false + + + + true + + + + + + + + + + + + + + + + { huh : 0 } + + + + + + + + + + + + + [] + + + + + 0 + + + + + + + + + + + + + { force : false } + + + + + + + + + + + + + + + ["Resume", "Restart Song", "Change Controls", "Change Options", "Exit to menu", "Exit to charter"] + + + + 0 + + + + + + PlayState.instance + + <__cancelDefault expr="false"> + + false + + + + + + + + + + + + + + + { change : 0 } + + + + + + + + { y : 0, x : 0 } + + + + + + + + + + false + + + + 0 + + + + [] + + + + [] + + + + + + 0 + + <__firstFrame expr="true"> + + true + + + + + + + + + + + + + + + + + + + + + + + + + [] + + + + [] + + + + + + + 0 + + + + 0 + + + + + + + [] + + + + + + + + 0 + + + + 0 + + + + true + + + + + <__lastDifficultyTween> + + + + + + + + + + + + { force : false } + + <__oldDiffName expr="null"> + + null + + + + + + + + { force : false } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null + + + + + + + + + + + + + + + + 0 + + + + false + + + + + + + + + + + + + + + + + + + + false + + + + false + + + + [] + + + + + + + + + + + false + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + 16 + + + + + + + [1 => new IntroText(["ninjamuffin99", "phantomArcade", "kawaisprite", "evilsk8er"]), 3 => new IntroText(["ninjamuffin99", "phantomArcade", "kawaisprite", "evilsk8er", "present"]), 4 => new IntroText(), 5 => new IntroText(["In association", "with"]), 7 => new IntroText(["In association", "with", "newgrounds", { name : "newgroundsLogo", path : "menus/titlescreen/newgrounds_logo", scale : 0.8 }]), 8 => new IntroText(), 9 => new IntroText(["{introText1}"]), 11 => new IntroText(["{introText1}", "{introText2}"]), 12 => new IntroText(), 13 => new IntroText(["Friday"]), 14 => new IntroText(["Friday", "Night"]), 15 => new IntroText(["Friday", "Night", "Funkin'"])] + + + + + false + + + + + + + + + + funkin.backend.assets.ModsFolder + funkin.backend.system.MainState + + + + + + + + + [] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + "FNF-CNE-Devs" + + + + 0xFF9C35D5 + + + + 0xFFB4A7DA + + + + 0 + + <_canReset expr="true"> + + true + + <_downloadingSteps expr="0"> + + 0 + + + + + + + + + + + { forceDisplaying : false } + + + + + + + + + + + + + + + + + [] + + + + + + + + + * XML STUFF + + + + + + + + + 0.05 + + + + false + + + + 0 + + + + false + + + + "" + + <_finalText expr=""""> + + "" + + <_curText expr=""""> + + "" + + + + 1 + + + + + false + + + + [] + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + { typed : false, bold : false, text : "" } + + * Loosely based on FlxTypeText lolol + + + + + <__alphaPath public="1" expr="null" line="211" static="1"> + + + null + hide + + + + + + + + + + + [] + + + + + + + [] + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + <__save public="1" static="1"> + + + hide + + + + <__eventAdded expr="false" line="14" static="1"> + + + false + hide + + + + + + true + * SETTINGS + + + + false + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + 1 + + + + true + + + + true + + + + true + + + + false + + + + false + + + + true + + + + 250 + + + + 0 + + + + 120 + + + + true + + + + null + + + + true + * EDITORS SETTINGS + + + + true + + + + false + + + + 120 + + + + null + * QOL FEATURES + + + + "normal" + + + + [] + + + + [] + + + + + false + * CHARTER + + + + true + + + + true + + + + true + + + + false + + + + true + + + + 60 * 5 + + + + 5 + + + + false + + + + [A] + * PLAYER 1 CONTROLS + + + + [S] + + + + [W] + + + + [D] + + + + [A] + + + + [S] + + + + [W] + + + + [D] + + + + [ENTER] + + + + [BACKSPACE] + + + + [ENTER] + + + + [R] + + + + [TAB] + + + + [LEFT] + * PLAYER 2 CONTROLS (ALT) + + + + [DOWN] + + + + [UP] + + + + [RIGHT] + + + + [LEFT] + + + + [DOWN] + + + + [UP] + + + + [RIGHT] + + + + [SPACE] + + + + [ESCAPE] + + + + [ESCAPE] + + + + [] + + + + [] + + + + * SOLO GETTERS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <__flush public="1" set="method" line="8" static="1"> + <__load public="1" set="method" line="8" static="1"> + + + funkin.backend.system.macros.OptionsMacro.build() + funkin.backend.system.macros.FunkinSaveMacro.build("__save", "__flush", "__load") + + + + + + + + + + + + + + [{ name : "Notes", settings : [{ name : "{noteLeft}", control : "NOTE_LEFT" }, { name : "{noteDown}", control : "NOTE_DOWN" }, { name : "{noteUp}", control : "NOTE_UP" }, { name : "{noteRight}", control : "NOTE_RIGHT" }] }, { name : "UI", settings : [{ name : "Left", control : "LEFT" }, { name : "Down", control : "DOWN" }, { name : "Up", control : "UP" }, { name : "Right", control : "RIGHT" }, { name : "Accept", control : "ACCEPT" }, { name : "Back", control : "BACK" }, { name : "Reset", control : "RESET" }, { name : "Pause", control : "PAUSE" }] }, { name : "Engine", settings : [{ name : "Switch Mod", control : "SWITCHMOD" }] }] + + + + + false + + + + 0 + + + + true + + + + + + + [0xFFC24B99, 0xFF00FFFF, 0xFF12FA05, 0xFFF9393F] + + + + new FlxObject(0, 0, 2, 2) + + + + false + + + + + + true + + + + + + + + + + + + + + + + + + + <__metronome expr="FlxG.sound.load(Paths.sound("editors/charter/metronome"))"> + + FlxG.sound.load(Paths.sound("editors/charter/metronome")) + + + <__changeOffset set="method" line="40"> + + + + <__lastBeat expr="0"> + + 0 + + <__lastSongBeat expr="0"> + + 0 + + + + + + + + + + + + <__changeFPS set="method" line="52"> + + + + + + + + + + + + + + + + [{ name : "Controls", desc : "Change Controls for Player 1 and Player 2!", state : null, substate : funkin.options.keybinds.KeybindsOptions }, { name : "Gameplay >", desc : "Change Gameplay options such as Downscroll, Scroll Speed, Naughtyness...", state : GameplayOptions }, { name : "Appearance >", desc : "Change Appearance options such as Flashing menus...", state : AppearanceOptions }, { name : "Miscellaneous >", desc : "Use this menu to reset save data or engine settings.", state : MiscOptions }] + + + + + + + + + * XML STUFF + + + + + + + + + + + + + + + + + + + + + + + + + + + <__subMenuClose set="method" line="47"> + + + + + + + + + + + + + + + + + + + + 0 + + + + 0 + + + + + + + + + + new FlxTypedSignal<PlayerSettings>() + + + + + + + new FlxTypedSignal<PlayerSettings>() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + <c path="funkin.menus.ui.Alphabet"/> + + + + + + -1 + + + + false + + + + + + + + + + + + + + + + { p2 : false } + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + <__text> + <__selectiontext> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { selectCallback : null } + + + + + + + <__text> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ["checked" => FlxPoint.get(1, -1), "unchecked" => FlxPoint.get(-12, -72), "checking" => FlxPoint.get(12, 30)] + + + + FlxPoint.get() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { flashColor : 0 } + + + + + + + + + null + + + + true + + + + + + + + + + + + + + + + + { waitUntilLoad : 0.25, usePortrait : true, size : 96 } + + + + + + + + + + + + + + + new sys.thread.Mutex() + + + + + + + + + + + + + + + + + { waitUntilLoad : 0.25, size : 96 } + + + + + + + + + + + + + + + + + + + + + <__text> + <__number> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { selectCallback : null } + + + + + + + + null + + + + + + + + + { usePortrait : true, size : 96 } + + + + + + + + + + + + { usePortrait : true, size : 96 } + + + + + + + + + + [] + + <__eventAdded expr="false" line="22" static="1"> + + + false + hide + + + * ONLY OPEN IF YOU WANT TO EDIT FUNCTIONS RELATED TO SAVING, LOADING OR HIGHSCORES. + + + + + + + + + + + + + + * Returns the high-score for a song. + * @param name Song name + * @param diff Song difficulty + * @param changes Changes made to that song in freeplay. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * Class used for saves WITHOUT going through the struggle of type checks + * Just add your save variables the way you would do in the Options.hx file. + * The macro will automatically generate the `flush` and `load` functions. + + + funkin.backend.system.macros.FunkinSaveMacro.build("save", "flush", "load") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/api-generator/api/filter.py b/api-generator/api/filter.py new file mode 100644 index 0000000..8a74b82 --- /dev/null +++ b/api-generator/api/filter.py @@ -0,0 +1,37 @@ +from lxml import etree + +# This script filters out unnecessary classes from the doc.xml file, so its smaller and faster to load + +parser = etree.XMLParser(recover=True) # recover=True to ignore invalid XML +tree = etree.parse('./doc.xml', parser) + +root = tree.getroot() + +print(f"Root tag: {root.tag}") + +filtered = [] + +total = 0 + +for child in root: + total += 1 + if "path" not in child.attrib: + print(f"Tag: {child.tag}, Attributes: {child.attrib}, Text: {child.text.strip() if child.text else ''}") + continue + path = child.attrib["path"] + if path.startswith("funkin") and not path.endswith("_HSX") and not path.endswith("_HSC"): + filtered.append(child) + + +haxe = etree.Element("haxe") + +for child in filtered: + haxe.append(child) + +tree = etree.ElementTree(haxe) + +with open("./doc-filter.xml", "wb") as f: + f.write(etree.tostring(haxe, pretty_print=True, xml_declaration=True, encoding="utf-8")) + +print(f"Cleaned up {total - len(filtered)} classes") +print(f"{total} to {len(filtered)}") \ No newline at end of file diff --git a/api-generator/dox.hxml b/api-generator/dox.hxml new file mode 100644 index 0000000..b1bf64f --- /dev/null +++ b/api-generator/dox.hxml @@ -0,0 +1,14 @@ +-lib dox + +-lib hxtemplo +-lib hxparse +-lib hxargs +-lib markdown + +-dce no +-main Main + +--define analyzer-optimize + +-neko bin/main.n +-cmd neko bin/main.n \ No newline at end of file diff --git a/api-generator/generateDoc.bat b/api-generator/generateDoc.bat new file mode 100644 index 0000000..2fefac2 --- /dev/null +++ b/api-generator/generateDoc.bat @@ -0,0 +1,4 @@ +@ECHO OFF +echo Generating Documentation... +haxe dox.hxml +echo Done! \ No newline at end of file diff --git a/api-generator/generateDoc.sh b/api-generator/generateDoc.sh new file mode 100755 index 0000000..896bdd1 --- /dev/null +++ b/api-generator/generateDoc.sh @@ -0,0 +1,3 @@ +echo Generating Documentation... +haxe dox.hxml +echo Done! \ No newline at end of file diff --git a/api-generator/setup.bat b/api-generator/setup.bat new file mode 100755 index 0000000..430ca44 --- /dev/null +++ b/api-generator/setup.bat @@ -0,0 +1,6 @@ +haxelib --global install dox +haxelib --global install hxtemplo +haxelib --global install hxparse +haxelib --global install hxargs +haxelib --global install markdown +pip install lxml \ No newline at end of file diff --git a/api-generator/theme/config.json b/api-generator/theme/config.json new file mode 100644 index 0000000..7fc77cb --- /dev/null +++ b/api-generator/theme/config.json @@ -0,0 +1,4 @@ +{ + "name": "Codename Theme", + "author": "Codename-Engine" +} diff --git a/src/pages/api-docs/highlighter.css b/api-generator/theme/resources/highlighter.css similarity index 100% rename from src/pages/api-docs/highlighter.css rename to api-generator/theme/resources/highlighter.css diff --git a/api-generator/theme/resources/highlighter.js b/api-generator/theme/resources/highlighter.js new file mode 100644 index 0000000..126f4ff --- /dev/null +++ b/api-generator/theme/resources/highlighter.js @@ -0,0 +1,44 @@ +// highlighter adapted/modified from code.haxe.org +// cleaned up by Ne_Eo +(function () { "use strict"; +var EReg = function(r,opt) { + opt = opt.split("u").join(""); + this.r = new RegExp(r,opt); +}; +EReg.prototype = { + replace: function(s,by) { + return s.replace(this.r,by); + } +}; +var kwds = ["abstract","break","case","cast","catch","class","continue","default","do","dynamic","else","enum","extends","extern","false","final","for","function","if","implements","import","in","inline","interface","macro","new","operator","overload","override","package","private","public","return","static","switch","this","throw","true","try","typedef","untyped","using","var","while"]; +var kwds1 = new EReg("\\b(" + kwds.join("|") + ")\\b","g"); +var vals = ["null","true","false","this"]; +var vals1 = new EReg("\\b(" + vals.join("|") + ")\\b","g"); +var types = new EReg("\\b([A-Z][a-zA-Z0-9]*)\\b","g"); +var strreg = new EReg("(\"[^\"]*\")","g") +var commentreg = new EReg("(//.+?)(\n|$)","g"); +var blockcmtreg = new EReg("(/\\*\\*?(.|\n)+?\\*?\\*/)","g"); +function syntaxHighlight(html) { + html = kwds1.replace(html,"$1"); + html = vals1.replace(html,"$1"); + html = types.replace(html,"$1"); + html = strreg.replace(html,"$1"); + html = commentreg.replace(html,"$1$2"); + html = blockcmtreg.replace(html,"$1"); + return html; +}; + + +var items = window.document.body.querySelectorAll("pre code"); +var len = items.length; +for(var i = 0; i < len; i++) { + var el = items[i]; + if(el.className.indexOf("highlighted") != -1) { + continue; + } + + el.innerHTML = syntaxHighlight(el.innerHTML); + el.className += " highlighted"; +} + +})(); \ No newline at end of file diff --git a/api-generator/theme/resources/index.js b/api-generator/theme/resources/index.js new file mode 100644 index 0000000..0210f33 --- /dev/null +++ b/api-generator/theme/resources/index.js @@ -0,0 +1,302 @@ +function createCookie(name, value) { + localStorage.setItem(name, value); +} + +function readCookie(name) { + return localStorage.getItem(name); +} + +function toggleInherited(el) { + var toggle = el.closest(".toggle"); + toggle.classList.toggle("toggle-on"); + + var icon = toggle.querySelector("i"); + if (toggle.classList.contains("toggle-on")) { + icon.classList.remove("fa-folder"); + icon.classList.add("fa-folder-open"); + } else { + icon.classList.add("fa-folder"); + icon.classList.remove("fa-folder-open"); + } + + return false; +} + +function toggleCollapsed(el) { + var toggle = el.closest(".expando"); + toggle.classList.toggle("expanded"); + + var icon = toggle.querySelector("i"); + if (toggle.classList.contains("expanded")) { + icon.classList.remove("fa-folder"); + icon.classList.add("fa-folder-open"); + } else { + icon.classList.add("fa-folder"); + icon.classList.remove("fa-folder-open"); + } + + //updateTreeState(); + return false; +} + +/*function updateTreeState() { + var states = []; + document.querySelectorAll("#nav .expando").forEach(function (el) { + states.push(el.classList.contains("expanded") ? 1 : 0); + }); + var treeState = JSON.stringify(states); + createCookie("treeState", treeState); +}*/ + +document.addEventListener("DOMContentLoaded", function (event) { + document.getElementById("nav").innerHTML = navContent; + var treeState = readCookie("treeState"); + + document.querySelectorAll("#nav .expando").forEach(function (el) { + var i = el.querySelector("i"); + i.classList.add("fa-folder"); + i.classList.remove("fa-folder-open"); + }); + + document.querySelectorAll(".treeLink").forEach(function (el) { + el.href = el.href.replace("::rootPath::", dox.rootPath); + }); + + /*if (treeState != null) { + var states = JSON.parse(treeState); + document.querySelectorAll("#nav .expando").forEach(function (el) { + if (states[i]) { + el.classList.add("expanded"); + var i = el.querySelector("i"); + i.classList.remove("fa-folder"); + i.classList.add("fa-folder-open"); + } + }); + }*/ + + //setPlatform(readCookie("platform") == null ? "all" : readCookie("platform")); + + document.querySelector("#search").addEventListener("input", function (e) { + searchQuery(e.target.value); + }); + document.addEventListener("keyup", function (e) { + if (e.ctrlKey && e.keyCode == 80) { // ctrl + p + document.querySelector("#search").focus(); + return false; + } + return true; + }); + document.addEventListener("keydown", function (e) { + if (e.ctrlKey && e.keyCode == 80) { // ctrl + f + document.querySelector("#search").focus(); + return false; + } + return true; + }); + function getItems() { + return document.querySelectorAll("#search-results-list a"); + } + document.querySelector("#search").addEventListener("keyup", function (e) { + switch (e.keyCode) { + case 27: // escape + searchQuery(""); + document.querySelector("#search").value = ""; + document.querySelector("#search").dispatchEvent(new Event("blur")); + return false; + + case 13: // enter + var items = getItems(); + for (i = 0; i < items.length; i++) { + var item = items[i]; + if (item.classList.contains("selected")) { + window.location = items[i].href; + break; + } + } + return false; + } + }); + document.querySelector("#search").addEventListener("keydown", function (e) { + function mod(a, b) { + var r = a % b; + return r < 0 ? r + b : r; + } + function changeSelection(amount) { + var previousSelection = null; + var items = getItems(); + for (i = 0; i < items.length; i++) { + var item = items[i]; + if (item.classList.contains("selected")) { + item.classList.remove("selected"); + previousSelection = i; + break; + } + } + var newSelection = mod(previousSelection + amount, items.length); + items[newSelection].classList.add("selected"); + items[newSelection].scrollIntoView(false); + } + switch (e.keyCode) { + case 38: // up + changeSelection(-1); + return false; + + case 40: // down + changeSelection(1); + return false; + + case 13: // enter + return false; + } + }); + + /*$("#select-platform").selectpicker().on("change", function (e) { + var value = $(":selected", this).val(); + setPlatform(value); + });*/ + + document.querySelectorAll("#nav a").forEach(function (el) { + if (el.href == location.href) { + el.parentElement.classList.add("selected"); + } + }); + + document.querySelectorAll("a.expand-button").forEach(function (el) { + var inheritedBlock = el.parentElement.parentElement.querySelector(".inherited"); + var icon = el.querySelector("i"); + el.addEventListener("click", function (e) { + inheritedBlock.classList.toggle("expanded"); + icon.classList.toggle("expanded"); + //icon.classList.toggle("fa-folder-open"); + //icon.classList.toggle("fa-folder"); + return false; + }); + }); + + // Because there is no CSS parent selector + document.querySelectorAll("code.prettyprint").forEach(function (el) { + if(el.parentElement.tagName.toLowerCase() != "pre") { + return; + } + el.parentElement.classList.add("example"); + }); +}); + +function searchQuery(query) { + document.querySelector("#searchForm").removeAttribute("action"); + query = query.replace(/[&<>"']/g, ""); + if (!query || query.length < 2) { + document.querySelector("#nav").classList.remove("searching"); + document.querySelectorAll("#nav li").forEach(function (el) { + el.style.display = ""; + }); + document.querySelector("#nav ul:first-child").style.display = "block"; + document.querySelector("#search-results-list").style.display = "none"; + return; + } + var queryParts = query.toLowerCase().split(" "); + var listItems = []; + var bestMatch = 200; + document.querySelector("#nav").classList.add("searching"); + document.querySelector("#nav ul:first-child").style.display = "none"; + document.querySelectorAll("#nav li").forEach(function (el) { + var element = el; + if (!element.classList.contains("expando")) { + var content = element.getAttribute("data_path"); + var score = searchMatch(content, queryParts); + if (score >= 0) { + if (score < bestMatch) { + var url = dox.rootPath + element.getAttribute("data_path").split(".").join("/") + ".html"; + document.querySelector("#searchForm").setAttribute("action", url); + // best match will be form action + bestMatch = score; + } + + var elLink = element.querySelector("a"); + // highlight matched parts + var elLinkContent = elLink.textContent.replace(new RegExp("(" + queryParts.join("|").split(".").join("|") + ")", "ig"), "$1"); + var liStyle = (score == 0) ? ("font-weight:bold") : ""; + listItems.push({ score: score, item: "
  • " + elLinkContent + "
  • " }); + } + } + }); + if (document.querySelector("#search-results-list") == null) { + // append to nav + document.querySelector("#nav").parentElement.insertAdjacentHTML("beforeend", ""); + } + listItems.sort(function (x, y) { return x.score - y.score; }); // put in order + document.querySelector("#search-results-list").style.display = "block"; + document.querySelector("#search-results-list").innerHTML = listItems.map(function (x) { return x.item; }).join(""); + // pre-select the first item + document.querySelectorAll("#search-results-list a").forEach(function (el) { + el.classList.remove("selected"); + }); + document.querySelectorAll("#search-results-list a")[0].classList.add("selected"); +} + +function match(textParts, query) { + var queryParts = query.split("."); + if (queryParts.length == 1) { + var queryPart = queryParts[0]; + for (var i = 0; i < textParts.length; ++i) { + var textPart = textParts[i]; + if (textPart.indexOf(queryPart) > -1) { + // We don't want to match the same part twice, so let's remove it + textParts[i] = textParts[i].split(queryPart).join(""); + return textPart.length - queryPart.length; + } + } + } else { + var offset = -1; + outer: + while (true) { + ++offset; + if (queryParts.length + offset > textParts.length) { + return -1; + } + var scoreSum = 0; + for (var i = 0; i < queryParts.length; ++i) { + var queryPart = queryParts[i]; + var textPart = textParts[i + offset]; + var index = textPart.indexOf(queryPart); + if (index != 0) { + continue outer; + } + scoreSum += textPart.length - queryPart.length; + } + return scoreSum; + } + } +} + +function searchMatch(text, queryParts) { + text = text.toLowerCase(); + var textParts = text.split("."); + var scoreSum = 0; + for (var i = 0; i < queryParts.length; ++i) { + var score = match(textParts, queryParts[i]); + if (score == -1) { + return -1; + } + scoreSum += score + text.length; + } + return scoreSum; +} + +function errorSearch() { + var errorURL = ""; + if (!!window.location.pathname) { + errorURL = window.location.pathname; + } else if (!!window.location.href) { + errorURL = window.location.href; + } + if (!!errorURL) { + var searchTerm = errorURL.split("/").pop(); + if (searchTerm.indexOf(".html") > -1) { searchTerm = searchTerm.split(".html").join(""); } + if (!!searchTerm) { + // update filter with search term + document.querySelector("#search").value = searchTerm; + searchQuery(searchTerm); + } + } +} \ No newline at end of file diff --git a/api-generator/theme/templates/404.mtt b/api-generator/theme/templates/404.mtt new file mode 100644 index 0000000..49767bf --- /dev/null +++ b/api-generator/theme/templates/404.mtt @@ -0,0 +1,13 @@ +::use 'main.mtt':: + + + +

    404 Page not found

    + +

    Page not found, sorry.

    + +::end:: diff --git a/api-generator/theme/templates/abstract.mtt b/api-generator/theme/templates/abstract.mtt new file mode 100644 index 0000000..e6a45fe --- /dev/null +++ b/api-generator/theme/templates/abstract.mtt @@ -0,0 +1,35 @@ +::use 'main.mtt':: + + +
    +
    + ::raw type.doc:: +
    + + ::if type.impl != null:: + $$printClassBody(::type.impl::) + ::end:: +
    +::end:: \ No newline at end of file diff --git a/api-generator/theme/templates/class.mtt b/api-generator/theme/templates/class.mtt new file mode 100644 index 0000000..048a998 --- /dev/null +++ b/api-generator/theme/templates/class.mtt @@ -0,0 +1,67 @@ +::use 'main.mtt':: + +
    +
    + ::raw type.doc:: +
    + $$printClassBody(::type::) + + $$printInheritedFields(::type::) +
    +::end:: \ No newline at end of file diff --git a/api-generator/theme/templates/class_field.mtt b/api-generator/theme/templates/class_field.mtt new file mode 100644 index 0000000..56c2b8c --- /dev/null +++ b/api-generator/theme/templates/class_field.mtt @@ -0,0 +1,27 @@ +::if (field.doc != null && field.doc != "

    ") || !field.isOverride:: + +
    +::if field.line != null:: + + View in GitHub + +::end:: + + + +

    $$printFieldSignature(::field::,::isStatic::,::type::)

    + ::if field.overloads != null:: + ::foreach field field.overloads:: +

    $$printFieldSignature(::field::,::isStatic::,::type::)

    + ::end:: + ::end:: + + $$printDeprecation(::field::) + $$printFieldPlatforms(::field::) + + ::if field.doc != null:: +
    ::raw field.doc::
    + ::end:: +
    + +::end:: \ No newline at end of file diff --git a/api-generator/theme/templates/doc.mtt b/api-generator/theme/templates/doc.mtt new file mode 100644 index 0000000..a7846e9 --- /dev/null +++ b/api-generator/theme/templates/doc.mtt @@ -0,0 +1,56 @@ +::if info.deprecated != null:: +
    + Deprecated: ::raw info.deprecated.doc:: +
    +::end:: + +::raw info.doc:: + +::if info.params.length > 0:: +

    Parameters:

    + + ::foreach param info.params:: + + ::end:: +
    ::param.value::::raw param.doc::
    +::end:: + +::if info.returns != null:: +

    Returns:

    +
    + ::raw info.returns.doc:: +
    +::end:: + +::if info.throws.length > 0:: +

    Throws:

    + + ::foreach throws info.throws:: + + ::end:: +
    ::throws.value::::raw throws.doc::
    +::end:: + +::if info.events.length > 0:: +

    Events:

    + + ::foreach event info.events:: + + ::end:: +
    ::event.value::::raw event.doc::
    +::end:: + +::if info.since != null:: +
    + Available since ::raw info.since.doc::. +
    +::end:: + +::if info.sees.length > 0:: +

    See also:

    +
      + ::foreach see info.sees:: +
    • ::raw see.doc::
    • + ::end:: +
    +::end:: \ No newline at end of file diff --git a/api-generator/theme/templates/enum.mtt b/api-generator/theme/templates/enum.mtt new file mode 100644 index 0000000..1e814b0 --- /dev/null +++ b/api-generator/theme/templates/enum.mtt @@ -0,0 +1,26 @@ +::use 'main.mtt':: + +
    +
    + ::raw type.doc:: +
    + ::if type.constructors.length > 0:: +

    Values

    +
    + ::foreach ctor type.constructors:: + ::use "enum_field.mtt"::::end:: + ::end:: +
    + ::end:: +
    +::end:: \ No newline at end of file diff --git a/api-generator/theme/templates/enum_field.mtt b/api-generator/theme/templates/enum_field.mtt new file mode 100644 index 0000000..e7b7cb0 --- /dev/null +++ b/api-generator/theme/templates/enum_field.mtt @@ -0,0 +1,18 @@ +
    +

    + + + ::ctor.name:: + + ::if ctor.args != null:: + (::foreach arg ctor.args::::arg.name:::$$printLinkedType(::arg.t::,::false::)::if !repeat.arg.last::, ::end::::end::) + ::end:: + +

    + $$printDeprecation(::ctor::) + $$printFieldPlatforms(::ctor::) + +
    + ::raw ctor.doc:: +
    +
    \ No newline at end of file diff --git a/api-generator/theme/templates/extra-headers.mtt b/api-generator/theme/templates/extra-headers.mtt new file mode 100644 index 0000000..e69de29 diff --git a/api-generator/theme/templates/footer-old.mtt b/api-generator/theme/templates/footer-old.mtt new file mode 100644 index 0000000..fc5f4b3 --- /dev/null +++ b/api-generator/theme/templates/footer-old.mtt @@ -0,0 +1,39 @@ +
    + +
    \ No newline at end of file diff --git a/api-generator/theme/templates/footer.mtt b/api-generator/theme/templates/footer.mtt new file mode 100644 index 0000000..e69de29 diff --git a/api-generator/theme/templates/header.mtt b/api-generator/theme/templates/header.mtt new file mode 100644 index 0000000..110f9a6 --- /dev/null +++ b/api-generator/theme/templates/header.mtt @@ -0,0 +1,43 @@ + + + + + + + + + + + + ::api.currentPageName::::if api.config.pageTitle !=null:: - ::api.config.pageTitle::::end:: + + + + + + + + + + + + + + + + + + + ::set description = api.getShortDesc(type):: + ::set description = description.substr(3, description.length-7):: + 0:: content="::description::"/> + ::use "extra-headers.mtt"::::end:: + \ No newline at end of file diff --git a/api-generator/theme/templates/macros.mtt b/api-generator/theme/templates/macros.mtt new file mode 100644 index 0000000..8c7c9c9 --- /dev/null +++ b/api-generator/theme/templates/macros.mtt @@ -0,0 +1,363 @@ + + + + + + ::if params.length > 0:: + < + ::foreach param params:: + ::param:: + ::if !repeat.param.last::, ::end:: + ::end:: + > + ::end:: + + +::value.split("0x").join("#"):: + + + ::if (useSeparator && api.config.platforms.length>1)::
    ::end:: +

    1)::> + + Available on + ::if platforms.length == api.config.platforms.length:: all platforms + ::elseif platforms.length > 1:: ::platforms.join(", "):: + ::else:: ::platforms.join(""):: + ::end:: + +

    +
    + + + ::if field.platforms.length != type.platforms.length && field.platforms.length > 0 && field.platforms.length < api.config.platforms.length:: + $$printPlatforms(::field.platforms::,::false::) + ::end:: + + + + ::if api.isKnownType(path):: + + ::if qualified:: + ::path:: + ::else:: + ::api.getPathName(path):: + ::end:: + + ::else:: + ::api.getPathName(path):: + ::end:: + ::if params != null && params.length > 0:: + < + ::foreach param params:: + $$printLinkedType(::param::,::qualified::) + ::if !repeat.param.last::, ::end:: + ::end:: + > + ::end:: + + + + ::switch ctype:: + ::case::Unknown + ::case::$$printLinkedPath(::args[0]::,::args[1]::,::qualified::) + ::case::$$printLinkedPath(::args[0]::,::args[1]::,::qualified::) + ::case::$$printLinkedPath(::args[0]::,::args[1]::,::qualified::) + ::case:: + ::if args[0].length != 1 || args[0][0].name != ""::(::end:: + ::foreach arg args[0]:: + ::if arg.name != "":: + ::arg.name::: + ::end:: + $$printLinkedType(::arg.t::,::qualified::) + ::if !repeat.arg.last::, ::end:: + ::end:: + ::if args[0].length != 1 || args[0][0].name != ""::)::end:: +  ‑>  + $$printLinkedType(::args[1]::,::qualified::) + ::case:: + { + ::foreach field args[0]:: + ::field.name:::$$printLinkedType(::field.type::,::qualified::) + ::if !repeat.field.last::, ::end:: + ::end:: + } + ::case::$$printLinkedPath(::"Dynamic"::,::null::,::qualified::)::if args[0] != null::<$$printLinkedType(::args[0]::,::qualified::)>::end:: + ::case::$$printLinkedPath(::args[0]::,::args[1]::,::qualified::) + ::end:: + + + +

    import ::module::

    +
    + + + ::if (field.meta != null):: + ::foreach meta field.meta:: + ::if (meta.name == ":deprecated"):: +
    + Deprecated: + ::if (meta.params != null && meta.params.length > 0):: + ::foreach param meta.params:: + ::param:: + ::if !repeat.param.last::, ::end:: + ::end:: + ::end:: +
    + ::end:: + ::end:: + ::end:: +
    + + + ::if (field.meta != null):: + ::foreach meta field.meta:: + ::if (meta.name != ":deprecated")::::if false::::end:: + ::set metaName = meta.name.substr(1):: + ::set displayMetaName = "@" + meta.name:: + ::displayMetaName:: + ::if (meta.params != null && meta.params.length > 0)::( + ::foreach param meta.params:: + $$printMetaParam(::param::) + ::if !repeat.param.last::,::end:: + ::end:: + )::end:: + ::end:: + ::end:: + ::end:: + + + + + ::if treeType == "class":: + class + ::end:: + ::if treeType == "enum":: + enum + ::end:: + ::if treeType == "typedef":: + typedef + ::end:: + ::if treeType == "abstract":: + abstract + ::end:: + ::if treeType == "interface":: + interface + ::end:: + ::if treeType == "type":: + typedef + ::end:: + + + +::if (param.substr(0,9) == " + + + + ::if !field.isPublic:: + private + ::end:: + + $$printMeta(::field::) + + ::if isStatic:: + static + ::end:: + + ::set fieldInfo = api.getFieldInfo(field):: + + ::if fieldInfo.modifiers.isOptional:: + optional + ::end:: + + ::if fieldInfo.modifiers.isFinal:: + final + ::end:: + + ::if fieldInfo.modifiers.isDynamic:: + dynamic + ::end:: + + ::if fieldInfo.modifiers.isInline:: + inline + ::end:: + + ::switch fieldInfo.kind:: + ::switch field.set:: + ::case 1:: + read only + ::end:: + ::switch field.get:: + ::case 1:: + write only + ::end:: + + ::field.name:::$$printLinkedType(::field.type::,::false::)$$printInitExpr(::field.expr::) + + ::case 2:: + ::field.name:: + $$printTypeParams(::field.params::)( + ::foreach arg args[0]:: + + ::if arg.opt && (arg.value == null || arg.value == "null")::?::end:: + ::arg.name:::$$printLinkedType(::arg.t::,::false::) + ::if arg.value != null && arg.value != "null":: = ::arg.value::::end:: + ::if !repeat.arg.last::,::end:: + + ::if !repeat.arg.last:: ::end:: + ::end:: + ) + ::if field.name != "new":: + :$$printLinkedType(::args[1]::,::false::) + ::end:: + ::end:: + + + + + + = ::expr:: + + + + + ::set showSection = false:: + ::foreach field type.statics:: + ::if !api.isMethod(field):: + ::eval showSection = true:: + ::end:: + ::end:: + ::if showSection:: +

    Static variables

    +
    + ::foreach field type.statics:: + ::set isStatic = true:: + ::if !api.isMethod(field):: + ::use "class_field.mtt"::::end:: + ::end:: + ::end:: +
    + ::end:: + + ::set showSection = false:: + ::foreach field type.statics:: + ::if api.isMethod(field):: + ::eval showSection = true:: + ::end:: + ::end:: + ::if showSection:: +

    Static methods

    +
    + ::foreach field type.statics:: + ::set isStatic = true:: + ::if api.isMethod(field):: + ::use "class_field.mtt"::::end:: + ::end:: + ::end:: +
    + ::end:: + + ::set showSection = false:: + ::foreach field type.fields:: + ::if field.name == "new" && api.isMethod(field):: + ::eval showSection = true:: + ::end:: + ::end:: + ::if showSection:: +

    Constructor

    +
    + ::foreach field type.fields:: + ::set isStatic = false:: + ::if field.name == "new" && api.isMethod(field):: + ::use "class_field.mtt"::::end:: + ::end:: + ::end:: +
    + ::end:: + + ::set showSection = false:: + ::foreach field type.fields:: + ::if !api.isMethod(field):: + ::eval showSection = true:: + ::end:: + ::end:: + ::if showSection:: +

    Variables

    +
    + ::foreach field type.fields:: + ::set isStatic = false:: + ::if !api.isMethod(field):: + ::use "class_field.mtt"::::end:: + ::end:: + ::end:: +
    + ::end:: + + ::set showSection = false:: + ::foreach field type.fields:: + ::if field.name != "new" && api.isMethod(field):: + ::eval showSection = true:: + ::end:: + ::end:: + ::if showSection:: +

    Methods

    +
    + ::foreach field type.fields:: + ::set isStatic = false:: + ::if field.name != "new" && api.isMethod(field):: + ::use "class_field.mtt"::::end:: + ::end:: + ::end:: +
    + ::end:: +
    + + +::if type.superClass != null:: + ::set inheritedFields = api.getInheritedFields(type):: + ::set hasFields = inheritedFields.fields.keys().hasNext():: + ::set hasMethods = inheritedFields.methods.keys().hasNext():: + +
    +

    Inherited Variables

    +
    + ::set fields=inheritedFields.fields:: + ::foreach cl inheritedFields.types:: +

    0::> Defined by $$printLinkedPath(::cl.path::,::null::,::false::)

    +
    + ::foreach field fields.get(cl):: + ::set isStatic = false:: + ::set type=cl:: + ::use "class_field.mtt"::::end:: + ::end:: +
    + ::end:: +
    + +

    Inherited Methods

    +
    + ::set fields=inheritedFields.methods:: + ::foreach cl inheritedFields.types:: +

    0::> Defined by $$printLinkedPath(::cl.path::,::null::,::false::)

    +
    + ::foreach field fields.get(cl):: + ::set isStatic = false:: + ::if field.name != "new" :: + ::set type=cl:: + ::use "class_field.mtt"::::end:: + ::end:: + ::end:: +
    + ::end:: +
    +
    +::end:: +
    + + + ::if type.path.indexOf(".", 0) >= 0:: + ::set packagePath = type.path.split(".").slice(0, -1).join("."):: +

    package ::packagePath::

    + ::else:: +

    no package

    + ::end:: +
    \ No newline at end of file diff --git a/api-generator/theme/templates/main.mtt b/api-generator/theme/templates/main.mtt new file mode 100644 index 0000000..f730f46 --- /dev/null +++ b/api-generator/theme/templates/main.mtt @@ -0,0 +1,57 @@ + + + + +::set themeColor="0xFAFAFA":: +::if (api.isDefined("themeColor"))::::set themeColor=api.getValue("themeColor")::::end:: + + +::set textColor="0xFFFFFF":: +::if (api.isDefined("textColor"))::::set textColor=api.getValue("textColor"):: +::elseif (api.std.parseInt(themeColor) > 7829367)::::set textColor="0x000000"::::end:: + +::use "header.mtt"::::end:: + +
    + ::use "topbar.mtt"::::end:: +
    +
    + +
    ::raw __content__::
    +
    + +::use "footer.mtt"::::end:: + + + + + + + \ No newline at end of file diff --git a/api-generator/theme/templates/nav.mtt b/api-generator/theme/templates/nav.mtt new file mode 100644 index 0000000..8914489 --- /dev/null +++ b/api-generator/theme/templates/nav.mtt @@ -0,0 +1,30 @@ + + ::switch tree:: +
  • + ::set pack = api.getTreePack(tree):: + + ::api.getTreeName(tree):: + ::if pack != "":: +  - ::pack:: + ::end:: + +
  • + ::case:: + ::set name = args[0]:: +
  • + + + ::api.getTreeName(tree):: + + +
  • + ::end:: +
    +var navContent=''; \ No newline at end of file diff --git a/api-generator/theme/templates/package.mtt b/api-generator/theme/templates/package.mtt new file mode 100644 index 0000000..156df71 --- /dev/null +++ b/api-generator/theme/templates/package.mtt @@ -0,0 +1,39 @@ +::use 'main.mtt':: + +::use 'package_description.mtt'::::end:: + + + + + + + + ::foreach tree subs:: + ::set name = api.getTreeName(tree):: + ::set treeType = api.getTreeType(tree):: + + ::if (treeType=="package"):: + + ::else:: + + + + ::end:: + + ::end:: + +
    + + .. +
    + + ::name:: + + $$printTreeType(::treeType::) + + ::name:: + + ::raw api.getTreeShortDesc(tree):: +
    + +::end:: \ No newline at end of file diff --git a/api-generator/theme/templates/package_description.mtt b/api-generator/theme/templates/package_description.mtt new file mode 100644 index 0000000..9e923f4 --- /dev/null +++ b/api-generator/theme/templates/package_description.mtt @@ -0,0 +1,2 @@ +

    ::api.currentPageName:: version ::api.getValue('version')::

    +

    ::api.getValue("description")::

    \ No newline at end of file diff --git a/api-generator/theme/templates/related_types.mtt b/api-generator/theme/templates/related_types.mtt new file mode 100644 index 0000000..89adeb4 --- /dev/null +++ b/api-generator/theme/templates/related_types.mtt @@ -0,0 +1,4 @@ +::title:: +::foreach info infos:: + $$printLinkedPath(::info.path::,::null::,::false::)::if !repeat.info.last::, ::end:: +::end:: \ No newline at end of file diff --git a/api-generator/theme/templates/topbar.mtt b/api-generator/theme/templates/topbar.mtt new file mode 100644 index 0000000..1b28e6d --- /dev/null +++ b/api-generator/theme/templates/topbar.mtt @@ -0,0 +1,11 @@ +
    + + Codename Logo +

    CNE

    +

    Codename Engine

    +
    +

    ::api.currentPageName::

    +
    + APIWiki +
    +
    \ No newline at end of file diff --git a/api-generator/theme/templates/typedef.mtt b/api-generator/theme/templates/typedef.mtt new file mode 100644 index 0000000..9507972 --- /dev/null +++ b/api-generator/theme/templates/typedef.mtt @@ -0,0 +1,49 @@ +::use 'main.mtt':: + + +
    +
    + ::raw type.doc:: +
    + + ::set multiplePlatforms = api.lambda.array(type.types).length > 1:: + ::foreach platform type.types.keys():: + ::set platformType = type.types.get(platform):: + ::if multiplePlatforms:: +

    ::platform::

    + ::end:: + ::switch platformType:: + ::if !multiplePlatforms::

    Alias

    ::end:: +
    +
    + alias for $$printLinkedType(::platformType::,::true::) +
    +
    + ::case 5:: + ::if !multiplePlatforms::

    Fields

    ::end:: +
    + ::switch platformType:: + ::case 5:: + ::if args[0].length == 0:: + empty structure + ::else:: + ::foreach field args[0]:: + ::use "class_field.mtt"::::end:: + ::end:: + ::end:: + ::end:: +
    + ::end:: + ::end:: +
    +::end:: \ No newline at end of file diff --git a/featured-mods/README.md b/featured-mods/README.md index 8edb72a..fcc5f70 100644 --- a/featured-mods/README.md +++ b/featured-mods/README.md @@ -12,6 +12,10 @@ 2. **Allowed Mods** Only **Codename Engine mods** are allowed. Mods pull requests that do not adhere to this standard will not be accepted. + We don't wish to have ports of mods that were originally made for another engine, unless they are uploaded by the original author. + + **Note:** We don't allow mods that contain piracy or illegal content. If you have any questions, please ask in the [Discord Server](https://discord.gg/WTzm35kekB). + 3. **Download Links** Providing a full build download link is **discouraged**. Please refrain from including direct links to full builds. Unless your mod is a **hardcoded Codename Engine mod**. @@ -31,6 +35,7 @@ 7. Unreleased mods - If your mod is **not yet released**, you must set the `version` field to `"unreleased"`. - and add the tag `"upcoming"` to your `meta.json` file for proper categorization. + - You also need to set the `lastUpdated` field to `"unreleased"`. 8. Correct timestamps - If your mod is **not yet released**, you must set the `lastUpdated` field to `"unreleased"`. @@ -43,7 +48,8 @@ 9. Tags - Only moderators can add these specific tags to mods. - `featured` - Mods that are featured on the website. - - `best` - Mods that are the best of all time. + - `loved` - Mods that are loved by the community. + - `admin-pick` - Mods that got picked by a moderator. - Here's a list of tags that are allowed: - `softcoded` - Use this if your mod is a **softcoded Codename Engine mod**. @@ -53,8 +59,9 @@ - `long-title` - Use this if your mod has a long title. (sizes it down) - `longer-title` - Use this if your mod has a longer title. (sizes it down even more) - `upcoming` - Use this if your mod is **not yet released**. - - `best` - [Only moderators] Use this if your mod is the **best of all time**. - - `featured` - [Only moderators] Use this if your mod is **featured on the website**. + - `loved` - **[Only moderators]** This means a mod is loved by the community. This is if the mod has the gold star on GameBanana. + - `featured` - **[Only moderators]** Use this if your mod is **featured on the website**. + - `admin-pick` - **[Only moderators]** This means a mod got picked by a moderator. - `difficulty-easy` - Use this if your mod is **easy**. - `difficulty-normal` - Use this if your mod is **normal**. @@ -66,5 +73,5 @@ - `length-long` - Use this if your mod is **long**. - `length-very-long` - Use this if your mod is **very long**. - - If you have custom tags that will be used when we add searching. add them to "userTags" in `meta.json`. + - If you have custom tags that will be used when we add searching. add them to `"userTags": []` in `meta.json`. ### Thank you for your contribution! \ No newline at end of file diff --git a/featured-mods/ananke/meta.json b/featured-mods/ananke/meta.json index 9ab83a1..197179e 100644 --- a/featured-mods/ananke/meta.json +++ b/featured-mods/ananke/meta.json @@ -1,12 +1,12 @@ { "name": "ANANKE", - "description": "''Ananke''", - "author": "LeCherlok", + "description": "Game that was on an old Apple II computer I got my hands on.", + "author": "Fanclub Team", "version": "1.0.0", "link": "https://gamebanana.com/mods/534552", "source": "", "lastUpdated": "2024-08-10T21:35:40.000Z", - "tags": ["hardcoded"] + "tags": ["hardcoded", "difficulty-hard", "length-medium"] } \ No newline at end of file diff --git a/featured-mods/cubical-saturday/meta.json b/featured-mods/cubical-saturday/meta.json index 93a913e..9826d1a 100644 --- a/featured-mods/cubical-saturday/meta.json +++ b/featured-mods/cubical-saturday/meta.json @@ -10,7 +10,8 @@ "tags": [ "upcoming", - "softcoded" + "softcoded", + "long-title" ], "userTags": [ diff --git a/featured-mods/cyber-sensation/meta.json b/featured-mods/cyber-sensation/meta.json index 33f2bd3..dfc3c4b 100644 --- a/featured-mods/cyber-sensation/meta.json +++ b/featured-mods/cyber-sensation/meta.json @@ -8,5 +8,5 @@ "lastUpdated": "2024-03-11T05:35:52.000Z", - "tags": ["best", "softcoded"] + "tags": ["loved", "admin-pick", "softcoded"] } \ No newline at end of file diff --git a/featured-mods/funkin-drones/meta.json b/featured-mods/funkin-drones/meta.json index 22892c8..881464f 100644 --- a/featured-mods/funkin-drones/meta.json +++ b/featured-mods/funkin-drones/meta.json @@ -8,5 +8,5 @@ "lastUpdated": "2024-08-24T09:06:39.000Z", - "tags": ["featured", "softcoded"] + "tags": ["featured", "loved", "softcoded"] } \ No newline at end of file diff --git a/featured-mods/funkyfs/cover.jpg b/featured-mods/funkyfs/cover.jpg new file mode 100644 index 0000000..830aade Binary files /dev/null and b/featured-mods/funkyfs/cover.jpg differ diff --git a/featured-mods/funkyfs/meta.json b/featured-mods/funkyfs/meta.json new file mode 100644 index 0000000..0048414 --- /dev/null +++ b/featured-mods/funkyfs/meta.json @@ -0,0 +1,12 @@ +{ + "name": "Funky Friend Server", + "description": "A mod about a ...bunch of friends???? ", + "author": "Tobi_7377", + "version": "0.3.1", + "link": "https://gamebanana.com/mods/472600", + "source": "", + + "lastUpdated": "2024-04-03T09:44:16.000Z", + + "tags": ["softcoded"] +} \ No newline at end of file diff --git a/featured-mods/gorefield/meta.json b/featured-mods/gorefield/meta.json index 6dea9df..956c805 100644 --- a/featured-mods/gorefield/meta.json +++ b/featured-mods/gorefield/meta.json @@ -8,5 +8,5 @@ "lastUpdated": "2024-03-16T04:58:47.000Z", - "tags": ["best", "softcoded", "hardcoded"] + "tags": ["loved", "admin-pick", "softcoded", "hardcoded"] } \ No newline at end of file diff --git a/featured-mods/imposter-mania/cover.jpg b/featured-mods/imposter-mania/cover.jpg new file mode 100644 index 0000000..9dcecbc Binary files /dev/null and b/featured-mods/imposter-mania/cover.jpg differ diff --git a/featured-mods/imposter-mania/meta.json b/featured-mods/imposter-mania/meta.json new file mode 100644 index 0000000..998c8e8 --- /dev/null +++ b/featured-mods/imposter-mania/meta.json @@ -0,0 +1,12 @@ +{ + "name": "Impostor! Mania", + "description": "IMPOSTOR!!!", + "author": "ThatGirlNoelle_", + "version": "1.0.0", + "link": "https://gamebanana.com/mods/515415", + "source": "", + + "lastUpdated": "2024-08-27T22:01:20.000Z", + + "tags": ["loved", "softcoded"] +} \ No newline at end of file diff --git a/featured-mods/indiscretions/meta.json b/featured-mods/indiscretions/meta.json index 53907c9..c33a911 100644 --- a/featured-mods/indiscretions/meta.json +++ b/featured-mods/indiscretions/meta.json @@ -6,7 +6,7 @@ "link": "https://gamebanana.com/mods/544976", "source": "", - "lastUpdated": "2024-09-28T07:13:59.000Z", + "lastUpdated": "2024-09-28T02:45:02.000Z", "tags": ["featured", "softcoded"] } \ No newline at end of file diff --git a/featured-mods/irida/meta.json b/featured-mods/irida/meta.json index 6cb4ca8..249b0f6 100644 --- a/featured-mods/irida/meta.json +++ b/featured-mods/irida/meta.json @@ -1,5 +1,5 @@ { - "name": "Jeffy's Endless Irida", + "name": "Jeffy's Infinite Irida", "description": "jeff boy", "author": "Boing Bingus, Betasheep", "version": "unreleased", diff --git a/featured-mods/monster-of-monsters/cover.png b/featured-mods/monster-of-monsters/cover.png new file mode 100644 index 0000000..7754047 Binary files /dev/null and b/featured-mods/monster-of-monsters/cover.png differ diff --git a/featured-mods/monster-of-monsters/meta.json b/featured-mods/monster-of-monsters/meta.json new file mode 100644 index 0000000..adaf978 --- /dev/null +++ b/featured-mods/monster-of-monsters/meta.json @@ -0,0 +1,12 @@ +{ + "name": "Godzilla: MONSTER of MONSTERS", + "description": "Mod based on Nes Godzilla Creepypasta", + "author": "Fanclub Team", + "version": "unreleased", + "link": "https://x.com/MadnessCombat14", + "source": "", + + "lastUpdated": "unreleased", + + "tags": ["upcoming", "hardcoded", "longer-title", "long-desc"] +} \ No newline at end of file diff --git a/featured-mods/parallax-redefined/cover.jpg b/featured-mods/parallax-redefined/cover.jpg new file mode 100644 index 0000000..6c7d025 Binary files /dev/null and b/featured-mods/parallax-redefined/cover.jpg differ diff --git a/featured-mods/parallax-redefined/meta.json b/featured-mods/parallax-redefined/meta.json new file mode 100644 index 0000000..81fe274 --- /dev/null +++ b/featured-mods/parallax-redefined/meta.json @@ -0,0 +1,12 @@ +{ + "name": "Parallax: Redefined", + "description": "A New Challenge Awaits You In The Redefined Universe.", + "author": "harbingerbeats & others", + "version": "unreleased", + "link": "https://fridaynightfunking.fandom.com/wiki/Parallax:_REDEFINED", + "source": "", + + "lastUpdated": "unreleased", + + "tags": ["upcoming", "softcoded"] +} \ No newline at end of file diff --git a/featured-mods/sunday-night-plumbin/cover.jpg b/featured-mods/sunday-night-plumbin/cover.jpg new file mode 100644 index 0000000..c9b7e6f Binary files /dev/null and b/featured-mods/sunday-night-plumbin/cover.jpg differ diff --git a/featured-mods/sunday-night-plumbin/meta.json b/featured-mods/sunday-night-plumbin/meta.json new file mode 100644 index 0000000..703b502 --- /dev/null +++ b/featured-mods/sunday-night-plumbin/meta.json @@ -0,0 +1,11 @@ +{ + "name": "Sunday Night Plumbin", + "description": "Sunday Night Plumbing is a Mario.exe-themed mod for FNF", + "author": "Raynnard", + "version": "unreleased", + "link": "https://x.com/exefunkin", + + "lastUpdated": "unreleased", + + "tags": ["upcoming", "softcoded","length-long", "difficulty-hard", "long-desc"] +} diff --git a/featured-mods/trains-and-traitors/meta.json b/featured-mods/trains-and-traitors/meta.json index 0aa3285..73eca39 100644 --- a/featured-mods/trains-and-traitors/meta.json +++ b/featured-mods/trains-and-traitors/meta.json @@ -8,5 +8,5 @@ "lastUpdated": "2023-11-21T22:31:33.000Z", - "tags": ["best", "softcoded"] + "tags": ["admin-pick", "softcoded"] } \ No newline at end of file diff --git a/featured-mods/ytp-invasion/meta.json b/featured-mods/ytp-invasion/meta.json index c146a0f..4e5202c 100644 --- a/featured-mods/ytp-invasion/meta.json +++ b/featured-mods/ytp-invasion/meta.json @@ -8,5 +8,5 @@ "lastUpdated": "2024-09-06T00:06:03.000Z", - "tags": ["best"] + "tags": ["loved", "admin-pick"] } \ No newline at end of file diff --git a/package.json b/package.json index 5f20bac..455c854 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ }, "scripts": { "build": "node ./src/index.js", + "build:full": "node ./src/index.js --full", "watch": "node ./src/index.js --watch" }, "author": "", diff --git a/src/build.js b/src/build.js index 2cc7094..8c0aa12 100644 --- a/src/build.js +++ b/src/build.js @@ -6,7 +6,16 @@ var tools = require('./pages/tools/tools.build.js'); var apiDocs = require('./pages/apiDocs.build.js'); var indexPage = require('./pages/index.build.js'); -var { copyDir, compileSass } = require('./utils.js'); +var { copyDir, fixHtmlRefs, parseTemplate, compileSass } = require('./utils.js'); + +var isFullBuild = process.argv.includes('--full'); +process.argv = process.argv.filter(arg => arg != '--full'); + +var isWatch = process.argv.includes('--watch'); +process.argv = process.argv.filter(arg => arg != '--watch'); + +var isFirstRun = process.argv.includes('--first-run'); +process.argv = process.argv.filter(arg => arg != '--first-run'); hljs.registerLanguage('haxe', haxeformat); @@ -14,12 +23,12 @@ var pageDir = process.argv[2] || "./"; var exportPath = "./export/" + (process.argv[3] || ''); if(!pageDir.endsWith('/')) pageDir += '/'; +if(!exportPath.endsWith('/')) exportPath += '/'; if (!fs.existsSync(exportPath)) { fs.mkdirSync(exportPath, {recursive: true}); } - console.log("Building pages..."); copyDir("./src/img/", exportPath + "/img/"); @@ -27,6 +36,7 @@ copyDir("./src/img/", exportPath + "/img/"); compileSass("./src/style.scss", exportPath + "/style.css"); compileSass("./src/pages/wiki.scss", exportPath + "/wiki.css"); compileSass("./src/pages/index.scss", exportPath + "/index.css"); +compileSass("./src/pages/api-docs.scss", exportPath + "/api-docs.css"); compileSass("./src/giscus-theme.scss", exportPath + "/giscus-theme.css"); fs.copyFileSync("./src/pages/featuredMods.js", exportPath + "/featuredMods.js"); @@ -34,6 +44,13 @@ fs.copyFileSync("./src/pages/featuredMods.js", exportPath + "/featuredMods.js"); indexPage.buildHtml(pageDir, exportPath); // builds into / wiki.buildHtml(pageDir, exportPath); // builds into /wiki tools.buildHtml(pageDir, exportPath); // builds into /tools -apiDocs.buildHtml(pageDir, exportPath); // builds into /api-docs +if(isFirstRun) { + if(isFullBuild) { + apiDocs.buildHtml(pageDir, exportPath, isWatch); // builds into /api-docs + } else { + console.log("Skipping API Docs build (not full build)..."); + apiDocs.buildNotBuilt(pageDir, exportPath); // builds into /api-docs + } +} console.log("Build completed."); \ No newline at end of file diff --git a/src/index.js b/src/index.js index fb05fb5..6c5e95f 100644 --- a/src/index.js +++ b/src/index.js @@ -1,14 +1,30 @@ var fs = require('fs'); var { spawn } = require('child_process'); +var isFullBuild = process.argv.includes('--full'); +process.argv = process.argv.filter(arg => arg != '--full'); + var isWatch = process.argv.includes('--watch'); process.argv = process.argv.filter(arg => arg != '--watch'); +var firstRun = true; + function startChild() { console.log('Starting build process...'); var args = process.argv.slice(2); + if(isFullBuild) { + args.push('--full'); + } + if(isWatch) { + args.push('--watch'); + } + if(firstRun) { + args.push('--first-run'); + firstRun = false; + } + child = spawn('node', ['src/build.js', ...args], { stdio: 'inherit' }); diff --git a/src/pages/api-docs-not-built/index.html b/src/pages/api-docs-not-built/index.html new file mode 100644 index 0000000..f694d55 --- /dev/null +++ b/src/pages/api-docs-not-built/index.html @@ -0,0 +1,27 @@ + + + + + + Home - Codename Engine Docs + + + + +
    + {{ header }} +
    +
    +
    +
    + +
    +

    This page is not built yet.

    +

    To build it, run npm run build ./ --full in the root directory.

    +
    +
    + + \ No newline at end of file diff --git a/src/pages/api-docs.scss b/src/pages/api-docs.scss new file mode 100644 index 0000000..e85c139 --- /dev/null +++ b/src/pages/api-docs.scss @@ -0,0 +1,359 @@ +.label-meta { + display: none; +} + +.viewsource { + width: 100%; + display: inline; + //position: absolute; + //top: 10px; +} +.viewsource > a, .field-source { + position: relative; + float: right; + padding: 0.2em 0.4em; +} + +li.expando>ul { + display: none; +} + +li.expando.expanded>ul { + display: block; +} + +ul.sidebar-unordered-list { + margin: 0 0; +} + +a.treeLink { + padding: 0; +} + +.pack { + display: none; +} + +.searching .pack { + display: inline; +} + +.content a { + text-decoration: none; + &:hover { + text-decoration: underline !important; + } +} + +.page-header > h1, .page-header > h4 { + border: none !important; + margin: 0.2em 0em; +} + +.page-header > h1 { + margin-bottom: -0.3em; +} + +.page-header { + margin-top: 1em; + padding-bottom: 0.5em; + border-bottom: solid thin rgba(255, 255, 255, 0.4); + //position: relative; +} + +.fields { + margin-top: -1.5em; + margin-left: 20px; + font-family: monospace; +} + +.field { + border-bottom: 1px solid #222; +} + +.field:last-child { + border-bottom: none; +} + +code { + font-family: monospace; + color: white !important; + padding: 0.3em; +} + +.anchor > code { + padding: 0.4em; + font-size: 13px; + font-family: monospace; +} + +.anchor > code * { + font-size: 13px; + font-family: monospace; +} + +.section { + border-bottom: solid thin rgba(255, 255, 255, 0.4); + font-size: 24px; + padding-bottom: 5px; +} + +.type-text { + color: rgb(91, 255, 206); +} + +.field > .field-source { + opacity: 0; + transition: opacity 0.3s; +} +.field:hover > .field-source { + opacity: 1; +} + +code.treeType { + padding: 0; + background-color: transparent; + + & > span { + width: 45px; + margin: 0; + display: inline-block; + text-align: center; + } +} + +span > .type, a.type, span.type { + color: deepskyblue !important; +} + +.table { + width: 80%; + margin-bottom: 20px; +} + +table.params { + border-left: 5px solid rgba(255, 255, 255, 0.2); + margin-left: 20px; +} + +.table-bordered { + border: 1px solid rgba(255, 255, 255, 0.2); + border-collapse: separate; +} + +.table th, +.table td { + padding-left: 0.3em; + text-align: left; + height: fit-content !important; +} + +.table tr { + border-bottom: 1px solid rgba(255, 255, 255, 0.2); + display: block; + + &:first-of-type { + border-top: 1px solid rgba(255, 255, 255, 0.2); + } +} + +td > p { + margin: 0.4em 0.4em; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid rgba(255, 255, 255, 0.2); +} + +.label { + background: rgba(255, 255, 255, 0.1); + margin-right: 0.5em; + padding: 0.2em; + font-size: 10px !important; +} + +small, small > .muted, small > span { + font-size: 14px; + color: rgba(255, 255, 255, 0.4); + font-weight: normal; +} + +.sidebar-wrapper { + width: 30vw; + display: inline-block; + box-shadow: 5px 0px 30px rgba(0, 0, 0, 0.3); +} + +.sidebar { + border: solid rgba(0, 0, 0, 0.1) 2px; + border-top: none; + border-left: none; + height: calc(100vh); + top: 0; + position: sticky; + overflow-y: auto; + white-space: nowrap; + background: var(--background-secondary-color); +} + +.sidebar>ul { + margin: unset; +} + +.sidebar-unordered-list { + background: none; + width: 100%; + margin-top: 0.4em; + list-style: none; + padding-left: 0; + margin: 0 1em; +} + +.sidebar-list-item { + padding: 0; + width: 100%; + list-style: none; + overflow: hidden; +} + +.sidebar-list-item>.selected:hover:before { + background: rgb(166, 86, 241); +} + +.sidebar-list-item>.selected:before { + background: #531a7d; +} + +.sidebar-list-item>a { + background: transparent; +} + +.sidebar-button { + display: none; + position: fixed; + top: 60px; + right: 5px; + height: 50px; + width: 50px; + z-index: 1; +} + +.sidebar-button-front { + display: none; + position: absolute; + z-index: -1; + top: 60px; + right: 5px; + height: 50px; + width: 50px; + background: var(--background-primary-color); + border-radius: 50%; + fill: var(--text-color); + box-shadow: 0 5px 5px var(--list-background-color); +} + +.fields > .inherited { + display: none; + + &.expanded { + display: block; + } +} + +.fields .expand-button i { + transition: rotate 0.3s; + will-change: rotate; + + &.expanded { + rotate: 90deg; + } +} + +.sidebar-button-front>svg { + width: 55%; + height: auto; + margin: auto; +} + +.sidebar-button-front>svg+svg { + display: none; +} + +@media screen and (max-width: 40.5em) { + .content { + background: none; + border: none; + } + + .sidebar-button-front { + display: flex; + } + + .sidebar-button { + display: initial; + opacity: 0; + } + + .sidebar-wrapper { + position: fixed; + z-index: 6; + top: 0; + left: 0; + width: 100%; + background-color: transparent; + transition: background-color 0.3s; + } + + .sidebar { + position: fixed; + left: -100%; + transition: left 0.3s ease-in-out; + } + + .container:has(.sidebar-button:checked)>.sidebar-wrapper>.sidebar { + left: 0% + } + + .container:has(.sidebar-button:checked)>.sidebar-wrapper { + height: 100%; + background-color: rgba(0, 0, 0, 0.7); + } + + .sidebar-button:checked { + position: absolute; + z-index: 0; + width: 100%; + height: 100%; + } + + .container:has(.sidebar-button:checked)>.sidebar-wrapper>.sidebar-button-front>svg { + display: none; + } + + .container:has(.sidebar-button:checked)>.sidebar-wrapper>.sidebar-button-front>svg+svg { + display: initial; + } + + body:has(.sidebar-button:checked) { + overflow: hidden; + } +} + +@media screen and (min-width: 60.5em) { + .sidebar-wrapper { + width: 20vw; + display: inline-block; + } +} + +//i.fa::before { +// position: relative; +// left: -20px; +// top: -13px; +//} + +i.fa { + position: relative; + margin-right: 0.5em; +} \ No newline at end of file diff --git a/src/pages/api-docs/404.html b/src/pages/api-docs/404.html deleted file mode 100644 index 3a40048..0000000 --- a/src/pages/api-docs/404.html +++ /dev/null @@ -1 +0,0 @@ -File not found

    404 Page not found

    Page not found, sorry.

    \ No newline at end of file diff --git a/src/pages/api-docs/bootstrap/css/bootstrap-responsive.css b/src/pages/api-docs/bootstrap/css/bootstrap-responsive.css deleted file mode 100644 index c0bba15..0000000 --- a/src/pages/api-docs/bootstrap/css/bootstrap-responsive.css +++ /dev/null @@ -1,1109 +0,0 @@ -/*! - * Bootstrap Responsive v2.3.2 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -.clearfix { - *zoom: 1; -} - -.clearfix:before, -.clearfix:after { - display: table; - line-height: 0; - content: ""; -} - -.clearfix:after { - clear: both; -} - -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -@-ms-viewport { - width: device-width; -} - -.hidden { - display: none; - visibility: hidden; -} - -.visible-phone { - display: none !important; -} - -.visible-tablet { - display: none !important; -} - -.hidden-desktop { - display: none !important; -} - -.visible-desktop { - display: inherit !important; -} - -@media (min-width: 768px) and (max-width: 979px) { - .hidden-desktop { - display: inherit !important; - } - .visible-desktop { - display: none !important ; - } - .visible-tablet { - display: inherit !important; - } - .hidden-tablet { - display: none !important; - } -} - -@media (max-width: 767px) { - .hidden-desktop { - display: inherit !important; - } - .visible-desktop { - display: none !important; - } - .visible-phone { - display: inherit !important; - } - .hidden-phone { - display: none !important; - } -} - -.visible-print { - display: none !important; -} - -@media print { - .visible-print { - display: inherit !important; - } - .hidden-print { - display: none !important; - } -} - -@media (min-width: 1200px) { - .row { - margin-left: -30px; - *zoom: 1; - } - .row:before, - .row:after { - display: table; - line-height: 0; - content: ""; - } - .row:after { - clear: both; - } - [class*="span"] { - float: left; - min-height: 1px; - margin-left: 30px; - } - .container, - .navbar-static-top .container, - .navbar-fixed-top .container, - .navbar-fixed-bottom .container { - width: 1170px; - } - .span12 { - width: 1170px; - } - .span11 { - width: 1070px; - } - .span10 { - width: 970px; - } - .span9 { - width: 870px; - } - .span8 { - width: 770px; - } - .span7 { - width: 670px; - } - .span6 { - width: 570px; - } - .span5 { - width: 470px; - } - .span4 { - width: 370px; - } - .span3 { - width: 270px; - } - .span2 { - width: 170px; - } - .span1 { - width: 70px; - } - .offset12 { - margin-left: 1230px; - } - .offset11 { - margin-left: 1130px; - } - .offset10 { - margin-left: 1030px; - } - .offset9 { - margin-left: 930px; - } - .offset8 { - margin-left: 830px; - } - .offset7 { - margin-left: 730px; - } - .offset6 { - margin-left: 630px; - } - .offset5 { - margin-left: 530px; - } - .offset4 { - margin-left: 430px; - } - .offset3 { - margin-left: 330px; - } - .offset2 { - margin-left: 230px; - } - .offset1 { - margin-left: 130px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, - .row-fluid:after { - display: table; - line-height: 0; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.564102564102564%; - *margin-left: 2.5109110747408616%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .row-fluid [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid .controls-row [class*="span"] + [class*="span"] { - margin-left: 2.564102564102564%; - } - .row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; - } - .row-fluid .span11 { - width: 91.45299145299145%; - *width: 91.39979996362975%; - } - .row-fluid .span10 { - width: 82.90598290598291%; - *width: 82.8527914166212%; - } - .row-fluid .span9 { - width: 74.35897435897436%; - *width: 74.30578286961266%; - } - .row-fluid .span8 { - width: 65.81196581196582%; - *width: 65.75877432260411%; - } - .row-fluid .span7 { - width: 57.26495726495726%; - *width: 57.21176577559556%; - } - .row-fluid .span6 { - width: 48.717948717948715%; - *width: 48.664757228587014%; - } - .row-fluid .span5 { - width: 40.17094017094017%; - *width: 40.11774868157847%; - } - .row-fluid .span4 { - width: 31.623931623931625%; - *width: 31.570740134569924%; - } - .row-fluid .span3 { - width: 23.076923076923077%; - *width: 23.023731587561375%; - } - .row-fluid .span2 { - width: 14.52991452991453%; - *width: 14.476723040552828%; - } - .row-fluid .span1 { - width: 5.982905982905983%; - *width: 5.929714493544281%; - } - .row-fluid .offset12 { - margin-left: 105.12820512820512%; - *margin-left: 105.02182214948171%; - } - .row-fluid .offset12:first-child { - margin-left: 102.56410256410257%; - *margin-left: 102.45771958537915%; - } - .row-fluid .offset11 { - margin-left: 96.58119658119658%; - *margin-left: 96.47481360247316%; - } - .row-fluid .offset11:first-child { - margin-left: 94.01709401709402%; - *margin-left: 93.91071103837061%; - } - .row-fluid .offset10 { - margin-left: 88.03418803418803%; - *margin-left: 87.92780505546462%; - } - .row-fluid .offset10:first-child { - margin-left: 85.47008547008548%; - *margin-left: 85.36370249136206%; - } - .row-fluid .offset9 { - margin-left: 79.48717948717949%; - *margin-left: 79.38079650845607%; - } - .row-fluid .offset9:first-child { - margin-left: 76.92307692307693%; - *margin-left: 76.81669394435352%; - } - .row-fluid .offset8 { - margin-left: 70.94017094017094%; - *margin-left: 70.83378796144753%; - } - .row-fluid .offset8:first-child { - margin-left: 68.37606837606839%; - *margin-left: 68.26968539734497%; - } - .row-fluid .offset7 { - margin-left: 62.393162393162385%; - *margin-left: 62.28677941443899%; - } - .row-fluid .offset7:first-child { - margin-left: 59.82905982905982%; - *margin-left: 59.72267685033642%; - } - .row-fluid .offset6 { - margin-left: 53.84615384615384%; - *margin-left: 53.739770867430444%; - } - .row-fluid .offset6:first-child { - margin-left: 51.28205128205128%; - *margin-left: 51.175668303327875%; - } - .row-fluid .offset5 { - margin-left: 45.299145299145295%; - *margin-left: 45.1927623204219%; - } - .row-fluid .offset5:first-child { - margin-left: 42.73504273504273%; - *margin-left: 42.62865975631933%; - } - .row-fluid .offset4 { - margin-left: 36.75213675213675%; - *margin-left: 36.645753773413354%; - } - .row-fluid .offset4:first-child { - margin-left: 34.18803418803419%; - *margin-left: 34.081651209310785%; - } - .row-fluid .offset3 { - margin-left: 28.205128205128204%; - *margin-left: 28.0987452264048%; - } - .row-fluid .offset3:first-child { - margin-left: 25.641025641025642%; - *margin-left: 25.53464266230224%; - } - .row-fluid .offset2 { - margin-left: 19.65811965811966%; - *margin-left: 19.551736679396257%; - } - .row-fluid .offset2:first-child { - margin-left: 17.094017094017094%; - *margin-left: 16.98763411529369%; - } - .row-fluid .offset1 { - margin-left: 11.11111111111111%; - *margin-left: 11.004728132387708%; - } - .row-fluid .offset1:first-child { - margin-left: 8.547008547008547%; - *margin-left: 8.440625568285142%; - } - input, - textarea, - .uneditable-input { - margin-left: 0; - } - .controls-row [class*="span"] + [class*="span"] { - margin-left: 30px; - } - input.span12, - textarea.span12, - .uneditable-input.span12 { - width: 1156px; - } - input.span11, - textarea.span11, - .uneditable-input.span11 { - width: 1056px; - } - input.span10, - textarea.span10, - .uneditable-input.span10 { - width: 956px; - } - input.span9, - textarea.span9, - .uneditable-input.span9 { - width: 856px; - } - input.span8, - textarea.span8, - .uneditable-input.span8 { - width: 756px; - } - input.span7, - textarea.span7, - .uneditable-input.span7 { - width: 656px; - } - input.span6, - textarea.span6, - .uneditable-input.span6 { - width: 556px; - } - input.span5, - textarea.span5, - .uneditable-input.span5 { - width: 456px; - } - input.span4, - textarea.span4, - .uneditable-input.span4 { - width: 356px; - } - input.span3, - textarea.span3, - .uneditable-input.span3 { - width: 256px; - } - input.span2, - textarea.span2, - .uneditable-input.span2 { - width: 156px; - } - input.span1, - textarea.span1, - .uneditable-input.span1 { - width: 56px; - } - .thumbnails { - margin-left: -30px; - } - .thumbnails > li { - margin-left: 30px; - } - .row-fluid .thumbnails { - margin-left: 0; - } -} - -@media (min-width: 768px) and (max-width: 979px) { - .row { - margin-left: -20px; - *zoom: 1; - } - .row:before, - .row:after { - display: table; - line-height: 0; - content: ""; - } - .row:after { - clear: both; - } - [class*="span"] { - float: left; - min-height: 1px; - margin-left: 20px; - } - .container, - .navbar-static-top .container, - .navbar-fixed-top .container, - .navbar-fixed-bottom .container { - width: 724px; - } - .span12 { - width: 724px; - } - .span11 { - width: 662px; - } - .span10 { - width: 600px; - } - .span9 { - width: 538px; - } - .span8 { - width: 476px; - } - .span7 { - width: 414px; - } - .span6 { - width: 352px; - } - .span5 { - width: 290px; - } - .span4 { - width: 228px; - } - .span3 { - width: 166px; - } - .span2 { - width: 104px; - } - .span1 { - width: 42px; - } - .offset12 { - margin-left: 764px; - } - .offset11 { - margin-left: 702px; - } - .offset10 { - margin-left: 640px; - } - .offset9 { - margin-left: 578px; - } - .offset8 { - margin-left: 516px; - } - .offset7 { - margin-left: 454px; - } - .offset6 { - margin-left: 392px; - } - .offset5 { - margin-left: 330px; - } - .offset4 { - margin-left: 268px; - } - .offset3 { - margin-left: 206px; - } - .offset2 { - margin-left: 144px; - } - .offset1 { - margin-left: 82px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, - .row-fluid:after { - display: table; - line-height: 0; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.7624309392265194%; - *margin-left: 2.709239449864817%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .row-fluid [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid .controls-row [class*="span"] + [class*="span"] { - margin-left: 2.7624309392265194%; - } - .row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; - } - .row-fluid .span11 { - width: 91.43646408839778%; - *width: 91.38327259903608%; - } - .row-fluid .span10 { - width: 82.87292817679558%; - *width: 82.81973668743387%; - } - .row-fluid .span9 { - width: 74.30939226519337%; - *width: 74.25620077583166%; - } - .row-fluid .span8 { - width: 65.74585635359117%; - *width: 65.69266486422946%; - } - .row-fluid .span7 { - width: 57.18232044198895%; - *width: 57.12912895262725%; - } - .row-fluid .span6 { - width: 48.61878453038674%; - *width: 48.56559304102504%; - } - .row-fluid .span5 { - width: 40.05524861878453%; - *width: 40.00205712942283%; - } - .row-fluid .span4 { - width: 31.491712707182323%; - *width: 31.43852121782062%; - } - .row-fluid .span3 { - width: 22.92817679558011%; - *width: 22.87498530621841%; - } - .row-fluid .span2 { - width: 14.3646408839779%; - *width: 14.311449394616199%; - } - .row-fluid .span1 { - width: 5.801104972375691%; - *width: 5.747913483013988%; - } - .row-fluid .offset12 { - margin-left: 105.52486187845304%; - *margin-left: 105.41847889972962%; - } - .row-fluid .offset12:first-child { - margin-left: 102.76243093922652%; - *margin-left: 102.6560479605031%; - } - .row-fluid .offset11 { - margin-left: 96.96132596685082%; - *margin-left: 96.8549429881274%; - } - .row-fluid .offset11:first-child { - margin-left: 94.1988950276243%; - *margin-left: 94.09251204890089%; - } - .row-fluid .offset10 { - margin-left: 88.39779005524862%; - *margin-left: 88.2914070765252%; - } - .row-fluid .offset10:first-child { - margin-left: 85.6353591160221%; - *margin-left: 85.52897613729868%; - } - .row-fluid .offset9 { - margin-left: 79.8342541436464%; - *margin-left: 79.72787116492299%; - } - .row-fluid .offset9:first-child { - margin-left: 77.07182320441989%; - *margin-left: 76.96544022569647%; - } - .row-fluid .offset8 { - margin-left: 71.2707182320442%; - *margin-left: 71.16433525332079%; - } - .row-fluid .offset8:first-child { - margin-left: 68.50828729281768%; - *margin-left: 68.40190431409427%; - } - .row-fluid .offset7 { - margin-left: 62.70718232044199%; - *margin-left: 62.600799341718584%; - } - .row-fluid .offset7:first-child { - margin-left: 59.94475138121547%; - *margin-left: 59.838368402492065%; - } - .row-fluid .offset6 { - margin-left: 54.14364640883978%; - *margin-left: 54.037263430116376%; - } - .row-fluid .offset6:first-child { - margin-left: 51.38121546961326%; - *margin-left: 51.27483249088986%; - } - .row-fluid .offset5 { - margin-left: 45.58011049723757%; - *margin-left: 45.47372751851417%; - } - .row-fluid .offset5:first-child { - margin-left: 42.81767955801105%; - *margin-left: 42.71129657928765%; - } - .row-fluid .offset4 { - margin-left: 37.01657458563536%; - *margin-left: 36.91019160691196%; - } - .row-fluid .offset4:first-child { - margin-left: 34.25414364640884%; - *margin-left: 34.14776066768544%; - } - .row-fluid .offset3 { - margin-left: 28.45303867403315%; - *margin-left: 28.346655695309746%; - } - .row-fluid .offset3:first-child { - margin-left: 25.69060773480663%; - *margin-left: 25.584224756083227%; - } - .row-fluid .offset2 { - margin-left: 19.88950276243094%; - *margin-left: 19.783119783707537%; - } - .row-fluid .offset2:first-child { - margin-left: 17.12707182320442%; - *margin-left: 17.02068884448102%; - } - .row-fluid .offset1 { - margin-left: 11.32596685082873%; - *margin-left: 11.219583872105325%; - } - .row-fluid .offset1:first-child { - margin-left: 8.56353591160221%; - *margin-left: 8.457152932878806%; - } - input, - textarea, - .uneditable-input { - margin-left: 0; - } - .controls-row [class*="span"] + [class*="span"] { - margin-left: 20px; - } - input.span12, - textarea.span12, - .uneditable-input.span12 { - width: 710px; - } - input.span11, - textarea.span11, - .uneditable-input.span11 { - width: 648px; - } - input.span10, - textarea.span10, - .uneditable-input.span10 { - width: 586px; - } - input.span9, - textarea.span9, - .uneditable-input.span9 { - width: 524px; - } - input.span8, - textarea.span8, - .uneditable-input.span8 { - width: 462px; - } - input.span7, - textarea.span7, - .uneditable-input.span7 { - width: 400px; - } - input.span6, - textarea.span6, - .uneditable-input.span6 { - width: 338px; - } - input.span5, - textarea.span5, - .uneditable-input.span5 { - width: 276px; - } - input.span4, - textarea.span4, - .uneditable-input.span4 { - width: 214px; - } - input.span3, - textarea.span3, - .uneditable-input.span3 { - width: 152px; - } - input.span2, - textarea.span2, - .uneditable-input.span2 { - width: 90px; - } - input.span1, - textarea.span1, - .uneditable-input.span1 { - width: 28px; - } -} - -@media (max-width: 767px) { - body { - padding-right: 20px; - padding-left: 20px; - } - .navbar-fixed-top, - .navbar-fixed-bottom, - .navbar-static-top { - margin-right: -20px; - margin-left: -20px; - } - .container-fluid { - padding: 0; - } - .dl-horizontal dt { - float: none; - width: auto; - clear: none; - text-align: left; - } - .dl-horizontal dd { - margin-left: 0; - } - .container { - width: auto; - } - .row-fluid { - width: 100%; - } - .row, - .thumbnails { - margin-left: 0; - } - .thumbnails > li { - float: none; - margin-left: 0; - } - [class*="span"], - .uneditable-input[class*="span"], - .row-fluid [class*="span"] { - display: block; - float: none; - width: 100%; - margin-left: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .span12, - .row-fluid .span12 { - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .row-fluid [class*="offset"]:first-child { - margin-left: 0; - } - .input-large, - .input-xlarge, - .input-xxlarge, - input[class*="span"], - select[class*="span"], - textarea[class*="span"], - .uneditable-input { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .input-prepend input, - .input-append input, - .input-prepend input[class*="span"], - .input-append input[class*="span"] { - display: inline-block; - width: auto; - } - .controls-row [class*="span"] + [class*="span"] { - margin-left: 0; - } - .modal { - position: fixed; - top: 20px; - right: 20px; - left: 20px; - width: auto; - margin: 0; - } - .modal.fade { - top: -100px; - } - .modal.fade.in { - top: 20px; - } -} - -@media (max-width: 480px) { - .nav-collapse { - -webkit-transform: translate3d(0, 0, 0); - } - .page-header h1 small { - display: block; - line-height: 20px; - } - input[type="checkbox"], - input[type="radio"] { - border: 1px solid #ccc; - } - .form-horizontal .control-label { - float: none; - width: auto; - padding-top: 0; - text-align: left; - } - .form-horizontal .controls { - margin-left: 0; - } - .form-horizontal .control-list { - padding-top: 0; - } - .form-horizontal .form-actions { - padding-right: 10px; - padding-left: 10px; - } - .media .pull-left, - .media .pull-right { - display: block; - float: none; - margin-bottom: 10px; - } - .media-object { - margin-right: 0; - margin-left: 0; - } - .modal { - top: 10px; - right: 10px; - left: 10px; - } - .modal-header .close { - padding: 10px; - margin: -10px; - } - .carousel-caption { - position: static; - } -} - -@media (max-width: 979px) { - body { - padding-top: 0; - } - .navbar-fixed-top, - .navbar-fixed-bottom { - position: static; - } - .navbar-fixed-top { - margin-bottom: 20px; - } - .navbar-fixed-bottom { - margin-top: 20px; - } - .navbar-fixed-top .navbar-inner, - .navbar-fixed-bottom .navbar-inner { - padding: 5px; - } - .navbar .container { - width: auto; - padding: 0; - } - .navbar .brand { - padding-right: 10px; - padding-left: 10px; - margin: 0 0 0 -5px; - } - .nav-collapse { - clear: both; - } - .nav-collapse .nav { - float: none; - margin: 0 0 10px; - } - .nav-collapse .nav > li { - float: none; - } - .nav-collapse .nav > li > a { - margin-bottom: 2px; - } - .nav-collapse .nav > .divider-vertical { - display: none; - } - .nav-collapse .nav .nav-header { - color: #777777; - text-shadow: none; - } - .nav-collapse .nav > li > a, - .nav-collapse .dropdown-menu a { - padding: 9px 15px; - font-weight: bold; - color: #777777; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - } - .nav-collapse .btn { - padding: 4px 10px 4px; - font-weight: normal; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - } - .nav-collapse .dropdown-menu li + li a { - margin-bottom: 2px; - } - .nav-collapse .nav > li > a:hover, - .nav-collapse .nav > li > a:focus, - .nav-collapse .dropdown-menu a:hover, - .nav-collapse .dropdown-menu a:focus { - background-color: #f2f2f2; - } - .navbar-inverse .nav-collapse .nav > li > a, - .navbar-inverse .nav-collapse .dropdown-menu a { - color: #999999; - } - .navbar-inverse .nav-collapse .nav > li > a:hover, - .navbar-inverse .nav-collapse .nav > li > a:focus, - .navbar-inverse .nav-collapse .dropdown-menu a:hover, - .navbar-inverse .nav-collapse .dropdown-menu a:focus { - background-color: #111111; - } - .nav-collapse.in .btn-group { - padding: 0; - margin-top: 5px; - } - .nav-collapse .dropdown-menu { - position: static; - top: auto; - left: auto; - display: none; - float: none; - max-width: none; - padding: 0; - margin: 0 15px; - background-color: transparent; - border: none; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - } - .nav-collapse .open > .dropdown-menu { - display: block; - } - .nav-collapse .dropdown-menu:before, - .nav-collapse .dropdown-menu:after { - display: none; - } - .nav-collapse .dropdown-menu .divider { - display: none; - } - .nav-collapse .nav > li > .dropdown-menu:before, - .nav-collapse .nav > li > .dropdown-menu:after { - display: none; - } - .nav-collapse .navbar-form, - .nav-collapse .navbar-search { - float: none; - padding: 10px 15px; - margin: 10px 0; - border-top: 1px solid #f2f2f2; - border-bottom: 1px solid #f2f2f2; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - } - .navbar-inverse .nav-collapse .navbar-form, - .navbar-inverse .nav-collapse .navbar-search { - border-top-color: #111111; - border-bottom-color: #111111; - } - .navbar .nav-collapse .nav.pull-right { - float: none; - margin-left: 0; - } - .nav-collapse, - .nav-collapse.collapse { - height: 0; - overflow: hidden; - } - .navbar .btn-navbar { - display: block; - } - .navbar-static .navbar-inner { - padding-right: 10px; - padding-left: 10px; - } -} - -@media (min-width: 980px) { - .nav-collapse.collapse { - height: auto !important; - overflow: visible !important; - } -} diff --git a/src/pages/api-docs/bootstrap/css/bootstrap-responsive.min.css b/src/pages/api-docs/bootstrap/css/bootstrap-responsive.min.css deleted file mode 100644 index 96a435b..0000000 --- a/src/pages/api-docs/bootstrap/css/bootstrap-responsive.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap Responsive v2.3.2 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/src/pages/api-docs/bootstrap/css/bootstrap-select.min.css b/src/pages/api-docs/bootstrap/css/bootstrap-select.min.css deleted file mode 100644 index b3021ae..0000000 --- a/src/pages/api-docs/bootstrap/css/bootstrap-select.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap-select v1.6.3 (http://silviomoreto.github.io/bootstrap-select/) - * - * Copyright 2013-2014 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */.bootstrap-select{width:220px \0}.bootstrap-select>.btn{width:100%;padding-right:25px}.error .bootstrap-select .btn{border:1px solid #b94a48}.control-group.error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .btn:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row-fluid .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-search .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-group .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.input-append .bootstrap-select.btn-group{margin-left:-1px}.input-prepend .bootstrap-select.btn-group{margin-right:-1px}.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group>.disabled:focus{outline:0!important}.bootstrap-select.btn-group .btn .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .btn .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*=col-] .btn{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;z-index:1035;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) a:hover small,.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) a:focus small,.bootstrap-select.btn-group .dropdown-menu li.active:not(.disabled) a small{color:#64b1d8;color:rgba(100,177,216,.4)}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px}.bootstrap-select.btn-group.fit-width .btn .filter-option{position:static}.bootstrap-select.btn-group.fit-width .btn .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.btn{z-index:1035+1}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom-width:7px;border-bottom-style:solid;border-bottom-color:#ccc;border-bottom-color:rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-bottom:0;border-top-width:7px;border-top-style:solid;border-top-color:#ccc;border-top-color:rgba(204,204,204,.2)}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after{display:block}.bs-searchbox,.bs-actionsbox{padding:4px 8px}.bs-actionsbox{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox input.form-control{margin-bottom:0;width:100%}.mobile-device{position:absolute;top:0;left:0;display:block!important;width:100%;height:100%!important;opacity:0} \ No newline at end of file diff --git a/src/pages/api-docs/bootstrap/css/bootstrap.css b/src/pages/api-docs/bootstrap/css/bootstrap.css deleted file mode 100644 index 5b7fe7e..0000000 --- a/src/pages/api-docs/bootstrap/css/bootstrap.css +++ /dev/null @@ -1,6167 +0,0 @@ -/*! - * Bootstrap v2.3.2 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -.clearfix { - *zoom: 1; -} - -.clearfix:before, -.clearfix:after { - display: table; - line-height: 0; - content: ""; -} - -.clearfix:after { - clear: both; -} - -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} - -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} - -audio:not([controls]) { - display: none; -} - -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -a:hover, -a:active { - outline: 0; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - width: auto\9; - height: auto; - max-width: 100%; - vertical-align: middle; - border: 0; - -ms-interpolation-mode: bicubic; -} - -#map_canvas img, -.google-maps img { - max-width: none; -} - -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} - -button, -input { - *overflow: visible; - line-height: normal; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -label, -select, -button, -input[type="button"], -input[type="reset"], -input[type="submit"], -input[type="radio"], -input[type="checkbox"] { - cursor: pointer; -} - -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} - -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - -textarea { - overflow: auto; - vertical-align: top; -} - -@media print { - * { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - .ir a:after, - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - @page { - margin: 0.5cm; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } -} - -body { - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 20px; - color: #333333; - background-color: #ffffff; -} - -a { - color: #0088cc; - text-decoration: none; -} - -a:hover, -a:focus { - color: #005580; - text-decoration: underline; -} - -.img-rounded { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.img-polaroid { - padding: 4px; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -} - -.img-circle { - -webkit-border-radius: 500px; - -moz-border-radius: 500px; - border-radius: 500px; -} - -.row { - margin-left: -20px; - *zoom: 1; -} - -.row:before, -.row:after { - display: table; - line-height: 0; - content: ""; -} - -.row:after { - clear: both; -} - -[class*="span"] { - float: left; - min-height: 1px; - margin-left: 20px; -} - -.container, -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.span12 { - width: 940px; -} - -.span11 { - width: 860px; -} - -.span10 { - width: 780px; -} - -.span9 { - width: 700px; -} - -.span8 { - width: 620px; -} - -.span7 { - width: 540px; -} - -.span6 { - width: 460px; -} - -.span5 { - width: 380px; -} - -.span4 { - width: 300px; -} - -.span3 { - width: 220px; -} - -.span2 { - width: 140px; -} - -.span1 { - width: 60px; -} - -.offset12 { - margin-left: 980px; -} - -.offset11 { - margin-left: 900px; -} - -.offset10 { - margin-left: 820px; -} - -.offset9 { - margin-left: 740px; -} - -.offset8 { - margin-left: 660px; -} - -.offset7 { - margin-left: 580px; -} - -.offset6 { - margin-left: 500px; -} - -.offset5 { - margin-left: 420px; -} - -.offset4 { - margin-left: 340px; -} - -.offset3 { - margin-left: 260px; -} - -.offset2 { - margin-left: 180px; -} - -.offset1 { - margin-left: 100px; -} - -.row-fluid { - width: 100%; - *zoom: 1; -} - -.row-fluid:before, -.row-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.row-fluid:after { - clear: both; -} - -.row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.127659574468085%; - *margin-left: 2.074468085106383%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.row-fluid [class*="span"]:first-child { - margin-left: 0; -} - -.row-fluid .controls-row [class*="span"] + [class*="span"] { - margin-left: 2.127659574468085%; -} - -.row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; -} - -.row-fluid .span11 { - width: 91.48936170212765%; - *width: 91.43617021276594%; -} - -.row-fluid .span10 { - width: 82.97872340425532%; - *width: 82.92553191489361%; -} - -.row-fluid .span9 { - width: 74.46808510638297%; - *width: 74.41489361702126%; -} - -.row-fluid .span8 { - width: 65.95744680851064%; - *width: 65.90425531914893%; -} - -.row-fluid .span7 { - width: 57.44680851063829%; - *width: 57.39361702127659%; -} - -.row-fluid .span6 { - width: 48.93617021276595%; - *width: 48.88297872340425%; -} - -.row-fluid .span5 { - width: 40.42553191489362%; - *width: 40.37234042553192%; -} - -.row-fluid .span4 { - width: 31.914893617021278%; - *width: 31.861702127659576%; -} - -.row-fluid .span3 { - width: 23.404255319148934%; - *width: 23.351063829787233%; -} - -.row-fluid .span2 { - width: 14.893617021276595%; - *width: 14.840425531914894%; -} - -.row-fluid .span1 { - width: 6.382978723404255%; - *width: 6.329787234042553%; -} - -.row-fluid .offset12 { - margin-left: 104.25531914893617%; - *margin-left: 104.14893617021275%; -} - -.row-fluid .offset12:first-child { - margin-left: 102.12765957446808%; - *margin-left: 102.02127659574467%; -} - -.row-fluid .offset11 { - margin-left: 95.74468085106382%; - *margin-left: 95.6382978723404%; -} - -.row-fluid .offset11:first-child { - margin-left: 93.61702127659574%; - *margin-left: 93.51063829787232%; -} - -.row-fluid .offset10 { - margin-left: 87.23404255319149%; - *margin-left: 87.12765957446807%; -} - -.row-fluid .offset10:first-child { - margin-left: 85.1063829787234%; - *margin-left: 84.99999999999999%; -} - -.row-fluid .offset9 { - margin-left: 78.72340425531914%; - *margin-left: 78.61702127659572%; -} - -.row-fluid .offset9:first-child { - margin-left: 76.59574468085106%; - *margin-left: 76.48936170212764%; -} - -.row-fluid .offset8 { - margin-left: 70.2127659574468%; - *margin-left: 70.10638297872339%; -} - -.row-fluid .offset8:first-child { - margin-left: 68.08510638297872%; - *margin-left: 67.9787234042553%; -} - -.row-fluid .offset7 { - margin-left: 61.70212765957446%; - *margin-left: 61.59574468085106%; -} - -.row-fluid .offset7:first-child { - margin-left: 59.574468085106375%; - *margin-left: 59.46808510638297%; -} - -.row-fluid .offset6 { - margin-left: 53.191489361702125%; - *margin-left: 53.085106382978715%; -} - -.row-fluid .offset6:first-child { - margin-left: 51.063829787234035%; - *margin-left: 50.95744680851063%; -} - -.row-fluid .offset5 { - margin-left: 44.68085106382979%; - *margin-left: 44.57446808510638%; -} - -.row-fluid .offset5:first-child { - margin-left: 42.5531914893617%; - *margin-left: 42.4468085106383%; -} - -.row-fluid .offset4 { - margin-left: 36.170212765957444%; - *margin-left: 36.06382978723405%; -} - -.row-fluid .offset4:first-child { - margin-left: 34.04255319148936%; - *margin-left: 33.93617021276596%; -} - -.row-fluid .offset3 { - margin-left: 27.659574468085104%; - *margin-left: 27.5531914893617%; -} - -.row-fluid .offset3:first-child { - margin-left: 25.53191489361702%; - *margin-left: 25.425531914893618%; -} - -.row-fluid .offset2 { - margin-left: 19.148936170212764%; - *margin-left: 19.04255319148936%; -} - -.row-fluid .offset2:first-child { - margin-left: 17.02127659574468%; - *margin-left: 16.914893617021278%; -} - -.row-fluid .offset1 { - margin-left: 10.638297872340425%; - *margin-left: 10.53191489361702%; -} - -.row-fluid .offset1:first-child { - margin-left: 8.51063829787234%; - *margin-left: 8.404255319148938%; -} - -[class*="span"].hide, -.row-fluid [class*="span"].hide { - display: none; -} - -[class*="span"].pull-right, -.row-fluid [class*="span"].pull-right { - float: right; -} - -.container { - margin-right: auto; - margin-left: auto; - *zoom: 1; -} - -.container:before, -.container:after { - display: table; - line-height: 0; - content: ""; -} - -.container:after { - clear: both; -} - -.container-fluid { - padding-right: 20px; - padding-left: 20px; - *zoom: 1; -} - -.container-fluid:before, -.container-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.container-fluid:after { - clear: both; -} - -p { - margin: 0 0 10px; -} - -.lead { - margin-bottom: 20px; - font-size: 21px; - font-weight: 200; - line-height: 30px; -} - -small { - font-size: 85%; -} - -strong { - font-weight: bold; -} - -em { - font-style: italic; -} - -cite { - font-style: normal; -} - -.muted { - color: #999999; -} - -a.muted:hover, -a.muted:focus { - color: #808080; -} - -.text-warning { - color: #c09853; -} - -a.text-warning:hover, -a.text-warning:focus { - color: #a47e3c; -} - -.text-error { - color: #b94a48; -} - -a.text-error:hover, -a.text-error:focus { - color: #953b39; -} - -.text-info { - color: #3a87ad; -} - -a.text-info:hover, -a.text-info:focus { - color: #2d6987; -} - -.text-success { - color: #468847; -} - -a.text-success:hover, -a.text-success:focus { - color: #356635; -} - -.text-left { - text-align: left; -} - -.text-right { - text-align: right; -} - -.text-center { - text-align: center; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 10px 0; - font-family: inherit; - font-weight: bold; - line-height: 20px; - color: inherit; - text-rendering: optimizelegibility; -} - -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - font-weight: normal; - line-height: 1; - color: #999999; -} - -h1, -h2, -h3 { - line-height: 40px; -} - -h1 { - font-size: 38.5px; -} - -h2 { - font-size: 31.5px; -} - -h3 { - font-size: 24.5px; -} - -h4 { - font-size: 17.5px; -} - -h5 { - font-size: 14px; -} - -h6 { - font-size: 11.9px; -} - -h1 small { - font-size: 24.5px; -} - -h2 small { - font-size: 17.5px; -} - -h3 small { - font-size: 14px; -} - -h4 small { - font-size: 14px; -} - -.page-header { - padding-bottom: 9px; - margin: 20px 0 30px; - border-bottom: 1px solid #eeeeee; -} - -ul, -ol { - padding: 0; - margin: 0 0 10px 25px; -} - -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; -} - -li { - line-height: 20px; -} - -ul.unstyled, -ol.unstyled { - margin-left: 0; - list-style: none; -} - -ul.inline, -ol.inline { - margin-left: 0; - list-style: none; -} - -ul.inline > li, -ol.inline > li { - display: inline-block; - *display: inline; - padding-right: 5px; - padding-left: 5px; - *zoom: 1; -} - -dl { - margin-bottom: 20px; -} - -dt, -dd { - line-height: 20px; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 10px; -} - -.dl-horizontal { - *zoom: 1; -} - -.dl-horizontal:before, -.dl-horizontal:after { - display: table; - line-height: 0; - content: ""; -} - -.dl-horizontal:after { - clear: both; -} - -.dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; -} - -.dl-horizontal dd { - margin-left: 180px; -} - -hr { - margin: 20px 0; - border: 0; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #ffffff; -} - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -abbr.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 0 0 0 15px; - margin: 0 0 20px; - border-left: 5px solid #eeeeee; -} - -blockquote p { - margin-bottom: 0; - font-size: 17.5px; - font-weight: 300; - line-height: 1.25; -} - -blockquote small { - display: block; - line-height: 20px; - color: #999999; -} - -blockquote small:before { - content: '\2014 \00A0'; -} - -blockquote.pull-right { - float: right; - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; -} - -blockquote.pull-right p, -blockquote.pull-right small { - text-align: right; -} - -blockquote.pull-right small:before { - content: ''; -} - -blockquote.pull-right small:after { - content: '\00A0 \2014'; -} - -q:before, -q:after, -blockquote:before, -blockquote:after { - content: ""; -} - -address { - display: block; - margin-bottom: 20px; - font-style: normal; - line-height: 20px; -} - -code, -pre { - padding: 0 3px 2px; - font-family: Monaco, Menlo, Consolas, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -code { - padding: 2px 4px; - color: #d14; - white-space: nowrap; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 20px; - word-break: break-all; - word-wrap: break-word; - white-space: pre; - white-space: pre-wrap; - background-color: #f5f5f5; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -pre.prettyprint { - margin-bottom: 20px; -} - -pre code { - padding: 0; - color: inherit; - white-space: pre; - white-space: pre-wrap; - background-color: transparent; - border: 0; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -form { - margin: 0 0 20px; -} - -fieldset { - padding: 0; - margin: 0; - border: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: 40px; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -legend small { - font-size: 15px; - color: #999999; -} - -label, -input, -button, -select, -textarea { - font-size: 14px; - font-weight: normal; - line-height: 20px; -} - -input, -button, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} - -label { - display: block; - margin-bottom: 5px; -} - -select, -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - display: inline-block; - height: 20px; - padding: 4px 6px; - margin-bottom: 10px; - font-size: 14px; - line-height: 20px; - color: #555555; - vertical-align: middle; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -input, -textarea, -.uneditable-input { - width: 206px; -} - -textarea { - height: auto; -} - -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - background-color: #ffffff; - border: 1px solid #cccccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} - -textarea:focus, -input[type="text"]:focus, -input[type="password"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="time"]:focus, -input[type="week"]:focus, -input[type="number"]:focus, -input[type="email"]:focus, -input[type="url"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="color"]:focus, -.uneditable-input:focus { - border-color: rgba(82, 168, 236, 0.8); - outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); -} - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - *margin-top: 0; - line-height: normal; -} - -input[type="file"], -input[type="image"], -input[type="submit"], -input[type="reset"], -input[type="button"], -input[type="radio"], -input[type="checkbox"] { - width: auto; -} - -select, -input[type="file"] { - height: 30px; - /* In IE7, the height of the select element cannot be changed by height, only font-size */ - - *margin-top: 4px; - /* For IE7, add top margin to align select with labels */ - - line-height: 30px; -} - -select { - width: 220px; - background-color: #ffffff; - border: 1px solid #cccccc; -} - -select[multiple], -select[size] { - height: auto; -} - -select:focus, -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.uneditable-input, -.uneditable-textarea { - color: #999999; - cursor: not-allowed; - background-color: #fcfcfc; - border-color: #cccccc; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -} - -.uneditable-input { - overflow: hidden; - white-space: nowrap; -} - -.uneditable-textarea { - width: auto; - height: auto; -} - -input:-moz-placeholder, -textarea:-moz-placeholder { - color: #999999; -} - -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { - color: #999999; -} - -input::-webkit-input-placeholder, -textarea::-webkit-input-placeholder { - color: #999999; -} - -.radio, -.checkbox { - min-height: 20px; - padding-left: 20px; -} - -.radio input[type="radio"], -.checkbox input[type="checkbox"] { - float: left; - margin-left: -20px; -} - -.controls > .radio:first-child, -.controls > .checkbox:first-child { - padding-top: 5px; -} - -.radio.inline, -.checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; -} - -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left: 10px; -} - -.input-mini { - width: 60px; -} - -.input-small { - width: 90px; -} - -.input-medium { - width: 150px; -} - -.input-large { - width: 210px; -} - -.input-xlarge { - width: 270px; -} - -.input-xxlarge { - width: 530px; -} - -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { - float: none; - margin-left: 0; -} - -.input-append input[class*="span"], -.input-append .uneditable-input[class*="span"], -.input-prepend input[class*="span"], -.input-prepend .uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"], -.row-fluid .input-prepend [class*="span"], -.row-fluid .input-append [class*="span"] { - display: inline-block; -} - -input, -textarea, -.uneditable-input { - margin-left: 0; -} - -.controls-row [class*="span"] + [class*="span"] { - margin-left: 20px; -} - -input.span12, -textarea.span12, -.uneditable-input.span12 { - width: 926px; -} - -input.span11, -textarea.span11, -.uneditable-input.span11 { - width: 846px; -} - -input.span10, -textarea.span10, -.uneditable-input.span10 { - width: 766px; -} - -input.span9, -textarea.span9, -.uneditable-input.span9 { - width: 686px; -} - -input.span8, -textarea.span8, -.uneditable-input.span8 { - width: 606px; -} - -input.span7, -textarea.span7, -.uneditable-input.span7 { - width: 526px; -} - -input.span6, -textarea.span6, -.uneditable-input.span6 { - width: 446px; -} - -input.span5, -textarea.span5, -.uneditable-input.span5 { - width: 366px; -} - -input.span4, -textarea.span4, -.uneditable-input.span4 { - width: 286px; -} - -input.span3, -textarea.span3, -.uneditable-input.span3 { - width: 206px; -} - -input.span2, -textarea.span2, -.uneditable-input.span2 { - width: 126px; -} - -input.span1, -textarea.span1, -.uneditable-input.span1 { - width: 46px; -} - -.controls-row { - *zoom: 1; -} - -.controls-row:before, -.controls-row:after { - display: table; - line-height: 0; - content: ""; -} - -.controls-row:after { - clear: both; -} - -.controls-row [class*="span"], -.row-fluid .controls-row [class*="span"] { - float: left; -} - -.controls-row .checkbox[class*="span"], -.controls-row .radio[class*="span"] { - padding-top: 5px; -} - -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #eeeeee; -} - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"][readonly], -input[type="checkbox"][readonly] { - background-color: transparent; -} - -.control-group.warning .control-label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #c09853; -} - -.control-group.warning .checkbox, -.control-group.warning .radio, -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #c09853; -} - -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - border-color: #c09853; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; -} - -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} - -.control-group.error .control-label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #b94a48; -} - -.control-group.error .checkbox, -.control-group.error .radio, -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #b94a48; -} - -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - border-color: #b94a48; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; -} - -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} - -.control-group.success .control-label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #468847; -} - -.control-group.success .checkbox, -.control-group.success .radio, -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #468847; -} - -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - border-color: #468847; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; -} - -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} - -.control-group.info .control-label, -.control-group.info .help-block, -.control-group.info .help-inline { - color: #3a87ad; -} - -.control-group.info .checkbox, -.control-group.info .radio, -.control-group.info input, -.control-group.info select, -.control-group.info textarea { - color: #3a87ad; -} - -.control-group.info input, -.control-group.info select, -.control-group.info textarea { - border-color: #3a87ad; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.info input:focus, -.control-group.info select:focus, -.control-group.info textarea:focus { - border-color: #2d6987; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; -} - -.control-group.info .input-prepend .add-on, -.control-group.info .input-append .add-on { - color: #3a87ad; - background-color: #d9edf7; - border-color: #3a87ad; -} - -input:focus:invalid, -textarea:focus:invalid, -select:focus:invalid { - color: #b94a48; - border-color: #ee5f5b; -} - -input:focus:invalid:focus, -textarea:focus:invalid:focus, -select:focus:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} - -.form-actions { - padding: 19px 20px 20px; - margin-top: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - *zoom: 1; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.help-block, -.help-inline { - color: #595959; -} - -.help-block { - display: block; - margin-bottom: 10px; -} - -.help-inline { - display: inline-block; - *display: inline; - padding-left: 5px; - vertical-align: middle; - *zoom: 1; -} - -.input-append, -.input-prepend { - display: inline-block; - margin-bottom: 10px; - font-size: 0; - white-space: nowrap; - vertical-align: middle; -} - -.input-append input, -.input-prepend input, -.input-append select, -.input-prepend select, -.input-append .uneditable-input, -.input-prepend .uneditable-input, -.input-append .dropdown-menu, -.input-prepend .dropdown-menu, -.input-append .popover, -.input-prepend .popover { - font-size: 14px; -} - -.input-append input, -.input-prepend input, -.input-append select, -.input-prepend select, -.input-append .uneditable-input, -.input-prepend .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - vertical-align: top; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-append input:focus, -.input-prepend input:focus, -.input-append select:focus, -.input-prepend select:focus, -.input-append .uneditable-input:focus, -.input-prepend .uneditable-input:focus { - z-index: 2; -} - -.input-append .add-on, -.input-prepend .add-on { - display: inline-block; - width: auto; - height: 20px; - min-width: 16px; - padding: 4px 5px; - font-size: 14px; - font-weight: normal; - line-height: 20px; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - background-color: #eeeeee; - border: 1px solid #ccc; -} - -.input-append .add-on, -.input-prepend .add-on, -.input-append .btn, -.input-prepend .btn, -.input-append .btn-group > .dropdown-toggle, -.input-prepend .btn-group > .dropdown-toggle { - vertical-align: top; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-append .active, -.input-prepend .active { - background-color: #a9dba9; - border-color: #46a546; -} - -.input-prepend .add-on, -.input-prepend .btn { - margin-right: -1px; -} - -.input-prepend .add-on:first-child, -.input-prepend .btn:first-child { - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.input-append input, -.input-append select, -.input-append .uneditable-input { - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.input-append input + .btn-group .btn:last-child, -.input-append select + .btn-group .btn:last-child, -.input-append .uneditable-input + .btn-group .btn:last-child { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-append .add-on, -.input-append .btn, -.input-append .btn-group { - margin-left: -1px; -} - -.input-append .add-on:last-child, -.input-append .btn:last-child, -.input-append .btn-group:last-child > .dropdown-toggle { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-prepend.input-append input, -.input-prepend.input-append select, -.input-prepend.input-append .uneditable-input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-prepend.input-append input + .btn-group .btn, -.input-prepend.input-append select + .btn-group .btn, -.input-prepend.input-append .uneditable-input + .btn-group .btn { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-prepend.input-append .add-on:first-child, -.input-prepend.input-append .btn:first-child { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.input-prepend.input-append .add-on:last-child, -.input-prepend.input-append .btn:last-child { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-prepend.input-append .btn-group:first-child { - margin-left: 0; -} - -input.search-query { - padding-right: 14px; - padding-right: 4px \9; - padding-left: 14px; - padding-left: 4px \9; - /* IE7-8 doesn't have border-radius, so don't indent the padding */ - - margin-bottom: 0; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -/* Allow for input prepend/append in search forms */ - -.form-search .input-append .search-query, -.form-search .input-prepend .search-query { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.form-search .input-append .search-query { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search .input-append .btn { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .search-query { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .btn { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search input, -.form-inline input, -.form-horizontal input, -.form-search textarea, -.form-inline textarea, -.form-horizontal textarea, -.form-search select, -.form-inline select, -.form-horizontal select, -.form-search .help-inline, -.form-inline .help-inline, -.form-horizontal .help-inline, -.form-search .uneditable-input, -.form-inline .uneditable-input, -.form-horizontal .uneditable-input, -.form-search .input-prepend, -.form-inline .input-prepend, -.form-horizontal .input-prepend, -.form-search .input-append, -.form-inline .input-append, -.form-horizontal .input-append { - display: inline-block; - *display: inline; - margin-bottom: 0; - vertical-align: middle; - *zoom: 1; -} - -.form-search .hide, -.form-inline .hide, -.form-horizontal .hide { - display: none; -} - -.form-search label, -.form-inline label, -.form-search .btn-group, -.form-inline .btn-group { - display: inline-block; -} - -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - margin-bottom: 0; -} - -.form-search .radio, -.form-search .checkbox, -.form-inline .radio, -.form-inline .checkbox { - padding-left: 0; - margin-bottom: 0; - vertical-align: middle; -} - -.form-search .radio input[type="radio"], -.form-search .checkbox input[type="checkbox"], -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float: left; - margin-right: 3px; - margin-left: 0; -} - -.control-group { - margin-bottom: 10px; -} - -legend + .control-group { - margin-top: 20px; - -webkit-margin-top-collapse: separate; -} - -.form-horizontal .control-group { - margin-bottom: 20px; - *zoom: 1; -} - -.form-horizontal .control-group:before, -.form-horizontal .control-group:after { - display: table; - line-height: 0; - content: ""; -} - -.form-horizontal .control-group:after { - clear: both; -} - -.form-horizontal .control-label { - float: left; - width: 160px; - padding-top: 5px; - text-align: right; -} - -.form-horizontal .controls { - *display: inline-block; - *padding-left: 20px; - margin-left: 180px; - *margin-left: 0; -} - -.form-horizontal .controls:first-child { - *padding-left: 180px; -} - -.form-horizontal .help-block { - margin-bottom: 0; -} - -.form-horizontal input + .help-block, -.form-horizontal select + .help-block, -.form-horizontal textarea + .help-block, -.form-horizontal .uneditable-input + .help-block, -.form-horizontal .input-prepend + .help-block, -.form-horizontal .input-append + .help-block { - margin-top: 10px; -} - -.form-horizontal .form-actions { - padding-left: 180px; -} - -table { - max-width: 100%; - background-color: transparent; - border-collapse: collapse; - border-spacing: 0; -} - -.table { - width: 100%; - margin-bottom: 20px; -} - -.table th, -.table td { - padding: 8px; - line-height: 20px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} - -.table th { - font-weight: bold; -} - -.table thead th { - vertical-align: bottom; -} - -.table caption + thead tr:first-child th, -.table caption + thead tr:first-child td, -.table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, -.table thead:first-child tr:first-child th, -.table thead:first-child tr:first-child td { - border-top: 0; -} - -.table tbody + tbody { - border-top: 2px solid #dddddd; -} - -.table .table { - background-color: #ffffff; -} - -.table-condensed th, -.table-condensed td { - padding: 4px 5px; -} - -.table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapse; - border-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.table-bordered th, -.table-bordered td { - border-left: 1px solid #dddddd; -} - -.table-bordered caption + thead tr:first-child th, -.table-bordered caption + tbody tr:first-child th, -.table-bordered caption + tbody tr:first-child td, -.table-bordered colgroup + thead tr:first-child th, -.table-bordered colgroup + tbody tr:first-child th, -.table-bordered colgroup + tbody tr:first-child td, -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} - -.table-bordered thead:first-child tr:first-child > th:first-child, -.table-bordered tbody:first-child tr:first-child > td:first-child, -.table-bordered tbody:first-child tr:first-child > th:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered thead:first-child tr:first-child > th:last-child, -.table-bordered tbody:first-child tr:first-child > td:last-child, -.table-bordered tbody:first-child tr:first-child > th:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.table-bordered thead:last-child tr:last-child > th:first-child, -.table-bordered tbody:last-child tr:last-child > td:first-child, -.table-bordered tbody:last-child tr:last-child > th:first-child, -.table-bordered tfoot:last-child tr:last-child > td:first-child, -.table-bordered tfoot:last-child tr:last-child > th:first-child { - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.table-bordered thead:last-child tr:last-child > th:last-child, -.table-bordered tbody:last-child tr:last-child > td:last-child, -.table-bordered tbody:last-child tr:last-child > th:last-child, -.table-bordered tfoot:last-child tr:last-child > td:last-child, -.table-bordered tfoot:last-child tr:last-child > th:last-child { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomleft: 0; -} - -.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -moz-border-radius-bottomright: 0; -} - -.table-bordered caption + thead tr:first-child th:first-child, -.table-bordered caption + tbody tr:first-child td:first-child, -.table-bordered colgroup + thead tr:first-child th:first-child, -.table-bordered colgroup + tbody tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered caption + thead tr:first-child th:last-child, -.table-bordered caption + tbody tr:first-child td:last-child, -.table-bordered colgroup + thead tr:first-child th:last-child, -.table-bordered colgroup + tbody tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.table-striped tbody > tr:nth-child(odd) > td, -.table-striped tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} - -.table-hover tbody tr:hover > td, -.table-hover tbody tr:hover > th { - background-color: #f5f5f5; -} - -table td[class*="span"], -table th[class*="span"], -.row-fluid table td[class*="span"], -.row-fluid table th[class*="span"] { - display: table-cell; - float: none; - margin-left: 0; -} - -.table td.span1, -.table th.span1 { - float: none; - width: 44px; - margin-left: 0; -} - -.table td.span2, -.table th.span2 { - float: none; - width: 124px; - margin-left: 0; -} - -.table td.span3, -.table th.span3 { - float: none; - width: 204px; - margin-left: 0; -} - -.table td.span4, -.table th.span4 { - float: none; - width: 284px; - margin-left: 0; -} - -.table td.span5, -.table th.span5 { - float: none; - width: 364px; - margin-left: 0; -} - -.table td.span6, -.table th.span6 { - float: none; - width: 444px; - margin-left: 0; -} - -.table td.span7, -.table th.span7 { - float: none; - width: 524px; - margin-left: 0; -} - -.table td.span8, -.table th.span8 { - float: none; - width: 604px; - margin-left: 0; -} - -.table td.span9, -.table th.span9 { - float: none; - width: 684px; - margin-left: 0; -} - -.table td.span10, -.table th.span10 { - float: none; - width: 764px; - margin-left: 0; -} - -.table td.span11, -.table th.span11 { - float: none; - width: 844px; - margin-left: 0; -} - -.table td.span12, -.table th.span12 { - float: none; - width: 924px; - margin-left: 0; -} - -.table tbody tr.success > td { - background-color: #dff0d8; -} - -.table tbody tr.error > td { - background-color: #f2dede; -} - -.table tbody tr.warning > td { - background-color: #fcf8e3; -} - -.table tbody tr.info > td { - background-color: #d9edf7; -} - -.table-hover tbody tr.success:hover > td { - background-color: #d0e9c6; -} - -.table-hover tbody tr.error:hover > td { - background-color: #ebcccc; -} - -.table-hover tbody tr.warning:hover > td { - background-color: #faf2cc; -} - -.table-hover tbody tr.info:hover > td { - background-color: #c4e3f3; -} - -[class^="icon-"], -[class*=" icon-"] { - display: inline-block; - width: 14px; - height: 14px; - margin-top: 1px; - *margin-right: .3em; - line-height: 14px; - vertical-align: text-top; - background-image: url("../img/glyphicons-halflings.png"); - background-position: 14px 14px; - background-repeat: no-repeat; -} - -/* White icons with optional class, or on hover/focus/active states of certain elements */ - -.icon-white, -.nav-pills > .active > a > [class^="icon-"], -.nav-pills > .active > a > [class*=" icon-"], -.nav-list > .active > a > [class^="icon-"], -.nav-list > .active > a > [class*=" icon-"], -.navbar-inverse .nav > .active > a > [class^="icon-"], -.navbar-inverse .nav > .active > a > [class*=" icon-"], -.dropdown-menu > li > a:hover > [class^="icon-"], -.dropdown-menu > li > a:focus > [class^="icon-"], -.dropdown-menu > li > a:hover > [class*=" icon-"], -.dropdown-menu > li > a:focus > [class*=" icon-"], -.dropdown-menu > .active > a > [class^="icon-"], -.dropdown-menu > .active > a > [class*=" icon-"], -.dropdown-submenu:hover > a > [class^="icon-"], -.dropdown-submenu:focus > a > [class^="icon-"], -.dropdown-submenu:hover > a > [class*=" icon-"], -.dropdown-submenu:focus > a > [class*=" icon-"] { - background-image: url("../img/glyphicons-halflings-white.png"); -} - -.icon-glass { - background-position: 0 0; -} - -.icon-music { - background-position: -24px 0; -} - -.icon-search { - background-position: -48px 0; -} - -.icon-envelope { - background-position: -72px 0; -} - -.icon-heart { - background-position: -96px 0; -} - -.icon-star { - background-position: -120px 0; -} - -.icon-star-empty { - background-position: -144px 0; -} - -.icon-user { - background-position: -168px 0; -} - -.icon-film { - background-position: -192px 0; -} - -.icon-th-large { - background-position: -216px 0; -} - -.icon-th { - background-position: -240px 0; -} - -.icon-th-list { - background-position: -264px 0; -} - -.icon-ok { - background-position: -288px 0; -} - -.icon-remove { - background-position: -312px 0; -} - -.icon-zoom-in { - background-position: -336px 0; -} - -.icon-zoom-out { - background-position: -360px 0; -} - -.icon-off { - background-position: -384px 0; -} - -.icon-signal { - background-position: -408px 0; -} - -.icon-cog { - background-position: -432px 0; -} - -.icon-trash { - background-position: -456px 0; -} - -.icon-home { - background-position: 0 -24px; -} - -.icon-file { - background-position: -24px -24px; -} - -.icon-time { - background-position: -48px -24px; -} - -.icon-road { - background-position: -72px -24px; -} - -.icon-download-alt { - background-position: -96px -24px; -} - -.icon-download { - background-position: -120px -24px; -} - -.icon-upload { - background-position: -144px -24px; -} - -.icon-inbox { - background-position: -168px -24px; -} - -.icon-play-circle { - background-position: -192px -24px; -} - -.icon-repeat { - background-position: -216px -24px; -} - -.icon-refresh { - background-position: -240px -24px; -} - -.icon-list-alt { - background-position: -264px -24px; -} - -.icon-lock { - background-position: -287px -24px; -} - -.icon-flag { - background-position: -312px -24px; -} - -.icon-headphones { - background-position: -336px -24px; -} - -.icon-volume-off { - background-position: -360px -24px; -} - -.icon-volume-down { - background-position: -384px -24px; -} - -.icon-volume-up { - background-position: -408px -24px; -} - -.icon-qrcode { - background-position: -432px -24px; -} - -.icon-barcode { - background-position: -456px -24px; -} - -.icon-tag { - background-position: 0 -48px; -} - -.icon-tags { - background-position: -25px -48px; -} - -.icon-book { - background-position: -48px -48px; -} - -.icon-bookmark { - background-position: -72px -48px; -} - -.icon-print { - background-position: -96px -48px; -} - -.icon-camera { - background-position: -120px -48px; -} - -.icon-font { - background-position: -144px -48px; -} - -.icon-bold { - background-position: -167px -48px; -} - -.icon-italic { - background-position: -192px -48px; -} - -.icon-text-height { - background-position: -216px -48px; -} - -.icon-text-width { - background-position: -240px -48px; -} - -.icon-align-left { - background-position: -264px -48px; -} - -.icon-align-center { - background-position: -288px -48px; -} - -.icon-align-right { - background-position: -312px -48px; -} - -.icon-align-justify { - background-position: -336px -48px; -} - -.icon-list { - background-position: -360px -48px; -} - -.icon-indent-left { - background-position: -384px -48px; -} - -.icon-indent-right { - background-position: -408px -48px; -} - -.icon-facetime-video { - background-position: -432px -48px; -} - -.icon-picture { - background-position: -456px -48px; -} - -.icon-pencil { - background-position: 0 -72px; -} - -.icon-map-marker { - background-position: -24px -72px; -} - -.icon-adjust { - background-position: -48px -72px; -} - -.icon-tint { - background-position: -72px -72px; -} - -.icon-edit { - background-position: -96px -72px; -} - -.icon-share { - background-position: -120px -72px; -} - -.icon-check { - background-position: -144px -72px; -} - -.icon-move { - background-position: -168px -72px; -} - -.icon-step-backward { - background-position: -192px -72px; -} - -.icon-fast-backward { - background-position: -216px -72px; -} - -.icon-backward { - background-position: -240px -72px; -} - -.icon-play { - background-position: -264px -72px; -} - -.icon-pause { - background-position: -288px -72px; -} - -.icon-stop { - background-position: -312px -72px; -} - -.icon-forward { - background-position: -336px -72px; -} - -.icon-fast-forward { - background-position: -360px -72px; -} - -.icon-step-forward { - background-position: -384px -72px; -} - -.icon-eject { - background-position: -408px -72px; -} - -.icon-chevron-left { - background-position: -432px -72px; -} - -.icon-chevron-right { - background-position: -456px -72px; -} - -.icon-plus-sign { - background-position: 0 -96px; -} - -.icon-minus-sign { - background-position: -24px -96px; -} - -.icon-remove-sign { - background-position: -48px -96px; -} - -.icon-ok-sign { - background-position: -72px -96px; -} - -.icon-question-sign { - background-position: -96px -96px; -} - -.icon-info-sign { - background-position: -120px -96px; -} - -.icon-screenshot { - background-position: -144px -96px; -} - -.icon-remove-circle { - background-position: -168px -96px; -} - -.icon-ok-circle { - background-position: -192px -96px; -} - -.icon-ban-circle { - background-position: -216px -96px; -} - -.icon-arrow-left { - background-position: -240px -96px; -} - -.icon-arrow-right { - background-position: -264px -96px; -} - -.icon-arrow-up { - background-position: -289px -96px; -} - -.icon-arrow-down { - background-position: -312px -96px; -} - -.icon-share-alt { - background-position: -336px -96px; -} - -.icon-resize-full { - background-position: -360px -96px; -} - -.icon-resize-small { - background-position: -384px -96px; -} - -.icon-plus { - background-position: -408px -96px; -} - -.icon-minus { - background-position: -433px -96px; -} - -.icon-asterisk { - background-position: -456px -96px; -} - -.icon-exclamation-sign { - background-position: 0 -120px; -} - -.icon-gift { - background-position: -24px -120px; -} - -.icon-leaf { - background-position: -48px -120px; -} - -.icon-fire { - background-position: -72px -120px; -} - -.icon-eye-open { - background-position: -96px -120px; -} - -.icon-eye-close { - background-position: -120px -120px; -} - -.icon-warning-sign { - background-position: -144px -120px; -} - -.icon-plane { - background-position: -168px -120px; -} - -.icon-calendar { - background-position: -192px -120px; -} - -.icon-random { - width: 16px; - background-position: -216px -120px; -} - -.icon-comment { - background-position: -240px -120px; -} - -.icon-magnet { - background-position: -264px -120px; -} - -.icon-chevron-up { - background-position: -288px -120px; -} - -.icon-chevron-down { - background-position: -313px -119px; -} - -.icon-retweet { - background-position: -336px -120px; -} - -.icon-shopping-cart { - background-position: -360px -120px; -} - -.icon-folder-close { - width: 16px; - background-position: -384px -120px; -} - -.icon-folder-open { - width: 16px; - background-position: -408px -120px; -} - -.icon-resize-vertical { - background-position: -432px -119px; -} - -.icon-resize-horizontal { - background-position: -456px -118px; -} - -.icon-hdd { - background-position: 0 -144px; -} - -.icon-bullhorn { - background-position: -24px -144px; -} - -.icon-bell { - background-position: -48px -144px; -} - -.icon-certificate { - background-position: -72px -144px; -} - -.icon-thumbs-up { - background-position: -96px -144px; -} - -.icon-thumbs-down { - background-position: -120px -144px; -} - -.icon-hand-right { - background-position: -144px -144px; -} - -.icon-hand-left { - background-position: -168px -144px; -} - -.icon-hand-up { - background-position: -192px -144px; -} - -.icon-hand-down { - background-position: -216px -144px; -} - -.icon-circle-arrow-right { - background-position: -240px -144px; -} - -.icon-circle-arrow-left { - background-position: -264px -144px; -} - -.icon-circle-arrow-up { - background-position: -288px -144px; -} - -.icon-circle-arrow-down { - background-position: -312px -144px; -} - -.icon-globe { - background-position: -336px -144px; -} - -.icon-wrench { - background-position: -360px -144px; -} - -.icon-tasks { - background-position: -384px -144px; -} - -.icon-filter { - background-position: -408px -144px; -} - -.icon-briefcase { - background-position: -432px -144px; -} - -.icon-fullscreen { - background-position: -456px -144px; -} - -.dropup, -.dropdown { - position: relative; -} - -.dropdown-toggle { - *margin-bottom: -3px; -} - -.dropdown-toggle:active, -.open .dropdown-toggle { - outline: 0; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-top: 4px solid #000000; - border-right: 4px solid transparent; - border-left: 4px solid transparent; - content: ""; -} - -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 20px; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus, -.dropdown-submenu:hover > a, -.dropdown-submenu:focus > a { - color: #ffffff; - text-decoration: none; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - outline: 0; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #999999; -} - -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: default; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.open { - *z-index: 1000; -} - -.open > .dropdown-menu { - display: block; -} - -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid #000000; - content: ""; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu > .dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px 6px; - border-radius: 0 6px 6px 6px; -} - -.dropdown-submenu:hover > .dropdown-menu { - display: block; -} - -.dropup .dropdown-submenu > .dropdown-menu { - top: auto; - bottom: 0; - margin-top: 0; - margin-bottom: -2px; - -webkit-border-radius: 5px 5px 5px 0; - -moz-border-radius: 5px 5px 5px 0; - border-radius: 5px 5px 5px 0; -} - -.dropdown-submenu > a:after { - display: block; - float: right; - width: 0; - height: 0; - margin-top: 5px; - margin-right: -10px; - border-color: transparent; - border-left-color: #cccccc; - border-style: solid; - border-width: 5px 0 5px 5px; - content: " "; -} - -.dropdown-submenu:hover > a:after { - border-left-color: #ffffff; -} - -.dropdown-submenu.pull-left { - float: none; -} - -.dropdown-submenu.pull-left > .dropdown-menu { - left: -100%; - margin-left: 10px; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -.dropdown .dropdown-menu .nav-header { - padding-right: 20px; - padding-left: 20px; -} - -.typeahead { - z-index: 1051; - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} - -.well-large { - padding: 24px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.well-small { - padding: 9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - -.fade.in { - opacity: 1; -} - -.collapse { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - -moz-transition: height 0.35s ease; - -o-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -.collapse.in { - height: auto; -} - -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 20px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - -.close:hover, -.close:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - filter: alpha(opacity=40); -} - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.btn { - display: inline-block; - *display: inline; - padding: 4px 12px; - margin-bottom: 0; - *margin-left: .3em; - font-size: 14px; - line-height: 20px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - vertical-align: middle; - cursor: pointer; - background-color: #f5f5f5; - *background-color: #e6e6e6; - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-repeat: repeat-x; - border: 1px solid #cccccc; - *border: 0; - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - border-bottom-color: #b3b3b3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn:hover, -.btn:focus, -.btn:active, -.btn.active, -.btn.disabled, -.btn[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; -} - -.btn:active, -.btn.active { - background-color: #cccccc \9; -} - -.btn:first-child { - *margin-left: 0; -} - -.btn:hover, -.btn:focus { - color: #333333; - text-decoration: none; - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; -} - -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn.active, -.btn:active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn.disabled, -.btn[disabled] { - cursor: default; - background-image: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-large { - padding: 11px 19px; - font-size: 17.5px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.btn-large [class^="icon-"], -.btn-large [class*=" icon-"] { - margin-top: 4px; -} - -.btn-small { - padding: 2px 10px; - font-size: 11.9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.btn-small [class^="icon-"], -.btn-small [class*=" icon-"] { - margin-top: 0; -} - -.btn-mini [class^="icon-"], -.btn-mini [class*=" icon-"] { - margin-top: -1px; -} - -.btn-mini { - padding: 0 6px; - font-size: 10.5px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.btn-block + .btn-block { - margin-top: 5px; -} - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} - -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); -} - -.btn-primary { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #006dcc; - *background-color: #0044cc; - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(to bottom, #0088cc, #0044cc); - background-repeat: repeat-x; - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - color: #ffffff; - background-color: #0044cc; - *background-color: #003bb3; -} - -.btn-primary:active, -.btn-primary.active { - background-color: #003399 \9; -} - -.btn-warning { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #faa732; - *background-color: #f89406; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - color: #ffffff; - background-color: #f89406; - *background-color: #df8505; -} - -.btn-warning:active, -.btn-warning.active { - background-color: #c67605 \9; -} - -.btn-danger { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #da4f49; - *background-color: #bd362f; - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); - background-repeat: repeat-x; - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - color: #ffffff; - background-color: #bd362f; - *background-color: #a9302a; -} - -.btn-danger:active, -.btn-danger.active { - background-color: #942a25 \9; -} - -.btn-success { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #5bb75b; - *background-color: #51a351; - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(to bottom, #62c462, #51a351); - background-repeat: repeat-x; - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - color: #ffffff; - background-color: #51a351; - *background-color: #499249; -} - -.btn-success:active, -.btn-success.active { - background-color: #408140 \9; -} - -.btn-info { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #49afcd; - *background-color: #2f96b4; - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); - background-repeat: repeat-x; - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - color: #ffffff; - background-color: #2f96b4; - *background-color: #2a85a0; -} - -.btn-info:active, -.btn-info.active { - background-color: #24748c \9; -} - -.btn-inverse { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #363636; - *background-color: #222222; - background-image: -moz-linear-gradient(top, #444444, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); - background-image: -webkit-linear-gradient(top, #444444, #222222); - background-image: -o-linear-gradient(top, #444444, #222222); - background-image: linear-gradient(to bottom, #444444, #222222); - background-repeat: repeat-x; - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-inverse:hover, -.btn-inverse:focus, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - color: #ffffff; - background-color: #222222; - *background-color: #151515; -} - -.btn-inverse:active, -.btn-inverse.active { - background-color: #080808 \9; -} - -button.btn, -input[type="submit"].btn { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn::-moz-focus-inner, -input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; -} - -button.btn.btn-large, -input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; -} - -button.btn.btn-small, -input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn.btn-mini, -input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; -} - -.btn-link, -.btn-link:active, -.btn-link[disabled] { - background-color: transparent; - background-image: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-link { - color: #0088cc; - cursor: pointer; - border-color: transparent; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-link:hover, -.btn-link:focus { - color: #005580; - text-decoration: underline; - background-color: transparent; -} - -.btn-link[disabled]:hover, -.btn-link[disabled]:focus { - color: #333333; - text-decoration: none; -} - -.btn-group { - position: relative; - display: inline-block; - *display: inline; - *margin-left: .3em; - font-size: 0; - white-space: nowrap; - vertical-align: middle; - *zoom: 1; -} - -.btn-group:first-child { - *margin-left: 0; -} - -.btn-group + .btn-group { - margin-left: 5px; -} - -.btn-toolbar { - margin-top: 10px; - margin-bottom: 10px; - font-size: 0; -} - -.btn-toolbar > .btn + .btn, -.btn-toolbar > .btn-group + .btn, -.btn-toolbar > .btn + .btn-group { - margin-left: 5px; -} - -.btn-group > .btn { - position: relative; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group > .btn + .btn { - margin-left: -1px; -} - -.btn-group > .btn, -.btn-group > .dropdown-menu, -.btn-group > .popover { - font-size: 14px; -} - -.btn-group > .btn-mini { - font-size: 10.5px; -} - -.btn-group > .btn-small { - font-size: 11.9px; -} - -.btn-group > .btn-large { - font-size: 17.5px; -} - -.btn-group > .btn:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-topleft: 4px; -} - -.btn-group > .btn:last-child, -.btn-group > .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; -} - -.btn-group > .btn.large:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-left-radius: 6px; - border-top-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - -moz-border-radius-topleft: 6px; -} - -.btn-group > .btn.large:last-child, -.btn-group > .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-bottomright: 6px; -} - -.btn-group > .btn:hover, -.btn-group > .btn:focus, -.btn-group > .btn:active, -.btn-group > .btn.active { - z-index: 2; -} - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group > .btn + .dropdown-toggle { - *padding-top: 5px; - padding-right: 8px; - *padding-bottom: 5px; - padding-left: 8px; - -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group > .btn-mini + .dropdown-toggle { - *padding-top: 2px; - padding-right: 5px; - *padding-bottom: 2px; - padding-left: 5px; -} - -.btn-group > .btn-small + .dropdown-toggle { - *padding-top: 5px; - *padding-bottom: 4px; -} - -.btn-group > .btn-large + .dropdown-toggle { - *padding-top: 7px; - padding-right: 12px; - *padding-bottom: 7px; - padding-left: 12px; -} - -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group.open .btn.dropdown-toggle { - background-color: #e6e6e6; -} - -.btn-group.open .btn-primary.dropdown-toggle { - background-color: #0044cc; -} - -.btn-group.open .btn-warning.dropdown-toggle { - background-color: #f89406; -} - -.btn-group.open .btn-danger.dropdown-toggle { - background-color: #bd362f; -} - -.btn-group.open .btn-success.dropdown-toggle { - background-color: #51a351; -} - -.btn-group.open .btn-info.dropdown-toggle { - background-color: #2f96b4; -} - -.btn-group.open .btn-inverse.dropdown-toggle { - background-color: #222222; -} - -.btn .caret { - margin-top: 8px; - margin-left: 0; -} - -.btn-large .caret { - margin-top: 6px; -} - -.btn-large .caret { - border-top-width: 5px; - border-right-width: 5px; - border-left-width: 5px; -} - -.btn-mini .caret, -.btn-small .caret { - margin-top: 8px; -} - -.dropup .btn-large .caret { - border-bottom-width: 5px; -} - -.btn-primary .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.btn-group-vertical { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} - -.btn-group-vertical > .btn { - display: block; - float: none; - max-width: 100%; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group-vertical > .btn + .btn { - margin-top: -1px; - margin-left: 0; -} - -.btn-group-vertical > .btn:first-child { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.btn-group-vertical > .btn:last-child { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.btn-group-vertical > .btn-large:first-child { - -webkit-border-radius: 6px 6px 0 0; - -moz-border-radius: 6px 6px 0 0; - border-radius: 6px 6px 0 0; -} - -.btn-group-vertical > .btn-large:last-child { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 20px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - background-color: #fcf8e3; - border: 1px solid #fbeed5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.alert, -.alert h4 { - color: #c09853; -} - -.alert h4 { - margin: 0; -} - -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 20px; -} - -.alert-success { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.alert-success h4 { - color: #468847; -} - -.alert-danger, -.alert-error { - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7; -} - -.alert-danger h4, -.alert-error h4 { - color: #b94a48; -} - -.alert-info { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.alert-info h4 { - color: #3a87ad; -} - -.alert-block { - padding-top: 14px; - padding-bottom: 14px; -} - -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; -} - -.alert-block p + p { - margin-top: 5px; -} - -.nav { - margin-bottom: 20px; - margin-left: 0; - list-style: none; -} - -.nav > li > a { - display: block; -} - -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} - -.nav > li > a > img { - max-width: none; -} - -.nav > .pull-right { - float: right; -} - -.nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 20px; - color: #999999; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-transform: uppercase; -} - -.nav li + .nav-header { - margin-top: 9px; -} - -.nav-list { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 0; -} - -.nav-list > li > a, -.nav-list .nav-header { - margin-right: -15px; - margin-left: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} - -.nav-list > li > a { - padding: 3px 15px; -} - -.nav-list > .active > a, -.nav-list > .active > a:hover, -.nav-list > .active > a:focus { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - background-color: #0088cc; -} - -.nav-list [class^="icon-"], -.nav-list [class*=" icon-"] { - margin-right: 2px; -} - -.nav-list .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.nav-tabs, -.nav-pills { - *zoom: 1; -} - -.nav-tabs:before, -.nav-pills:before, -.nav-tabs:after, -.nav-pills:after { - display: table; - line-height: 0; - content: ""; -} - -.nav-tabs:after, -.nav-pills:after { - clear: both; -} - -.nav-tabs > li, -.nav-pills > li { - float: left; -} - -.nav-tabs > li > a, -.nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; -} - -.nav-tabs { - border-bottom: 1px solid #ddd; -} - -.nav-tabs > li { - margin-bottom: -1px; -} - -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 20px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.nav-tabs > li > a:hover, -.nav-tabs > li > a:focus { - border-color: #eeeeee #eeeeee #dddddd; -} - -.nav-tabs > .active > a, -.nav-tabs > .active > a:hover, -.nav-tabs > .active > a:focus { - color: #555555; - cursor: default; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} - -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.nav-pills > .active > a, -.nav-pills > .active > a:hover, -.nav-pills > .active > a:focus { - color: #ffffff; - background-color: #0088cc; -} - -.nav-stacked > li { - float: none; -} - -.nav-stacked > li > a { - margin-right: 0; -} - -.nav-tabs.nav-stacked { - border-bottom: 0; -} - -.nav-tabs.nav-stacked > li > a { - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; -} - -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomright: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.nav-tabs.nav-stacked > li > a:hover, -.nav-tabs.nav-stacked > li > a:focus { - z-index: 2; - border-color: #ddd; -} - -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} - -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} - -.nav-tabs .dropdown-menu { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.nav-pills .dropdown-menu { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.nav .dropdown-toggle .caret { - margin-top: 6px; - border-top-color: #0088cc; - border-bottom-color: #0088cc; -} - -.nav .dropdown-toggle:hover .caret, -.nav .dropdown-toggle:focus .caret { - border-top-color: #005580; - border-bottom-color: #005580; -} - -/* move down carets for tabs */ - -.nav-tabs .dropdown-toggle .caret { - margin-top: 8px; -} - -.nav .active .dropdown-toggle .caret { - border-top-color: #fff; - border-bottom-color: #fff; -} - -.nav-tabs .active .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.nav > .dropdown.active > a:hover, -.nav > .dropdown.active > a:focus { - cursor: pointer; -} - -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover, -.nav > li.dropdown.open.active > a:focus { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} - -.nav li.dropdown.open .caret, -.nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret, -.nav li.dropdown.open a:focus .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); -} - -.tabs-stacked .open > a:hover, -.tabs-stacked .open > a:focus { - border-color: #999999; -} - -.tabbable { - *zoom: 1; -} - -.tabbable:before, -.tabbable:after { - display: table; - line-height: 0; - content: ""; -} - -.tabbable:after { - clear: both; -} - -.tab-content { - overflow: auto; -} - -.tabs-below > .nav-tabs, -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; -} - -.tab-content > .tab-pane, -.pill-content > .pill-pane { - display: none; -} - -.tab-content > .active, -.pill-content > .active { - display: block; -} - -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; -} - -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} - -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.tabs-below > .nav-tabs > li > a:hover, -.tabs-below > .nav-tabs > li > a:focus { - border-top-color: #ddd; - border-bottom-color: transparent; -} - -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover, -.tabs-below > .nav-tabs > .active > a:focus { - border-color: transparent #ddd #ddd #ddd; -} - -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; -} - -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} - -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} - -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.tabs-left > .nav-tabs > li > a:hover, -.tabs-left > .nav-tabs > li > a:focus { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} - -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover, -.tabs-left > .nav-tabs .active > a:focus { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} - -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} - -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.tabs-right > .nav-tabs > li > a:hover, -.tabs-right > .nav-tabs > li > a:focus { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} - -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover, -.tabs-right > .nav-tabs .active > a:focus { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} - -.nav > .disabled > a { - color: #999999; -} - -.nav > .disabled > a:hover, -.nav > .disabled > a:focus { - text-decoration: none; - cursor: default; - background-color: transparent; -} - -.navbar { - *position: relative; - *z-index: 2; - margin-bottom: 20px; - overflow: visible; -} - -.navbar-inner { - min-height: 40px; - padding-right: 20px; - padding-left: 20px; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - border: 1px solid #d4d4d4; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - *zoom: 1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -} - -.navbar-inner:before, -.navbar-inner:after { - display: table; - line-height: 0; - content: ""; -} - -.navbar-inner:after { - clear: both; -} - -.navbar .container { - width: auto; -} - -.nav-collapse.collapse { - height: auto; - overflow: visible; -} - -.navbar .brand { - display: block; - float: left; - padding: 10px 20px 10px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - color: #777777; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .brand:hover, -.navbar .brand:focus { - text-decoration: none; -} - -.navbar-text { - margin-bottom: 0; - line-height: 40px; - color: #777777; -} - -.navbar-link { - color: #777777; -} - -.navbar-link:hover, -.navbar-link:focus { - color: #333333; -} - -.navbar .divider-vertical { - height: 40px; - margin: 0 9px; - border-right: 1px solid #ffffff; - border-left: 1px solid #f2f2f2; -} - -.navbar .btn, -.navbar .btn-group { - margin-top: 5px; -} - -.navbar .btn-group .btn, -.navbar .input-prepend .btn, -.navbar .input-append .btn, -.navbar .input-prepend .btn-group, -.navbar .input-append .btn-group { - margin-top: 0; -} - -.navbar-form { - margin-bottom: 0; - *zoom: 1; -} - -.navbar-form:before, -.navbar-form:after { - display: table; - line-height: 0; - content: ""; -} - -.navbar-form:after { - clear: both; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .radio, -.navbar-form .checkbox { - margin-top: 5px; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .btn { - display: inline-block; - margin-bottom: 0; -} - -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; -} - -.navbar-form .input-append, -.navbar-form .input-prepend { - margin-top: 5px; - white-space: nowrap; -} - -.navbar-form .input-append input, -.navbar-form .input-prepend input { - margin-top: 0; -} - -.navbar-search { - position: relative; - float: left; - margin-top: 5px; - margin-bottom: 0; -} - -.navbar-search .search-query { - padding: 4px 14px; - margin-bottom: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.navbar-static-top { - position: static; - margin-bottom: 0; -} - -.navbar-static-top .navbar-inner { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - margin-bottom: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - border-width: 0 0 1px; -} - -.navbar-fixed-bottom .navbar-inner { - border-width: 1px 0 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner { - padding-right: 0; - padding-left: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.navbar-fixed-top { - top: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar-fixed-bottom { - bottom: 0; -} - -.navbar-fixed-bottom .navbar-inner { - -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); - box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; -} - -.navbar .nav.pull-right { - float: right; - margin-right: 0; -} - -.navbar .nav > li { - float: left; -} - -.navbar .nav > li > a { - float: none; - padding: 10px 15px 10px; - color: #777777; - text-decoration: none; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .nav .dropdown-toggle .caret { - margin-top: 8px; -} - -.navbar .nav > li > a:focus, -.navbar .nav > li > a:hover { - color: #333333; - text-decoration: none; - background-color: transparent; -} - -.navbar .nav > .active > a, -.navbar .nav > .active > a:hover, -.navbar .nav > .active > a:focus { - color: #555555; - text-decoration: none; - background-color: #e5e5e5; - -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); -} - -.navbar .btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-right: 5px; - margin-left: 5px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #ededed; - *background-color: #e5e5e5; - background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); - background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); - background-repeat: repeat-x; - border-color: #e5e5e5 #e5e5e5 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); -} - -.navbar .btn-navbar:hover, -.navbar .btn-navbar:focus, -.navbar .btn-navbar:active, -.navbar .btn-navbar.active, -.navbar .btn-navbar.disabled, -.navbar .btn-navbar[disabled] { - color: #ffffff; - background-color: #e5e5e5; - *background-color: #d9d9d9; -} - -.navbar .btn-navbar:active, -.navbar .btn-navbar.active { - background-color: #cccccc \9; -} - -.navbar .btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); -} - -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; -} - -.navbar .nav > li > .dropdown-menu:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.navbar .nav > li > .dropdown-menu:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - border-left: 6px solid transparent; - content: ''; -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:before { - top: auto; - bottom: -7px; - border-top: 7px solid #ccc; - border-bottom: 0; - border-top-color: rgba(0, 0, 0, 0.2); -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:after { - top: auto; - bottom: -6px; - border-top: 6px solid #ffffff; - border-bottom: 0; -} - -.navbar .nav li.dropdown > a:hover .caret, -.navbar .nav li.dropdown > a:focus .caret { - border-top-color: #333333; - border-bottom-color: #333333; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle, -.navbar .nav li.dropdown.active > .dropdown-toggle, -.navbar .nav li.dropdown.open.active > .dropdown-toggle { - color: #555555; - background-color: #e5e5e5; -} - -.navbar .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #777777; - border-bottom-color: #777777; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.navbar .pull-right > li > .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:before, -.navbar .nav > li > .dropdown-menu.pull-right:before { - right: 12px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:after, -.navbar .nav > li > .dropdown-menu.pull-right:after { - right: 13px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { - right: 100%; - left: auto; - margin-right: -1px; - margin-left: 0; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -.navbar-inverse .navbar-inner { - background-color: #1b1b1b; - background-image: -moz-linear-gradient(top, #222222, #111111); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); - background-image: -webkit-linear-gradient(top, #222222, #111111); - background-image: -o-linear-gradient(top, #222222, #111111); - background-image: linear-gradient(to bottom, #222222, #111111); - background-repeat: repeat-x; - border-color: #252525; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); -} - -.navbar-inverse .brand, -.navbar-inverse .nav > li > a { - color: #999999; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} - -.navbar-inverse .brand:hover, -.navbar-inverse .nav > li > a:hover, -.navbar-inverse .brand:focus, -.navbar-inverse .nav > li > a:focus { - color: #ffffff; -} - -.navbar-inverse .brand { - color: #999999; -} - -.navbar-inverse .navbar-text { - color: #999999; -} - -.navbar-inverse .nav > li > a:focus, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .nav .active > a, -.navbar-inverse .nav .active > a:hover, -.navbar-inverse .nav .active > a:focus { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .navbar-link { - color: #999999; -} - -.navbar-inverse .navbar-link:hover, -.navbar-inverse .navbar-link:focus { - color: #ffffff; -} - -.navbar-inverse .divider-vertical { - border-right-color: #222222; - border-left-color: #111111; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .nav li.dropdown > a:hover .caret, -.navbar-inverse .nav li.dropdown > a:focus .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #999999; - border-bottom-color: #999999; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.navbar-inverse .navbar-search .search-query { - color: #ffffff; - background-color: #515151; - border-color: #111111; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; -} - -.navbar-inverse .navbar-search .search-query:-moz-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:focus, -.navbar-inverse .navbar-search .search-query.focused { - padding: 5px 15px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - outline: 0; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -} - -.navbar-inverse .btn-navbar { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e0e0e; - *background-color: #040404; - background-image: -moz-linear-gradient(top, #151515, #040404); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); - background-image: -webkit-linear-gradient(top, #151515, #040404); - background-image: -o-linear-gradient(top, #151515, #040404); - background-image: linear-gradient(to bottom, #151515, #040404); - background-repeat: repeat-x; - border-color: #040404 #040404 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.navbar-inverse .btn-navbar:hover, -.navbar-inverse .btn-navbar:focus, -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active, -.navbar-inverse .btn-navbar.disabled, -.navbar-inverse .btn-navbar[disabled] { - color: #ffffff; - background-color: #040404; - *background-color: #000000; -} - -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active { - background-color: #000000 \9; -} - -.breadcrumb { - padding: 8px 15px; - margin: 0 0 20px; - list-style: none; - background-color: #f5f5f5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.breadcrumb > li { - display: inline-block; - *display: inline; - text-shadow: 0 1px 0 #ffffff; - *zoom: 1; -} - -.breadcrumb > li > .divider { - padding: 0 5px; - color: #ccc; -} - -.breadcrumb > .active { - color: #999999; -} - -.pagination { - margin: 20px 0; -} - -.pagination ul { - display: inline-block; - *display: inline; - margin-bottom: 0; - margin-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - *zoom: 1; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.pagination ul > li { - display: inline; -} - -.pagination ul > li > a, -.pagination ul > li > span { - float: left; - padding: 4px 12px; - line-height: 20px; - text-decoration: none; - background-color: #ffffff; - border: 1px solid #dddddd; - border-left-width: 0; -} - -.pagination ul > li > a:hover, -.pagination ul > li > a:focus, -.pagination ul > .active > a, -.pagination ul > .active > span { - background-color: #f5f5f5; -} - -.pagination ul > .active > a, -.pagination ul > .active > span { - color: #999999; - cursor: default; -} - -.pagination ul > .disabled > span, -.pagination ul > .disabled > a, -.pagination ul > .disabled > a:hover, -.pagination ul > .disabled > a:focus { - color: #999999; - cursor: default; - background-color: transparent; -} - -.pagination ul > li:first-child > a, -.pagination ul > li:first-child > span { - border-left-width: 1px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-topleft: 4px; -} - -.pagination ul > li:last-child > a, -.pagination ul > li:last-child > span { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; -} - -.pagination-centered { - text-align: center; -} - -.pagination-right { - text-align: right; -} - -.pagination-large ul > li > a, -.pagination-large ul > li > span { - padding: 11px 19px; - font-size: 17.5px; -} - -.pagination-large ul > li:first-child > a, -.pagination-large ul > li:first-child > span { - -webkit-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-left-radius: 6px; - border-top-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - -moz-border-radius-topleft: 6px; -} - -.pagination-large ul > li:last-child > a, -.pagination-large ul > li:last-child > span { - -webkit-border-top-right-radius: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-bottomright: 6px; -} - -.pagination-mini ul > li:first-child > a, -.pagination-small ul > li:first-child > a, -.pagination-mini ul > li:first-child > span, -.pagination-small ul > li:first-child > span { - -webkit-border-bottom-left-radius: 3px; - border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-top-left-radius: 3px; - -moz-border-radius-bottomleft: 3px; - -moz-border-radius-topleft: 3px; -} - -.pagination-mini ul > li:last-child > a, -.pagination-small ul > li:last-child > a, -.pagination-mini ul > li:last-child > span, -.pagination-small ul > li:last-child > span { - -webkit-border-top-right-radius: 3px; - border-top-right-radius: 3px; - -webkit-border-bottom-right-radius: 3px; - border-bottom-right-radius: 3px; - -moz-border-radius-topright: 3px; - -moz-border-radius-bottomright: 3px; -} - -.pagination-small ul > li > a, -.pagination-small ul > li > span { - padding: 2px 10px; - font-size: 11.9px; -} - -.pagination-mini ul > li > a, -.pagination-mini ul > li > span { - padding: 0 6px; - font-size: 10.5px; -} - -.pager { - margin: 20px 0; - text-align: center; - list-style: none; - *zoom: 1; -} - -.pager:before, -.pager:after { - display: table; - line-height: 0; - content: ""; -} - -.pager:after { - clear: both; -} - -.pager li { - display: inline; -} - -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #f5f5f5; -} - -.pager .next > a, -.pager .next > span { - float: right; -} - -.pager .previous > a, -.pager .previous > span { - float: left; -} - -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #999999; - cursor: default; - background-color: #fff; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} - -.modal-backdrop.fade { - opacity: 0; -} - -.modal-backdrop, -.modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.modal { - position: fixed; - top: 10%; - left: 50%; - z-index: 1050; - width: 560px; - margin-left: -280px; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - outline: none; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} - -.modal.fade { - top: -25%; - -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; - -moz-transition: opacity 0.3s linear, top 0.3s ease-out; - -o-transition: opacity 0.3s linear, top 0.3s ease-out; - transition: opacity 0.3s linear, top 0.3s ease-out; -} - -.modal.fade.in { - top: 10%; -} - -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; -} - -.modal-header .close { - margin-top: 2px; -} - -.modal-header h3 { - margin: 0; - line-height: 30px; -} - -.modal-body { - position: relative; - max-height: 400px; - padding: 15px; - overflow-y: auto; -} - -.modal-form { - margin-bottom: 0; -} - -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - text-align: right; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - line-height: 0; - content: ""; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} - -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} - -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} - -.tooltip { - position: absolute; - z-index: 1030; - display: block; - font-size: 11px; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); - visibility: visible; -} - -.tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} - -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} - -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} - -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} - -.tooltip-inner { - max-width: 200px; - padding: 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-right-color: #000000; - border-width: 5px 5px 5px 0; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-left-color: #000000; - border-width: 5px 0 5px 5px; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - white-space: normal; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.popover.top { - margin-top: -10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-left: -10px; -} - -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; -} - -.popover-title:empty { - display: none; -} - -.popover-content { - padding: 9px 14px; -} - -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover .arrow { - border-width: 11px; -} - -.popover .arrow:after { - border-width: 10px; - content: ""; -} - -.popover.top .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, 0.25); - border-bottom-width: 0; -} - -.popover.top .arrow:after { - bottom: 1px; - margin-left: -10px; - border-top-color: #ffffff; - border-bottom-width: 0; -} - -.popover.right .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, 0.25); - border-left-width: 0; -} - -.popover.right .arrow:after { - bottom: -10px; - left: 1px; - border-right-color: #ffffff; - border-left-width: 0; -} - -.popover.bottom .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, 0.25); - border-top-width: 0; -} - -.popover.bottom .arrow:after { - top: 1px; - margin-left: -10px; - border-bottom-color: #ffffff; - border-top-width: 0; -} - -.popover.left .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, 0.25); - border-right-width: 0; -} - -.popover.left .arrow:after { - right: 1px; - bottom: -10px; - border-left-color: #ffffff; - border-right-width: 0; -} - -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} - -.thumbnails:before, -.thumbnails:after { - display: table; - line-height: 0; - content: ""; -} - -.thumbnails:after { - clear: both; -} - -.row-fluid .thumbnails { - margin-left: 0; -} - -.thumbnails > li { - float: left; - margin-bottom: 20px; - margin-left: 20px; -} - -.thumbnail { - display: block; - padding: 4px; - line-height: 20px; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -a.thumbnail:hover, -a.thumbnail:focus { - border-color: #0088cc; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} - -.thumbnail > img { - display: block; - max-width: 100%; - margin-right: auto; - margin-left: auto; -} - -.thumbnail .caption { - padding: 9px; - color: #555555; -} - -.media, -.media-body { - overflow: hidden; - *overflow: visible; - zoom: 1; -} - -.media, -.media .media { - margin-top: 15px; -} - -.media:first-child { - margin-top: 0; -} - -.media-object { - display: block; -} - -.media-heading { - margin: 0 0 5px; -} - -.media > .pull-left { - margin-right: 10px; -} - -.media > .pull-right { - margin-left: 10px; -} - -.media-list { - margin-left: 0; - list-style: none; -} - -.label, -.badge { - display: inline-block; - padding: 2px 4px; - font-size: 11.844px; - font-weight: bold; - line-height: 14px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - white-space: nowrap; - vertical-align: baseline; - background-color: #999999; -} - -.label { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.badge { - padding-right: 9px; - padding-left: 9px; - -webkit-border-radius: 9px; - -moz-border-radius: 9px; - border-radius: 9px; -} - -.label:empty, -.badge:empty { - display: none; -} - -a.label:hover, -a.label:focus, -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label-important, -.badge-important { - background-color: #b94a48; -} - -.label-important[href], -.badge-important[href] { - background-color: #953b39; -} - -.label-warning, -.badge-warning { - background-color: #f89406; -} - -.label-warning[href], -.badge-warning[href] { - background-color: #c67605; -} - -.label-success, -.badge-success { - background-color: #468847; -} - -.label-success[href], -.badge-success[href] { - background-color: #356635; -} - -.label-info, -.badge-info { - background-color: #3a87ad; -} - -.label-info[href], -.badge-info[href] { - background-color: #2d6987; -} - -.label-inverse, -.badge-inverse { - background-color: #333333; -} - -.label-inverse[href], -.badge-inverse[href] { - background-color: #1a1a1a; -} - -.btn .label, -.btn .badge { - position: relative; - top: -1px; -} - -.btn-mini .label, -.btn-mini .badge { - top: 0; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-ms-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress .bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - color: #ffffff; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(to bottom, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress .bar + .bar { - -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); -} - -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} - -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -ms-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-danger .bar, -.progress .bar-danger { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); -} - -.progress-danger.progress-striped .bar, -.progress-striped .bar-danger { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-success .bar, -.progress .bar-success { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(to bottom, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); -} - -.progress-success.progress-striped .bar, -.progress-striped .bar-success { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-info .bar, -.progress .bar-info { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(to bottom, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); -} - -.progress-info.progress-striped .bar, -.progress-striped .bar-info { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-warning .bar, -.progress .bar-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); -} - -.progress-warning.progress-striped .bar, -.progress-striped .bar-warning { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.accordion { - margin-bottom: 20px; -} - -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.accordion-heading { - border-bottom: 0; -} - -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} - -.accordion-toggle { - cursor: pointer; -} - -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} - -.carousel { - position: relative; - margin-bottom: 20px; - line-height: 1; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - -moz-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} - -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - line-height: 1; -} - -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} - -.carousel-inner > .active { - left: 0; -} - -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel-inner > .next { - left: 100%; -} - -.carousel-inner > .prev { - left: -100%; -} - -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} - -.carousel-inner > .active.left { - left: -100%; -} - -.carousel-inner > .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; - text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; - filter: alpha(opacity=50); -} - -.carousel-control.right { - right: 15px; - left: auto; -} - -.carousel-control:hover, -.carousel-control:focus { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.carousel-indicators { - position: absolute; - top: 15px; - right: 15px; - z-index: 5; - margin: 0; - list-style: none; -} - -.carousel-indicators li { - display: block; - float: left; - width: 10px; - height: 10px; - margin-left: 5px; - text-indent: -999px; - background-color: #ccc; - background-color: rgba(255, 255, 255, 0.25); - border-radius: 5px; -} - -.carousel-indicators .active { - background-color: #fff; -} - -.carousel-caption { - position: absolute; - right: 0; - bottom: 0; - left: 0; - padding: 15px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} - -.carousel-caption h4, -.carousel-caption p { - line-height: 20px; - color: #ffffff; -} - -.carousel-caption h4 { - margin: 0 0 5px; -} - -.carousel-caption p { - margin-bottom: 0; -} - -.hero-unit { - padding: 60px; - margin-bottom: 30px; - font-size: 18px; - font-weight: 200; - line-height: 30px; - color: inherit; - background-color: #eeeeee; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - letter-spacing: -1px; - color: inherit; -} - -.hero-unit li { - line-height: 30px; -} - -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.hide { - display: none; -} - -.show { - display: block; -} - -.invisible { - visibility: hidden; -} - -.affix { - position: fixed; -} diff --git a/src/pages/api-docs/bootstrap/css/bootstrap.min.css b/src/pages/api-docs/bootstrap/css/bootstrap.min.css deleted file mode 100644 index df96c86..0000000 --- a/src/pages/api-docs/bootstrap/css/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v2.3.2 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/src/pages/api-docs/bootstrap/img/glyphicons-halflings-white.png b/src/pages/api-docs/bootstrap/img/glyphicons-halflings-white.png deleted file mode 100644 index 3bf6484..0000000 Binary files a/src/pages/api-docs/bootstrap/img/glyphicons-halflings-white.png and /dev/null differ diff --git a/src/pages/api-docs/bootstrap/img/glyphicons-halflings.png b/src/pages/api-docs/bootstrap/img/glyphicons-halflings.png deleted file mode 100644 index a996999..0000000 Binary files a/src/pages/api-docs/bootstrap/img/glyphicons-halflings.png and /dev/null differ diff --git a/src/pages/api-docs/bootstrap/js/bootstrap-select.min.js b/src/pages/api-docs/bootstrap/js/bootstrap-select.min.js deleted file mode 100644 index 074e383..0000000 --- a/src/pages/api-docs/bootstrap/js/bootstrap-select.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Bootstrap-select v1.6.3 (http://silviomoreto.github.io/bootstrap-select/) - * - * Copyright 2013-2014 bootstrap-select - * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */ -!function(a){"use strict";function b(a,b){return a.toUpperCase().indexOf(b.toUpperCase())>-1}function c(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b.replace(this.re,this.ch)}),b}function d(a){var b={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},c="(?:"+Object.keys(b).join("|")+")",d=new RegExp(c),e=new RegExp(c,"g"),f=null==a?"":""+a;return d.test(f)?f.replace(e,function(a){return b[a]}):f}function e(b,c){var d=arguments,e=b,b=d[0],c=d[1];[].shift.apply(d),"undefined"==typeof b&&(b=e);var g,h=this.each(function(){var e=a(this);if(e.is("select")){var h=e.data("selectpicker"),i="object"==typeof b&&b;if(h){if(i)for(var j in i)i.hasOwnProperty(j)&&(h.options[j]=i[j])}else{var k=a.extend({},f.DEFAULTS,a.fn.selectpicker.defaults||{},e.data(),i);e.data("selectpicker",h=new f(this,k,c))}"string"==typeof b&&(g=h[b]instanceof Function?h[b].apply(h,d):h.options[b])}});return"undefined"!=typeof g?g:h}a.expr[":"].icontains=function(c,d,e){return b(a(c).text(),e[3])},a.expr[":"].aicontains=function(c,d,e){return b(a(c).data("normalizedText")||a(c).text(),e[3])};var f=function(b,c,d){d&&(d.stopPropagation(),d.preventDefault()),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.$lis=null,this.options=c,null===this.options.title&&(this.options.title=this.$element.attr("title")),this.val=f.prototype.val,this.render=f.prototype.render,this.refresh=f.prototype.refresh,this.setStyle=f.prototype.setStyle,this.selectAll=f.prototype.selectAll,this.deselectAll=f.prototype.deselectAll,this.destroy=f.prototype.remove,this.remove=f.prototype.remove,this.show=f.prototype.show,this.hide=f.prototype.hide,this.init()};f.VERSION="1.6.3",f.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results match",countSelectedText:function(a){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){var c=[];return c[0]=1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",c[1]=1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)",c},selectAllText:"Select All",deselectAllText:"Deselect All",multipleSeparator:", ",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,searchAccentInsensitive:!1},f.prototype={constructor:f,init:function(){var b=this,c=this.$element.attr("id");this.$element.hide(),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement),this.$menu=this.$newElement.find("> .dropdown-menu"),this.$button=this.$newElement.find("> button"),this.$searchbox=this.$newElement.find("input"),this.options.dropdownAlignRight&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.liHeight(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile()},createDropdown:function(){var b=this.multiple?" show-tick":"",c=this.$element.parent().hasClass("input-group")?" input-group-btn":"",d=this.autofocus?" autofocus":"",e=this.$element.parents().hasClass("form-group-lg")?" btn-lg":this.$element.parents().hasClass("form-group-sm")?" btn-sm":"",f=this.options.header?'
    '+this.options.header+"
    ":"",g=this.options.liveSearch?'':"",h=this.options.actionsBox?'
    ":"",i='
    ';return a(i)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul").append(b),a},reloadLi:function(){this.destroyLi();var a=this.createLi();this.$menu.find("ul").append(a)},destroyLi:function(){this.$menu.find("li").remove()},createLi:function(){var b=this,e=[],f=0,g=function(a,b,c){return""+a+""},h=function(a,e,f,g){var h=c(d(a));return''+a+''};return this.$element.find("option").each(function(){var c=a(this),d=c.attr("class")||"",i=c.attr("style"),j=c.data("content")?c.data("content"):c.html(),k="undefined"!=typeof c.data("subtext")?''+c.data("subtext")+"":"",l="undefined"!=typeof c.data("icon")?' ':"",m=c.is(":disabled")||c.parent().is(":disabled"),n=c[0].index;if(""!==l&&m&&(l=""+l+""),c.data("content")||(j=l+''+j+k+""),!b.options.hideDisabled||!m)if(c.parent().is("optgroup")&&c.data("divider")!==!0){if(0===c.index()){f+=1;var o=c.parent().attr("label"),p="undefined"!=typeof c.parent().data("subtext")?''+c.parent().data("subtext")+"":"",q=c.parent().data("icon")?' ':"";o=q+''+o+p+"",0!==n&&e.length>0&&e.push(g("",null,"divider")),e.push(g(o,null,"dropdown-header"))}e.push(g(h(j,"opt "+d,i,f),n))}else e.push(c.data("divider")===!0?g("",n,"divider"):c.data("hidden")===!0?g(h(j,d,i),n,"hide is-hidden"):g(h(j,d,i),n))}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),a(e.join(""))},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c=this;b!==!1&&this.$element.find("option").each(function(b){c.setDisabled(b,a(this).is(":disabled")||a(this).parent().is(":disabled")),c.setSelected(b,a(this).is(":selected"))}),this.tabIndex();var e=this.options.hideDisabled?":not([disabled])":"",f=this.$element.find("option:selected"+e).map(function(){var b,d=a(this),e=d.data("icon")&&c.options.showIcon?' ':"";return b=c.options.showSubtext&&d.attr("data-subtext")&&!c.multiple?' '+d.data("subtext")+"":"",d.data("content")&&c.options.showContent?d.data("content"):"undefined"!=typeof d.attr("title")?d.attr("title"):e+d.html()+b}).toArray(),g=this.multiple?f.join(this.options.multipleSeparator):f[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var h=this.options.selectedTextFormat.split(">");if(h.length>1&&f.length>h[1]||1==h.length&&f.length>=2){e=this.options.hideDisabled?", [disabled]":"";var i=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+e).length,j="function"==typeof this.options.countSelectedText?this.options.countSelectedText(f.length,i):this.options.countSelectedText;g=j.replace("{0}",f.length.toString()).replace("{1}",i.toString())}}this.options.title=this.$element.attr("title"),"static"==this.options.selectedTextFormat&&(g=this.options.title),g||(g="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",d(g)),this.$newElement.find(".filter-option").html(g)},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(){if(this.options.size!==!1){var a=this.$menu.parent().clone().find("> .dropdown-toggle").prop("autofocus",!1).end().appendTo("body"),b=a.addClass("open").find("> .dropdown-menu"),c=b.find("li").not(".divider").not(".dropdown-header").filter(":visible").children("a").outerHeight(),d=this.options.header?b.find(".popover-title").outerHeight():0,e=this.options.liveSearch?b.find(".bs-searchbox").outerHeight():0,f=this.options.actionsBox?b.find(".bs-actionsbox").outerHeight():0;a.remove(),this.$newElement.data("liHeight",c).data("headerHeight",d).data("searchHeight",e).data("actionsHeight",f)}},setSize:function(){this.findLis();var b,c,d,e=this,f=this.$menu,g=f.find(".inner"),h=this.$newElement.outerHeight(),i=this.$newElement.data("liHeight"),j=this.$newElement.data("headerHeight"),k=this.$newElement.data("searchHeight"),l=this.$newElement.data("actionsHeight"),m=this.$lis.filter(".divider").outerHeight(!0),n=parseInt(f.css("padding-top"))+parseInt(f.css("padding-bottom"))+parseInt(f.css("border-top-width"))+parseInt(f.css("border-bottom-width")),o=this.options.hideDisabled?", .disabled":"",p=a(window),q=n+parseInt(f.css("margin-top"))+parseInt(f.css("margin-bottom"))+2,r=function(){c=e.$newElement.offset().top-p.scrollTop(),d=p.height()-c-h};if(r(),this.options.header&&f.css("padding-top",0),"auto"==this.options.size){var s=function(){var a,h=e.$lis.not(".hide");r(),b=d-q,e.options.dropupAuto&&e.$newElement.toggleClass("dropup",c>d&&b-q3?3*i+q-2:0,f.css({"max-height":b+"px",overflow:"hidden","min-height":a+j+k+l+"px"}),g.css({"max-height":b-j-k-l-n+"px","overflow-y":"auto","min-height":Math.max(a-n,0)+"px"})};s(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",s),a(window).off("resize.getSize").on("resize.getSize",s),a(window).off("scroll.getSize").on("scroll.getSize",s)}else if(this.options.size&&"auto"!=this.options.size&&f.find("li"+o).length>this.options.size){var t=this.$lis.not(".divider"+o).find(" > *").slice(0,this.options.size).last().parent().index(),u=this.$lis.slice(0,t+1).filter(".divider").length;b=i*this.options.size+u*m+n,e.options.dropupAuto&&this.$newElement.toggleClass("dropup",c>d&&b .dropdown-menu").css("width"),c=a.css("width","auto").find("> button").css("width");a.remove(),this.$newElement.css("width",Math.max(parseInt(b),parseInt(c))+"px")}else"fit"==this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){var b,c,d=this,e="
    ",f=a(e),g=function(a){f.addClass(a.attr("class").replace(/form-control/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),c=a.hasClass("dropup")?0:a[0].offsetHeight,f.css({top:b.top+c,left:b.left,width:a[0].offsetWidth,position:"absolute"})};this.$newElement.on("click",function(){d.isDisabled()||(g(a(this)),f.appendTo(d.options.container),f.toggleClass("open",!a(this).hasClass("open")),f.append(d.$menu))}),a(window).resize(function(){g(d.$newElement)}),a(window).on("scroll",function(){g(d.$newElement)}),a("html").on("click",function(b){a(b.target).closest(d.$newElement).length<1&&f.removeClass("open")})},setSelected:function(a,b){this.findLis(),this.$lis.filter('[data-original-index="'+a+'"]').toggleClass("selected",b)},setDisabled:function(a,b){this.findLis(),b?this.$lis.filter('[data-original-index="'+a+'"]').addClass("disabled").find("a").attr("href","#").attr("tabindex",-1):this.$lis.filter('[data-original-index="'+a+'"]').removeClass("disabled").find("a").removeAttr("href").attr("tabindex",0)},isDisabled:function(){return this.$element.is(":disabled")},checkDisabled:function(){var a=this;this.isDisabled()?this.$button.addClass("disabled").attr("tabindex",-1):(this.$button.hasClass("disabled")&&this.$button.removeClass("disabled"),-1==this.$button.attr("tabindex")&&(this.$element.data("tabindex")||this.$button.removeAttr("tabindex"))),this.$button.click(function(){return!a.isDisabled()})},tabIndex:function(){this.$element.is("[tabindex]")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex")))},clickListener:function(){var b=this;this.$newElement.on("touchstart.dropdown",".dropdown-menu",function(a){a.stopPropagation()}),this.$newElement.on("click",function(){b.setSize(),b.options.liveSearch||b.multiple||setTimeout(function(){b.$menu.find(".selected a").focus()},10)}),this.$menu.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),f=b.$element.val(),g=b.$element.prop("selectedIndex");if(b.multiple&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var h=b.$element.find("option"),i=h.eq(e),j=i.prop("selected"),k=i.parent("optgroup"),l=b.options.maxOptions,m=k.data("maxOptions")||!1;if(b.multiple){if(i.prop("selected",!j),b.setSelected(e,!j),d.blur(),l!==!1||m!==!1){var n=l
    ');q[2]&&(r=r.replace("{var}",q[2][l>1?0:1]),s=s.replace("{var}",q[2][m>1?0:1])),i.prop("selected",!1),b.$menu.append(t),l&&n&&(t.append(a("
    "+r+"
    ")),b.$element.trigger("maxReached.bs.select")),m&&o&&(t.append(a("
    "+s+"
    ")),b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),t.delay(750).fadeOut(300,function(){a(this).remove()})}}}else h.prop("selected",!1),i.prop("selected",!0),b.$menu.find(".selected").removeClass("selected"),b.setSelected(e,!0);b.multiple?b.options.liveSearch&&b.$searchbox.focus():b.$button.focus(),(f!=b.$element.val()&&b.multiple||g!=b.$element.prop("selectedIndex")&&!b.multiple)&&b.$element.change()}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(a){a.target==this&&(a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus())}),this.$menu.on("click","li.divider, li.dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.focus()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).is(".bs-select-all")?b.selectAll():b.deselectAll(),b.$element.change()}),this.$element.change(function(){b.render(!1)})},liveSearchListener:function(){var b=this,e=a('
  • ');this.$newElement.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){b.$menu.find(".active").removeClass("active"),b.$searchbox.val()&&(b.$searchbox.val(""),b.$lis.not(".is-hidden").removeClass("hide"),e.parent().length&&e.remove()),b.multiple||b.$menu.find(".selected").addClass("active"),setTimeout(function(){b.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){b.$searchbox.val()?(b.options.searchAccentInsensitive?b.$lis.not(".is-hidden").removeClass("hide").find("a").not(":aicontains("+c(b.$searchbox.val())+")").parent().addClass("hide"):b.$lis.not(".is-hidden").removeClass("hide").find("a").not(":icontains("+b.$searchbox.val()+")").parent().addClass("hide"),b.$menu.find("li").filter(":visible:not(.no-results)").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(b.options.noneResultsText+' "'+d(b.$searchbox.val())+'"').show(),b.$menu.find("li").last().after(e))):(b.$lis.not(".is-hidden").removeClass("hide"),e.parent().length&&e.remove()),b.$menu.find("li.active").removeClass("active"),b.$menu.find("li").filter(":visible:not(.divider)").eq(0).addClass("active").find("a").focus(),a(this).focus()})},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},selectAll:function(){this.findLis(),this.$lis.not(".divider").not(".disabled").not(".selected").filter(":visible").find("a").click()},deselectAll:function(){this.findLis(),this.$lis.not(".divider").not(".disabled").filter(".selected").filter(":visible").find("a").click()},keydown:function(b){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a("[role=menu] li a",n),l=o.$menu.parent().hasClass("open"),!l&&/([0-9]|[A-z])/.test(String.fromCharCode(b.keyCode))&&(o.options.container?o.$newElement.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),o.$searchbox.focus()),o.options.liveSearch&&(/(^9$|27)/.test(b.keyCode.toString(10))&&l&&0===o.$menu.find(".active").length&&(b.preventDefault(),o.$menu.parent().removeClass("open"),o.$button.focus()),d=a("[role=menu] li:not(.divider):not(.dropdown-header):visible",n),m.val()||/(38|40)/.test(b.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$newElement.find("li").filter(o.options.searchAccentInsensitive?":aicontains("+c(p[b.keyCode])+")":":icontains("+p[b.keyCode]+")"))),d.length){if(/(38|40)/.test(b.keyCode.toString(10)))e=d.index(d.filter(":focus")),g=d.parent(":not(.disabled):visible").first().index(),h=d.parent(":not(.disabled):visible").last().index(),f=d.eq(e).parent().nextAll(":not(.disabled):visible").eq(0).index(),i=d.eq(e).parent().prevAll(":not(.disabled):visible").eq(0).index(),j=d.eq(f).parent().prevAll(":not(.disabled):visible").eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).is(":not(.disabled)")&&a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.filter(":not(.disabled):visible").first().data("index"),h=d.filter(":not(.disabled):visible").last().data("index"),f=d.eq(e).nextAll(":not(.disabled):visible").eq(0).data("index"),i=d.eq(e).prevAll(":not(.disabled):visible").eq(0).data("index"),j=d.eq(f).prevAll(":not(.disabled):visible").eq(0).data("index")),k=m.data("prevIndex"),38==b.keyCode&&(o.options.liveSearch&&(e-=1),e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)),40==b.keyCode&&(o.options.liveSearch&&(e+=1),-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(b.preventDefault(),m.is(".dropdown-toggle")||(d.removeClass("active"),d.eq(e).addClass("active").find("a").focus(),m.focus())):d.eq(e).focus();else if(!m.is("input")){var q,r,s=[];d.each(function(){a(this).parent().is(":not(.disabled)")&&a.trim(a(this).text().toLowerCase()).substring(0,1)==p[b.keyCode]&&s.push(a(this).parent().index())}),q=a(document).data("keycount"),q++,a(document).data("keycount",q),r=a.trim(a(":focus").text().toLowerCase()).substring(0,1),r!=p[b.keyCode]?(q=1,a(document).data("keycount",q)):q>=s.length&&(a(document).data("keycount",0),q>s.length&&(q=1)),d.eq(s[q-1]).focus()}(/(13|32)/.test(b.keyCode.toString(10))||/(^9$)/.test(b.keyCode.toString(10))&&o.options.selectOnTab)&&l&&(/(32)/.test(b.keyCode.toString(10))||b.preventDefault(),o.options.liveSearch?/(32)/.test(b.keyCode.toString(10))||(o.$menu.find(".active a").click(),m.focus()):a(":focus").click(),a(document).data("keycount",0)),(/(^9$|27)/.test(b.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(b.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device").appendTo(this.$newElement),this.options.container&&this.$menu.hide()},refresh:function(){this.$lis=null,this.reloadLi(),this.render(),this.setWidth(),this.setStyle(),this.checkDisabled(),this.liHeight()},update:function(){this.reloadLi(),this.setWidth(),this.setStyle(),this.checkDisabled(),this.liHeight()},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()}};var g=a.fn.selectpicker;a.fn.selectpicker=e,a.fn.selectpicker.Constructor=f,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=g,this},a(document).data("keycount",0).on("keydown",".bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=menu], .bs-searchbox input",f.prototype.keydown).on("focusin.modal",".bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=menu], .bs-searchbox input",function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);e.call(b,b.data())})})}(jQuery); -//# sourceMappingURL=bootstrap-select.js.map \ No newline at end of file diff --git a/src/pages/api-docs/bootstrap/js/bootstrap.js b/src/pages/api-docs/bootstrap/js/bootstrap.js deleted file mode 100644 index 44109f6..0000000 --- a/src/pages/api-docs/bootstrap/js/bootstrap.js +++ /dev/null @@ -1,2280 +0,0 @@ -/* =================================================== - * bootstrap-transition.js v2.3.2 - * http://getbootstrap.com/2.3.2/javascript.html#transitions - * =================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) - * ======================================================= */ - - $(function () { - - $.support.transition = (function () { - - var transitionEnd = (function () { - - var el = document.createElement('bootstrap') - , transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd otransitionend' - , 'transition' : 'transitionend' - } - , name - - for (name in transEndEventNames){ - if (el.style[name] !== undefined) { - return transEndEventNames[name] - } - } - - }()) - - return transitionEnd && { - end: transitionEnd - } - - })() - - }) - -}(window.jQuery);/* ========================================================== - * bootstrap-alert.js v2.3.2 - * http://getbootstrap.com/2.3.2/javascript.html#alerts - * ========================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* ALERT CLASS DEFINITION - * ====================== */ - - var dismiss = '[data-dismiss="alert"]' - , Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype.close = function (e) { - var $this = $(this) - , selector = $this.attr('data-target') - , $parent - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - - e && e.preventDefault() - - $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) - - $parent.trigger(e = $.Event('close')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent - .trigger('closed') - .remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent.on($.support.transition.end, removeElement) : - removeElement() - } - - - /* ALERT PLUGIN DEFINITION - * ======================= */ - - var old = $.fn.alert - - $.fn.alert = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('alert') - if (!data) $this.data('alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - /* ALERT NO CONFLICT - * ================= */ - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - /* ALERT DATA-API - * ============== */ - - $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) - -}(window.jQuery);/* ============================================================ - * bootstrap-button.js v2.3.2 - * http://getbootstrap.com/2.3.2/javascript.html#buttons - * ============================================================ - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* BUTTON PUBLIC CLASS DEFINITION - * ============================== */ - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.button.defaults, options) - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - , $el = this.$element - , data = $el.data() - , val = $el.is('input') ? 'val' : 'html' - - state = state + 'Text' - data.resetText || $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d) - }, 0) - } - - Button.prototype.toggle = function () { - var $parent = this.$element.closest('[data-toggle="buttons-radio"]') - - $parent && $parent - .find('.active') - .removeClass('active') - - this.$element.toggleClass('active') - } - - - /* BUTTON PLUGIN DEFINITION - * ======================== */ - - var old = $.fn.button - - $.fn.button = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('button') - , options = typeof option == 'object' && option - if (!data) $this.data('button', (data = new Button(this, options))) - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.defaults = { - loadingText: 'loading...' - } - - $.fn.button.Constructor = Button - - - /* BUTTON NO CONFLICT - * ================== */ - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - /* BUTTON DATA-API - * =============== */ - - $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - }) - -}(window.jQuery);/* ========================================================== - * bootstrap-carousel.js v2.3.2 - * http://getbootstrap.com/2.3.2/javascript.html#carousel - * ========================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* CAROUSEL CLASS DEFINITION - * ========================= */ - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.prototype = { - - cycle: function (e) { - if (!e) this.paused = false - if (this.interval) clearInterval(this.interval); - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - return this - } - - , getActiveIndex: function () { - this.$active = this.$element.find('.item.active') - this.$items = this.$active.parent().children() - return this.$items.index(this.$active) - } - - , to: function (pos) { - var activeIndex = this.getActiveIndex() - , that = this - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) { - return this.$element.one('slid', function () { - that.to(pos) - }) - } - - if (activeIndex == pos) { - return this.pause().cycle() - } - - return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) - } - - , pause: function (e) { - if (!e) this.paused = true - if (this.$element.find('.next, .prev').length && $.support.transition.end) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - clearInterval(this.interval) - this.interval = null - return this - } - - , next: function () { - if (this.sliding) return - return this.slide('next') - } - - , prev: function () { - if (this.sliding) return - return this.slide('prev') - } - - , slide: function (type, next) { - var $active = this.$element.find('.item.active') - , $next = next || $active[type]() - , isCycling = this.interval - , direction = type == 'next' ? 'left' : 'right' - , fallback = type == 'next' ? 'first' : 'last' - , that = this - , e - - this.sliding = true - - isCycling && this.pause() - - $next = $next.length ? $next : this.$element.find('.item')[fallback]() - - e = $.Event('slide', { - relatedTarget: $next[0] - , direction: direction - }) - - if ($next.hasClass('active')) return - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - this.$element.one('slid', function () { - var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) - $nextIndicator && $nextIndicator.addClass('active') - }) - } - - if ($.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - this.$element.one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid') }, 0) - }) - } else { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid') - } - - isCycling && this.cycle() - - return this - } - - } - - - /* CAROUSEL PLUGIN DEFINITION - * ========================== */ - - var old = $.fn.carousel - - $.fn.carousel = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('carousel') - , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) - , action = typeof option == 'string' ? option : options.slide - if (!data) $this.data('carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - $.fn.carousel.defaults = { - interval: 5000 - , pause: 'hover' - } - - $.fn.carousel.Constructor = Carousel - - - /* CAROUSEL NO CONFLICT - * ==================== */ - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - /* CAROUSEL DATA-API - * ================= */ - - $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { - var $this = $(this), href - , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - , options = $.extend({}, $target.data(), $this.data()) - , slideIndex - - $target.carousel(options) - - if (slideIndex = $this.attr('data-slide-to')) { - $target.data('carousel').pause().to(slideIndex).cycle() - } - - e.preventDefault() - }) - -}(window.jQuery);/* ============================================================= - * bootstrap-collapse.js v2.3.2 - * http://getbootstrap.com/2.3.2/javascript.html#collapse - * ============================================================= - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* COLLAPSE PUBLIC CLASS DEFINITION - * ================================ */ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.collapse.defaults, options) - - if (this.options.parent) { - this.$parent = $(this.options.parent) - } - - this.options.toggle && this.toggle() - } - - Collapse.prototype = { - - constructor: Collapse - - , dimension: function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - , show: function () { - var dimension - , scroll - , actives - , hasData - - if (this.transitioning || this.$element.hasClass('in')) return - - dimension = this.dimension() - scroll = $.camelCase(['scroll', dimension].join('-')) - actives = this.$parent && this.$parent.find('> .accordion-group > .in') - - if (actives && actives.length) { - hasData = actives.data('collapse') - if (hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data('collapse', null) - } - - this.$element[dimension](0) - this.transition('addClass', $.Event('show'), 'shown') - $.support.transition && this.$element[dimension](this.$element[0][scroll]) - } - - , hide: function () { - var dimension - if (this.transitioning || !this.$element.hasClass('in')) return - dimension = this.dimension() - this.reset(this.$element[dimension]()) - this.transition('removeClass', $.Event('hide'), 'hidden') - this.$element[dimension](0) - } - - , reset: function (size) { - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - [dimension](size || 'auto') - [0].offsetWidth - - this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') - - return this - } - - , transition: function (method, startEvent, completeEvent) { - var that = this - , complete = function () { - if (startEvent.type == 'show') that.reset() - that.transitioning = 0 - that.$element.trigger(completeEvent) - } - - this.$element.trigger(startEvent) - - if (startEvent.isDefaultPrevented()) return - - this.transitioning = 1 - - this.$element[method]('in') - - $.support.transition && this.$element.hasClass('collapse') ? - this.$element.one($.support.transition.end, complete) : - complete() - } - - , toggle: function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - } - - - /* COLLAPSE PLUGIN DEFINITION - * ========================== */ - - var old = $.fn.collapse - - $.fn.collapse = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('collapse') - , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) - if (!data) $this.data('collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.defaults = { - toggle: true - } - - $.fn.collapse.Constructor = Collapse - - - /* COLLAPSE NO CONFLICT - * ==================== */ - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - /* COLLAPSE DATA-API - * ================= */ - - $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { - var $this = $(this), href - , target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - , option = $(target).data('collapse') ? 'toggle' : $this.data() - $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') - $(target).collapse(option) - }) - -}(window.jQuery);/* ============================================================ - * bootstrap-dropdown.js v2.3.2 - * http://getbootstrap.com/2.3.2/javascript.html#dropdowns - * ============================================================ - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* DROPDOWN CLASS DEFINITION - * ========================= */ - - var toggle = '[data-toggle=dropdown]' - , Dropdown = function (element) { - var $el = $(element).on('click.dropdown.data-api', this.toggle) - $('html').on('click.dropdown.data-api', function () { - $el.parent().removeClass('open') - }) - } - - Dropdown.prototype = { - - constructor: Dropdown - - , toggle: function (e) { - var $this = $(this) - , $parent - , isActive - - if ($this.is('.disabled, :disabled')) return - - $parent = getParent($this) - - isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement) { - // if mobile we we use a backdrop because click events don't delegate - $('