wunderbar 1.0.28 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/lib/wunderbar/asset.rb +56 -28
- data/lib/wunderbar/builder.rb +1 -1
- data/lib/wunderbar/react.rb +16 -9
- data/lib/wunderbar/vendor/bootstrap-theme.min.css +2 -2
- data/lib/wunderbar/vendor/bootstrap.min.css +3 -3
- data/lib/wunderbar/vendor/bootstrap.min.js +4 -4
- data/lib/wunderbar/vendor/eventsource.min.js +1 -1
- data/lib/wunderbar/vendor/jquery-3.2.1.min.js +4 -0
- data/lib/wunderbar/vendor/marked.min.js +1 -1
- data/lib/wunderbar/vendor/react-dom-server.min.js +15 -0
- data/lib/wunderbar/vendor/react-dom.min.js +7 -3
- data/lib/wunderbar/vendor/react-with-addons.min.js +4 -7
- data/lib/wunderbar/vendor/stupidtable.min.js +4 -1
- data/lib/wunderbar/vendor/underscore-min.js +3 -3
- data/lib/wunderbar/version.rb +2 -2
- data/wunderbar.gemspec +18 -18
- metadata +5 -4
- data/lib/wunderbar/vendor/jquery-1.11.2.min.js +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21f4fc73d344e0d9a2f46e7b8d72e5e3f1ad60e1
|
4
|
+
data.tar.gz: 12fe5533a03fb8b6897d9d26866fbc47bdd6236c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 158b9348e3db779c9d2e0f36e4f386acb75c53b4d11b93e958915d94d8f5010a28942553a99d9ab9cba26086b907cdf4ddab882bcf798769f7e8394a0566783e
|
7
|
+
data.tar.gz: 0b4e52358e753ced888f0736cc2895c9a7b5a8f573c887af900ff401fd2929fc50699fbef29f94ec86d7c8942a335bb18952d50bd7ac4f625f4a88855e9f6f4d
|
data/README.md
CHANGED
@@ -191,7 +191,8 @@ as instance variables (e.g., `@name`). Host environment (CGI, Rack, Sinatra)
|
|
191
191
|
values are accessible as methods of the `_` object: for example `_.headers`
|
192
192
|
(CGI), `_.set_cookie` (Rack), `_.redirect` (Sinatra).
|
193
193
|
|
194
|
-
To append to the output produced, use the `_` methods described below.
|
194
|
+
To append to the output produced, use the `_` methods described below.
|
195
|
+
Example applications are in the [tutorial](docs/README.md).
|
195
196
|
|
196
197
|
Methods provided to Wunderbar.html
|
197
198
|
---
|
@@ -401,7 +402,7 @@ Also, the following environment variables are set if they aren't already:
|
|
401
402
|
|
402
403
|
Finally, the default external and internal encodings are set to UTF-8.
|
403
404
|
|
404
|
-
Logging
|
405
|
+
Logging
|
405
406
|
---
|
406
407
|
* `_.debug`: debug messages
|
407
408
|
* `_.info`: informational messages
|
@@ -426,7 +427,7 @@ Additionally, the following options are supported:
|
|
426
427
|
* `--install=`path: produce an suexec-callable wrapper script
|
427
428
|
* `--rescue` or `--backtrace` cause wrapper script to capture errors
|
428
429
|
|
429
|
-
Optional dependencies
|
430
|
+
Optional dependencies
|
430
431
|
---
|
431
432
|
|
432
433
|
The following gems are needed based on what functions you use:
|
@@ -452,7 +453,7 @@ The following gems, if installed, will produce cleaner and prettier output:
|
|
452
453
|
* `escape` prettier quoting of `system` commands
|
453
454
|
* `sanitize` will remove unsafe markup from tainted input
|
454
455
|
|
455
|
-
Related efforts
|
456
|
+
Related efforts
|
456
457
|
---
|
457
458
|
* [Builder](https://github.com/jimweirich/builder#readme)
|
458
459
|
* [JBuilder](https://github.com/rails/jbuilder)
|
data/lib/wunderbar/asset.rb
CHANGED
@@ -26,7 +26,52 @@ module Wunderbar
|
|
26
26
|
end
|
27
27
|
|
28
28
|
# asset file location
|
29
|
-
|
29
|
+
def path
|
30
|
+
return @path if @path or @contents
|
31
|
+
|
32
|
+
if @options[:name]
|
33
|
+
source = (@options[:file] || __FILE__).untaint
|
34
|
+
@mtime = File.mtime(source)
|
35
|
+
@path = @options[:name]
|
36
|
+
|
37
|
+
# look for asset in site
|
38
|
+
if ENV['DOCUMENT_ROOT']
|
39
|
+
root = File.join(ENV['DOCUMENT_ROOT'], 'assets').untaint
|
40
|
+
dest = File.expand_path(@path, root).untaint
|
41
|
+
if
|
42
|
+
File.exist?(dest) and File.mtime(dest) >= @mtime and
|
43
|
+
File.size(dest) == File.size(source)
|
44
|
+
then
|
45
|
+
@path = "/assets/#{@path}"
|
46
|
+
return @path
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# look for asset in app
|
51
|
+
dest = File.expand_path(@path, Asset.root).untaint
|
52
|
+
if
|
53
|
+
File.exist?(dest) and File.mtime(dest) >= @mtime and
|
54
|
+
File.size(dest) == File.size(source)
|
55
|
+
then
|
56
|
+
return @path
|
57
|
+
end
|
58
|
+
|
59
|
+
# try to make one
|
60
|
+
begin
|
61
|
+
FileUtils.mkdir_p File.dirname(dest)
|
62
|
+
if @options[:file]
|
63
|
+
FileUtils.cp source, dest, :preserve => true
|
64
|
+
else
|
65
|
+
open(dest, 'w') {|file| file.write @contents}
|
66
|
+
end
|
67
|
+
rescue
|
68
|
+
@path = nil unless Asset.virtual
|
69
|
+
@contents ||= File.read(source)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
@path
|
74
|
+
end
|
30
75
|
|
31
76
|
# asset contents
|
32
77
|
attr_reader :contents
|
@@ -72,30 +117,10 @@ module Wunderbar
|
|
72
117
|
# :contents => contents of the asset
|
73
118
|
def initialize(options)
|
74
119
|
@options = options
|
75
|
-
source = options[:file] || __FILE__
|
76
120
|
@contents = options[:contents]
|
121
|
+
@path = nil
|
77
122
|
|
78
|
-
options[:name] ||= File.basename(options[:file])
|
79
|
-
|
80
|
-
if options[:name]
|
81
|
-
@mtime = File.mtime(source)
|
82
|
-
@path = options[:name]
|
83
|
-
dest = File.expand_path(@path, Asset.root)
|
84
|
-
|
85
|
-
if not File.exist?(dest) or File.mtime(dest) < @mtime
|
86
|
-
begin
|
87
|
-
FileUtils.mkdir_p File.dirname(dest)
|
88
|
-
if options[:file]
|
89
|
-
FileUtils.cp source, dest, :preserve => true
|
90
|
-
else
|
91
|
-
open(dest, 'w') {|file| file.write @contents}
|
92
|
-
end
|
93
|
-
rescue
|
94
|
-
@path = nil unless Asset.virtual
|
95
|
-
@contents ||= File.read(source)
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
123
|
+
options[:name] ||= File.basename(options[:file])
|
99
124
|
end
|
100
125
|
|
101
126
|
def self.script(options)
|
@@ -111,7 +136,7 @@ module Wunderbar
|
|
111
136
|
end
|
112
137
|
|
113
138
|
def self.declarations(root, prefix)
|
114
|
-
|
139
|
+
base = prefix.to_s + Asset.path
|
115
140
|
|
116
141
|
unless @@scripts.empty?
|
117
142
|
before = root.at('script')
|
@@ -124,8 +149,9 @@ module Wunderbar
|
|
124
149
|
nodes = []
|
125
150
|
@@scripts.each do |script|
|
126
151
|
if script.path
|
127
|
-
|
128
|
-
|
152
|
+
path = script.path
|
153
|
+
path = "#{base}/#{path}" unless path.start_with? '/'
|
154
|
+
nodes << Node.new(:script, src: "#{path}?#{script.mtime.to_i}")
|
129
155
|
elsif script.contents
|
130
156
|
nodes << ScriptNode.new(:script, script.contents)
|
131
157
|
end
|
@@ -133,7 +159,7 @@ module Wunderbar
|
|
133
159
|
|
134
160
|
nodes.each {|node| node.parent = parent}
|
135
161
|
index = parent.children.index(before) || -1
|
136
|
-
parent.children.insert(index, *nodes)
|
162
|
+
parent.children.insert(index, *nodes)
|
137
163
|
end
|
138
164
|
|
139
165
|
unless @@stylesheets.empty?
|
@@ -147,8 +173,10 @@ module Wunderbar
|
|
147
173
|
nodes = []
|
148
174
|
@@stylesheets.each do |stylesheet|
|
149
175
|
if stylesheet.path
|
176
|
+
path = stylesheet.path
|
177
|
+
path = "#{base}/#{path}" unless path.start_with? '/'
|
150
178
|
nodes << Node.new(:link, rel: "stylesheet", type: "text/css",
|
151
|
-
href: "#{path}
|
179
|
+
href: "#{path}?#{stylesheet.mtime.to_i}")
|
152
180
|
elsif stylesheet.contents
|
153
181
|
nodes << StyleNode.new(:style, stylesheet.contents)
|
154
182
|
end
|
data/lib/wunderbar/builder.rb
CHANGED
data/lib/wunderbar/react.rb
CHANGED
@@ -11,9 +11,12 @@ require 'execjs'
|
|
11
11
|
require 'nokogumbo'
|
12
12
|
|
13
13
|
react = File.expand_path('../vendor/react-with-addons.min.js', __FILE__)
|
14
|
-
|
15
14
|
Wunderbar::Asset.script name: 'react-min.js', file: react, react: true
|
16
15
|
|
16
|
+
reactdom = File.expand_path('../vendor/react-dom.min.js', __FILE__)
|
17
|
+
Wunderbar::Asset.script name: 'react-dom.min.js', file: reactdom, react: true,
|
18
|
+
server: File.expand_path('../vendor/react-dom-server.min.js', __FILE__)
|
19
|
+
|
17
20
|
class Wunderbar::Asset
|
18
21
|
@@cached_scripts = {}
|
19
22
|
def self.convert(file)
|
@@ -39,7 +42,7 @@ class Wunderbar::XmlMarkup
|
|
39
42
|
# compute base
|
40
43
|
base = root.at('base')
|
41
44
|
base = base && base.attrs[:href]
|
42
|
-
base ||=
|
45
|
+
base ||= @_scope.env['REQUEST_URI'][/.*\//]
|
43
46
|
|
44
47
|
_base = @_scope.env['HTTP_X_WUNDERBAR_BASE']
|
45
48
|
base = base[_base.length..-1] if _base and base.start_with? _base
|
@@ -70,8 +73,8 @@ class Wunderbar::XmlMarkup
|
|
70
73
|
|
71
74
|
# build client and server scripts
|
72
75
|
common = Ruby2JS.convert(block, scope: @_scope, react: true)
|
73
|
-
server = "
|
74
|
-
client = "
|
76
|
+
server = "ReactDOMServer.renderToString(#{common})"
|
77
|
+
client = "ReactDOM.render(#{common}, #{element})"
|
75
78
|
|
76
79
|
# extract content of scripts
|
77
80
|
scripts.map! do |script|
|
@@ -110,8 +113,12 @@ class Wunderbar::XmlMarkup
|
|
110
113
|
if script.contents
|
111
114
|
scripts.unshift script.contents
|
112
115
|
elsif script.path
|
113
|
-
|
114
|
-
|
116
|
+
if script.path.start_with? '/'
|
117
|
+
path = (ENV['DOCUMENT_ROOT'] + script.path).untaint
|
118
|
+
else
|
119
|
+
path = File.expand_path(script.path, Wunderbar::Asset.root)
|
120
|
+
end
|
121
|
+
setup << File.read(script.options[:server] || path)
|
115
122
|
end
|
116
123
|
end
|
117
124
|
|
@@ -143,7 +150,7 @@ class Ruby2JS::Serializer
|
|
143
150
|
end
|
144
151
|
end
|
145
152
|
|
146
|
-
get %r{
|
153
|
+
get %r{/([-\w]+)\.js} do |script|
|
147
154
|
file = File.join(settings.views, "#{script}.js.rb")
|
148
155
|
begin
|
149
156
|
js = Wunderbar::Asset.convert(file)
|
@@ -162,13 +169,13 @@ get %r{^/([-\w]+)\.js$} do |script|
|
|
162
169
|
js.to_s
|
163
170
|
end
|
164
171
|
|
165
|
-
get %r{
|
172
|
+
get %r{/((?:\w+\/)*[-\w]+)\.js.rb} do |script|
|
166
173
|
file = File.join(settings.views, "#{script}.js.rb")
|
167
174
|
pass unless File.exist? file
|
168
175
|
send_file file
|
169
176
|
end
|
170
177
|
|
171
|
-
get %r{
|
178
|
+
get %r{/([-\w]+)\.js.map} do |script|
|
172
179
|
file = File.join(settings.views, "#{script}.js.rb")
|
173
180
|
js = Wunderbar::Asset.convert(file)
|
174
181
|
pass unless js
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap v3.3.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
3
|
+
* Copyright 2011-2016 Twitter, Inc.
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5
5
|
*/.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
|
6
6
|
/*# sourceMappingURL=bootstrap-theme.min.css.map */
|