compass-aurora 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,6 @@ extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
6
6
  Compass::Frameworks.register('aurora', :path => extension_path)
7
7
 
8
8
  module Aurora
9
- VERSION = "0.9.1"
10
- DATE = "2012-10-09"
9
+ VERSION = "0.9.2"
10
+ DATE = "2012-10-10"
11
11
  end
@@ -0,0 +1,399 @@
1
+ /**
2
+ * box-sizing Polyfill
3
+ *
4
+ * A polyfill for box-sizing: border-box for IE6 & IE7.
5
+ *
6
+ * JScript
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU Lesser General Public License as published
10
+ * by the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ * GNU Lesser General Public License for more details.
17
+ *
18
+ * See <http://www.gnu.org/licenses/lgpl-3.0.txt>
19
+ *
20
+ * @category JScript
21
+ * @package box-sizing-polyfill
22
+ * @author Christian Schepp Schaefer <schaepp@gmx.de> <http://twitter.com/derSchepp>
23
+ * @copyright 2012 Christian Schepp Schaefer
24
+ * @license http://www.gnu.org/copyleft/lesser.html The GNU LESSER GENERAL PUBLIC LICENSE, Version 3.0
25
+ * @link http://github.com/Schepp/box-sizing-polyfill
26
+ *
27
+ * PREFACE:
28
+ *
29
+ * This box-sizing polyfill is based on previous work done by Erik Arvidsson,
30
+ * which he published in 2002 on http://webfx.eae.net/dhtml/boxsizing/boxsizing.html.
31
+ *
32
+ * USAGE:
33
+ *
34
+ * Add the behavior/HTC after every `box-sizing: border-box;` that you assign:
35
+ *
36
+ * box-sizing: border-box;
37
+ * *behavior: url(/scripts/boxsizing.htc);`
38
+ *
39
+ * Prefix the `behavior` property with a star, like seen above, so it will only be seen by
40
+ * IE6 & IE7, not by IE8+ who already implement box-sizing.
41
+ *
42
+ * The URL to the HTC file must be relative to your HTML(!) document, not relative to your CSS.
43
+ * That's why I'd advise you to use absolute paths like in the example.
44
+ *
45
+ */
46
+ <component lightWeight="true">
47
+ <attach event="onpropertychange" onevent="checkPropertyChange()" />
48
+ <attach event="ondetach" onevent="restore()" />
49
+ <attach event="onresize" for="window" onevent="update()" />
50
+ <script type="text/javascript">
51
+ //<![CDATA[
52
+
53
+ var viewportwidth = (typeof window.innerWidth != 'undefined' ? window.innerWidth : element.document.documentElement.clientWidth);
54
+
55
+ // Shortcut for the document object
56
+ var doc = element.document;
57
+
58
+ // Buffer for multiple resize events
59
+ var resizetimeout = null;
60
+
61
+ // Don't apply box-sizing to certain elements
62
+ var apply = false;
63
+ switch(element.nodeName){
64
+ case '#comment':
65
+ case 'HTML':
66
+ case 'HEAD':
67
+ case 'TITLE':
68
+ case 'SCRIPT':
69
+ case 'STYLE':
70
+ case 'LINK':
71
+ case 'META':
72
+ break;
73
+
74
+ default:
75
+ apply = true;
76
+ break;
77
+ }
78
+
79
+ /*
80
+ * update gets called during resize events, then waits until there are no further resize events, and finally triggers a recalculation
81
+ */
82
+ function update(){
83
+ if(resizetimeout !== null){
84
+ window.clearTimeout(resizetimeout);
85
+ }
86
+ resizetimeout = window.setTimeout(function(){
87
+ restore();
88
+ init();
89
+ resizetimeout = null;
90
+ },100);
91
+ }
92
+
93
+ /*
94
+ * restore gets called when the behavior is being detached (see event binding at the top),
95
+ * resets everything like it was before applying the behavior
96
+ */
97
+ function restore(){
98
+ if(apply){
99
+ element.runtimeStyle.removeAttribute("width");
100
+ element.runtimeStyle.removeAttribute("height");
101
+ }
102
+ }
103
+
104
+ /*
105
+ * init gets called once at the start and then never again,
106
+ * triggers box-sizing calculations and updates width and height
107
+ */
108
+ function init(){
109
+ if(apply){
110
+ updateBorderBoxWidth();
111
+ updateBorderBoxHeight();
112
+ }
113
+ }
114
+
115
+ /*
116
+ * checkPropertyChange gets called as soon as an element property changes
117
+ * (see event binding at the top), it then checks if any property influencing its
118
+ * dimensions was changed and if yes recalculates width and height
119
+ */
120
+ function checkPropertyChange(){
121
+ if(apply){
122
+ var pn = event.propertyName;
123
+ if(pn === "style.boxSizing" && element.style.boxSizing === ""){
124
+ element.style.removeAttribute("boxSizing");
125
+ element.runtimeStyle.removeAttribute("boxSizing");
126
+ element.runtimeStyle.removeAttribute("width");
127
+ element.runtimeStyle.removeAttribute("height");
128
+ }
129
+ switch (pn){
130
+ case "style.width":
131
+ case "style.borderLeftWidth":
132
+ case "style.borderLeftStyle":
133
+ case "style.borderRightWidth":
134
+ case "style.borderRightStyle":
135
+ case "style.paddingLeft":
136
+ case "style.paddingRight":
137
+ updateBorderBoxWidth();
138
+ break;
139
+
140
+ case "style.height":
141
+ case "style.borderTopWidth":
142
+ case "style.borderTopStyle":
143
+ case "style.borderBottomWidth":
144
+ case "style.borderBottomStyle":
145
+ case "style.paddingTop":
146
+ case "style.paddingBottom":
147
+ updateBorderBoxHeight();
148
+ break;
149
+
150
+ case "className":
151
+ case "style.boxSizing":
152
+ updateBorderBoxWidth();
153
+ updateBorderBoxHeight();
154
+ break;
155
+ }
156
+ }
157
+ }
158
+
159
+ /*
160
+ * Helper function, taken from Dean Edward's IE7 framework,
161
+ * added by Schepp on 12.06.2010.
162
+ * http://code.google.com/p/ie7-js/
163
+ *
164
+ * Allows us to convert from relative to pixel-values.
165
+ */
166
+ function getPixelValue(value){
167
+ var PIXEL = /^\d+(px)?$/i;
168
+ if (PIXEL.test(value)) return parseInt(value);
169
+ var style = element.style.left;
170
+ var runtimeStyle = element.runtimeStyle.left;
171
+ element.runtimeStyle.left = element.currentStyle.left;
172
+ element.style.left = value || 0;
173
+ value = parseInt(element.style.pixelLeft);
174
+ element.style.left = style;
175
+ element.runtimeStyle.left = runtimeStyle;
176
+
177
+ return value;
178
+ }
179
+
180
+ function getPixelWidth(object, value){
181
+ // For Pixel Values
182
+ var PIXEL = /^\d+(px)?$/i;
183
+ if (PIXEL.test(value)) return parseInt(value);
184
+
185
+ // For Percentage Values
186
+ var PERCENT = /^[\d\.]+%$/i;
187
+ if (PERCENT.test(value)){
188
+ try{
189
+ parentWidth = getPixelWidth(object.parentElement,(object.parentElement.currentStyle.width != "auto" ? object.parentElement.currentStyle.width : "100%"));
190
+ value = (parseFloat(value) / 100) * parentWidth;
191
+ }
192
+ catch(e){
193
+ value = (parseFloat(value) / 100) * element.document.documentElement.clientWidth;
194
+ }
195
+ return parseInt(value);
196
+ }
197
+
198
+ // For EM Values
199
+ var style = object.style.left;
200
+ var runtimeStyle = object.runtimeStyle.left;
201
+ object.runtimeStyle.left = object.currentStyle.left;
202
+ object.style.left = value || 0;
203
+ value = parseInt(object.style.pixelLeft);
204
+ object.style.left = style;
205
+ object.runtimeStyle.left = runtimeStyle;
206
+
207
+ return value;
208
+ }
209
+
210
+ function getPixelHeight(object, value){
211
+ // For Pixel Values
212
+ var PIXEL = /^\d+(px)?$/i;
213
+ if (PIXEL.test(value)) return parseInt(value);
214
+
215
+ // For Percentage Values
216
+ var PERCENT = /^[\d\.]+%$/i;
217
+ if (PERCENT.test(value)){
218
+ try{
219
+ if(object.parentElement.currentStyle.height != "auto"){
220
+ switch(object.parentElement.nodeName){
221
+ default:
222
+ parentHeight = getPixelHeight(object.parentElement,object.parentElement.currentStyle.height);
223
+ if(parentHeight !== "auto"){
224
+ value = (parseFloat(value) / 100) * parentHeight;
225
+ }
226
+ else {
227
+ value = "auto";
228
+ }
229
+ break;
230
+
231
+ case 'HTML':
232
+ parentHeight = element.document.documentElement.clientHeight;
233
+ if(parentHeight !== "auto"){
234
+ value = (parseFloat(value) / 100) * parentHeight;
235
+ }
236
+ else {
237
+ value = "auto";
238
+ }
239
+ break;
240
+ }
241
+ if(value !== "auto") value = parseInt(value);
242
+ }
243
+ else {
244
+ value = "auto";
245
+ }
246
+ }
247
+ catch(e){
248
+ value = "auto";
249
+ }
250
+ return value;
251
+ }
252
+
253
+ // For EM Values
254
+ var style = object.style.left;
255
+ var runtimeStyle = object.runtimeStyle.left;
256
+ object.runtimeStyle.left = object.currentStyle.left;
257
+ object.style.left = value || 0;
258
+ value = parseInt(object.style.pixelLeft);
259
+ object.style.left = style;
260
+ object.runtimeStyle.left = runtimeStyle;
261
+
262
+ return value;
263
+ }
264
+
265
+
266
+ /*
267
+ * getBorderWidth & friends
268
+ * Border width getters
269
+ */
270
+ function getBorderWidth(sSide){
271
+ if(element.currentStyle["border" + sSide + "Style"] == "none"){
272
+ return 0;
273
+ }
274
+ var n = getPixelValue(element.currentStyle["border" + sSide + "Width"]);
275
+ return n || 0;
276
+ }
277
+ function getBorderLeftWidth() { return getBorderWidth("Left"); }
278
+ function getBorderRightWidth() { return getBorderWidth("Right"); }
279
+ function getBorderTopWidth() { return getBorderWidth("Top"); }
280
+ function getBorderBottomWidth() { return getBorderWidth("Bottom"); }
281
+
282
+
283
+ /*
284
+ * getPadding & friends
285
+ * Padding width getters
286
+ */
287
+ function getPadding(sSide) {
288
+ var n = getPixelValue(element.currentStyle["padding" + sSide]);
289
+ return n || 0;
290
+ }
291
+ function getPaddingLeft() { return getPadding("Left"); }
292
+ function getPaddingRight() { return getPadding("Right"); }
293
+ function getPaddingTop() { return getPadding("Top"); }
294
+ function getPaddingBottom() { return getPadding("Bottom"); }
295
+
296
+
297
+
298
+ /*
299
+ * getBoxSizing
300
+ * Get the box-sizing value for the current element
301
+ */
302
+ function getBoxSizing(){
303
+ var s = element.style;
304
+ var cs = element.currentStyle
305
+ if(typeof s.boxSizing != "undefined" && s.boxSizing != ""){
306
+ return s.boxSizing;
307
+ }
308
+ if(typeof s["box-sizing"] != "undefined" && s["box-sizing"] != ""){
309
+ return s["box-sizing"];
310
+ }
311
+ if(typeof cs.boxSizing != "undefined" && cs.boxSizing != ""){
312
+ return cs.boxSizing;
313
+ }
314
+ if(typeof cs["box-sizing"] != "undefined" && cs["box-sizing"] != ""){
315
+ return cs["box-sizing"];
316
+ }
317
+ return getDocumentBoxSizing();
318
+ }
319
+
320
+
321
+ /*
322
+ * getDocumentBoxSizing
323
+ * Get the default document box sizing (check for quirks mode)
324
+ */
325
+ function getDocumentBoxSizing(){
326
+ if(doc.compatMode === null || doc.compatMode === "BackCompat"){
327
+ return "border-box";
328
+ }
329
+ return "content-box"
330
+ }
331
+
332
+
333
+ /*
334
+ * setBorderBoxWidth & friends
335
+ * Width and height setters
336
+ */
337
+ function setBorderBoxWidth(n){
338
+ element.runtimeStyle.width = Math.max(0, n - getBorderLeftWidth() -
339
+ getPaddingLeft() - getPaddingRight() - getBorderRightWidth()) + "px";
340
+ }
341
+ function setBorderBoxHeight(n){
342
+ element.runtimeStyle.height = Math.max(0, n - getBorderTopWidth() -
343
+ getPaddingTop() - getPaddingBottom() - getBorderBottomWidth()) + "px";
344
+ }
345
+ function setContentBoxWidth(n){
346
+ element.runtimeStyle.width = Math.max(0, n + getBorderLeftWidth() +
347
+ getPaddingLeft() + getPaddingRight() + getBorderRightWidth()) + "px";
348
+ }
349
+ function setContentBoxHeight(n){
350
+ element.runtimeStyle.height = Math.max(0, n + getBorderTopWidth() +
351
+ getPaddingTop() + getPaddingBottom() + getBorderBottomWidth()) + "px";
352
+ }
353
+
354
+
355
+ /*
356
+ * updateBorderBoxWidth & updateBorderBoxHeight
357
+ *
358
+ */
359
+ function updateBorderBoxWidth() {
360
+ if(getDocumentBoxSizing() == getBoxSizing()){
361
+ return;
362
+ }
363
+ var csw = element.currentStyle.width;
364
+ if(csw != "auto"){
365
+ csw = getPixelWidth(element,csw);
366
+ if(getBoxSizing() == "border-box"){
367
+ setBorderBoxWidth(parseInt(csw));
368
+ }
369
+ else{
370
+ setContentBoxWidth(parseInt(csw));
371
+ }
372
+ }
373
+ }
374
+
375
+ function updateBorderBoxHeight() {
376
+ if(getDocumentBoxSizing() == getBoxSizing()){
377
+ return;
378
+ }
379
+ var csh = element.currentStyle.height;
380
+ if(csh != "auto"){
381
+ csh = getPixelHeight(element,csh);
382
+ if(csh !== "auto"){
383
+ if(getBoxSizing() == "border-box"){
384
+ setBorderBoxHeight(parseInt(csh));
385
+ }
386
+ else{
387
+ setContentBoxHeight(parseInt(csh));
388
+ }
389
+ }
390
+ }
391
+ }
392
+
393
+
394
+ // Run the calculations
395
+ init();
396
+
397
+ //]]>
398
+ </script>
399
+ </component>
@@ -0,0 +1,23 @@
1
+ <?php
2
+ /*
3
+ This file is a wrapper, for use in PHP environments, which serves boxsizing.htc using the
4
+ correct content-type, so that IE will recognize it as a behavior. Simply specify the
5
+ behavior property to fetch this .php file instead of the .htc directly:
6
+
7
+ //
8
+ // Reset box sizing
9
+ //
10
+ * {
11
+ margin: 0;
12
+ @include box-sizing(border-box);
13
+ *behavior: url(/sites/all/libraries/boxsizing/boxsizing.php);
14
+ }
15
+
16
+ This is only necessary when the web server is not configured to serve .htc files with
17
+ the text/x-component content-type, and cannot easily be configured to do so (as is the
18
+ case with some shared hosting providers).
19
+ */
20
+
21
+ header( 'Content-type: text/x-component' );
22
+ include( 'boxsizing.htc' );
23
+ ?>
@@ -34,6 +34,10 @@ file '../shared/hammer.js', :like => :javascript, :to => 'hammer.js'
34
34
  file '../shared/loader.js', :like => :javascript, :to => 'loader.js'
35
35
  file '../shared/modernizr-2.5.3.js', :like => :javascript, :to => 'modernizr-2.5.3.js'
36
36
 
37
+ # Behaviors
38
+ file 'behaviors/box-sizing/boxsizing.htc'
39
+ file 'behaviors/box-sizing/boxsizing.php'
40
+
37
41
  help %Q{
38
42
  Please contact Sam Richard with questions:
39
43
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 9
8
- - 1
9
- version: 0.9.1
8
+ - 2
9
+ version: 0.9.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sam Richard
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-10-09 00:00:00 -04:00
17
+ date: 2012-10-10 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -42,8 +42,8 @@ dependencies:
42
42
  segments:
43
43
  - 0
44
44
  - 1
45
- - 14
46
- version: 0.1.14
45
+ - 17
46
+ version: 0.1.17
47
47
  type: :runtime
48
48
  version_requirements: *id002
49
49
  - !ruby/object:Gem::Dependency
@@ -99,6 +99,8 @@ files:
99
99
  - templates/shared/style.scss
100
100
  - templates/shared/template.php.erb
101
101
  - templates/singularity/_base.scss
102
+ - templates/singularity/behaviors/box-sizing/boxsizing.htc
103
+ - templates/singularity/behaviors/box-sizing/boxsizing.php
102
104
  - templates/singularity/manifest.rb
103
105
  - templates/susy/_base.scss
104
106
  - templates/susy/manifest.rb