atome 0.5.7.0.7 → 0.5.7.1.2

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/atome/genesis/particles/property.rb +3 -1
  3. data/lib/atome/genesis/particles/spatial.rb +13 -3
  4. data/lib/atome/genesis/particles/utility.rb +16 -8
  5. data/lib/atome/kernel/universe.rb +2 -1
  6. data/lib/atome/version.rb +1 -1
  7. data/lib/molecules/intuition/utillities.rb +18 -5
  8. data/lib/renderers/html/hierarchy.rb +13 -1
  9. data/lib/renderers/html/html.rb +24 -5
  10. data/lib/renderers/html/material.rb +10 -10
  11. data/lib/renderers/html/property.rb +5 -0
  12. data/vendor/assets/application/examples/image.rb +1 -2
  13. data/vendor/assets/application/examples/input.rb +6 -4
  14. data/vendor/assets/application/examples/list.rb +16 -10
  15. data/vendor/assets/application/examples/matrix.rb +22 -11
  16. data/vendor/assets/application/examples/rotate.rb +8 -0
  17. data/vendor/assets/application/examples/svg_img_to_vector.rb +5 -2
  18. data/vendor/assets/application/examples/test.rb +57 -584
  19. data/vendor/assets/application/examples/text_align.rb +3 -0
  20. data/vendor/assets/application/examples/tools.rb +46 -31
  21. data/vendor/assets/application/examples/touch.rb +7 -4
  22. data/vendor/assets/application/examples/vector.rb +0 -3
  23. data/vendor/assets/src/css/style.css +2 -0
  24. data/vendor/assets/src/index.html +14 -1
  25. data/vendor/assets/src/index_opal.html +15 -3
  26. data/vendor/assets/src/index_server.html +4 -3
  27. data/vendor/assets/src/index_server_wasm.html +14 -1
  28. data/vendor/assets/src/index_wasm.html +14 -1
  29. data/vendor/assets/src/js/third_parties/wavesurfer.min.js +1 -0
  30. data/vendor/assets/src/medias/images/icons/edit-.svg +1 -1
  31. data/vendor/assets/src/medias/images/icons/edit.svg +1 -1
  32. data/vendor/assets/src/medias/images/icons/infos.svg +13 -0
  33. data/vendor/assets/src/medias/images/icons/mixer.svg +15 -0
  34. data/vendor/assets/src/medias/images/icons/module.svg +6 -0
  35. data/vendor/assets/src/medias/images/icons/new.svg +7 -0
  36. data/vendor/assets/src/medias/images/icons/panel.svg +8 -0
  37. data/vendor/assets/src/medias/images/icons/play.svg +2 -2
  38. data/vendor/assets/src/medias/images/icons/save.svg +1 -1
  39. data/vendor/assets/src/medias/images/icons/sequence.svg +11 -0
  40. data/vendor/assets/src/medias/images/logos/vie.svg +1 -1
  41. data/vendor/assets/src/medias/images/shapes/triangle.svg +5 -0
  42. metadata +12 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64323bdc4b0ecf2f9a130c3632dcf0934dc15797035b20bf6549c11b11dcd672
4
- data.tar.gz: 00ee111af8d4bed4b7ab415173fdd1aaa4aa84cbfbb5298457ff18dcad5f2c3a
3
+ metadata.gz: 4a382b0c451af7a259820a14e61aadbf779d0ddba6a67a603ec3940a28d6f252
4
+ data.tar.gz: a44e9004e18b867645ca3be9681d295997cce04fd7b4c13b8107b546b76e0e2e
5
5
  SHA512:
6
- metadata.gz: b47d3e83540561669ad27ebe0ad2a3f7fa7cb74c8ec7524248aa67edc9dd42f50d57b9aa32bd627940e02fd60b0289245a26b162791ceaf2de5856c7df4a9eff
7
- data.tar.gz: 2c6bdc853586f7c0f9a516212c2f972b7070fcf2e229b64f16a70f76862c0443087c6d3d7b233f77620890130064d45691f8e8a93580476070b1f53bff1e7126
6
+ metadata.gz: 956973bed7a67e04f0ec7c2921602b1751afc5281f9869587596be81621eb4cf323f870183ae9dabc5fa9a476f7e67926f8255a65adc6c9daeacdf433dc7c494
7
+ data.tar.gz: bf54e93e8ab7a82854f6da1a185c2926f7bef89222da5a80b28fedb24a052ec083b2cd6341754116e72f4fb5e10f55d9f67d24df45081d055606b04787a7f7c7
@@ -142,6 +142,8 @@ new({ particle: :value }) do |val|
142
142
  val
143
143
  end
144
144
 
145
- new({ particle: :behavior })
145
+ new({ particle: :behavior, type: :symbol, category: :property })
146
146
 
147
147
  new({ particle: :orientation, type: :symbol, category: :property })
148
+
149
+ new({ particle: :align , type: :symbol, category: :property })
@@ -11,7 +11,17 @@ new({ particle: :position, category: :spatial, type: :int })
11
11
  new({ particle: :organise, category: :spatial, type: :string })
12
12
  new({ particle: :spacing, category: :spatial, type: :string })
13
13
  new({ particle: :display, category: :spatial, type: :boolean }) do |params|
14
- params = { mode: params } unless params.instance_of? Hash
14
+ # params = { mode: params } unless params.instance_of? Hash
15
+ params = case params
16
+ when true
17
+ :block
18
+ when false
19
+ :none
20
+ else
21
+ params
22
+
23
+ end
24
+ params = :none if params == false
15
25
  params
16
26
  end
17
27
  new({ particle: :layout, category: :spatial, type: :int }) do |params|
@@ -92,7 +102,7 @@ new({ particle: :center, category: :spatial, type: :hash }) do |params|
92
102
  end
93
103
  new ({ particle: :increment, category: :spatial, type: :hash }) do |params|
94
104
  params.each do |particle, value|
95
- prev_value=send(particle)
96
- send(particle, value+prev_value)
105
+ prev_value = send(particle)
106
+ send(particle, value + prev_value)
97
107
  end
98
108
  end
@@ -26,8 +26,12 @@ end
26
26
 
27
27
  new({ particle: :delete, category: :utility, type: :boolean, render: false }) do |params|
28
28
  if params == true
29
+
29
30
  # We use the tag persistent to exclude color of system object and other default colors
30
31
  unless @tag && (@tag[:persistent] || @tag[:system])
32
+ # if we are on a matrix we delete cells found & group found
33
+ cells.delete(true)
34
+ group.delete(true)
31
35
  # now we detach the atome from it's parent
32
36
  # now we init rendering
33
37
  render(:delete, params)
@@ -38,20 +42,25 @@ new({ particle: :delete, category: :utility, type: :boolean, render: false }) do
38
42
  parent_found.attached.delete(id_found)
39
43
  end
40
44
  @affect&.each do |affected_atome|
41
- affected_found = grab(affected_atome)
42
- affected_found.apply.delete(id_found)
43
- affected_found.refresh
44
- end
45
-
46
- # Universe.delete(@aid)
45
+ affected_found = grab(affected_atome)
46
+ affected_found.apply.delete(id_found)
47
+ affected_found.refresh
48
+ end
49
+ Universe.delete(@aid)
47
50
  end
48
51
  elsif params.instance_of? Hash
49
-
52
+ # if we are on a matrix we delete cells found & group found
53
+ cells.delete(true)
54
+ group.delete(true)
50
55
  if params[:recursive]
51
56
  unless grab(@id).tag && (grab(@id).tag[:persistent] || grab(@id).tag[:system])
52
57
  attached.each do |atttached_atomes|
53
58
  delete_recursive(atttached_atomes)
54
59
  end
60
+ # group.each do |el|
61
+ # delete_recursive(el)
62
+ # end
63
+
55
64
  touch(:remove)
56
65
  render(:delete, params)
57
66
  Universe.delete(@id)
@@ -68,7 +77,6 @@ new({ particle: :delete, category: :utility, type: :boolean, render: false }) do
68
77
  # we check if the params passed is an atome to treat it in a different way
69
78
  puts "write code here : #{apply} , #{attached}"
70
79
  else
71
- # alert grab(params).delete(true)
72
80
  send(params, 0) unless params == :id
73
81
  end
74
82
  end
@@ -23,6 +23,7 @@ class Universe
23
23
  @allow_sync = false # temp server storage sync
24
24
  @connected = false
25
25
  @database_ready = false
26
+ @tools_root=[]
26
27
  @tools = {}
27
28
  @allow_tool_operations = false
28
29
  @active_tools = []
@@ -33,7 +34,7 @@ class Universe
33
34
  class << self
34
35
  attr_reader :atomes, :atomes_ids, :renderer_list, :molecule_list, :atome_list, :particle_list, :classes, :counter,
35
36
  :atomes_specificities
36
- attr_accessor :connected, :allow_sync, :allow_localstorage, :database_ready, :edit_mode, :tools,
37
+ attr_accessor :connected, :allow_sync, :allow_localstorage, :database_ready, :edit_mode, :tools,:tools_root,
37
38
  :allow_tool_operations, :active_tools, :atome_preset, :applicable_atomes, :default_selection_style
38
39
 
39
40
  def messages
data/lib/atome/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  # return atome version
4
4
  class Atome
5
- VERSION = '0.5.7.0.7'
5
+ VERSION = '0.5.7.1.2'
6
6
  end
@@ -11,9 +11,12 @@ new(molecule: :input) do |params, bloc|
11
11
  limit ||= 15
12
12
  back_col = params.delete(:back)
13
13
  back_col ||= :grey
14
- text_col = params.delete(:text)
15
- text_col ||= :black
14
+ text_params = params.delete(:text)
15
+ text_params ||= {}
16
16
  default_text = params.delete(:default)
17
+ component = params.delete(:component)
18
+ # component ||= {}
19
+
17
20
  default_text ||= :input
18
21
  default_parent = if self.instance_of?(Atome)
19
22
  id
@@ -29,12 +32,12 @@ new(molecule: :input) do |params, bloc|
29
32
  })
30
33
 
31
34
  text_input = Atome.new(
32
- { renderers: [:html], type: :text, color: text_col, component: { size: params[:height] },
35
+ { renderers: [:html], type: :text, component: component,
33
36
  data: default_text, left: params[:height] * 20 / 100, top: 0, edit: true, attach: input_back.id, height: params[:height],
34
37
  position: :absolute
35
- }
38
+ }.merge(text_params)
36
39
  )
37
-
40
+ # text_input.set()
38
41
  text_input.touch(:down) do
39
42
  input_back.tick(:input)
40
43
  text_input.edit(true)
@@ -79,11 +82,13 @@ new(molecule: :input) do |params, bloc|
79
82
  input_back.holder(text_input)
80
83
  input_back
81
84
  end
85
+
82
86
  new(molecule: :list) do |params, _bloc|
83
87
 
84
88
  styles_found = params.delete(:styles)
85
89
  element = params.delete(:element)
86
90
  listing = params.delete(:listing)
91
+ action = params.delete(:action)
87
92
  new_id = params.delete(:id) || identity_generator
88
93
 
89
94
  styles_found ||= {
@@ -123,7 +128,14 @@ new(molecule: :list) do |params, _bloc|
123
128
  listing.each_with_index do |data, index|
124
129
  # let's create the container
125
130
  new_atome = { renderers: renderer_found, attach: list.id }.merge(styles_found).merge({ type: :shape })
131
+
132
+
126
133
  el = Atome.new(new_atome)
134
+ if action
135
+ el.touch(action[:touch]) do
136
+ send(action[:method], data)
137
+ end
138
+ end
127
139
  el.top((height_found + margin) * index)
128
140
  # now the content
129
141
  Atome.new({ renderers: renderer_found, attach: el.id }.merge(element).merge(data))
@@ -131,6 +143,7 @@ new(molecule: :list) do |params, _bloc|
131
143
  end
132
144
  list
133
145
  end
146
+
134
147
  new({ molecule: :slider }) do |params, bloc|
135
148
 
136
149
  default_value = params[:value] ||= 0
@@ -32,15 +32,27 @@ new({ renderer: :html, method: :apply, type: :string }) do |parent_found, _user_
32
32
  html.style("boxShadow", box_shadow)
33
33
  html.style("filter", drop_shadow)
34
34
  when :color
35
+
35
36
  red = parent_found.red * 255
36
37
  green = parent_found.green * 255
37
38
  blue = parent_found.blue * 255
38
39
  alpha = parent_found.alpha
39
- html.style(:backgroundColor, "rgba(#{red}, #{green}, #{blue}, #{alpha})")
40
40
  if type.to_sym ==:border
41
41
  affect.each do |at_found|
42
42
  grab(at_found).html.style(:border, "solid 2px rgba(#{red},#{green},#{blue},#{alpha})")
43
43
  end
44
+ elsif type.to_sym == :image
45
+ # alert 'rr'
46
+ # div[:style][:mixBlendMode] = 'color'
47
+ # html.style(:mixBlendMode,'color')
48
+ # html.style(:backgroundColor, "rgba(#{red}, #{green}, #{blue}, #{alpha})")
49
+
50
+ # html.image_colorizer("rgba(#{red}, #{green}, #{blue}, #{alpha})")
51
+ # html.image_colorizer("rgba(#{red}, #{green}, #{blue}, #{alpha})")
52
+ else
53
+ html.style(:backgroundColor, "rgba(#{red}, #{green}, #{blue}, #{alpha})")
54
+
55
+
44
56
  end
45
57
  when :paint
46
58
  # if when found colors when use it for the gradient , else whe use the colors within the current atome
@@ -505,6 +505,7 @@ STRDELIM
505
505
  end
506
506
  end
507
507
 
508
+
508
509
  def transform(property, value = nil)
509
510
  transform_needed = "#{property}(#{value}deg)"
510
511
  @element[:style][:transform] = transform_needed.to_s
@@ -577,6 +578,8 @@ STRDELIM
577
578
  @element[:style][:"-webkit-backdrop-filter"] = filter_needed
578
579
  end
579
580
 
581
+
582
+
580
583
  def currentTime(time)
581
584
  @element[:currentTime] = time
582
585
  end
@@ -1336,6 +1339,7 @@ STRDELIM
1336
1339
  # Table manipulation
1337
1340
 
1338
1341
  def table(data)
1342
+
1339
1343
  table_html = JS.global[:document].createElement('table')
1340
1344
  thead = JS.global[:document].createElement('thead')
1341
1345
 
@@ -1355,7 +1359,7 @@ STRDELIM
1355
1359
 
1356
1360
  table_html.appendChild(thead)
1357
1361
  tbody = JS.global[:document].createElement('tbody')
1358
-
1362
+ # alert data
1359
1363
  data.each_with_index do |row, row_index|
1360
1364
  tr = JS.global[:document].createElement('tr')
1361
1365
 
@@ -1385,6 +1389,20 @@ STRDELIM
1385
1389
  JS.global[:document].querySelector("##{@id}").appendChild(table_html)
1386
1390
  end
1387
1391
 
1392
+
1393
+
1394
+ # Helper function to handle Atome objects
1395
+ def handle_atome(atome, td_element)
1396
+ atome.fit(cell_height)
1397
+ html_element = JS.global[:document].getElementById(atome.id.to_s)
1398
+ td_element.appendChild(html_element)
1399
+ html_element[:style][:transformOrigin] = 'top left'
1400
+ html_element[:style][:position] = 'relative'
1401
+ atome.top(0)
1402
+ atome.left(0)
1403
+ end
1404
+
1405
+
1388
1406
  def refresh_table(_params)
1389
1407
  # first we need to extact all atome from the table or they will be deleted by the table refres
1390
1408
  data = @original_atome.data
@@ -1422,18 +1440,19 @@ STRDELIM
1422
1440
  end
1423
1441
 
1424
1442
  def set_td_style(td)
1425
- cell_height = 50
1443
+ cell_height = @original_atome.component[:height]
1444
+ cell_width = @original_atome.component[:width]
1426
1445
  td[:style][:border] = '1px solid black'
1427
1446
  td[:style][:backgroundColor] = 'white'
1428
1447
  td[:style][:boxShadow] = '10px 10px 5px #888888'
1429
- td[:style][:width] = "#{cell_height}px"
1430
- td[:style]['min-width'] = "#{cell_height}px"
1448
+ td[:style][:width] = "#{cell_width}px"
1449
+ td[:style]['min-width'] = "#{cell_width}px"
1431
1450
  td[:style]['max-width'] = "#{cell_height}px"
1432
1451
  td[:style]['min-height'] = "#{cell_height}px"
1433
1452
  td[:style]['max-height'] = "#{cell_height}px"
1434
1453
  td[:style][:height] = "#{cell_height}px"
1435
1454
  td[:style][:overflow] = 'hidden'
1436
- { cell_height: cell_height, cell_width: cell_height }
1455
+ { cell_height: cell_height, cell_width: cell_width }
1437
1456
  end
1438
1457
 
1439
1458
  def insert_cell(params)
@@ -20,9 +20,11 @@ new({ method: :remove, renderer: :html, type: :string }) do |object_id_to_remove
20
20
  when :category
21
21
  html.remove_class(value)
22
22
  else
23
- atome_ids_found = send(object_id_to_remove[:all])
24
- atome_ids_found.each do |atome_id|
25
- remove(atome_id)
23
+ if object_id_to_remove[:all]
24
+ atome_ids_found = send(object_id_to_remove[:all])
25
+ atome_ids_found.each do |atome_id|
26
+ remove(atome_id)
27
+ end
26
28
  end
27
29
  end
28
30
  end
@@ -44,9 +46,7 @@ new({ method: :remove, renderer: :html, type: :string }) do |object_id_to_remove
44
46
  html.style("boxShadow", 'none')
45
47
  html.style("filter", 'none')
46
48
  @apply.delete(object_id_to_remove)
47
- # apply(@apply)
48
49
  when :border
49
- # alert :poipoipoipoipo
50
50
  html.style("border", 'none')
51
51
  html.style("filter", 'none')
52
52
  @apply.delete(object_id_to_remove)
@@ -81,20 +81,20 @@ end
81
81
  #
82
82
  # html.style(:border, "#{type} #{thickness}px rgba(#{red},#{green},#{blue},#{alpha})")
83
83
  # end
84
- new({ method: :thickness, type: :integer, renderer: :html})
84
+ new({ method: :thickness, type: :integer, renderer: :html })
85
85
 
86
86
  # end
87
- new({ method: :pattern, type: :integer, renderer: :html})
87
+ new({ method: :pattern, type: :integer, renderer: :html })
88
88
 
89
89
  new({ method: :fill, renderer: :html }) do |params|
90
90
  html.fill(params)
91
91
  end
92
92
 
93
- new({ method: :opacity, type: :integer, renderer: :html}) do |value|
93
+ new({ method: :opacity, type: :integer, renderer: :html }) do |value|
94
94
  # html.opacity(value)
95
- html.style('opacity',value)
95
+ html.style('opacity', value)
96
96
  end
97
97
 
98
98
  new({ method: :visual, type: :string, renderer: :html, specific: :text }) do |value, _user_proc|
99
- html.style('fontFamily', value)
99
+ html.style('fontFamily', value)
100
100
  end
@@ -46,3 +46,8 @@ new({ method: :inside, renderer: :html }) do |params|
46
46
  html.style("boxSizing", ' content-box')
47
47
  end
48
48
  end
49
+
50
+
51
+ new({ method: :align, renderer: :html, type: :hash }) do |params|
52
+ html.style('text-align', params)
53
+ end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  image(:red_planet)
4
-
5
- image({path: 'medias/images/logos/atome.svg', width: 33})
4
+ image({path: 'medias/images/logos/atome.svg', width: 33})
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  t = text({ left: 33, top: 33, data: 'data collected', id: :infos })
3
-
4
- inp=A.input({ width: 166,
3
+ b=box({drag: true, id: :titi})
4
+ inp=b.input({ width: 166,
5
5
  trigger: :up,
6
6
  back: :orange,
7
7
  shadow: {
@@ -10,11 +10,13 @@ inp=A.input({ width: 166,
10
10
  invert: true,
11
11
  red: 0, green: 0, blue: 0, alpha: 0.9
12
12
  },
13
- attach: :intuition,
14
- text: :black,
13
+ component: {size: 8},
14
+ # attach: :intuition,
15
+ text: { color: :black , top: 5, left: 6},
15
16
  smooth: 3,
16
17
  left: 66,
17
18
  top: 33,
19
+ # height: 8,
18
20
  default: 'type here'
19
21
  }) do |val|
20
22
 
@@ -23,14 +23,15 @@ listing = [
23
23
  { data: :hi },
24
24
  { data: :ho }
25
25
  ]
26
- b=box({drag: true})
26
+ b = box({ drag: true })
27
27
  list_1 = grab(:intuition).list({
28
- styles: styles,
29
- element: element,
30
- listing: listing,
31
- left: 33,
32
- attach: b.id
33
- })
28
+ styles: styles,
29
+ element: element,
30
+ listing: listing,
31
+ left: 33,
32
+ attach: b.id,
33
+ action: {touch: :down, method: :my_method }
34
+ })
34
35
 
35
36
  # test2
36
37
 
@@ -50,22 +51,27 @@ element = { width: 25,
50
51
  # left: 10,
51
52
  # top: :center,
52
53
  color: :orange,
53
- type: :shape }
54
+ type: :shape
55
+ }
54
56
 
55
57
  listing = [
56
58
  { smooth: '100%' },
57
- { color: :red },
59
+ { color: :red, data: :poilu },
58
60
  {},
59
61
  {},
60
62
 
61
63
  { width: 33 },
62
64
  {},
63
65
  ]
66
+ def my_method(val=nil)
67
+ alert "so_cool : #{val}"
68
+ end
64
69
 
65
70
  list_2 = A.list({ left: 300,
66
71
  styles: styles,
67
72
  element: element,
68
- listing: listing
73
+ listing: listing,
74
+ action: {touch: :down, method: :my_method }
69
75
  })
70
76
  wait 1 do
71
77
  list_2.left(list_1.width)
@@ -1,18 +1,14 @@
1
1
  # # frozen_string_literal: true
2
2
  #
3
- matrix_zone = box({ width: 333, height: 333, drag: true, id: :the_box })
3
+ matrix_zone = box({ width: 333, height: 333, drag: true, id: :the_box, color: {alpha: 0.4} })
4
4
  #
5
5
  # # matrix creation
6
6
  main_matrix = matrix_zone.matrix({ id: :vie_0, rows: 8, columns: 8, spacing: 6, size: '100%' })
7
- main_matrix.smooth(3)
7
+ main_matrix.smooth(10)
8
8
  main_matrix.color(:red)
9
9
 
10
- grab(:view).on(:resize) do
11
10
 
12
- end
13
- #
14
- # matrix_to_treat=main_matrix
15
- #
11
+
16
12
  # #######################################################@
17
13
  matrix_to_treat = main_matrix.cells
18
14
  matrix_to_treat.color(:blue)
@@ -30,7 +26,7 @@ col_2 = color({ red: 1, id: :red_col })
30
26
  wait 3 do
31
27
  matrix_to_treat.paint({ gradient: [col_1.id, col_2.id], direction: :top })
32
28
  end
33
-
29
+ #
34
30
  # ###################
35
31
 
36
32
  test_cell = grab(:vie_0_2_3)
@@ -65,13 +61,28 @@ matrix_to_treat.touch(:down) do |event|
65
61
  current_cell.color(:blue)
66
62
  current_cell.selected(true)
67
63
  end
68
- main_matrix.cells.smooth(9)
64
+ matrix_to_treat.smooth(9)
69
65
  main_matrix.color(:red)
70
- main_matrix.cells.color(:yellow)
66
+ matrix_to_treat.color(:yellow)
71
67
  wait 5 do
72
68
  main_matrix.resize_matrix({width: 555, height: 555})
73
69
  end
74
70
 
71
+ wait 7 do
72
+ main_matrix.display(false)
73
+ wait 1 do
74
+ main_matrix.display(true)
75
+ wait 1 do
76
+ main_matrix.delete(true)
77
+ wait 1 do
78
+ main_matrix = matrix_zone.matrix({ id: :vie_0, rows: 8, columns: 8, spacing: 6, size: '100%' })
79
+ end
80
+ end
81
+ # main_matrix.color(:red)
82
+ end
83
+ end
75
84
 
76
-
85
+ # b=box
86
+ # b.circle
87
+ # b.delete(true)
77
88
 
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+
4
+ b=box
5
+ i=b.image({path: 'medias/images/icons/hamburger.svg'})
6
+ wait 2 do
7
+ i.rotate(22)
8
+ end
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  grab(:black_matter).image({ path: 'medias/images/icons/color.svg', id: :atomic_logo, width: 33, left: 333 })
4
- vector({ width: 333, height: 333, id: :my_placeholder })
4
+ img=vector({ width: 333, height: 333, id: :my_placeholder })
5
5
  A.fetch_svg({ source: :atomic_logo, target: :my_placeholder })
6
- grab(:atomic_logo).delete(true)
6
+ wait 2 do
7
+ img.color(:cyan)
8
+ end
9
+ # grab(:atomic_logo).delete(true)