polymer-paper-rails 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (558) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/components/core-animation/README.md +4 -0
  3. data/app/assets/components/core-animation/bower.json +8 -0
  4. data/app/assets/components/core-animation/core-animation-group.html +169 -0
  5. data/app/assets/components/core-animation/core-animation.html +524 -0
  6. data/app/assets/components/core-animation/demo.html +149 -0
  7. data/app/assets/components/core-animation/index.html +22 -0
  8. data/app/assets/components/core-animation/web-animations.html +10 -0
  9. data/app/assets/components/core-collapse/README.md +4 -0
  10. data/app/assets/components/core-collapse/bower.json +7 -0
  11. data/app/assets/components/core-collapse/core-collapse.css +16 -0
  12. data/app/assets/components/core-collapse/core-collapse.html +262 -0
  13. data/app/assets/components/core-collapse/demo.html +93 -0
  14. data/app/assets/components/core-collapse/index.html +22 -0
  15. data/app/assets/components/core-component-page/README.md +6 -0
  16. data/app/assets/components/core-component-page/bowager-logo.png +0 -0
  17. data/app/assets/components/core-component-page/bower.json +8 -0
  18. data/app/assets/components/core-component-page/core-component-page.html +37 -0
  19. data/app/assets/components/core-component-page/demo.html +23 -0
  20. data/app/assets/components/core-component-page/index.html +22 -0
  21. data/app/assets/components/core-drawer-panel/README.md +4 -0
  22. data/app/assets/components/core-drawer-panel/bower.json +8 -0
  23. data/app/assets/components/core-drawer-panel/core-drawer-panel.css +147 -0
  24. data/app/assets/components/core-drawer-panel/core-drawer-panel.html +339 -0
  25. data/app/assets/components/core-drawer-panel/demo.html +73 -0
  26. data/app/assets/components/core-drawer-panel/index.html +22 -0
  27. data/app/assets/components/core-drawer-panel/metadata.html +37 -0
  28. data/app/assets/components/core-elements/README.md +4 -0
  29. data/app/assets/components/core-elements/bower.json +29 -0
  30. data/app/assets/components/core-elements/demo.html +105 -0
  31. data/app/assets/components/core-elements/demos/core-toolbar.html +98 -0
  32. data/app/assets/components/core-elements/metadata.html +23 -0
  33. data/app/assets/components/core-elements/paper-elements.html +37 -0
  34. data/app/assets/components/core-field/README.md +4 -0
  35. data/app/assets/components/core-field/bower.json +7 -0
  36. data/app/assets/components/core-field/core-field.css +38 -0
  37. data/app/assets/components/core-field/core-field.html +35 -0
  38. data/app/assets/components/core-field/demo.html +67 -0
  39. data/app/assets/components/core-field/index.html +22 -0
  40. data/app/assets/components/core-field/metadata.html +26 -0
  41. data/app/assets/components/core-header-panel/README.md +4 -0
  42. data/app/assets/components/core-header-panel/bower.json +7 -0
  43. data/app/assets/components/core-header-panel/core-header-panel.css +75 -0
  44. data/app/assets/components/core-header-panel/core-header-panel.html +225 -0
  45. data/app/assets/components/core-header-panel/demo.html +100 -0
  46. data/app/assets/components/core-header-panel/index.html +23 -0
  47. data/app/assets/components/core-header-panel/metadata.html +37 -0
  48. data/app/assets/components/core-icon/README.md +4 -0
  49. data/app/assets/components/core-icon/bower.json +8 -0
  50. data/app/assets/components/{core/icon → core-icon}/core-icon.css +3 -12
  51. data/app/assets/components/core-icon/core-icon.html +189 -0
  52. data/app/assets/components/core-icon/demo.html +44 -0
  53. data/app/assets/components/core-icon/index.html +22 -0
  54. data/app/assets/components/core-icon/metadata.html +21 -0
  55. data/app/assets/components/core-icon-button/README.md +4 -0
  56. data/app/assets/components/core-icon-button/bower.json +7 -0
  57. data/app/assets/components/core-icon-button/core-icon-button.css +75 -0
  58. data/app/assets/components/core-icon-button/core-icon-button.html +81 -0
  59. data/app/assets/components/core-icon-button/demo.html +35 -0
  60. data/app/assets/components/core-icon-button/index.html +22 -0
  61. data/app/assets/components/core-icon-button/metadata.html +20 -0
  62. data/app/assets/components/core-icons/README.md +4 -0
  63. data/app/assets/components/core-icons/av-icons.html +46 -0
  64. data/app/assets/components/core-icons/bower.json +9 -0
  65. data/app/assets/components/core-icons/communication-icons.html +59 -0
  66. data/app/assets/components/core-icons/core-icons.html +278 -0
  67. data/app/assets/components/core-icons/demo.html +96 -0
  68. data/app/assets/components/core-icons/device-icons.html +59 -0
  69. data/app/assets/components/core-icons/editor-icons.html +67 -0
  70. data/app/assets/components/core-icons/hardware-icons.html +58 -0
  71. data/app/assets/components/core-icons/image-icons.html +146 -0
  72. data/app/assets/components/core-icons/index.html +22 -0
  73. data/app/assets/components/core-icons/maps-icons.html +69 -0
  74. data/app/assets/components/core-icons/notification-icons.html +50 -0
  75. data/app/assets/components/core-icons/png-icons.html +19 -0
  76. data/app/assets/components/core-icons/social-icons.html +52 -0
  77. data/app/assets/components/core-iconset/README.md +4 -0
  78. data/app/assets/components/core-iconset/bower.json +9 -0
  79. data/app/assets/components/{core/iconset/core-iconset.html.erb → core-iconset/core-iconset.html} +29 -24
  80. data/app/assets/components/core-iconset/demo.html +62 -0
  81. data/app/assets/components/core-iconset/index.html +22 -0
  82. data/app/assets/components/core-iconset/my-icons-big.png +0 -0
  83. data/app/assets/components/core-iconset/my-icons.png +0 -0
  84. data/app/assets/components/core-iconset-svg/README.md +4 -0
  85. data/app/assets/components/core-iconset-svg/bower.json +8 -0
  86. data/app/assets/components/core-iconset-svg/core-iconset-svg.html +168 -0
  87. data/app/assets/components/core-iconset-svg/demo.html +66 -0
  88. data/app/assets/components/core-iconset-svg/index.html +22 -0
  89. data/app/assets/components/core-iconset-svg/svg-sample-icons.html +68 -0
  90. data/app/assets/components/core-input/README.md +2 -0
  91. data/app/assets/components/core-input/bower.json +6 -0
  92. data/app/assets/components/core-input/core-input.css +45 -0
  93. data/app/assets/components/{core/input/core-input.html.erb → core-input/core-input.html} +164 -95
  94. data/app/assets/components/core-input/demo.html +142 -0
  95. data/app/assets/components/core-input/index.html +22 -0
  96. data/app/assets/components/core-input/metadata.html +20 -0
  97. data/app/assets/components/core-item/README.md +4 -0
  98. data/app/assets/components/core-item/bower.json +8 -0
  99. data/app/assets/components/core-item/core-item.css +44 -0
  100. data/app/assets/components/core-item/core-item.html +74 -0
  101. data/app/assets/components/core-item/demo.html +92 -0
  102. data/app/assets/components/core-item/index.html +22 -0
  103. data/app/assets/components/core-item/metadata.html +24 -0
  104. data/app/assets/components/core-media-query/README.md +4 -0
  105. data/app/assets/components/core-media-query/bower.json +7 -0
  106. data/app/assets/components/{core/media-query → core-media-query}/core-media-query.html +1 -0
  107. data/app/assets/components/core-media-query/demo.html +44 -0
  108. data/app/assets/components/core-media-query/index.html +22 -0
  109. data/app/assets/components/core-menu/README.md +4 -0
  110. data/app/assets/components/core-menu/bower.json +9 -0
  111. data/app/assets/components/{core/menu → core-menu}/core-menu.css +0 -0
  112. data/app/assets/components/{core/menu/core-menu.html.erb → core-menu/core-menu.html} +3 -3
  113. data/app/assets/components/{core/menu → core-menu}/core-submenu.css +0 -0
  114. data/app/assets/components/{core/menu/core-submenu.html.erb → core-menu/core-submenu.html} +10 -10
  115. data/app/assets/components/core-menu/demo.html +101 -0
  116. data/app/assets/components/core-menu/index.html +22 -0
  117. data/app/assets/components/core-menu/metadata.html +62 -0
  118. data/app/assets/components/core-meta/README.md +4 -0
  119. data/app/assets/components/core-meta/bower.json +7 -0
  120. data/app/assets/components/{core/meta → core-meta}/core-meta.html +24 -22
  121. data/app/assets/components/core-meta/demo.html +58 -0
  122. data/app/assets/components/core-meta/index.html +22 -0
  123. data/app/assets/components/core-overlay/README.md +4 -0
  124. data/app/assets/components/core-overlay/bower.json +8 -0
  125. data/app/assets/components/{core/overlay → core-overlay}/core-key-helper.html +2 -0
  126. data/app/assets/components/{core/overlay → core-overlay}/core-overlay-layer.html +112 -112
  127. data/app/assets/components/{core/overlay/core-overlay.html.erb → core-overlay/core-overlay.html} +77 -51
  128. data/app/assets/components/core-overlay/demo.html +155 -0
  129. data/app/assets/components/core-overlay/index.html +22 -0
  130. data/app/assets/components/core-popup-menu/README.md +6 -0
  131. data/app/assets/components/core-popup-menu/bower.json +13 -0
  132. data/app/assets/components/core-popup-menu/core-popup-menu.css +28 -0
  133. data/app/assets/components/core-popup-menu/core-popup-menu.html +198 -0
  134. data/app/assets/components/core-popup-menu/core-popup-overlay.html +111 -0
  135. data/app/assets/components/core-popup-menu/demo.html +542 -0
  136. data/app/assets/components/core-popup-menu/index.html +22 -0
  137. data/app/assets/components/core-popup-menu/metadata.html +62 -0
  138. data/app/assets/components/core-range/README.md +2 -0
  139. data/app/assets/components/core-range/bower.json +7 -0
  140. data/app/assets/components/{core/range → core-range}/core-range.html +17 -15
  141. data/app/assets/components/core-range/demo.html +64 -0
  142. data/app/assets/components/core-range/index.html +22 -0
  143. data/app/assets/components/core-scroll-header-panel/README.md +4 -0
  144. data/app/assets/components/core-scroll-header-panel/bower.json +11 -0
  145. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.css +58 -0
  146. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.html +313 -0
  147. data/app/assets/components/core-scroll-header-panel/demo.html +111 -0
  148. data/app/assets/components/core-scroll-header-panel/demos/demo1.html +80 -0
  149. data/app/assets/components/core-scroll-header-panel/demos/demo2.html +82 -0
  150. data/app/assets/components/core-scroll-header-panel/demos/demo3.html +81 -0
  151. data/app/assets/components/core-scroll-header-panel/demos/demo4.html +109 -0
  152. data/app/assets/components/core-scroll-header-panel/demos/demo5.html +109 -0
  153. data/app/assets/components/core-scroll-header-panel/demos/demo6.html +113 -0
  154. data/app/assets/components/core-scroll-header-panel/demos/demo7.html +120 -0
  155. data/app/assets/components/core-scroll-header-panel/demos/demo8.html +122 -0
  156. data/app/assets/components/core-scroll-header-panel/demos/demo9.html +100 -0
  157. data/app/assets/components/core-scroll-header-panel/demos/images/bg2.jpg +0 -0
  158. data/app/assets/components/core-scroll-header-panel/demos/images/bg3.jpg +0 -0
  159. data/app/assets/components/core-scroll-header-panel/demos/images/bg5.jpg +0 -0
  160. data/app/assets/components/core-scroll-header-panel/demos/images/bg6.jpg +0 -0
  161. data/app/assets/components/core-scroll-header-panel/demos/images/bg9.jpg +0 -0
  162. data/app/assets/components/core-scroll-header-panel/demos/lorem-ipsum.html +42 -0
  163. data/app/assets/components/core-scroll-header-panel/index.html +22 -0
  164. data/app/assets/components/core-scroll-header-panel/metadata.html +41 -0
  165. data/app/assets/components/core-selection/README.md +4 -0
  166. data/app/assets/components/core-selection/bower.json +7 -0
  167. data/app/assets/components/{core/selection → core-selection}/core-selection.html +6 -5
  168. data/app/assets/components/core-selection/demo.html +59 -0
  169. data/app/assets/components/core-selection/index.html +22 -0
  170. data/app/assets/components/core-selector/README.md +4 -0
  171. data/app/assets/components/core-selector/bower.json +8 -0
  172. data/app/assets/components/{core/selector/core-selector.html.erb → core-selector/core-selector.html} +53 -16
  173. data/app/assets/components/core-selector/demo.html +106 -0
  174. data/app/assets/components/core-selector/index.html +22 -0
  175. data/app/assets/components/core-selector/metadata.html +20 -0
  176. data/app/assets/components/core-style/README.md +4 -0
  177. data/app/assets/components/core-style/bower.json +7 -0
  178. data/app/assets/components/{core/style → core-style}/core-style.html +387 -386
  179. data/app/assets/components/core-style/demo.html +58 -0
  180. data/app/assets/components/core-style/elements.html +55 -0
  181. data/app/assets/components/core-style/index.html +22 -0
  182. data/app/assets/components/core-style/my-theme.html +73 -0
  183. data/app/assets/components/core-toolbar/README.md +4 -0
  184. data/app/assets/components/core-toolbar/bower.json +7 -0
  185. data/app/assets/components/core-toolbar/core-toolbar.css +110 -0
  186. data/app/assets/components/core-toolbar/core-toolbar.html +74 -0
  187. data/app/assets/components/core-toolbar/demo.html +107 -0
  188. data/app/assets/components/core-toolbar/index.html +22 -0
  189. data/app/assets/components/core-toolbar/metadata.html +28 -0
  190. data/app/assets/components/core-transition/README.md +2 -0
  191. data/app/assets/components/core-transition/bower.json +8 -0
  192. data/app/assets/components/core-transition/core-transition-css.html +221 -0
  193. data/app/assets/components/{core/transition → core-transition}/core-transition-overlay.css +1 -1
  194. data/app/assets/components/core-transition/core-transition.html +140 -0
  195. data/app/assets/components/core-transition/demo.html +87 -0
  196. data/app/assets/components/core-transition/index.html +22 -0
  197. data/app/assets/components/font-roboto/roboto.html +9 -0
  198. data/app/assets/components/paper-button/README.md +4 -0
  199. data/app/assets/components/paper-button/bower.json +11 -0
  200. data/app/assets/components/paper-button/demo.html +99 -0
  201. data/app/assets/components/paper-button/demo2.html +136 -0
  202. data/app/assets/components/paper-button/index.html +22 -0
  203. data/app/assets/components/paper-button/metadata.html +17 -0
  204. data/app/assets/components/paper-button/paper-button.css +11 -1
  205. data/app/assets/components/paper-button/{paper-button.html.erb → paper-button.html} +9 -8
  206. data/app/assets/components/paper-checkbox/README.md +4 -0
  207. data/app/assets/components/paper-checkbox/bower.json +8 -0
  208. data/app/assets/components/paper-checkbox/demo.html +113 -0
  209. data/app/assets/components/paper-checkbox/index.html +22 -0
  210. data/app/assets/components/paper-checkbox/metadata.html +17 -0
  211. data/app/assets/components/paper-checkbox/paper-checkbox.css +49 -48
  212. data/app/assets/components/paper-checkbox/{paper-checkbox.html.erb → paper-checkbox.html} +110 -104
  213. data/app/assets/components/paper-dialog/README.md +4 -0
  214. data/app/assets/components/paper-dialog/bower.json +10 -0
  215. data/app/assets/components/paper-dialog/demo.html +85 -0
  216. data/app/assets/components/paper-dialog/index.html +22 -0
  217. data/app/assets/components/paper-dialog/{paper-dialog-transition.html.erb → paper-dialog-transition.html} +3 -3
  218. data/app/assets/components/paper-dialog/paper-dialog.css +52 -0
  219. data/app/assets/components/paper-dialog/{paper-dialog.html.erb → paper-dialog.html} +7 -7
  220. data/app/assets/components/paper-dropdown/README.md +9 -0
  221. data/app/assets/components/paper-dropdown/bower.json +12 -0
  222. data/app/assets/components/paper-dropdown/demo.html +345 -0
  223. data/app/assets/components/paper-dropdown/index.html +22 -0
  224. data/app/assets/components/paper-dropdown/paper-dropdown.css +48 -0
  225. data/app/assets/components/paper-dropdown/paper-dropdown.html +191 -0
  226. data/app/assets/components/paper-fab/README.md +4 -0
  227. data/app/assets/components/paper-fab/bower.json +8 -0
  228. data/app/assets/components/paper-fab/demo.html +72 -0
  229. data/app/assets/components/paper-fab/demo2.html +103 -0
  230. data/app/assets/components/paper-fab/index.html +22 -0
  231. data/app/assets/components/paper-fab/metadata.html +36 -0
  232. data/app/assets/components/paper-fab/paper-fab.css +11 -2
  233. data/app/assets/components/paper-fab/{paper-fab.html.erb → paper-fab.html} +3 -2
  234. data/app/assets/components/paper-focusable/README.md +4 -0
  235. data/app/assets/components/paper-focusable/bower.json +7 -0
  236. data/app/assets/components/paper-focusable/demo.html +155 -0
  237. data/app/assets/components/paper-focusable/paper-focusable.html +2 -0
  238. data/app/assets/components/paper-icon-button/README.md +4 -0
  239. data/app/assets/components/paper-icon-button/bower.json +9 -0
  240. data/app/assets/components/paper-icon-button/demo.html +102 -0
  241. data/app/assets/components/paper-icon-button/index.html +22 -0
  242. data/app/assets/components/paper-icon-button/metadata.html +21 -0
  243. data/app/assets/components/paper-icon-button/paper-icon-button.css +1 -1
  244. data/app/assets/components/paper-icon-button/{paper-icon-button.html.erb → paper-icon-button.html} +7 -7
  245. data/app/assets/components/paper-icon-button/pulse-ink.css +20 -0
  246. data/app/assets/components/paper-input/README.md +4 -0
  247. data/app/assets/components/paper-input/bower.json +11 -0
  248. data/app/assets/components/paper-input/demo.html +124 -0
  249. data/app/assets/components/paper-input/index.html +22 -0
  250. data/app/assets/components/paper-input/metadata.html +23 -0
  251. data/app/assets/components/paper-input/paper-input.css +152 -0
  252. data/app/assets/components/paper-input/paper-input.html +314 -0
  253. data/app/assets/components/paper-item/README.md +4 -0
  254. data/app/assets/components/paper-item/bower.json +9 -0
  255. data/app/assets/components/paper-item/demo.html +39 -0
  256. data/app/assets/components/paper-item/index.html +22 -0
  257. data/app/assets/components/paper-item/metadata.html +23 -0
  258. data/app/assets/components/paper-item/paper-item.css +15 -2
  259. data/app/assets/components/paper-item/{paper-item.html.erb → paper-item.html} +7 -6
  260. data/app/assets/components/paper-menu-button/README.md +4 -0
  261. data/app/assets/components/paper-menu-button/bower.json +16 -0
  262. data/app/assets/components/paper-menu-button/demo.html +95 -0
  263. data/app/assets/components/paper-menu-button/index.html +22 -0
  264. data/app/assets/components/paper-menu-button/metadata.html +21 -0
  265. data/app/assets/components/paper-menu-button/{paper-menu-button-transition.html.erb → paper-menu-button-transition.html} +31 -26
  266. data/app/assets/components/paper-menu-button/paper-menu-button.css +5 -9
  267. data/app/assets/components/paper-menu-button/{paper-menu-button.html.erb → paper-menu-button.html} +52 -20
  268. data/app/assets/components/paper-progress/README.md +4 -0
  269. data/app/assets/components/paper-progress/bower.json +8 -0
  270. data/app/assets/components/paper-progress/demo.html +107 -0
  271. data/app/assets/components/paper-progress/index.html +22 -0
  272. data/app/assets/components/paper-progress/metadata.html +17 -0
  273. data/app/assets/components/paper-progress/paper-progress.css +1 -1
  274. data/app/assets/components/paper-progress/{paper-progress.html.erb → paper-progress.html} +23 -23
  275. data/app/assets/components/paper-radio-button/README.md +4 -0
  276. data/app/assets/components/paper-radio-button/bower.json +7 -0
  277. data/app/assets/components/paper-radio-button/demo.html +75 -0
  278. data/app/assets/components/paper-radio-button/index.html +22 -0
  279. data/app/assets/components/paper-radio-button/metadata.html +17 -0
  280. data/app/assets/components/paper-radio-button/paper-radio-button.css +14 -8
  281. data/app/assets/components/paper-radio-button/{paper-radio-button.html.erb → paper-radio-button.html} +38 -29
  282. data/app/assets/components/paper-radio-group/README.md +4 -0
  283. data/app/assets/components/paper-radio-group/bower.json +9 -0
  284. data/app/assets/components/paper-radio-group/demo.html +82 -0
  285. data/app/assets/components/paper-radio-group/index.html +22 -0
  286. data/app/assets/components/paper-radio-group/metadata.html +22 -0
  287. data/app/assets/components/paper-radio-group/{paper-radio-group.html.erb → paper-radio-group.html} +16 -16
  288. data/app/assets/components/paper-ripple/README.md +4 -0
  289. data/app/assets/components/paper-ripple/bower.json +9 -0
  290. data/app/assets/components/paper-ripple/demo.html +418 -0
  291. data/app/assets/components/paper-ripple/index.html +22 -0
  292. data/app/assets/components/paper-ripple/metadata.html +20 -0
  293. data/app/assets/components/paper-ripple/paper-ripple.html +3 -2
  294. data/app/assets/components/paper-ripple/raw.html +799 -0
  295. data/app/assets/components/paper-shadow/README.md +4 -0
  296. data/app/assets/components/paper-shadow/bower.json +7 -0
  297. data/app/assets/components/paper-shadow/demo.html +252 -0
  298. data/app/assets/components/paper-shadow/index.html +22 -0
  299. data/app/assets/components/paper-shadow/metadata.html +17 -0
  300. data/app/assets/components/paper-shadow/paper-shadow.css +11 -1
  301. data/app/assets/components/paper-shadow/{paper-shadow.html.erb → paper-shadow.html} +11 -4
  302. data/app/assets/components/paper-slider/README.md +4 -0
  303. data/app/assets/components/paper-slider/bower.json +9 -0
  304. data/app/assets/components/paper-slider/demo.html +151 -0
  305. data/app/assets/components/paper-slider/index.html +22 -0
  306. data/app/assets/components/paper-slider/metadata.html +20 -0
  307. data/app/assets/components/paper-slider/paper-slider.css +58 -26
  308. data/app/assets/components/paper-slider/{paper-slider.html.erb → paper-slider.html} +72 -75
  309. data/app/assets/components/paper-tabs/README.md +4 -0
  310. data/app/assets/components/paper-tabs/bower.json +12 -0
  311. data/app/assets/components/paper-tabs/demo.html +166 -0
  312. data/app/assets/components/paper-tabs/index.html +22 -0
  313. data/app/assets/components/paper-tabs/metadata.html +58 -0
  314. data/app/assets/components/paper-tabs/{paper-tab.html.erb → paper-tab.html} +10 -10
  315. data/app/assets/components/paper-tabs/paper-tabs.css +1 -1
  316. data/app/assets/components/paper-tabs/{paper-tabs.html.erb → paper-tabs.html} +29 -25
  317. data/app/assets/components/paper-toast/README.md +4 -0
  318. data/app/assets/components/paper-toast/bower.json +10 -0
  319. data/app/assets/components/paper-toast/demo.html +67 -0
  320. data/app/assets/components/paper-toast/index.html +22 -0
  321. data/app/assets/components/paper-toast/metadata.html +20 -0
  322. data/app/assets/components/paper-toast/paper-toast.css +80 -0
  323. data/app/assets/components/paper-toast/{paper-toast.html.erb → paper-toast.html} +39 -39
  324. data/app/assets/components/paper-toggle-button/README.md +4 -0
  325. data/app/assets/components/paper-toggle-button/bower.json +8 -0
  326. data/app/assets/components/paper-toggle-button/demo.html +77 -0
  327. data/app/assets/components/paper-toggle-button/index.html +22 -0
  328. data/app/assets/components/paper-toggle-button/metadata.html +17 -0
  329. data/app/assets/components/paper-toggle-button/paper-toggle-button.css +1 -1
  330. data/app/assets/components/paper-toggle-button/{paper-toggle-button.html.erb → paper-toggle-button.html} +39 -20
  331. data/app/assets/components/platform/README.md +6 -0
  332. data/app/assets/components/platform/bower.json +16 -0
  333. data/app/assets/components/platform/build.log +35 -0
  334. data/app/assets/components/platform/platform.js +16 -0
  335. data/app/assets/components/platform/platform.js.map +1 -0
  336. data/app/assets/components/polymer/README.md +17 -0
  337. data/app/assets/components/polymer/bower.json +8 -0
  338. data/app/assets/components/polymer/build.log +35 -0
  339. data/app/assets/components/polymer/layout.html +286 -0
  340. data/app/assets/components/polymer/polymer.html +13 -0
  341. data/app/assets/components/polymer/polymer.js +14 -0
  342. data/app/assets/components/polymer/polymer.js.map +1 -0
  343. data/app/assets/components/sampler-scaffold/README.md +4 -0
  344. data/app/assets/components/sampler-scaffold/bower.json +12 -0
  345. data/app/assets/components/sampler-scaffold/demo.html +54 -0
  346. data/app/assets/components/sampler-scaffold/demos/checkbox.html +20 -0
  347. data/app/assets/components/sampler-scaffold/demos/color.html +20 -0
  348. data/app/assets/components/sampler-scaffold/demos/radio.html +20 -0
  349. data/app/assets/components/sampler-scaffold/demos/range.html +20 -0
  350. data/app/assets/components/sampler-scaffold/demos/string.html +20 -0
  351. data/app/assets/components/sampler-scaffold/index.html +22 -0
  352. data/app/assets/components/sampler-scaffold/sampler-scaffold.css +157 -0
  353. data/app/assets/components/sampler-scaffold/sampler-scaffold.html +224 -0
  354. data/app/assets/components/web-animations-js/COPYING +202 -0
  355. data/app/assets/components/web-animations-js/README.md +237 -0
  356. data/app/assets/components/web-animations-js/run-lint.sh +19 -0
  357. data/app/assets/components/web-animations-js/run-tests-android.sh +25 -0
  358. data/app/assets/components/web-animations-js/run-tests.sh +15 -0
  359. data/app/assets/components/web-animations-js/test/bootstrap.js +1266 -0
  360. data/app/assets/components/web-animations-js/test/img/error.png +0 -0
  361. data/app/assets/components/web-animations-js/test/img/success.png +0 -0
  362. data/app/assets/components/web-animations-js/test/img/unknown.png +0 -0
  363. data/app/assets/components/web-animations-js/test/perf/balls-add-compositing.html +147 -0
  364. data/app/assets/components/web-animations-js/test/perf/balls-replace-compositing.html +144 -0
  365. data/app/assets/components/web-animations-js/test/perf/perf.js +158 -0
  366. data/app/assets/components/web-animations-js/test/perf/updating-inline-style-during-animation.html +165 -0
  367. data/app/assets/components/web-animations-js/test/test-generator.html +240 -0
  368. data/app/assets/components/web-animations-js/test/test-results-post.html +3 -0
  369. data/app/assets/components/web-animations-js/test/test-runner.html +810 -0
  370. data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow-checks.js +42 -0
  371. data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow.html +40 -0
  372. data/app/assets/components/web-animations-js/test/testcases/auto-test-calc-checks.js +41 -0
  373. data/app/assets/components/web-animations-js/test/testcases/auto-test-calc.html +156 -0
  374. data/app/assets/components/web-animations-js/test/testcases/auto-test-change-playback-rate-checks.js +23 -0
  375. data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path-checks.js +65 -0
  376. data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path.html +83 -0
  377. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-checks.js +101 -0
  378. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names-checks.js +431 -0
  379. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names.html +204 -0
  380. data/app/assets/components/web-animations-js/test/testcases/auto-test-color.html +117 -0
  381. data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms-checks.js +45 -0
  382. data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms.html +97 -0
  383. data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor-checks.js +26 -0
  384. data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor.html +68 -0
  385. data/app/assets/components/web-animations-js/test/testcases/auto-test-delay-checks.js +92 -0
  386. data/app/assets/components/web-animations-js/test/testcases/auto-test-delay.html +39 -0
  387. data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate-checks.js +8 -0
  388. data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate.html +30 -0
  389. data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values-checks.js +266 -0
  390. data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values.html +114 -0
  391. data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight-checks.js +26 -0
  392. data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight.html +43 -0
  393. data/app/assets/components/web-animations-js/test/testcases/auto-test-initial-checks.js +74 -0
  394. data/app/assets/components/web-animations-js/test/testcases/auto-test-initial.html +242 -0
  395. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-checks.js +17 -0
  396. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback-checks.js +17 -0
  397. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback.html +78 -0
  398. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods-checks.js +17 -0
  399. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods.html +70 -0
  400. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style.html +69 -0
  401. data/app/assets/components/web-animations-js/test/testcases/auto-test-integer-checks.js +38 -0
  402. data/app/assets/components/web-animations-js/test/testcases/auto-test-integer.html +52 -0
  403. data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start-checks.js +506 -0
  404. data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start.html +160 -0
  405. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-checks.js +44 -0
  406. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes-checks.js +41 -0
  407. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes.html +48 -0
  408. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate.html +50 -0
  409. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic-checks.js +162 -0
  410. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic.html +116 -0
  411. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill-checks.js +602 -0
  412. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill.html +167 -0
  413. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation-checks.js +67 -0
  414. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation.html +109 -0
  415. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing-checks.js +65 -0
  416. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing.html +64 -0
  417. data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units-checks.js +342 -0
  418. data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units.html +103 -0
  419. data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms-checks.js +56 -0
  420. data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms.html +90 -0
  421. data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path-checks.js +110 -0
  422. data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path.html +133 -0
  423. data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric-checks.js +26 -0
  424. data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric.html +42 -0
  425. data/app/assets/components/web-animations-js/test/testcases/auto-test-parent-checks.js +38 -0
  426. data/app/assets/components/web-animations-js/test/testcases/auto-test-parent.html +52 -0
  427. data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes-checks.js +27 -0
  428. data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes.html +43 -0
  429. data/app/assets/components/web-animations-js/test/testcases/auto-test-path-checks.js +20 -0
  430. data/app/assets/components/web-animations-js/test/testcases/auto-test-path.html +41 -0
  431. data/app/assets/components/web-animations-js/test/testcases/auto-test-pause-checks.js +79 -0
  432. data/app/assets/components/web-animations-js/test/testcases/auto-test-pause.html +82 -0
  433. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-checks.js +37 -0
  434. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin-checks.js +61 -0
  435. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin.html +94 -0
  436. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective.html +79 -0
  437. data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate-checks.js +146 -0
  438. data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate.html +128 -0
  439. data/app/assets/components/web-animations-js/test/testcases/auto-test-position-list-type-checks.js +73 -0
  440. data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle-checks.js +23 -0
  441. data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle.html +57 -0
  442. data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent-checks.js +95 -0
  443. data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent.html +60 -0
  444. data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed-checks.js +69 -0
  445. data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed.html +86 -0
  446. data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand-checks.js +197 -0
  447. data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand.html +115 -0
  448. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-checks.js +58 -0
  449. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations-checks.js +92 -0
  450. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations.html +107 -0
  451. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time.html +90 -0
  452. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim-checks.js +23 -0
  453. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim.html +39 -0
  454. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle-checks.js +23 -0
  455. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle.html +38 -0
  456. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color-checks.js +20 -0
  457. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color.html +36 -0
  458. data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow-checks.js +20 -0
  459. data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow.html +37 -0
  460. data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions-checks.js +89 -0
  461. data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions.html +77 -0
  462. data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation-checks.js +58 -0
  463. data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation.html +83 -0
  464. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d-checks.js +134 -0
  465. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d.html +123 -0
  466. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions-checks.js +160 -0
  467. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions.html +158 -0
  468. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin-checks.js +37 -0
  469. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin.html +80 -0
  470. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives-checks.js +292 -0
  471. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives.html +97 -0
  472. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units-checks.js +202 -0
  473. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units.html +98 -0
  474. data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility-checks.js +54 -0
  475. data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility.html +80 -0
  476. data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug-checks.js +58 -0
  477. data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug.html +60 -0
  478. data/app/assets/components/web-animations-js/test/testcases/background.png +0 -0
  479. data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-change-playback-rate.html +65 -0
  480. data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-position-list-type.html +103 -0
  481. data/app/assets/components/web-animations-js/test/testcases/disabled-media.html +439 -0
  482. data/app/assets/components/web-animations-js/test/testcases/disabled-test-compositing-order.html +112 -0
  483. data/app/assets/components/web-animations-js/test/testcases/impl-test-deprecation.html +85 -0
  484. data/app/assets/components/web-animations-js/test/testcases/impl-test-from-css-value.html +219 -0
  485. data/app/assets/components/web-animations-js/test/testcases/impl-test-paced-timing-function.html +83 -0
  486. data/app/assets/components/web-animations-js/test/testcases/impl-test-totimelinetime.html +37 -0
  487. data/app/assets/components/web-animations-js/test/testcases/impl-unit-test-position-type.html +256 -0
  488. data/app/assets/components/web-animations-js/test/testcases/manual-test-add-player-onend.html +57 -0
  489. data/app/assets/components/web-animations-js/test/testcases/manual-test-preset-timings.html +71 -0
  490. data/app/assets/components/web-animations-js/test/testcases/manual-test-step.html +88 -0
  491. data/app/assets/components/web-animations-js/test/testcases/small.mp4 +0 -0
  492. data/app/assets/components/web-animations-js/test/testcases/small.webm +0 -0
  493. data/app/assets/components/web-animations-js/test/testcases/test-bounds.html +69 -0
  494. data/app/assets/components/web-animations-js/test/testcases/test-document-timeline.html +53 -0
  495. data/app/assets/components/web-animations-js/test/testcases/test-dynamic-load.html +65 -0
  496. data/app/assets/components/web-animations-js/test/testcases/test-fill-auto.html +78 -0
  497. data/app/assets/components/web-animations-js/test/testcases/test-getcurrent.html +324 -0
  498. data/app/assets/components/web-animations-js/test/testcases/test-keyframe-animation-effect.html +248 -0
  499. data/app/assets/components/web-animations-js/test/testcases/test-keyframe-composite-operation.html +182 -0
  500. data/app/assets/components/web-animations-js/test/testcases/test-null-target.html +66 -0
  501. data/app/assets/components/web-animations-js/test/testcases/test-pause-for-testing.html +52 -0
  502. data/app/assets/components/web-animations-js/test/testcases/test-player-addeventlistener.html +161 -0
  503. data/app/assets/components/web-animations-js/test/testcases/test-player-cleanup.html +79 -0
  504. data/app/assets/components/web-animations-js/test/testcases/test-player-finish-event.html +101 -0
  505. data/app/assets/components/web-animations-js/test/testcases/test-player-sort.html +48 -0
  506. data/app/assets/components/web-animations-js/test/testcases/test-player.html +786 -0
  507. data/app/assets/components/web-animations-js/test/testcases/test-pseudo-element-reference.html +38 -0
  508. data/app/assets/components/web-animations-js/test/testcases/test-repeated-pause.html +54 -0
  509. data/app/assets/components/web-animations-js/test/testcases/test-restart.html +115 -0
  510. data/app/assets/components/web-animations-js/test/testcases/test-reversed-player-active-phase.html +28 -0
  511. data/app/assets/components/web-animations-js/test/testcases/test-rotation-not-reversed.html +55 -0
  512. data/app/assets/components/web-animations-js/test/testcases/test-update-state.html +113 -0
  513. data/app/assets/components/web-animations-js/test/testcases/unit-test-clone.html +80 -0
  514. data/app/assets/components/web-animations-js/test/testcases/unit-test-delay.html +66 -0
  515. data/app/assets/components/web-animations-js/test/testcases/unit-test-dom-operations.html +164 -0
  516. data/app/assets/components/web-animations-js/test/testcases/unit-test-duration.html +66 -0
  517. data/app/assets/components/web-animations-js/test/testcases/unit-test-get-siblings.html +112 -0
  518. data/app/assets/components/web-animations-js/test/testcases/unit-test-modify-timing-params.html +105 -0
  519. data/app/assets/components/web-animations-js/test/testcases/unit-test-null-effect.html +43 -0
  520. data/app/assets/components/web-animations-js/test/testcases/unit-test-set-parent.html +111 -0
  521. data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness-failure.html +54 -0
  522. data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness.html +248 -0
  523. data/app/assets/components/web-animations-js/test/testcases/unit-test-unpause.html +68 -0
  524. data/app/assets/components/web-animations-js/test/testcases.js +93 -0
  525. data/app/assets/components/web-animations-js/test/testharness_timing.css +75 -0
  526. data/app/assets/components/web-animations-js/test/update-testcases.py +63 -0
  527. data/app/assets/components/web-animations-js/tools/android/config.sh +8 -0
  528. data/app/assets/components/web-animations-js/tools/android/setup.sh +152 -0
  529. data/app/assets/components/web-animations-js/tools/android/stop.sh +20 -0
  530. data/app/assets/components/web-animations-js/tools/python/requirements.txt +12 -0
  531. data/app/assets/components/web-animations-js/tools/python/run-tests.py +813 -0
  532. data/app/assets/components/web-animations-js/tools/python/setup.sh +60 -0
  533. data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation-exercise-1.html +62 -0
  534. data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation.html +120 -0
  535. data/app/assets/components/web-animations-js/tutorial/iframe-contents.html +29 -0
  536. data/app/assets/components/web-animations-js/tutorial/jquery.js +9555 -0
  537. data/app/assets/components/web-animations-js/tutorial/page-load.js +114 -0
  538. data/app/assets/components/web-animations-js/tutorial/parallel/parallel-exercise-1.html +58 -0
  539. data/app/assets/components/web-animations-js/tutorial/parallel/parallel.html +101 -0
  540. data/app/assets/components/web-animations-js/tutorial/sample-tutorial.html +44 -0
  541. data/app/assets/components/web-animations-js/tutorial/try-it-yourself.js +216 -0
  542. data/app/assets/components/web-animations-js/tutorial/tutorial-style.css +344 -0
  543. data/app/assets/components/web-animations-js/tutorial/tutorial-testing.js +84 -0
  544. data/app/assets/components/{core/animation → web-animations-js}/web-animations.js +77 -214
  545. data/lib/polymer-paper-rails/version.rb +1 -1
  546. metadata +540 -61
  547. data/app/assets/components/core/animation/web-animations.html.erb +0 -1
  548. data/app/assets/components/core/icon/core-icon.html.erb +0 -126
  549. data/app/assets/components/core/input/core-input.css +0 -35
  550. data/app/assets/components/core/list/core-list.css +0 -20
  551. data/app/assets/components/core/list/core-list.html.erb +0 -403
  552. data/app/assets/components/core/transition/core-transition-css.html.erb +0 -76
  553. data/app/assets/components/core/transition/core-transition.html.erb +0 -44
  554. data/app/assets/components/paper-input/error-100.png +0 -0
  555. data/app/assets/components/paper-input/error-200.png +0 -0
  556. data/app/assets/components/paper-input/paper-input.html.erb +0 -398
  557. data/app/assets/components/paper-input/paper-input.scss +0 -203
  558. data/app/assets/components/paper-menu-button/paper-menu-button-overlay.html.erb +0 -86
@@ -0,0 +1,147 @@
1
+ <!--
2
+ Copyright 2013 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+
16
+ This test is based on code written by Cameron Adams and imported from
17
+ http://themaninblue.com/experiment/AnimationBenchmark/html
18
+ -->
19
+ <!doctype html>
20
+ <head>
21
+ <style>
22
+ .ball {
23
+ position: absolute;
24
+ width: 12px;
25
+ height: 12px;
26
+ border-radius: 100%;
27
+ }
28
+ </style>
29
+ </head>
30
+ <script src="perf.js"></script>
31
+ <script src="../../web-animations.js"></script>
32
+ <script>
33
+ 'use strict';
34
+
35
+ var stageWidth = 600;
36
+ var stageHeight = 600;
37
+ var particleCount = 2500;
38
+ var minVelocity = 50;
39
+ var maxVelocity = 500;
40
+ var particleRadius = 6;
41
+ var colors = ['#cc0000', '#ffcc00', '#aaff00', '#0099cc', '#194c99', '#661999'];
42
+ var animationDuration = 10;
43
+
44
+ var particles = [];
45
+ var player;
46
+
47
+ var Particle = function() {
48
+ this.element = document.createElement('div');
49
+ this.element.className = 'ball';
50
+ this.element.style.backgroundColor = colors[Math.floor(Perf.random() * colors.length)];
51
+ this.element.style.left = (stageWidth / 2 - particleRadius) + 'px';
52
+ this.element.style.top = (stageHeight / 2 - particleRadius) + 'px';
53
+ document.body.appendChild(this.element);
54
+ };
55
+
56
+ Particle.prototype.generateAnimation = function(duration) {
57
+ var keyframes = [];
58
+
59
+ var angle = Math.PI * 2 * Perf.random();
60
+ var velocity = minVelocity + ((maxVelocity - minVelocity) * Perf.random());
61
+ var x = 0;
62
+ var y = 0;
63
+ var dx = Math.cos(angle) * velocity;
64
+ var dy = Math.sin(angle) * velocity;
65
+
66
+ var nextCollision = function(lineX, normalX, lineY, normalY) {
67
+ var dtx = Infinity;
68
+ var dty = Infinity;
69
+ if (dx * normalX < 0)
70
+ dtx = (lineX - x) / dx;
71
+ if (dy * normalY < 0)
72
+ dty = (lineY - y) / dy;
73
+ var dt = Math.min(dtx, dty);
74
+ var hitX = (dtx < dty);
75
+ return {
76
+ dt: dt,
77
+ x: hitX ? lineX : x + (dx * dt),
78
+ y: hitX ? y + (dy * dt) : lineY,
79
+ dx: hitX ? -dx : dx,
80
+ dy: hitX ? dy : -dy,
81
+ };
82
+ };
83
+
84
+ var t = 0;
85
+ keyframes.push(this.createKeyframe(0, x, y));
86
+ while (t < duration) {
87
+ var collisionA = nextCollision(-stageWidth / 2, 1, -stageHeight / 2, 1);
88
+ var collisionB = nextCollision(stageWidth / 2, -1, stageHeight / 2, -1);
89
+ var collision = collisionA.dt < collisionB.dt ? collisionA : collisionB;
90
+ if (t + collision.dt > duration) {
91
+ var dt = duration - t;
92
+ t = duration;
93
+ x += dx * dt;
94
+ y += dy * dt;
95
+ } else {
96
+ t += collision.dt;
97
+ x = collision.x;
98
+ y = collision.y;
99
+ dx = collision.dx;
100
+ dy = collision.dy;
101
+ }
102
+ keyframes.push(this.createKeyframe(t / duration, x, y));
103
+ }
104
+
105
+ return new Animation(this.element, keyframes, duration);
106
+ };
107
+
108
+ Particle.prototype.createKeyframe = function(offset, x, y) {
109
+ return {
110
+ composite: 'add',
111
+ offset: offset,
112
+ left: x + 'px',
113
+ top: y + 'px',
114
+ };
115
+ };
116
+
117
+ Particle.prototype.destroy = function() {
118
+ document.body.removeChild(this.element);
119
+ };
120
+
121
+ function cleanUp() {
122
+ player.source = null;
123
+ for (var i = 0; i < particles.length; i++) {
124
+ particles[i].destroy();
125
+ }
126
+ particles = [];
127
+ }
128
+
129
+ window.addEventListener('load', function () {
130
+ var spacing = document.createElement('div');
131
+ spacing.style.display = 'inline-block';
132
+ spacing.style.width = '600px';
133
+ document.body.appendChild(spacing);
134
+
135
+ var animationGroup = new AnimationGroup([], {iterations: Infinity, direction: 'alternate'});
136
+ for (var i = 0; i < particleCount; i++) {
137
+ var particle = new Particle();
138
+ animationGroup.append(particle.generateAnimation(animationDuration));
139
+ particles.push(particle);
140
+ }
141
+ player = document.timeline.play(animationGroup);
142
+
143
+ Perf.oncomplete = cleanUp;
144
+ Perf.start();
145
+ });
146
+
147
+ </script>
@@ -0,0 +1,144 @@
1
+ <!--
2
+ Copyright 2013 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+
16
+ This test is based on code written by Cameron Adams and imported from
17
+ http://themaninblue.com/experiment/AnimationBenchmark/html
18
+ -->
19
+ <!doctype html>
20
+ <head>
21
+ <style>
22
+ .ball {
23
+ position: absolute;
24
+ width: 12px;
25
+ height: 12px;
26
+ border-radius: 100%;
27
+ }
28
+ </style>
29
+ </head>
30
+ <script src="perf.js"></script>
31
+ <script src="../../web-animations.js"></script>
32
+ <script>
33
+ 'use strict';
34
+
35
+ var stageWidth = 600;
36
+ var stageHeight = 600;
37
+ var particleCount = 2500;
38
+ var minVelocity = 50;
39
+ var maxVelocity = 500;
40
+ var particleRadius = 6;
41
+ var colors = ['#cc0000', '#ffcc00', '#aaff00', '#0099cc', '#194c99', '#661999'];
42
+ var animationDuration = 10;
43
+
44
+ var particles = [];
45
+ var player;
46
+
47
+ var Particle = function() {
48
+ this.element = document.createElement('div');
49
+ this.element.className = 'ball';
50
+ this.element.style.backgroundColor = colors[Math.floor(Perf.random() * colors.length)];
51
+ document.body.appendChild(this.element);
52
+ };
53
+
54
+ Particle.prototype.generateAnimation = function(duration) {
55
+ var keyframes = [];
56
+
57
+ var angle = Math.PI * 2 * Perf.random();
58
+ var velocity = minVelocity + ((maxVelocity - minVelocity) * Perf.random());
59
+ var x = stageWidth / 2 - particleRadius;
60
+ var y = stageHeight / 2 - particleRadius;
61
+ var dx = Math.cos(angle) * velocity;
62
+ var dy = Math.sin(angle) * velocity;
63
+
64
+ var nextCollision = function(lineX, normalX, lineY, normalY) {
65
+ var dtx = Infinity;
66
+ var dty = Infinity;
67
+ if (dx * normalX < 0)
68
+ dtx = (lineX - x) / dx;
69
+ if (dy * normalY < 0)
70
+ dty = (lineY - y) / dy;
71
+ var dt = Math.min(dtx, dty);
72
+ var hitX = (dtx < dty);
73
+ return {
74
+ dt: dt,
75
+ x: hitX ? lineX : x + (dx * dt),
76
+ y: hitX ? y + (dy * dt) : lineY,
77
+ dx: hitX ? -dx : dx,
78
+ dy: hitX ? dy : -dy,
79
+ };
80
+ };
81
+
82
+ var t = 0;
83
+ keyframes.push(this.createKeyframe(0, x, y));
84
+ while (t < duration) {
85
+ var collisionA = nextCollision(0, 1, 0, 1);
86
+ var collisionB = nextCollision(stageWidth, -1, stageHeight, -1);
87
+ var collision = collisionA.dt < collisionB.dt ? collisionA : collisionB;
88
+ if (t + collision.dt > duration) {
89
+ var dt = duration - t;
90
+ t = duration;
91
+ x += dx * dt;
92
+ y += dy * dt;
93
+ } else {
94
+ t += collision.dt;
95
+ x = collision.x;
96
+ y = collision.y;
97
+ dx = collision.dx;
98
+ dy = collision.dy;
99
+ }
100
+ keyframes.push(this.createKeyframe(t / duration, x, y));
101
+ }
102
+
103
+ return new Animation(this.element, keyframes, duration);
104
+ };
105
+
106
+ Particle.prototype.createKeyframe = function(offset, x, y) {
107
+ return {
108
+ offset: offset,
109
+ left: x + 'px',
110
+ top: y + 'px',
111
+ };
112
+ };
113
+
114
+ Particle.prototype.destroy = function() {
115
+ document.body.removeChild(this.element);
116
+ };
117
+
118
+ function cleanUp() {
119
+ player.source = null;
120
+ for (var i = 0; i < particles.length; i++) {
121
+ particles[i].destroy();
122
+ }
123
+ particles = [];
124
+ }
125
+
126
+ window.addEventListener('load', function () {
127
+ var spacing = document.createElement('div');
128
+ spacing.style.display = 'inline-block';
129
+ spacing.style.width = '600px';
130
+ document.body.appendChild(spacing);
131
+
132
+ var animationGroup = new AnimationGroup([], {iterations: Infinity, direction: 'alternate'});
133
+ for (var i = 0; i < particleCount; i++) {
134
+ var particle = new Particle();
135
+ animationGroup.append(particle.generateAnimation(animationDuration));
136
+ particles.push(particle);
137
+ }
138
+ player = document.timeline.play(animationGroup);
139
+
140
+ Perf.oncomplete = cleanUp;
141
+ Perf.start();
142
+ });
143
+
144
+ </script>
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Copyright 2013 Google Inc. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ (function(){
18
+ 'use strict';
19
+
20
+ var disregardFramesCount = 10;
21
+ var framesPerTimeReading = 10;
22
+ var maxTimeReadings = 60;
23
+ var maxFPSReadings = 31;
24
+
25
+ var frameCount = 0;
26
+ var timeReadings = [];
27
+ var fpsReadings = [];
28
+ var onCompleteHandler;
29
+ var outputElement;
30
+ var running = false;
31
+ var visibilityLost = false;
32
+
33
+ var getTime = (typeof window.performance === 'object' &&
34
+ typeof window.performance.now === 'function') ?
35
+ function() { return window.performance.now(); } :
36
+ function() { return Date.now(); };
37
+
38
+ var raf = window.requestAnimationFrame ||
39
+ window.webkitRequestAnimationFrame ||
40
+ window.mozRequestAnimationFrame ||
41
+ function(callback) { setTimeout(callback, 1000 / 60); };
42
+
43
+ var visibilityChangeEvent = null;
44
+ var hidden = null;
45
+ if (typeof document.hidden !== 'undefined') {
46
+ visibilityChangeEvent = 'visibilitychange';
47
+ hidden = 'hidden';
48
+ } else if (typeof document.mozHidden !== 'undefined') {
49
+ visibilityChangeEvent = 'mozvisibilitychange';
50
+ hidden = 'mozHidden';
51
+ } else if (typeof document.msHidden !== 'undefined') {
52
+ visibilityChangeEvent = 'msvisibilitychange';
53
+ hidden = 'msHidden';
54
+ } else if (typeof document.webkitHidden !== 'undefined') {
55
+ visibilityChangeEvent = 'webkitvisibilitychange';
56
+ hidden = 'webkitHidden';
57
+ }
58
+ if (visibilityChangeEvent) {
59
+ document.addEventListener(visibilityChangeEvent, function() {
60
+ if (running && document[hidden]) {
61
+ visibilityLost = true;
62
+ }
63
+ });
64
+ }
65
+
66
+ var randomSeed = 3384413;
67
+ function random() {
68
+ var temp = randomSeed;
69
+ // Robert Jenkins' 32 bit integer hash function.
70
+ temp = ((temp + 0x7ed55d16) + (temp << 12)) & 0xffffffff;
71
+ temp = ((temp ^ 0xc761c23c) ^ (temp >>> 19)) & 0xffffffff;
72
+ temp = ((temp + 0x165667b1) + (temp << 5)) & 0xffffffff;
73
+ temp = ((temp + 0xd3a2646c) ^ (temp << 9)) & 0xffffffff;
74
+ temp = ((temp + 0xfd7046c5) + (temp << 3)) & 0xffffffff;
75
+ temp = ((temp ^ 0xb55a4f09) ^ (temp >>> 16)) & 0xffffffff;
76
+ randomSeed = temp;
77
+ return (randomSeed & 0xfffffff) / 0x10000000;
78
+ }
79
+
80
+ function disregardFrames() {
81
+ raf((frameCount++ < disregardFramesCount) ? disregardFrames : trackFrameRate);
82
+ }
83
+
84
+ function trackFrameRate()
85
+ {
86
+ frameCount++;
87
+ if (frameCount % framesPerTimeReading === 0) {
88
+ timeReadings.unshift(getTime());
89
+ if (timeReadings.length > maxTimeReadings) {
90
+ timeReadings.pop();
91
+ }
92
+ if (timeReadings.length > 1) {
93
+ var fpsReading = 1000 * (timeReadings.length - 1) * framesPerTimeReading /
94
+ (timeReadings[0] - timeReadings[timeReadings.length - 1]);
95
+ fpsReadings.push(fpsReading);
96
+ output(fpsReading + ' FPS\n');
97
+ if (fpsReadings.length >= maxFPSReadings) {
98
+ outputSummary();
99
+ running = false;
100
+ if (typeof onCompleteHandler === 'function') {
101
+ onCompleteHandler();
102
+ }
103
+ return;
104
+ }
105
+ }
106
+ }
107
+ raf(trackFrameRate);
108
+ }
109
+
110
+ function output(text) {
111
+ outputElement.value += text;
112
+ }
113
+
114
+ function outputSummary() {
115
+ if (visibilityLost) {
116
+ output('Warning: Document lost visibility during test, ' +
117
+ 'results may be inaccurate.\n');
118
+ }
119
+ var total = 0;
120
+ fpsReadings.forEach(function(fpsReading) { total += fpsReading; });
121
+ var average = total / maxFPSReadings;
122
+ output('Average: ' + average + ' FPS\n');
123
+ var temp = 0;
124
+ fpsReadings.forEach(function(fpsReading) {
125
+ temp += (fpsReading - average) * (fpsReading - average);
126
+ });
127
+ output('Stddev: ' + Math.sqrt(temp / fpsReadings.length) + ' FPS\n');
128
+ fpsReadings.sort();
129
+ output('Min: ' + fpsReadings[0] + ' FPS\n');
130
+ output('Max: ' + fpsReadings[fpsReadings.length - 1] + ' FPS\n');
131
+ var median = fpsReadings[fpsReadings.length >> 1];
132
+ if (fpsReadings.length % 2 !== 0) {
133
+ median = (median + fpsReadings[(fpsReadings.length >> 1) + 1]) / 2;
134
+ }
135
+ output('Median: ' + median + ' FPS\n');
136
+ }
137
+
138
+ var start = function() {
139
+ outputElement = document.createElement('textarea');
140
+ outputElement.setAttribute('rows', maxFPSReadings + 6);
141
+ outputElement.setAttribute('cols', 32);
142
+ document.body.appendChild(outputElement);
143
+
144
+ output('Disregarding initial ' + disregardFramesCount + ' frames.\n')
145
+ raf(disregardFrames);
146
+
147
+ running = true;
148
+ };
149
+
150
+ window.Perf = {
151
+ set oncomplete(callback) {
152
+ onCompleteHandler = callback;
153
+ },
154
+ start: start,
155
+ random: random,
156
+ };
157
+
158
+ })();