wunderbar 1.0.28 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 */
|