primer_view_components 0.0.86 → 0.0.87

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f85b7d98dc85b59a5312ea5c3c5cfe35c966a1ad495263837032249bc7782d89
4
- data.tar.gz: d4829969cc3672f7e3e492e3179d48f75fe9cd2299fa03b2153b5d2892ed04b4
3
+ metadata.gz: e6bfe00066208f8c4762d50b5df12895b564ef39da4202b625f2250974f8854c
4
+ data.tar.gz: b5ccfedef5c538d1491eca81db4273c67fd549f5737574174074cf89e219c92e
5
5
  SHA512:
6
- metadata.gz: 7270b517ed8032991f97b9369975704fb8596efaf5867f73987b8a0993ef9809df91a4e3673ceb17e29699cb975143ce5644c677ac68149b54e28ada734d2df8
7
- data.tar.gz: e512281e87914e23b3dd7b24c1bd5b1bd89d531e97f733687f872dc8d2bff56079810f5017686af4b84ee7cd05e56e1231d56058a67ccbaca1b0b0ea0c210928
6
+ metadata.gz: 1e3f89321a8c13325ef873074d0ea4e2d880dacd1e06185e3b87af6a2a6ad2a363115e6c85ba4888e134b8f532e1983a8b7c1fe355df139fcd6a93dc0337770d
7
+ data.tar.gz: 70045302ca011ea9c1cd009f7a31a1ea0e41f027198bdb99989f656d2ccd2dfe4d654faad729bbbf60652151fa2e8bfa779492e4f5f72c3b6bc2a5c0d2a8103b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.0.87
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1274](https://github.com/primer/view_components/pull/1274) [`c153f734`](https://github.com/primer/view_components/commit/c153f734a891fc3bc7dfc3bed34630ff38ab39d7) Thanks [@jonrohan](https://github.com/jonrohan)! - Fixing whitespace in rendered LinkComponent
8
+
9
+ * [#1273](https://github.com/primer/view_components/pull/1273) [`f38517ac`](https://github.com/primer/view_components/commit/f38517acf1aed43b27f2c6b94634d70b124883e6) Thanks [@camertron](https://github.com/camertron)! - Revert removal of BlankslateComponent
10
+
11
+ - [#1270](https://github.com/primer/view_components/pull/1270) [`44919308`](https://github.com/primer/view_components/commit/4491930812d16a9bcb5d8f05b4d94e49e469afa5) Thanks [@camertron](https://github.com/camertron)! - Use a custom form builder; introduce primer_form_for
12
+
13
+ * [#1269](https://github.com/primer/view_components/pull/1269) [`9ae9615f`](https://github.com/primer/view_components/commit/9ae9615f31acf43875feb89661cac6311527f9fd) Thanks [@mxriverlynn](https://github.com/mxriverlynn)! - updating component migrator script with improvements in component reference updates, deprecations, etc.
14
+
15
+ - [#1276](https://github.com/primer/view_components/pull/1276) [`759ea56f`](https://github.com/primer/view_components/commit/759ea56f00cbe3e536f4e558a9fb9a3e1b89bf7b) Thanks [@mxriverlynn](https://github.com/mxriverlynn)! - correcting the updates to nav.yml in the component status migrator
16
+
3
17
  ## 0.0.86
4
18
 
5
19
  ### Patch Changes
@@ -6,7 +6,7 @@ module Primer
6
6
 
7
7
  # A text field suitable for use outside a form. For a text field input suitable for use
8
8
  # within an HTML form, see the `Primer::Forms` namespace.
9
- class TextField
9
+ class TextField < Primer::Component
10
10
  status :alpha
11
11
 
12
12
  # @!method initialize
@@ -0,0 +1,25 @@
1
+ <%# erblint:counter ButtonComponentMigrationCounter 1 %>
2
+ <%= render Primer::BaseComponent.new(**@system_arguments) do %>
3
+ <% if spinner.present? %>
4
+ <%= spinner %>
5
+ <% elsif @icon.present? %>
6
+ <%= primer_octicon @icon, size: @icon_size, classes: "blankslate-icon" %>
7
+ <% elsif @image_src.present? && @image_alt.present? %>
8
+ <%= image_tag @image_src.to_s, class: "mb-3", size: "56x56", alt: @image_alt.to_s %>
9
+ <% end %>
10
+ <% if @title.present? %>
11
+ <%= render Primer::BaseComponent.new(tag: @title_tag, mb: 1) do %><%= @title %><% end %>
12
+ <% end %>
13
+ <% if @description.present? %>
14
+ <p><%= @description %></p>
15
+ <% end %>
16
+ <%= content %>
17
+ <% if @button_text.present? && @button_url.present? %>
18
+ <a class="btn <%= @button_classes %>" href="<%= @button_url %>"><%= @button_text %></a>
19
+ <% end %>
20
+ <% if @link_text.present? && @link_url.present? %>
21
+ <p>
22
+ <%= link_to @link_url.to_s do %><%= @link_text %><% end %>
23
+ </p>
24
+ <% end %>
25
+ <% end %>
@@ -1,8 +1,156 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Primer
4
- # BlankslateComponent is deprecated. Please use `Primer::Beta::Blankslate` instead.
5
- class BlankslateComponent < Primer::Beta::Blankslate
4
+ # Use `Blankslate` when there is a lack of content within a page or section. Use as placeholder to tell users why something isn't there.
5
+ # @accessibility
6
+ # `Blankslate` renders an `<h3>` element for the title by default. Update the heading level based on what is appropriate for your page hierarchy by setting `title_tag`.
7
+ # <%= link_to_heading_practices %>
8
+ class BlankslateComponent < Primer::Component
6
9
  status :deprecated
10
+
11
+ # Optional Spinner.
12
+ #
13
+ # @param kwargs [Hash] The same arguments as <%= link_to_component(Primer::SpinnerComponent) %>.
14
+ renders_one :spinner, lambda { |**system_arguments|
15
+ system_arguments[:mb] ||= 3
16
+ Primer::SpinnerComponent.new(**system_arguments)
17
+ }
18
+
19
+ #
20
+ # @example Basic
21
+ # <%= render Primer::BlankslateComponent.new(
22
+ # title: "Title",
23
+ # description: "Description",
24
+ # ) %>
25
+ #
26
+ # @example Icon
27
+ # @description
28
+ # Add an `icon` to give additional context. Refer to the [Octicons](https://primer.style/octicons/) documentation to choose an icon.
29
+ # @code
30
+ # <%= render Primer::BlankslateComponent.new(
31
+ # icon: :globe,
32
+ # title: "Title",
33
+ # description: "Description",
34
+ # ) %>
35
+ #
36
+ # @example Loading
37
+ # @description
38
+ # Add a [SpinnerComponent](https://primer.style/view-components/components/spinner) to the blankslate in place of an icon.
39
+ # @code
40
+ # <%= render Primer::BlankslateComponent.new(
41
+ # title: "Title",
42
+ # description: "Description",
43
+ # ) do |component| %>
44
+ # <% component.spinner(size: :large) %>
45
+ # <% end %>
46
+ #
47
+ # @example Custom content
48
+ # @description
49
+ # Pass custom content as a block in place of `description`.
50
+ # @code
51
+ # <%= render Primer::BlankslateComponent.new(
52
+ # title: "Title",
53
+ # ) do %>
54
+ # <em>Your custom content here</em>
55
+ # <% end %>
56
+ #
57
+ # @example Action button
58
+ # @description
59
+ # Provide a button to guide users to take action from the blankslate. The button appears below the description and custom content.
60
+ # @code
61
+ # <%= render Primer::BlankslateComponent.new(
62
+ # icon: :book,
63
+ # title: "Welcome to the mona wiki!",
64
+ # description: "Wikis provide a place in your repository to lay out the roadmap of your project, show the current status, and document software better, together.",
65
+ #
66
+ # button_text: "Create the first page",
67
+ # button_url: "https://github.com/monalisa/mona/wiki/_new",
68
+ # ) %>
69
+ #
70
+ # @example Link
71
+ # @description
72
+ # Add an additional link to help users learn more about a feature. The link will be shown at the very bottom:
73
+ # @code
74
+ # <%= render Primer::BlankslateComponent.new(
75
+ # icon: :book,
76
+ # title: "Welcome to the mona wiki!",
77
+ # description: "Wikis provide a place in your repository to lay out the roadmap of your project, show the current status, and document software better, together.",
78
+ # link_text: "Learn more about wikis",
79
+ # link_url: "https://docs.github.com/en/github/building-a-strong-community/about-wikis",
80
+ # ) %>
81
+ #
82
+ # @example Variations
83
+ # @description
84
+ # There are a few variations of how the Blankslate appears: `narrow` adds a maximum width, `large` increases the font size, and `spacious` adds extra padding.
85
+ # @code
86
+ # <%= render Primer::BlankslateComponent.new(
87
+ # icon: :book,
88
+ # title: "Welcome to the mona wiki!",
89
+ # description: "Wikis provide a place in your repository to lay out the roadmap of your project, show the current status, and document software better, together.",
90
+ # narrow: true,
91
+ # large: true,
92
+ # spacious: true,
93
+ # ) %>
94
+ #
95
+ # @param title [String] Text that appears in a larger bold font.
96
+ # @param title_tag [Symbol] HTML tag to use for title.
97
+ # @param icon [Symbol] Octicon icon to use at top of component.
98
+ # @param icon_size [Symbol] <%= one_of(Primer::OcticonComponent::SIZE_MAPPINGS, sort: false) %>
99
+ # @param image_src [String] Image to display.
100
+ # @param image_alt [String] Alt text for image.
101
+ # @param description [String] Text that appears below the title. Typically a whole sentence.
102
+ # @param button_text [String] The text of the button.
103
+ # @param button_url [String] The URL where the user will be taken after clicking the button.
104
+ # @param button_classes [String] Classes to apply to action button
105
+ # @param link_text [String] The text of the link.
106
+ # @param link_url [String] The URL where the user will be taken after clicking the link.
107
+ # @param narrow [Boolean] Adds a maximum width.
108
+ # @param large [Boolean] Increases the font size.
109
+ # @param spacious [Boolean] Adds extra padding.
110
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
111
+ def initialize(
112
+ title: "",
113
+ title_tag: :h3,
114
+ icon: "",
115
+ icon_size: :medium,
116
+ image_src: "",
117
+ image_alt: " ",
118
+ description: "",
119
+ button_text: "",
120
+ button_url: "",
121
+ button_classes: "btn-primary my-3",
122
+ link_text: "",
123
+ link_url: "",
124
+
125
+ # variations
126
+ narrow: false,
127
+ large: false,
128
+ spacious: false,
129
+
130
+ **system_arguments
131
+ )
132
+ @system_arguments = system_arguments
133
+ @system_arguments[:tag] = :div
134
+ @system_arguments[:classes] = class_names(
135
+ @system_arguments[:classes],
136
+ "blankslate",
137
+ "blankslate-narrow": narrow,
138
+ "blankslate-large": large,
139
+ "blankslate-spacious": spacious
140
+ )
141
+
142
+ @title_tag = title_tag
143
+ @icon = icon
144
+ @icon_size = icon_size
145
+ @image_src = image_src
146
+ @image_alt = image_alt
147
+ @title = title
148
+ @description = description
149
+ @button_text = button_text
150
+ @button_url = button_url
151
+ @button_classes = button_classes
152
+ @link_text = link_text
153
+ @link_url = link_url
154
+ end
7
155
  end
8
156
  end
@@ -79,5 +79,19 @@ module Primer
79
79
  def before_render
80
80
  raise ArgumentError, "href is required when using <a> tag" if @system_arguments[:tag] == :a && @system_arguments[:href].nil? && !Rails.env.production?
81
81
  end
82
+
83
+ def call
84
+ if tooltip.present?
85
+ render Primer::BaseComponent.new(tag: :span, position: :relative) do
86
+ render(Primer::BaseComponent.new(**@system_arguments)) do
87
+ content
88
+ end.to_s + tooltip.to_s
89
+ end
90
+ else
91
+ render(Primer::BaseComponent.new(**@system_arguments)) do
92
+ content
93
+ end
94
+ end
95
+ end
82
96
  end
83
97
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ # :nodoc:
5
+ module FormHelper
6
+ def primer_form_with(**kwargs, &block)
7
+ form_with(**kwargs, skip_default_ids: false, builder: Primer::Forms::Builder, &block)
8
+ end
9
+ end
10
+ end
@@ -17,7 +17,7 @@ module Primer
17
17
  end
18
18
 
19
19
  def call
20
- builder = ActionView::Helpers::FormBuilder.new(
20
+ builder = Primer::Forms::Builder.new(
21
21
  nil, nil, __vc_original_view_context, {}
22
22
  )
23
23
 
@@ -28,7 +28,7 @@ module Primer
28
28
  &@block
29
29
  )
30
30
 
31
- input.render_in(__vc_original_view_context) { content }
31
+ input.to_component.render_in(__vc_original_view_context) { content }
32
32
  end
33
33
  end
34
34
  end
@@ -1,6 +1,6 @@
1
1
  <%= render(SpacingWrapper.new) do %>
2
2
  <% inputs.each do |input| %>
3
- <%= render(input) %>
3
+ <%= render(input.to_component) %>
4
4
  <% end %>
5
5
  <% end %>
6
6
  <% if after_content? %>
@@ -17,6 +17,11 @@ module Primer
17
17
  end
18
18
 
19
19
  def new(builder, **options)
20
+ if builder && !builder.is_a?(Primer::Forms::Builder)
21
+ raise ArgumentError, "please pass an instance of Primer::Forms::Builder when "\
22
+ "constructing a form object (consider using the `primer_form_with` helper)"
23
+ end
24
+
20
25
  allocate.tap do |form|
21
26
  form.instance_variable_set(:@builder, builder)
22
27
  form.send(:initialize, **options)
@@ -39,6 +39,10 @@ module Primer
39
39
  false
40
40
  end
41
41
 
42
+ def to_component
43
+ self
44
+ end
45
+
42
46
  private
43
47
 
44
48
  def compile_and_render_template
@@ -16,8 +16,9 @@ module Primer
16
16
  code.dup.tap do |result|
17
17
  parser.var_refs.reverse_each do |lineno, stop|
18
18
  line_offset = line_offsets[lineno]
19
- start = (stop - "@output_buffer".length) + line_offset
20
19
  stop += line_offset
20
+ stop -= 1 if stop < code.length
21
+ start = stop - "@output_buffer".length
21
22
  result[start...stop] = "output_buffer"
22
23
  end
23
24
  end
@@ -39,7 +40,7 @@ module Primer
39
40
  def on_var_ref(var)
40
41
  return unless var == "@output_buffer"
41
42
 
42
- var_refs << [lineno, column - 1]
43
+ var_refs << [lineno, column]
43
44
  end
44
45
 
45
46
  def var_refs
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "primer/classify"
4
+
5
+ module Primer
6
+ module Forms
7
+ # :nodoc:
8
+ class Builder < ActionView::Helpers::FormBuilder
9
+ include Primer::ClassNameHelper
10
+
11
+ UTILITY_KEYS = Primer::Classify::Utilities::UTILITIES.keys.freeze
12
+
13
+ def label(*args, **options, &block)
14
+ super(*args, classify(options), &block)
15
+ end
16
+
17
+ def check_box(*args, **options, &block)
18
+ super(*args, classify(options), &block)
19
+ end
20
+
21
+ def radio_button(*args, **options, &block)
22
+ super(*args, classify(options), &block)
23
+ end
24
+
25
+ def select(*args, **options, &block)
26
+ super(*args, classify(options), &block)
27
+ end
28
+
29
+ def text_field(*args, **options, &block)
30
+ super(*args, classify(options), &block)
31
+ end
32
+
33
+ def text_area(*args, **options, &block)
34
+ super(*args, classify(options), &block)
35
+ end
36
+
37
+ private
38
+
39
+ def classify(options)
40
+ options[:classes] = class_names(options.delete(:class), options[:classes])
41
+ options.merge!(Primer::Classify.call(options))
42
+ options.except!(*UTILITY_KEYS)
43
+ options[:class] = class_names(options[:class], options.delete(:classes))
44
+ options
45
+ end
46
+ end
47
+ end
48
+ end
@@ -6,7 +6,7 @@
6
6
  <% end %>
7
7
  <%= render(SpacingWrapper.new) do %>
8
8
  <% @input.check_boxes.each do |check_box| %>
9
- <%= render(check_box) %>
9
+ <%= render(check_box.to_component) %>
10
10
  <% end %>
11
11
  <% end %>
12
12
  </fieldset>
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "primer/classify"
4
-
5
3
  module Primer
6
4
  module Forms
7
5
  module Dsl
@@ -16,8 +14,6 @@ module Primer
16
14
  }.freeze
17
15
  SIZE_OPTIONS = SIZE_MAPPINGS.keys
18
16
 
19
- UTILITY_KEYS = Primer::Classify::Utilities::UTILITIES.keys.freeze
20
-
21
17
  include Primer::ClassNameHelper
22
18
 
23
19
  attr_reader :builder, :form, :input_arguments, :label_arguments, :caption, :validation_message, :ids
@@ -27,14 +23,11 @@ module Primer
27
23
  @form = form
28
24
 
29
25
  @input_arguments = system_arguments
30
- process_classes!(@input_arguments)
31
-
32
26
  @label_arguments = @input_arguments.delete(:label_arguments) || {}
33
- process_classes!(@label_arguments)
34
27
 
35
28
  @label_arguments[:class] = class_names(
36
29
  @label_arguments[:class],
37
- @input_arguments.fetch(:visually_hide_label, true) ? "sr-only" : nil
30
+ @input_arguments.fetch(:visually_hide_label, false) ? "sr-only" : nil
38
31
  )
39
32
 
40
33
  @input_arguments.delete(:visually_hide_label)
@@ -207,23 +200,8 @@ module Primer
207
200
  true
208
201
  end
209
202
 
210
- # Avoid using Rails delegation here for performance reasons
211
- # rubocop:disable Rails/Delegate
212
- def render_in(view_context)
213
- to_component.render_in(view_context)
214
- end
215
- # rubocop:enable Rails/Delegate
216
-
217
203
  private
218
204
 
219
- def process_classes!(args)
220
- args[:classes] = class_names(args.delete(:class), args[:classes])
221
- args.merge!(Primer::Classify.call(args))
222
- args[:class] = class_names(args[:class], args.delete(:classes))
223
- args.except!(*UTILITY_KEYS)
224
- args
225
- end
226
-
227
205
  def input_data
228
206
  @input_arguments[:data] ||= {}
229
207
  end
@@ -28,13 +28,6 @@ module Primer
28
28
  def input?
29
29
  true
30
30
  end
31
-
32
- # Avoid using Rails delegation here for performance reasons
33
- # rubocop:disable Rails/Delegate
34
- def render_in(view_context)
35
- to_component.render_in(view_context)
36
- end
37
- # rubocop:enable Rails/Delegate
38
31
  end
39
32
  end
40
33
  end
@@ -1,5 +1,5 @@
1
1
  <%= content_tag_if(horizontal?, :div, class: "d-flex", style: "gap: 15px;") do %>
2
2
  <% @inputs.each do |input| %>
3
- <%= render(input) %>
3
+ <%= render(input.to_component) %>
4
4
  <% end %>
5
5
  <% end %>
@@ -1,3 +1,3 @@
1
1
  <% @input.inputs.each do |child_input| %>
2
- <%= render(child_input) %>
2
+ <%= render(child_input.to_component) %>
3
3
  <% end %>
@@ -15,6 +15,7 @@ module Primer
15
15
 
16
16
  config.eager_load_paths = %W[
17
17
  #{root}/app/components
18
+ #{root}/app/helpers
18
19
  #{root}/app/lib
19
20
  ]
20
21
 
@@ -39,6 +40,16 @@ module Primer
39
40
  end
40
41
  end
41
42
 
43
+ initializer "primer.forms.helpers" do
44
+ ActiveSupport.on_load :action_controller do
45
+ require "primer/form_helper"
46
+ helper Primer::FormHelper
47
+
48
+ # make primer_form_with available to view components also
49
+ ViewComponent::Base.prepend(Primer::FormHelper)
50
+ end
51
+ end
52
+
42
53
  initializer "primer_view_components.zeitwerk_ignore" do
43
54
  Rails.autoloaders.each do |autoloader|
44
55
  autoloader.ignore(Engine.root.join("lib", "primer", "view_components", "linters.rb"))
@@ -5,7 +5,7 @@ module Primer
5
5
  module VERSION
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 86
8
+ PATCH = 87
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH].join(".")
11
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: primer_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.86
4
+ version: 0.0.87
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Open Source
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-02 00:00:00.000000000 Z
11
+ date: 2022-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 2.0.0
61
+ version: 2.57.0
62
62
  - - "<"
63
63
  - !ruby/object:Gem::Version
64
64
  version: '3.0'
@@ -68,7 +68,7 @@ dependencies:
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: 2.0.0
71
+ version: 2.57.0
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '3.0'
@@ -450,6 +450,7 @@ files:
450
450
  - app/components/primer/beta/text.rb
451
451
  - app/components/primer/beta/truncate.html.erb
452
452
  - app/components/primer/beta/truncate.rb
453
+ - app/components/primer/blankslate_component.html.erb
453
454
  - app/components/primer/blankslate_component.rb
454
455
  - app/components/primer/border_box_component.rb
455
456
  - app/components/primer/box_component.rb
@@ -497,7 +498,6 @@ files:
497
498
  - app/components/primer/label_component.rb
498
499
  - app/components/primer/layout_component.html.erb
499
500
  - app/components/primer/layout_component.rb
500
- - app/components/primer/link_component.html.erb
501
501
  - app/components/primer/link_component.rb
502
502
  - app/components/primer/local_time.d.ts
503
503
  - app/components/primer/local_time.js
@@ -536,6 +536,7 @@ files:
536
536
  - app/components/primer/timeline_item_component.rb
537
537
  - app/components/primer/tooltip.rb
538
538
  - app/components/primer/truncate.rb
539
+ - app/helpers/primer/form_helper.rb
539
540
  - app/lib/primer/audited/dsl.rb
540
541
  - app/lib/primer/class_name_helper.rb
541
542
  - app/lib/primer/fetch_or_fallback_helper.rb
@@ -557,6 +558,7 @@ files:
557
558
  - lib/primer/forms/base.rb
558
559
  - lib/primer/forms/base_component.rb
559
560
  - lib/primer/forms/buffer_rewriter.rb
561
+ - lib/primer/forms/builder.rb
560
562
  - lib/primer/forms/caption.html.erb
561
563
  - lib/primer/forms/caption.rb
562
564
  - lib/primer/forms/check_box.html.erb
@@ -1,12 +0,0 @@
1
- <% if tooltip.present? %>
2
- <%= render Primer::BaseComponent.new(tag: :span, position: :relative) do %>
3
- <%= render Primer::BaseComponent.new(**@system_arguments) do %>
4
- <% content %>
5
- <% end %>
6
- <%= tooltip %>
7
- <% end %>
8
- <% else %>
9
- <%= render Primer::BaseComponent.new(**@system_arguments) do %>
10
- <% content %>
11
- <% end %>
12
- <% end %>