bpm 1.0.0.beta.4 → 1.0.0.beta.5
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.
- data/CHANGELOG.md +11 -0
- data/TODO.md +4 -10
- data/backbone/LICENSE +22 -0
- data/backbone/README +25 -0
- data/backbone/Rakefile +42 -0
- data/backbone/backbone-0.5.1.bpkg +0 -0
- data/backbone/examples/backbone-localstorage.js +84 -0
- data/backbone/examples/todos/destroy.png +0 -0
- data/backbone/examples/todos/index.html +87 -0
- data/backbone/examples/todos/todos.css +311 -0
- data/backbone/examples/todos/todos.js +258 -0
- data/backbone/index.html +2606 -0
- data/backbone/index.js +1 -0
- data/backbone/lib/backbone.js +1149 -0
- data/backbone/lib/index.js +1 -0
- data/backbone/package.json +14 -0
- data/backbone/test/collection.js +345 -0
- data/backbone/test/events.js +70 -0
- data/backbone/test/model.coffee +43 -0
- data/backbone/test/model.js +424 -0
- data/backbone/test/noconflict.js +12 -0
- data/backbone/test/router.js +116 -0
- data/backbone/test/speed.js +45 -0
- data/backbone/test/sync.js +133 -0
- data/backbone/test/test-zepto.html +30 -0
- data/backbone/test/test.html +31 -0
- data/backbone/test/vendor/jquery-1.5.js +8176 -0
- data/backbone/test/vendor/jslitmus.js +649 -0
- data/backbone/test/vendor/json2.js +481 -0
- data/backbone/test/vendor/qunit.css +196 -0
- data/backbone/test/vendor/qunit.js +1364 -0
- data/backbone/test/vendor/underscore-1.1.6.js +807 -0
- data/backbone/test/vendor/zepto-0.6.js +692 -0
- data/backbone/test/view.js +137 -0
- data/lib/bpm/cli/base.rb +22 -7
- data/lib/bpm/package.rb +17 -5
- data/lib/bpm/project.rb +49 -32
- data/lib/bpm/version.rb +1 -1
- data/spec/cli/add_spec.rb +22 -4
- data/spec/cli/fetch_spec.rb +0 -1
- data/spec/cli/init_spec.rb +25 -10
- data/spec/cli/list_spec.rb +103 -62
- data/spec/cli/pack_spec.rb +36 -4
- data/spec/fixtures/packages/backbone/LICENSE +22 -0
- data/spec/fixtures/packages/backbone/README +25 -0
- data/spec/fixtures/packages/backbone/Rakefile +42 -0
- data/spec/fixtures/packages/backbone/examples/backbone-localstorage.js +84 -0
- data/spec/fixtures/packages/backbone/examples/todos/destroy.png +0 -0
- data/spec/fixtures/packages/backbone/examples/todos/index.html +87 -0
- data/spec/fixtures/packages/backbone/examples/todos/todos.css +311 -0
- data/spec/fixtures/packages/backbone/examples/todos/todos.js +258 -0
- data/spec/fixtures/packages/backbone/index.html +2606 -0
- data/spec/fixtures/packages/backbone/lib/backbone.js +1149 -0
- data/spec/fixtures/packages/backbone/lib/index.js +1 -0
- data/spec/fixtures/packages/backbone/package.json +14 -0
- data/spec/fixtures/packages/backbone/test/collection.js +345 -0
- data/spec/fixtures/packages/backbone/test/events.js +70 -0
- data/spec/fixtures/packages/backbone/test/model.coffee +43 -0
- data/spec/fixtures/packages/backbone/test/model.js +424 -0
- data/spec/fixtures/packages/backbone/test/noconflict.js +12 -0
- data/spec/fixtures/packages/backbone/test/router.js +116 -0
- data/spec/fixtures/packages/backbone/test/speed.js +45 -0
- data/spec/fixtures/packages/backbone/test/sync.js +133 -0
- data/spec/fixtures/packages/backbone/test/test-zepto.html +30 -0
- data/spec/fixtures/packages/backbone/test/test.html +31 -0
- data/spec/fixtures/packages/backbone/test/vendor/jquery-1.5.js +8176 -0
- data/spec/fixtures/packages/backbone/test/vendor/jslitmus.js +649 -0
- data/spec/fixtures/packages/backbone/test/vendor/json2.js +481 -0
- data/spec/fixtures/packages/backbone/test/vendor/qunit.css +196 -0
- data/spec/fixtures/packages/backbone/test/vendor/qunit.js +1364 -0
- data/spec/fixtures/packages/backbone/test/vendor/underscore-1.1.6.js +807 -0
- data/spec/fixtures/packages/backbone/test/vendor/zepto-0.6.js +692 -0
- data/spec/fixtures/packages/backbone/test/view.js +137 -0
- data/spec/fixtures/projects/init_app/assets/bpm_libs.js +1 -1
- data/spec/fixtures/projects/init_app/assets/bpm_styles.css +1 -1
- data/spec/fixtures/projects/init_app/new_project.json +1 -10
- data/spec/pipeline_spec.rb +5 -5
- data/spec/plugins/minifier_spec.rb +1 -1
- data/spec/plugins/transport_spec.rb +1 -1
- metadata +116 -28
- data/spec/fixtures/projects/init_app/assets/new_project/bpm_libs.js +0 -6
- data/spec/fixtures/projects/init_app/assets/new_project/bpm_styles.css +0 -5
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
|
2
|
+
* bpm list now shows local dependencies by default. Use bpm list --remote
|
3
|
+
to get remote.
|
4
|
+
* better compatibility with npm - "summary" field is optional and "url" is
|
5
|
+
mapped to "homepage"
|
6
|
+
* fixed some failing unit tests
|
7
|
+
* you can now place other projects into a vendor directory and have their
|
8
|
+
packages appear in the local package. This is useful if you want to
|
9
|
+
import another project which holds multiple packages for development.
|
10
|
+
|
11
|
+
# 1.0.0.beta.4
|
12
|
+
|
2
13
|
* Fixed issue with compile that would cause exceptions if you deleted the
|
3
14
|
global .bpm directory
|
4
15
|
* BPM now complains if you load a package whose directory name does not
|
data/TODO.md
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
|
2
|
-
* you should be able to place other projects into a vendor directory and
|
3
|
-
have their packages appear.
|
4
|
-
|
5
2
|
* Multiple format support. Format processors supplied by dependencies should
|
6
3
|
be used to resolve formats.
|
7
4
|
|
@@ -13,15 +10,14 @@
|
|
13
10
|
|
14
11
|
* HTML files should be able to process as templates using a template plugin
|
15
12
|
|
16
|
-
* Should log clearly when fetching from remotes
|
17
|
-
|
18
13
|
* Can we use YAML instead of JSON?
|
19
14
|
|
20
15
|
* Changing a dependency in a package.json should rebuild all files in preview mode (in case the transport was modified)
|
21
16
|
|
22
|
-
*
|
17
|
+
* make work with JS that is placed at the root of the package. (i.e. lib = .)
|
18
|
+
|
19
|
+
* figure out why requiring LibGems takes so long; really slows down launch
|
23
20
|
|
24
|
-
* "directories" should be optional in package.json - we can infer it.
|
25
21
|
|
26
22
|
----------------
|
27
23
|
|
@@ -51,11 +47,9 @@
|
|
51
47
|
# also we could publish a rails plugin that bakes in to
|
52
48
|
# rails app
|
53
49
|
|
54
|
-
bpm
|
50
|
+
bpm rebuild # generates a built app when you are ready to go to prod
|
55
51
|
# maybe should build the entire thing into a different
|
56
52
|
# loc?
|
57
|
-
|
58
|
-
bpm update # invoke if you modify the bpm.json to update settings
|
59
53
|
|
60
54
|
## User working with unit tests in their app
|
61
55
|
|
data/backbone/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2010 Jeremy Ashkenas, DocumentCloud
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/backbone/README
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
____ _ _ _
|
2
|
+
| _ \ | | | | (_)
|
3
|
+
| |_) | __ _ ___| | __| |__ ___ _ __ ___ _ ___
|
4
|
+
| _ < / _` |/ __| |/ /| '_ \ / _ \| '_ \ / _ \ | / __|
|
5
|
+
| |_) | (_| | (__| < | |_) | (_) | | | | __/_| \__ \
|
6
|
+
|____/ \__,_|\___|_|\_\|_.__/ \___/|_| |_|\___(_) |___/
|
7
|
+
_/ |
|
8
|
+
|__/
|
9
|
+
(_'___________________________________________________'_)
|
10
|
+
(_.———————————————————————————————————————————————————._)
|
11
|
+
|
12
|
+
|
13
|
+
Backbone supplies structure to JavaScript-heavy applications by providing models key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing application over a RESTful JSON interface.
|
14
|
+
|
15
|
+
For Docs, License, Tests, and pre-packed downloads, see:
|
16
|
+
http://documentcloud.github.com/backbone/
|
17
|
+
|
18
|
+
To suggest a feature, report a bug, or general discussion:
|
19
|
+
http://github.com/documentcloud/backbone/issues/
|
20
|
+
|
21
|
+
All contributors are listed here:
|
22
|
+
http://github.com/documentcloud/backbone/contributors
|
23
|
+
|
24
|
+
Special thanks to Robert Kieffer for the original philosophy behind Backbone.
|
25
|
+
http://github.com/broofa
|
data/backbone/Rakefile
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
HEADER = /((^\s*\/\/.*\n)+)/
|
4
|
+
|
5
|
+
desc "rebuild the backbone-min.js files for distribution"
|
6
|
+
task :build do
|
7
|
+
begin
|
8
|
+
require 'closure-compiler'
|
9
|
+
rescue LoadError
|
10
|
+
puts "closure-compiler not found.\nInstall it by running 'gem install closure-compiler"
|
11
|
+
exit
|
12
|
+
end
|
13
|
+
source = File.read 'backbone.js'
|
14
|
+
header = source.match(HEADER)
|
15
|
+
File.open('backbone-min.js', 'w+') do |file|
|
16
|
+
file.write header[1].squeeze(' ') + Closure::Compiler.new.compress(source)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "build the docco documentation"
|
21
|
+
task :doc do
|
22
|
+
check 'docco', 'docco', 'https://github.com/jashkenas/docco'
|
23
|
+
system 'docco backbone.js && docco examples/todos/todos.js examples/backbone-localstorage.js'
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "run JavaScriptLint on the source"
|
27
|
+
task :lint do
|
28
|
+
system "jsl -nofilelisting -nologo -conf docs/jsl.conf -process backbone.js"
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "test the CoffeeScript integration"
|
32
|
+
task :test do
|
33
|
+
check 'coffee', 'CoffeeScript', 'https://github.com/jashkenas/coffee-script.git'
|
34
|
+
system "coffee test/*.coffee"
|
35
|
+
end
|
36
|
+
|
37
|
+
# Check for the existence of an executable.
|
38
|
+
def check(exec, name, url)
|
39
|
+
return unless `which #{exec}`.empty?
|
40
|
+
puts "#{name} not found.\nInstall it from #{url}"
|
41
|
+
exit
|
42
|
+
end
|
Binary file
|
@@ -0,0 +1,84 @@
|
|
1
|
+
// A simple module to replace `Backbone.sync` with *localStorage*-based
|
2
|
+
// persistence. Models are given GUIDS, and saved into a JSON object. Simple
|
3
|
+
// as that.
|
4
|
+
|
5
|
+
// Generate four random hex digits.
|
6
|
+
function S4() {
|
7
|
+
return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
|
8
|
+
};
|
9
|
+
|
10
|
+
// Generate a pseudo-GUID by concatenating random hexadecimal.
|
11
|
+
function guid() {
|
12
|
+
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
|
13
|
+
};
|
14
|
+
|
15
|
+
// Our Store is represented by a single JS object in *localStorage*. Create it
|
16
|
+
// with a meaningful name, like the name you'd give a table.
|
17
|
+
var Store = function(name) {
|
18
|
+
this.name = name;
|
19
|
+
var store = localStorage.getItem(this.name);
|
20
|
+
this.data = (store && JSON.parse(store)) || {};
|
21
|
+
};
|
22
|
+
|
23
|
+
_.extend(Store.prototype, {
|
24
|
+
|
25
|
+
// Save the current state of the **Store** to *localStorage*.
|
26
|
+
save: function() {
|
27
|
+
localStorage.setItem(this.name, JSON.stringify(this.data));
|
28
|
+
},
|
29
|
+
|
30
|
+
// Add a model, giving it a (hopefully)-unique GUID, if it doesn't already
|
31
|
+
// have an id of it's own.
|
32
|
+
create: function(model) {
|
33
|
+
if (!model.id) model.id = model.attributes.id = guid();
|
34
|
+
this.data[model.id] = model;
|
35
|
+
this.save();
|
36
|
+
return model;
|
37
|
+
},
|
38
|
+
|
39
|
+
// Update a model by replacing its copy in `this.data`.
|
40
|
+
update: function(model) {
|
41
|
+
this.data[model.id] = model;
|
42
|
+
this.save();
|
43
|
+
return model;
|
44
|
+
},
|
45
|
+
|
46
|
+
// Retrieve a model from `this.data` by id.
|
47
|
+
find: function(model) {
|
48
|
+
return this.data[model.id];
|
49
|
+
},
|
50
|
+
|
51
|
+
// Return the array of all models currently in storage.
|
52
|
+
findAll: function() {
|
53
|
+
return _.values(this.data);
|
54
|
+
},
|
55
|
+
|
56
|
+
// Delete a model from `this.data`, returning it.
|
57
|
+
destroy: function(model) {
|
58
|
+
delete this.data[model.id];
|
59
|
+
this.save();
|
60
|
+
return model;
|
61
|
+
}
|
62
|
+
|
63
|
+
});
|
64
|
+
|
65
|
+
// Override `Backbone.sync` to use delegate to the model or collection's
|
66
|
+
// *localStorage* property, which should be an instance of `Store`.
|
67
|
+
Backbone.sync = function(method, model, options) {
|
68
|
+
|
69
|
+
var resp;
|
70
|
+
var store = model.localStorage || model.collection.localStorage;
|
71
|
+
|
72
|
+
switch (method) {
|
73
|
+
case "read": resp = model.id ? store.find(model) : store.findAll(); break;
|
74
|
+
case "create": resp = store.create(model); break;
|
75
|
+
case "update": resp = store.update(model); break;
|
76
|
+
case "delete": resp = store.destroy(model); break;
|
77
|
+
}
|
78
|
+
|
79
|
+
if (resp) {
|
80
|
+
options.success(resp);
|
81
|
+
} else {
|
82
|
+
options.error("Record not found");
|
83
|
+
}
|
84
|
+
};
|
Binary file
|
@@ -0,0 +1,87 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<title>Backbone Demo: Todos</title>
|
6
|
+
<link href="todos.css" media="all" rel="stylesheet" type="text/css"/>
|
7
|
+
<script src="../../test/vendor/json2.js"></script>
|
8
|
+
<script src="../../test/vendor/jquery-1.5.js"></script>
|
9
|
+
<script src="../../test/vendor/underscore-1.1.6.js"></script>
|
10
|
+
<script src="../../backbone.js"></script>
|
11
|
+
<script src="../backbone-localstorage.js"></script>
|
12
|
+
<script src="todos.js"></script>
|
13
|
+
</head>
|
14
|
+
|
15
|
+
<body>
|
16
|
+
|
17
|
+
<!-- Todo App Interface -->
|
18
|
+
|
19
|
+
<div id="todoapp">
|
20
|
+
|
21
|
+
<div class="title">
|
22
|
+
<h1>Todos</h1>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="content">
|
26
|
+
|
27
|
+
<div id="create-todo">
|
28
|
+
<input id="new-todo" placeholder="What needs to be done?" type="text" />
|
29
|
+
<span class="ui-tooltip-top" style="display:none;">Press Enter to save this task</span>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div id="todos">
|
33
|
+
<ul id="todo-list"></ul>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
<div id="todo-stats"></div>
|
37
|
+
|
38
|
+
</div>
|
39
|
+
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<ul id="instructions">
|
43
|
+
<li>Double-click to edit a todo.</li>
|
44
|
+
<li><a href="../../docs/todos.html">View the annotated source.</a></li>
|
45
|
+
</ul>
|
46
|
+
|
47
|
+
<div id="credits">
|
48
|
+
Created by
|
49
|
+
<br />
|
50
|
+
<a href="http://jgn.me/">Jérôme Gravel-Niquet</a>
|
51
|
+
</div>
|
52
|
+
|
53
|
+
<!-- Templates -->
|
54
|
+
|
55
|
+
<script type="text/template" id="item-template">
|
56
|
+
<div class="todo <%= done ? 'done' : '' %>">
|
57
|
+
<div class="display">
|
58
|
+
<input class="check" type="checkbox" <%= done ? 'checked="checked"' : '' %> />
|
59
|
+
<div class="todo-content"></div>
|
60
|
+
<span class="todo-destroy"></span>
|
61
|
+
</div>
|
62
|
+
<div class="edit">
|
63
|
+
<input class="todo-input" type="text" value="" />
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
</script>
|
67
|
+
|
68
|
+
<script type="text/template" id="stats-template">
|
69
|
+
<% if (total) { %>
|
70
|
+
<span class="todo-count">
|
71
|
+
<span class="number"><%= remaining %></span>
|
72
|
+
<span class="word"><%= remaining == 1 ? 'item' : 'items' %></span> left.
|
73
|
+
</span>
|
74
|
+
<% } %>
|
75
|
+
<% if (done) { %>
|
76
|
+
<span class="todo-clear">
|
77
|
+
<a href="#">
|
78
|
+
Clear <span class="number-done"><%= done %></span>
|
79
|
+
completed <span class="word-done"><%= done == 1 ? 'item' : 'items' %></span>
|
80
|
+
</a>
|
81
|
+
</span>
|
82
|
+
<% } %>
|
83
|
+
</script>
|
84
|
+
|
85
|
+
</body>
|
86
|
+
|
87
|
+
</html>
|
@@ -0,0 +1,311 @@
|
|
1
|
+
html, body, div, span, applet, object, iframe,
|
2
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
3
|
+
a, abbr, acronym, address, big, cite, code,
|
4
|
+
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
5
|
+
small, strike, strong, sub, sup, tt, var,
|
6
|
+
dl, dt, dd, ol, ul, li,
|
7
|
+
fieldset, form, label, legend,
|
8
|
+
table, caption, tbody, tfoot, thead, tr, th, td {
|
9
|
+
margin: 0;
|
10
|
+
padding: 0;
|
11
|
+
border: 0;
|
12
|
+
outline: 0;
|
13
|
+
font-weight: inherit;
|
14
|
+
font-style: inherit;
|
15
|
+
font-size: 100%;
|
16
|
+
font-family: inherit;
|
17
|
+
vertical-align: baseline;
|
18
|
+
}
|
19
|
+
body {
|
20
|
+
line-height: 1;
|
21
|
+
color: black;
|
22
|
+
background: white;
|
23
|
+
}
|
24
|
+
ol, ul {
|
25
|
+
list-style: none;
|
26
|
+
}
|
27
|
+
a img {
|
28
|
+
border: none;
|
29
|
+
}
|
30
|
+
|
31
|
+
html {
|
32
|
+
background: #eeeeee;
|
33
|
+
}
|
34
|
+
body {
|
35
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
36
|
+
font-size: 14px;
|
37
|
+
line-height: 1.4em;
|
38
|
+
background: #eeeeee;
|
39
|
+
color: #333333;
|
40
|
+
}
|
41
|
+
|
42
|
+
#todoapp {
|
43
|
+
width: 480px;
|
44
|
+
margin: 0 auto 40px;
|
45
|
+
background: white;
|
46
|
+
padding: 20px;
|
47
|
+
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 5px 6px 0;
|
48
|
+
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 5px 6px 0;
|
49
|
+
-o-box-shadow: rgba(0, 0, 0, 0.2) 0 5px 6px 0;
|
50
|
+
box-shadow: rgba(0, 0, 0, 0.2) 0 5px 6px 0;
|
51
|
+
}
|
52
|
+
#todoapp h1 {
|
53
|
+
font-size: 36px;
|
54
|
+
font-weight: bold;
|
55
|
+
text-align: center;
|
56
|
+
padding: 20px 0 30px 0;
|
57
|
+
line-height: 1;
|
58
|
+
}
|
59
|
+
|
60
|
+
#create-todo {
|
61
|
+
position: relative;
|
62
|
+
}
|
63
|
+
#create-todo input {
|
64
|
+
width: 466px;
|
65
|
+
font-size: 24px;
|
66
|
+
font-family: inherit;
|
67
|
+
line-height: 1.4em;
|
68
|
+
border: 0;
|
69
|
+
outline: none;
|
70
|
+
padding: 6px;
|
71
|
+
border: 1px solid #999999;
|
72
|
+
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
73
|
+
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
74
|
+
-o-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
75
|
+
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
76
|
+
}
|
77
|
+
#create-todo input::-webkit-input-placeholder {
|
78
|
+
font-style: italic;
|
79
|
+
}
|
80
|
+
#create-todo span {
|
81
|
+
position: absolute;
|
82
|
+
z-index: 999;
|
83
|
+
width: 170px;
|
84
|
+
left: 50%;
|
85
|
+
margin-left: -85px;
|
86
|
+
}
|
87
|
+
|
88
|
+
#todo-list {
|
89
|
+
margin-top: 10px;
|
90
|
+
}
|
91
|
+
#todo-list li {
|
92
|
+
padding: 12px 20px 11px 0;
|
93
|
+
position: relative;
|
94
|
+
font-size: 24px;
|
95
|
+
line-height: 1.1em;
|
96
|
+
border-bottom: 1px solid #cccccc;
|
97
|
+
}
|
98
|
+
#todo-list li:after {
|
99
|
+
content: "\0020";
|
100
|
+
display: block;
|
101
|
+
height: 0;
|
102
|
+
clear: both;
|
103
|
+
overflow: hidden;
|
104
|
+
visibility: hidden;
|
105
|
+
}
|
106
|
+
#todo-list li.editing {
|
107
|
+
padding: 0;
|
108
|
+
border-bottom: 0;
|
109
|
+
}
|
110
|
+
#todo-list .editing .display,
|
111
|
+
#todo-list .edit {
|
112
|
+
display: none;
|
113
|
+
}
|
114
|
+
#todo-list .editing .edit {
|
115
|
+
display: block;
|
116
|
+
}
|
117
|
+
#todo-list .editing input {
|
118
|
+
width: 444px;
|
119
|
+
font-size: 24px;
|
120
|
+
font-family: inherit;
|
121
|
+
margin: 0;
|
122
|
+
line-height: 1.6em;
|
123
|
+
border: 0;
|
124
|
+
outline: none;
|
125
|
+
padding: 10px 7px 0px 27px;
|
126
|
+
border: 1px solid #999999;
|
127
|
+
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
128
|
+
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
129
|
+
-o-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
130
|
+
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
|
131
|
+
}
|
132
|
+
#todo-list .check {
|
133
|
+
position: relative;
|
134
|
+
top: 9px;
|
135
|
+
margin: 0 10px 0 7px;
|
136
|
+
float: left;
|
137
|
+
}
|
138
|
+
#todo-list .done .todo-content {
|
139
|
+
text-decoration: line-through;
|
140
|
+
color: #777777;
|
141
|
+
}
|
142
|
+
#todo-list .todo-destroy {
|
143
|
+
position: absolute;
|
144
|
+
right: 5px;
|
145
|
+
top: 14px;
|
146
|
+
display: none;
|
147
|
+
cursor: pointer;
|
148
|
+
width: 20px;
|
149
|
+
height: 20px;
|
150
|
+
background: url(destroy.png) no-repeat 0 0;
|
151
|
+
}
|
152
|
+
#todo-list li:hover .todo-destroy {
|
153
|
+
display: block;
|
154
|
+
}
|
155
|
+
#todo-list .todo-destroy:hover {
|
156
|
+
background-position: 0 -20px;
|
157
|
+
}
|
158
|
+
|
159
|
+
#todo-stats {
|
160
|
+
*zoom: 1;
|
161
|
+
margin-top: 10px;
|
162
|
+
color: #777777;
|
163
|
+
}
|
164
|
+
#todo-stats:after {
|
165
|
+
content: "\0020";
|
166
|
+
display: block;
|
167
|
+
height: 0;
|
168
|
+
clear: both;
|
169
|
+
overflow: hidden;
|
170
|
+
visibility: hidden;
|
171
|
+
}
|
172
|
+
#todo-stats .todo-count {
|
173
|
+
float: left;
|
174
|
+
}
|
175
|
+
#todo-stats .todo-count .number {
|
176
|
+
font-weight: bold;
|
177
|
+
color: #333333;
|
178
|
+
}
|
179
|
+
#todo-stats .todo-clear {
|
180
|
+
float: right;
|
181
|
+
}
|
182
|
+
#todo-stats .todo-clear a {
|
183
|
+
color: #777777;
|
184
|
+
font-size: 12px;
|
185
|
+
}
|
186
|
+
#todo-stats .todo-clear a:visited {
|
187
|
+
color: #777777;
|
188
|
+
}
|
189
|
+
#todo-stats .todo-clear a:hover {
|
190
|
+
color: #336699;
|
191
|
+
}
|
192
|
+
|
193
|
+
#instructions {
|
194
|
+
width: 520px;
|
195
|
+
margin: 10px auto;
|
196
|
+
color: #777777;
|
197
|
+
text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0;
|
198
|
+
text-align: center;
|
199
|
+
}
|
200
|
+
#instructions a {
|
201
|
+
color: #336699;
|
202
|
+
}
|
203
|
+
|
204
|
+
#credits {
|
205
|
+
width: 520px;
|
206
|
+
margin: 30px auto;
|
207
|
+
color: #999;
|
208
|
+
text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0;
|
209
|
+
text-align: center;
|
210
|
+
}
|
211
|
+
#credits a {
|
212
|
+
color: #888;
|
213
|
+
}
|
214
|
+
|
215
|
+
|
216
|
+
/*
|
217
|
+
* François 'cahnory' Germain
|
218
|
+
*/
|
219
|
+
.ui-tooltip, .ui-tooltip-top, .ui-tooltip-right, .ui-tooltip-bottom, .ui-tooltip-left {
|
220
|
+
color:#ffffff;
|
221
|
+
cursor:normal;
|
222
|
+
display:-moz-inline-stack;
|
223
|
+
display:inline-block;
|
224
|
+
font-size:12px;
|
225
|
+
font-family:arial;
|
226
|
+
padding:.5em 1em;
|
227
|
+
position:relative;
|
228
|
+
text-align:center;
|
229
|
+
text-shadow:0 -1px 1px #111111;
|
230
|
+
-webkit-border-top-left-radius:4px ;
|
231
|
+
-webkit-border-top-right-radius:4px ;
|
232
|
+
-webkit-border-bottom-right-radius:4px ;
|
233
|
+
-webkit-border-bottom-left-radius:4px ;
|
234
|
+
-khtml-border-top-left-radius:4px ;
|
235
|
+
-khtml-border-top-right-radius:4px ;
|
236
|
+
-khtml-border-bottom-right-radius:4px ;
|
237
|
+
-khtml-border-bottom-left-radius:4px ;
|
238
|
+
-moz-border-radius-topleft:4px ;
|
239
|
+
-moz-border-radius-topright:4px ;
|
240
|
+
-moz-border-radius-bottomright:4px ;
|
241
|
+
-moz-border-radius-bottomleft:4px ;
|
242
|
+
border-top-left-radius:4px ;
|
243
|
+
border-top-right-radius:4px ;
|
244
|
+
border-bottom-right-radius:4px ;
|
245
|
+
border-bottom-left-radius:4px ;
|
246
|
+
-o-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
|
247
|
+
-moz-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
|
248
|
+
-khtml-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
|
249
|
+
-webkit-box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
|
250
|
+
box-shadow:0 1px 2px #000000, inset 0 0 0 1px #222222, inset 0 2px #666666, inset 0 -2px 2px #444444;
|
251
|
+
background-color:#3b3b3b;
|
252
|
+
background-image:-moz-linear-gradient(top,#555555,#222222);
|
253
|
+
background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#555555),color-stop(1,#222222));
|
254
|
+
filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#555555,EndColorStr=#222222);
|
255
|
+
-ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#555555,EndColorStr=#222222);
|
256
|
+
}
|
257
|
+
.ui-tooltip:after, .ui-tooltip-top:after, .ui-tooltip-right:after, .ui-tooltip-bottom:after, .ui-tooltip-left:after {
|
258
|
+
content:"\25B8";
|
259
|
+
display:block;
|
260
|
+
font-size:2em;
|
261
|
+
height:0;
|
262
|
+
line-height:0;
|
263
|
+
position:absolute;
|
264
|
+
}
|
265
|
+
.ui-tooltip:after, .ui-tooltip-bottom:after {
|
266
|
+
color:#2a2a2a;
|
267
|
+
bottom:0;
|
268
|
+
left:1px;
|
269
|
+
text-align:center;
|
270
|
+
text-shadow:1px 0 2px #000000;
|
271
|
+
-o-transform:rotate(90deg);
|
272
|
+
-moz-transform:rotate(90deg);
|
273
|
+
-khtml-transform:rotate(90deg);
|
274
|
+
-webkit-transform:rotate(90deg);
|
275
|
+
width:100%;
|
276
|
+
}
|
277
|
+
.ui-tooltip-top:after {
|
278
|
+
bottom:auto;
|
279
|
+
color:#4f4f4f;
|
280
|
+
left:-2px;
|
281
|
+
top:0;
|
282
|
+
text-align:center;
|
283
|
+
text-shadow:none;
|
284
|
+
-o-transform:rotate(-90deg);
|
285
|
+
-moz-transform:rotate(-90deg);
|
286
|
+
-khtml-transform:rotate(-90deg);
|
287
|
+
-webkit-transform:rotate(-90deg);
|
288
|
+
width:100%;
|
289
|
+
}
|
290
|
+
.ui-tooltip-right:after {
|
291
|
+
color:#222222;
|
292
|
+
right:-0.375em;
|
293
|
+
top:50%;
|
294
|
+
margin-top:-.05em;
|
295
|
+
text-shadow:0 1px 2px #000000;
|
296
|
+
-o-transform:rotate(0);
|
297
|
+
-moz-transform:rotate(0);
|
298
|
+
-khtml-transform:rotate(0);
|
299
|
+
-webkit-transform:rotate(0);
|
300
|
+
}
|
301
|
+
.ui-tooltip-left:after {
|
302
|
+
color:#222222;
|
303
|
+
left:-0.375em;
|
304
|
+
top:50%;
|
305
|
+
margin-top:.1em;
|
306
|
+
text-shadow:0 -1px 2px #000000;
|
307
|
+
-o-transform:rotate(180deg);
|
308
|
+
-moz-transform:rotate(180deg);
|
309
|
+
-khtml-transform:rotate(180deg);
|
310
|
+
-webkit-transform:rotate(180deg);
|
311
|
+
}
|