Skip to content

Commit 8d4036c

Browse files
committed
Merge branch 'manifest'
2 parents dcea4f0 + 99c4dde commit 8d4036c

File tree

5 files changed

+318
-0
lines changed

5 files changed

+318
-0
lines changed

build/core.json

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"core": {
3+
"description": "The core of jQuery UI, required for all interactions and widgets.",
4+
"homepage": "http://jqueryui.com/",
5+
"demo": "http://jqueryui.com/",
6+
"docs": "http://api.jqueryui.com/category/ui-core/"
7+
},
8+
"datepicker": {
9+
"description": "Displays a calendar from an input or inline for selecting dates.",
10+
"dependencies": [ "core" ],
11+
"keywords": [
12+
"form",
13+
"calendar",
14+
"date",
15+
"i18n"
16+
],
17+
"category": "widget"
18+
},
19+
"effect": {
20+
"title": "jQuery UI Effects Core",
21+
"description": "Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.",
22+
"keywords": [
23+
"animation",
24+
"show",
25+
"hide",
26+
"color",
27+
"class",
28+
"transition",
29+
"easing"
30+
],
31+
"category": "effect",
32+
"homepage": "http://jqueryui.com/",
33+
"demo": "http://jqueryui.com/effects/",
34+
"docs": "http://api.jqueryui.com/category/effects-core/"
35+
},
36+
"position": {
37+
"description": "Positions elements relative to other elements.",
38+
"keywords": [
39+
"offset",
40+
"relative",
41+
"absolute",
42+
"fixed",
43+
"collision"
44+
]
45+
},
46+
"transfer": {
47+
"name": "ui.effect-transfer",
48+
"title": "jQuery UI Transfer Effect",
49+
"description": "Displays a transfer effect from one element to another.",
50+
"keywords": [
51+
"effect"
52+
],
53+
"homepage": "http://jqueryui.com/transfer-effect/",
54+
"demo": "http://jqueryui.com/transfer-effect/",
55+
"docs": "http://api.jqueryui.com/transfer-effect/",
56+
"dependencies": [ "effect" ],
57+
"category": "effect"
58+
},
59+
"widget": {
60+
"description": "Provides a factory for creating stateful widgets with a common API.",
61+
"keywords": [
62+
"abstraction",
63+
"state",
64+
"factory"
65+
]
66+
}
67+
}

build/effect.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"blind": {
3+
"description": "Blinds the element."
4+
},
5+
"bounce": {
6+
"description": "Bounces an element horizontally or vertically n times."
7+
},
8+
"clip": {
9+
"description": "Clips the element on and off like an old TV."
10+
},
11+
"drop": {
12+
"description": "Moves an element in one direction and hides it at the same time."
13+
},
14+
"explode": {
15+
"description": "Explodes an element in all directions into n pieces. Implodes an element to its original wholeness."
16+
},
17+
"fade": {
18+
"description": "Fades an element."
19+
},
20+
"fold": {
21+
"description": "Folds an element first horizontally and then vertically."
22+
},
23+
"highlight": {
24+
"description": "Highlights the background of an element in a defined color for a custom duration."
25+
},
26+
"pulsate": {
27+
"description": "Pulsates an element n times by changing the opacity to zero and back."
28+
},
29+
"scale": {
30+
"description": "Grows or shrinks an element and its content. Restores an elemnt to its original size."
31+
},
32+
"shake": {
33+
"description": "Shakes an element horizontally or vertically n times."
34+
},
35+
"slide": {
36+
"description": "Slides an element in and out of the viewport."
37+
}
38+
}

build/interaction.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"draggable": {
3+
"description": "Enables dragging functionality for any element.",
4+
"keywords": [
5+
"drag",
6+
"drop"
7+
]
8+
},
9+
"droppable": {
10+
"dependencies": [ "draggable" ],
11+
"description": "Enables drop targets for draggable elements.",
12+
"keywords": [
13+
"drag",
14+
"drop"
15+
]
16+
},
17+
"resizable": {
18+
"description": "Enables resize functionality for any element.",
19+
"keywords": [
20+
"resize"
21+
]
22+
},
23+
"selectable": {
24+
"description": "Allows groups of elements to be selected with the mouse.",
25+
"keywords": [
26+
"selection"
27+
]
28+
},
29+
"sortable": {
30+
"description": "Enables items in a list to be sorted using the mouse.",
31+
"keywords": [
32+
"sort",
33+
"list"
34+
]
35+
}
36+
}

build/tasks/build.js

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,85 @@ module.exports = function( grunt ) {
22

33
var path = require( "path" );
44

5+
grunt.registerTask( "manifest", "Generate jquery.json manifest files", function() {
6+
var pkg = grunt.config( "pkg" ),
7+
base = {
8+
core: {
9+
name: "ui.{plugin}",
10+
title: "jQuery UI {Plugin}"
11+
},
12+
widget: {
13+
name: "ui.{plugin}",
14+
title: "jQuery UI {Plugin}",
15+
dependencies: [ "core", "widget" ]
16+
},
17+
interaction: {
18+
name: "ui.{plugin}",
19+
title: "jQuery UI {Plugin}",
20+
dependencies: [ "core", "widget", "mouse" ]
21+
},
22+
effect: {
23+
name: "ui.effect-{plugin}",
24+
title: "jQuery UI {Plugin} Effect",
25+
keywords: [ "effect", "show", "hide" ],
26+
homepage: "http://jqueryui.com/{plugin}-effect/",
27+
demo: "http://jqueryui.com/{plugin}-effect/",
28+
docs: "http://api.jqueryui.com/{plugin}-effect/",
29+
dependencies: [ "effect" ]
30+
}
31+
};
32+
33+
Object.keys( base ).forEach(function( type ) {
34+
var baseManifest = base[ type ],
35+
plugins = grunt.file.readJSON( "build/" + type + ".json" );
36+
37+
Object.keys( plugins ).forEach(function( plugin ) {
38+
var manifest,
39+
data = plugins[ plugin ],
40+
name = plugin.charAt( 0 ).toUpperCase() + plugin.substr( 1 );
41+
42+
function replace( str ) {
43+
return str.replace( "{plugin}", plugin ).replace( "{Plugin}", name );
44+
}
45+
46+
manifest = {
47+
name: data.name || replace( baseManifest.name ),
48+
title: data.title || replace( baseManifest.title ),
49+
description: data.description,
50+
keywords: [ "ui", plugin ]
51+
.concat( baseManifest.keywords || [] )
52+
.concat( data.keywords || [] ),
53+
version: pkg.version,
54+
author: pkg.author,
55+
maintainers: pkg.maintainers,
56+
licenses: pkg.licenses,
57+
bugs: pkg.bugs,
58+
homepage: data.homepage || replace( baseManifest.homepage ||
59+
"http://jqueryui.com/{plugin}/" ),
60+
demo: data.demo || replace( baseManifest.demo ||
61+
"http://jqueryui.com/{plugin}/" ),
62+
docs: data.docs || replace( baseManifest.docs ||
63+
"http://api.jqueryui.com/{plugin}/" ),
64+
download: "http://jqueryui.com/download/",
65+
dependencies: {
66+
jquery: ">=1.6"
67+
},
68+
// custom
69+
category: data.category || type
70+
};
71+
72+
(baseManifest.dependencies || [])
73+
.concat(data.dependencies || [])
74+
.forEach(function( dependency ) {
75+
manifest.dependencies[ "ui." + dependency ] = pkg.version;
76+
});
77+
78+
grunt.file.write( manifest.name + ".jquery.json",
79+
JSON.stringify( manifest, null, "\t" ) );
80+
});
81+
});
82+
});
83+
584
grunt.registerMultiTask( "copy", "Copy files to destination folder and replace @VERSION with pkg.version", function() {
685
function replaceVersion( source ) {
786
return source.replace( /@VERSION/g, grunt.config( "pkg.version" ) );

build/widget.json

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
{
2+
"accordion": {
3+
"dependencies": [],
4+
"description": "Displays collapsible content panels for presenting information in a limited amount of space.",
5+
"keywords": [
6+
"navigation",
7+
"panel",
8+
"collapse",
9+
"expand"
10+
]
11+
},
12+
"autocomplete": {
13+
"dependencies": [ "menu", "position" ],
14+
"description": "Lists suggested words as the user is typing.",
15+
"keywords": [
16+
"form",
17+
"word",
18+
"predict",
19+
"suggest"
20+
]
21+
},
22+
"button": {
23+
"dependencies": [],
24+
"description": "Enhances a form with themable buttons.",
25+
"keywords": [
26+
"form",
27+
"radio",
28+
"checkbox"
29+
]
30+
},
31+
"dialog": {
32+
"dependencies": [ "button", "draggable", "position", "resizable" ],
33+
"description": "Displays customizable dialog windows.",
34+
"keywords": [
35+
"modal",
36+
"alert",
37+
"popup"
38+
]
39+
},
40+
"menu": {
41+
"dependencies": [ "position" ],
42+
"description": "Creates nestable menus.",
43+
"keywords": [
44+
"dropdown",
45+
"flyout"
46+
]
47+
},
48+
"mouse": {
49+
"dependencies": [],
50+
"description": "Abstracts mouse-based interactions to assist in creating certain widgets.",
51+
"keywords": [
52+
"abstraction"
53+
],
54+
"category": "core"
55+
},
56+
"progressbar": {
57+
"dependencies": [],
58+
"description": "Displays a status indicator for loading state, standard percentage, and other progress indicators.",
59+
"keywords": [
60+
"determinate",
61+
"status"
62+
]
63+
},
64+
"slider": {
65+
"dependencies": [ "mouse" ],
66+
"description": "Displays a flexible slider with ranges and accessibility via keyboard.",
67+
"keywords": [
68+
"form",
69+
"number",
70+
"range"
71+
]
72+
},
73+
"spinner": {
74+
"dependencies": [ "button" ],
75+
"description": "Displays buttons to easily input numbers via the keyboard or mouse.",
76+
"keywords": [
77+
"form",
78+
"number",
79+
"spinbutton",
80+
"stepper"
81+
]
82+
},
83+
"tabs": {
84+
"dependencies": [],
85+
"description": "Transforms a set of container elements into a tab structure.",
86+
"keywords": [
87+
"navigation",
88+
"panel",
89+
"collapse",
90+
"expand"
91+
]
92+
},
93+
"tooltip": {
94+
"dependencies": [ "position" ],
95+
"description": "Shows additional information for any element on hover or focus.",
96+
"keywords": []
97+
}
98+
}

0 commit comments

Comments
 (0)