atome 0.5.3.8.8 → 0.5.4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +52 -17
  3. data/app_builder_helpers/Rakefile +20 -3
  4. data/exe/atome +33 -1
  5. data/lib/atome/atome.rb +43 -57
  6. data/lib/atome/extensions/atome.rb +82 -52
  7. data/lib/atome/extensions/mathematic.rb +8 -12
  8. data/lib/atome/extensions/matrix.rb +138 -210
  9. data/lib/atome/genesis/generators/atome.rb +8 -134
  10. data/lib/atome/genesis/generators/communication.rb +0 -1
  11. data/lib/atome/genesis/generators/effect.rb +0 -6
  12. data/lib/atome/genesis/generators/event.rb +64 -77
  13. data/lib/atome/genesis/generators/geometry.rb +0 -18
  14. data/lib/atome/genesis/generators/identity.rb +6 -33
  15. data/lib/atome/genesis/generators/material.rb +37 -53
  16. data/lib/atome/genesis/generators/utility.rb +63 -58
  17. data/lib/atome/genesis/genesis.rb +8 -0
  18. data/lib/atome/genesis/sparkle.rb +35 -16
  19. data/lib/atome/helpers/callbacks.rb +47 -1
  20. data/lib/atome/helpers/essentials.rb +1 -1
  21. data/lib/atome/helpers/sanitizer.rb +0 -10
  22. data/lib/atome/helpers/utilities.rb +74 -28
  23. data/lib/atome/kernel/batch.rb +13 -35
  24. data/lib/atome/kernel/universe.rb +2 -0
  25. data/lib/atome/presets/atome.rb +4 -12
  26. data/lib/atome/renderers/browser/atome.rb +12 -7
  27. data/lib/atome/renderers/browser/browser.rb +2 -0
  28. data/lib/atome/renderers/browser/event.rb +18 -0
  29. data/lib/atome/renderers/browser/helpers/browser_helper.rb +24 -2
  30. data/lib/atome/renderers/browser/helpers/drag_helper.rb +13 -0
  31. data/lib/atome/renderers/browser/helpers/drop_helper.rb +13 -0
  32. data/lib/atome/renderers/browser/helpers/event_helper.rb +16 -11
  33. data/lib/atome/renderers/browser/helpers/over_helper.rb +13 -0
  34. data/lib/atome/renderers/browser/helpers/text_helper.rb +5 -1
  35. data/lib/atome/renderers/browser/spatial.rb +3 -2
  36. data/lib/atome/renderers/browser/utility.rb +7 -7
  37. data/lib/atome/version.rb +2 -2
  38. data/lib/atome.rb +1 -0
  39. data/sig/atome.rbs +16 -0
  40. data/sig/batch.rbs +7 -0
  41. data/sig/browser_helper.rbs +14 -0
  42. data/sig/matrix.rbs +5 -0
  43. data/sig/object.rbs +3 -0
  44. data/vendor/assets/aui.rb +5 -0
  45. data/vendor/assets/src/index.html +15 -3
  46. data/vendor/assets/src/js/atome/atome.js +1 -1
  47. data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +1 -1
  48. data/vendor/assets/src/js/atome/atome_helpers/atome_communication.js +40 -0
  49. data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +40 -3
  50. data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +12 -0
  51. data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +166 -0
  52. data/vendor/assets/src/js/atome/atome_helpers/atome_file.js +6 -1
  53. data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +43 -0
  54. data/vendor/assets/src/medias/rubies/demos.rb +63 -0
  55. data/vendor/assets/src/medias/rubies/examples/add.rb +1 -1
  56. data/vendor/assets/src/medias/rubies/examples/animation.rb +1 -1
  57. data/vendor/assets/src/medias/rubies/examples/atome_new.rb +1 -1
  58. data/vendor/assets/src/medias/rubies/examples/attach.rb +10 -10
  59. data/vendor/assets/src/medias/rubies/examples/attached.rb +2 -3
  60. data/vendor/assets/src/medias/rubies/examples/batch.rb +17 -0
  61. data/vendor/assets/src/medias/rubies/examples/blur.rb +2 -2
  62. data/vendor/assets/src/medias/rubies/examples/box.rb +2 -2
  63. data/vendor/assets/src/medias/rubies/examples/code.rb +1 -1
  64. data/vendor/assets/src/medias/rubies/examples/color.rb +3 -3
  65. data/vendor/assets/src/medias/rubies/examples/delete.rb +17 -1
  66. data/vendor/assets/src/medias/rubies/examples/detached.rb +3 -3
  67. data/vendor/assets/src/medias/rubies/examples/drag.rb +52 -1
  68. data/vendor/assets/src/medias/rubies/examples/drop.rb +26 -0
  69. data/vendor/assets/src/medias/rubies/examples/fullscreen.rb +1 -1
  70. data/vendor/assets/src/medias/rubies/examples/markers.rb +1 -1
  71. data/vendor/assets/src/medias/rubies/examples/matrix.rb +102 -0
  72. data/vendor/assets/src/medias/rubies/examples/matrix_changes.rb +483 -0
  73. data/vendor/assets/src/medias/rubies/examples/matrix_simple.rb +32 -0
  74. data/vendor/assets/src/medias/rubies/examples/monitoring.rb +1 -1
  75. data/vendor/assets/src/medias/rubies/examples/mute.rb +1 -1
  76. data/vendor/assets/src/medias/rubies/examples/on.rb +1 -1
  77. data/vendor/assets/src/medias/rubies/examples/over.rb +6 -4
  78. data/vendor/assets/src/medias/rubies/examples/pause.rb +1 -1
  79. data/vendor/assets/src/medias/rubies/examples/physical.rb +19 -0
  80. data/vendor/assets/src/medias/rubies/examples/play.rb +1 -1
  81. data/vendor/assets/src/medias/rubies/examples/repeat.rb +3 -2
  82. data/vendor/assets/src/medias/rubies/examples/shadow.rb +1 -1
  83. data/vendor/assets/src/medias/rubies/examples/sort.rb +3 -4
  84. data/vendor/assets/src/medias/rubies/examples/tags.rb +10 -0
  85. data/vendor/assets/src/medias/rubies/examples/text.rb +4 -4
  86. data/vendor/assets/src/medias/rubies/examples/time.rb +2 -2
  87. data/vendor/assets/src/medias/rubies/examples/vector.rb +31 -0
  88. data/vendor/assets/src/medias/rubies/examples/video.rb +8 -4
  89. data/vendor/assets/src/medias/rubies/{examples → unstable}/_2_solve.rb +1 -1
  90. data/vendor/assets/src/medias/rubies/{examples → unstable}/_audio.rb +1 -1
  91. data/vendor/assets/src/medias/rubies/{examples → unstable}/_dataset.rb +4 -4
  92. data/vendor/assets/src/medias/rubies/{examples → unstable}/_table2.rb +2 -2
  93. data/vendor/assets/src/medias/rubies/{examples → unstable}/_vie.rb +2 -2
  94. data/vendor/assets/src/utilities/mode.rb +0 -0
  95. data/vendor/assets/src-tauri/tauri.conf.json +2 -2
  96. metadata +33 -14
  97. data/vendor/assets/src/medias/rubies/examples/table.rb +0 -479
  98. /data/vendor/assets/src/medias/rubies/{examples → unstable}/!run.rb +0 -0
  99. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_attach.rb +0 -0
  100. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_matrix.rb +0 -0
  101. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_os.rb +0 -0
  102. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_test.rb +0 -0
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- b = box({ id: :the_box, left: 99, top: 99 })
4
- b.blur(2)
3
+ b = box({ id: :the_box, left: 199, top: 99 })
4
+ b.blur(7)
@@ -8,9 +8,9 @@ a = box({ id: :my_box, left: 333 }) do |p|
8
8
  end
9
9
 
10
10
  b = Atome.new(
11
- { shape: { renderers: [:browser], id: :view_test, type: :shape, parents: [:view],
11
+ { shape: { renderers: [:browser], id: :view_test, type: :shape, attach: [:view],
12
12
  left: 0, width: 90, top: 0, height: 90, overflow: :auto,
13
- color: { renderers: [:browser], id: :view_test_color, type: :color, parents: [:view_test],
13
+ color: { renderers: [:browser], id: :view_test_color, type: :color, attach: [:view_test],
14
14
  red: 1, green: 0.15, blue: 0.15, alpha: 1 } } }
15
15
  ) do |p|
16
16
  puts "the param pass to the atome is: #{p}"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- a=Atome.new(code: { type: :code, renderers: [:headless], parents: [] }) do |params_found|
3
+ a=Atome.new(code: { type: :code, renderers: [:headless], attach: [] }) do |params_found|
4
4
  puts "the param is #{params_found}"
5
5
  end
6
6
  a.run(:super)
@@ -52,15 +52,15 @@ end
52
52
 
53
53
 
54
54
  wait 10 do
55
- d=Atome.new({ color: { renderers: [:browser], id: :col1, type: :color, parents: [],
55
+ d=Atome.new({ color: { renderers: [:browser], id: :col1, type: :color, attach: [],
56
56
  left: 33, top: 66, red: 1, green: 0.15, blue: 0.7, alpha: 1 } })
57
57
 
58
- col_2 = Atome.new({ color: { renderers: [:browser], id: :col2, type: :color, parents: [],
58
+ col_2 = Atome.new({ color: { renderers: [:browser], id: :col2, type: :color, attach: [],
59
59
  left: 33, top: 66, red: 0, green: 0.15, blue: 0.7, alpha: 1 } })
60
60
 
61
61
  puts d
62
62
  e=Atome.new(
63
- shape: { type: :shape, renderers: [:browser], id: :shaped, parents: [:view], attached: [:col1],
63
+ shape: { type: :shape, renderers: [:browser], id: :shaped, attach: [:view], attached: [:col1],
64
64
  left: 199, top: 99,
65
65
  width: 66, height: 66
66
66
  }
@@ -11,7 +11,7 @@ end
11
11
  wait 3 do
12
12
  b.shape.each do |attached_atome_id|
13
13
  b.delete({id: attached_atome_id})
14
- b.shadow({ renderers: [:browser], id: :shadow2, type: :shadow, parents: [],
14
+ b.shadow({ renderers: [:browser], id: :shadow2, type: :shadow, attach: [],
15
15
  left: 3, top: 9, blur: 3, direction: '',
16
16
  red: 0, green: 0, blue: 0, alpha: 1
17
17
  })
@@ -23,4 +23,20 @@ wait 2 do
23
23
  b.delete(:left)
24
24
  end
25
25
 
26
+ # recursive example
27
+ bb=box
28
+ bb.text('click me!')
29
+ col=color(:red)
30
+ bb.touch(true) do
31
+ bb.box({attached: col.id})
32
+ c=bb.circle
33
+ c.text(:hello)
34
+
35
+ wait 2 do
36
+ bb.physical.each do |attached_atome_id|
37
+ bb.delete({id: attached_atome_id, recursive: true})
38
+ end
39
+ end
40
+ puts Universe.atomes.length
41
+ end
26
42
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- color({ red: 0.8, green: 0.8, blue: 0.8, id: :active_color })
4
- color( { red: 0.3, green: 0.3, blue: 0.3, id: :inactive_color } )
3
+ grab(:user_view).color({ red: 0.8, green: 0.8, blue: 0.8, id: :active_color })
4
+ grab(:user_view).color( { red: 0.3, green: 0.3, blue: 0.3, id: :inactive_color } )
5
5
 
6
6
  b=box
7
7
  b.attached(:inactive_color)
@@ -9,5 +9,5 @@ puts b.attached
9
9
  b.touch(true) do
10
10
  b.detached(:inactive_color)
11
11
  b.attached(:active_color)
12
- puts b.attached
12
+ puts "detached objects are : #{b.attached}"
13
13
  end
@@ -1,8 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  a = box({ width: 333, height: 333, id: :the_boxy })
4
+
5
+ a.drag(move: false) do |event|
6
+ puts "the pointer is at : #{event}"
7
+
8
+ end
4
9
  a.color(:red)
5
10
  b = circle({ width: 33, height: 33, id: :the_box, drag: true })
11
+
12
+
6
13
  b.parents([a.id])
7
14
  b.color(:black)
8
15
  # b.parents([:the_boxy ])
@@ -40,8 +47,52 @@ b.drag({ snap: { x: 100, y: 190 } })
40
47
  # b.drag({ constraint: :the_boxy })
41
48
 
42
49
  cc=circle(drag: true)
50
+ cc.drag(true) do |ee|
51
+ puts "the circle is : >#{cc.left} : #{ee}"
52
+
53
+ end
54
+
55
+ cc.drag(:end) do |ee|
56
+ puts "the circle is ending drag : >#{cc.left} : #{ee}"
57
+ end
58
+
59
+
60
+ cc.drag(:start) do |ee|
61
+ puts "==> the circle is starting drag : >#{cc.left} : #{ee}"
62
+ end
63
+
64
+
65
+
66
+
67
+ cc.touch(true) do
68
+ # alert cc.left
69
+ puts "===>cc is : >#{cc}"
70
+ end
71
+
43
72
  bb=box({drag: true, color: :yellow})
44
73
 
45
74
  bb.attach(cc.id)
46
75
 
47
- # alert"#{b.parents.class} : #{b.parents}"
76
+ # alert"#{b.parents.class} : #{b.parents}"
77
+ a.touch(true) do
78
+ puts cc.left
79
+ end
80
+
81
+
82
+ # Sticky box
83
+ sticky_box=box({left: 633})
84
+ sticky_box.text("my position will be reverted")
85
+ start_x_pos=sticky_box.left
86
+ start_y_pos=sticky_box.top
87
+ sticky_box.drag(move: true) do
88
+ puts sticky_box.left
89
+ end
90
+ sticky_box.drag(:start) do
91
+ puts "start => #{sticky_box.left} : #{sticky_box.top}"
92
+ end
93
+
94
+ sticky_box.drag(:end) do
95
+ puts "end => #{sticky_box.left} : #{sticky_box.top}"
96
+ sticky_box.left(start_x_pos)
97
+ sticky_box.top(start_y_pos)
98
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+ # Drop
3
+ b=box({id: :droper})
4
+ b.drop(true) do |drop_ob_id|
5
+ puts "id received : #{drop_ob_id[:id]}"
6
+ drop_obj=grab(drop_ob_id[:id])
7
+ if drop_obj.type == :image
8
+ grab(:view).image({ path: drop_obj.path , drag: true, width: 120, left: 222, top: 222})
9
+ end
10
+
11
+ end
12
+
13
+ image({path: "./medias/images/green_planet.png", left: 333, top: 33, drag: true})
14
+
15
+ #
16
+ b.over(:enter) do |event|
17
+ b.color(:red)
18
+ end
19
+
20
+ b.over(:leave) do |event|
21
+ b.color(:blue)
22
+ end
23
+
24
+
25
+ c=circle({ color: :orange, top: 333, id: :the_c_2 })
26
+ c.drag(true)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  my_video = Atome.new(
4
- video: { renderers: [:browser], id: :video1, type: :video, parents: [:view],
4
+ video: { renderers: [:browser], id: :video1, type: :video, attach: [:view],
5
5
  path: './medias/videos/avengers.mp4', left: 33, top: 33, width: 777
6
6
  }
7
7
  ) do |params|
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  my_video = Atome.new(
4
- video: { renderers: [:browser], id: :video1, type: :video, parents: [:view], clones: [],
4
+ video: { renderers: [:browser], id: :video1, type: :video, attach: [:view], clones: [],
5
5
  path: './medias/videos/avengers.mp4', left: 33, top: 33, width: 777
6
6
  }
7
7
  )
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ params = {
4
+
5
+ id: :my_table, left: 0, top: 0, width: 500, height: 399, smooth: 8, color: :yellowgreen,
6
+ columns: { count: 8,
7
+ titles: { 1 => :col1, 3 => :mycol },
8
+ data: { 3 => :col_content },
9
+ actions: { 2 => { touch: :the_action } },
10
+ particles: { color: :blue }
11
+ },
12
+ rows: { count: 6,
13
+ titles: { 1 => :my_first_row, 5 => :other_row },
14
+ data: { 0 => :col_content },
15
+ actions: {},
16
+ particles: { shadows: :black }
17
+ },
18
+ cells: {
19
+ particles: { margin: 9, color: :blue, smooth: 9, shadow: { blur: 9, left: 3, top: 3,id: :cell_shadow } }
20
+ },
21
+ exceptions: {
22
+ columns: {
23
+ fusion: { 1 => [3, 5], 7 => [2, 5] }
24
+ },
25
+ rows: {
26
+ divided: { 1 => 3 },
27
+ fusion: { 2 => [0, 3], 5 => [2, 5] }
28
+ }
29
+ }
30
+ }
31
+ m = matrix(params)
32
+
33
+ found = m.columns(5) do |el|
34
+ el.color(:yellow)
35
+ end
36
+
37
+ m.rows(3) do |el|
38
+ el.color(:orange)
39
+ end
40
+
41
+ m.rows(1) do |el|
42
+ el.color(:lightgray)
43
+ end
44
+
45
+ found.data.each do |el|
46
+ el.color(:red)
47
+ end
48
+
49
+ # found.data[0..2].each do |el|
50
+ # el.color(:cyan)
51
+ # end
52
+ #
53
+ grab(:my_table_21).color(:pink)
54
+ grab(:my_table_26).color(:purple)
55
+ # m.cells([20, 5]).rotate(15)
56
+ m.cell(3).color(:black)
57
+ # test = m.cells([23, 26])
58
+ # test.color(:black)
59
+ # m.columns(6).data[0..3].color(:green)
60
+
61
+ grab(m.id).drag({ move: true }) do |e|
62
+ puts e
63
+ end
64
+ # wait 1 do
65
+ # m.add_columns(3)
66
+ # m.rows(3) do |el|
67
+ # el.color(:orange)
68
+ # end
69
+ # wait 1 do
70
+ # m.add_rows(4)
71
+ # m.rows(1) do |el|
72
+ # el.color(:lightgray)
73
+ # end
74
+ # wait 1 do
75
+ # found.data.each do |el|
76
+ # el.color(:red)
77
+ # end
78
+ # m.resize(330, 300)
79
+ #
80
+ # m.fusion(rows: { 2 => [0, 3], 3 => [2, 5] })
81
+ # end
82
+ # end
83
+ # end
84
+
85
+ #
86
+ # m.fusion(columns: { 3=> [3, 5], 4 => [2, 5] })
87
+ # m.fusion(rows: { 0 => [0, 3], 3 => [5, 9] })
88
+ # # m.override( {
89
+ # # columns: { number: [ 0, 3 ] ,width: 200},
90
+ # # rows: { number: [ 1, 4 ] ,height: 200},
91
+ # # })
92
+ # m.last(:rows) do |el|
93
+ # el.color(:violet)
94
+ # end
95
+ # m.divide( rows: {1 => 3})
96
+ # m.cell(9).box({left: 0, top: 0, id: :the_big_one, width: 66, height: 66, color: :black})
97
+ # m.cell(9).content([box({ left: 0, top: 0, id: :another_one, width: 66, height: 66, color: :black })])
98
+
99
+
100
+
101
+
102
+