atome 0.1.00009 → 0.4.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (354) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -0
  3. data/README.md +74 -6
  4. data/Rakefile +14 -6
  5. data/app_builder_helpers/Rakefile +183 -25
  6. data/documentation/atome.md +14 -0
  7. data/documentation/database.JPG +0 -0
  8. data/documentation/framework/apis.md +14 -0
  9. data/documentation/framework/atome_explained.md +179 -0
  10. data/documentation/framework/box_content.md +53 -0
  11. data/documentation/framework/buld_the_gem.md +52 -0
  12. data/documentation/framework/datas_flows.md +28 -0
  13. data/documentation/framework/enhance_atome.md +79 -0
  14. data/documentation/framework/folder_architecture.md +47 -0
  15. data/documentation/framework/technical/rendering_flow.md +18 -0
  16. data/documentation/framework/technical/technical_description.md +23 -0
  17. data/documentation/framework/what_is_it.md +65 -0
  18. data/documentation/framework/what_it_can_do.md +25 -0
  19. data/documentation/images/1.png +0 -0
  20. data/documentation/images/2.png +0 -0
  21. data/documentation/images/3.png +0 -0
  22. data/documentation/images/atome.svg +12 -0
  23. data/documentation/images/list.png +0 -0
  24. data/documentation/images/logos/cordova.png +0 -0
  25. data/documentation/images/logos/freebsd.png +0 -0
  26. data/documentation/images/logos/opal.png +0 -0
  27. data/documentation/images/logos/puma.png +0 -0
  28. data/documentation/images/logos/roda.svg +1 -0
  29. data/documentation/images/logos/ruby.png +0 -0
  30. data/documentation/images/logos/tauri.png +0 -0
  31. data/documentation/installation/atome_server.md +184 -0
  32. data/documentation/tutorials/first_steps.md +148 -0
  33. data/documentation/tutorials/tutorials.md +15 -0
  34. data/documentation/tutorials/working_with_atome.md +60 -0
  35. data/exe/atome +178 -53
  36. data/lib/atome/atome_native_extensions.rb +5 -0
  37. data/lib/atome/extensions/geolocation.rb +14 -0
  38. data/lib/atome/extensions/helper.rb +123 -0
  39. data/lib/atome/extensions/ping.rb +13 -0
  40. data/lib/atome/extensions/sha.rb +6 -0
  41. data/lib/atome/extensions/utilities.rb +39 -0
  42. data/lib/atome/kernel/atome.rb +98 -0
  43. data/lib/atome/kernel/generators/generator.rb +387 -0
  44. data/lib/atome/kernel/generators/genesis.rb +265 -0
  45. data/lib/atome/kernel/generators/sanitizer.rb +77 -0
  46. data/lib/atome/kernel/generators/shapes.rb +40 -0
  47. data/lib/atome/kernel/properties/essential.rb +43 -0
  48. data/lib/atome/kernel/sparkle.rb +37 -0
  49. data/lib/atome/kernel/universe.rb +29 -0
  50. data/lib/atome/renderers/headless/properties/generator.rb +1 -0
  51. data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
  52. data/lib/atome/renderers/opal/extensions/color.rb +23 -0
  53. data/lib/atome/renderers/opal/extensions/geolocation.rb +14 -0
  54. data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
  55. data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
  56. data/lib/atome/renderers/opal/opal_browser.rb +2 -1
  57. data/lib/atome/renderers/opal/opal_parser.rb +1 -0
  58. data/lib/atome/renderers/opal/properties/generator.rb +1 -0
  59. data/lib/atome/renderers/renderer.rb +12 -0
  60. data/lib/atome/renderers/server/properties/generator.rb +9 -0
  61. data/lib/atome/version.rb +1 -1
  62. data/lib/atome.rb +55 -2
  63. data/vendor/assets/Guardfile +4 -0
  64. data/vendor/assets/Rakefile +3 -0
  65. data/vendor/assets/application/index.rb +4 -0
  66. data/vendor/assets/build/css/style.css +21 -8
  67. data/vendor/assets/build/favicon.ico +0 -0
  68. data/vendor/assets/build/index.html +13 -4
  69. data/vendor/assets/build/js/atome/atome.js +68 -0
  70. data/vendor/assets/build/js/ping.min.js +2 -0
  71. data/vendor/assets/build/js/third_parties/createjs.min.js +19 -0
  72. data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
  73. data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
  74. data/vendor/assets/build/js/third_parties/three.min.js +6 -0
  75. data/vendor/assets/build/js/utilities/w3color.js +646 -0
  76. data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
  77. data/vendor/assets/build/medias/audios/clap.wav +0 -0
  78. data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
  79. data/vendor/assets/build/medias/audios/hihat.wav +0 -0
  80. data/vendor/assets/build/medias/audios/kick.wav +0 -0
  81. data/vendor/assets/build/medias/audios/riff.m4a +0 -0
  82. data/vendor/assets/build/medias/audios/snare.wav +0 -0
  83. data/vendor/assets/build/medias/audios/tom.wav +0 -0
  84. data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
  85. data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
  86. data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
  87. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
  88. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
  89. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
  90. data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
  91. data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
  92. data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
  93. data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
  94. data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
  95. data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
  96. data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
  97. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
  98. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
  99. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
  100. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
  101. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
  102. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
  103. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
  104. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
  105. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
  106. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
  107. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
  108. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
  109. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
  110. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
  111. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
  112. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
  113. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
  114. data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
  115. data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
  116. data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
  117. data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
  118. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
  119. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
  120. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
  121. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
  122. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
  123. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
  124. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
  125. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
  126. data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
  127. data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
  128. data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
  129. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
  130. data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
  131. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
  132. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
  133. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
  134. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
  135. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
  136. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
  137. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
  138. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
  139. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
  140. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
  141. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
  142. data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
  143. data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
  144. data/vendor/assets/build/medias/images/atome.svg +12 -0
  145. data/vendor/assets/build/medias/images/avion.jpg +0 -0
  146. data/vendor/assets/build/medias/images/ballanim.png +0 -0
  147. data/vendor/assets/build/medias/images/blank.png +0 -0
  148. data/vendor/assets/build/medias/images/boat.png +0 -0
  149. data/vendor/assets/build/medias/images/cache.svg +10 -0
  150. data/vendor/assets/build/medias/images/dices.png +0 -0
  151. data/vendor/assets/build/medias/images/eVe_back.png +0 -0
  152. data/vendor/assets/build/medias/images/elephant.png +0 -0
  153. data/vendor/assets/build/medias/images/eyes.jpg +0 -0
  154. data/vendor/assets/build/medias/images/freebsd.png +0 -0
  155. data/vendor/assets/build/medias/images/grain_texture.png +0 -0
  156. data/vendor/assets/build/medias/images/green_planet.png +0 -0
  157. data/vendor/assets/build/medias/images/image_missing.svg +9 -0
  158. data/vendor/assets/build/medias/images/jeezs.png +0 -0
  159. data/vendor/assets/build/medias/images/keyboard.png +0 -0
  160. data/vendor/assets/build/medias/images/killer.jpg +0 -0
  161. data/vendor/assets/build/medias/images/living_room.png +0 -0
  162. data/vendor/assets/build/medias/images/logo.svg +14 -0
  163. data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
  164. data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
  165. data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
  166. data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
  167. data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
  168. data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
  169. data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
  170. data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
  171. data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
  172. data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
  173. data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
  174. data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
  175. data/vendor/assets/build/medias/images/moto.png +0 -0
  176. data/vendor/assets/build/medias/images/noise.svg +17 -0
  177. data/vendor/assets/build/medias/images/piano.png +0 -0
  178. data/vendor/assets/build/medias/images/poisson.jpg +0 -0
  179. data/vendor/assets/build/medias/images/red_planet.png +0 -0
  180. data/vendor/assets/build/medias/images/sky.jpg +0 -0
  181. data/vendor/assets/build/medias/images/the_mask.svg +8 -0
  182. data/vendor/assets/build/medias/images/tile.png +0 -0
  183. data/vendor/assets/build/medias/images/tile_black.png +0 -0
  184. data/vendor/assets/build/medias/images/tile_white.png +0 -0
  185. data/vendor/assets/build/medias/javascripts/test.js +1 -0
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
  254. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
  255. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
  256. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
  257. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
  258. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
  259. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
  260. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
  261. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
  262. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
  263. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
  264. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
  265. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
  266. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
  267. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
  268. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
  269. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
  270. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
  271. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
  272. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
  273. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
  274. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
  275. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
  276. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
  277. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
  278. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
  279. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
  280. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
  281. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
  282. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
  283. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
  284. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
  285. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
  286. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
  287. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
  288. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
  289. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
  290. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
  291. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
  292. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
  293. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
  294. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
  295. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
  296. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
  297. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
  298. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
  299. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
  300. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
  301. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
  302. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
  303. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
  304. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
  305. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
  306. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
  307. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
  308. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
  309. data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
  310. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
  311. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
  312. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  313. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
  314. data/vendor/assets/build/medias/rubies/examples/box.rb +1 -0
  315. data/vendor/assets/build/{js/opal/opal_browser.js → medias/rubies/examples/circle.rb} +0 -0
  316. data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
  317. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
  318. data/vendor/assets/build/medias/rubies/examples/drag.rb +5 -0
  319. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
  320. data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
  321. data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
  322. data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
  323. data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
  324. data/vendor/assets/build/medias/rubies/examples/link.rb +13 -0
  325. data/vendor/assets/build/medias/rubies/examples/parent.rb +12 -0
  326. data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
  327. data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
  328. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
  329. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  330. data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
  331. data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
  332. data/vendor/assets/build/medias/rubies/examples/text.rb +5 -0
  333. data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
  334. data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
  335. data/vendor/assets/build/medias/rubies/examples/video.rb +4 -0
  336. data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
  337. data/vendor/assets/build/medias/rubies/examples/web.rb +9 -0
  338. data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
  339. data/vendor/assets/build/medias/rubies/test.rb +1 -0
  340. data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
  341. data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
  342. data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
  343. data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
  344. data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
  345. data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
  346. data/vendor/assets/r&d/ping.rb +3 -0
  347. data/vendor/assets/r&d/storage.rb +9 -0
  348. data/vendor/assets/r&d/view_example.rb +21 -0
  349. data/vendor/assets/server/atome_server.rb +74 -27
  350. data/vendor/assets/server/config.ru +2 -14
  351. metadata +424 -12
  352. data/lib/atome/kernel/atome_genesis.rb +0 -2
  353. data/lib/atome/kernel/properties/geometry.rb +0 -2
  354. data/vendor/assets/build/js/opal/opal_parser.js +0 -0
@@ -0,0 +1,646 @@
1
+ /* w3color.js ver.1.18 by w3schools.com (Do not remove this line)*/
2
+ (function () {
3
+ function w3color(color, elmnt) {
4
+ if (!(this instanceof w3color)) { return new w3color(color, elmnt); }
5
+ if (typeof color == "object") {return color; }
6
+ this.attachValues(toColorObject(color));
7
+ if (elmnt) {elmnt.style.backgroundColor = this.toRgbString();}
8
+ }
9
+ w3color.prototype = {
10
+ toRgbString : function () {
11
+ return "rgb(" + this.red + ", " + this.green + ", " + this.blue + ")";
12
+ },
13
+ toRgbaString : function () {
14
+ return "rgba(" + this.red + ", " + this.green + ", " + this.blue + ", " + this.opacity + ")";
15
+ },
16
+ toHwbString : function () {
17
+ return "hwb(" + this.hue + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%)";
18
+ },
19
+ toHwbStringDecimal : function () {
20
+ return "hwb(" + this.hue + ", " + this.whiteness + ", " + this.blackness + ")";
21
+ },
22
+ toHwbaString : function () {
23
+ return "hwba(" + this.hue + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%, " + this.opacity + ")";
24
+ },
25
+ toHslString : function () {
26
+ return "hsl(" + this.hue + ", " + Math.round(this.sat * 100) + "%, " + Math.round(this.lightness * 100) + "%)";
27
+ },
28
+ toHslStringDecimal : function () {
29
+ return "hsl(" + this.hue + ", " + this.sat + ", " + this.lightness + ")";
30
+ },
31
+ toHslaString : function () {
32
+ return "hsla(" + this.hue + ", " + Math.round(this.sat * 100) + "%, " + Math.round(this.lightness * 100) + "%, " + this.opacity + ")";
33
+ },
34
+ toCmykString : function () {
35
+ return "cmyk(" + Math.round(this.cyan * 100) + "%, " + Math.round(this.magenta * 100) + "%, " + Math.round(this.yellow * 100) + "%, " + Math.round(this.black * 100) + "%)";
36
+ },
37
+ toCmykStringDecimal : function () {
38
+ return "cmyk(" + this.cyan + ", " + this.magenta + ", " + this.yellow + ", " + this.black + ")";
39
+ },
40
+ toNcolString : function () {
41
+ return this.ncol + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%";
42
+ },
43
+ toNcolStringDecimal : function () {
44
+ return this.ncol + ", " + this.whiteness + ", " + this.blackness;
45
+ },
46
+ toNcolaString : function () {
47
+ return this.ncol + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%, " + this.opacity;
48
+ },
49
+ toName : function () {
50
+ var r, g, b, colorhexs = getColorArr('hexs');
51
+ for (i = 0; i < colorhexs.length; i++) {
52
+ r = parseInt(colorhexs[i].substr(0,2), 16);
53
+ g = parseInt(colorhexs[i].substr(2,2), 16);
54
+ b = parseInt(colorhexs[i].substr(4,2), 16);
55
+ if (this.red == r && this.green == g && this.blue == b) {
56
+ return getColorArr('names')[i];
57
+ }
58
+ }
59
+ return "";
60
+ },
61
+ toHexString : function () {
62
+ var r = toHex(this.red);
63
+ var g = toHex(this.green);
64
+ var b = toHex(this.blue);
65
+ return "#" + r + g + b;
66
+ },
67
+ toRgb : function () {
68
+ return {r : this.red, g : this.green, b : this.blue, a : this.opacity};
69
+ },
70
+ toHsl : function () {
71
+ return {h : this.hue, s : this.sat, l : this.lightness, a : this.opacity};
72
+ },
73
+ toHwb : function () {
74
+ return {h : this.hue, w : this.whiteness, b : this.blackness, a : this.opacity};
75
+ },
76
+ toCmyk : function () {
77
+ return {c : this.cyan, m : this.magenta, y : this.yellow, k : this.black, a : this.opacity};
78
+ },
79
+ toNcol : function () {
80
+ return {ncol : this.ncol, w : this.whiteness, b : this.blackness, a : this.opacity};
81
+ },
82
+ isDark : function (n) {
83
+ var m = (n || 128);
84
+ return (((this.red * 299 + this.green * 587 + this.blue * 114) / 1000) < m);
85
+ },
86
+ saturate : function (n) {
87
+ var x, rgb, color;
88
+ x = (n / 100 || 0.1);
89
+ this.sat += x;
90
+ if (this.sat > 1) {this.sat = 1;}
91
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
92
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
93
+ this.attachValues(color);
94
+ },
95
+ desaturate : function (n) {
96
+ var x, rgb, color;
97
+ x = (n / 100 || 0.1);
98
+ this.sat -= x;
99
+ if (this.sat < 0) {this.sat = 0;}
100
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
101
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
102
+ this.attachValues(color);
103
+ },
104
+ lighter : function (n) {
105
+ var x, rgb, color;
106
+ x = (n / 100 || 0.1);
107
+ this.lightness += x;
108
+ if (this.lightness > 1) {this.lightness = 1;}
109
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
110
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
111
+ this.attachValues(color);
112
+ },
113
+ darker : function (n) {
114
+ var x, rgb, color;
115
+ x = (n / 100 || 0.1);
116
+ this.lightness -= x;
117
+ if (this.lightness < 0) {this.lightness = 0;}
118
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
119
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
120
+ this.attachValues(color);
121
+ },
122
+ attachValues : function(color) {
123
+ this.red = color.red;
124
+ this.green = color.green;
125
+ this.blue = color.blue;
126
+ this.hue = color.hue;
127
+ this.sat = color.sat;
128
+ this.lightness = color.lightness;
129
+ this.whiteness = color.whiteness;
130
+ this.blackness = color.blackness;
131
+ this.cyan = color.cyan;
132
+ this.magenta = color.magenta;
133
+ this.yellow = color.yellow;
134
+ this.black = color.black;
135
+ this.ncol = color.ncol;
136
+ this.opacity = color.opacity;
137
+ this.valid = color.valid;
138
+ }
139
+ };
140
+ function toColorObject(c) {
141
+ var x, y, typ, arr = [], arrlength, i, opacity, match, a, hue, sat, rgb, colornames = [], colorhexs = [];
142
+ c = w3trim(c.toLowerCase());
143
+ x = c.substr(0,1).toUpperCase();
144
+ y = c.substr(1);
145
+ a = 1;
146
+ if ((x == "R" || x == "Y" || x == "G" || x == "C" || x == "B" || x == "M" || x == "W") && !isNaN(y)) {
147
+ if (c.length == 6 && c.indexOf(",") == -1) {
148
+ } else {
149
+ c = "ncol(" + c + ")";
150
+ }
151
+ }
152
+ if (c.length != 3 && c.length != 6 && !isNaN(c)) {c = "ncol(" + c + ")";}
153
+ if (c.indexOf(",") > 0 && c.indexOf("(") == -1) {c = "ncol(" + c + ")";}
154
+ if (c.substr(0, 3) == "rgb" || c.substr(0, 3) == "hsl" || c.substr(0, 3) == "hwb" || c.substr(0, 4) == "ncol" || c.substr(0, 4) == "cmyk") {
155
+ if (c.substr(0, 4) == "ncol") {
156
+ if (c.split(",").length == 4 && c.indexOf("ncola") == -1) {
157
+ c = c.replace("ncol", "ncola");
158
+ }
159
+ typ = "ncol";
160
+ c = c.substr(4);
161
+ } else if (c.substr(0, 4) == "cmyk") {
162
+ typ = "cmyk";
163
+ c = c.substr(4);
164
+ } else {
165
+ typ = c.substr(0, 3);
166
+ c = c.substr(3);
167
+ }
168
+ arrlength = 3;
169
+ opacity = false;
170
+ if (c.substr(0, 1).toLowerCase() == "a") {
171
+ arrlength = 4;
172
+ opacity = true;
173
+ c = c.substr(1);
174
+ } else if (typ == "cmyk") {
175
+ arrlength = 4;
176
+ if (c.split(",").length == 5) {
177
+ arrlength = 5;
178
+ opacity = true;
179
+ }
180
+ }
181
+ c = c.replace("(", "");
182
+ c = c.replace(")", "");
183
+ arr = c.split(",");
184
+ if (typ == "rgb") {
185
+ if (arr.length != arrlength) {
186
+ return emptyObject();
187
+ }
188
+ for (i = 0; i < arrlength; i++) {
189
+ if (arr[i] == "" || arr[i] == " ") {arr[i] = "0"; }
190
+ if (arr[i].indexOf("%") > -1) {
191
+ arr[i] = arr[i].replace("%", "");
192
+ arr[i] = Number(arr[i] / 100);
193
+ if (i < 3 ) {arr[i] = Math.round(arr[i] * 255);}
194
+ }
195
+ if (isNaN(arr[i])) {return emptyObject(); }
196
+ if (parseInt(arr[i]) > 255) {arr[i] = 255; }
197
+ if (i < 3) {arr[i] = parseInt(arr[i]);}
198
+ if (i == 3 && Number(arr[i]) > 1) {arr[i] = 1;}
199
+ }
200
+ rgb = {r : arr[0], g : arr[1], b : arr[2]};
201
+ if (opacity == true) {a = Number(arr[3]);}
202
+ }
203
+ if (typ == "hsl" || typ == "hwb" || typ == "ncol") {
204
+ while (arr.length < arrlength) {arr.push("0"); }
205
+ if (typ == "hsl" || typ == "hwb") {
206
+ if (parseInt(arr[0]) >= 360) {arr[0] = 0; }
207
+ }
208
+ for (i = 1; i < arrlength; i++) {
209
+ if (arr[i].indexOf("%") > -1) {
210
+ arr[i] = arr[i].replace("%", "");
211
+ arr[i] = Number(arr[i]);
212
+ if (isNaN(arr[i])) {return emptyObject(); }
213
+ arr[i] = arr[i] / 100;
214
+ } else {
215
+ arr[i] = Number(arr[i]);
216
+ }
217
+ if (Number(arr[i]) > 1) {arr[i] = 1;}
218
+ if (Number(arr[i]) < 0) {arr[i] = 0;}
219
+ }
220
+ if (typ == "hsl") {rgb = hslToRgb(arr[0], arr[1], arr[2]); hue = Number(arr[0]); sat = Number(arr[1]);}
221
+ if (typ == "hwb") {rgb = hwbToRgb(arr[0], arr[1], arr[2]);}
222
+ if (typ == "ncol") {rgb = ncolToRgb(arr[0], arr[1], arr[2]);}
223
+ if (opacity == true) {a = Number(arr[3]);}
224
+ }
225
+ if (typ == "cmyk") {
226
+ while (arr.length < arrlength) {arr.push("0"); }
227
+ for (i = 0; i < arrlength; i++) {
228
+ if (arr[i].indexOf("%") > -1) {
229
+ arr[i] = arr[i].replace("%", "");
230
+ arr[i] = Number(arr[i]);
231
+ if (isNaN(arr[i])) {return emptyObject(); }
232
+ arr[i] = arr[i] / 100;
233
+ } else {
234
+ arr[i] = Number(arr[i]);
235
+ }
236
+ if (Number(arr[i]) > 1) {arr[i] = 1;}
237
+ if (Number(arr[i]) < 0) {arr[i] = 0;}
238
+ }
239
+ rgb = cmykToRgb(arr[0], arr[1], arr[2], arr[3]);
240
+ if (opacity == true) {a = Number(arr[4]);}
241
+ }
242
+ } else if (c.substr(0, 3) == "ncs") {
243
+ rgb = ncsToRgb(c);
244
+ } else {
245
+ match = false;
246
+ colornames = getColorArr('names');
247
+ for (i = 0; i < colornames.length; i++) {
248
+ if (c.toLowerCase() == colornames[i].toLowerCase()) {
249
+ colorhexs = getColorArr('hexs');
250
+ match = true;
251
+ rgb = {
252
+ r : parseInt(colorhexs[i].substr(0,2), 16),
253
+ g : parseInt(colorhexs[i].substr(2,2), 16),
254
+ b : parseInt(colorhexs[i].substr(4,2), 16)
255
+ };
256
+ break;
257
+ }
258
+ }
259
+ if (match == false) {
260
+ c = c.replace("#", "");
261
+ if (c.length == 3) {c = c.substr(0,1) + c.substr(0,1) + c.substr(1,1) + c.substr(1,1) + c.substr(2,1) + c.substr(2,1);}
262
+ for (i = 0; i < c.length; i++) {
263
+ if (!isHex(c.substr(i, 1))) {return emptyObject(); }
264
+ }
265
+ arr[0] = parseInt(c.substr(0,2), 16);
266
+ arr[1] = parseInt(c.substr(2,2), 16);
267
+ arr[2] = parseInt(c.substr(4,2), 16);
268
+ for (i = 0; i < 3; i++) {
269
+ if (isNaN(arr[i])) {return emptyObject(); }
270
+ }
271
+ rgb = {
272
+ r : arr[0],
273
+ g : arr[1],
274
+ b : arr[2]
275
+ };
276
+ }
277
+ }
278
+ return colorObject(rgb, a, hue, sat);
279
+ }
280
+ function colorObject(rgb, a, h, s) {
281
+ var hsl, hwb, cmyk, ncol, color, hue, sat;
282
+ if (!rgb) {return emptyObject();}
283
+ if (a === null) {a = 1;}
284
+ hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);
285
+ hwb = rgbToHwb(rgb.r, rgb.g, rgb.b);
286
+ cmyk = rgbToCmyk(rgb.r, rgb.g, rgb.b);
287
+ hue = (h || hsl.h);
288
+ sat = (s || hsl.s);
289
+ ncol = hueToNcol(hue);
290
+ color = {
291
+ red : rgb.r,
292
+ green : rgb.g,
293
+ blue : rgb.b,
294
+ hue : hue,
295
+ sat : sat,
296
+ lightness : hsl.l,
297
+ whiteness : hwb.w,
298
+ blackness : hwb.b,
299
+ cyan : cmyk.c,
300
+ magenta : cmyk.m,
301
+ yellow : cmyk.y,
302
+ black : cmyk.k,
303
+ ncol : ncol,
304
+ opacity : a,
305
+ valid : true
306
+ };
307
+ color = roundDecimals(color);
308
+ return color;
309
+ }
310
+ function emptyObject() {
311
+ return {
312
+ red : 0,
313
+ green : 0,
314
+ blue : 0,
315
+ hue : 0,
316
+ sat : 0,
317
+ lightness : 0,
318
+ whiteness : 0,
319
+ blackness : 0,
320
+ cyan : 0,
321
+ magenta : 0,
322
+ yellow : 0,
323
+ black : 0,
324
+ ncol : "R",
325
+ opacity : 1,
326
+ valid : false
327
+ };
328
+ }
329
+ function getColorArr(x) {
330
+ if (x == "names") {return ['AliceBlue','AntiqueWhite','Aqua','Aquamarine','Azure','Beige','Bisque','Black','BlanchedAlmond','Blue','BlueViolet','Brown','BurlyWood','CadetBlue','Chartreuse','Chocolate','Coral','CornflowerBlue','Cornsilk','Crimson','Cyan','DarkBlue','DarkCyan','DarkGoldenRod','DarkGray','DarkGrey','DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','DarkOrange','DarkOrchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateGray','DarkSlateGrey','DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DimGray','DimGrey','DodgerBlue','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsboro','GhostWhite','Gold','GoldenRod','Gray','Grey','Green','GreenYellow','HoneyDew','HotPink','IndianRed','Indigo','Ivory','Khaki','Lavender','LavenderBlush','LawnGreen','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGoldenRodYellow','LightGray','LightGrey','LightGreen','LightPink','LightSalmon','LightSeaGreen','LightSkyBlue','LightSlateGray','LightSlateGrey','LightSteelBlue','LightYellow','Lime','LimeGreen','Linen','Magenta','Maroon','MediumAquaMarine','MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateBlue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','MidnightBlue','MintCream','MistyRose','Moccasin','NavajoWhite','Navy','OldLace','Olive','OliveDrab','Orange','OrangeRed','Orchid','PaleGoldenRod','PaleGreen','PaleTurquoise','PaleVioletRed','PapayaWhip','PeachPuff','Peru','Pink','Plum','PowderBlue','Purple','RebeccaPurple','Red','RosyBrown','RoyalBlue','SaddleBrown','Salmon','SandyBrown','SeaGreen','SeaShell','Sienna','Silver','SkyBlue','SlateBlue','SlateGray','SlateGrey','Snow','SpringGreen','SteelBlue','Tan','Teal','Thistle','Tomato','Turquoise','Violet','Wheat','White','WhiteSmoke','Yellow','YellowGreen']; }
331
+ if (x == "hexs") {return ['f0f8ff','faebd7','00ffff','7fffd4','f0ffff','f5f5dc','ffe4c4','000000','ffebcd','0000ff','8a2be2','a52a2a','deb887','5f9ea0','7fff00','d2691e','ff7f50','6495ed','fff8dc','dc143c','00ffff','00008b','008b8b','b8860b','a9a9a9','a9a9a9','006400','bdb76b','8b008b','556b2f','ff8c00','9932cc','8b0000','e9967a','8fbc8f','483d8b','2f4f4f','2f4f4f','00ced1','9400d3','ff1493','00bfff','696969','696969','1e90ff','b22222','fffaf0','228b22','ff00ff','dcdcdc','f8f8ff','ffd700','daa520','808080','808080','008000','adff2f','f0fff0','ff69b4','cd5c5c','4b0082','fffff0','f0e68c','e6e6fa','fff0f5','7cfc00','fffacd','add8e6','f08080','e0ffff','fafad2','d3d3d3','d3d3d3','90ee90','ffb6c1','ffa07a','20b2aa','87cefa','778899','778899','b0c4de','ffffe0','00ff00','32cd32','faf0e6','ff00ff','800000','66cdaa','0000cd','ba55d3','9370db','3cb371','7b68ee','00fa9a','48d1cc','c71585','191970','f5fffa','ffe4e1','ffe4b5','ffdead','000080','fdf5e6','808000','6b8e23','ffa500','ff4500','da70d6','eee8aa','98fb98','afeeee','db7093','ffefd5','ffdab9','cd853f','ffc0cb','dda0dd','b0e0e6','800080','663399','ff0000','bc8f8f','4169e1','8b4513','fa8072','f4a460','2e8b57','fff5ee','a0522d','c0c0c0','87ceeb','6a5acd','708090','708090','fffafa','00ff7f','4682b4','d2b48c','008080','d8bfd8','ff6347','40e0d0','ee82ee','f5deb3','ffffff','f5f5f5','ffff00','9acd32']; }
332
+ }
333
+ function roundDecimals(c) {
334
+ c.red = Number(c.red.toFixed(0));
335
+ c.green = Number(c.green.toFixed(0));
336
+ c.blue = Number(c.blue.toFixed(0));
337
+ c.hue = Number(c.hue.toFixed(0));
338
+ c.sat = Number(c.sat.toFixed(2));
339
+ c.lightness = Number(c.lightness.toFixed(2));
340
+ c.whiteness = Number(c.whiteness.toFixed(2));
341
+ c.blackness = Number(c.blackness.toFixed(2));
342
+ c.cyan = Number(c.cyan.toFixed(2));
343
+ c.magenta = Number(c.magenta.toFixed(2));
344
+ c.yellow = Number(c.yellow.toFixed(2));
345
+ c.black = Number(c.black.toFixed(2));
346
+ c.ncol = c.ncol.substr(0, 1) + Math.round(Number(c.ncol.substr(1)));
347
+ c.opacity = Number(c.opacity.toFixed(2));
348
+ return c;
349
+ }
350
+ function hslToRgb(hue, sat, light) {
351
+ var t1, t2, r, g, b;
352
+ hue = hue / 60;
353
+ if ( light <= 0.5 ) {
354
+ t2 = light * (sat + 1);
355
+ } else {
356
+ t2 = light + sat - (light * sat);
357
+ }
358
+ t1 = light * 2 - t2;
359
+ r = hueToRgb(t1, t2, hue + 2) * 255;
360
+ g = hueToRgb(t1, t2, hue) * 255;
361
+ b = hueToRgb(t1, t2, hue - 2) * 255;
362
+ return {r : r, g : g, b : b};
363
+ }
364
+ function hueToRgb(t1, t2, hue) {
365
+ if (hue < 0) hue += 6;
366
+ if (hue >= 6) hue -= 6;
367
+ if (hue < 1) return (t2 - t1) * hue + t1;
368
+ else if(hue < 3) return t2;
369
+ else if(hue < 4) return (t2 - t1) * (4 - hue) + t1;
370
+ else return t1;
371
+ }
372
+ function hwbToRgb(hue, white, black) {
373
+ var i, rgb, rgbArr = [], tot;
374
+ rgb = hslToRgb(hue, 1, 0.50);
375
+ rgbArr[0] = rgb.r / 255;
376
+ rgbArr[1] = rgb.g / 255;
377
+ rgbArr[2] = rgb.b / 255;
378
+ tot = white + black;
379
+ if (tot > 1) {
380
+ white = Number((white / tot).toFixed(2));
381
+ black = Number((black / tot).toFixed(2));
382
+ }
383
+ for (i = 0; i < 3; i++) {
384
+ rgbArr[i] *= (1 - (white) - (black));
385
+ rgbArr[i] += (white);
386
+ rgbArr[i] = Number(rgbArr[i] * 255);
387
+ }
388
+ return {r : rgbArr[0], g : rgbArr[1], b : rgbArr[2] };
389
+ }
390
+ function cmykToRgb(c, m, y, k) {
391
+ var r, g, b;
392
+ r = 255 - ((Math.min(1, c * (1 - k) + k)) * 255);
393
+ g = 255 - ((Math.min(1, m * (1 - k) + k)) * 255);
394
+ b = 255 - ((Math.min(1, y * (1 - k) + k)) * 255);
395
+ return {r : r, g : g, b : b};
396
+ }
397
+ function ncolToRgb(ncol, white, black) {
398
+ var letter, percent, h, w, b;
399
+ h = ncol;
400
+ if (isNaN(ncol.substr(0,1))) {
401
+ letter = ncol.substr(0,1).toUpperCase();
402
+ percent = ncol.substr(1);
403
+ if (percent == "") {percent = 0;}
404
+ percent = Number(percent);
405
+ if (isNaN(percent)) {return false;}
406
+ if (letter == "R") {h = 0 + (percent * 0.6);}
407
+ if (letter == "Y") {h = 60 + (percent * 0.6);}
408
+ if (letter == "G") {h = 120 + (percent * 0.6);}
409
+ if (letter == "C") {h = 180 + (percent * 0.6);}
410
+ if (letter == "B") {h = 240 + (percent * 0.6);}
411
+ if (letter == "M") {h = 300 + (percent * 0.6);}
412
+ if (letter == "W") {
413
+ h = 0;
414
+ white = 1 - (percent / 100);
415
+ black = (percent / 100);
416
+ }
417
+ }
418
+ return hwbToRgb(h, white, black);
419
+ }
420
+ function hueToNcol(hue) {
421
+ while (hue >= 360) {
422
+ hue = hue - 360;
423
+ }
424
+ if (hue < 60) {return "R" + (hue / 0.6); }
425
+ if (hue < 120) {return "Y" + ((hue - 60) / 0.6); }
426
+ if (hue < 180) {return "G" + ((hue - 120) / 0.6); }
427
+ if (hue < 240) {return "C" + ((hue - 180) / 0.6); }
428
+ if (hue < 300) {return "B" + ((hue - 240) / 0.6); }
429
+ if (hue < 360) {return "M" + ((hue - 300) / 0.6); }
430
+ }
431
+ function ncsToRgb(ncs){
432
+ var black, chroma, bc, percent, black1, chroma1, red1, factor1, blue1, red1, red2, green2, blue2, max, factor2, grey, r, g, b;
433
+ ncs = w3trim(ncs).toUpperCase();
434
+ ncs = ncs.replace("(", "");
435
+ ncs = ncs.replace(")", "");
436
+ ncs = ncs.replace("NCS", "NCS ");
437
+ ncs = ncs.replace(/ /g, " ");
438
+ if (ncs.indexOf("NCS") == -1) {ncs = "NCS " + ncs;}
439
+ ncs = ncs.match(/^(?:NCS|NCS\sS)\s(\d{2})(\d{2})-(N|[A-Z])(\d{2})?([A-Z])?$/);
440
+ if (ncs === null) return false;
441
+ black = parseInt(ncs[1], 10);
442
+ chroma = parseInt(ncs[2], 10);
443
+ bc = ncs[3];
444
+ if (bc != "N" && bc != "Y" && bc != "R" && bc != "B" && bc != "G") {return false;}
445
+ percent = parseInt(ncs[4], 10) || 0;
446
+ if (bc !== 'N') {
447
+ black1 = (1.05 * black - 5.25);
448
+ chroma1 = chroma;
449
+ if (bc === 'Y' && percent <= 60) {
450
+ red1 = 1;
451
+ } else if (( bc === 'Y' && percent > 60) || ( bc === 'R' && percent <= 80)) {
452
+ if (bc === 'Y') {
453
+ factor1 = percent - 60;
454
+ } else {
455
+ factor1 = percent + 40;
456
+ }
457
+ red1 = ((Math.sqrt(14884 - Math.pow(factor1, 2))) - 22) / 100;
458
+ } else if ((bc === 'R' && percent > 80) || (bc === 'B')) {
459
+ red1 = 0;
460
+ } else if (bc === 'G') {
461
+ factor1 = (percent - 170);
462
+ red1 = ((Math.sqrt(33800 - Math.pow(factor1, 2))) - 70) / 100;
463
+ }
464
+ if (bc === 'Y' && percent <= 80) {
465
+ blue1 = 0;
466
+ } else if (( bc === 'Y' && percent > 80) || ( bc === 'R' && percent <= 60)) {
467
+ if (bc ==='Y') {
468
+ factor1 = (percent - 80) + 20.5;
469
+ } else {
470
+ factor1 = (percent + 20) + 20.5;
471
+ }
472
+ blue1 = (104 - (Math.sqrt(11236 - Math.pow(factor1, 2)))) / 100;
473
+ } else if ((bc === 'R' && percent > 60) || ( bc === 'B' && percent <= 80)) {
474
+ if (bc ==='R') {
475
+ factor1 = (percent - 60) - 60;
476
+ } else {
477
+ factor1 = (percent + 40) - 60;
478
+ }
479
+ blue1 = ((Math.sqrt(10000 - Math.pow(factor1, 2))) - 10) / 100;
480
+ } else if (( bc === 'B' && percent > 80) || ( bc === 'G' && percent <= 40)) {
481
+ if (bc === 'B') {
482
+ factor1 = (percent - 80) - 131;
483
+ } else {
484
+ factor1 = (percent + 20) - 131;
485
+ }
486
+ blue1 = (122 - (Math.sqrt(19881 - Math.pow(factor1, 2)))) / 100;
487
+ } else if (bc === 'G' && percent > 40) {
488
+ blue1 = 0;
489
+ }
490
+ if (bc === 'Y') {
491
+ green1 = (85 - 17/20 * percent) / 100;
492
+ } else if (bc === 'R' && percent <= 60) {
493
+ green1 = 0;
494
+ } else if (bc === 'R' && percent > 60) {
495
+ factor1 = (percent - 60) + 35;
496
+ green1 = (67.5 - (Math.sqrt(5776 - Math.pow(factor1, 2)))) / 100;
497
+ } else if (bc === 'B' && percent <= 60) {
498
+ factor1 = (1*percent - 68.5);
499
+ green1 = (6.5 + (Math.sqrt(7044.5 - Math.pow(factor1, 2)))) / 100;
500
+ } else if ((bc === 'B' && percent > 60) || ( bc === 'G' && percent <= 60)) {
501
+ green1 = 0.9;
502
+ } else if (bc === 'G' && percent > 60) {
503
+ factor1 = (percent - 60);
504
+ green1 = (90 - (1/8 * factor1)) / 100;
505
+ }
506
+ factor1 = (red1 + green1 + blue1)/3;
507
+ red2 = ((factor1 - red1) * (100 - chroma1) / 100) + red1;
508
+ green2 = ((factor1 - green1) * (100 - chroma1) / 100) + green1;
509
+ blue2 = ((factor1 - blue1) * (100 - chroma1) / 100) + blue1;
510
+ if (red2 > green2 && red2 > blue2) {
511
+ max = red2;
512
+ } else if (green2 > red2 && green2 > blue2) {
513
+ max = green2;
514
+ } else if (blue2 > red2 && blue2 > green2) {
515
+ max = blue2;
516
+ } else {
517
+ max = (red2 + green2 + blue2) / 3;
518
+ }
519
+ factor2 = 1 / max;
520
+ r = parseInt((red2 * factor2 * (100 - black1) / 100) * 255, 10);
521
+ g = parseInt((green2 * factor2 * (100 - black1) / 100) * 255, 10);
522
+ b = parseInt((blue2 * factor2 * (100 - black1) / 100) * 255, 10);
523
+ if (r > 255) {r = 255;}
524
+ if (g > 255) {g = 255;}
525
+ if (b > 255) {b = 255;}
526
+ if (r < 0) {r = 0;}
527
+ if (g < 0) {g = 0;}
528
+ if (b < 0) {b = 0;}
529
+ } else {
530
+ grey = parseInt((1 - black / 100) * 255, 10);
531
+ if (grey > 255) {grey = 255;}
532
+ if (grey < 0) {grey = 0;}
533
+ r = grey;
534
+ g = grey;
535
+ b = grey;
536
+ }
537
+ return {
538
+ r : r,
539
+ g : g,
540
+ b : b
541
+ };
542
+ }
543
+ function rgbToHsl(r, g, b) {
544
+ var min, max, i, l, s, maxcolor, h, rgb = [];
545
+ rgb[0] = r / 255;
546
+ rgb[1] = g / 255;
547
+ rgb[2] = b / 255;
548
+ min = rgb[0];
549
+ max = rgb[0];
550
+ maxcolor = 0;
551
+ for (i = 0; i < rgb.length - 1; i++) {
552
+ if (rgb[i + 1] <= min) {min = rgb[i + 1];}
553
+ if (rgb[i + 1] >= max) {max = rgb[i + 1];maxcolor = i + 1;}
554
+ }
555
+ if (maxcolor == 0) {
556
+ h = (rgb[1] - rgb[2]) / (max - min);
557
+ }
558
+ if (maxcolor == 1) {
559
+ h = 2 + (rgb[2] - rgb[0]) / (max - min);
560
+ }
561
+ if (maxcolor == 2) {
562
+ h = 4 + (rgb[0] - rgb[1]) / (max - min);
563
+ }
564
+ if (isNaN(h)) {h = 0;}
565
+ h = h * 60;
566
+ if (h < 0) {h = h + 360; }
567
+ l = (min + max) / 2;
568
+ if (min == max) {
569
+ s = 0;
570
+ } else {
571
+ if (l < 0.5) {
572
+ s = (max - min) / (max + min);
573
+ } else {
574
+ s = (max - min) / (2 - max - min);
575
+ }
576
+ }
577
+ s = s;
578
+ return {h : h, s : s, l : l};
579
+ }
580
+ function rgbToHwb(r, g, b) {
581
+ var h, w, bl;
582
+ r = r / 255;
583
+ g = g / 255;
584
+ b = b / 255;
585
+ max = Math.max(r, g, b);
586
+ min = Math.min(r, g, b);
587
+ chroma = max - min;
588
+ if (chroma == 0) {
589
+ h = 0;
590
+ } else if (r == max) {
591
+ h = (((g - b) / chroma) % 6) * 360;
592
+ } else if (g == max) {
593
+ h = ((((b - r) / chroma) + 2) % 6) * 360;
594
+ } else {
595
+ h = ((((r - g) / chroma) + 4) % 6) * 360;
596
+ }
597
+ w = min;
598
+ bl = 1 - max;
599
+ return {h : h, w : w, b : bl};
600
+ }
601
+ function rgbToCmyk(r, g, b) {
602
+ var c, m, y, k;
603
+ r = r / 255;
604
+ g = g / 255;
605
+ b = b / 255;
606
+ max = Math.max(r, g, b);
607
+ k = 1 - max;
608
+ if (k == 1) {
609
+ c = 0;
610
+ m = 0;
611
+ y = 0;
612
+ } else {
613
+ c = (1 - r - k) / (1 - k);
614
+ m = (1 - g - k) / (1 - k);
615
+ y = (1 - b - k) / (1 - k);
616
+ }
617
+ return {c : c, m : m, y : y, k : k};
618
+ }
619
+ function toHex(n) {
620
+ var hex = n.toString(16);
621
+ while (hex.length < 2) {hex = "0" + hex; }
622
+ return hex;
623
+ }
624
+ function cl(x) {
625
+ console.log(x);
626
+ }
627
+ function w3trim(x) {
628
+ return x.replace(/^\s+|\s+$/g, '');
629
+ }
630
+ function isHex(x) {
631
+ return ('0123456789ABCDEFabcdef'.indexOf(x) > -1);
632
+ }
633
+ window.w3color = w3color;
634
+
635
+ })();
636
+
637
+ function w3SetColorsByAttribute() {
638
+ var z, i, att;
639
+ z = document.getElementsByTagName("*");
640
+ for (i = 0; i < z.length; i++) {
641
+ att = z[i].getAttribute("data-w3-color");
642
+ if (att) {
643
+ z[i].style.backgroundColor = w3color(att).toRgbString();
644
+ }
645
+ }
646
+ }