drawio_dsl 0.11.3 → 0.11.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,13 +5,13 @@ module DrawioDsl
5
5
  # :nocov:
6
6
  module DrawioShapes
7
7
  def random(**opts)
8
- case rand(54)
8
+ case rand(57)
9
9
  when 0
10
10
  solid(**opts)
11
11
  when 1
12
- dashed(**opts)
12
+ dash(**opts)
13
13
  when 2
14
- dotted(**opts)
14
+ dot(**opts)
15
15
  when 3
16
16
  dash_dot(**opts)
17
17
  when 4
@@ -23,96 +23,102 @@ module DrawioDsl
23
23
  when 7
24
24
  dash_long_dash(**opts)
25
25
  when 8
26
- dashed24(**opts)
26
+ dash24(**opts)
27
27
  when 9
28
- dashed32(**opts)
28
+ dash32(**opts)
29
29
  when 10
30
- dashed44(**opts)
30
+ dash44(**opts)
31
31
  when 11
32
- h1(**opts)
32
+ double(**opts)
33
33
  when 12
34
- h2(**opts)
34
+ double_dash(**opts)
35
35
  when 13
36
- h3(**opts)
36
+ double_dot(**opts)
37
37
  when 14
38
- h4(**opts)
38
+ h1(**opts)
39
39
  when 15
40
- h5(**opts)
40
+ h2(**opts)
41
41
  when 16
42
- h6(**opts)
42
+ h3(**opts)
43
43
  when 17
44
- p(**opts)
44
+ h4(**opts)
45
45
  when 18
46
- actor(**opts)
46
+ h5(**opts)
47
47
  when 19
48
- actor2(**opts)
48
+ h6(**opts)
49
49
  when 20
50
- callout(**opts)
50
+ p(**opts)
51
51
  when 21
52
- callout2(**opts)
52
+ actor(**opts)
53
53
  when 22
54
- callout3(**opts)
54
+ actor2(**opts)
55
55
  when 23
56
- callout4(**opts)
56
+ callout(**opts)
57
57
  when 24
58
- circle(**opts)
58
+ callout2(**opts)
59
59
  when 25
60
- cloud(**opts)
60
+ callout3(**opts)
61
61
  when 26
62
- container(**opts)
62
+ callout4(**opts)
63
63
  when 27
64
- container2(**opts)
64
+ circle(**opts)
65
65
  when 28
66
- container3(**opts)
66
+ cloud(**opts)
67
67
  when 29
68
- container4(**opts)
68
+ container(**opts)
69
69
  when 30
70
- cross(**opts)
70
+ container2(**opts)
71
71
  when 31
72
- envelop(**opts)
72
+ container3(**opts)
73
73
  when 32
74
- database(**opts)
74
+ container4(**opts)
75
75
  when 33
76
- db_json(**opts)
76
+ cross(**opts)
77
77
  when 34
78
- diamond(**opts)
78
+ envelop(**opts)
79
79
  when 35
80
- document(**opts)
80
+ database(**opts)
81
81
  when 36
82
- ellipse(**opts)
82
+ db_json(**opts)
83
83
  when 37
84
- group(**opts)
84
+ diamond(**opts)
85
85
  when 38
86
- hexagon(**opts)
86
+ document(**opts)
87
87
  when 39
88
- interface(**opts)
88
+ ellipse(**opts)
89
89
  when 40
90
- klass(**opts)
90
+ group(**opts)
91
91
  when 41
92
- note(**opts)
92
+ hexagon(**opts)
93
93
  when 42
94
- process(**opts)
94
+ interface(**opts)
95
95
  when 43
96
- rectangle(**opts)
96
+ klass(**opts)
97
97
  when 44
98
- rectangle2(**opts)
98
+ note(**opts)
99
99
  when 45
100
- square(**opts)
100
+ process(**opts)
101
101
  when 46
102
- step(**opts)
102
+ rectangle(**opts)
103
103
  when 47
104
- tick(**opts)
104
+ rectangle2(**opts)
105
105
  when 48
106
- todo(**opts)
106
+ square(**opts)
107
107
  when 49
108
- face(**opts)
108
+ step(**opts)
109
109
  when 50
110
- triangle(**opts)
110
+ tick(**opts)
111
111
  when 51
112
- embed_row(**opts)
112
+ todo(**opts)
113
113
  when 52
114
- embed_col50(**opts)
114
+ face(**opts)
115
115
  when 53
116
+ triangle(**opts)
117
+ when 54
118
+ embed_row(**opts)
119
+ when 55
120
+ embed_col50(**opts)
121
+ when 56
116
122
  embed_col200(**opts)
117
123
  end
118
124
  end
@@ -121,12 +127,12 @@ module DrawioDsl
121
127
  builder.add_solid(id, **opts, &block)
122
128
  end
123
129
 
124
- def dashed(id = nil, **opts, &block)
125
- builder.add_dashed(id, **opts, &block)
130
+ def dash(id = nil, **opts, &block)
131
+ builder.add_dash(id, **opts, &block)
126
132
  end
127
133
 
128
- def dotted(id = nil, **opts, &block)
129
- builder.add_dotted(id, **opts, &block)
134
+ def dot(id = nil, **opts, &block)
135
+ builder.add_dot(id, **opts, &block)
130
136
  end
131
137
 
132
138
  def dash_dot(id = nil, **opts, &block)
@@ -149,16 +155,28 @@ module DrawioDsl
149
155
  builder.add_dash_long_dash(id, **opts, &block)
150
156
  end
151
157
 
152
- def dashed24(id = nil, **opts, &block)
153
- builder.add_dashed24(id, **opts, &block)
158
+ def dash24(id = nil, **opts, &block)
159
+ builder.add_dash24(id, **opts, &block)
160
+ end
161
+
162
+ def dash32(id = nil, **opts, &block)
163
+ builder.add_dash32(id, **opts, &block)
164
+ end
165
+
166
+ def dash44(id = nil, **opts, &block)
167
+ builder.add_dash44(id, **opts, &block)
168
+ end
169
+
170
+ def double(id = nil, **opts, &block)
171
+ builder.add_double(id, **opts, &block)
154
172
  end
155
173
 
156
- def dashed32(id = nil, **opts, &block)
157
- builder.add_dashed32(id, **opts, &block)
174
+ def double_dash(id = nil, **opts, &block)
175
+ builder.add_double_dash(id, **opts, &block)
158
176
  end
159
177
 
160
- def dashed44(id = nil, **opts, &block)
161
- builder.add_dashed44(id, **opts, &block)
178
+ def double_dot(id = nil, **opts, &block)
179
+ builder.add_double_dot(id, **opts, &block)
162
180
  end
163
181
 
164
182
  def h1(id = nil, **opts, &block)
@@ -11,6 +11,7 @@ require_relative 'layouts/layout'
11
11
  require_relative 'layouts/flex_layout'
12
12
  require_relative 'layouts/grid_layout'
13
13
 
14
+ require_relative 'style_builder'
14
15
  require_relative 'shape'
15
16
  require_relative 'element'
16
17
  require_relative 'line'
@@ -56,16 +57,19 @@ require_relative 'elements/embed_col200'
56
57
 
57
58
  # Connector lines
58
59
  require_relative 'lines/solid'
59
- require_relative 'lines/dashed'
60
- require_relative 'lines/dotted'
60
+ require_relative 'lines/dash'
61
+ require_relative 'lines/dot'
61
62
  require_relative 'lines/dash_dot'
62
63
  require_relative 'lines/dash_dot_dot'
63
64
  require_relative 'lines/dot_dot_dot'
64
65
  require_relative 'lines/long_dash'
65
66
  require_relative 'lines/dash_long_dash'
66
- require_relative 'lines/dashed24'
67
- require_relative 'lines/dashed32'
68
- require_relative 'lines/dashed44'
67
+ require_relative 'lines/dash24'
68
+ require_relative 'lines/dash32'
69
+ require_relative 'lines/dash44'
70
+ require_relative 'lines/double'
71
+ require_relative 'lines/double_dash'
72
+ require_relative 'lines/double_dot'
69
73
 
70
74
  # Text elements such as h1, h2, p, etc.
71
75
  require_relative 'texts/h1'
@@ -14,9 +14,8 @@ module DrawioDsl
14
14
  # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
15
15
  def initialize(**args)
16
16
  @host = args[:host] || SecureRandom.alphanumeric(3)
17
- # TODO: assess and resolve this inconsistency
18
- @theme = args[:theme] || KConfig.configuration.drawio.theme.random_background_key
19
- @bg_theme = args[:bg_theme] || :not_set
17
+ @theme = args[:theme] || :style_02
18
+ @bg_theme = args[:bg_theme] || :snow
20
19
 
21
20
  @style = DrawioDsl::Schema::CommonStyle.new(**args) do
22
21
  default_style = KConfig.configuration.drawio.base_style
@@ -6,27 +6,40 @@ module DrawioDsl
6
6
  class Line < Shape
7
7
  class << self
8
8
  attr_reader :default_stroke
9
+ attr_reader :default_design
10
+ attr_reader :default_waypoint
9
11
 
10
- def configure_as(key, stroke: nil)
12
+ def configure_as(key, stroke: nil, design: nil, waypoint: :straight)
11
13
  configure_shape(key, :line)
14
+
12
15
  @default_stroke = stroke
16
+ @default_design = design
17
+ @default_waypoint = waypoint
13
18
  end
14
19
  end
15
20
 
16
21
  attr_accessor :source
17
22
  attr_accessor :target
18
- attr_accessor :c1 # compass_point1 = :n, :ne, :e, :se, :s, :sw, :w, :nw
19
- attr_accessor :c2 # compass_point2 = :n, :ne, :e, :se, :s, :sw, :w, :nw
23
+ attr_accessor :exit_point # compass_point1 = :n, :ne, :e, :se, :s, :sw, :w, :nw
24
+ attr_accessor :entry_point # compass_point2 = :n, :ne, :e, :se, :s, :sw, :w, :nw
25
+ attr_accessor :start_arrow
26
+ attr_accessor :end_arrow
20
27
  attr_accessor :stroke
28
+ attr_accessor :design
29
+ attr_accessor :waypoint
21
30
 
22
31
  def apply_defaults(args)
23
32
  super(args)
24
33
 
25
34
  @source = args[:source]
26
35
  @target = args[:target]
27
- @c1 = args[:c1] || :nw
28
- @c2 = args[:c2] || :ne
36
+ @exit_point = args[:exit_point] || args[:start_point] || :nw
37
+ @entry_point = args[:entry_point] || args[:end_point] || :ne
38
+ @start_arrow = args[:start_arrow] || :none
39
+ @end_arrow = args[:end_arrow] || :simple
29
40
  @stroke = args[:stroke] || self.class.default_stroke
41
+ @design = args[:design] || self.class.default_design
42
+ @waypoint = args[:waypoint] || self.class.default_waypoint || :straight
30
43
  @fill_color = args[:fill_color] || theme_palette.fill_color
31
44
  @stroke_color = args[:stroke_color] || theme_palette.stroke_color
32
45
  end
@@ -35,10 +48,16 @@ module DrawioDsl
35
48
  KConfig.configuration.drawio.shape.default_line
36
49
  end
37
50
 
38
- def base_modifiers
39
- return @base_modifiers if defined? @base_modifiers
51
+ def add_base_modifiers
52
+ cfg = KConfig.configuration.drawio
40
53
 
41
- @base_modifiers = KConfig.configuration.drawio.stroke(stroke)
54
+ @style_builder.add(cfg.stroke(stroke))
55
+ @style_builder.add(cfg.connector.waypoint(waypoint))
56
+ @style_builder.add(cfg.connector.design(design))
57
+ @style_builder.add(cfg.connector.compass_point(exit_point).exit_modifiers)
58
+ @style_builder.add(cfg.connector.compass_point(entry_point).entry_modifiers)
59
+ @style_builder.add(cfg.connector.arrow(start_arrow).start_modifiers)
60
+ @style_builder.add(cfg.connector.arrow(end_arrow).end_modifiers)
42
61
  end
43
62
  end
44
63
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module DrawioDsl
4
4
  module Schema
5
- class Dashed < Line
6
- configure_as(:dashed, stroke: :dashed)
5
+ class Dash < Line
6
+ configure_as(:dash, stroke: :dash)
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 Dotted < Line
6
- configure_as(:dotted, stroke: :dotted)
5
+ class Dash24 < Line
6
+ configure_as(:dash24, stroke: :dash24)
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 Dashed32 < Line
6
- configure_as(:dashed32, stroke: :dashed32)
5
+ class Dash32 < Line
6
+ configure_as(:dash32, stroke: :dash32)
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 Dashed44 < Line
6
- configure_as(:dashed44, stroke: :dashed44)
5
+ class Dash44 < Line
6
+ configure_as(:dash44, stroke: :dash44)
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 Dot < Line
6
+ configure_as(:dot, stroke: :dot)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class Double < Line
6
+ configure_as(:double, design: :double)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class DoubleDash < Line
6
+ configure_as(:double_dash, stroke: :dash, design: :double)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ class DoubleDot < Line
6
+ configure_as(:double_dot, stroke: :dot, design: :double)
7
+ end
8
+ end
9
+ end
@@ -52,6 +52,8 @@ module DrawioDsl
52
52
  args[:classification] = :shape
53
53
  super(page, **args)
54
54
 
55
+ @style_builder = DrawioDsl::Schema::StyleBuilder.new
56
+
55
57
  apply_defaults(args)
56
58
 
57
59
  instance_eval(&block) if block_given?
@@ -80,7 +82,7 @@ module DrawioDsl
80
82
  @y = args[:y] || shape_defaults.y
81
83
  @w = args[:w] || shape_defaults.w
82
84
  @h = args[:h] || shape_defaults.h
83
- @style_modifiers = args[:style_modifiers] || shape_defaults.style_modifiers
85
+ @style_modifiers = args[:style_modifiers] || shape_defaults.style_modifiers || ''
84
86
  end
85
87
 
86
88
  def format(key = nil)
@@ -89,21 +91,40 @@ module DrawioDsl
89
91
  end
90
92
 
91
93
  def style
92
- key_values = []
93
- key_values << "whiteSpace=#{white_space}" if white_space
94
- key_values << "html=#{html}" if html
95
- key_values << "rounded=#{rounded}" if rounded
96
- key_values << "shadow=#{shadow}" if shadow
97
- key_values << "sketch=#{sketch}" if sketch
98
- key_values << "glass=#{glass}" if glass
99
- key_values << "fillColor=#{fill_color}" if fill_color
100
- key_values << "strokeColor=#{stroke_color}" if stroke_color
101
- key_values << "fontColor=#{font_color}" if font_color
102
- key_values << "gradient=#{gradient}" if gradient
103
- key_values << base_modifiers unless base_modifiers.empty?
104
- key_values << style_modifiers unless style_modifiers.empty?
105
-
106
- key_values.join(';')
94
+ return @style if defined? @style
95
+
96
+ # key_values = []
97
+ # key_values << "whiteSpace=#{white_space}" if white_space
98
+ # key_values << "html=#{html}" if html
99
+ # key_values << "rounded=#{rounded}" if rounded
100
+ # key_values << "shadow=#{shadow}" if shadow
101
+ # key_values << "sketch=#{sketch}" if sketch
102
+ # key_values << "glass=#{glass}" if glass
103
+ # key_values << "fillColor=#{fill_color}" if fill_color
104
+ # key_values << "strokeColor=#{stroke_color}" if stroke_color
105
+ # key_values << "fontColor=#{font_color}" if font_color
106
+ # key_values << "gradient=#{gradient}" if gradient
107
+
108
+ add_base_modifiers
109
+
110
+ @style_builder.add_kv('whiteSpace', white_space) if white_space
111
+ @style_builder.add_kv('html', html) if html
112
+ @style_builder.add_kv('rounded', rounded) if rounded
113
+ @style_builder.add_kv('shadow', shadow) if shadow
114
+ @style_builder.add_kv('sketch', sketch) if sketch
115
+ @style_builder.add_kv('glass', glass) if glass
116
+ @style_builder.add_kv('fillColor', fill_color) if fill_color
117
+ @style_builder.add_kv('strokeColor', stroke_color) if stroke_color
118
+ @style_builder.add_kv('fontColor', font_color) if font_color
119
+ @style_builder.add_kv('gradient', gradient) if gradient
120
+ @style_builder.add(style_modifiers)
121
+
122
+ # key_values << base_modifiers unless base_modifiers.empty?
123
+ # key_values << style_modifiers unless style_modifiers.empty?
124
+ # @style_builder.add(style_modifiers) unless style_modifiers.empty?
125
+
126
+ # key_values.join(';')
127
+ @style = @style_builder.style
107
128
  end
108
129
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
109
130
 
@@ -142,9 +163,7 @@ module DrawioDsl
142
163
  result
143
164
  end
144
165
 
145
- def base_modifiers
146
- @base_modifiers ||= ''
147
- end
166
+ def add_base_modifiers; end
148
167
 
149
168
  def theme_palette
150
169
  @theme_palette ||= KConfig.configuration.drawio.theme.element(theme)
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ module Schema
5
+ # Build the style attribute for shape elements
6
+ #
7
+ # Requirements:
8
+ # Need to be able to take a string and break it up into style parts
9
+ # A style part is usually a lowerCamel equals value pair (e.g. fontSize=12)
10
+ # but sometimes it is just a singular value, (e.g. ellipse)
11
+ # A string may also contain more then one style part separated by semi-colons
12
+ # e.g. overflow=fill;fontSize=12;fontFamily=Helvetica
13
+ #
14
+ # The purpose of this class is to build a style attribute with unique values and
15
+ # to take inputs from either single key/value pairs or string following the
16
+ # pattern previously described.
17
+ class StyleBuilder
18
+ def initialize
19
+ @style_parts = []
20
+ end
21
+
22
+ def add(value)
23
+ return if value.nil?
24
+
25
+ if value.is_a?(Symbol)
26
+ set(value)
27
+ return
28
+ end
29
+
30
+ value.split(';') do |v|
31
+ kv = v.to_s.split('=')
32
+
33
+ if kv.length == 1
34
+ set(v.to_s)
35
+ else
36
+ set_kv(kv[0], kv[1])
37
+ end
38
+ end
39
+ end
40
+
41
+ def add_kv(key, value)
42
+ key = camel_case_lower(key) if key.is_a?(Symbol)
43
+
44
+ set_kv(key, value)
45
+ end
46
+
47
+ def style
48
+ @style_parts.join(';')
49
+ end
50
+
51
+ # def style_attribute
52
+ # style_value = style
53
+ # style_value.empty? ? nil : " style=\"#{style_value}\""
54
+ # end
55
+
56
+ private
57
+
58
+ def camel_case_lower(key)
59
+ key.to_s.split('_').inject([]) { |buffer, e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
60
+ end
61
+
62
+ def set(value)
63
+ value = value.to_s.strip
64
+ index = @style_parts.index { |part| part == value }
65
+
66
+ @style_parts << value if index.nil?
67
+ end
68
+
69
+ def set_kv(key, value)
70
+ key = key.to_s.strip
71
+ value = value.to_s.strip
72
+ index = @style_parts.index { |part| part.start_with?("#{key}=") }
73
+
74
+ if index.nil?
75
+ @style_parts << "#{key}=#{value}"
76
+ else
77
+ @style_parts[index] = "#{key}=#{value}"
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DrawioDsl
4
- VERSION = '0.11.3'
4
+ VERSION = '0.11.6'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.11.3",
3
+ "version": "0.11.6",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "drawio_dsl",
9
- "version": "0.11.3",
9
+ "version": "0.11.6",
10
10
  "devDependencies": {
11
11
  "@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
12
12
  "@semantic-release/changelog": "^6.0.1",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drawio_dsl",
3
- "version": "0.11.3",
3
+ "version": "0.11.6",
4
4
  "description": "DrawIO DSL can build DrawIO diagrams using a Domain Specific Language",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drawio_dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.3
4
+ version: 0.11.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-28 00:00:00.000000000 Z
11
+ date: 2022-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k_config
@@ -347,21 +347,25 @@ files:
347
347
  - lib/drawio_dsl/schema/layouts/grid_layout.rb
348
348
  - lib/drawio_dsl/schema/layouts/layout.rb
349
349
  - lib/drawio_dsl/schema/line.rb
350
+ - lib/drawio_dsl/schema/lines/dash.rb
351
+ - lib/drawio_dsl/schema/lines/dash24.rb
352
+ - lib/drawio_dsl/schema/lines/dash32.rb
353
+ - lib/drawio_dsl/schema/lines/dash44.rb
350
354
  - lib/drawio_dsl/schema/lines/dash_dot.rb
351
355
  - lib/drawio_dsl/schema/lines/dash_dot_dot.rb
352
356
  - lib/drawio_dsl/schema/lines/dash_long_dash.rb
353
- - lib/drawio_dsl/schema/lines/dashed.rb
354
- - lib/drawio_dsl/schema/lines/dashed24.rb
355
- - lib/drawio_dsl/schema/lines/dashed32.rb
356
- - lib/drawio_dsl/schema/lines/dashed44.rb
357
+ - lib/drawio_dsl/schema/lines/dot.rb
357
358
  - lib/drawio_dsl/schema/lines/dot_dot_dot.rb
358
- - lib/drawio_dsl/schema/lines/dotted.rb
359
+ - lib/drawio_dsl/schema/lines/double.rb
360
+ - lib/drawio_dsl/schema/lines/double_dash.rb
361
+ - lib/drawio_dsl/schema/lines/double_dot.rb
359
362
  - lib/drawio_dsl/schema/lines/long_dash.rb
360
363
  - lib/drawio_dsl/schema/lines/solid.rb
361
364
  - lib/drawio_dsl/schema/node.rb
362
365
  - lib/drawio_dsl/schema/node_list.rb
363
366
  - lib/drawio_dsl/schema/page.rb
364
367
  - lib/drawio_dsl/schema/shape.rb
368
+ - lib/drawio_dsl/schema/style_builder.rb
365
369
  - lib/drawio_dsl/schema/text.rb
366
370
  - lib/drawio_dsl/schema/texts/h1.rb
367
371
  - lib/drawio_dsl/schema/texts/h2.rb