atome 0.5.4.1.7 → 0.5.5.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -1
  3. data/Gemfile +3 -1
  4. data/README.md +70 -1
  5. data/Rakefile +246 -75
  6. data/app_builder_helpers/Rakefile +276 -288
  7. data/documentation/basic.md +242 -0
  8. data/documentation/deep learning/architecture.txt +3763 -0
  9. data/documentation/deep learning/atome.png +0 -0
  10. data/documentation/deep learning/basic_infos.txt +227 -0
  11. data/documentation/deep learning/example_of_users_code.rb +1810 -0
  12. data/documentation/deep learning/misc.txt +24 -0
  13. data/documentation/deep learning/ruby_js_example.rb +272 -0
  14. data/documentation/deep learning/wasm_script_help.text +14 -0
  15. data/documentation/framework/enhance_atome.md +1 -1
  16. data/documentation/tutorials/tutorials.md +7 -0
  17. data/exe/atome +308 -208
  18. data/lib/atome/atome.rb +52 -156
  19. data/lib/atome/extensions/atome.rb +129 -47
  20. data/lib/atome/extensions/mathematics.rb +20 -0
  21. data/lib/atome/extensions/ping.rb +2 -3
  22. data/lib/atome/genesis/generators/atome.rb +57 -30
  23. data/lib/atome/genesis/generators/communication.rb +9 -0
  24. data/lib/atome/genesis/generators/effect.rb +0 -1
  25. data/lib/atome/genesis/generators/event.rb +279 -43
  26. data/lib/atome/genesis/generators/geometry.rb +1 -10
  27. data/lib/atome/genesis/generators/hierarchy.rb +103 -0
  28. data/lib/atome/genesis/generators/identity.rb +45 -84
  29. data/lib/atome/genesis/generators/material.rb +31 -34
  30. data/lib/atome/genesis/generators/property.rb +31 -0
  31. data/lib/atome/genesis/generators/security.rb +31 -0
  32. data/lib/atome/genesis/generators/spatial.rb +3 -5
  33. data/lib/atome/genesis/generators/time.rb +0 -1
  34. data/lib/atome/genesis/generators/utility.rb +181 -66
  35. data/lib/atome/genesis/genesis.rb +152 -55
  36. data/lib/atome/genesis/sparkle.rb +59 -75
  37. data/lib/atome/helpers/color_helper/color/rgb/colors.rb +1 -1
  38. data/lib/atome/helpers/color_helper/color/rgb.rb +1 -1
  39. data/lib/atome/helpers/color_helper/color.rb +226 -7
  40. data/lib/atome/helpers/essentials.rb +22 -26
  41. data/lib/atome/helpers/security.rb +71 -0
  42. data/lib/atome/helpers/utilities.rb +191 -178
  43. data/lib/atome/kernel/black_matter.rb +22 -0
  44. data/lib/atome/kernel/universe.rb +123 -24
  45. data/lib/atome/presets/atome.rb +39 -35
  46. data/lib/atome/version.rb +3 -2
  47. data/lib/atome.rb +12 -12
  48. data/lib/atome_relative.rb +36 -0
  49. data/lib/{atome/renderers → platform_specific}/opal/atome_opal_extensions.rb +4 -1
  50. data/lib/{atome/renderers → platform_specific}/opal/extensions/color.rb +12 -5
  51. data/lib/{atome/renderers → platform_specific}/opal/extensions/geolocation.rb +1 -0
  52. data/lib/platform_specific/opal/extensions/js.rb +21 -0
  53. data/lib/platform_specific/opal/extensions/object.rb +6 -0
  54. data/lib/platform_specific/opal/extensions/ping.rb +31 -0
  55. data/lib/{atome/renderers → platform_specific}/opal/extensions/sha.rb +4 -2
  56. data/lib/platform_specific/wasm/atome_wasm_extensions.rb +11 -0
  57. data/lib/renderers/headless/headless.rb +18 -0
  58. data/lib/renderers/headless/index.rb +6 -0
  59. data/lib/renderers/headless/index_relative.rb +6 -0
  60. data/lib/renderers/headless/utility.rb +6 -0
  61. data/{vendor/assets/src/medias/rubies/examples/top.rb → lib/renderers/html/atome.rb} +0 -1
  62. data/lib/renderers/html/atome_html.rb +22 -0
  63. data/lib/renderers/html/effect.rb +26 -0
  64. data/lib/renderers/html/event.rb +43 -0
  65. data/lib/renderers/html/geometry.rb +31 -0
  66. data/lib/renderers/html/hierarchy.rb +233 -0
  67. data/lib/renderers/html/html.rb +1112 -0
  68. data/lib/renderers/html/identity.rb +84 -0
  69. data/lib/renderers/html/index.rb +19 -0
  70. data/lib/renderers/html/index_relative.rb +20 -0
  71. data/lib/renderers/html/material.rb +53 -0
  72. data/lib/renderers/html/property.rb +24 -0
  73. data/lib/renderers/html/spatial.rb +46 -0
  74. data/lib/renderers/html/time.rb +1 -0
  75. data/lib/renderers/html/utility.rb +38 -0
  76. data/lib/renderers/renderer.rb +16 -0
  77. data/lib/renderers/server/index.rb +4 -0
  78. data/lib/renderers/server/index_relative.rb +4 -0
  79. data/lib/renderers/server/utility.rb +4 -0
  80. data/sig/atome.rbs +6 -0
  81. data/sig/object.rbs +4 -0
  82. data/sig/universe.rbs +3 -0
  83. data/vendor/assets/Rakefile +3 -3
  84. data/vendor/assets/application/examples/a_concat.rb +16 -0
  85. data/vendor/assets/application/examples/affect.rb +8 -0
  86. data/vendor/assets/application/examples/animation.rb +96 -0
  87. data/vendor/assets/application/examples/apply.rb +8 -0
  88. data/vendor/assets/application/examples/atome.rb +5 -0
  89. data/vendor/assets/application/examples/attach.rb +34 -0
  90. data/vendor/assets/application/examples/attached.rb +38 -0
  91. data/vendor/assets/application/examples/basic_understanding.rb +52 -0
  92. data/vendor/assets/application/examples/browse.rb +17 -0
  93. data/vendor/assets/application/examples/callback.rb +20 -0
  94. data/vendor/assets/application/examples/category.rb +12 -0
  95. data/vendor/assets/application/examples/clear.rb +96 -0
  96. data/vendor/assets/application/examples/clones.rb +177 -0
  97. data/vendor/assets/application/examples/code.rb +13 -0
  98. data/vendor/assets/application/examples/color.rb +54 -0
  99. data/vendor/assets/application/examples/convert.rb +163 -0
  100. data/vendor/assets/application/examples/copy.rb +25 -0
  101. data/vendor/assets/application/examples/copybck.rb +68 -0
  102. data/vendor/assets/application/examples/debug.rb +78 -0
  103. data/vendor/assets/application/examples/delete.rb +93 -0
  104. data/vendor/assets/application/examples/display.rb +279 -0
  105. data/vendor/assets/application/examples/display_bck.rb +164 -0
  106. data/vendor/assets/application/examples/drag.rb +45 -0
  107. data/vendor/assets/application/examples/drop.rb +35 -0
  108. data/vendor/assets/application/examples/duplicate.rb +64 -0
  109. data/vendor/assets/application/examples/edit.rb +21 -0
  110. data/vendor/assets/application/examples/encode.rb +6 -0
  111. data/vendor/assets/application/examples/file.rb +50 -0
  112. data/vendor/assets/application/examples/find.rb +157 -0
  113. data/vendor/assets/application/examples/generator_and_build.rb +15 -0
  114. data/vendor/assets/application/examples/getter.rb +16 -0
  115. data/vendor/assets/application/examples/grab.rb +14 -0
  116. data/vendor/assets/application/examples/gradient.rb +35 -0
  117. data/vendor/assets/application/examples/group.rb +44 -0
  118. data/vendor/assets/application/examples/hierarchy.rb +21 -0
  119. data/vendor/assets/application/examples/history.rb +31 -0
  120. data/vendor/assets/application/examples/hypertext.rb +113 -0
  121. data/vendor/assets/application/examples/image.rb +5 -0
  122. data/vendor/assets/application/examples/keyboard.rb +59 -0
  123. data/vendor/assets/application/examples/layout.rb +227 -0
  124. data/vendor/assets/application/examples/login.rb +10 -0
  125. data/vendor/assets/application/examples/markup.rb +4 -0
  126. data/vendor/assets/application/examples/match.rb +115 -0
  127. data/vendor/assets/application/examples/messaging.rb +16 -0
  128. data/vendor/assets/application/examples/monitor.rb +14 -0
  129. data/vendor/assets/application/examples/on_resize.rb +7 -0
  130. data/vendor/assets/{src/medias/rubies/examples/get_renderer_list.rb → application/examples/online.rb} +1 -1
  131. data/vendor/assets/application/examples/over.rb +29 -0
  132. data/vendor/assets/application/examples/paint.rb +23 -0
  133. data/vendor/assets/application/examples/particles.rb +4 -0
  134. data/vendor/assets/application/examples/percent_to_px.rb +4 -0
  135. data/vendor/assets/application/examples/play.rb +50 -0
  136. data/vendor/assets/application/examples/presets.rb +33 -0
  137. data/vendor/assets/application/examples/random.rb +42 -0
  138. data/vendor/assets/application/examples/raw_html.rb +48 -0
  139. data/vendor/assets/application/examples/read.rb +11 -0
  140. data/vendor/assets/application/examples/refresh.rb +62 -0
  141. data/vendor/assets/application/examples/remove.rb +47 -0
  142. data/vendor/assets/application/examples/repeat.rb +26 -0
  143. data/vendor/assets/application/examples/resize.rb +17 -0
  144. data/vendor/assets/application/examples/scroll.rb +11 -0
  145. data/vendor/assets/application/examples/security.rb +76 -0
  146. data/vendor/assets/application/examples/selected.rb +30 -0
  147. data/vendor/assets/application/examples/shadow.rb +46 -0
  148. data/vendor/assets/application/examples/shapes.rb +6 -0
  149. data/vendor/assets/{src/medias/rubies → application}/examples/smooth.rb +5 -1
  150. data/vendor/assets/application/examples/style.rb +4 -0
  151. data/vendor/assets/application/examples/sync.rb +39 -0
  152. data/vendor/assets/application/examples/tagged.rb +24 -0
  153. data/vendor/assets/application/examples/terminal.rb +4 -0
  154. data/vendor/assets/application/examples/text.rb +5 -0
  155. data/vendor/assets/application/examples/touch.rb +38 -0
  156. data/vendor/assets/application/examples/type_mutation.rb +18 -0
  157. data/vendor/assets/application/examples/universe.rb +8 -0
  158. data/vendor/assets/application/examples/vector.rb +24 -0
  159. data/vendor/assets/application/examples/video.rb +14 -0
  160. data/vendor/assets/application/examples/wait.rb +6 -0
  161. data/vendor/assets/application/examples/www.rb +10 -0
  162. data/vendor/assets/application/index.rb +1 -1
  163. data/vendor/assets/application/test.rb +29 -0
  164. data/vendor/assets/application/works/photos.rb +672 -0
  165. data/vendor/assets/application/works/photos2.rb +218 -0
  166. data/vendor/assets/application/works/photos3.rb +343 -0
  167. data/vendor/assets/application/works/photos4.rb +34 -0
  168. data/vendor/assets/application/works/photos6.rb +6 -0
  169. data/vendor/assets/application/works/trigga.rb +0 -0
  170. data/vendor/assets/application/works/vie.rb +74 -0
  171. data/vendor/assets/server/atome_server.rb +37 -41
  172. data/vendor/assets/server/atome_server_wasm.rb +112 -0
  173. data/vendor/assets/server/capture.rb +10 -0
  174. data/vendor/assets/server/config.ru +5 -4
  175. data/vendor/assets/src/css/style.css +29 -4
  176. data/vendor/assets/src/index.html +31 -38
  177. data/vendor/assets/src/index_opal.html +42 -0
  178. data/vendor/assets/src/index_server.html +43 -0
  179. data/vendor/assets/src/index_server_wasm.html +46 -0
  180. data/vendor/assets/src/js/atome/atome.js +170 -150
  181. data/vendor/assets/src/js/atome/atome_helpers/add_font.js +46 -0
  182. data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +3 -1
  183. data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +12 -7
  184. data/vendor/assets/src/js/atome/atome_helpers/communication.js +126 -0
  185. data/vendor/assets/src/js/atome/atome_helpers/{atome_file.js → file.js} +1 -1
  186. data/vendor/assets/src/js/atome/specific/opal.js +3 -0
  187. data/vendor/assets/src/js/atome/specific/wasm.js +12 -0
  188. data/vendor/assets/src/js/third_parties/browser.script.iife.min.js +13 -0
  189. data/vendor/assets/src/js/third_parties/fabric.min.js +1 -1
  190. data/vendor/assets/src/js/third_parties/html-to-image.min.js +2 -0
  191. data/vendor/assets/src/js/third_parties/jsencrypt.min.js +2 -0
  192. data/vendor/assets/src/js/third_parties/papaparse.min.js +7 -0
  193. data/vendor/assets/src/medias/fonts/Roboto/LICENSE.txt +202 -0
  194. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Black.ttf +0 -0
  195. data/vendor/assets/src/medias/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  196. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Bold.ttf +0 -0
  197. data/vendor/assets/src/medias/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  198. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Italic.ttf +0 -0
  199. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Light.ttf +0 -0
  200. data/vendor/assets/src/medias/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  201. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Medium.ttf +0 -0
  202. data/vendor/assets/src/medias/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  203. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Regular.ttf +0 -0
  204. data/vendor/assets/src/medias/fonts/Roboto/Roboto-Thin.ttf +0 -0
  205. data/vendor/assets/src/medias/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  206. data/vendor/assets/src/medias/images/logos/Facebook.svg +1 -1
  207. data/vendor/assets/src/medias/images/logos/LinkedIn-full.svg +109 -0
  208. data/vendor/assets/src/medias/images/logos/LinkedIn.svg +11 -0
  209. data/vendor/assets/src/medias/images/logos/X.svg +5 -0
  210. data/vendor/assets/src-tauri/Cargo.toml +1 -1
  211. data/vendor/assets/src-tauri/src/main.rs +59 -5
  212. data/vendor/assets/src-tauri/tauri.conf.json +1 -1
  213. data/vendor/assets/src-wasm/wasm/wasi-vfs-osx_arm +0 -0
  214. data/vendor/assets/src-wasm/wasm/wasi-vfs-osx_x86 +0 -0
  215. data/vendor/assets/src-wasm/wasm/wasi-vfs-unix +0 -0
  216. data/vendor/assets/src-wasm/wasm/wasi-vfs.exe +0 -0
  217. metadata +188 -180
  218. data/lib/atome/extensions/mathematic.rb +0 -20
  219. data/lib/atome/extensions/matrix.rb +0 -346
  220. data/lib/atome/helpers/callbacks.rb +0 -133
  221. data/lib/atome/kernel/batch.rb +0 -26
  222. data/lib/atome/kernel/essentials.rb +0 -23
  223. data/lib/atome/renderers/browser/atome.rb +0 -158
  224. data/lib/atome/renderers/browser/browser.rb +0 -47
  225. data/lib/atome/renderers/browser/effect.rb +0 -23
  226. data/lib/atome/renderers/browser/event.rb +0 -96
  227. data/lib/atome/renderers/browser/geometry.rb +0 -27
  228. data/lib/atome/renderers/browser/helpers/animation_helper.rb +0 -69
  229. data/lib/atome/renderers/browser/helpers/browser_helper.rb +0 -101
  230. data/lib/atome/renderers/browser/helpers/color_helper.rb +0 -80
  231. data/lib/atome/renderers/browser/helpers/drag_helper.rb +0 -52
  232. data/lib/atome/renderers/browser/helpers/drop_helper.rb +0 -13
  233. data/lib/atome/renderers/browser/helpers/effect_helper.rb +0 -23
  234. data/lib/atome/renderers/browser/helpers/event_helper.rb +0 -76
  235. data/lib/atome/renderers/browser/helpers/image_helper.rb +0 -27
  236. data/lib/atome/renderers/browser/helpers/over_helper.rb +0 -13
  237. data/lib/atome/renderers/browser/helpers/shadow_helper.rb +0 -74
  238. data/lib/atome/renderers/browser/helpers/shape_helper.rb +0 -22
  239. data/lib/atome/renderers/browser/helpers/text_helper.rb +0 -38
  240. data/lib/atome/renderers/browser/helpers/video_helper.rb +0 -50
  241. data/lib/atome/renderers/browser/helpers/web_helper.rb +0 -26
  242. data/lib/atome/renderers/browser/identity.rb +0 -61
  243. data/lib/atome/renderers/browser/material.rb +0 -121
  244. data/lib/atome/renderers/browser/opal_add_on.rb +0 -31
  245. data/lib/atome/renderers/browser/opal_browser.rb +0 -6
  246. data/lib/atome/renderers/browser/spatial.rb +0 -59
  247. data/lib/atome/renderers/browser/time.rb +0 -3
  248. data/lib/atome/renderers/browser/utility.rb +0 -49
  249. data/lib/atome/renderers/headless/headless.rb +0 -10
  250. data/lib/atome/renderers/headless/utility.rb +0 -6
  251. data/lib/atome/renderers/html/atome.rb +0 -49
  252. data/lib/atome/renderers/html/effect.rb +0 -19
  253. data/lib/atome/renderers/html/event.rb +0 -9
  254. data/lib/atome/renderers/html/geometry.rb +0 -11
  255. data/lib/atome/renderers/html/html.rb +0 -42
  256. data/lib/atome/renderers/html/identity.rb +0 -14
  257. data/lib/atome/renderers/html/opal_browser.rb +0 -6
  258. data/lib/atome/renderers/html/spatial.rb +0 -28
  259. data/lib/atome/renderers/html/utility.rb +0 -17
  260. data/lib/atome/renderers/opal/extensions/atome.rb +0 -29
  261. data/lib/atome/renderers/opal/extensions/ping.rb +0 -18
  262. data/lib/atome/renderers/renderer.rb +0 -15
  263. data/lib/atome/renderers/server/server.rb +0 -10
  264. data/lib/atome/renderers/server/utility.rb +0 -6
  265. data/vendor/assets/aui.rb +0 -5
  266. data/vendor/assets/r&d/misc.rb +0 -219
  267. data/vendor/assets/r&d/ping.rb +0 -3
  268. data/vendor/assets/r&d/storage.rb +0 -9
  269. data/vendor/assets/r&d/view_example.rb +0 -21
  270. data/vendor/assets/src/js/atome/atome_helpers/atome_communication.js +0 -40
  271. data/vendor/assets/src/medias/javascripts/test.js +0 -1
  272. data/vendor/assets/src/medias/rubies/demos.rb +0 -63
  273. data/vendor/assets/src/medias/rubies/examples/add.rb +0 -24
  274. data/vendor/assets/src/medias/rubies/examples/animation.rb +0 -81
  275. data/vendor/assets/src/medias/rubies/examples/atome_new.rb +0 -27
  276. data/vendor/assets/src/medias/rubies/examples/attach.rb +0 -15
  277. data/vendor/assets/src/medias/rubies/examples/attached.rb +0 -15
  278. data/vendor/assets/src/medias/rubies/examples/auto_height.rb +0 -5
  279. data/vendor/assets/src/medias/rubies/examples/auto_width.rb +0 -4
  280. data/vendor/assets/src/medias/rubies/examples/batch.rb +0 -17
  281. data/vendor/assets/src/medias/rubies/examples/blur.rb +0 -4
  282. data/vendor/assets/src/medias/rubies/examples/bottom.rb +0 -3
  283. data/vendor/assets/src/medias/rubies/examples/box.rb +0 -20
  284. data/vendor/assets/src/medias/rubies/examples/center.rb +0 -21
  285. data/vendor/assets/src/medias/rubies/examples/circle.rb +0 -3
  286. data/vendor/assets/src/medias/rubies/examples/class.rb +0 -13
  287. data/vendor/assets/src/medias/rubies/examples/clear.rb +0 -10
  288. data/vendor/assets/src/medias/rubies/examples/clone.rb +0 -35
  289. data/vendor/assets/src/medias/rubies/examples/code.rb +0 -11
  290. data/vendor/assets/src/medias/rubies/examples/color.rb +0 -73
  291. data/vendor/assets/src/medias/rubies/examples/create_atome_in_atome.rb +0 -13
  292. data/vendor/assets/src/medias/rubies/examples/cursor.rb +0 -7
  293. data/vendor/assets/src/medias/rubies/examples/delete.rb +0 -42
  294. data/vendor/assets/src/medias/rubies/examples/depth.rb +0 -6
  295. data/vendor/assets/src/medias/rubies/examples/detached.rb +0 -13
  296. data/vendor/assets/src/medias/rubies/examples/drag.rb +0 -98
  297. data/vendor/assets/src/medias/rubies/examples/drop.rb +0 -26
  298. data/vendor/assets/src/medias/rubies/examples/edit.rb +0 -12
  299. data/vendor/assets/src/medias/rubies/examples/element.rb +0 -6
  300. data/vendor/assets/src/medias/rubies/examples/empty_atome.rb +0 -12
  301. data/vendor/assets/src/medias/rubies/examples/fullscreen.rb +0 -15
  302. data/vendor/assets/src/medias/rubies/examples/grab.rb +0 -5
  303. data/vendor/assets/src/medias/rubies/examples/height.rb +0 -7
  304. data/vendor/assets/src/medias/rubies/examples/hide.rb +0 -7
  305. data/vendor/assets/src/medias/rubies/examples/id.rb +0 -14
  306. data/vendor/assets/src/medias/rubies/examples/image.rb +0 -8
  307. data/vendor/assets/src/medias/rubies/examples/left.rb +0 -7
  308. data/vendor/assets/src/medias/rubies/examples/link.rb +0 -22
  309. data/vendor/assets/src/medias/rubies/examples/markers.rb +0 -48
  310. data/vendor/assets/src/medias/rubies/examples/materials.rb +0 -15
  311. data/vendor/assets/src/medias/rubies/examples/matrix.rb +0 -102
  312. data/vendor/assets/src/medias/rubies/examples/matrix_changes.rb +0 -483
  313. data/vendor/assets/src/medias/rubies/examples/matrix_simple.rb +0 -32
  314. data/vendor/assets/src/medias/rubies/examples/monitoring.rb +0 -70
  315. data/vendor/assets/src/medias/rubies/examples/mute.rb +0 -22
  316. data/vendor/assets/src/medias/rubies/examples/on.rb +0 -26
  317. data/vendor/assets/src/medias/rubies/examples/opacity.rb +0 -5
  318. data/vendor/assets/src/medias/rubies/examples/over.rb +0 -21
  319. data/vendor/assets/src/medias/rubies/examples/pause.rb +0 -15
  320. data/vendor/assets/src/medias/rubies/examples/physical.rb +0 -19
  321. data/vendor/assets/src/medias/rubies/examples/play.rb +0 -15
  322. data/vendor/assets/src/medias/rubies/examples/read.rb +0 -11
  323. data/vendor/assets/src/medias/rubies/examples/refresh.rb +0 -8
  324. data/vendor/assets/src/medias/rubies/examples/remove.rb +0 -16
  325. data/vendor/assets/src/medias/rubies/examples/repeat.rb +0 -6
  326. data/vendor/assets/src/medias/rubies/examples/right.rb +0 -3
  327. data/vendor/assets/src/medias/rubies/examples/rotate.rb +0 -4
  328. data/vendor/assets/src/medias/rubies/examples/schedule.rb +0 -13
  329. data/vendor/assets/src/medias/rubies/examples/shadow.rb +0 -84
  330. data/vendor/assets/src/medias/rubies/examples/size.rb +0 -8
  331. data/vendor/assets/src/medias/rubies/examples/sort.rb +0 -18
  332. data/vendor/assets/src/medias/rubies/examples/style.rb +0 -4
  333. data/vendor/assets/src/medias/rubies/examples/tags.rb +0 -10
  334. data/vendor/assets/src/medias/rubies/examples/text.rb +0 -39
  335. data/vendor/assets/src/medias/rubies/examples/time.rb +0 -18
  336. data/vendor/assets/src/medias/rubies/examples/to_px.rb +0 -10
  337. data/vendor/assets/src/medias/rubies/examples/touch.rb +0 -56
  338. data/vendor/assets/src/medias/rubies/examples/vector.rb +0 -39
  339. data/vendor/assets/src/medias/rubies/examples/video.rb +0 -65
  340. data/vendor/assets/src/medias/rubies/examples/wait.rb +0 -8
  341. data/vendor/assets/src/medias/rubies/examples/web.rb +0 -13
  342. data/vendor/assets/src/medias/rubies/examples/width.rb +0 -6
  343. data/vendor/assets/src/medias/rubies/test.rb +0 -1
  344. data/vendor/assets/src/medias/rubies/text_read.rb +0 -1
  345. data/vendor/assets/src/medias/rubies/unstable/!run.rb +0 -16
  346. data/vendor/assets/src/medias/rubies/unstable/_2_solve.rb +0 -72
  347. data/vendor/assets/src/medias/rubies/unstable/_attach.rb +0 -12
  348. data/vendor/assets/src/medias/rubies/unstable/_audio.rb +0 -231
  349. data/vendor/assets/src/medias/rubies/unstable/_dataset.rb +0 -257
  350. data/vendor/assets/src/medias/rubies/unstable/_matrix.rb +0 -58
  351. data/vendor/assets/src/medias/rubies/unstable/_os.rb +0 -29
  352. data/vendor/assets/src/medias/rubies/unstable/_table2.rb +0 -108
  353. data/vendor/assets/src/medias/rubies/unstable/_vie.rb +0 -211
  354. data/vendor/assets/src/medias/rubies/users/code.rb +0 -6
  355. /data/lib/{atome/renderers → platform_specific}/opal/opal.rb +0 -0
  356. /data/lib/{atome/renderers → platform_specific}/opal/opal_parser.rb +0 -0
  357. /data/{vendor/assets/src/utilities/mode.rb → lib/renderers/html/communication.rb} +0 -0
  358. /data/{vendor/assets/src/medias/rubies/unstable/_test.rb → lib/renderers/html/security.rb} +0 -0
@@ -0,0 +1,227 @@
1
+ # frozen_string_literal: true
2
+
3
+ # class HTML
4
+ #
5
+ # def layout_style(option = {})
6
+ # element_style = {
7
+ # backgroundColor: 'rebeccapurple',
8
+ # width: '100%',remove_layout
9
+ # height: '29px',
10
+ # borderRadius: '59px',
11
+ # display: 'flex',
12
+ # justifyContent: 'center',
13
+ # alignItems: 'center',
14
+ # flexDirection: 'column',
15
+ # marginBottom: '20px',
16
+ # padding: '0px',
17
+ # # transform: 'rotate(22deg)',
18
+ #
19
+ # }
20
+ #
21
+ # container_style = {
22
+ # display: :grid,
23
+ # gridTemplateColumns: 'repeat(4, 1fr)',
24
+ # overflow: :scroll,
25
+ # flexDirection: 'column',
26
+ # gap: '20px',
27
+ # padding: '0px',
28
+ #
29
+ # }
30
+ # element_style = element_style.merge(option[:element]) if option[:element]
31
+ # container_style = container_style.merge(option[:container]) if option[:container]
32
+ # @layout_style = { element: element_style, container: container_style }
33
+ # end
34
+ #
35
+ # def remove_webview_layout(element, container)
36
+ # element[:classList].add('atome')
37
+ # element[:classList].remove('matrix_element')
38
+ # end
39
+ #
40
+ # def layout(params)
41
+ #
42
+ # id_found = params[:id]
43
+ # mode_found = params[:mode]
44
+ # width_found = params[:width]
45
+ # height_found = params[:height]
46
+ # layout_container = JS.global[:document].getElementById(id_found.to_s)
47
+ # layout_elements = JS.global[:document].querySelectorAll(".#{id_found}")
48
+ # if mode_found == :default
49
+ # # we revert all elements to default state / layout
50
+ # layout_elements.to_a.each do |element|
51
+ # element[:classList].remove('matrix_element')
52
+ # element[:classList].add('atome')
53
+ # end
54
+ # else
55
+ # # we apply new layout to elements
56
+ # layout_style({ element: { backgroundColor: :purple } })
57
+ # layout_container[:classList].remove('atome')
58
+ # layout_container[:classList].add('matrix')
59
+ # layout_elements.to_a.each do |element|
60
+ # # we check if current state is default if yes we store the layout to be able to restore it
61
+ # element[:style][:borderRadius] = '59px'
62
+ # element[:classList].remove('atome')
63
+ # # element[:classList].add('matrix_element')
64
+ # end
65
+ # end
66
+ #
67
+ # end
68
+ # end
69
+
70
+ class Atome
71
+ def remove_layout
72
+ display[:mode] = :default
73
+ # we get the current parent (the previous layout)
74
+ parent_found = grab(attach)
75
+ # we get the parent of the parent
76
+ grand_parent = parent_found.attach
77
+ # and attach the item to the grand parent
78
+ # we remove the parent category and restore atome category
79
+ remove({ category: attach})
80
+ category(:atome)
81
+ attach(grand_parent)
82
+ # we delete the parent (the layout) if it no more children attached
83
+ if parent_found.attached.length == 0
84
+ parent_found.delete(true)
85
+ end
86
+ end
87
+ end
88
+
89
+ new({ particle: :layout }) do |params|
90
+ mode_found = params.delete(:mode) || :list
91
+ elements_style= params.delete(:element) || {}
92
+ # layout_width = params[:width] ||= 333
93
+ # layout_height = params[:height] ||= 333
94
+ # now we get the list of the atome to layout
95
+ atomes_to_layout = []
96
+ if type == :group
97
+ atomes_to_layout = collect
98
+ end
99
+ # if params[:list] is specified group collection is override
100
+ atomes_to_layout = params[:list] if params[:list]
101
+
102
+ if mode_found == :default
103
+ # the user want to revert the layout to the default
104
+ atomes_to_layout.each do |atome_id_to_layout|
105
+ atome_to_layout = grab(atome_id_to_layout)
106
+ unless params[:id]
107
+ params[:id] = atome_to_layout.display[:layout]
108
+ end
109
+ # now we get the default particles and restore it
110
+ atome_to_layout.display[:default].each do |particle, value|
111
+ atome_to_layout.send(:delete,particle)
112
+ atome_to_layout.send(particle,value)
113
+ end
114
+
115
+ atome_to_layout.remove_layout
116
+ end
117
+ else
118
+ if params[:id]
119
+ container_name = params[:id]
120
+ container = grab(:view).box({ id: container_name })
121
+ container_class = container_name
122
+ else
123
+ container = grab(:view).box
124
+ id_found = container.id
125
+ params[:id] = id_found
126
+ container_class = id_found
127
+ end
128
+ # container.width = layout_width
129
+ # container.height = layout_height
130
+ container.remove({ category: :atome})
131
+ container.category(:matrix)
132
+ alert ">> #{mode_found}"
133
+ params.each do |particle, value|
134
+ container.send(particle, value)
135
+ end
136
+ # now we add user wanted particles
137
+ alert params
138
+
139
+ atomes_to_layout.each do |atome_id_to_layout|
140
+ atome_to_layout = grab(atome_id_to_layout)
141
+ # we remove previous display mode
142
+ atome_to_layout.remove_layout
143
+ atome_to_layout.display[:mode] = mode_found
144
+ atome_to_layout.display[:layout] = id_found
145
+ atome_to_layout.attach(container_class)
146
+ atome_to_layout.remove({ category: :atome})
147
+ atome_to_layout.category(container_class)
148
+ #the hash below is used to restore element state
149
+ original_state={}
150
+ elements_style.each do |particle, value|
151
+ # we have to store all elements particle to restore it later
152
+ original_state[particle]=atome_to_layout.send(particle)
153
+ atome_to_layout.send(particle, value)
154
+ end
155
+ atome_to_layout.display[:default]=original_state
156
+ # puts "display is : #{atome_to_layout.display}"
157
+ # atome_to_layout.html.add_class(container_class)
158
+ # puts container_class
159
+ end
160
+ end
161
+ params
162
+ end
163
+
164
+ # new({ renderer: :html, method: :layout, type: :hash }) do |params, _user_proc|
165
+ # html.layout(params)
166
+ # end
167
+
168
+ new({ particle: :display })
169
+
170
+ # system
171
+ Atome.new({ renderers: [:html], id: :selector, collect: [], type: :group, tag: { system: true } })
172
+
173
+ ############### tests
174
+
175
+ b = box({ color: :red, id: :the_box, left: 3 })
176
+ 16.times do |index|
177
+ width_found = b.width
178
+ b.duplicate({ left: b.left + index * (width_found + 45), top: 0, category: :custom_category })
179
+ end
180
+
181
+ grab(:view).attached.each do |atome_found|
182
+ grab(atome_found).selected(true)
183
+ end
184
+ grab(:the_box_copy_1).text(:hello)
185
+ #################
186
+ selected_items = grab(Universe.current_user).selection # we create a group
187
+ # we collect all atomes in the view
188
+ atomes_found = []
189
+ selected_items.each do |atome_found|
190
+ atomes_found << atome_found
191
+ end
192
+
193
+ random_found = atomes_found.sample(17)
194
+
195
+ # random_found.each do |atome_id|
196
+ # atome_found = grab(atome_id)
197
+ # if atome_found.type == :shape
198
+ # atome_found.left(rand(700))
199
+ # atome_found.width(rand(120))
200
+ # atome_found.height(rand(120))
201
+ # atome_found.smooth(rand(120))
202
+ # atome_found.color({ red: rand, green: rand, blue: rand })
203
+ # end
204
+ # end
205
+ wait 1 do
206
+ selected_items.layout({ mode: :grid, width: 900, height: 500, color: :green,element: {height: 22, rotate: 22} })
207
+ # alert grab('the_box_copy_4').display
208
+ wait 1 do
209
+ # selected_items.layout({ mode: :grid, width: 800, height: 500 })
210
+ wait 1 do
211
+ selected_items.layout({ mode: :default, width: 500, height: 500 })
212
+ # alert grab('the_box_copy_4').display
213
+ wait 1 do
214
+ selected_items.layout({ id: :my_layout, mode: :list, width: 151, height: 800, overflow: :scroll })
215
+ wait 1 do
216
+ selected_items.layout({ mode: :default, width: 500, height: 500 })
217
+ end
218
+ end
219
+ end
220
+ end
221
+ end
222
+
223
+ # JS.global[:console].clear()
224
+
225
+
226
+ # b=box
227
+ # alert ">> #{b.display}"
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ puts "current user: #{Universe.current_user}"
4
+ human({ id: :jeezs, login: true })
5
+
6
+ puts "current user: #{Universe.current_user}"
7
+ wait 2 do
8
+ human({ id: :toto, login: true })
9
+ puts "current user: #{Universe.current_user}"
10
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ # For now markup can only be specified at creation time, it will be possible later
4
+ the_one = text({ data: :hello, markup: :h1 })
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ # def add_css_to_atomic_style(css)
4
+ # style_element = JS.global[:document].getElementById('atomic_style')
5
+ # text_node = JS.global[:document].createTextNode(css)
6
+ # style_element.appendChild(text_node)
7
+ # end
8
+ #
9
+ # def convert_to_css(data)
10
+ # conditions = data[:condition]
11
+ # apply = data[:alterations]
12
+ #
13
+ # # Convert the conditions
14
+ # condition_strings = []
15
+ #
16
+ # if conditions[:max]
17
+ # condition_strings << "(max-width: #{conditions[:max][:width]}px)" if conditions[:max][:width]
18
+ # condition_strings << "(max-height: #{conditions[:max][:height]}px)" if conditions[:max][:height]
19
+ # end
20
+ #
21
+ # if conditions[:min]
22
+ # condition_strings << "(min-width: #{conditions[:min][:width]}px)" if conditions[:min][:width]
23
+ # condition_strings << "(min-height: #{conditions[:min][:height]}px)" if conditions[:min][:height]
24
+ # end
25
+ #
26
+ # operator = conditions[:operator] == :and ? "and" : "or"
27
+ #
28
+ # # Convert properties to apply
29
+ # property_strings = []
30
+ # apply.each do |key, values|
31
+ # inner_properties = []
32
+ # values.each do |property, value|
33
+ # if property == :color
34
+ # inner_properties << "background-color: #{value} !important;"
35
+ # else
36
+ # inner_properties << "#{property}: #{value}px !important;" if value.is_a?(Integer)
37
+ # inner_properties << "#{property}: #{value} !important;" if value.is_a?(Symbol)
38
+ # end
39
+ # end
40
+ # # Prefix each key with "#"
41
+ # property_strings << "##{key} {\n#{inner_properties.join("\n")}\n}"
42
+ # end
43
+ #
44
+ # # let it build
45
+ # css = "@media #{condition_strings.join(" #{operator} ")} {\n#{property_strings.join("\n")}\n}"
46
+ # add_css_to_atomic_style(css)
47
+ # css
48
+ # end
49
+ #
50
+ # def css_to_data(css)
51
+ # data = {
52
+ # :condition => {},
53
+ # :apply => {}
54
+ # }
55
+ # # Extract conditions
56
+ # media_conditions = css.match(/@media ([^\{]+)/)[1].split(',').map(&:strip)
57
+ # media_conditions.each do |condition|
58
+ # type = condition.match(/(max|min)-/)[1].to_sym
59
+ # property = condition.match(/(width|height)/)[1].to_sym
60
+ # value = condition.match(/(\d+)/)[1].to_i
61
+ #
62
+ # data[:condition][type] ||= {}
63
+ # data[:condition][type][property] = value
64
+ # end
65
+ #
66
+ # # Extract properties to be applied
67
+ # css.scan(/(\w+) \{([^\}]+)\}/).each do |match|
68
+ # key = match[0].to_sym
69
+ # properties = match[1].split(';').map(&:strip).reject(&:empty?)
70
+ #
71
+ # data[:apply][key] ||= {}
72
+ # properties.each do |property|
73
+ # prop, value = property.split(':').map(&:strip)
74
+ # if prop == "background-color"
75
+ # data[:apply][key][:color] = value.to_sym
76
+ # elsif value[-2..] == "px"
77
+ # data[:apply][key][prop.to_sym] = value.to_i
78
+ # else
79
+ # data[:apply][key][prop.to_sym] = value.to_sym
80
+ # end
81
+ # end
82
+ # end
83
+ #
84
+ # data
85
+ # end
86
+
87
+
88
+
89
+ box({ color: :red, width: :auto, left: 120, right: 120, id: :box_1 })
90
+ circle({ left: 33, top: 200, id: :circle_1 })
91
+ circle({ left: 200, top: 200, id: :circle_2 })
92
+ circle({ left: 400, top: 200, id: :circle_3 })
93
+ circle({ left: 600, top: 200, id: :circle_4 })
94
+ text({ data: "resize the window to it's minimum to activate response", id: :my_text })
95
+
96
+ A.match({condition:{max: {width: 777}, min: {height: 333}, operator: :and }}) do
97
+ {
98
+ circle_1: { color: :red , width: 23},
99
+ circle_2: { color: :orange , width: 23, top: 12},
100
+ box_1: { width: 123, left: 222, color: :blue, rotate: 22}
101
+ }
102
+ end
103
+
104
+ # match can work without any condition then the particles are always applied
105
+
106
+ # A.match({}) do
107
+ # {
108
+ # circle_1: { color: :red, width: 23 },
109
+ # circle_2: { color: :orange, width: 23, top: 12 },
110
+ # box_1: { width: 123, left: 222, color: :blue, rotate: 22 }
111
+ # }
112
+ # end
113
+
114
+
115
+
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ b = box({ color: :red })
4
+
5
+ b.touch(true) do
6
+ b.connection('localhost:9292') do |params|
7
+ alert " the connection is : #{params}"
8
+ end
9
+ end
10
+
11
+ c = box({ color: :yellow, left: 333 })
12
+
13
+ c.touch(true) do
14
+ b.message('hi there!!')
15
+ # c = box({ color: :red, left: 333 })
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ puts 'deprecated use clone monitoring'
3
+ # b = box({ id: :the_box })
4
+ # c = circle({ top: 3, id: :the_cirle })
5
+ # A.monitor({ atomes: [:the_box, :the_cirle], particles: [:left] }) do |atome, particle, value|
6
+ # puts "changes : #{atome.id}, #{particle}, #{value}"
7
+ # end
8
+ #
9
+ # wait 2 do
10
+ # b.left(3)
11
+ # wait 2 do
12
+ # c.left(444)
13
+ # end
14
+ # end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ # please note that whatever the atome resize will return the size of the view!
4
+ view = grab(:view)
5
+ view.on(:resize) do |event|
6
+ puts "view size is #{event}"
7
+ end
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- puts Universe.renderer_list
3
+ text online?
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box({ left: 666, color: :blue, smooth: 6, id: :the_box2 })
4
+ b.over(true) do
5
+ b.color(:black)
6
+ # puts "I'm inside"
7
+ end
8
+ b.over(:enter) do
9
+ puts "in"
10
+ puts "enter"
11
+ b.width= b.width+30
12
+ # alert :in
13
+ b.color(:yellow)
14
+ end
15
+ b.over(:leave) do
16
+ b.height= b.height+10
17
+ puts "out"
18
+ puts "leave"
19
+ # alert :out
20
+ b.color(:orange)
21
+ end
22
+
23
+ #
24
+ t=b.text('touch me to stop over leave')
25
+ b.touch(true) do
26
+ b.over({ remove: :enter })
27
+ t.data('finished')
28
+ end
29
+
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ c=circle({drag: true, id: :the_circle})
4
+
5
+ c1=c.color(:white).id
6
+ c2=c.color(:red).id
7
+ c3=c.color(:yellow).id
8
+ color({id: :toto, red: 1 , alpha: 0.5})
9
+ wait 0.5 do
10
+ c.paint({ gradient: [c1,c2], direction: :left })
11
+ wait 0.5 do
12
+ c.paint({ gradient: [c1,c2, c3], direction: :left })
13
+ wait 0.5 do
14
+ c.paint({ gradient: [c1,c2], diffusion: :radial })
15
+ wait 0.5 do
16
+ c.paint({ gradient: [c1,c2, c3], diffusion: :conic })
17
+ wait 0.5 do
18
+ c.remove({all: :paint})
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box({ left: 777 })
4
+ puts "b ahas the following paticles : #{b.particles}"
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ bb=box({width: '90%'})
4
+ puts bb.to_px(:width)
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ if Universe.internet
4
+ # v = video({ path: "medias/videos/avengers.mp4", id: :my_video })
5
+ v = video({ path: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ElephantsDream.mp4" })
6
+ else
7
+ v = video(:video_missing)
8
+ end
9
+ v.left(200)
10
+ v.touch(true) do
11
+ alert v.play
12
+ end
13
+
14
+ t=text({id: :my_text, data: "play video"})
15
+
16
+ t.touch(true) do
17
+ v.data=0
18
+ v.play(26) do |event|
19
+ t.data("event is : #{event}")
20
+ if event[:frame] == 900 && v.data <3
21
+ puts v.data
22
+ v.data(v.data+1)
23
+ v.play(26)
24
+ end
25
+ end
26
+ end
27
+
28
+ c=circle({left: 123})
29
+
30
+ c.touch(true) do
31
+ v.play(:pause)
32
+ end
33
+
34
+ cc=circle({left: 0, width: 55, height: 55})
35
+
36
+ left=0
37
+ cc.drag(:locked) do |event|
38
+ dx = event[:dx]
39
+ left += dx.to_f
40
+ min_left = 0
41
+ max_left = 600
42
+ left = [min_left, left].max
43
+ left = [left, max_left].min
44
+ v.html.currentTime(left/10)
45
+ cc.left(left)
46
+ end
47
+
48
+
49
+ puts "add lock x and y when drag"
50
+ puts "restrict ro :view doesnt work"
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+
4
+ # here how ti use preset in the atome framework
5
+ # presets available are : render_engines,image,video,animation,element,box,vector,circle,shape,text,drm,shadow,color,www,raw,code,audio,group,human,machine,paint
6
+
7
+ my_box=box
8
+ # using the code line above a lot of particles will be implicitly created, if we inspect my_box
9
+ puts my_box.inspect # this will print :
10
+ #[Log] #<Atome: @broadcast={}, @callback={}, @tag={}, @attached=[], @unit={}, @collected={}, @id=:box_14, @type=:shape, @html=#<HTML:0x0662a164 @element=[object HTMLDivElement], @id="box_14", @original_atome=#<Atome: @broadcast={}, @callback={}, @tag={}, @attached=[], @unit={}, @collected={}, @id=:box_14, @type=:shape, @html=#<HTML:0x0662a164 ...>, @attach=[:view], @renderers=[:html], @width=99, @height=99, @apply=[:box_color], @left=100, @top=100, @clones=[], @preset={:box=>{:width=>99, :height=>99, :apply=>[:box_color], :left=>100, :top=>100, :clones=>[]}}>, @element_type="div">, @attach=[:view], @renderers=[:html], @width=99, @height=99, @apply=[:box_color], @left=100, @top=100, @clones=[], @preset={:box=>{:width=>99, :height=>99, :apply=>[:box_color], :left=>100, :top=>100, :clones=>[]}}> (browser.script.iife.min.js, line 13)
11
+
12
+ # please note that an ID is automatically created using a simple strategy id : atome_type_total_number_of_users_atomes ex here : @id="box_14"
13
+
14
+ my_box.text("touch me")
15
+ puts " my_box preset is : #{my_box.preset}"
16
+ # print in the console : [Log] my_box preset is : {:box=>{:width=>99, :height=>99, :apply=>[:box_color], :left=>100, :top=>100, :clones=>[]}} (browser.script.iife.min.js, line 13)
17
+
18
+
19
+ c=circle
20
+ puts " c is : #{c.inspect }"
21
+ # this print : [Log] c is : #<Atome: @type=:shape, @smooth="100%", @width=99, @id=:circle_16, @renderers=[:html], @height=99, @broadcast={}, @callback={}, @tag={}, @attached=[], @unit={}, @collected={}, @html=#<HTML:0x06579be8 @element=[object HTMLDivElement], @id="circle_16", @original_atome=#<Atome: @type=:shape, @smooth="100%", @width=99, @id=:circle_16, @renderers=[:html], @height=99, @broadcast={}, @callback={}, @tag={}, @attached=[], @unit={}, @collected={}, @html=#<HTML:0x06579be8 ...>, @top=100, @attach=[:view], @left=100, @apply=[:circle_color], @clones=[], @preset={:circle=>{:width=>99, :height=>99, :smooth=>"100%", :apply=>[:circle_color], :left=>100, :top=>100, :clones=>[]}}>, @element_type="div">, @top=100, @attach=[:view], @left=100, @apply=[:circle_color], @clones=[], @preset={:circle=>{:width=>99, :height=>99, :smooth=>"100%", :apply=>[:circle_color], :left=>100, :top=>100, :clones=>[]}}> (browser.script.iife.min.js, line 13)
22
+ # it's pôssible to alter basic preset using the particle .preset
23
+ my_box.preset({ circle: {type: :shape, :width=>99, :height=>99, :smooth=>"100%", color: :red, :left=>100, :top=>100, :clones=>[]}})
24
+ puts " my_box preset is now : #{my_box.preset}"
25
+ # now the preset circle is : [Log] my_box preset is now : {:circle=>{:type=>:shape, :width=>99, :height=>99, :smooth=>"100%", :color=>:red, :left=>100, :top=>100, :clones=>[]}} (browser.script.iife.min.js, line 13)
26
+
27
+ my_box.touch(true) do
28
+ my_box.preset(:circle) # the box now rounded like a circle
29
+
30
+ new_circle=circle # as the preset circle has been modified tha circle is now red as specified in the updated preset
31
+ puts "new_circle is : #{new_circle.inspect}"
32
+ # this print : new_circle is : #<Atome: @type=:shape, @smooth="100%", @width=99, @id=:circle_18, @renderers=[:html], @height=99, @broadcast={}, @callback={}, @tag={}, @attached=[], @unit={}, @collected={}, @html=#<HTML:0x0664e99c @element=[object HTMLDivElement], @id="circle_18", @original_atome=#<Atome: @type=:shape, @smooth="100%", @width=99, @id=:circle_18, @renderers=[:html], @height=99, @broadcast={}, @callback={}, @tag={}, @attached=[], @unit={}, @collected={}, @html=#<HTML:0x0664e99c ...>, @top=100, @attach=[:box_14], @left=100, @apply=[:circle_18_color_1_0_0_0_0_0____], @clones=[]>, @element_type="div">, @top=100, @attach=[:box_14], @left=100, @apply=[:circle_18_color_1_0_0_0_0_0____], @clones=[]>
33
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box
4
+
5
+ 16.times do |index|
6
+ width_found = b.width
7
+ b.duplicate({ left: b.left + index * (width_found + 45), top: 0, category: :matrix })
8
+ end
9
+
10
+
11
+ Universe.user_atomes.each do |atome_id|
12
+ atome_found = grab(atome_id)
13
+ if atome_found.type == :shape
14
+ atome_found.color(:orange)
15
+ atome_found.smooth(200)
16
+ atome_found.top(200)
17
+ end
18
+ end
19
+
20
+ random_found =Universe.user_atomes.sample(7)
21
+ random_found.each do |atome_id|
22
+ atome_found = grab(atome_id)
23
+ if atome_found.type == :shape
24
+ atome_found.top(rand(600))
25
+ atome_found.width(rand(120))
26
+ atome_found.height(rand(120))
27
+ atome_found.smooth(rand(120))
28
+ atome_found.color(:red)
29
+ end
30
+ end
31
+
32
+ random_found =Universe.user_atomes.sample(9)
33
+ random_found.each do |atome_id|
34
+ atome_found = grab(atome_id)
35
+ if atome_found.type == :shape
36
+ atome_found.left(rand(700))
37
+ atome_found.width(rand(120))
38
+ atome_found.height(rand(120))
39
+ atome_found.smooth(rand(120))
40
+ atome_found.color(:blue)
41
+ end
42
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ raw_data = <<STR
4
+ <iframe width="560" height="315" src="https://www.youtube.com/embed/8BT4Q3UtO6Q?si=WI8RlryV8HW9Y0nz" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
5
+ STR
6
+
7
+
8
+ raw_data = <<STR
9
+ <svg width="600" height="350" xmlns="http://www.w3.org/2000/svg">
10
+ <!-- Style for the boxes -->
11
+ <style>
12
+ .box { fill: white; stroke: black; stroke-width: 2; }
13
+ .original { fill: lightblue; }
14
+ .clone { fill: lightgreen; }
15
+ .arrow { stroke: black; stroke-width: 2; marker-end: url(#arrowhead); }
16
+ .text { font-family: Arial, sans-serif; font-size: 14px; }
17
+ </style>
18
+
19
+ <!-- Arrowhead definition -->
20
+ <defs>
21
+ <marker id="arrowhead" markerWidth="10" markerHeight="7"
22
+ refX="0" refY="3.5" orient="auto">
23
+ <polygon points="0 0, 10 3.5, 0 7" fill="black"/>
24
+ </marker>
25
+ </defs>
26
+
27
+ <!-- Boxes for original and clones -->
28
+ <rect x="250" y="30" width="100" height="50" class="box original"/>
29
+ <rect x="100" y="200" width="100" height="50" class="box clone"/>
30
+ <rect x="250" y="200" width="100" height="50" class="box clone"/>
31
+ <rect x="400" y="200" width="100" height="50" class="box clone"/>
32
+
33
+ <!-- Text for boxes -->
34
+ <text x="275" y="55" class="text" text-anchor="middle">Original</text>
35
+ <text x="150" y="225" class="text" text-anchor="middle">Clone 1</text>
36
+ <text x="300" y="225" class="text" text-anchor="middle">Clone 2</text>
37
+ <text x="450" y="225" class="text" text-anchor="middle">Clone 3</text>
38
+
39
+ <!-- Arrows -->
40
+ <line x1="300" y1="80" x2="150" y2="200" class="arrow"/>
41
+ <line x1="300" y1="80" x2="300" y2="200" class="arrow"/>
42
+ <line x1="300" y1="80" x2="450" y2="200" class="arrow"/>
43
+ </svg>
44
+ STR
45
+
46
+
47
+
48
+ raw({ id: :the_raw_stuff, data: raw_data })
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ A.read('Cargo.toml') do |data|
4
+ text "file content :\n #{data}"
5
+ end
6
+
7
+ # if Atome.host == 'tauri'
8
+ # JS.eval("readFile('atome','Cargo.toml')")
9
+ # else
10
+ # puts 'nothing here'
11
+ # end