guff-compass 0.7.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.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +21 -0
  3. data/.gitignore +6 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +21 -0
  6. data/demo/bower_components/jquery/.bower.json +21 -0
  7. data/demo/bower_components/jquery/.editorconfig +43 -0
  8. data/demo/bower_components/jquery/.gitattributes +2 -0
  9. data/demo/bower_components/jquery/.gitignore +14 -0
  10. data/demo/bower_components/jquery/.gitmodules +6 -0
  11. data/demo/bower_components/jquery/.jshintrc +17 -0
  12. data/demo/bower_components/jquery/.mailmap +94 -0
  13. data/demo/bower_components/jquery/AUTHORS.txt +170 -0
  14. data/demo/bower_components/jquery/CONTRIBUTING.md +216 -0
  15. data/demo/bower_components/jquery/Gruntfile.js +594 -0
  16. data/demo/bower_components/jquery/MIT-LICENSE.txt +21 -0
  17. data/demo/bower_components/jquery/README.md +398 -0
  18. data/demo/bower_components/jquery/bower.json +11 -0
  19. data/demo/bower_components/jquery/build/release-notes.js +59 -0
  20. data/demo/bower_components/jquery/build/release.js +316 -0
  21. data/demo/bower_components/jquery/component.json +15 -0
  22. data/demo/bower_components/jquery/composer.json +35 -0
  23. data/demo/bower_components/jquery/jquery-migrate.js +511 -0
  24. data/demo/bower_components/jquery/jquery-migrate.min.js +3 -0
  25. data/demo/bower_components/jquery/jquery.js +9789 -0
  26. data/demo/bower_components/jquery/jquery.min.js +6 -0
  27. data/demo/bower_components/jquery/jquery.min.map +1 -0
  28. data/demo/bower_components/jquery/package.json +38 -0
  29. data/demo/bower_components/jquery/speed/benchmark.js +15 -0
  30. data/demo/bower_components/jquery/speed/benchmarker.css +65 -0
  31. data/demo/bower_components/jquery/speed/benchmarker.js +181 -0
  32. data/demo/bower_components/jquery/speed/closest.html +39 -0
  33. data/demo/bower_components/jquery/speed/css.html +82 -0
  34. data/demo/bower_components/jquery/speed/event.html +58 -0
  35. data/demo/bower_components/jquery/speed/filter.html +183 -0
  36. data/demo/bower_components/jquery/speed/find.html +179 -0
  37. data/demo/bower_components/jquery/speed/index.html +72 -0
  38. data/demo/bower_components/jquery/speed/jquery-basis.js +6238 -0
  39. data/demo/bower_components/jquery/speed/slice.vs.concat.html +47 -0
  40. data/demo/bower_components/jquery/src/.jshintrc +27 -0
  41. data/demo/bower_components/jquery/src/ajax.js +855 -0
  42. data/demo/bower_components/jquery/src/ajax/jsonp.js +80 -0
  43. data/demo/bower_components/jquery/src/ajax/script.js +86 -0
  44. data/demo/bower_components/jquery/src/ajax/xhr.js +207 -0
  45. data/demo/bower_components/jquery/src/attributes.js +659 -0
  46. data/demo/bower_components/jquery/src/callbacks.js +197 -0
  47. data/demo/bower_components/jquery/src/core.js +981 -0
  48. data/demo/bower_components/jquery/src/css.js +661 -0
  49. data/demo/bower_components/jquery/src/data.js +336 -0
  50. data/demo/bower_components/jquery/src/deferred.js +141 -0
  51. data/demo/bower_components/jquery/src/deprecated.js +11 -0
  52. data/demo/bower_components/jquery/src/dimensions.js +41 -0
  53. data/demo/bower_components/jquery/src/effects.js +732 -0
  54. data/demo/bower_components/jquery/src/event-alias.js +32 -0
  55. data/demo/bower_components/jquery/src/event.js +995 -0
  56. data/demo/bower_components/jquery/src/exports.js +21 -0
  57. data/demo/bower_components/jquery/src/intro.js +20 -0
  58. data/demo/bower_components/jquery/src/manipulation.js +744 -0
  59. data/demo/bower_components/jquery/src/offset.js +169 -0
  60. data/demo/bower_components/jquery/src/outro.js +2 -0
  61. data/demo/bower_components/jquery/src/queue.js +146 -0
  62. data/demo/bower_components/jquery/src/serialize.js +99 -0
  63. data/demo/bower_components/jquery/src/sizzle-jquery.js +7 -0
  64. data/demo/bower_components/jquery/src/support.js +246 -0
  65. data/demo/bower_components/jquery/src/traversing.js +283 -0
  66. data/demo/bower_components/jquery/src/wrap.js +66 -0
  67. data/demo/bower_components/jquery/test/.jshintignore +3 -0
  68. data/demo/bower_components/jquery/test/.jshintrc +60 -0
  69. data/demo/bower_components/jquery/test/data/1x1.jpg +0 -0
  70. data/demo/bower_components/jquery/test/data/ajax/unreleasedXHR.html +25 -0
  71. data/demo/bower_components/jquery/test/data/atom+xml.php +4 -0
  72. data/demo/bower_components/jquery/test/data/badcall.js +1 -0
  73. data/demo/bower_components/jquery/test/data/badjson.js +1 -0
  74. data/demo/bower_components/jquery/test/data/cleanScript.html +10 -0
  75. data/demo/bower_components/jquery/test/data/core/cc_on.html +22 -0
  76. data/demo/bower_components/jquery/test/data/dashboard.xml +11 -0
  77. data/demo/bower_components/jquery/test/data/dimensions/documentLarge.html +17 -0
  78. data/demo/bower_components/jquery/test/data/dimensions/documentSmall.html +21 -0
  79. data/demo/bower_components/jquery/test/data/echoData.php +1 -0
  80. data/demo/bower_components/jquery/test/data/echoQuery.php +1 -0
  81. data/demo/bower_components/jquery/test/data/errorWithJSON.php +6 -0
  82. data/demo/bower_components/jquery/test/data/errorWithText.php +5 -0
  83. data/demo/bower_components/jquery/test/data/etag.php +21 -0
  84. data/demo/bower_components/jquery/test/data/evalScript.php +1 -0
  85. data/demo/bower_components/jquery/test/data/event/focusElem.html +16 -0
  86. data/demo/bower_components/jquery/test/data/event/longLoadScript.php +4 -0
  87. data/demo/bower_components/jquery/test/data/event/promiseReady.html +17 -0
  88. data/demo/bower_components/jquery/test/data/event/syncReady.html +23 -0
  89. data/demo/bower_components/jquery/test/data/headers.php +18 -0
  90. data/demo/bower_components/jquery/test/data/if_modified_since.php +20 -0
  91. data/demo/bower_components/jquery/test/data/iframe.html +8 -0
  92. data/demo/bower_components/jquery/test/data/jquery-1.9.1.ajax_xhr.min.js +5 -0
  93. data/demo/bower_components/jquery/test/data/json.php +13 -0
  94. data/demo/bower_components/jquery/test/data/json_obj.js +1 -0
  95. data/demo/bower_components/jquery/test/data/jsonp.php +14 -0
  96. data/demo/bower_components/jquery/test/data/manipulation/iframe-denied.html +36 -0
  97. data/demo/bower_components/jquery/test/data/name.html +1 -0
  98. data/demo/bower_components/jquery/test/data/name.php +24 -0
  99. data/demo/bower_components/jquery/test/data/nocontent.php +5 -0
  100. data/demo/bower_components/jquery/test/data/offset/absolute.html +41 -0
  101. data/demo/bower_components/jquery/test/data/offset/body.html +26 -0
  102. data/demo/bower_components/jquery/test/data/offset/fixed.html +34 -0
  103. data/demo/bower_components/jquery/test/data/offset/relative.html +31 -0
  104. data/demo/bower_components/jquery/test/data/offset/scroll.html +39 -0
  105. data/demo/bower_components/jquery/test/data/offset/static.html +31 -0
  106. data/demo/bower_components/jquery/test/data/offset/table.html +43 -0
  107. data/demo/bower_components/jquery/test/data/params_html.php +12 -0
  108. data/demo/bower_components/jquery/test/data/readywaitasset.js +1 -0
  109. data/demo/bower_components/jquery/test/data/readywaitloader.js +25 -0
  110. data/demo/bower_components/jquery/test/data/script.php +11 -0
  111. data/demo/bower_components/jquery/test/data/selector/html5_selector.html +114 -0
  112. data/demo/bower_components/jquery/test/data/selector/sizzle_cache.html +21 -0
  113. data/demo/bower_components/jquery/test/data/statusText.php +5 -0
  114. data/demo/bower_components/jquery/test/data/support/bodyBackground.html +28 -0
  115. data/demo/bower_components/jquery/test/data/support/boxSizing.html +19 -0
  116. data/demo/bower_components/jquery/test/data/support/csp.js +3 -0
  117. data/demo/bower_components/jquery/test/data/support/csp.php +22 -0
  118. data/demo/bower_components/jquery/test/data/support/shrinkWrapBlocks.html +23 -0
  119. data/demo/bower_components/jquery/test/data/support/testElementCrash.html +17 -0
  120. data/demo/bower_components/jquery/test/data/test.html +7 -0
  121. data/demo/bower_components/jquery/test/data/test.js +3 -0
  122. data/demo/bower_components/jquery/test/data/test.php +7 -0
  123. data/demo/bower_components/jquery/test/data/test2.html +5 -0
  124. data/demo/bower_components/jquery/test/data/test3.html +3 -0
  125. data/demo/bower_components/jquery/test/data/testinit.js +264 -0
  126. data/demo/bower_components/jquery/test/data/testrunner.js +371 -0
  127. data/demo/bower_components/jquery/test/data/testsuite.css +155 -0
  128. data/demo/bower_components/jquery/test/data/text.php +12 -0
  129. data/demo/bower_components/jquery/test/data/ua.txt +272 -0
  130. data/demo/bower_components/jquery/test/data/with_fries.xml +25 -0
  131. data/demo/bower_components/jquery/test/data/with_fries_over_jsonp.php +7 -0
  132. data/demo/bower_components/jquery/test/delegatetest.html +228 -0
  133. data/demo/bower_components/jquery/test/hovertest.html +158 -0
  134. data/demo/bower_components/jquery/test/index.html +337 -0
  135. data/demo/bower_components/jquery/test/jquery.js +5 -0
  136. data/demo/bower_components/jquery/test/localfile.html +75 -0
  137. data/demo/bower_components/jquery/test/networkerror.html +84 -0
  138. data/demo/bower_components/jquery/test/readywait.html +70 -0
  139. data/demo/bower_components/jquery/test/unit/ajax.js +2016 -0
  140. data/demo/bower_components/jquery/test/unit/attributes.js +1388 -0
  141. data/demo/bower_components/jquery/test/unit/callbacks.js +342 -0
  142. data/demo/bower_components/jquery/test/unit/core.js +1360 -0
  143. data/demo/bower_components/jquery/test/unit/css.js +1056 -0
  144. data/demo/bower_components/jquery/test/unit/data.js +645 -0
  145. data/demo/bower_components/jquery/test/unit/deferred.js +436 -0
  146. data/demo/bower_components/jquery/test/unit/deprecated.js +8 -0
  147. data/demo/bower_components/jquery/test/unit/dimensions.js +472 -0
  148. data/demo/bower_components/jquery/test/unit/effects.js +2242 -0
  149. data/demo/bower_components/jquery/test/unit/event.js +2755 -0
  150. data/demo/bower_components/jquery/test/unit/exports.js +7 -0
  151. data/demo/bower_components/jquery/test/unit/manipulation.js +2120 -0
  152. data/demo/bower_components/jquery/test/unit/offset.js +559 -0
  153. data/demo/bower_components/jquery/test/unit/queue.js +314 -0
  154. data/demo/bower_components/jquery/test/unit/selector.js +172 -0
  155. data/demo/bower_components/jquery/test/unit/serialize.js +148 -0
  156. data/demo/bower_components/jquery/test/unit/support.js +370 -0
  157. data/demo/bower_components/jquery/test/unit/traversing.js +797 -0
  158. data/demo/bower_components/jquery/test/unit/wrap.js +265 -0
  159. data/demo/bower_components/jquery/test/xhtml.php +5 -0
  160. data/demo/index.html +347 -0
  161. data/demo/styles/main.css +208 -0
  162. data/demo/styles/main.scss +138 -0
  163. data/docs/docco.css +506 -0
  164. data/docs/guff.html +1127 -0
  165. data/docs/public/fonts/aller-bold.eot +0 -0
  166. data/docs/public/fonts/aller-bold.ttf +0 -0
  167. data/docs/public/fonts/aller-bold.woff +0 -0
  168. data/docs/public/fonts/aller-light.eot +0 -0
  169. data/docs/public/fonts/aller-light.ttf +0 -0
  170. data/docs/public/fonts/aller-light.woff +0 -0
  171. data/docs/public/fonts/novecento-bold.eot +0 -0
  172. data/docs/public/fonts/novecento-bold.ttf +0 -0
  173. data/docs/public/fonts/novecento-bold.woff +0 -0
  174. data/docs/public/stylesheets/normalize.css +375 -0
  175. data/guff.gemspec +16 -0
  176. data/guff.scss +514 -0
  177. data/gulpfile.js +67 -0
  178. data/lib/guff.rb +4 -0
  179. data/lib/stylesheets/_guff.scss +514 -0
  180. data/package.json +19 -0
  181. data/src/_functions.scss +57 -0
  182. data/src/_mixins.scss +301 -0
  183. data/src/_reset.scss +67 -0
  184. data/src/_settings.scss +22 -0
  185. data/src/_typography.scss +67 -0
  186. metadata +259 -0
@@ -0,0 +1,169 @@
1
+ jQuery.fn.offset = function( options ) {
2
+ if ( arguments.length ) {
3
+ return options === undefined ?
4
+ this :
5
+ this.each(function( i ) {
6
+ jQuery.offset.setOffset( this, options, i );
7
+ });
8
+ }
9
+
10
+ var docElem, win,
11
+ box = { top: 0, left: 0 },
12
+ elem = this[ 0 ],
13
+ doc = elem && elem.ownerDocument;
14
+
15
+ if ( !doc ) {
16
+ return;
17
+ }
18
+
19
+ docElem = doc.documentElement;
20
+
21
+ // Make sure it's not a disconnected DOM node
22
+ if ( !jQuery.contains( docElem, elem ) ) {
23
+ return box;
24
+ }
25
+
26
+ // If we don't have gBCR, just use 0,0 rather than error
27
+ // BlackBerry 5, iOS 3 (original iPhone)
28
+ if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
29
+ box = elem.getBoundingClientRect();
30
+ }
31
+ win = getWindow( doc );
32
+ return {
33
+ top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
34
+ left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
35
+ };
36
+ };
37
+
38
+ jQuery.offset = {
39
+
40
+ setOffset: function( elem, options, i ) {
41
+ var position = jQuery.css( elem, "position" );
42
+
43
+ // set position first, in-case top/left are set even on static elem
44
+ if ( position === "static" ) {
45
+ elem.style.position = "relative";
46
+ }
47
+
48
+ var curElem = jQuery( elem ),
49
+ curOffset = curElem.offset(),
50
+ curCSSTop = jQuery.css( elem, "top" ),
51
+ curCSSLeft = jQuery.css( elem, "left" ),
52
+ calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
53
+ props = {}, curPosition = {}, curTop, curLeft;
54
+
55
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
56
+ if ( calculatePosition ) {
57
+ curPosition = curElem.position();
58
+ curTop = curPosition.top;
59
+ curLeft = curPosition.left;
60
+ } else {
61
+ curTop = parseFloat( curCSSTop ) || 0;
62
+ curLeft = parseFloat( curCSSLeft ) || 0;
63
+ }
64
+
65
+ if ( jQuery.isFunction( options ) ) {
66
+ options = options.call( elem, i, curOffset );
67
+ }
68
+
69
+ if ( options.top != null ) {
70
+ props.top = ( options.top - curOffset.top ) + curTop;
71
+ }
72
+ if ( options.left != null ) {
73
+ props.left = ( options.left - curOffset.left ) + curLeft;
74
+ }
75
+
76
+ if ( "using" in options ) {
77
+ options.using.call( elem, props );
78
+ } else {
79
+ curElem.css( props );
80
+ }
81
+ }
82
+ };
83
+
84
+
85
+ jQuery.fn.extend({
86
+
87
+ position: function() {
88
+ if ( !this[ 0 ] ) {
89
+ return;
90
+ }
91
+
92
+ var offsetParent, offset,
93
+ parentOffset = { top: 0, left: 0 },
94
+ elem = this[ 0 ];
95
+
96
+ // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
97
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
98
+ // we assume that getBoundingClientRect is available when computed position is fixed
99
+ offset = elem.getBoundingClientRect();
100
+ } else {
101
+ // Get *real* offsetParent
102
+ offsetParent = this.offsetParent();
103
+
104
+ // Get correct offsets
105
+ offset = this.offset();
106
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
107
+ parentOffset = offsetParent.offset();
108
+ }
109
+
110
+ // Add offsetParent borders
111
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
112
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
113
+ }
114
+
115
+ // Subtract parent offsets and element margins
116
+ // note: when an element has margin: auto the offsetLeft and marginLeft
117
+ // are the same in Safari causing offset.left to incorrectly be 0
118
+ return {
119
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
120
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
121
+ };
122
+ },
123
+
124
+ offsetParent: function() {
125
+ return this.map(function() {
126
+ var offsetParent = this.offsetParent || docElem;
127
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
128
+ offsetParent = offsetParent.offsetParent;
129
+ }
130
+ return offsetParent || docElem;
131
+ });
132
+ }
133
+ });
134
+
135
+
136
+ // Create scrollLeft and scrollTop methods
137
+ jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
138
+ var top = /Y/.test( prop );
139
+
140
+ jQuery.fn[ method ] = function( val ) {
141
+ return jQuery.access( this, function( elem, method, val ) {
142
+ var win = getWindow( elem );
143
+
144
+ if ( val === undefined ) {
145
+ return win ? (prop in win) ? win[ prop ] :
146
+ win.document.documentElement[ method ] :
147
+ elem[ method ];
148
+ }
149
+
150
+ if ( win ) {
151
+ win.scrollTo(
152
+ !top ? val : jQuery( win ).scrollLeft(),
153
+ top ? val : jQuery( win ).scrollTop()
154
+ );
155
+
156
+ } else {
157
+ elem[ method ] = val;
158
+ }
159
+ }, method, val, arguments.length, null );
160
+ };
161
+ });
162
+
163
+ function getWindow( elem ) {
164
+ return jQuery.isWindow( elem ) ?
165
+ elem :
166
+ elem.nodeType === 9 ?
167
+ elem.defaultView || elem.parentWindow :
168
+ false;
169
+ }
@@ -0,0 +1,2 @@
1
+
2
+ })( window );
@@ -0,0 +1,146 @@
1
+ jQuery.extend({
2
+ queue: function( elem, type, data ) {
3
+ var queue;
4
+
5
+ if ( elem ) {
6
+ type = ( type || "fx" ) + "queue";
7
+ queue = jQuery._data( elem, type );
8
+
9
+ // Speed up dequeue by getting out quickly if this is just a lookup
10
+ if ( data ) {
11
+ if ( !queue || jQuery.isArray(data) ) {
12
+ queue = jQuery._data( elem, type, jQuery.makeArray(data) );
13
+ } else {
14
+ queue.push( data );
15
+ }
16
+ }
17
+ return queue || [];
18
+ }
19
+ },
20
+
21
+ dequeue: function( elem, type ) {
22
+ type = type || "fx";
23
+
24
+ var queue = jQuery.queue( elem, type ),
25
+ startLength = queue.length,
26
+ fn = queue.shift(),
27
+ hooks = jQuery._queueHooks( elem, type ),
28
+ next = function() {
29
+ jQuery.dequeue( elem, type );
30
+ };
31
+
32
+ // If the fx queue is dequeued, always remove the progress sentinel
33
+ if ( fn === "inprogress" ) {
34
+ fn = queue.shift();
35
+ startLength--;
36
+ }
37
+
38
+ if ( fn ) {
39
+
40
+ // Add a progress sentinel to prevent the fx queue from being
41
+ // automatically dequeued
42
+ if ( type === "fx" ) {
43
+ queue.unshift( "inprogress" );
44
+ }
45
+
46
+ // clear up the last queue stop function
47
+ delete hooks.stop;
48
+ fn.call( elem, next, hooks );
49
+ }
50
+
51
+ if ( !startLength && hooks ) {
52
+ hooks.empty.fire();
53
+ }
54
+ },
55
+
56
+ // not intended for public consumption - generates a queueHooks object, or returns the current one
57
+ _queueHooks: function( elem, type ) {
58
+ var key = type + "queueHooks";
59
+ return jQuery._data( elem, key ) || jQuery._data( elem, key, {
60
+ empty: jQuery.Callbacks("once memory").add(function() {
61
+ jQuery._removeData( elem, type + "queue" );
62
+ jQuery._removeData( elem, key );
63
+ })
64
+ });
65
+ }
66
+ });
67
+
68
+ jQuery.fn.extend({
69
+ queue: function( type, data ) {
70
+ var setter = 2;
71
+
72
+ if ( typeof type !== "string" ) {
73
+ data = type;
74
+ type = "fx";
75
+ setter--;
76
+ }
77
+
78
+ if ( arguments.length < setter ) {
79
+ return jQuery.queue( this[0], type );
80
+ }
81
+
82
+ return data === undefined ?
83
+ this :
84
+ this.each(function() {
85
+ var queue = jQuery.queue( this, type, data );
86
+
87
+ // ensure a hooks for this queue
88
+ jQuery._queueHooks( this, type );
89
+
90
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
91
+ jQuery.dequeue( this, type );
92
+ }
93
+ });
94
+ },
95
+ dequeue: function( type ) {
96
+ return this.each(function() {
97
+ jQuery.dequeue( this, type );
98
+ });
99
+ },
100
+ // Based off of the plugin by Clint Helfers, with permission.
101
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
102
+ delay: function( time, type ) {
103
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
104
+ type = type || "fx";
105
+
106
+ return this.queue( type, function( next, hooks ) {
107
+ var timeout = setTimeout( next, time );
108
+ hooks.stop = function() {
109
+ clearTimeout( timeout );
110
+ };
111
+ });
112
+ },
113
+ clearQueue: function( type ) {
114
+ return this.queue( type || "fx", [] );
115
+ },
116
+ // Get a promise resolved when queues of a certain type
117
+ // are emptied (fx is the type by default)
118
+ promise: function( type, obj ) {
119
+ var tmp,
120
+ count = 1,
121
+ defer = jQuery.Deferred(),
122
+ elements = this,
123
+ i = this.length,
124
+ resolve = function() {
125
+ if ( !( --count ) ) {
126
+ defer.resolveWith( elements, [ elements ] );
127
+ }
128
+ };
129
+
130
+ if ( typeof type !== "string" ) {
131
+ obj = type;
132
+ type = undefined;
133
+ }
134
+ type = type || "fx";
135
+
136
+ while( i-- ) {
137
+ tmp = jQuery._data( elements[ i ], type + "queueHooks" );
138
+ if ( tmp && tmp.empty ) {
139
+ count++;
140
+ tmp.empty.add( resolve );
141
+ }
142
+ }
143
+ resolve();
144
+ return defer.promise( obj );
145
+ }
146
+ });
@@ -0,0 +1,99 @@
1
+ var r20 = /%20/g,
2
+ rbracket = /\[\]$/,
3
+ rCRLF = /\r?\n/g,
4
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
5
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
6
+
7
+ jQuery.fn.extend({
8
+ serialize: function() {
9
+ return jQuery.param( this.serializeArray() );
10
+ },
11
+ serializeArray: function() {
12
+ return this.map(function(){
13
+ // Can add propHook for "elements" to filter or add form elements
14
+ var elements = jQuery.prop( this, "elements" );
15
+ return elements ? jQuery.makeArray( elements ) : this;
16
+ })
17
+ .filter(function(){
18
+ var type = this.type;
19
+ // Use .is(":disabled") so that fieldset[disabled] works
20
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
21
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
22
+ ( this.checked || !manipulation_rcheckableType.test( type ) );
23
+ })
24
+ .map(function( i, elem ){
25
+ var val = jQuery( this ).val();
26
+
27
+ return val == null ?
28
+ null :
29
+ jQuery.isArray( val ) ?
30
+ jQuery.map( val, function( val ){
31
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
32
+ }) :
33
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
34
+ }).get();
35
+ }
36
+ });
37
+
38
+ //Serialize an array of form elements or a set of
39
+ //key/values into a query string
40
+ jQuery.param = function( a, traditional ) {
41
+ var prefix,
42
+ s = [],
43
+ add = function( key, value ) {
44
+ // If value is a function, invoke it and return its value
45
+ value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
46
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
47
+ };
48
+
49
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
50
+ if ( traditional === undefined ) {
51
+ traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
52
+ }
53
+
54
+ // If an array was passed in, assume that it is an array of form elements.
55
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
56
+ // Serialize the form elements
57
+ jQuery.each( a, function() {
58
+ add( this.name, this.value );
59
+ });
60
+
61
+ } else {
62
+ // If traditional, encode the "old" way (the way 1.3.2 or older
63
+ // did it), otherwise encode params recursively.
64
+ for ( prefix in a ) {
65
+ buildParams( prefix, a[ prefix ], traditional, add );
66
+ }
67
+ }
68
+
69
+ // Return the resulting serialization
70
+ return s.join( "&" ).replace( r20, "+" );
71
+ };
72
+
73
+ function buildParams( prefix, obj, traditional, add ) {
74
+ var name;
75
+
76
+ if ( jQuery.isArray( obj ) ) {
77
+ // Serialize array item.
78
+ jQuery.each( obj, function( i, v ) {
79
+ if ( traditional || rbracket.test( prefix ) ) {
80
+ // Treat each array item as a scalar.
81
+ add( prefix, v );
82
+
83
+ } else {
84
+ // Item is non-scalar (array or object), encode its numeric index.
85
+ buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
86
+ }
87
+ });
88
+
89
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
90
+ // Serialize object item.
91
+ for ( name in obj ) {
92
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
93
+ }
94
+
95
+ } else {
96
+ // Serialize scalar item.
97
+ add( prefix, obj );
98
+ }
99
+ }
@@ -0,0 +1,7 @@
1
+ jQuery.find = Sizzle;
2
+ jQuery.expr = Sizzle.selectors;
3
+ jQuery.expr[":"] = jQuery.expr.pseudos;
4
+ jQuery.unique = Sizzle.uniqueSort;
5
+ jQuery.text = Sizzle.getText;
6
+ jQuery.isXMLDoc = Sizzle.isXML;
7
+ jQuery.contains = Sizzle.contains;
@@ -0,0 +1,246 @@
1
+ jQuery.support = (function( support ) {
2
+
3
+ var all, a, input, select, fragment, opt, eventName, isSupported, i,
4
+ div = document.createElement("div");
5
+
6
+ // Setup
7
+ div.setAttribute( "className", "t" );
8
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
9
+
10
+ // Finish early in limited (non-browser) environments
11
+ all = div.getElementsByTagName("*") || [];
12
+ a = div.getElementsByTagName("a")[ 0 ];
13
+ if ( !a || !a.style || !all.length ) {
14
+ return support;
15
+ }
16
+
17
+ // First batch of tests
18
+ select = document.createElement("select");
19
+ opt = select.appendChild( document.createElement("option") );
20
+ input = div.getElementsByTagName("input")[ 0 ];
21
+
22
+ a.style.cssText = "top:1px;float:left;opacity:.5";
23
+
24
+ // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
25
+ support.getSetAttribute = div.className !== "t";
26
+
27
+ // IE strips leading whitespace when .innerHTML is used
28
+ support.leadingWhitespace = div.firstChild.nodeType === 3;
29
+
30
+ // Make sure that tbody elements aren't automatically inserted
31
+ // IE will insert them into empty tables
32
+ support.tbody = !div.getElementsByTagName("tbody").length;
33
+
34
+ // Make sure that link elements get serialized correctly by innerHTML
35
+ // This requires a wrapper element in IE
36
+ support.htmlSerialize = !!div.getElementsByTagName("link").length;
37
+
38
+ // Get the style information from getAttribute
39
+ // (IE uses .cssText instead)
40
+ support.style = /top/.test( a.getAttribute("style") );
41
+
42
+ // Make sure that URLs aren't manipulated
43
+ // (IE normalizes it by default)
44
+ support.hrefNormalized = a.getAttribute("href") === "/a";
45
+
46
+ // Make sure that element opacity exists
47
+ // (IE uses filter instead)
48
+ // Use a regex to work around a WebKit issue. See #5145
49
+ support.opacity = /^0.5/.test( a.style.opacity );
50
+
51
+ // Verify style float existence
52
+ // (IE uses styleFloat instead of cssFloat)
53
+ support.cssFloat = !!a.style.cssFloat;
54
+
55
+ // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
56
+ support.checkOn = !!input.value;
57
+
58
+ // Make sure that a selected-by-default option has a working selected property.
59
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
60
+ support.optSelected = opt.selected;
61
+
62
+ // Tests for enctype support on a form (#6743)
63
+ support.enctype = !!document.createElement("form").enctype;
64
+
65
+ // Makes sure cloning an html5 element does not cause problems
66
+ // Where outerHTML is undefined, this still works
67
+ support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>";
68
+
69
+ // Will be defined later
70
+ support.inlineBlockNeedsLayout = false;
71
+ support.shrinkWrapBlocks = false;
72
+ support.pixelPosition = false;
73
+ support.deleteExpando = true;
74
+ support.noCloneEvent = true;
75
+ support.reliableMarginRight = true;
76
+ support.boxSizingReliable = true;
77
+
78
+ // Make sure checked status is properly cloned
79
+ input.checked = true;
80
+ support.noCloneChecked = input.cloneNode( true ).checked;
81
+
82
+ // Make sure that the options inside disabled selects aren't marked as disabled
83
+ // (WebKit marks them as disabled)
84
+ select.disabled = true;
85
+ support.optDisabled = !opt.disabled;
86
+
87
+ // Support: IE<9
88
+ try {
89
+ delete div.test;
90
+ } catch( e ) {
91
+ support.deleteExpando = false;
92
+ }
93
+
94
+ // Check if we can trust getAttribute("value")
95
+ input = document.createElement("input");
96
+ input.setAttribute( "value", "" );
97
+ support.input = input.getAttribute( "value" ) === "";
98
+
99
+ // Check if an input maintains its value after becoming a radio
100
+ input.value = "t";
101
+ input.setAttribute( "type", "radio" );
102
+ support.radioValue = input.value === "t";
103
+
104
+ // #11217 - WebKit loses check when the name is after the checked attribute
105
+ input.setAttribute( "checked", "t" );
106
+ input.setAttribute( "name", "t" );
107
+
108
+ fragment = document.createDocumentFragment();
109
+ fragment.appendChild( input );
110
+
111
+ // Check if a disconnected checkbox will retain its checked
112
+ // value of true after appended to the DOM (IE6/7)
113
+ support.appendChecked = input.checked;
114
+
115
+ // WebKit doesn't clone checked state correctly in fragments
116
+ support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
117
+
118
+ // Support: IE<9
119
+ // Opera does not clone events (and typeof div.attachEvent === undefined).
120
+ // IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
121
+ if ( div.attachEvent ) {
122
+ div.attachEvent( "onclick", function() {
123
+ support.noCloneEvent = false;
124
+ });
125
+
126
+ div.cloneNode( true ).click();
127
+ }
128
+
129
+ // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)
130
+ // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
131
+ for ( i in { submit: true, change: true, focusin: true }) {
132
+ div.setAttribute( eventName = "on" + i, "t" );
133
+
134
+ support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
135
+ }
136
+
137
+ div.style.backgroundClip = "content-box";
138
+ div.cloneNode( true ).style.backgroundClip = "";
139
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
140
+
141
+ // Support: IE<9
142
+ // Iteration over object's inherited properties before its own.
143
+ for ( i in jQuery( support ) ) {
144
+ break;
145
+ }
146
+ support.ownLast = i !== "0";
147
+
148
+ // Run tests that need a body at doc ready
149
+ jQuery(function() {
150
+ var container, marginDiv, tds,
151
+ divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
152
+ body = document.getElementsByTagName("body")[0];
153
+
154
+ if ( !body ) {
155
+ // Return for frameset docs that don't have a body
156
+ return;
157
+ }
158
+
159
+ container = document.createElement("div");
160
+ container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
161
+
162
+ body.appendChild( container ).appendChild( div );
163
+
164
+ // Support: IE8
165
+ // Check if table cells still have offsetWidth/Height when they are set
166
+ // to display:none and there are still other visible table cells in a
167
+ // table row; if so, offsetWidth/Height are not reliable for use when
168
+ // determining if an element has been hidden directly using
169
+ // display:none (it is still safe to use offsets if a parent element is
170
+ // hidden; don safety goggles and see bug #4512 for more information).
171
+ div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
172
+ tds = div.getElementsByTagName("td");
173
+ tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
174
+ isSupported = ( tds[ 0 ].offsetHeight === 0 );
175
+
176
+ tds[ 0 ].style.display = "";
177
+ tds[ 1 ].style.display = "none";
178
+
179
+ // Support: IE8
180
+ // Check if empty table cells still have offsetWidth/Height
181
+ support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
182
+
183
+ // Check box-sizing and margin behavior.
184
+ div.innerHTML = "";
185
+ div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
186
+
187
+ // Workaround failing boxSizing test due to offsetWidth returning wrong value
188
+ // with some non-1 values of body zoom, ticket #13543
189
+ jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
190
+ support.boxSizing = div.offsetWidth === 4;
191
+ });
192
+
193
+ // Use window.getComputedStyle because jsdom on node.js will break without it.
194
+ if ( window.getComputedStyle ) {
195
+ support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
196
+ support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
197
+
198
+ // Check if div with explicit width and no margin-right incorrectly
199
+ // gets computed margin-right based on width of container. (#3333)
200
+ // Fails in WebKit before Feb 2011 nightlies
201
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
202
+ marginDiv = div.appendChild( document.createElement("div") );
203
+ marginDiv.style.cssText = div.style.cssText = divReset;
204
+ marginDiv.style.marginRight = marginDiv.style.width = "0";
205
+ div.style.width = "1px";
206
+
207
+ support.reliableMarginRight =
208
+ !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
209
+ }
210
+
211
+ if ( typeof div.style.zoom !== core_strundefined ) {
212
+ // Support: IE<8
213
+ // Check if natively block-level elements act like inline-block
214
+ // elements when setting their display to 'inline' and giving
215
+ // them layout
216
+ div.innerHTML = "";
217
+ div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
218
+ support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
219
+
220
+ // Support: IE6
221
+ // Check if elements with layout shrink-wrap their children
222
+ div.style.display = "block";
223
+ div.innerHTML = "<div></div>";
224
+ div.firstChild.style.width = "5px";
225
+ support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
226
+
227
+ if ( support.inlineBlockNeedsLayout ) {
228
+ // Prevent IE 6 from affecting layout for positioned elements #11048
229
+ // Prevent IE from shrinking the body in IE 7 mode #12869
230
+ // Support: IE<8
231
+ body.style.zoom = 1;
232
+ }
233
+ }
234
+
235
+ body.removeChild( container );
236
+
237
+ // Null elements to avoid leaks in IE
238
+ container = div = tds = marginDiv = null;
239
+ });
240
+
241
+ // Null elements to avoid leaks in IE
242
+ all = select = fragment = opt = a = input = null;
243
+
244
+ return support;
245
+ })({});
246
+