compass 0.11.alpha.4 → 0.11.beta.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (309) hide show
  1. data/Rakefile +1 -1
  2. data/VERSION.yml +2 -2
  3. data/examples/blueprint_plugins/src/link_icons.scss +1 -1
  4. data/examples/blueprint_semantic/src/liquid.scss +3 -3
  5. data/examples/blueprint_semantic/src/screen.scss +4 -4
  6. data/examples/compass/config.rb +1 -0
  7. data/examples/compass/images/emblem-a043c4f148.png +0 -0
  8. data/examples/compass/images/emblem/favorite.png +0 -0
  9. data/examples/compass/images/emblem/important.png +0 -0
  10. data/examples/compass/images/emblem/photos.png +0 -0
  11. data/examples/compass/images/emblem/readonly.png +0 -0
  12. data/examples/compass/images/emblem/symbolic-link.png +0 -0
  13. data/examples/compass/images/emblem/system.png +0 -0
  14. data/examples/compass/images/emblem/unreadable.png +0 -0
  15. data/examples/compass/images/flag-03c3b29b35.png +0 -0
  16. data/examples/compass/images/flag-21cfbfbfc8.png +0 -0
  17. data/examples/compass/images/flag/ad.png +0 -0
  18. data/examples/compass/images/flag/ae.png +0 -0
  19. data/examples/compass/images/flag/af.png +0 -0
  20. data/examples/compass/images/flag/ag.png +0 -0
  21. data/examples/compass/images/flag/ai.png +0 -0
  22. data/examples/compass/images/flag/al.png +0 -0
  23. data/examples/compass/images/flag/am.png +0 -0
  24. data/examples/compass/images/flag/an.png +0 -0
  25. data/examples/compass/images/flag/ao.png +0 -0
  26. data/examples/compass/images/flag/ar.png +0 -0
  27. data/examples/compass/images/flag/as.png +0 -0
  28. data/examples/compass/images/flag/at.png +0 -0
  29. data/examples/compass/images/flag/au.png +0 -0
  30. data/examples/compass/images/flag/aw.png +0 -0
  31. data/examples/compass/images/flag/ax.png +0 -0
  32. data/examples/compass/images/flag/az.png +0 -0
  33. data/examples/compass/images/flag/ba.png +0 -0
  34. data/examples/compass/images/flag/bb.png +0 -0
  35. data/examples/compass/images/flag/bd.png +0 -0
  36. data/examples/compass/images/flag/be.png +0 -0
  37. data/examples/compass/images/flag/bf.png +0 -0
  38. data/examples/compass/images/flag/bg.png +0 -0
  39. data/examples/compass/images/flag/bh.png +0 -0
  40. data/examples/compass/images/flag/bi.png +0 -0
  41. data/examples/compass/images/flag/bj.png +0 -0
  42. data/examples/compass/images/flag/bm.png +0 -0
  43. data/examples/compass/images/flag/bn.png +0 -0
  44. data/examples/compass/images/flag/bo.png +0 -0
  45. data/examples/compass/images/flag/br.png +0 -0
  46. data/examples/compass/images/flag/bs.png +0 -0
  47. data/examples/compass/images/flag/bt.png +0 -0
  48. data/examples/compass/images/flag/bv.png +0 -0
  49. data/examples/compass/images/flag/bw.png +0 -0
  50. data/examples/compass/images/flag/by.png +0 -0
  51. data/examples/compass/images/flag/bz.png +0 -0
  52. data/examples/compass/images/flag/ca.png +0 -0
  53. data/examples/compass/images/flag/catalonia.png +0 -0
  54. data/examples/compass/images/flag/cc.png +0 -0
  55. data/examples/compass/images/flag/cd.png +0 -0
  56. data/examples/compass/images/flag/cf.png +0 -0
  57. data/examples/compass/images/flag/cg.png +0 -0
  58. data/examples/compass/images/flag/ch.png +0 -0
  59. data/examples/compass/images/flag/ci.png +0 -0
  60. data/examples/compass/images/flag/ck.png +0 -0
  61. data/examples/compass/images/flag/cl.png +0 -0
  62. data/examples/compass/images/flag/cm.png +0 -0
  63. data/examples/compass/images/flag/cn.png +0 -0
  64. data/examples/compass/images/flag/co.png +0 -0
  65. data/examples/compass/images/flag/cr.png +0 -0
  66. data/examples/compass/images/flag/cs.png +0 -0
  67. data/examples/compass/images/flag/cu.png +0 -0
  68. data/examples/compass/images/flag/cv.png +0 -0
  69. data/examples/compass/images/flag/cx.png +0 -0
  70. data/examples/compass/images/flag/cy.png +0 -0
  71. data/examples/compass/images/flag/cz.png +0 -0
  72. data/examples/compass/images/flag/de.png +0 -0
  73. data/examples/compass/images/flag/dj.png +0 -0
  74. data/examples/compass/images/flag/dk.png +0 -0
  75. data/examples/compass/images/flag/dm.png +0 -0
  76. data/examples/compass/images/flag/do.png +0 -0
  77. data/examples/compass/images/flag/dz.png +0 -0
  78. data/examples/compass/images/flag/ec.png +0 -0
  79. data/examples/compass/images/flag/ee.png +0 -0
  80. data/examples/compass/images/flag/eg.png +0 -0
  81. data/examples/compass/images/flag/eh.png +0 -0
  82. data/examples/compass/images/flag/england.png +0 -0
  83. data/examples/compass/images/flag/er.png +0 -0
  84. data/examples/compass/images/flag/es.png +0 -0
  85. data/examples/compass/images/flag/et.png +0 -0
  86. data/examples/compass/images/flag/europeanunion.png +0 -0
  87. data/examples/compass/images/flag/fam.png +0 -0
  88. data/examples/compass/images/flag/fi.png +0 -0
  89. data/examples/compass/images/flag/fj.png +0 -0
  90. data/examples/compass/images/flag/fk.png +0 -0
  91. data/examples/compass/images/flag/fm.png +0 -0
  92. data/examples/compass/images/flag/fo.png +0 -0
  93. data/examples/compass/images/flag/fr.png +0 -0
  94. data/examples/compass/images/flag/ga.png +0 -0
  95. data/examples/compass/images/flag/gb.png +0 -0
  96. data/examples/compass/images/flag/gd.png +0 -0
  97. data/examples/compass/images/flag/ge.png +0 -0
  98. data/examples/compass/images/flag/gf.png +0 -0
  99. data/examples/compass/images/flag/gh.png +0 -0
  100. data/examples/compass/images/flag/gi.png +0 -0
  101. data/examples/compass/images/flag/gl.png +0 -0
  102. data/examples/compass/images/flag/gm.png +0 -0
  103. data/examples/compass/images/flag/gn.png +0 -0
  104. data/examples/compass/images/flag/gp.png +0 -0
  105. data/examples/compass/images/flag/gq.png +0 -0
  106. data/examples/compass/images/flag/gr.png +0 -0
  107. data/examples/compass/images/flag/gs.png +0 -0
  108. data/examples/compass/images/flag/gt.png +0 -0
  109. data/examples/compass/images/flag/gu.png +0 -0
  110. data/examples/compass/images/flag/gw.png +0 -0
  111. data/examples/compass/images/flag/gy.png +0 -0
  112. data/examples/compass/images/flag/hk.png +0 -0
  113. data/examples/compass/images/flag/hm.png +0 -0
  114. data/examples/compass/images/flag/hn.png +0 -0
  115. data/examples/compass/images/flag/hr.png +0 -0
  116. data/examples/compass/images/flag/ht.png +0 -0
  117. data/examples/compass/images/flag/hu.png +0 -0
  118. data/examples/compass/images/flag/id-2.png +0 -0
  119. data/examples/compass/images/flag/ie.png +0 -0
  120. data/examples/compass/images/flag/il.png +0 -0
  121. data/examples/compass/images/flag/in.png +0 -0
  122. data/examples/compass/images/flag/io.png +0 -0
  123. data/examples/compass/images/flag/iq.png +0 -0
  124. data/examples/compass/images/flag/ir.png +0 -0
  125. data/examples/compass/images/flag/is.png +0 -0
  126. data/examples/compass/images/flag/it.png +0 -0
  127. data/examples/compass/images/flag/jm.png +0 -0
  128. data/examples/compass/images/flag/jo.png +0 -0
  129. data/examples/compass/images/flag/jp.png +0 -0
  130. data/examples/compass/images/flag/ke.png +0 -0
  131. data/examples/compass/images/flag/kg.png +0 -0
  132. data/examples/compass/images/flag/kh.png +0 -0
  133. data/examples/compass/images/flag/ki.png +0 -0
  134. data/examples/compass/images/flag/km.png +0 -0
  135. data/examples/compass/images/flag/kn.png +0 -0
  136. data/examples/compass/images/flag/kp.png +0 -0
  137. data/examples/compass/images/flag/kr.png +0 -0
  138. data/examples/compass/images/flag/kw.png +0 -0
  139. data/examples/compass/images/flag/ky.png +0 -0
  140. data/examples/compass/images/flag/kz.png +0 -0
  141. data/examples/compass/images/flag/la.png +0 -0
  142. data/examples/compass/images/flag/lb.png +0 -0
  143. data/examples/compass/images/flag/lc.png +0 -0
  144. data/examples/compass/images/flag/li.png +0 -0
  145. data/examples/compass/images/flag/lk.png +0 -0
  146. data/examples/compass/images/flag/lr.png +0 -0
  147. data/examples/compass/images/flag/ls.png +0 -0
  148. data/examples/compass/images/flag/lt.png +0 -0
  149. data/examples/compass/images/flag/lu.png +0 -0
  150. data/examples/compass/images/flag/lv.png +0 -0
  151. data/examples/compass/images/flag/ly.png +0 -0
  152. data/examples/compass/images/flag/ma.png +0 -0
  153. data/examples/compass/images/flag/mc.png +0 -0
  154. data/examples/compass/images/flag/md.png +0 -0
  155. data/examples/compass/images/flag/me.png +0 -0
  156. data/examples/compass/images/flag/mg.png +0 -0
  157. data/examples/compass/images/flag/mh.png +0 -0
  158. data/examples/compass/images/flag/mk.png +0 -0
  159. data/examples/compass/images/flag/ml.png +0 -0
  160. data/examples/compass/images/flag/mm.png +0 -0
  161. data/examples/compass/images/flag/mn.png +0 -0
  162. data/examples/compass/images/flag/mo.png +0 -0
  163. data/examples/compass/images/flag/mp.png +0 -0
  164. data/examples/compass/images/flag/mq.png +0 -0
  165. data/examples/compass/images/flag/mr.png +0 -0
  166. data/examples/compass/images/flag/ms.png +0 -0
  167. data/examples/compass/images/flag/mt.png +0 -0
  168. data/examples/compass/images/flag/mu.png +0 -0
  169. data/examples/compass/images/flag/mv.png +0 -0
  170. data/examples/compass/images/flag/mw.png +0 -0
  171. data/examples/compass/images/flag/mx.png +0 -0
  172. data/examples/compass/images/flag/my.png +0 -0
  173. data/examples/compass/images/flag/mz.png +0 -0
  174. data/examples/compass/images/flag/na.png +0 -0
  175. data/examples/compass/images/flag/nc.png +0 -0
  176. data/examples/compass/images/flag/ne.png +0 -0
  177. data/examples/compass/images/flag/nf.png +0 -0
  178. data/examples/compass/images/flag/ng.png +0 -0
  179. data/examples/compass/images/flag/ni.png +0 -0
  180. data/examples/compass/images/flag/nl.png +0 -0
  181. data/examples/compass/images/flag/no.png +0 -0
  182. data/examples/compass/images/flag/np.png +0 -0
  183. data/examples/compass/images/flag/nr.png +0 -0
  184. data/examples/compass/images/flag/nu.png +0 -0
  185. data/examples/compass/images/flag/nz.png +0 -0
  186. data/examples/compass/images/flag/om.png +0 -0
  187. data/examples/compass/images/flag/pa.png +0 -0
  188. data/examples/compass/images/flag/pe.png +0 -0
  189. data/examples/compass/images/flag/pf.png +0 -0
  190. data/examples/compass/images/flag/pg.png +0 -0
  191. data/examples/compass/images/flag/ph.png +0 -0
  192. data/examples/compass/images/flag/pk.png +0 -0
  193. data/examples/compass/images/flag/pl.png +0 -0
  194. data/examples/compass/images/flag/pm.png +0 -0
  195. data/examples/compass/images/flag/pn.png +0 -0
  196. data/examples/compass/images/flag/pr.png +0 -0
  197. data/examples/compass/images/flag/ps.png +0 -0
  198. data/examples/compass/images/flag/pt.png +0 -0
  199. data/examples/compass/images/flag/pw.png +0 -0
  200. data/examples/compass/images/flag/py.png +0 -0
  201. data/examples/compass/images/flag/qa.png +0 -0
  202. data/examples/compass/images/flag/re.png +0 -0
  203. data/examples/compass/images/flag/ro.png +0 -0
  204. data/examples/compass/images/flag/rs.png +0 -0
  205. data/examples/compass/images/flag/ru.png +0 -0
  206. data/examples/compass/images/flag/rw.png +0 -0
  207. data/examples/compass/images/flag/sa.png +0 -0
  208. data/examples/compass/images/flag/sb.png +0 -0
  209. data/examples/compass/images/flag/sc.png +0 -0
  210. data/examples/compass/images/flag/scotland.png +0 -0
  211. data/examples/compass/images/flag/sd.png +0 -0
  212. data/examples/compass/images/flag/se.png +0 -0
  213. data/examples/compass/images/flag/sg.png +0 -0
  214. data/examples/compass/images/flag/sh.png +0 -0
  215. data/examples/compass/images/flag/si.png +0 -0
  216. data/examples/compass/images/flag/sj.png +0 -0
  217. data/examples/compass/images/flag/sk.png +0 -0
  218. data/examples/compass/images/flag/sl.png +0 -0
  219. data/examples/compass/images/flag/sm.png +0 -0
  220. data/examples/compass/images/flag/sn.png +0 -0
  221. data/examples/compass/images/flag/so.png +0 -0
  222. data/examples/compass/images/flag/sr.png +0 -0
  223. data/examples/compass/images/flag/st.png +0 -0
  224. data/examples/compass/images/flag/sv.png +0 -0
  225. data/examples/compass/images/flag/sy.png +0 -0
  226. data/examples/compass/images/flag/sz.png +0 -0
  227. data/examples/compass/images/flag/tc.png +0 -0
  228. data/examples/compass/images/flag/td.png +0 -0
  229. data/examples/compass/images/flag/tf.png +0 -0
  230. data/examples/compass/images/flag/tg.png +0 -0
  231. data/examples/compass/images/flag/th.png +0 -0
  232. data/examples/compass/images/flag/tj.png +0 -0
  233. data/examples/compass/images/flag/tk.png +0 -0
  234. data/examples/compass/images/flag/tl.png +0 -0
  235. data/examples/compass/images/flag/tm.png +0 -0
  236. data/examples/compass/images/flag/tn.png +0 -0
  237. data/examples/compass/images/flag/to.png +0 -0
  238. data/examples/compass/images/flag/tr.png +0 -0
  239. data/examples/compass/images/flag/tt.png +0 -0
  240. data/examples/compass/images/flag/tv.png +0 -0
  241. data/examples/compass/images/flag/tw.png +0 -0
  242. data/examples/compass/images/flag/tz.png +0 -0
  243. data/examples/compass/images/flag/ua.png +0 -0
  244. data/examples/compass/images/flag/ug.png +0 -0
  245. data/examples/compass/images/flag/um.png +0 -0
  246. data/examples/compass/images/flag/us.png +0 -0
  247. data/examples/compass/images/flag/uy.png +0 -0
  248. data/examples/compass/images/flag/uz.png +0 -0
  249. data/examples/compass/images/flag/va.png +0 -0
  250. data/examples/compass/images/flag/vc.png +0 -0
  251. data/examples/compass/images/flag/ve.png +0 -0
  252. data/examples/compass/images/flag/vg.png +0 -0
  253. data/examples/compass/images/flag/vi.png +0 -0
  254. data/examples/compass/images/flag/vn.png +0 -0
  255. data/examples/compass/images/flag/vu.png +0 -0
  256. data/examples/compass/images/flag/wales.png +0 -0
  257. data/examples/compass/images/flag/wf.png +0 -0
  258. data/examples/compass/images/flag/ws.png +0 -0
  259. data/examples/compass/images/flag/ye.png +0 -0
  260. data/examples/compass/images/flag/yt.png +0 -0
  261. data/examples/compass/images/flag/za.png +0 -0
  262. data/examples/compass/images/flag/zm.png +0 -0
  263. data/examples/compass/images/flag/zw.png +0 -0
  264. data/examples/compass/sprites.html.haml +37 -0
  265. data/examples/compass/src/sprites.scss +25 -0
  266. data/examples/compass/src/sticky_footer.scss +1 -1
  267. data/examples/compass/src/utilities.scss +1 -1
  268. data/examples/css3/src/gradients.scss +30 -30
  269. data/examples/css3/src/main.scss +13 -19
  270. data/features/rails_integration.feature +32 -0
  271. data/frameworks/blueprint/stylesheets/blueprint/_grid.scss +16 -9
  272. data/frameworks/blueprint/stylesheets/blueprint/_liquid.scss +11 -6
  273. data/frameworks/compass/stylesheets/compass/_support.scss +8 -5
  274. data/frameworks/compass/stylesheets/compass/css3/_images.scss +6 -2
  275. data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +6 -11
  276. data/frameworks/compass/stylesheets/compass/css3/_transform.scss +20 -6
  277. data/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss +3 -2
  278. data/lib/compass.rb +1 -1
  279. data/lib/compass/app_integration/rails.rb +3 -3
  280. data/lib/compass/app_integration/rails/actionpack2/urls.rb +2 -2
  281. data/lib/compass/app_integration/rails/actionpack3/railtie.rb +39 -11
  282. data/lib/compass/app_integration/rails/configuration_defaults.rb +14 -8
  283. data/lib/compass/browser_support.rb +62 -0
  284. data/lib/compass/commands/print_version.rb +10 -7
  285. data/lib/compass/commands/project_base.rb +1 -1
  286. data/lib/compass/commands/watch_project.rb +17 -0
  287. data/lib/compass/configuration/data.rb +15 -0
  288. data/lib/compass/configuration/helpers.rb +7 -8
  289. data/lib/compass/configuration/inheritance.rb +14 -0
  290. data/lib/compass/configuration/serialization.rb +8 -4
  291. data/lib/compass/sass_extensions/functions.rb +2 -1
  292. data/lib/compass/sass_extensions/functions/colors.rb +2 -3
  293. data/lib/compass/sass_extensions/functions/cross_browser_support.rb +39 -0
  294. data/lib/compass/sass_extensions/functions/gradient_support.rb +87 -379
  295. data/lib/compass/sass_extensions/functions/lists.rb +84 -0
  296. data/lib/compass/sass_extensions/functions/sprites.rb +4 -2
  297. data/lib/compass/sass_extensions/monkey_patches.rb +1 -1
  298. data/lib/compass/sass_extensions/monkey_patches/browser_support.rb +89 -0
  299. data/lib/compass/sprites.rb +4 -4
  300. data/test/fixtures/stylesheets/blueprint/css/screen.css +24 -24
  301. data/test/fixtures/stylesheets/blueprint/css/single-imports/grid.css +24 -24
  302. data/test/fixtures/stylesheets/blueprint/css/single-imports/rtl.css +24 -24
  303. data/test/fixtures/stylesheets/compass/css/gradients.css +21 -6
  304. data/test/fixtures/stylesheets/compass/css/opacity.css +4 -0
  305. data/test/fixtures/stylesheets/compass/css/pie.css +0 -1
  306. data/test/fixtures/stylesheets/compass/sass/gradients.sass +9 -0
  307. data/test/fixtures/stylesheets/compass/sass/opacity.scss +5 -0
  308. data/test/rails_integration_test.rb +3 -3
  309. metadata +272 -4
@@ -1,4 +1,79 @@
1
1
  module Compass::SassExtensions::Functions::Lists
2
+
3
+ # Returns true when the object is false, an empty string, or an empty list
4
+ def blank(obj)
5
+ case obj
6
+ when Sass::Script::Bool
7
+ Sass::Script::Bool.new !obj.to_bool
8
+ when Sass::Script::String
9
+ Sass::Script::Bool.new obj.value.strip.size == 0
10
+ when Sass::Script::List
11
+ Sass::Script::Bool.new obj.value.size == 0 || obj.value.all?{|el| blank(el).to_bool}
12
+ else
13
+ Sass::Script::Bool.new false
14
+ end
15
+ end
16
+
17
+ # Returns a new list after removing any non-true values
18
+ def compact(*args)
19
+ sep = :comma
20
+ if args.size == 1 && args.first.is_a?(Sass::Script::List)
21
+ args = args.first.value
22
+ sep = args.first.separator
23
+ end
24
+ Sass::Script::List.new(args.reject{|a| !a.to_bool}, sep)
25
+ end
26
+
27
+ # Get the nth value from a list
28
+ def _compass_nth(list, place)
29
+ assert_type list, :List
30
+ if place.value == "first"
31
+ list.value.first
32
+ elsif place.value == "last"
33
+ list.value.last
34
+ else
35
+ list.value[place.value - 1]
36
+ end
37
+ end
38
+
39
+ # Returns a list object from a value that was passed.
40
+ # This can be used to unpack a space separated list that got turned
41
+ # into a string by sass before it was passed to a mixin.
42
+ def _compass_list(arg)
43
+ if arg.is_a?(Sass::Script::List)
44
+ Sass::Script::List.new(arg.value.dup, arg.separator)
45
+ else
46
+ Sass::Script::List.new([arg], :space)
47
+ end
48
+ end
49
+
50
+ # If the argument is a list, it will return a new list that is space delimited
51
+ # Otherwise it returns a new, single element, space-delimited list.
52
+ def _compass_space_list(list)
53
+ if list.is_a?(Sass::Script::List)
54
+ Sass::Script::List.new(list.value.dup, :space)
55
+ else
56
+ Sass::Script::List.new([list], :space)
57
+ end
58
+ end
59
+
60
+ # Returns the size of the list.
61
+ def _compass_list_size(list)
62
+ assert_list list
63
+ Sass::Script::Number.new(list.value.size)
64
+ end
65
+
66
+ # slice a sublist from a list
67
+ def _compass_slice(list, start_index, end_index = nil)
68
+ end_index ||= Sass::Script::Number.new(-1)
69
+ start_index = start_index.value
70
+ end_index = end_index.value
71
+ start_index -= 1 unless start_index < 0
72
+ end_index -= 1 unless end_index < 0
73
+ Sass::Script::List.new list.values[start_index..end_index], list.separator
74
+ end
75
+
76
+ # returns the first value of a space delimited list.
2
77
  def first_value_of(list)
3
78
  if list.is_a?(Sass::Script::String)
4
79
  Sass::Script::String.new(list.value.split(/\s+/).first)
@@ -8,4 +83,13 @@ module Compass::SassExtensions::Functions::Lists
8
83
  list
9
84
  end
10
85
  end
86
+
87
+ protected
88
+
89
+ def assert_list(value)
90
+ unless value.is_a?(Sass::Script::List)
91
+ raise ArgumentError.new("#{value.inspect} is not a list")
92
+ end
93
+ end
94
+
11
95
  end
@@ -60,7 +60,8 @@ module Compass::SassExtensions::Functions::Sprites
60
60
  file = File.join(Compass.configuration.images_path, relative_file)
61
61
  width, height = Compass::SassExtensions::Functions::ImageSize::ImageProperties.new(file).size
62
62
  sprite_name = Compass::Sprites.sprite_name(relative_file)
63
- @width = [@width, width].max
63
+ position = position_for(sprite_name)
64
+ offset = (position.unitless? || position.unit_str == "px") ? position.value : 0
64
65
  @images << {
65
66
  :name => sprite_name,
66
67
  :file => file,
@@ -69,9 +70,10 @@ module Compass::SassExtensions::Functions::Sprites
69
70
  :width => width,
70
71
  :repeat => repeat_for(sprite_name),
71
72
  :spacing => spacing_for(sprite_name),
72
- :position => position_for(sprite_name),
73
+ :position => position,
73
74
  :digest => Digest::MD5.file(file).hexdigest
74
75
  }
76
+ @width = [@width, width + offset].max
75
77
  end
76
78
  @images.each_with_index do |image, index|
77
79
  if index == 0
@@ -1,3 +1,3 @@
1
- %w(traversal).each do |patch|
1
+ %w(traversal browser_support).each do |patch|
2
2
  require "compass/sass_extensions/monkey_patches/#{patch}"
3
3
  end
@@ -0,0 +1,89 @@
1
+ require 'sass/script/node'
2
+ require 'sass/script/literal'
3
+ require 'sass/script/funcall'
4
+
5
+ module Sass::Script
6
+ module HasSimpleCrossBrowserFunctionSupport
7
+ def supports?(aspect)
8
+ return true if Compass::BrowserSupport.supports?(name, aspect)
9
+ children.any? {|child| child.respond_to?(:supports?) && child.supports?(aspect) }
10
+ end
11
+
12
+ def has_aspect?(children = nil)
13
+ children ||= self.children
14
+ return true if Compass::BrowserSupport.has_aspect?(name)
15
+ children.any? {|child| child.respond_to?(:has_aspect?) && child.has_aspect? }
16
+ end
17
+ end
18
+
19
+ class CrossBrowserFunctionCall < Literal
20
+
21
+ attr_accessor :name, :args
22
+
23
+ include HasSimpleCrossBrowserFunctionSupport
24
+
25
+ def initialize(name, args)
26
+ self.name = name
27
+ self.args = args
28
+ end
29
+
30
+ def children
31
+ args
32
+ end
33
+
34
+ def inspect
35
+ to_s
36
+ end
37
+
38
+ def to_s(options = self.options)
39
+ s = "#{name}(#{args.join(", ")})"
40
+ end
41
+
42
+ %w(webkit moz o ms svg pie css2).each do |prefix|
43
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
44
+ def to_#{prefix}(options = self.options)
45
+ prefixed_args = args.map do |arg|
46
+ arg.respond_to?(:to_#{prefix}) ? arg.to_#{prefix}(options) : arg
47
+ end
48
+ prefixed_name = if Compass::BrowserSupport.supports?(name, "#{prefix}")
49
+ "-#{prefix}-\#{name}"
50
+ else
51
+ name
52
+ end
53
+ contents = prefixed_args.join(', ')
54
+ if contents.size > 0
55
+ opts(Sass::Script::String.new("\#{prefixed_name}(\#{contents})"))
56
+ else
57
+ opts(Sass::Script::String.new(""))
58
+ end
59
+ end
60
+ RUBY
61
+ end
62
+
63
+ end
64
+
65
+ class Funcall < Node
66
+ include HasSimpleCrossBrowserFunctionSupport
67
+
68
+ alias sass_to_literal to_literal
69
+
70
+ def to_literal(args)
71
+ if has_aspect?(args)
72
+ CrossBrowserFunctionCall.new(name, args)
73
+ else
74
+ sass_to_literal(args)
75
+ end
76
+ end
77
+ end
78
+
79
+ class List < Literal
80
+ def supports?(aspect)
81
+ children.any? {|child| child.respond_to?(:supports?) && child.supports?(aspect) }
82
+ end
83
+
84
+ def has_aspect?
85
+ children.any? {|child| child.respond_to?(:has_aspect?) && child.has_aspect? }
86
+ end
87
+ end
88
+
89
+ end
@@ -88,13 +88,13 @@ end.join(",\n")});
88
88
  @include sprite($#{name}-sprites, $name, $dimensions, $offset-x, $offset-y)
89
89
  }
90
90
 
91
- @mixin #{name}-sprites($sprite-names, $dimensions: $#{name}-sprite-dimensions) {
92
- @include sprites($#{name}-sprites, $sprite-names, $#{name}-sprite-base-class, $dimensions)
91
+ @mixin #{name}-sprites($sprite-names, $dimensions: $#{name}-sprite-dimensions, $prefix: sprite-map-name($#{name}-sprites)) {
92
+ @include sprites($#{name}-sprites, $sprite-names, $#{name}-sprite-base-class, $dimensions, $prefix)
93
93
  }
94
94
 
95
95
  // Generates a class for each sprited image.
96
- @mixin all-#{name}-sprites($dimensions: $#{name}-sprite-dimensions) {
97
- @include #{name}-sprites(#{images.join(" ")}, $dimensions);
96
+ @mixin all-#{name}-sprites($dimensions: $#{name}-sprite-dimensions, $prefix: sprite-map-name($#{name}-sprites)) {
97
+ @include #{name}-sprites(#{images.join(" ")}, $dimensions, $prefix);
98
98
  }
99
99
  SCSS
100
100
  end
@@ -315,53 +315,53 @@ caption {
315
315
  margin: 0; }
316
316
 
317
317
  input.span-1, textarea.span-1, select.span-1 {
318
- width: 30px !important; }
318
+ width: 30px; }
319
319
  input.span-2, textarea.span-2, select.span-2 {
320
- width: 70px !important; }
320
+ width: 70px; }
321
321
  input.span-3, textarea.span-3, select.span-3 {
322
- width: 110px !important; }
322
+ width: 110px; }
323
323
  input.span-4, textarea.span-4, select.span-4 {
324
- width: 150px !important; }
324
+ width: 150px; }
325
325
  input.span-5, textarea.span-5, select.span-5 {
326
- width: 190px !important; }
326
+ width: 190px; }
327
327
  input.span-6, textarea.span-6, select.span-6 {
328
- width: 230px !important; }
328
+ width: 230px; }
329
329
  input.span-7, textarea.span-7, select.span-7 {
330
- width: 270px !important; }
330
+ width: 270px; }
331
331
  input.span-8, textarea.span-8, select.span-8 {
332
- width: 310px !important; }
332
+ width: 310px; }
333
333
  input.span-9, textarea.span-9, select.span-9 {
334
- width: 350px !important; }
334
+ width: 350px; }
335
335
  input.span-10, textarea.span-10, select.span-10 {
336
- width: 390px !important; }
336
+ width: 390px; }
337
337
  input.span-11, textarea.span-11, select.span-11 {
338
- width: 430px !important; }
338
+ width: 430px; }
339
339
  input.span-12, textarea.span-12, select.span-12 {
340
- width: 470px !important; }
340
+ width: 470px; }
341
341
  input.span-13, textarea.span-13, select.span-13 {
342
- width: 510px !important; }
342
+ width: 510px; }
343
343
  input.span-14, textarea.span-14, select.span-14 {
344
- width: 550px !important; }
344
+ width: 550px; }
345
345
  input.span-15, textarea.span-15, select.span-15 {
346
- width: 590px !important; }
346
+ width: 590px; }
347
347
  input.span-16, textarea.span-16, select.span-16 {
348
- width: 630px !important; }
348
+ width: 630px; }
349
349
  input.span-17, textarea.span-17, select.span-17 {
350
- width: 670px !important; }
350
+ width: 670px; }
351
351
  input.span-18, textarea.span-18, select.span-18 {
352
- width: 710px !important; }
352
+ width: 710px; }
353
353
  input.span-19, textarea.span-19, select.span-19 {
354
- width: 750px !important; }
354
+ width: 750px; }
355
355
  input.span-20, textarea.span-20, select.span-20 {
356
- width: 790px !important; }
356
+ width: 790px; }
357
357
  input.span-21, textarea.span-21, select.span-21 {
358
- width: 830px !important; }
358
+ width: 830px; }
359
359
  input.span-22, textarea.span-22, select.span-22 {
360
- width: 870px !important; }
360
+ width: 870px; }
361
361
  input.span-23, textarea.span-23, select.span-23 {
362
- width: 910px !important; }
362
+ width: 910px; }
363
363
  input.span-24, textarea.span-24, select.span-24 {
364
- width: 950px !important; }
364
+ width: 950px; }
365
365
 
366
366
  .append-1 {
367
367
  padding-right: 40px; }
@@ -88,53 +88,53 @@
88
88
  margin: 0; }
89
89
 
90
90
  input.span-1, textarea.span-1, select.span-1 {
91
- width: 30px !important; }
91
+ width: 30px; }
92
92
  input.span-2, textarea.span-2, select.span-2 {
93
- width: 70px !important; }
93
+ width: 70px; }
94
94
  input.span-3, textarea.span-3, select.span-3 {
95
- width: 110px !important; }
95
+ width: 110px; }
96
96
  input.span-4, textarea.span-4, select.span-4 {
97
- width: 150px !important; }
97
+ width: 150px; }
98
98
  input.span-5, textarea.span-5, select.span-5 {
99
- width: 190px !important; }
99
+ width: 190px; }
100
100
  input.span-6, textarea.span-6, select.span-6 {
101
- width: 230px !important; }
101
+ width: 230px; }
102
102
  input.span-7, textarea.span-7, select.span-7 {
103
- width: 270px !important; }
103
+ width: 270px; }
104
104
  input.span-8, textarea.span-8, select.span-8 {
105
- width: 310px !important; }
105
+ width: 310px; }
106
106
  input.span-9, textarea.span-9, select.span-9 {
107
- width: 350px !important; }
107
+ width: 350px; }
108
108
  input.span-10, textarea.span-10, select.span-10 {
109
- width: 390px !important; }
109
+ width: 390px; }
110
110
  input.span-11, textarea.span-11, select.span-11 {
111
- width: 430px !important; }
111
+ width: 430px; }
112
112
  input.span-12, textarea.span-12, select.span-12 {
113
- width: 470px !important; }
113
+ width: 470px; }
114
114
  input.span-13, textarea.span-13, select.span-13 {
115
- width: 510px !important; }
115
+ width: 510px; }
116
116
  input.span-14, textarea.span-14, select.span-14 {
117
- width: 550px !important; }
117
+ width: 550px; }
118
118
  input.span-15, textarea.span-15, select.span-15 {
119
- width: 590px !important; }
119
+ width: 590px; }
120
120
  input.span-16, textarea.span-16, select.span-16 {
121
- width: 630px !important; }
121
+ width: 630px; }
122
122
  input.span-17, textarea.span-17, select.span-17 {
123
- width: 670px !important; }
123
+ width: 670px; }
124
124
  input.span-18, textarea.span-18, select.span-18 {
125
- width: 710px !important; }
125
+ width: 710px; }
126
126
  input.span-19, textarea.span-19, select.span-19 {
127
- width: 750px !important; }
127
+ width: 750px; }
128
128
  input.span-20, textarea.span-20, select.span-20 {
129
- width: 790px !important; }
129
+ width: 790px; }
130
130
  input.span-21, textarea.span-21, select.span-21 {
131
- width: 830px !important; }
131
+ width: 830px; }
132
132
  input.span-22, textarea.span-22, select.span-22 {
133
- width: 870px !important; }
133
+ width: 870px; }
134
134
  input.span-23, textarea.span-23, select.span-23 {
135
- width: 910px !important; }
135
+ width: 910px; }
136
136
  input.span-24, textarea.span-24, select.span-24 {
137
- width: 950px !important; }
137
+ width: 950px; }
138
138
 
139
139
  .append-1 {
140
140
  padding-right: 40px; }
@@ -90,53 +90,53 @@
90
90
  margin: 0; }
91
91
 
92
92
  input.span-1, textarea.span-1, select.span-1 {
93
- width: 30px !important; }
93
+ width: 30px; }
94
94
  input.span-2, textarea.span-2, select.span-2 {
95
- width: 70px !important; }
95
+ width: 70px; }
96
96
  input.span-3, textarea.span-3, select.span-3 {
97
- width: 110px !important; }
97
+ width: 110px; }
98
98
  input.span-4, textarea.span-4, select.span-4 {
99
- width: 150px !important; }
99
+ width: 150px; }
100
100
  input.span-5, textarea.span-5, select.span-5 {
101
- width: 190px !important; }
101
+ width: 190px; }
102
102
  input.span-6, textarea.span-6, select.span-6 {
103
- width: 230px !important; }
103
+ width: 230px; }
104
104
  input.span-7, textarea.span-7, select.span-7 {
105
- width: 270px !important; }
105
+ width: 270px; }
106
106
  input.span-8, textarea.span-8, select.span-8 {
107
- width: 310px !important; }
107
+ width: 310px; }
108
108
  input.span-9, textarea.span-9, select.span-9 {
109
- width: 350px !important; }
109
+ width: 350px; }
110
110
  input.span-10, textarea.span-10, select.span-10 {
111
- width: 390px !important; }
111
+ width: 390px; }
112
112
  input.span-11, textarea.span-11, select.span-11 {
113
- width: 430px !important; }
113
+ width: 430px; }
114
114
  input.span-12, textarea.span-12, select.span-12 {
115
- width: 470px !important; }
115
+ width: 470px; }
116
116
  input.span-13, textarea.span-13, select.span-13 {
117
- width: 510px !important; }
117
+ width: 510px; }
118
118
  input.span-14, textarea.span-14, select.span-14 {
119
- width: 550px !important; }
119
+ width: 550px; }
120
120
  input.span-15, textarea.span-15, select.span-15 {
121
- width: 590px !important; }
121
+ width: 590px; }
122
122
  input.span-16, textarea.span-16, select.span-16 {
123
- width: 630px !important; }
123
+ width: 630px; }
124
124
  input.span-17, textarea.span-17, select.span-17 {
125
- width: 670px !important; }
125
+ width: 670px; }
126
126
  input.span-18, textarea.span-18, select.span-18 {
127
- width: 710px !important; }
127
+ width: 710px; }
128
128
  input.span-19, textarea.span-19, select.span-19 {
129
- width: 750px !important; }
129
+ width: 750px; }
130
130
  input.span-20, textarea.span-20, select.span-20 {
131
- width: 790px !important; }
131
+ width: 790px; }
132
132
  input.span-21, textarea.span-21, select.span-21 {
133
- width: 830px !important; }
133
+ width: 830px; }
134
134
  input.span-22, textarea.span-22, select.span-22 {
135
- width: 870px !important; }
135
+ width: 870px; }
136
136
  input.span-23, textarea.span-23, select.span-23 {
137
- width: 910px !important; }
137
+ width: 910px; }
138
138
  input.span-24, textarea.span-24, select.span-24 {
139
- width: 950px !important; }
139
+ width: 950px; }
140
140
 
141
141
  .append-1 {
142
142
  padding-left: 40px; }