polymer-paper-rails 0.2.6 → 1.0.0.pre.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (634) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/assets/components/iron-a11y-announcer/README.md +29 -0
  4. data/app/assets/components/iron-a11y-announcer/bower.json +28 -0
  5. data/app/assets/components/iron-a11y-announcer/demo/index.html +40 -0
  6. data/app/assets/components/iron-a11y-announcer/demo/x-announces.html +50 -0
  7. data/app/assets/components/iron-a11y-announcer/index.html +28 -0
  8. data/app/assets/components/iron-a11y-announcer/iron-a11y-announcer.html +125 -0
  9. data/app/assets/components/iron-a11y-announcer/test/index.html +26 -0
  10. data/app/assets/components/iron-a11y-announcer/test/iron-a11y-announcer.html +59 -0
  11. data/app/assets/components/iron-a11y-keys-behavior/README.md +15 -0
  12. data/app/assets/components/iron-a11y-keys-behavior/bower.json +27 -0
  13. data/app/assets/components/iron-a11y-keys-behavior/demo/index.html +21 -0
  14. data/app/assets/components/iron-a11y-keys-behavior/demo/x-key-aware.html +69 -0
  15. data/app/assets/components/iron-a11y-keys-behavior/index.html +24 -0
  16. data/app/assets/components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html +418 -0
  17. data/app/assets/components/iron-a11y-keys-behavior/test/basic-test.html +248 -0
  18. data/app/assets/components/{paper-icon-button/metadata.html → iron-a11y-keys-behavior/test/index.html} +18 -10
  19. data/app/assets/components/iron-autogrow-textarea/README.md +24 -0
  20. data/app/assets/components/iron-autogrow-textarea/bower.json +37 -0
  21. data/app/assets/components/iron-autogrow-textarea/demo/index.html +81 -0
  22. data/app/assets/components/iron-autogrow-textarea/hero.svg +33 -0
  23. data/app/assets/components/iron-autogrow-textarea/index.html +30 -0
  24. data/app/assets/components/iron-autogrow-textarea/iron-autogrow-textarea.html +263 -0
  25. data/app/assets/components/iron-autogrow-textarea/test/basic.html +94 -0
  26. data/app/assets/components/iron-autogrow-textarea/test/index.html +25 -0
  27. data/app/assets/components/iron-behaviors/README.md +4 -0
  28. data/app/assets/components/iron-behaviors/bower.json +25 -0
  29. data/app/assets/components/iron-behaviors/demo/index.html +49 -0
  30. data/app/assets/components/iron-behaviors/demo/simple-button.html +70 -0
  31. data/app/assets/components/iron-behaviors/index.html +27 -0
  32. data/app/assets/components/iron-behaviors/iron-button-state.html +195 -0
  33. data/app/assets/components/iron-behaviors/iron-control-state.html +102 -0
  34. data/app/assets/components/iron-behaviors/test/active-state.html +154 -0
  35. data/app/assets/components/iron-behaviors/test/disabled-state.html +85 -0
  36. data/app/assets/components/iron-behaviors/test/focused-state.html +82 -0
  37. data/app/assets/components/iron-behaviors/test/index.html +25 -0
  38. data/app/assets/components/iron-behaviors/test/test-elements.html +44 -0
  39. data/app/assets/components/iron-fit-behavior/README.md +3 -0
  40. data/app/assets/components/iron-fit-behavior/bower.json +31 -0
  41. data/app/assets/components/iron-fit-behavior/demo/index.html +42 -0
  42. data/app/assets/components/iron-fit-behavior/demo/simple-fit.html +42 -0
  43. data/app/assets/components/iron-fit-behavior/index.html +30 -0
  44. data/app/assets/components/iron-fit-behavior/iron-fit-behavior.html +230 -0
  45. data/app/assets/components/iron-fit-behavior/test/index.html +34 -0
  46. data/app/assets/components/iron-fit-behavior/test/iron-fit-behavior.html +332 -0
  47. data/app/assets/components/iron-fit-behavior/test/test-fit.html +42 -0
  48. data/app/assets/components/iron-flex-layout/README.md +4 -0
  49. data/app/assets/components/iron-flex-layout/bower.json +21 -0
  50. data/app/assets/components/iron-flex-layout/classes/iron-flex-layout.html +307 -0
  51. data/app/assets/components/iron-flex-layout/classes/iron-shadow-flex-layout.html +302 -0
  52. data/app/assets/components/iron-flex-layout/demo/index.html +40 -0
  53. data/app/assets/components/iron-flex-layout/demo/x-app.html +106 -0
  54. data/app/assets/components/iron-flex-layout/iron-flex-layout.html +313 -0
  55. data/app/assets/components/iron-form-element-behavior/README.md +2 -0
  56. data/app/assets/components/iron-form-element-behavior/bower.json +27 -0
  57. data/app/assets/components/iron-form-element-behavior/demo/index.html +53 -0
  58. data/app/assets/components/iron-form-element-behavior/demo/simple-element.html +27 -0
  59. data/app/assets/components/iron-form-element-behavior/demo/simple-form.html +42 -0
  60. data/app/assets/components/iron-form-element-behavior/index.html +30 -0
  61. data/app/assets/components/iron-form-element-behavior/iron-form-element-behavior.html +50 -0
  62. data/app/assets/components/iron-icon/README.md +56 -0
  63. data/app/assets/components/iron-icon/bower.json +29 -0
  64. data/app/assets/components/iron-icon/demo/index.html +28 -0
  65. data/app/assets/components/iron-icon/demo/location.png +0 -0
  66. data/app/assets/components/iron-icon/hero.svg +19 -0
  67. data/app/assets/components/iron-icon/index.html +26 -0
  68. data/app/assets/components/iron-icon/iron-icon.html +187 -0
  69. data/app/assets/components/iron-icon/test/index.html +31 -0
  70. data/app/assets/components/iron-icon/test/iron-icon.html +120 -0
  71. data/app/assets/components/iron-icons/README.md +8 -0
  72. data/app/assets/components/{core-icons → iron-icons}/av-icons.html +19 -11
  73. data/app/assets/components/iron-icons/bower.json +37 -0
  74. data/app/assets/components/{core-icons → iron-icons}/communication-icons.html +14 -9
  75. data/app/assets/components/iron-icons/demo/index.html +132 -0
  76. data/app/assets/components/{core-icons → iron-icons}/device-icons.html +13 -9
  77. data/app/assets/components/{core-icons → iron-icons}/editor-icons.html +8 -5
  78. data/app/assets/components/{core-icons → iron-icons}/hardware-icons.html +11 -6
  79. data/app/assets/components/iron-icons/hero.svg +35 -0
  80. data/app/assets/components/{core-icons → iron-icons}/image-icons.html +23 -11
  81. data/app/assets/components/{core-menu/core-submenu.css → iron-icons/index.html} +14 -32
  82. data/app/assets/components/{core-icons/core-icons.html → iron-icons/iron-icons.html} +60 -35
  83. data/app/assets/components/{core-icons → iron-icons}/maps-icons.html +13 -12
  84. data/app/assets/components/{core-icons → iron-icons}/notification-icons.html +20 -7
  85. data/app/assets/components/{core-icons → iron-icons}/social-icons.html +6 -5
  86. data/app/assets/components/iron-iconset-svg/README.md +4 -0
  87. data/app/assets/components/iron-iconset-svg/bower.json +27 -0
  88. data/app/assets/components/iron-iconset-svg/demo/index.html +65 -0
  89. data/app/assets/components/{core-iconset-svg → iron-iconset-svg/demo}/svg-sample-icons.html +12 -11
  90. data/app/assets/components/iron-iconset-svg/index.html +26 -0
  91. data/app/assets/components/iron-iconset-svg/iron-iconset-svg.html +191 -0
  92. data/app/assets/components/iron-iconset-svg/test/index.html +30 -0
  93. data/app/assets/components/iron-iconset-svg/test/iron-iconset-svg.html +107 -0
  94. data/app/assets/components/iron-input/README.md +16 -0
  95. data/app/assets/components/iron-input/bower.json +36 -0
  96. data/app/assets/components/iron-input/demo/index.html +87 -0
  97. data/app/assets/components/iron-input/hero.svg +19 -0
  98. data/app/assets/components/iron-input/index.html +30 -0
  99. data/app/assets/components/iron-input/iron-input.html +235 -0
  100. data/app/assets/components/iron-input/test/index.html +24 -0
  101. data/app/assets/components/iron-input/test/iron-input.html +139 -0
  102. data/app/assets/components/iron-input/test/letters-only.html +30 -0
  103. data/app/assets/components/iron-media-query/README.md +11 -0
  104. data/app/assets/components/iron-media-query/bower.json +30 -0
  105. data/app/assets/components/iron-media-query/demo/index.html +38 -0
  106. data/app/assets/components/iron-media-query/hero.svg +29 -0
  107. data/app/assets/components/iron-media-query/index.html +29 -0
  108. data/app/assets/components/iron-media-query/iron-media-query.html +84 -0
  109. data/app/assets/components/iron-media-query/test/basic.html +71 -0
  110. data/app/assets/components/iron-media-query/test/index.html +30 -0
  111. data/app/assets/components/iron-menu-behavior/README.md +3 -0
  112. data/app/assets/components/iron-menu-behavior/bower.json +32 -0
  113. data/app/assets/components/iron-menu-behavior/demo/index.html +100 -0
  114. data/app/assets/components/iron-menu-behavior/demo/simple-menu.html +50 -0
  115. data/app/assets/components/iron-menu-behavior/demo/simple-menubar.html +54 -0
  116. data/app/assets/components/iron-menu-behavior/index.html +30 -0
  117. data/app/assets/components/iron-menu-behavior/iron-menu-behavior.html +214 -0
  118. data/app/assets/components/iron-menu-behavior/iron-menubar-behavior.html +65 -0
  119. data/app/assets/components/iron-menu-behavior/test/index.html +35 -0
  120. data/app/assets/components/iron-menu-behavior/test/iron-menu-behavior.html +108 -0
  121. data/app/assets/components/iron-menu-behavior/test/iron-menubar-behavior.html +108 -0
  122. data/app/assets/components/iron-menu-behavior/test/test-menu.html +40 -0
  123. data/app/assets/components/iron-menu-behavior/test/test-menubar.html +40 -0
  124. data/app/assets/components/iron-meta/README.md +46 -0
  125. data/app/assets/components/iron-meta/bower.json +28 -0
  126. data/app/assets/components/iron-meta/demo/index.html +45 -0
  127. data/app/assets/components/iron-meta/hero.svg +33 -0
  128. data/app/assets/components/iron-meta/index.html +27 -0
  129. data/app/assets/components/iron-meta/iron-meta.html +352 -0
  130. data/app/assets/components/iron-meta/test/basic.html +48 -0
  131. data/app/assets/components/iron-meta/test/index.html +30 -0
  132. data/app/assets/components/iron-meta/test/iron-meta.html +186 -0
  133. data/app/assets/components/iron-overlay-behavior/README.md +11 -0
  134. data/app/assets/components/iron-overlay-behavior/bower.json +36 -0
  135. data/app/assets/components/iron-overlay-behavior/demo/index.html +149 -0
  136. data/app/assets/components/iron-overlay-behavior/demo/simple-overlay.html +50 -0
  137. data/app/assets/components/iron-overlay-behavior/index.html +30 -0
  138. data/app/assets/components/iron-overlay-behavior/iron-overlay-backdrop.html +132 -0
  139. data/app/assets/components/iron-overlay-behavior/iron-overlay-behavior.html +432 -0
  140. data/app/assets/components/iron-overlay-behavior/iron-overlay-manager.html +107 -0
  141. data/app/assets/components/iron-overlay-behavior/test/index.html +34 -0
  142. data/app/assets/components/iron-overlay-behavior/test/iron-overlay-behavior.html +314 -0
  143. data/app/assets/components/iron-overlay-behavior/test/test-overlay.html +49 -0
  144. data/app/assets/components/iron-range-behavior/README.md +4 -0
  145. data/app/assets/components/iron-range-behavior/bower.json +30 -0
  146. data/app/assets/components/iron-range-behavior/demo/index.html +76 -0
  147. data/app/assets/components/iron-range-behavior/index.html +24 -0
  148. data/app/assets/components/iron-range-behavior/iron-range-behavior.html +101 -0
  149. data/app/assets/components/iron-range-behavior/test/basic.html +119 -0
  150. data/app/assets/components/iron-range-behavior/test/index.html +25 -0
  151. data/app/assets/components/iron-resizable-behavior/README.md +16 -0
  152. data/app/assets/components/iron-resizable-behavior/bower.json +26 -0
  153. data/app/assets/components/iron-resizable-behavior/demo/index.html +29 -0
  154. data/app/assets/components/iron-resizable-behavior/demo/src/x-app.html +114 -0
  155. data/app/assets/components/iron-resizable-behavior/index.html +25 -0
  156. data/app/assets/components/iron-resizable-behavior/iron-resizable-behavior.html +139 -0
  157. data/app/assets/components/iron-resizable-behavior/test/basic.html +263 -0
  158. data/app/assets/components/{core-overlay/core-key-helper.html → iron-resizable-behavior/test/index.html} +20 -11
  159. data/app/assets/components/iron-resizable-behavior/test/test-elements.html +143 -0
  160. data/app/assets/components/iron-selector/README.md +50 -0
  161. data/app/assets/components/iron-selector/bower.json +31 -0
  162. data/app/assets/components/iron-selector/demo/index.html +66 -0
  163. data/app/assets/components/iron-selector/index.html +28 -0
  164. data/app/assets/components/iron-selector/iron-multi-selectable.html +120 -0
  165. data/app/assets/components/iron-selector/iron-selectable.html +307 -0
  166. data/app/assets/components/iron-selector/iron-selection.html +115 -0
  167. data/app/assets/components/iron-selector/iron-selector.html +71 -0
  168. data/app/assets/components/iron-selector/test/activate-event.html +138 -0
  169. data/app/assets/components/iron-selector/test/basic.html +150 -0
  170. data/app/assets/components/iron-selector/test/content-element.html +43 -0
  171. data/app/assets/components/iron-selector/test/content.html +168 -0
  172. data/app/assets/components/iron-selector/test/index.html +36 -0
  173. data/app/assets/components/iron-selector/test/multi.html +135 -0
  174. data/app/assets/components/iron-selector/test/next-previous.html +134 -0
  175. data/app/assets/components/iron-selector/test/selected-attribute.html +72 -0
  176. data/app/assets/components/iron-selector/test/template-repeat.html +110 -0
  177. data/app/assets/components/iron-validatable-behavior/README.md +3 -0
  178. data/app/assets/components/iron-validatable-behavior/bower.json +35 -0
  179. data/app/assets/components/iron-validatable-behavior/demo/cats-only.html +46 -0
  180. data/app/assets/components/iron-validatable-behavior/demo/index.html +71 -0
  181. data/app/assets/components/iron-validatable-behavior/demo/validatable-input.html +46 -0
  182. data/app/assets/components/iron-validatable-behavior/index.html +30 -0
  183. data/app/assets/components/iron-validatable-behavior/iron-validatable-behavior.html +101 -0
  184. data/app/assets/components/iron-validatable-behavior/test/index.html +35 -0
  185. data/app/assets/components/iron-validatable-behavior/test/iron-validatable-behavior.html +52 -0
  186. data/app/assets/components/iron-validatable-behavior/test/test-validatable.html +28 -0
  187. data/app/assets/components/neon-animation/README.md +304 -0
  188. data/app/assets/components/neon-animation/animations/cascaded-animation.html +84 -0
  189. data/app/assets/components/neon-animation/animations/fade-in-animation.html +49 -0
  190. data/app/assets/components/neon-animation/animations/fade-out-animation.html +49 -0
  191. data/app/assets/components/neon-animation/animations/hero-animation.html +83 -0
  192. data/app/assets/components/neon-animation/animations/opaque-animation.html +46 -0
  193. data/app/assets/components/neon-animation/animations/ripple-animation.html +92 -0
  194. data/app/assets/components/neon-animation/animations/scale-down-animation.html +65 -0
  195. data/app/assets/components/neon-animation/animations/scale-up-animation.html +58 -0
  196. data/app/assets/components/neon-animation/animations/slide-down-animation.html +59 -0
  197. data/app/assets/components/neon-animation/animations/slide-from-left-animation.html +60 -0
  198. data/app/assets/components/neon-animation/animations/slide-from-right-animation.html +60 -0
  199. data/app/assets/components/neon-animation/animations/slide-left-animation.html +59 -0
  200. data/app/assets/components/neon-animation/animations/slide-right-animation.html +59 -0
  201. data/app/assets/components/neon-animation/animations/slide-up-animation.html +59 -0
  202. data/app/assets/components/neon-animation/animations/transform-animation.html +61 -0
  203. data/app/assets/components/neon-animation/bower.json +51 -0
  204. data/app/assets/components/neon-animation/demo/declarative/index.html +108 -0
  205. data/app/assets/components/neon-animation/demo/doc/basic.html +47 -0
  206. data/app/assets/components/neon-animation/demo/doc/my-animatable.html +73 -0
  207. data/app/assets/components/neon-animation/demo/doc/my-dialog.html +97 -0
  208. data/app/assets/components/neon-animation/demo/doc/types.html +53 -0
  209. data/app/assets/components/neon-animation/demo/dropdown/animated-dropdown.html +97 -0
  210. data/app/assets/components/neon-animation/demo/dropdown/index.html +54 -0
  211. data/app/assets/components/neon-animation/demo/grid/animated-grid.html +166 -0
  212. data/app/assets/components/neon-animation/demo/grid/fullsize-page-with-card.html +124 -0
  213. data/app/assets/components/neon-animation/demo/grid/index.html +70 -0
  214. data/app/assets/components/neon-animation/demo/index.html +6 -0
  215. data/app/assets/components/neon-animation/demo/list/full-view.html +122 -0
  216. data/app/assets/components/neon-animation/demo/list/index.html +29 -0
  217. data/app/assets/components/neon-animation/demo/list/list-demo.html +112 -0
  218. data/app/assets/components/neon-animation/demo/list/list-view.html +127 -0
  219. data/app/assets/components/neon-animation/demo/load/animated-grid.html +147 -0
  220. data/app/assets/components/neon-animation/demo/load/full-page.html +86 -0
  221. data/app/assets/components/neon-animation/demo/load/index.html +45 -0
  222. data/app/assets/components/neon-animation/demo/reprojection/animated-grid.html +166 -0
  223. data/app/assets/components/neon-animation/demo/reprojection/fullsize-page-with-card.html +124 -0
  224. data/app/assets/components/neon-animation/demo/reprojection/index.html +66 -0
  225. data/app/assets/components/neon-animation/demo/reprojection/reprojected-pages.html +42 -0
  226. data/app/assets/components/neon-animation/demo/shared.css +40 -0
  227. data/app/assets/components/neon-animation/demo/tiles/circles-page.html +110 -0
  228. data/app/assets/components/neon-animation/demo/tiles/index.html +77 -0
  229. data/app/assets/components/neon-animation/demo/tiles/squares-page.html +104 -0
  230. data/app/assets/components/neon-animation/guides/neon-animation.md +313 -0
  231. data/app/assets/components/neon-animation/index.html +30 -0
  232. data/app/assets/components/neon-animation/neon-animatable-behavior.html +156 -0
  233. data/app/assets/components/neon-animation/neon-animatable.html +54 -0
  234. data/app/assets/components/neon-animation/neon-animated-pages.html +208 -0
  235. data/app/assets/components/neon-animation/neon-animation-behavior.html +88 -0
  236. data/app/assets/components/neon-animation/neon-animation-runner-behavior.html +110 -0
  237. data/app/assets/components/neon-animation/neon-animation.html +17 -0
  238. data/app/assets/components/neon-animation/neon-animations.html +25 -0
  239. data/app/assets/components/neon-animation/neon-shared-element-animatable-behavior.html +37 -0
  240. data/app/assets/components/neon-animation/neon-shared-element-animation-behavior.html +66 -0
  241. data/app/assets/components/{core-collapse/core-collapse.css → neon-animation/web-animations.html} +5 -10
  242. data/app/assets/components/paper-behaviors/README.md +4 -0
  243. data/app/assets/components/paper-behaviors/bower.json +39 -0
  244. data/app/assets/components/paper-behaviors/demo/index.html +57 -0
  245. data/app/assets/components/paper-behaviors/demo/paper-button.html +71 -0
  246. data/app/assets/components/paper-behaviors/demo/paper-radio-button.html +116 -0
  247. data/app/assets/components/paper-behaviors/index.html +26 -0
  248. data/app/assets/components/paper-behaviors/paper-button-behavior.html +55 -0
  249. data/app/assets/components/paper-behaviors/paper-inky-focus-behavior.html +44 -0
  250. data/app/assets/components/paper-behaviors/test/index.html +26 -0
  251. data/app/assets/components/paper-behaviors/test/paper-button-behavior.html +82 -0
  252. data/app/assets/components/paper-behaviors/test/paper-radio-button-behavior.html +62 -0
  253. data/app/assets/components/paper-behaviors/test/test-button.html +34 -0
  254. data/app/assets/components/paper-behaviors/test/test-radio-button.html +41 -0
  255. data/app/assets/components/paper-button/README.md +45 -0
  256. data/app/assets/components/paper-button/bower.json +39 -0
  257. data/app/assets/components/paper-button/demo/index.html +158 -0
  258. data/app/assets/components/paper-button/index.html +26 -0
  259. data/app/assets/components/paper-button/paper-button.html +113 -133
  260. data/app/assets/components/paper-button/test/index.html +25 -0
  261. data/app/assets/components/paper-button/test/paper-button.html +83 -0
  262. data/app/assets/components/paper-checkbox/README.md +31 -0
  263. data/app/assets/components/paper-checkbox/bower.json +37 -0
  264. data/app/assets/components/paper-checkbox/demo/index.html +94 -0
  265. data/app/assets/components/paper-checkbox/index.html +30 -0
  266. data/app/assets/components/paper-checkbox/paper-checkbox.css +141 -136
  267. data/app/assets/components/paper-checkbox/paper-checkbox.html +163 -102
  268. data/app/assets/components/paper-checkbox/test/basic.html +101 -0
  269. data/app/assets/components/paper-checkbox/test/index.html +24 -0
  270. data/app/assets/components/paper-dialog/README.md +3 -0
  271. data/app/assets/components/paper-dialog/bower.json +35 -0
  272. data/app/assets/components/paper-dialog/demo/index.html +158 -0
  273. data/app/assets/components/paper-dialog/hero.svg +58 -0
  274. data/app/assets/components/paper-dialog/index.html +30 -0
  275. data/app/assets/components/paper-dialog/paper-dialog.html +87 -66
  276. data/app/assets/components/paper-dialog/test/index.html +34 -0
  277. data/app/assets/components/paper-dialog/test/paper-dialog.html +53 -0
  278. data/app/assets/components/paper-dialog-behavior/README.md +24 -0
  279. data/app/assets/components/paper-dialog-behavior/bower.json +37 -0
  280. data/app/assets/components/paper-dialog-behavior/demo/index.html +96 -0
  281. data/app/assets/components/paper-dialog-behavior/demo/simple-dialog.html +42 -0
  282. data/app/assets/components/paper-dialog-behavior/hero.svg +51 -0
  283. data/app/assets/components/paper-dialog-behavior/index.html +30 -0
  284. data/app/assets/components/paper-dialog-behavior/paper-dialog-behavior.html +236 -0
  285. data/app/assets/components/paper-dialog-behavior/paper-dialog-common.css +58 -0
  286. data/app/assets/components/paper-dialog-behavior/test/index.html +34 -0
  287. data/app/assets/components/paper-dialog-behavior/test/paper-dialog-behavior.html +217 -0
  288. data/app/assets/components/paper-dialog-behavior/test/test-dialog.html +42 -0
  289. data/app/assets/components/paper-dialog-scrollable/README.md +8 -0
  290. data/app/assets/components/paper-dialog-scrollable/bower.json +36 -0
  291. data/app/assets/components/paper-dialog-scrollable/demo/index.html +290 -0
  292. data/app/assets/components/paper-dialog-scrollable/hero.svg +69 -0
  293. data/app/assets/components/paper-dialog-scrollable/index.html +30 -0
  294. data/app/assets/components/paper-dialog-scrollable/paper-dialog-scrollable.html +150 -0
  295. data/app/assets/components/paper-dialog-scrollable/test/index.html +34 -0
  296. data/app/assets/components/paper-dialog-scrollable/test/paper-dialog-scrollable.html +171 -0
  297. data/app/assets/components/paper-drawer-panel/README.md +71 -0
  298. data/app/assets/components/paper-drawer-panel/bower.json +33 -0
  299. data/app/assets/components/paper-drawer-panel/demo/index.html +85 -0
  300. data/app/assets/components/paper-drawer-panel/hero.svg +21 -0
  301. data/app/assets/components/paper-drawer-panel/index.html +29 -0
  302. data/app/assets/components/{core-drawer-panel/core-drawer-panel.css → paper-drawer-panel/paper-drawer-panel.css} +33 -51
  303. data/app/assets/components/paper-drawer-panel/paper-drawer-panel.html +585 -0
  304. data/app/assets/components/paper-elements/README.md +21 -0
  305. data/app/assets/components/paper-elements/bower.json +51 -0
  306. data/app/assets/components/paper-fab/README.md +44 -0
  307. data/app/assets/components/paper-fab/bower.json +39 -0
  308. data/app/assets/components/paper-fab/demo/index.html +93 -0
  309. data/app/assets/components/paper-fab/index.html +24 -0
  310. data/app/assets/components/paper-fab/paper-fab.html +119 -140
  311. data/app/assets/components/paper-fab/test/a11y.html +71 -0
  312. data/app/assets/components/paper-fab/test/basic.html +76 -0
  313. data/app/assets/components/paper-fab/test/index.html +26 -0
  314. data/app/assets/components/paper-header-panel/README.md +105 -0
  315. data/app/assets/components/paper-header-panel/bower.json +28 -0
  316. data/app/assets/components/paper-header-panel/demo/index.html +148 -0
  317. data/app/assets/components/paper-header-panel/hero.svg +38 -0
  318. data/app/assets/components/paper-header-panel/index.html +36 -0
  319. data/app/assets/components/paper-header-panel/paper-header-panel.html +496 -0
  320. data/app/assets/components/paper-header-panel/test/basic.html +156 -0
  321. data/app/assets/components/paper-header-panel/test/index.html +34 -0
  322. data/app/assets/components/paper-icon-button/README.md +49 -0
  323. data/app/assets/components/paper-icon-button/bower.json +33 -0
  324. data/app/assets/components/paper-icon-button/demo/index.html +154 -0
  325. data/app/assets/components/paper-icon-button/index.html +23 -0
  326. data/app/assets/components/paper-icon-button/paper-icon-button.html +86 -99
  327. data/app/assets/components/paper-icon-button/test/a11y.html +69 -0
  328. data/app/assets/components/paper-icon-button/test/basic.html +77 -0
  329. data/app/assets/components/paper-icon-button/test/index.html +26 -0
  330. data/app/assets/components/paper-input/README.md +5 -0
  331. data/app/assets/components/{core-menu/core-menu.css → paper-input/all-imports.html} +6 -12
  332. data/app/assets/components/paper-input/bower.json +44 -0
  333. data/app/assets/components/paper-input/demo/index.html +96 -0
  334. data/app/assets/components/paper-input/demo/ssn-input.html +94 -0
  335. data/app/assets/components/paper-input/demo/ssn-validator.html +31 -0
  336. data/app/assets/components/paper-input/hero.svg +19 -0
  337. data/app/assets/components/paper-input/index.html +28 -0
  338. data/app/assets/components/paper-input/paper-input-addon-behavior.html +47 -0
  339. data/app/assets/components/paper-input/paper-input-behavior.html +317 -0
  340. data/app/assets/components/paper-input/paper-input-char-counter.html +95 -0
  341. data/app/assets/components/paper-input/paper-input-container.html +495 -0
  342. data/app/assets/components/paper-input/paper-input-error.html +99 -0
  343. data/app/assets/components/paper-input/paper-input.html +96 -115
  344. data/app/assets/components/paper-input/paper-textarea.html +106 -0
  345. data/app/assets/components/paper-input/test/index.html +28 -0
  346. data/app/assets/components/paper-input/test/letters-only.html +30 -0
  347. data/app/assets/components/paper-input/test/paper-input-char-counter.html +112 -0
  348. data/app/assets/components/paper-input/test/paper-input-container.html +237 -0
  349. data/app/assets/components/paper-input/test/paper-input-error.html +60 -0
  350. data/app/assets/components/paper-input/test/paper-input.html +213 -0
  351. data/app/assets/components/paper-input/test/paper-textarea.html +169 -0
  352. data/app/assets/components/paper-item/README.md +4 -0
  353. data/app/assets/components/{font-roboto/roboto.html → paper-item/all-imports.html} +6 -2
  354. data/app/assets/components/paper-item/bower.json +40 -0
  355. data/app/assets/components/paper-item/demo/index.html +285 -0
  356. data/app/assets/components/paper-item/index.html +30 -0
  357. data/app/assets/components/paper-item/paper-icon-item.html +86 -0
  358. data/app/assets/components/paper-item/paper-item-body.html +93 -0
  359. data/app/assets/components/{core-animation/web-animations.html → paper-item/paper-item-shared.css} +13 -4
  360. data/app/assets/components/paper-item/paper-item.html +66 -117
  361. data/app/assets/components/paper-item/test/index.html +34 -0
  362. data/app/assets/components/paper-item/test/paper-item.html +66 -0
  363. data/app/assets/components/paper-material/README.md +13 -0
  364. data/app/assets/components/paper-material/bower.json +36 -0
  365. data/app/assets/components/paper-material/demo/index.html +113 -0
  366. data/app/assets/components/paper-material/index.html +30 -0
  367. data/app/assets/components/paper-material/paper-material.html +98 -0
  368. data/app/assets/components/paper-material/test/index.html +25 -0
  369. data/app/assets/components/paper-material/test/paper-material.html +92 -0
  370. data/app/assets/components/paper-menu/README.md +3 -0
  371. data/app/assets/components/paper-menu/bower.json +32 -0
  372. data/app/assets/components/paper-menu/demo/index.html +81 -0
  373. data/app/assets/components/paper-menu/hero.svg +35 -0
  374. data/app/assets/components/paper-menu/index.html +30 -0
  375. data/app/assets/components/paper-menu/paper-menu.html +133 -0
  376. data/app/assets/components/paper-menu/test/index.html +34 -0
  377. data/app/assets/components/paper-menu/test/paper-menu.html +67 -0
  378. data/app/assets/components/paper-progress/README.md +47 -0
  379. data/app/assets/components/paper-progress/bower.json +31 -0
  380. data/app/assets/components/paper-progress/demo/index.html +122 -0
  381. data/app/assets/components/paper-progress/hero.svg +21 -0
  382. data/app/assets/components/paper-progress/index.html +28 -0
  383. data/app/assets/components/paper-progress/paper-progress.html +153 -78
  384. data/app/assets/components/paper-progress/test/basic.html +121 -0
  385. data/app/assets/components/paper-progress/test/index.html +25 -0
  386. data/app/assets/components/paper-radio-button/README.md +29 -0
  387. data/app/assets/components/paper-radio-button/bower.json +35 -0
  388. data/app/assets/components/paper-radio-button/demo/index.html +94 -0
  389. data/app/assets/components/paper-radio-button/hero.svg +22 -0
  390. data/app/assets/components/paper-radio-button/index.html +29 -0
  391. data/app/assets/components/paper-radio-button/paper-radio-button.css +26 -25
  392. data/app/assets/components/paper-radio-button/paper-radio-button.html +123 -141
  393. data/app/assets/components/paper-radio-button/test/basic.html +101 -0
  394. data/app/assets/components/paper-radio-button/test/index.html +24 -0
  395. data/app/assets/components/paper-radio-group/README.md +20 -0
  396. data/app/assets/components/paper-radio-group/bower.json +36 -0
  397. data/app/assets/components/paper-radio-group/demo/index.html +108 -0
  398. data/app/assets/components/paper-radio-group/hero.svg +25 -0
  399. data/app/assets/components/paper-radio-group/index.html +30 -0
  400. data/app/assets/components/paper-radio-group/paper-radio-group.html +153 -68
  401. data/app/assets/components/paper-radio-group/test/basic.html +167 -0
  402. data/app/assets/components/paper-radio-group/test/index.html +25 -0
  403. data/app/assets/components/paper-ripple/README.md +65 -0
  404. data/app/assets/components/paper-ripple/bower.json +29 -0
  405. data/app/assets/components/paper-ripple/demo/index.html +413 -0
  406. data/app/assets/components/paper-ripple/hero.svg +30 -0
  407. data/app/assets/components/paper-ripple/index.html +27 -0
  408. data/app/assets/components/paper-ripple/paper-ripple.html +552 -315
  409. data/app/assets/components/paper-ripple/test/index.html +25 -0
  410. data/app/assets/components/paper-ripple/test/paper-ripple.html +166 -0
  411. data/app/assets/components/paper-scroll-header-panel/README.md +56 -0
  412. data/app/assets/components/paper-scroll-header-panel/bower.json +38 -0
  413. data/app/assets/components/paper-scroll-header-panel/demo/demo1.html +81 -0
  414. data/app/assets/components/paper-scroll-header-panel/demo/demo2.html +78 -0
  415. data/app/assets/components/paper-scroll-header-panel/demo/demo3.html +79 -0
  416. data/app/assets/components/paper-scroll-header-panel/demo/demo4.html +108 -0
  417. data/app/assets/components/paper-scroll-header-panel/demo/demo5.html +107 -0
  418. data/app/assets/components/paper-scroll-header-panel/demo/demo6.html +112 -0
  419. data/app/assets/components/paper-scroll-header-panel/demo/demo7.html +114 -0
  420. data/app/assets/components/paper-scroll-header-panel/demo/demo8.html +125 -0
  421. data/app/assets/components/paper-scroll-header-panel/demo/demo9.html +105 -0
  422. data/app/assets/components/paper-scroll-header-panel/demo/images/bg2.jpg +0 -0
  423. data/app/assets/components/paper-scroll-header-panel/demo/images/bg3.jpg +0 -0
  424. data/app/assets/components/paper-scroll-header-panel/demo/images/bg5.jpg +0 -0
  425. data/app/assets/components/paper-scroll-header-panel/demo/images/bg6.jpg +0 -0
  426. data/app/assets/components/paper-scroll-header-panel/demo/images/bg9.jpg +0 -0
  427. data/app/assets/components/paper-scroll-header-panel/demo/index.html +107 -0
  428. data/app/assets/components/paper-scroll-header-panel/demo/lorem-ipsum.html +42 -0
  429. data/app/assets/components/paper-scroll-header-panel/demo/sample-content.html +72 -0
  430. data/app/assets/components/paper-scroll-header-panel/hero.svg +41 -0
  431. data/app/assets/components/paper-scroll-header-panel/index.html +28 -0
  432. data/app/assets/components/paper-scroll-header-panel/paper-scroll-header-panel.html +455 -0
  433. data/app/assets/components/paper-scroll-header-panel/test/basic.html +112 -0
  434. data/app/assets/components/paper-scroll-header-panel/test/index.html +25 -0
  435. data/app/assets/components/paper-slider/README.md +69 -0
  436. data/app/assets/components/paper-slider/bower.json +34 -0
  437. data/app/assets/components/paper-slider/demo/index.html +113 -0
  438. data/app/assets/components/paper-slider/hero.svg +20 -0
  439. data/app/assets/components/paper-slider/index.html +29 -0
  440. data/app/assets/components/paper-slider/paper-slider.css +39 -26
  441. data/app/assets/components/paper-slider/paper-slider.html +305 -228
  442. data/app/assets/components/paper-slider/test/basic.html +139 -0
  443. data/app/assets/components/paper-slider/test/index.html +25 -0
  444. data/app/assets/components/paper-spinner/README.md +45 -0
  445. data/app/assets/components/paper-spinner/bower.json +33 -0
  446. data/app/assets/components/paper-spinner/demo/index.html +98 -0
  447. data/app/assets/components/paper-spinner/hero.svg +27 -0
  448. data/app/assets/components/paper-spinner/index.html +30 -0
  449. data/app/assets/components/paper-spinner/paper-spinner.css +42 -40
  450. data/app/assets/components/paper-spinner/paper-spinner.html +168 -103
  451. data/app/assets/components/paper-spinner/test/index.html +34 -0
  452. data/app/assets/components/paper-spinner/test/paper-spinner.html +63 -0
  453. data/app/assets/components/paper-styles/README.md +3 -0
  454. data/app/assets/components/paper-styles/bower.json +27 -0
  455. data/app/assets/components/paper-styles/classes/global.html +96 -0
  456. data/app/assets/components/paper-styles/classes/shadow-layout.html +302 -0
  457. data/app/assets/components/paper-styles/classes/shadow.html +39 -0
  458. data/app/assets/components/paper-styles/classes/typography.html +171 -0
  459. data/app/assets/components/paper-styles/color.html +333 -0
  460. data/app/assets/components/paper-styles/default-theme.html +39 -0
  461. data/app/assets/components/paper-styles/demo-pages.html +72 -0
  462. data/app/assets/components/paper-styles/demo.css +25 -0
  463. data/app/assets/components/{paper-dropdown/paper-dropdown-transition.css → paper-styles/paper-styles-classes.html} +8 -9
  464. data/app/assets/components/paper-styles/paper-styles.html +17 -0
  465. data/app/assets/components/paper-styles/shadow.html +61 -0
  466. data/app/assets/components/paper-styles/typography.html +240 -0
  467. data/app/assets/components/paper-tabs/README.md +56 -0
  468. data/app/assets/components/paper-tabs/bower.json +37 -0
  469. data/app/assets/components/paper-tabs/demo/index.html +177 -0
  470. data/app/assets/components/paper-tabs/hero.svg +23 -0
  471. data/app/assets/components/paper-tabs/index.html +25 -0
  472. data/app/assets/components/paper-tabs/paper-tab.html +122 -46
  473. data/app/assets/components/paper-tabs/paper-tabs-icons.html +18 -0
  474. data/app/assets/components/paper-tabs/paper-tabs.html +387 -257
  475. data/app/assets/components/paper-tabs/test/attr-for-selected.html +82 -0
  476. data/app/assets/components/paper-tabs/test/basic.html +157 -0
  477. data/app/assets/components/paper-tabs/test/index.html +32 -0
  478. data/app/assets/components/paper-toast/README.md +4 -0
  479. data/app/assets/components/paper-toast/bower.json +28 -0
  480. data/app/assets/components/paper-toast/demo/index.html +56 -0
  481. data/app/assets/components/paper-toast/hero.svg +20 -0
  482. data/app/assets/components/paper-toast/index.html +26 -0
  483. data/app/assets/components/paper-toast/paper-toast.html +133 -265
  484. data/app/assets/components/paper-toggle-button/README.md +26 -0
  485. data/app/assets/components/paper-toggle-button/bower.json +36 -0
  486. data/app/assets/components/paper-toggle-button/demo/index.html +106 -0
  487. data/app/assets/components/paper-toggle-button/hero.svg +22 -0
  488. data/app/assets/components/paper-toggle-button/index.html +26 -0
  489. data/app/assets/components/paper-toggle-button/paper-toggle-button.css +36 -23
  490. data/app/assets/components/paper-toggle-button/paper-toggle-button.html +152 -148
  491. data/app/assets/components/paper-toggle-button/test/basic.html +86 -0
  492. data/app/assets/components/paper-toggle-button/test/index.html +25 -0
  493. data/app/assets/components/paper-toolbar/README.md +51 -0
  494. data/app/assets/components/paper-toolbar/bower.json +35 -0
  495. data/app/assets/components/paper-toolbar/demo/index.html +81 -0
  496. data/app/assets/components/paper-toolbar/index.html +38 -0
  497. data/app/assets/components/paper-toolbar/paper-toolbar.html +375 -0
  498. data/app/assets/components/paper-toolbar/test/index.html +24 -0
  499. data/app/assets/components/paper-toolbar/test/paper-toolbar.html +147 -0
  500. data/app/assets/components/polymer/LICENSE.txt +27 -0
  501. data/app/assets/components/polymer/bower.json +26 -0
  502. data/app/assets/components/polymer/build.log +27 -0
  503. data/app/assets/components/polymer/polymer-micro.html +523 -0
  504. data/app/assets/components/polymer/polymer-mini.html +1368 -0
  505. data/app/assets/components/polymer/polymer.html +3768 -0
  506. data/app/assets/components/web-animations-js/COPYING +202 -0
  507. data/app/assets/components/web-animations-js/History.md +108 -0
  508. data/app/assets/components/web-animations-js/README.md +161 -0
  509. data/app/assets/components/web-animations-js/bower.json +31 -0
  510. data/app/assets/components/web-animations-js/web-animations-next-lite.min.js +2 -2
  511. data/app/assets/components/web-animations-js/web-animations-next-lite.min.js.map +1 -0
  512. data/app/assets/components/web-animations-js/web-animations-next.min.js +2 -2
  513. data/app/assets/components/web-animations-js/web-animations-next.min.js.map +1 -0
  514. data/app/assets/components/web-animations-js/web-animations.html +50 -0
  515. data/app/assets/components/web-animations-js/web-animations.min.js +2 -2
  516. data/app/assets/components/web-animations-js/web-animations.min.js.gz +0 -0
  517. data/app/assets/components/web-animations-js/web-animations.min.js.map +1 -0
  518. data/app/assets/components/webcomponentsjs/CustomElements.js +343 -21
  519. data/app/assets/components/webcomponentsjs/CustomElements.min.js +2 -2
  520. data/app/assets/components/webcomponentsjs/HTMLImports.js +348 -34
  521. data/app/assets/components/webcomponentsjs/HTMLImports.min.js +2 -2
  522. data/app/assets/components/webcomponentsjs/MutationObserver.js +344 -0
  523. data/app/assets/components/webcomponentsjs/MutationObserver.min.js +11 -0
  524. data/app/assets/components/webcomponentsjs/README.md +125 -0
  525. data/app/assets/components/webcomponentsjs/ShadowDOM.js +230 -93
  526. data/app/assets/components/webcomponentsjs/ShadowDOM.min.js +6 -4
  527. data/app/assets/components/webcomponentsjs/bower.json +14 -0
  528. data/app/assets/components/webcomponentsjs/build.log +33 -0
  529. data/app/assets/components/webcomponentsjs/package.json +1 -1
  530. data/app/assets/components/webcomponentsjs/webcomponents-lite.js +671 -99
  531. data/app/assets/components/webcomponentsjs/webcomponents-lite.min.js +4 -2
  532. data/app/assets/components/webcomponentsjs/webcomponents.js +1149 -151
  533. data/app/assets/components/webcomponentsjs/webcomponents.min.js +6 -5
  534. data/lib/polymer-paper-rails/version.rb +1 -1
  535. metadata +532 -130
  536. data/app/assets/components/core-a11y-keys/core-a11y-keys.html +0 -335
  537. data/app/assets/components/core-animation/core-animation-group.html +0 -169
  538. data/app/assets/components/core-animation/core-animation.html +0 -525
  539. data/app/assets/components/core-collapse/core-collapse.html +0 -298
  540. data/app/assets/components/core-component-page/bowager-logo.png +0 -0
  541. data/app/assets/components/core-component-page/core-component-page.html +0 -37
  542. data/app/assets/components/core-drawer-panel/core-drawer-panel.html +0 -418
  543. data/app/assets/components/core-drawer-panel/metadata.html +0 -37
  544. data/app/assets/components/core-dropdown/core-dropdown-base.html +0 -117
  545. data/app/assets/components/core-dropdown/core-dropdown.html +0 -311
  546. data/app/assets/components/core-field/core-field.css +0 -38
  547. data/app/assets/components/core-field/core-field.html +0 -35
  548. data/app/assets/components/core-field/metadata.html +0 -26
  549. data/app/assets/components/core-focusable/core-focusable.html +0 -4
  550. data/app/assets/components/core-focusable/core-focusable.js +0 -134
  551. data/app/assets/components/core-focusable/polymer-mixin.js +0 -35
  552. data/app/assets/components/core-header-panel/core-header-panel.css +0 -78
  553. data/app/assets/components/core-header-panel/core-header-panel.html +0 -277
  554. data/app/assets/components/core-header-panel/metadata.html +0 -37
  555. data/app/assets/components/core-icon/core-icon.css +0 -16
  556. data/app/assets/components/core-icon/core-icon.html +0 -201
  557. data/app/assets/components/core-icon/metadata.html +0 -21
  558. data/app/assets/components/core-icon-button/core-icon-button.css +0 -75
  559. data/app/assets/components/core-icon-button/core-icon-button.html +0 -81
  560. data/app/assets/components/core-icon-button/metadata.html +0 -20
  561. data/app/assets/components/core-iconset/core-iconset.html +0 -241
  562. data/app/assets/components/core-iconset/my-icons-big.png +0 -0
  563. data/app/assets/components/core-iconset/my-icons.png +0 -0
  564. data/app/assets/components/core-iconset-svg/core-iconset-svg.html +0 -168
  565. data/app/assets/components/core-input/core-input.css +0 -41
  566. data/app/assets/components/core-input/core-input.html +0 -148
  567. data/app/assets/components/core-input/metadata.html +0 -23
  568. data/app/assets/components/core-item/core-item.css +0 -45
  569. data/app/assets/components/core-item/core-item.html +0 -73
  570. data/app/assets/components/core-item/metadata.html +0 -24
  571. data/app/assets/components/core-media-query/core-media-query.html +0 -87
  572. data/app/assets/components/core-menu/core-menu.html +0 -73
  573. data/app/assets/components/core-menu/core-submenu.html +0 -126
  574. data/app/assets/components/core-menu/metadata.html +0 -62
  575. data/app/assets/components/core-meta/core-meta.html +0 -145
  576. data/app/assets/components/core-overlay/core-overlay-layer.html +0 -116
  577. data/app/assets/components/core-overlay/core-overlay.html +0 -776
  578. data/app/assets/components/core-overlay/gulpfile.js +0 -2
  579. data/app/assets/components/core-range/core-range.html +0 -108
  580. data/app/assets/components/core-resizable/core-resizable.html +0 -248
  581. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.css +0 -58
  582. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.html +0 -360
  583. data/app/assets/components/core-scroll-header-panel/metadata.html +0 -41
  584. data/app/assets/components/core-selection/core-selection.html +0 -149
  585. data/app/assets/components/core-selector/core-selector.html +0 -548
  586. data/app/assets/components/core-selector/metadata.html +0 -20
  587. data/app/assets/components/core-style/core-style.html +0 -387
  588. data/app/assets/components/core-style/elements.html +0 -55
  589. data/app/assets/components/core-style/my-theme.html +0 -73
  590. data/app/assets/components/core-toolbar/core-toolbar.css +0 -117
  591. data/app/assets/components/core-toolbar/core-toolbar.html +0 -155
  592. data/app/assets/components/core-toolbar/metadata.html +0 -28
  593. data/app/assets/components/core-transition/core-transition-css.html +0 -220
  594. data/app/assets/components/core-transition/core-transition-overlay.css +0 -46
  595. data/app/assets/components/core-transition/core-transition.html +0 -140
  596. data/app/assets/components/paper-button/metadata.html +0 -17
  597. data/app/assets/components/paper-button/paper-button-base.html +0 -164
  598. data/app/assets/components/paper-dialog/paper-action-dialog.html +0 -104
  599. data/app/assets/components/paper-dialog/paper-dialog-base.html +0 -81
  600. data/app/assets/components/paper-dialog/paper-dialog-transition.css +0 -59
  601. data/app/assets/components/paper-dialog/paper-dialog-transition.html +0 -27
  602. data/app/assets/components/paper-dropdown/paper-dropdown-transition.html +0 -166
  603. data/app/assets/components/paper-dropdown/paper-dropdown.html +0 -117
  604. data/app/assets/components/paper-dropdown-menu/paper-dropdown-menu.css +0 -44
  605. data/app/assets/components/paper-dropdown-menu/paper-dropdown-menu.html +0 -184
  606. data/app/assets/components/paper-elements/metadata.html +0 -23
  607. data/app/assets/components/paper-elements/paper-elements.html +0 -40
  608. data/app/assets/components/paper-fab/metadata.html +0 -36
  609. data/app/assets/components/paper-input/metadata.html +0 -20
  610. data/app/assets/components/paper-input/paper-autogrow-textarea.html +0 -162
  611. data/app/assets/components/paper-input/paper-char-counter.html +0 -121
  612. data/app/assets/components/paper-input/paper-input-decorator.css +0 -132
  613. data/app/assets/components/paper-input/paper-input-decorator.html +0 -547
  614. data/app/assets/components/paper-item/metadata.html +0 -23
  615. data/app/assets/components/paper-menu-button/metadata.html +0 -21
  616. data/app/assets/components/paper-menu-button/paper-menu-button.css +0 -101
  617. data/app/assets/components/paper-menu-button/paper-menu-button.html +0 -79
  618. data/app/assets/components/paper-progress/metadata.html +0 -17
  619. data/app/assets/components/paper-progress/paper-progress.css +0 -68
  620. data/app/assets/components/paper-radio-button/metadata.html +0 -17
  621. data/app/assets/components/paper-radio-group/metadata.html +0 -22
  622. data/app/assets/components/paper-ripple/metadata.html +0 -20
  623. data/app/assets/components/paper-shadow/metadata.html +0 -17
  624. data/app/assets/components/paper-shadow/paper-shadow.css +0 -66
  625. data/app/assets/components/paper-shadow/paper-shadow.html +0 -86
  626. data/app/assets/components/paper-slider/metadata.html +0 -20
  627. data/app/assets/components/paper-tabs/metadata.html +0 -58
  628. data/app/assets/components/paper-tabs/paper-tab.css +0 -59
  629. data/app/assets/components/paper-tabs/paper-tabs.css +0 -80
  630. data/app/assets/components/paper-toast/metadata.html +0 -20
  631. data/app/assets/components/paper-toast/paper-toast.css +0 -80
  632. data/app/assets/components/paper-toggle-button/metadata.html +0 -17
  633. data/app/assets/components/sampler-scaffold/sampler-scaffold.css +0 -158
  634. data/app/assets/components/sampler-scaffold/sampler-scaffold.html +0 -224
@@ -7,6 +7,9 @@ Code distributed by Google as part of the polymer project is also
7
7
  subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8
8
  -->
9
9
 
10
+ <link rel="import" href="../polymer/polymer.html">
11
+ <link rel="import" href="../iron-a11y-keys-behavior/iron-a11y-keys-behavior.html">
12
+
10
13
  <!--
11
14
  `paper-ripple` provides a visual effect that other paper elements can
12
15
  use to simulate a rippling effect emanating from the point of contact. The
@@ -16,11 +19,11 @@ Example:
16
19
 
17
20
  <paper-ripple></paper-ripple>
18
21
 
19
- `paper-ripple` listens to "down" and "up" events so it would display ripple
22
+ `paper-ripple` listens to "mousedown" and "mouseup" events so it would display ripple
20
23
  effect when touches on it. You can also defeat the default behavior and
21
24
  manually route the down and up actions to the ripple element. Note that it is
22
- important if you call downAction() you will have to make sure to call upAction()
23
- so that `paper-ripple` would end the animation loop.
25
+ important if you call downAction() you will have to make sure to call
26
+ upAction() so that `paper-ripple` would end the animation loop.
24
27
 
25
28
  Example:
26
29
 
@@ -44,10 +47,14 @@ Styling ripple effect:
44
47
  Note that CSS color property is inherited so it is not required to set it on
45
48
  the `paper-ripple` element directly.
46
49
 
47
- By default, the ripple is centered on the point of contact. Apply `recenteringTouch`
48
- class to have the ripple grow toward the center of its container.
50
+ By default, the ripple is centered on the point of contact. Apply the `recenters`
51
+ attribute to have the ripple grow toward the center of its container.
52
+
53
+ <paper-ripple recenters></paper-ripple>
54
+
55
+ You can also center the ripple inside its container from the start.
49
56
 
50
- <paper-ripple class="recenteringTouch"></paper-ripple>
57
+ <paper-ripple center></paper-ripple>
51
58
 
52
59
  Apply `circle` class to make the rippling effect within a circle.
53
60
 
@@ -55,37 +62,53 @@ Apply `circle` class to make the rippling effect within a circle.
55
62
 
56
63
  @group Paper Elements
57
64
  @element paper-ripple
58
- @homepage github.io
65
+ @hero hero.svg
66
+ @demo demo/index.html
59
67
  -->
60
68
 
61
- <!--
62
- Fired when the animation finishes. This is useful if you want to wait until the ripple
63
- animation finishes to perform some action.
64
-
65
- @event core-transitionend
66
- @param {Object} detail
67
- @param {Object} detail.node The animated node
68
- -->
69
+ <dom-module id="paper-ripple">
69
70
 
70
- <link rel="import" href="../polymer/polymer.html" >
71
+ <!--
72
+ Fired when the animation finishes. This is useful if you want to wait until the ripple
73
+ animation finishes to perform some action.
71
74
 
72
- <polymer-element name="paper-ripple" attributes="initialOpacity opacityDecayVelocity">
73
- <template>
75
+ @event transitionend
76
+ @param {Object} detail
77
+ @param {Object} detail.node The animated node
78
+ -->
74
79
 
75
80
  <style>
76
-
77
81
  :host {
78
82
  display: block;
79
- position: relative;
83
+ position: absolute;
80
84
  border-radius: inherit;
81
85
  overflow: hidden;
86
+ top: 0;
87
+ left: 0;
88
+ right: 0;
89
+ bottom: 0;
82
90
  }
83
91
 
84
- :host-context([noink]) {
92
+ :host([animating]) {
93
+ /* This resolves a rendering issue in Chrome (as of 40) where the
94
+ ripple is not properly clipped by its parent (which may have
95
+ rounded corners). See: http://jsbin.com/temexa/4
96
+
97
+ Note: We only apply this style conditionally. Otherwise, the browser
98
+ will create a new compositing layer for every ripple element on the
99
+ page, and that would be bad. */
100
+ -webkit-transform: translate(0, 0);
101
+ transform: translate3d(0, 0, 0);
102
+ }
103
+
104
+ :host([noink]) {
85
105
  pointer-events: none;
86
106
  }
87
107
 
88
- #bg, #waves, .wave-container, .wave {
108
+ #background,
109
+ #waves,
110
+ .wave-container,
111
+ .wave {
89
112
  pointer-events: none;
90
113
  position: absolute;
91
114
  top: 0;
@@ -94,19 +117,22 @@ animation finishes to perform some action.
94
117
  height: 100%;
95
118
  }
96
119
 
97
- #bg, .wave {
120
+ #background,
121
+ .wave {
98
122
  opacity: 0;
99
123
  }
100
124
 
101
- #waves, .wave {
125
+ #waves,
126
+ .wave {
102
127
  overflow: hidden;
103
128
  }
104
129
 
105
- .wave-container, .wave {
130
+ .wave-container,
131
+ .wave {
106
132
  border-radius: 50%;
107
133
  }
108
134
 
109
- :host(.circle) #bg,
135
+ :host(.circle) #background,
110
136
  :host(.circle) #waves {
111
137
  border-radius: 50%;
112
138
  }
@@ -116,362 +142,573 @@ animation finishes to perform some action.
116
142
  }
117
143
 
118
144
  </style>
119
-
120
- <div id="bg"></div>
121
- <div id="waves">
122
- </div>
123
-
124
- </template>
145
+ <template>
146
+ <div id="background"></div>
147
+ <div id="waves"></div>
148
+ </template>
149
+ </dom-module>
125
150
  <script>
126
-
127
151
  (function() {
152
+ var Utility = {
153
+ cssColorWithAlpha: function(cssColor, alpha) {
154
+ var parts = cssColor.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
128
155
 
129
- var waveMaxRadius = 150;
130
- //
131
- // INK EQUATIONS
132
- //
133
- function waveRadiusFn(touchDownMs, touchUpMs, anim) {
134
- // Convert from ms to s
135
- var touchDown = touchDownMs / 1000;
136
- var touchUp = touchUpMs / 1000;
137
- var totalElapsed = touchDown + touchUp;
138
- var ww = anim.width, hh = anim.height;
139
- // use diagonal size of container to avoid floating point math sadness
140
- var waveRadius = Math.min(Math.sqrt(ww * ww + hh * hh), waveMaxRadius) * 1.1 + 5;
141
- var duration = 1.1 - .2 * (waveRadius / waveMaxRadius);
142
- var tt = (totalElapsed / duration);
143
-
144
- var size = waveRadius * (1 - Math.pow(80, -tt));
145
- return Math.abs(size);
146
- }
156
+ if (typeof alpha == 'undefined') {
157
+ alpha = 1;
158
+ }
147
159
 
148
- function waveOpacityFn(td, tu, anim) {
149
- // Convert from ms to s.
150
- var touchDown = td / 1000;
151
- var touchUp = tu / 1000;
152
- var totalElapsed = touchDown + touchUp;
160
+ if (!parts) {
161
+ return 'rgba(255, 255, 255, ' + alpha + ')';
162
+ }
153
163
 
154
- if (tu <= 0) { // before touch up
155
- return anim.initialOpacity;
156
- }
157
- return Math.max(0, anim.initialOpacity - touchUp * anim.opacityDecayVelocity);
158
- }
164
+ return 'rgba(' + parts[1] + ', ' + parts[2] + ', ' + parts[3] + ', ' + alpha + ')';
165
+ },
159
166
 
160
- function waveOuterOpacityFn(td, tu, anim) {
161
- // Convert from ms to s.
162
- var touchDown = td / 1000;
163
- var touchUp = tu / 1000;
167
+ distance: function(x1, y1, x2, y2) {
168
+ var xDelta = (x1 - x2);
169
+ var yDelta = (y1 - y2);
164
170
 
165
- // Linear increase in background opacity, capped at the opacity
166
- // of the wavefront (waveOpacity).
167
- var outerOpacity = touchDown * 0.3;
168
- var waveOpacity = waveOpacityFn(td, tu, anim);
169
- return Math.max(0, Math.min(outerOpacity, waveOpacity));
170
- }
171
+ return Math.sqrt(xDelta * xDelta + yDelta * yDelta);
172
+ },
171
173
 
172
- // Determines whether the wave should be completely removed.
173
- function waveDidFinish(wave, radius, anim) {
174
- var waveOpacity = waveOpacityFn(wave.tDown, wave.tUp, anim);
174
+ now: (function() {
175
+ if (window.performance && window.performance.now) {
176
+ return window.performance.now.bind(window.performance);
177
+ }
175
178
 
176
- // If the wave opacity is 0 and the radius exceeds the bounds
177
- // of the element, then this is finished.
178
- return waveOpacity < 0.01 && radius >= Math.min(wave.maxRadius, waveMaxRadius);
179
+ return Date.now;
180
+ })()
179
181
  };
180
182
 
181
- function waveAtMaximum(wave, radius, anim) {
182
- var waveOpacity = waveOpacityFn(wave.tDown, wave.tUp, anim);
183
+ /**
184
+ * @param {HTMLElement} element
185
+ * @constructor
186
+ */
187
+ function ElementMetrics(element) {
188
+ this.element = element;
189
+ this.width = this.boundingRect.width;
190
+ this.height = this.boundingRect.height;
183
191
 
184
- return waveOpacity >= anim.initialOpacity && radius >= Math.min(wave.maxRadius, waveMaxRadius);
192
+ this.size = Math.max(this.width, this.height);
185
193
  }
186
194
 
187
- //
188
- // DRAWING
189
- //
190
- function drawRipple(ctx, x, y, radius, innerAlpha, outerAlpha) {
191
- // Only animate opacity and transform
192
- if (outerAlpha !== undefined) {
193
- ctx.bg.style.opacity = outerAlpha;
194
- }
195
- ctx.wave.style.opacity = innerAlpha;
195
+ ElementMetrics.prototype = {
196
+ get boundingRect () {
197
+ return this.element.getBoundingClientRect();
198
+ },
196
199
 
197
- var s = radius / (ctx.containerSize / 2);
198
- var dx = x - (ctx.containerWidth / 2);
199
- var dy = y - (ctx.containerHeight / 2);
200
+ furthestCornerDistanceFrom: function(x, y) {
201
+ var topLeft = Utility.distance(x, y, 0, 0);
202
+ var topRight = Utility.distance(x, y, this.width, 0);
203
+ var bottomLeft = Utility.distance(x, y, 0, this.height);
204
+ var bottomRight = Utility.distance(x, y, this.width, this.height);
200
205
 
201
- ctx.wc.style.webkitTransform = 'translate3d(' + dx + 'px,' + dy + 'px,0)';
202
- ctx.wc.style.transform = 'translate3d(' + dx + 'px,' + dy + 'px,0)';
206
+ return Math.max(topLeft, topRight, bottomLeft, bottomRight);
207
+ }
208
+ };
203
209
 
204
- // 2d transform for safari because of border-radius and overflow:hidden clipping bug.
205
- // https://bugs.webkit.org/show_bug.cgi?id=98538
206
- ctx.wave.style.webkitTransform = 'scale(' + s + ',' + s + ')';
207
- ctx.wave.style.transform = 'scale3d(' + s + ',' + s + ',1)';
210
+ /**
211
+ * @param {HTMLElement} element
212
+ * @constructor
213
+ */
214
+ function Ripple(element) {
215
+ this.element = element;
216
+ this.color = window.getComputedStyle(element).color;
217
+
218
+ this.wave = document.createElement('div');
219
+ this.waveContainer = document.createElement('div');
220
+ this.wave.style.backgroundColor = this.color;
221
+ this.wave.classList.add('wave');
222
+ this.waveContainer.classList.add('wave-container');
223
+ Polymer.dom(this.waveContainer).appendChild(this.wave);
224
+
225
+ this.resetInteractionState();
208
226
  }
209
227
 
210
- //
211
- // SETUP
212
- //
213
- function createWave(elem) {
214
- var elementStyle = window.getComputedStyle(elem);
215
- var fgColor = elementStyle.color;
216
-
217
- var inner = document.createElement('div');
218
- inner.style.backgroundColor = fgColor;
219
- inner.classList.add('wave');
220
-
221
- var outer = document.createElement('div');
222
- outer.classList.add('wave-container');
223
- outer.appendChild(inner);
224
-
225
- var container = elem.$.waves;
226
- container.appendChild(outer);
227
-
228
- elem.$.bg.style.backgroundColor = fgColor;
229
-
230
- var wave = {
231
- bg: elem.$.bg,
232
- wc: outer,
233
- wave: inner,
234
- waveColor: fgColor,
235
- maxRadius: 0,
236
- isMouseDown: false,
237
- mouseDownStart: 0.0,
238
- mouseUpStart: 0.0,
239
- tDown: 0,
240
- tUp: 0
241
- };
242
- return wave;
243
- }
228
+ Ripple.MAX_RADIUS = 300;
244
229
 
245
- function removeWaveFromScope(scope, wave) {
246
- if (scope.waves) {
247
- var pos = scope.waves.indexOf(wave);
248
- scope.waves.splice(pos, 1);
249
- // FIXME cache nodes
250
- wave.wc.remove();
251
- }
252
- };
230
+ Ripple.prototype = {
231
+ get recenters() {
232
+ return this.element.recenters;
233
+ },
253
234
 
254
- // Shortcuts.
255
- var pow = Math.pow;
256
- var now = Date.now;
257
- if (window.performance && performance.now) {
258
- now = performance.now.bind(performance);
259
- }
235
+ get center() {
236
+ return this.element.center;
237
+ },
260
238
 
261
- function cssColorWithAlpha(cssColor, alpha) {
262
- var parts = cssColor.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
263
- if (typeof alpha == 'undefined') {
264
- alpha = 1;
265
- }
266
- if (!parts) {
267
- return 'rgba(255, 255, 255, ' + alpha + ')';
239
+ get mouseDownElapsed() {
240
+ var elapsed;
241
+
242
+ if (!this.mouseDownStart) {
243
+ return 0;
268
244
  }
269
- return 'rgba(' + parts[1] + ', ' + parts[2] + ', ' + parts[3] + ', ' + alpha + ')';
270
- }
271
245
 
272
- function dist(p1, p2) {
273
- return Math.sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2));
274
- }
246
+ elapsed = Utility.now() - this.mouseDownStart;
275
247
 
276
- function distanceFromPointToFurthestCorner(point, size) {
277
- var tl_d = dist(point, {x: 0, y: 0});
278
- var tr_d = dist(point, {x: size.w, y: 0});
279
- var bl_d = dist(point, {x: 0, y: size.h});
280
- var br_d = dist(point, {x: size.w, y: size.h});
281
- return Math.max(tl_d, tr_d, bl_d, br_d);
282
- }
248
+ if (this.mouseUpStart) {
249
+ elapsed -= this.mouseUpElapsed;
250
+ }
283
251
 
284
- Polymer('paper-ripple', {
252
+ return elapsed;
253
+ },
285
254
 
286
- /**
287
- * The initial opacity set on the wave.
288
- *
289
- * @attribute initialOpacity
290
- * @type number
291
- * @default 0.25
292
- */
293
- initialOpacity: 0.25,
255
+ get mouseUpElapsed() {
256
+ return this.mouseUpStart ?
257
+ Utility.now () - this.mouseUpStart : 0;
258
+ },
294
259
 
295
- /**
296
- * How fast (opacity per second) the wave fades out.
297
- *
298
- * @attribute opacityDecayVelocity
299
- * @type number
300
- * @default 0.8
301
- */
302
- opacityDecayVelocity: 0.8,
260
+ get mouseDownElapsedSeconds() {
261
+ return this.mouseDownElapsed / 1000;
262
+ },
303
263
 
304
- backgroundFill: true,
305
- pixelDensity: 2,
264
+ get mouseUpElapsedSeconds() {
265
+ return this.mouseUpElapsed / 1000;
266
+ },
306
267
 
307
- eventDelegates: {
308
- down: 'downAction',
309
- up: 'upAction'
268
+ get mouseInteractionSeconds() {
269
+ return this.mouseDownElapsedSeconds + this.mouseUpElapsedSeconds;
310
270
  },
311
271
 
312
- ready: function() {
313
- this.waves = [];
272
+ get initialOpacity() {
273
+ return this.element.initialOpacity;
314
274
  },
315
275
 
316
- downAction: function(e) {
317
- var wave = createWave(this);
276
+ get opacityDecayVelocity() {
277
+ return this.element.opacityDecayVelocity;
278
+ },
318
279
 
319
- this.cancelled = false;
320
- wave.isMouseDown = true;
321
- wave.tDown = 0.0;
322
- wave.tUp = 0.0;
323
- wave.mouseUpStart = 0.0;
324
- wave.mouseDownStart = now();
280
+ get radius() {
281
+ var width2 = this.containerMetrics.width * this.containerMetrics.width;
282
+ var height2 = this.containerMetrics.height * this.containerMetrics.height;
283
+ var waveRadius = Math.min(
284
+ Math.sqrt(width2 + height2),
285
+ Ripple.MAX_RADIUS
286
+ ) * 1.1 + 5;
325
287
 
326
- var rect = this.getBoundingClientRect();
327
- var width = rect.width;
328
- var height = rect.height;
329
- var touchX = e.x - rect.left;
330
- var touchY = e.y - rect.top;
288
+ var duration = 1.1 - 0.2 * (waveRadius / Ripple.MAX_RADIUS);
289
+ var timeNow = this.mouseInteractionSeconds / duration;
290
+ var size = waveRadius * (1 - Math.pow(80, -timeNow));
331
291
 
332
- wave.startPosition = {x:touchX, y:touchY};
292
+ return Math.abs(size);
293
+ },
333
294
 
334
- if (this.classList.contains("recenteringTouch")) {
335
- wave.endPosition = {x: width / 2, y: height / 2};
336
- wave.slideDistance = dist(wave.startPosition, wave.endPosition);
295
+ get opacity() {
296
+ if (!this.mouseUpStart) {
297
+ return this.initialOpacity;
337
298
  }
338
- wave.containerSize = Math.max(width, height);
339
- wave.containerWidth = width;
340
- wave.containerHeight = height;
341
- wave.maxRadius = distanceFromPointToFurthestCorner(wave.startPosition, {w: width, h: height});
342
-
343
- // The wave is circular so constrain its container to 1:1
344
- wave.wc.style.top = (wave.containerHeight - wave.containerSize) / 2 + 'px';
345
- wave.wc.style.left = (wave.containerWidth - wave.containerSize) / 2 + 'px';
346
- wave.wc.style.width = wave.containerSize + 'px';
347
- wave.wc.style.height = wave.containerSize + 'px';
348
-
349
- this.waves.push(wave);
350
-
351
- if (!this._loop) {
352
- this._loop = this.animate.bind(this, {
353
- width: width,
354
- height: height
355
- });
356
- requestAnimationFrame(this._loop);
299
+
300
+ return Math.max(
301
+ 0,
302
+ this.initialOpacity - this.mouseUpElapsedSeconds * this.opacityDecayVelocity
303
+ );
304
+ },
305
+
306
+ get outerOpacity() {
307
+ // Linear increase in background opacity, capped at the opacity
308
+ // of the wavefront (waveOpacity).
309
+ var outerOpacity = this.mouseUpElapsedSeconds * 0.3;
310
+ var waveOpacity = this.opacity;
311
+
312
+ return Math.max(
313
+ 0,
314
+ Math.min(outerOpacity, waveOpacity)
315
+ );
316
+ },
317
+
318
+ get isOpacityFullyDecayed() {
319
+ return this.opacity < 0.01 &&
320
+ this.radius >= Math.min(this.maxRadius, Ripple.MAX_RADIUS);
321
+ },
322
+
323
+ get isRestingAtMaxRadius() {
324
+ return this.opacity >= this.initialOpacity &&
325
+ this.radius >= Math.min(this.maxRadius, Ripple.MAX_RADIUS);
326
+ },
327
+
328
+ get isAnimationComplete() {
329
+ return this.mouseUpStart ?
330
+ this.isOpacityFullyDecayed : this.isRestingAtMaxRadius;
331
+ },
332
+
333
+ get translationFraction() {
334
+ return Math.min(
335
+ 1,
336
+ this.radius / this.containerMetrics.size * 2 / Math.sqrt(2)
337
+ );
338
+ },
339
+
340
+ get xNow() {
341
+ if (this.xEnd) {
342
+ return this.xStart + this.translationFraction * (this.xEnd - this.xStart);
357
343
  }
358
- // else there is already a rAF
359
- },
360
-
361
- upAction: function() {
362
- for (var i = 0; i < this.waves.length; i++) {
363
- // Declare the next wave that has mouse down to be mouse'ed up.
364
- var wave = this.waves[i];
365
- if (wave.isMouseDown) {
366
- wave.isMouseDown = false
367
- wave.mouseUpStart = now();
368
- wave.mouseDownStart = 0;
369
- wave.tUp = 0.0;
370
- break;
371
- }
344
+
345
+ return this.xStart;
346
+ },
347
+
348
+ get yNow() {
349
+ if (this.yEnd) {
350
+ return this.yStart + this.translationFraction * (this.yEnd - this.yStart);
372
351
  }
373
- this._loop && requestAnimationFrame(this._loop);
352
+
353
+ return this.yStart;
354
+ },
355
+
356
+ get isMouseDown() {
357
+ return this.mouseDownStart && !this.mouseUpStart;
374
358
  },
375
359
 
376
- cancel: function() {
377
- this.cancelled = true;
360
+ resetInteractionState: function() {
361
+ this.maxRadius = 0;
362
+ this.mouseDownStart = 0;
363
+ this.mouseUpStart = 0;
364
+
365
+ this.xStart = 0;
366
+ this.yStart = 0;
367
+ this.xEnd = 0;
368
+ this.yEnd = 0;
369
+ this.slideDistance = 0;
370
+
371
+ this.containerMetrics = new ElementMetrics(this.element);
372
+ },
373
+
374
+ draw: function() {
375
+ var scale;
376
+ var translateString;
377
+ var dx;
378
+ var dy;
379
+
380
+ this.wave.style.opacity = this.opacity;
381
+
382
+ scale = this.radius / (this.containerMetrics.size / 2);
383
+ dx = this.xNow - (this.containerMetrics.width / 2);
384
+ dy = this.yNow - (this.containerMetrics.height / 2);
385
+
386
+
387
+ // 2d transform for safari because of border-radius and overflow:hidden clipping bug.
388
+ // https://bugs.webkit.org/show_bug.cgi?id=98538
389
+ this.waveContainer.style.webkitTransform = 'translate(' + dx + 'px, ' + dy + 'px)';
390
+ this.waveContainer.style.transform = 'translate3d(' + dx + 'px, ' + dy + 'px, 0)';
391
+ this.wave.style.webkitTransform = 'scale(' + scale + ',' + scale + ')';
392
+ this.wave.style.transform = 'scale3d(' + scale + ',' + scale + ',1)';
378
393
  },
379
394
 
380
- animate: function(ctx) {
381
- var shouldRenderNextFrame = false;
395
+ downAction: function(event) {
396
+ var xCenter = this.containerMetrics.width / 2;
397
+ var yCenter = this.containerMetrics.height / 2;
398
+
399
+ this.resetInteractionState();
400
+ this.mouseDownStart = Utility.now();
401
+
402
+ if (this.center) {
403
+ this.xStart = xCenter;
404
+ this.yStart = yCenter;
405
+ this.slideDistance = Utility.distance(
406
+ this.xStart, this.yStart, this.xEnd, this.yEnd
407
+ );
408
+ } else {
409
+ this.xStart = event ?
410
+ event.detail.x - this.containerMetrics.boundingRect.left :
411
+ this.containerMetrics.width / 2;
412
+ this.yStart = event ?
413
+ event.detail.y - this.containerMetrics.boundingRect.top :
414
+ this.containerMetrics.height / 2;
415
+ }
416
+
417
+ if (this.recenters) {
418
+ this.xEnd = xCenter;
419
+ this.yEnd = yCenter;
420
+ this.slideDistance = Utility.distance(
421
+ this.xStart, this.yStart, this.xEnd, this.yEnd
422
+ );
423
+ }
424
+
425
+ this.maxRadius = this.containerMetrics.furthestCornerDistanceFrom(
426
+ this.xStart,
427
+ this.yStart
428
+ );
429
+
430
+ this.waveContainer.style.top =
431
+ (this.containerMetrics.height - this.containerMetrics.size) / 2 + 'px';
432
+ this.waveContainer.style.left =
433
+ (this.containerMetrics.width - this.containerMetrics.size) / 2 + 'px';
434
+
435
+ this.waveContainer.style.width = this.containerMetrics.size + 'px';
436
+ this.waveContainer.style.height = this.containerMetrics.size + 'px';
437
+ },
382
438
 
383
- var deleteTheseWaves = [];
384
- // The oldest wave's touch down duration
385
- var longestTouchDownDuration = 0;
386
- var longestTouchUpDuration = 0;
387
- // Save the last known wave color
388
- var lastWaveColor = null;
389
- // wave animation values
390
- var anim = {
391
- initialOpacity: this.initialOpacity,
392
- opacityDecayVelocity: this.opacityDecayVelocity,
393
- height: ctx.height,
394
- width: ctx.width
439
+ upAction: function(event) {
440
+ if (!this.isMouseDown) {
441
+ return;
395
442
  }
396
443
 
397
- for (var i = 0; i < this.waves.length; i++) {
398
- var wave = this.waves[i];
444
+ this.mouseUpStart = Utility.now();
445
+ },
399
446
 
400
- if (wave.mouseDownStart > 0) {
401
- wave.tDown = now() - wave.mouseDownStart;
447
+ remove: function() {
448
+ Polymer.dom(this.waveContainer.parentNode).removeChild(
449
+ this.waveContainer
450
+ );
451
+ }
452
+ };
453
+
454
+ Polymer({
455
+ is: 'paper-ripple',
456
+
457
+ behaviors: [
458
+ Polymer.IronA11yKeysBehavior
459
+ ],
460
+
461
+ properties: {
462
+ /**
463
+ * The initial opacity set on the wave.
464
+ *
465
+ * @attribute initialOpacity
466
+ * @type number
467
+ * @default 0.25
468
+ */
469
+ initialOpacity: {
470
+ type: Number,
471
+ value: 0.25
472
+ },
473
+
474
+ /**
475
+ * How fast (opacity per second) the wave fades out.
476
+ *
477
+ * @attribute opacityDecayVelocity
478
+ * @type number
479
+ * @default 0.8
480
+ */
481
+ opacityDecayVelocity: {
482
+ type: Number,
483
+ value: 0.8
484
+ },
485
+
486
+ /**
487
+ * If true, ripples will exhibit a gravitational pull towards
488
+ * the center of their container as they fade away.
489
+ *
490
+ * @attribute recenters
491
+ * @type boolean
492
+ * @default false
493
+ */
494
+ recenters: {
495
+ type: Boolean,
496
+ value: false
497
+ },
498
+
499
+ /**
500
+ * If true, ripples will center inside its container
501
+ *
502
+ * @attribute recenters
503
+ * @type boolean
504
+ * @default false
505
+ */
506
+ center: {
507
+ type: Boolean,
508
+ value: false
509
+ },
510
+
511
+ /**
512
+ * A list of the visual ripples.
513
+ *
514
+ * @attribute ripples
515
+ * @type Array
516
+ * @default []
517
+ */
518
+ ripples: {
519
+ type: Array,
520
+ value: function() {
521
+ return [];
402
522
  }
403
- if (wave.mouseUpStart > 0) {
404
- wave.tUp = now() - wave.mouseUpStart;
523
+ },
524
+
525
+ /**
526
+ * True when there are visible ripples animating within the
527
+ * element.
528
+ */
529
+ animating: {
530
+ type: Boolean,
531
+ readOnly: true,
532
+ reflectToAttribute: true,
533
+ value: false
534
+ },
535
+
536
+ /**
537
+ * If true, the ripple will remain in the "down" state until `holdDown`
538
+ * is set to false again.
539
+ */
540
+ holdDown: {
541
+ type: Boolean,
542
+ value: false,
543
+ observer: '_holdDownChanged'
544
+ },
545
+
546
+ _animating: {
547
+ type: Boolean
548
+ },
549
+
550
+ _boundAnimate: {
551
+ type: Function,
552
+ value: function() {
553
+ return this.animate.bind(this);
405
554
  }
555
+ }
556
+ },
406
557
 
407
- // Determine how long the touch has been up or down.
408
- var tUp = wave.tUp;
409
- var tDown = wave.tDown;
410
- longestTouchDownDuration = Math.max(longestTouchDownDuration, tDown);
411
- longestTouchUpDuration = Math.max(longestTouchUpDuration, tUp);
558
+ get target () {
559
+ var ownerRoot = Polymer.dom(this).getOwnerRoot();
560
+ var target;
412
561
 
413
- // Obtain the instantenous size and alpha of the ripple.
414
- var radius = waveRadiusFn(tDown, tUp, anim);
415
- var waveAlpha = waveOpacityFn(tDown, tUp, anim);
416
- var waveColor = cssColorWithAlpha(wave.waveColor, waveAlpha);
417
- lastWaveColor = wave.waveColor;
562
+ if (ownerRoot) {
563
+ target = ownerRoot.host;
564
+ }
418
565
 
419
- // Position of the ripple.
420
- var x = wave.startPosition.x;
421
- var y = wave.startPosition.y;
566
+ if (!target) {
567
+ target = this.parentNode;
568
+ }
422
569
 
423
- // Ripple gravitational pull to the center of the canvas.
424
- if (wave.endPosition) {
570
+ return target;
571
+ },
425
572
 
426
- // This translates from the origin to the center of the view based on the max dimension of
427
- var translateFraction = Math.min(1, radius / wave.containerSize * 2 / Math.sqrt(2) );
573
+ keyBindings: {
574
+ 'enter:keydown': '_onEnterKeydown',
575
+ 'space:keydown': '_onSpaceKeydown',
576
+ 'space:keyup': '_onSpaceKeyup'
577
+ },
428
578
 
429
- x += translateFraction * (wave.endPosition.x - wave.startPosition.x);
430
- y += translateFraction * (wave.endPosition.y - wave.startPosition.y);
431
- }
579
+ attached: function() {
580
+ this._listen(this.target, 'up', this.upAction.bind(this));
581
+ this._listen(this.target, 'down', this.downAction.bind(this));
432
582
 
433
- // If we do a background fill fade too, work out the correct color.
434
- var bgFillColor = null;
435
- if (this.backgroundFill) {
436
- var bgFillAlpha = waveOuterOpacityFn(tDown, tUp, anim);
437
- bgFillColor = cssColorWithAlpha(wave.waveColor, bgFillAlpha);
438
- }
583
+ if (!this.target.hasAttribute('noink')) {
584
+ this.keyEventTarget = this.target;
585
+ }
586
+ },
439
587
 
440
- // Draw the ripple.
441
- drawRipple(wave, x, y, radius, waveAlpha, bgFillAlpha);
442
-
443
- // Determine whether there is any more rendering to be done.
444
- var maximumWave = waveAtMaximum(wave, radius, anim);
445
- var waveDissipated = waveDidFinish(wave, radius, anim);
446
- var shouldKeepWave = !waveDissipated || maximumWave;
447
- // keep rendering dissipating wave when at maximum radius on upAction
448
- var shouldRenderWaveAgain = wave.mouseUpStart ? !waveDissipated : !maximumWave;
449
- shouldRenderNextFrame = shouldRenderNextFrame || shouldRenderWaveAgain;
450
- if (!shouldKeepWave || this.cancelled) {
451
- deleteTheseWaves.push(wave);
588
+ get shouldKeepAnimating () {
589
+ for (var index = 0; index < this.ripples.length; ++index) {
590
+ if (!this.ripples[index].isAnimationComplete) {
591
+ return true;
452
592
  }
453
- }
593
+ }
454
594
 
455
- if (shouldRenderNextFrame) {
456
- requestAnimationFrame(this._loop);
595
+ return false;
596
+ },
597
+
598
+ simulatedRipple: function() {
599
+ this.downAction(null);
600
+
601
+ // Please see polymer/polymer#1305
602
+ this.async(function() {
603
+ this.upAction();
604
+ }, 1);
605
+ },
606
+
607
+ downAction: function(event) {
608
+ if (this.holdDown && this.ripples.length > 0) {
609
+ return;
457
610
  }
458
611
 
459
- for (var i = 0; i < deleteTheseWaves.length; ++i) {
460
- var wave = deleteTheseWaves[i];
461
- removeWaveFromScope(this, wave);
612
+ var ripple = this.addRipple();
613
+
614
+ ripple.downAction(event);
615
+
616
+ if (!this._animating) {
617
+ this.animate();
462
618
  }
619
+ },
463
620
 
464
- if (!this.waves.length && this._loop) {
465
- // clear the background color
466
- this.$.bg.style.backgroundColor = null;
467
- this._loop = null;
468
- this.fire('core-transitionend');
621
+ upAction: function(event) {
622
+ if (this.holdDown) {
623
+ return;
469
624
  }
470
- }
471
625
 
472
- });
626
+ this.ripples.forEach(function(ripple) {
627
+ ripple.upAction(event);
628
+ });
473
629
 
474
- })();
630
+ this.animate();
631
+ },
632
+
633
+ onAnimationComplete: function() {
634
+ this._animating = false;
635
+ this.$.background.style.backgroundColor = null;
636
+ this.fire('transitionend');
637
+ },
638
+
639
+ addRipple: function() {
640
+ var ripple = new Ripple(this);
641
+
642
+ Polymer.dom(this.$.waves).appendChild(ripple.waveContainer);
643
+ this.$.background.style.backgroundColor = ripple.color;
644
+ this.ripples.push(ripple);
645
+
646
+ this._setAnimating(true);
647
+
648
+ return ripple;
649
+ },
650
+
651
+ removeRipple: function(ripple) {
652
+ var rippleIndex = this.ripples.indexOf(ripple);
653
+
654
+ if (rippleIndex < 0) {
655
+ return;
656
+ }
657
+
658
+ this.ripples.splice(rippleIndex, 1);
659
+
660
+ ripple.remove();
661
+
662
+ if (!this.ripples.length) {
663
+ this._setAnimating(false);
664
+ }
665
+ },
666
+
667
+ animate: function() {
668
+ var index;
669
+ var ripple;
670
+
671
+ this._animating = true;
475
672
 
673
+ for (index = 0; index < this.ripples.length; ++index) {
674
+ ripple = this.ripples[index];
675
+
676
+ ripple.draw();
677
+
678
+ this.$.background.style.opacity = ripple.outerOpacity;
679
+
680
+ if (ripple.isOpacityFullyDecayed && !ripple.isRestingAtMaxRadius) {
681
+ this.removeRipple(ripple);
682
+ }
683
+ }
684
+
685
+ if (!this.shouldKeepAnimating && this.ripples.length === 0) {
686
+ this.onAnimationComplete();
687
+ } else {
688
+ window.requestAnimationFrame(this._boundAnimate);
689
+ }
690
+ },
691
+
692
+ _onEnterKeydown: function() {
693
+ this.downAction();
694
+ this.async(this.upAction, 1);
695
+ },
696
+
697
+ _onSpaceKeydown: function() {
698
+ this.downAction();
699
+ },
700
+
701
+ _onSpaceKeyup: function() {
702
+ this.upAction();
703
+ },
704
+
705
+ _holdDownChanged: function(holdDown) {
706
+ if (holdDown) {
707
+ this.downAction();
708
+ } else {
709
+ this.upAction();
710
+ }
711
+ }
712
+ });
713
+ })();
476
714
  </script>
477
- </polymer-element>