compass 0.11.alpha.4 → 0.11.beta.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 (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; }