drawio_dsl 0.8.11 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/config/configuration.json +8 -8
  4. data/docs/project-plan/project.drawio +80 -74
  5. data/docs/project-plan/project_done.svg +1 -1
  6. data/docs/project-plan/project_in_progress.svg +1 -1
  7. data/docs/samples/grid-direction-horizontal.svg +1 -1
  8. data/docs/samples/grid-direction-vertical.svg +1 -1
  9. data/lib/drawio_dsl/configuration.rb +21 -9
  10. data/lib/drawio_dsl/configuration_shapes.rb +2 -2
  11. data/lib/drawio_dsl/configuration_themes.rb +44 -44
  12. data/lib/drawio_dsl/dom_builder_shapes.rb +3 -3
  13. data/lib/drawio_dsl/drawio_shapes.rb +3 -3
  14. data/lib/drawio_dsl/schema/_.rb +55 -45
  15. data/lib/drawio_dsl/schema/diagram.rb +1 -1
  16. data/lib/drawio_dsl/schema/element.rb +23 -0
  17. data/lib/drawio_dsl/schema/{shapes/face.rb → elements/actor.rb} +2 -2
  18. data/lib/drawio_dsl/schema/{shapes/actor.rb → elements/actor2.rb} +2 -2
  19. data/lib/drawio_dsl/schema/{shapes/circle.rb → elements/callout.rb} +2 -2
  20. data/lib/drawio_dsl/schema/{shapes/callout.rb → elements/callout2.rb} +2 -2
  21. data/lib/drawio_dsl/schema/elements/callout3.rb +9 -0
  22. data/lib/drawio_dsl/schema/elements/callout4.rb +9 -0
  23. data/lib/drawio_dsl/schema/{shapes/cross.rb → elements/circle.rb} +2 -2
  24. data/lib/drawio_dsl/schema/elements/cloud.rb +9 -0
  25. data/lib/drawio_dsl/schema/elements/container.rb +9 -0
  26. data/lib/drawio_dsl/schema/elements/container2.rb +9 -0
  27. data/lib/drawio_dsl/schema/elements/container3.rb +9 -0
  28. data/lib/drawio_dsl/schema/elements/container4.rb +9 -0
  29. data/lib/drawio_dsl/schema/elements/cross.rb +9 -0
  30. data/lib/drawio_dsl/schema/elements/database.rb +9 -0
  31. data/lib/drawio_dsl/schema/{shapes/actor2.rb → elements/db_json.rb} +2 -2
  32. data/lib/drawio_dsl/schema/elements/diamond.rb +9 -0
  33. data/lib/drawio_dsl/schema/elements/document.rb +9 -0
  34. data/lib/drawio_dsl/schema/elements/ellipse.rb +9 -0
  35. data/lib/drawio_dsl/schema/elements/embed_col200.rb +9 -0
  36. data/lib/drawio_dsl/schema/elements/embed_col50.rb +9 -0
  37. data/lib/drawio_dsl/schema/{shapes/callout2.rb → elements/embed_row.rb} +2 -2
  38. data/lib/drawio_dsl/schema/elements/envelop.rb +9 -0
  39. data/lib/drawio_dsl/schema/elements/face.rb +9 -0
  40. data/lib/drawio_dsl/schema/elements/group.rb +9 -0
  41. data/lib/drawio_dsl/schema/elements/hexagon.rb +9 -0
  42. data/lib/drawio_dsl/schema/elements/interface.rb +9 -0
  43. data/lib/drawio_dsl/schema/elements/klass.rb +9 -0
  44. data/lib/drawio_dsl/schema/elements/note.rb +9 -0
  45. data/lib/drawio_dsl/schema/elements/process.rb +9 -0
  46. data/lib/drawio_dsl/schema/elements/rectangle.rb +9 -0
  47. data/lib/drawio_dsl/schema/elements/rectangle2.rb +9 -0
  48. data/lib/drawio_dsl/schema/{shapes/cloud.rb → elements/square.rb} +2 -2
  49. data/lib/drawio_dsl/schema/elements/step.rb +9 -0
  50. data/lib/drawio_dsl/schema/elements/tick.rb +9 -0
  51. data/lib/drawio_dsl/schema/elements/todo.rb +9 -0
  52. data/lib/drawio_dsl/schema/elements/triangle.rb +9 -0
  53. data/lib/drawio_dsl/schema/line.rb +24 -0
  54. data/lib/drawio_dsl/schema/lines/solid.rb +9 -0
  55. data/lib/drawio_dsl/schema/page.rb +8 -6
  56. data/lib/drawio_dsl/schema/{shapes/shape.rb → shape.rb} +14 -22
  57. data/lib/drawio_dsl/schema/text.rb +23 -0
  58. data/lib/drawio_dsl/schema/{shapes → texts}/h1.rb +2 -2
  59. data/lib/drawio_dsl/schema/{shapes → texts}/h2.rb +2 -2
  60. data/lib/drawio_dsl/schema/{shapes → texts}/h3.rb +2 -2
  61. data/lib/drawio_dsl/schema/{shapes → texts}/h4.rb +2 -2
  62. data/lib/drawio_dsl/schema/{shapes → texts}/h5.rb +2 -2
  63. data/lib/drawio_dsl/schema/{shapes → texts}/h6.rb +2 -2
  64. data/lib/drawio_dsl/schema/{shapes → texts}/p.rb +2 -2
  65. data/lib/drawio_dsl/version.rb +1 -1
  66. data/lib/drawio_dsl.rb +7 -9
  67. data/package-lock.json +2 -2
  68. data/package.json +1 -1
  69. metadata +49 -46
  70. data/lib/drawio_dsl/schema/shapes/callout3.rb +0 -9
  71. data/lib/drawio_dsl/schema/shapes/callout4.rb +0 -9
  72. data/lib/drawio_dsl/schema/shapes/container.rb +0 -9
  73. data/lib/drawio_dsl/schema/shapes/container2.rb +0 -9
  74. data/lib/drawio_dsl/schema/shapes/container3.rb +0 -9
  75. data/lib/drawio_dsl/schema/shapes/container4.rb +0 -9
  76. data/lib/drawio_dsl/schema/shapes/database.rb +0 -9
  77. data/lib/drawio_dsl/schema/shapes/db_json.rb +0 -9
  78. data/lib/drawio_dsl/schema/shapes/diamond.rb +0 -9
  79. data/lib/drawio_dsl/schema/shapes/document.rb +0 -9
  80. data/lib/drawio_dsl/schema/shapes/ellipse.rb +0 -9
  81. data/lib/drawio_dsl/schema/shapes/embed_col200.rb +0 -9
  82. data/lib/drawio_dsl/schema/shapes/embed_col50.rb +0 -9
  83. data/lib/drawio_dsl/schema/shapes/embed_row.rb +0 -9
  84. data/lib/drawio_dsl/schema/shapes/envelop.rb +0 -9
  85. data/lib/drawio_dsl/schema/shapes/group.rb +0 -9
  86. data/lib/drawio_dsl/schema/shapes/hexagon.rb +0 -9
  87. data/lib/drawio_dsl/schema/shapes/interface.rb +0 -9
  88. data/lib/drawio_dsl/schema/shapes/klass.rb +0 -9
  89. data/lib/drawio_dsl/schema/shapes/line.rb +0 -9
  90. data/lib/drawio_dsl/schema/shapes/note.rb +0 -9
  91. data/lib/drawio_dsl/schema/shapes/process.rb +0 -9
  92. data/lib/drawio_dsl/schema/shapes/rectangle.rb +0 -9
  93. data/lib/drawio_dsl/schema/shapes/rectangle2.rb +0 -9
  94. data/lib/drawio_dsl/schema/shapes/square.rb +0 -9
  95. data/lib/drawio_dsl/schema/shapes/step.rb +0 -9
  96. data/lib/drawio_dsl/schema/shapes/tick.rb +0 -9
  97. data/lib/drawio_dsl/schema/shapes/todo.rb +0 -9
  98. data/lib/drawio_dsl/schema/shapes/triangle.rb +0 -9
@@ -8,7 +8,7 @@ module DrawioDsl
8
8
  ShapeDefaults = Struct.new(:type, :category, :x, :y, :w, :h, :style_modifiers, keyword_init: true)
9
9
  Shapes = Struct.new(
10
10
  :shape,
11
- :line,
11
+ :solid,
12
12
  :h1,
13
13
  :h2,
14
14
  :h3,
@@ -58,7 +58,7 @@ module DrawioDsl
58
58
  def add_shapes
59
59
  @shapes = Shapes.new(
60
60
  shape: ShapeDefaults.new(type: :shape, category: :element, x: 0, y: 0, w: 20, h: 20, style_modifiers: ''),
61
- line: ShapeDefaults.new(type: :line, x: 0, category: :line, y: 0, w: 50, h: 50, style_modifiers: 'edgeStyle=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0'),
61
+ solid: ShapeDefaults.new(type: :solid, x: 0, category: :line, y: 0, w: 50, h: 50, style_modifiers: 'edgeStyle=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0'),
62
62
  h1: ShapeDefaults.new(type: :h1, x: 0, category: :text, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=89;fontColor=#ffffff;fontStyle=1;fillColor=none'),
63
63
  h2: ShapeDefaults.new(type: :h2, x: 0, category: :text, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=67;fontColor=#ffffff;fontStyle=1;fillColor=none'),
64
64
  h3: ShapeDefaults.new(type: :h3, x: 0, category: :text, y: 0, w: 100, h: 50, style_modifiers: 'text;fontSize=50;fontColor=#ffffff;fontStyle=1;fillColor=none'),
@@ -4,7 +4,7 @@
4
4
  module DrawioDsl
5
5
  # Configuration for each theme
6
6
  module ConfigurationThemes
7
- ShapeThemeStyle = Struct.new(:fill_color, :stroke_color, :font_color, :gradient, keyword_init: true)
7
+ ShapeThemeStyle = Struct.new(:fill_color, :stroke_color, :gradient, :element_font_color, :text_font_color, keyword_init: true)
8
8
 
9
9
  attr_accessor :themes
10
10
 
@@ -15,49 +15,49 @@ module DrawioDsl
15
15
  def add_themes
16
16
  @themes = {}
17
17
 
18
- add_theme(:style_01 , fill_color: '#f5f5f5', stroke_color: '#666666', font_color: '#333333')
19
- add_theme(:style_02 , fill_color: '#dae8fc', stroke_color: '#6c8ebf', font_color: '#333333')
20
- add_theme(:style_03 , fill_color: '#d5e8d4', stroke_color: '#82b366', font_color: '#333333')
21
- add_theme(:style_04 , fill_color: '#ffe6cc', stroke_color: '#d79b00', font_color: '#333333')
22
- add_theme(:style_05 , fill_color: '#fff2cc', stroke_color: '#d6b656', font_color: '#333333')
23
- add_theme(:style_06 , fill_color: '#f8cecc', stroke_color: '#b85450', font_color: '#333333')
24
- add_theme(:style_07 , fill_color: '#e1d5e7', stroke_color: '#9673a6', font_color: '#333333')
25
- add_theme(:style_08 , fill_color: '#60a917', stroke_color: '#2D7600', font_color: '#ffffff')
26
- add_theme(:style_09 , fill_color: '#008a00', stroke_color: '#005700', font_color: '#ffffff')
27
- add_theme(:style_10 , fill_color: '#1ba1e2', stroke_color: '#006EAF', font_color: '#ffffff')
28
- add_theme(:style_11 , fill_color: '#0050ef', stroke_color: '#001DBC', font_color: '#ffffff')
29
- add_theme(:style_12 , fill_color: '#6a00ff', stroke_color: '#3700CC', font_color: '#ffffff')
30
- add_theme(:style_13 , fill_color: '#aa00ff', stroke_color: '#7700CC', font_color: '#ffffff')
31
- add_theme(:style_14 , fill_color: '#d80073', stroke_color: '#A50040', font_color: '#ffffff')
32
- add_theme(:style_15 , fill_color: '#a20025', stroke_color: '#6F0000', font_color: '#ffffff')
33
- add_theme(:style_16 , fill_color: '#e51400', stroke_color: '#B20000', font_color: '#ffffff')
34
- add_theme(:style_17 , fill_color: '#fa6800', stroke_color: '#C73500', font_color: '#000000')
35
- add_theme(:style_18 , fill_color: '#f0a30a', stroke_color: '#BD7000', font_color: '#000000')
36
- add_theme(:style_19 , fill_color: '#e3c800', stroke_color: '#B09500', font_color: '#000000')
37
- add_theme(:style_20 , fill_color: '#6d8764', stroke_color: '#3A5431', font_color: '#ffffff')
38
- add_theme(:style_21 , fill_color: '#647687', stroke_color: '#314354', font_color: '#ffffff')
39
- add_theme(:style_22 , fill_color: '#76608a', stroke_color: '#432D57', font_color: '#ffffff')
40
- add_theme(:style_23 , fill_color: '#a0522d', stroke_color: '#6D1F00', font_color: '#ffffff')
41
- add_theme(:style_24 , fill_color: '#fad7ac', stroke_color: '#b46504', font_color: '#333333')
42
- add_theme(:style_25 , fill_color: '#fad9d5', stroke_color: '#ae4132', font_color: '#333333')
43
- add_theme(:style_26 , fill_color: '#b0e3e6', stroke_color: '#0e8088', font_color: '#000000')
44
- add_theme(:style_27 , fill_color: '#b1ddf0', stroke_color: '#10739e', font_color: '#000000')
45
- add_theme(:style_28 , fill_color: '#d0cee2', stroke_color: '#56517e', font_color: '#000000')
46
- add_theme(:style_29 , fill_color: '#bac8d3', stroke_color: '#23445d', font_color: '#000000')
47
- add_theme(:style_30 , fill_color: '#f5f5f5', stroke_color: '#666666', font_color: '#000000', gradient: '#b3b3b3')
48
- add_theme(:style_31 , fill_color: '#dae8fc', stroke_color: '#6c8ebf', font_color: '#000000', gradient: '#7ea6e0')
49
- add_theme(:style_32 , fill_color: '#d5e8d4', stroke_color: '#82b366', font_color: '#000000', gradient: '#97d077')
50
- add_theme(:style_33 , fill_color: '#ffcd28', stroke_color: '#d79b00', font_color: '#000000', gradient: '#ffa500')
51
- add_theme(:style_34 , fill_color: '#fff2cc', stroke_color: '#d6b656', font_color: '#000000', gradient: '#ffd966')
52
- add_theme(:style_35 , fill_color: '#f8cecc', stroke_color: '#b85450', font_color: '#000000', gradient: '#ea6b66')
53
- add_theme(:style_36 , fill_color: '#e6d0de', stroke_color: '#996185', font_color: '#000000', gradient: '#d5739d')
54
- add_theme(:style_37 , fill_color: '#eeeeee', stroke_color: '#36393d', font_color: '#000000')
55
- add_theme(:style_38 , fill_color: '#f9f7ed', stroke_color: '#36393d', font_color: '#000000')
56
- add_theme(:style_39 , fill_color: '#ffcc99', stroke_color: '#36393d', font_color: '#000000')
57
- add_theme(:style_40 , fill_color: '#cce5ff', stroke_color: '#36393d', font_color: '#000000')
58
- add_theme(:style_41 , fill_color: '#ffff88', stroke_color: '#36393d', font_color: '#000000')
59
- add_theme(:style_42 , fill_color: '#cdeb8b', stroke_color: '#36393d', font_color: '#000000')
60
- add_theme(:style_43 , fill_color: '#ffcccc', stroke_color: '#36393d', font_color: '#000000')
18
+ add_theme(:style_01 , fill_color: '#f5f5f5', stroke_color: '#666666', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
19
+ add_theme(:style_02 , fill_color: '#dae8fc', stroke_color: '#6c8ebf', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
20
+ add_theme(:style_03 , fill_color: '#d5e8d4', stroke_color: '#82b366', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
21
+ add_theme(:style_04 , fill_color: '#ffe6cc', stroke_color: '#d79b00', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
22
+ add_theme(:style_05 , fill_color: '#fff2cc', stroke_color: '#d6b656', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
23
+ add_theme(:style_06 , fill_color: '#f8cecc', stroke_color: '#b85450', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
24
+ add_theme(:style_07 , fill_color: '#e1d5e7', stroke_color: '#9673a6', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
25
+ add_theme(:style_08 , fill_color: '#60a917', stroke_color: '#2D7600', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
26
+ add_theme(:style_09 , fill_color: '#008a00', stroke_color: '#005700', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
27
+ add_theme(:style_10 , fill_color: '#1ba1e2', stroke_color: '#006EAF', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
28
+ add_theme(:style_11 , fill_color: '#0050ef', stroke_color: '#001DBC', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
29
+ add_theme(:style_12 , fill_color: '#6a00ff', stroke_color: '#3700CC', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
30
+ add_theme(:style_13 , fill_color: '#aa00ff', stroke_color: '#7700CC', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
31
+ add_theme(:style_14 , fill_color: '#d80073', stroke_color: '#A50040', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
32
+ add_theme(:style_15 , fill_color: '#a20025', stroke_color: '#6F0000', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
33
+ add_theme(:style_16 , fill_color: '#e51400', stroke_color: '#B20000', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
34
+ add_theme(:style_17 , fill_color: '#fa6800', stroke_color: '#C73500', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
35
+ add_theme(:style_18 , fill_color: '#f0a30a', stroke_color: '#BD7000', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
36
+ add_theme(:style_19 , fill_color: '#e3c800', stroke_color: '#B09500', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
37
+ add_theme(:style_20 , fill_color: '#6d8764', stroke_color: '#3A5431', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
38
+ add_theme(:style_21 , fill_color: '#647687', stroke_color: '#314354', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
39
+ add_theme(:style_22 , fill_color: '#76608a', stroke_color: '#432D57', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
40
+ add_theme(:style_23 , fill_color: '#a0522d', stroke_color: '#6D1F00', gradient: nil , element_font_color: '#ffffff', text_font_color: '#aaaaaa')
41
+ add_theme(:style_24 , fill_color: '#fad7ac', stroke_color: '#b46504', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
42
+ add_theme(:style_25 , fill_color: '#fad9d5', stroke_color: '#ae4132', gradient: nil , element_font_color: '#333333', text_font_color: '#aaaaaa')
43
+ add_theme(:style_26 , fill_color: '#b0e3e6', stroke_color: '#0e8088', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
44
+ add_theme(:style_27 , fill_color: '#b1ddf0', stroke_color: '#10739e', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
45
+ add_theme(:style_28 , fill_color: '#d0cee2', stroke_color: '#56517e', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
46
+ add_theme(:style_29 , fill_color: '#bac8d3', stroke_color: '#23445d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
47
+ add_theme(:style_30 , fill_color: '#f5f5f5', stroke_color: '#666666', gradient: '#b3b3b3', element_font_color: '#000000', text_font_color: '#aaaaaa')
48
+ add_theme(:style_31 , fill_color: '#dae8fc', stroke_color: '#6c8ebf', gradient: '#7ea6e0', element_font_color: '#000000', text_font_color: '#aaaaaa')
49
+ add_theme(:style_32 , fill_color: '#d5e8d4', stroke_color: '#82b366', gradient: '#97d077', element_font_color: '#000000', text_font_color: '#aaaaaa')
50
+ add_theme(:style_33 , fill_color: '#ffcd28', stroke_color: '#d79b00', gradient: '#ffa500', element_font_color: '#000000', text_font_color: '#aaaaaa')
51
+ add_theme(:style_34 , fill_color: '#fff2cc', stroke_color: '#d6b656', gradient: '#ffd966', element_font_color: '#000000', text_font_color: '#aaaaaa')
52
+ add_theme(:style_35 , fill_color: '#f8cecc', stroke_color: '#b85450', gradient: '#ea6b66', element_font_color: '#000000', text_font_color: '#aaaaaa')
53
+ add_theme(:style_36 , fill_color: '#e6d0de', stroke_color: '#996185', gradient: '#d5739d', element_font_color: '#000000', text_font_color: '#aaaaaa')
54
+ add_theme(:style_37 , fill_color: '#eeeeee', stroke_color: '#36393d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
55
+ add_theme(:style_38 , fill_color: '#f9f7ed', stroke_color: '#36393d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
56
+ add_theme(:style_39 , fill_color: '#ffcc99', stroke_color: '#36393d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
57
+ add_theme(:style_40 , fill_color: '#cce5ff', stroke_color: '#36393d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
58
+ add_theme(:style_41 , fill_color: '#ffff88', stroke_color: '#36393d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
59
+ add_theme(:style_42 , fill_color: '#cdeb8b', stroke_color: '#36393d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
60
+ add_theme(:style_43 , fill_color: '#ffcccc', stroke_color: '#36393d', gradient: nil , element_font_color: '#000000', text_font_color: '#aaaaaa')
61
61
  end
62
62
  end
63
63
  end
@@ -4,10 +4,10 @@
4
4
  module DrawioDsl
5
5
  # DrawioDsl is a DSL for draw-io diagrams.
6
6
  module DomBuilderShapes
7
- def add_line(id = nil, **opts, &block)
7
+ def add_solid(id = nil, **opts, &block)
8
8
  opts = { id: id }.merge(opts) if id
9
- line = DrawioDsl::Schema::Line.new(current_page, **opts, &block)
10
- add_shape(line)
9
+ solid = DrawioDsl::Schema::Solid.new(current_page, **opts, &block)
10
+ add_shape(solid)
11
11
  end
12
12
 
13
13
  def add_h1(id = nil, **opts, &block)
@@ -7,7 +7,7 @@ module DrawioDsl
7
7
  def random(**opts)
8
8
  case rand(44)
9
9
  when 0
10
- line(**opts)
10
+ solid(**opts)
11
11
  when 1
12
12
  h1(**opts)
13
13
  when 2
@@ -97,8 +97,8 @@ module DrawioDsl
97
97
  end
98
98
  end
99
99
 
100
- def line(id = nil, **opts, &block)
101
- builder.add_line(id, **opts, &block)
100
+ def solid(id = nil, **opts, &block)
101
+ builder.add_solid(id, **opts, &block)
102
102
  end
103
103
 
104
104
  def h1(id = nil, **opts, &block)
@@ -11,50 +11,60 @@ require_relative 'layouts/layout'
11
11
  require_relative 'layouts/flex_layout'
12
12
  require_relative 'layouts/grid_layout'
13
13
 
14
- require_relative 'shapes/shape'
15
- require_relative 'shapes/line'
16
- require_relative 'shapes/h1'
17
- require_relative 'shapes/h2'
18
- require_relative 'shapes/h3'
19
- require_relative 'shapes/h4'
20
- require_relative 'shapes/h5'
21
- require_relative 'shapes/h6'
22
- require_relative 'shapes/p'
23
- require_relative 'shapes/actor'
24
- require_relative 'shapes/actor2'
25
- require_relative 'shapes/callout'
26
- require_relative 'shapes/callout2'
27
- require_relative 'shapes/callout3'
28
- require_relative 'shapes/callout4'
29
- require_relative 'shapes/circle'
30
- require_relative 'shapes/cloud'
31
- require_relative 'shapes/container'
32
- require_relative 'shapes/container2'
33
- require_relative 'shapes/container3'
34
- require_relative 'shapes/container4'
35
- require_relative 'shapes/cross'
36
- require_relative 'shapes/envelop'
37
- require_relative 'shapes/database'
38
- require_relative 'shapes/db_json'
39
- require_relative 'shapes/diamond'
40
- require_relative 'shapes/document'
41
- require_relative 'shapes/ellipse'
42
- require_relative 'shapes/group'
43
- require_relative 'shapes/hexagon'
44
- require_relative 'shapes/interface'
45
- require_relative 'shapes/klass'
46
- require_relative 'shapes/note'
47
- require_relative 'shapes/process'
48
- require_relative 'shapes/rectangle'
49
- require_relative 'shapes/rectangle2'
50
- require_relative 'shapes/square'
51
- require_relative 'shapes/step'
52
- require_relative 'shapes/tick'
53
- require_relative 'shapes/todo'
54
- require_relative 'shapes/face'
55
- require_relative 'shapes/triangle'
56
- require_relative 'shapes/embed_row'
57
- require_relative 'shapes/embed_col50'
58
- require_relative 'shapes/embed_col200'
14
+ require_relative 'shape'
15
+ require_relative 'element'
16
+ require_relative 'line'
17
+ require_relative 'text'
59
18
 
19
+ # Block elements such as actor, callout, square, circle, etc.
20
+ require_relative 'elements/actor'
21
+ require_relative 'elements/actor2'
22
+ require_relative 'elements/callout'
23
+ require_relative 'elements/callout2'
24
+ require_relative 'elements/callout3'
25
+ require_relative 'elements/callout4'
26
+ require_relative 'elements/circle'
27
+ require_relative 'elements/cloud'
28
+ require_relative 'elements/container'
29
+ require_relative 'elements/container2'
30
+ require_relative 'elements/container3'
31
+ require_relative 'elements/container4'
32
+ require_relative 'elements/cross'
33
+ require_relative 'elements/envelop'
34
+ require_relative 'elements/database'
35
+ require_relative 'elements/db_json'
36
+ require_relative 'elements/diamond'
37
+ require_relative 'elements/document'
38
+ require_relative 'elements/ellipse'
39
+ require_relative 'elements/group'
40
+ require_relative 'elements/hexagon'
41
+ require_relative 'elements/interface'
42
+ require_relative 'elements/klass'
43
+ require_relative 'elements/note'
44
+ require_relative 'elements/process'
45
+ require_relative 'elements/rectangle'
46
+ require_relative 'elements/rectangle2'
47
+ require_relative 'elements/square'
48
+ require_relative 'elements/step'
49
+ require_relative 'elements/tick'
50
+ require_relative 'elements/todo'
51
+ require_relative 'elements/face'
52
+ require_relative 'elements/triangle'
53
+ require_relative 'elements/embed_row'
54
+ require_relative 'elements/embed_col50'
55
+ require_relative 'elements/embed_col200'
56
+
57
+ # Connector lines
58
+ require_relative 'lines/solid'
59
+
60
+ # Text elements such as h1, h2, p, etc.
61
+ require_relative 'texts/h1'
62
+ require_relative 'texts/h2'
63
+ require_relative 'texts/h3'
64
+ require_relative 'texts/h4'
65
+ require_relative 'texts/h5'
66
+ require_relative 'texts/h6'
67
+ require_relative 'texts/p'
68
+
69
+ # Virtual elements have internal uses
60
70
  require_relative 'virtual/anchor'
@@ -35,7 +35,7 @@ module DrawioDsl
35
35
  # Inherit from theme when specific palette options are not specified.
36
36
  @fill_color ||= theme_palette.fill_color
37
37
  @stroke_color ||= theme_palette.stroke_color
38
- @font_color ||= theme_palette.font_color
38
+ @font_color ||= theme_palette.element_font_color
39
39
  @gradient ||= theme_palette.gradient
40
40
  end
41
41
 
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ # Elements represents some kind of shape such as a Square, Circle, Callout, Actor, etc.
6
+ class Element < Shape
7
+ class << self
8
+ def configure_as(key)
9
+ configure_shape(key, :element)
10
+ end
11
+ end
12
+
13
+ def apply_defaults(args)
14
+ super(args)
15
+
16
+ @fill_color = args[:fill_color] || theme_palette.fill_color
17
+ @stroke_color = args[:stroke_color] || theme_palette.stroke_color
18
+ @gradient = args[:gradient] || theme_palette.gradient
19
+ @font_color = args[:font_color] || theme_palette.element_font_color
20
+ end
21
+ end
22
+ end
23
+ end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Face < Shape
6
- configure_shape(:face)
5
+ class Actor < Element
6
+ configure_as(:actor)
7
7
  end
8
8
  end
9
9
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Actor < Shape
6
- configure_shape(:actor)
5
+ class Actor2 < Element
6
+ configure_as(:actor2)
7
7
  end
8
8
  end
9
9
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Circle < Shape
6
- configure_shape(:circle)
5
+ class Callout < Element
6
+ configure_as(:callout)
7
7
  end
8
8
  end
9
9
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Callout < Shape
6
- configure_shape(:callout)
5
+ class Callout2 < Element
6
+ configure_as(:callout2)
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Callout3 < Element
6
+ configure_as(:callout3)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Callout4 < Element
6
+ configure_as(:callout4)
7
+ end
8
+ end
9
+ end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Cross < Shape
6
- configure_shape(:cross)
5
+ class Circle < Element
6
+ configure_as(:circle)
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Cloud < Element
6
+ configure_as(:cloud)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container < Element
6
+ configure_as(:container)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container2 < Element
6
+ configure_as(:container2)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container3 < Element
6
+ configure_as(:container3)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Container4 < Element
6
+ configure_as(:container4)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Cross < Element
6
+ configure_as(:cross)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Database < Element
6
+ configure_as(:database)
7
+ end
8
+ end
9
+ end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Actor2 < Shape
6
- configure_shape(:actor2)
5
+ class DbJson < Element
6
+ configure_as(:db_json)
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Diamond < Element
6
+ configure_as(:diamond)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Document < Element
6
+ configure_as(:document)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Ellipse < Element
6
+ configure_as(:ellipse)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class EmbedCol200 < Element
6
+ configure_as(:embed_col200)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class EmbedCol50 < Element
6
+ configure_as(:embed_col50)
7
+ end
8
+ end
9
+ end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Callout2 < Shape
6
- configure_shape(:callout2)
5
+ class EmbedRow < Element
6
+ configure_as(:embed_row)
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Envelop < Element
6
+ configure_as(:envelop)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Face < Element
6
+ configure_as(:face)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Group < Element
6
+ configure_as(:group)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Hexagon < Element
6
+ configure_as(:hexagon)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Interface < Element
6
+ configure_as(:interface)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Klass < Element
6
+ configure_as(:klass)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Note < Element
6
+ configure_as(:note)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Process < Element
6
+ configure_as(:process)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Rectangle < Element
6
+ configure_as(:rectangle)
7
+ end
8
+ end
9
+ end