drawio_dsl 0.11.3 → 0.11.6

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.
@@ -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