primer_view_components 0.0.110 → 0.0.112

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -0
  3. data/app/assets/javascripts/primer_view_components.js +1 -1
  4. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  5. data/app/assets/styles/primer_view_components.css +1 -1
  6. data/app/assets/styles/primer_view_components.css.map +1 -1
  7. data/app/components/primer/alpha/action_list/item.rb +2 -2
  8. data/app/components/primer/alpha/auto_complete.css +1 -0
  9. data/app/components/primer/alpha/auto_complete.css.json +1 -0
  10. data/app/components/primer/alpha/auto_complete.css.map +1 -0
  11. data/app/components/primer/alpha/auto_complete.pcss +118 -0
  12. data/app/components/primer/alpha/banner.css +1 -1
  13. data/app/components/primer/alpha/banner.css.map +1 -1
  14. data/app/components/primer/alpha/banner.pcss +2 -3
  15. data/app/components/primer/alpha/button_marketing.css +1 -0
  16. data/app/components/primer/alpha/button_marketing.css.json +1 -0
  17. data/app/components/primer/alpha/button_marketing.css.map +1 -0
  18. data/app/components/primer/alpha/button_marketing.pcss +175 -0
  19. data/app/components/primer/{dropdown → alpha/dropdown}/menu.d.ts +0 -0
  20. data/app/components/primer/{dropdown → alpha/dropdown}/menu.html.erb +0 -0
  21. data/app/components/primer/{dropdown → alpha/dropdown}/menu.js +0 -0
  22. data/app/components/primer/alpha/dropdown/menu.rb +105 -0
  23. data/app/components/primer/{dropdown → alpha/dropdown}/menu.ts +0 -0
  24. data/app/components/primer/alpha/dropdown.css +1 -0
  25. data/app/components/primer/alpha/dropdown.css.json +1 -0
  26. data/app/components/primer/alpha/dropdown.css.map +1 -0
  27. data/app/components/primer/{dropdown.d.ts → alpha/dropdown.d.ts} +0 -0
  28. data/app/components/primer/{dropdown.html.erb → alpha/dropdown.html.erb} +0 -0
  29. data/app/components/primer/{dropdown.js → alpha/dropdown.js} +0 -0
  30. data/app/components/primer/alpha/dropdown.pcss +260 -0
  31. data/app/components/primer/alpha/dropdown.rb +154 -0
  32. data/app/components/primer/{dropdown.ts → alpha/dropdown.ts} +0 -0
  33. data/app/components/primer/alpha/tab_nav.css +1 -0
  34. data/app/components/primer/alpha/tab_nav.css.json +1 -0
  35. data/app/components/primer/alpha/tab_nav.css.map +1 -0
  36. data/app/components/primer/alpha/tab_nav.pcss +100 -0
  37. data/app/components/primer/alpha/underline_nav.css +1 -0
  38. data/app/components/primer/alpha/underline_nav.css.json +1 -0
  39. data/app/components/primer/alpha/underline_nav.css.map +1 -0
  40. data/app/components/primer/alpha/underline_nav.pcss +133 -0
  41. data/app/components/primer/alpha/x_banner.d.ts +2 -1
  42. data/app/components/primer/alpha/x_banner.js +0 -1
  43. data/app/components/primer/alpha/x_banner.ts +1 -1
  44. data/app/components/primer/beta/avatar.css +1 -0
  45. data/app/components/primer/beta/avatar.css.json +1 -0
  46. data/app/components/primer/beta/avatar.css.map +1 -0
  47. data/app/components/primer/beta/avatar.pcss +73 -0
  48. data/app/components/primer/beta/avatar_stack.css +1 -0
  49. data/app/components/primer/beta/avatar_stack.css.json +1 -0
  50. data/app/components/primer/beta/avatar_stack.css.map +1 -0
  51. data/app/components/primer/beta/avatar_stack.pcss +141 -0
  52. data/app/components/primer/beta/border_box.css +1 -0
  53. data/app/components/primer/beta/border_box.css.json +1 -0
  54. data/app/components/primer/beta/border_box.css.map +1 -0
  55. data/app/components/primer/beta/border_box.pcss +284 -0
  56. data/app/components/primer/beta/button.rb +1 -1
  57. data/app/components/primer/beta/flash.css +1 -0
  58. data/app/components/primer/beta/flash.css.json +1 -0
  59. data/app/components/primer/beta/flash.css.map +1 -0
  60. data/app/components/primer/beta/flash.pcss +143 -0
  61. data/app/components/primer/beta/link.css +1 -0
  62. data/app/components/primer/beta/link.css.json +1 -0
  63. data/app/components/primer/beta/link.css.map +1 -0
  64. data/app/components/primer/beta/link.pcss +60 -0
  65. data/app/components/primer/beta/popover.css +1 -0
  66. data/app/components/primer/beta/popover.css.json +1 -0
  67. data/app/components/primer/beta/popover.css.map +1 -0
  68. data/app/components/primer/{popover_component.html.erb → beta/popover.html.erb} +0 -0
  69. data/app/components/primer/beta/popover.pcss +225 -0
  70. data/app/components/primer/beta/popover.rb +127 -0
  71. data/app/components/primer/component.rb +2 -2
  72. data/app/components/primer/dropdown/menu.rb +5 -90
  73. data/app/components/primer/dropdown.rb +2 -145
  74. data/app/components/primer/menu_component.css +1 -0
  75. data/app/components/primer/menu_component.css.json +1 -0
  76. data/app/components/primer/menu_component.css.map +1 -0
  77. data/app/components/primer/menu_component.pcss +119 -0
  78. data/app/components/primer/popover_component.rb +3 -120
  79. data/app/components/primer/primer.d.ts +1 -1
  80. data/app/components/primer/primer.js +1 -1
  81. data/app/components/primer/primer.pcss +14 -1
  82. data/app/components/primer/primer.ts +1 -1
  83. data/app/components/primer/timeline_item_component.css +1 -0
  84. data/app/components/primer/timeline_item_component.css.json +1 -0
  85. data/app/components/primer/timeline_item_component.css.map +1 -0
  86. data/app/components/primer/timeline_item_component.pcss +93 -0
  87. data/lib/primer/deprecations.rb +4 -3
  88. data/lib/primer/view_components/linters/deprecated_components_counter.rb +15 -4
  89. data/lib/primer/view_components/linters/severity_schema.rb +14 -0
  90. data/lib/primer/view_components/version.rb +1 -1
  91. data/lib/tasks/docs.rake +3 -3
  92. data/previews/primer/alpha/banner_preview.rb +1 -1
  93. data/previews/primer/alpha/button_marketing_preview.rb +36 -0
  94. data/previews/primer/alpha/dropdown_preview.rb +210 -0
  95. data/previews/primer/alpha/tab_nav_preview.rb +55 -0
  96. data/previews/primer/beta/avatar_preview.rb +61 -5
  97. data/previews/primer/beta/avatar_stack_preview.rb +54 -12
  98. data/previews/primer/beta/blankslate_preview.rb +29 -5
  99. data/previews/primer/beta/border_box_preview.rb +65 -13
  100. data/previews/primer/beta/flash_preview.rb +45 -8
  101. data/previews/primer/beta/label_preview.rb +86 -8
  102. data/previews/primer/beta/link_preview.rb +28 -0
  103. data/previews/primer/beta/popover_preview.rb +79 -0
  104. data/static/arguments.json +40 -40
  105. data/static/audited_at.json +4 -3
  106. data/static/constants.json +56 -52
  107. data/static/statuses.json +8 -7
  108. metadata +70 -16
  109. data/app/components/primer/counter_component.rb +0 -7
  110. data/app/components/primer/image.rb +0 -7
  111. data/app/components/primer/progress_bar_component.rb +0 -7
  112. data/previews/primer/dropdown_preview.rb +0 -57
  113. data/previews/primer/popover_component_preview.rb +0 -34
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "erb_lint/utils/severity_levels"
4
+
5
+ module ERBLint
6
+ module Linters
7
+ class SeveritySchema < LinterConfig
8
+ # SEVERITY_NAMES :info, :refactor, :convention, :warning, :error, :fatal
9
+ # see https://github.com/Shopify/erb-lint/blob/main/lib/erb_lint/utils/severity_levels.rb
10
+
11
+ property :severity, accepts: ERBLint::Utils::SeverityLevels::SEVERITY_NAMES, default: nil, reader: :severity
12
+ end
13
+ end
14
+ end
@@ -6,7 +6,7 @@ module Primer
6
6
  module VERSION
7
7
  MAJOR = 0
8
8
  MINOR = 0
9
- PATCH = 110
9
+ PATCH = 112
10
10
 
11
11
  STRING = [MAJOR, MINOR, PATCH].join(".")
12
12
  end
data/lib/tasks/docs.rake CHANGED
@@ -58,7 +58,7 @@ namespace :docs do
58
58
  Primer::Beta::Counter,
59
59
  Primer::Beta::Details,
60
60
  Primer::Alpha::Dialog,
61
- Primer::Dropdown,
61
+ Primer::Alpha::Dropdown,
62
62
  Primer::DropdownMenuComponent,
63
63
  Primer::Beta::Flash,
64
64
  Primer::Beta::Heading,
@@ -70,7 +70,7 @@ namespace :docs do
70
70
  Primer::MenuComponent,
71
71
  Primer::Navigation::TabComponent,
72
72
  Primer::OcticonComponent,
73
- Primer::PopoverComponent,
73
+ Primer::Beta::Popover,
74
74
  Primer::Beta::ProgressBar,
75
75
  Primer::StateComponent,
76
76
  Primer::SpinnerComponent,
@@ -99,7 +99,7 @@ namespace :docs do
99
99
  ]
100
100
 
101
101
  js_components = [
102
- Primer::Dropdown,
102
+ Primer::Alpha::Dropdown,
103
103
  Primer::LocalTime,
104
104
  Primer::Alpha::ImageCrop,
105
105
  Primer::Beta::AutoComplete,
@@ -48,7 +48,7 @@ module Primer
48
48
  #
49
49
  # @!endgroup
50
50
 
51
- # @label Dismissable
51
+ # @label Dismissable
52
52
  def dismissable
53
53
  render(Primer::Alpha::Banner.new(dismissable: true, reappear: true)) { "This is a dismissable banner." }
54
54
  end
@@ -21,6 +21,42 @@ module Primer
21
21
  def default(tag: :button, type: :button, scheme: :default, variant: :default)
22
22
  render(Primer::Alpha::ButtonMarketing.new(tag: tag, type: type, scheme: scheme, variant: variant)) { "Default" }
23
23
  end
24
+
25
+ # @!group Size Variants
26
+ #
27
+ # @label Default
28
+ def sizes_default
29
+ render(Primer::Alpha::ButtonMarketing.new) { "Default" }
30
+ end
31
+
32
+ # @label Large
33
+ def sizes_large
34
+ render(Primer::Alpha::ButtonMarketing.new(variant: :large)) { "Large" }
35
+ end
36
+ # @!endgroup
37
+
38
+ # @!group Schemes
39
+ #
40
+ # @label Default
41
+ def scheme_default
42
+ render(Primer::Alpha::ButtonMarketing.new) { "Default" }
43
+ end
44
+
45
+ # @label Primary
46
+ def scheme_primary
47
+ render(Primer::Alpha::ButtonMarketing.new(scheme: :primary)) { "Primary" }
48
+ end
49
+
50
+ # @label Outline
51
+ def scheme_outline
52
+ render(Primer::Alpha::ButtonMarketing.new(scheme: :outline)) { "Outline" }
53
+ end
54
+
55
+ # @label Transparent
56
+ def scheme_transparent
57
+ render(Primer::Alpha::ButtonMarketing.new(scheme: :transparent)) { "Transparent" }
58
+ end
59
+ # @!endgroup
24
60
  end
25
61
  end
26
62
  end
@@ -0,0 +1,210 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Alpha
5
+ # @label Dropdown
6
+ class DropdownPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param with_caret [Boolean] toggle
10
+ # @param overlay [Symbol] select [none, default, dark]
11
+ def playground(overlay: :default, with_caret: false)
12
+ render(Primer::Alpha::Dropdown.new(overlay: overlay, with_caret: with_caret)) do |c|
13
+ c.with_button { "Dropdown" }
14
+
15
+ c.with_menu(header: "Header") do |m|
16
+ m.with_item { "Item 1" }
17
+ m.with_item { "Item 2" }
18
+ m.with_item(divider: true)
19
+ m.with_item { "Item 3" }
20
+ m.with_item { "Item 4" }
21
+ end
22
+ end
23
+ end
24
+
25
+ # @label Default
26
+ #
27
+ def default
28
+ render(Primer::Alpha::Dropdown.new) do |c|
29
+ c.with_button { "Dropdown" }
30
+ c.with_menu do |m|
31
+ m.with_item { "Item 1" }
32
+ m.with_item { "Item 2" }
33
+ m.with_item { "Item 3" }
34
+ end
35
+ end
36
+ end
37
+
38
+ # @label Menu
39
+ #
40
+ # @param as [Symbol] select [list, default]
41
+ # @param direction [Symbol] select [se, sw, w, e, ne, s]
42
+ # @param scheme [Symbol] select [default, dark]
43
+ def menu(as: :default, direction: :se, scheme: :default)
44
+ render(Primer::Alpha::Dropdown::Menu.new(as: as, direction: direction, scheme: scheme, header: "Header")) do |m|
45
+ m.with_item { "Item 1" }
46
+ m.with_item { "Item 2" }
47
+ m.with_item(divider: true)
48
+ m.with_item { "Item 3" }
49
+ m.with_item { "Item 4" }
50
+ end
51
+ end
52
+
53
+ # @!group Direction
54
+ #
55
+ # @label Direction e
56
+ def direction_e
57
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |c|
58
+ c.with_button { "Dropdown" }
59
+ c.with_menu(direction: :e) do |m|
60
+ m.with_item { "Item 1" }
61
+ m.with_item { "Item 2" }
62
+ m.with_item { "Item 3" }
63
+ end
64
+ end
65
+ end
66
+
67
+ # @label Direction ne
68
+ def direction_ne
69
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |c|
70
+ c.with_button { "Dropdown" }
71
+ c.with_menu(direction: :ne) do |m|
72
+ m.with_item { "Item 1" }
73
+ m.with_item { "Item 2" }
74
+ m.with_item { "Item 3" }
75
+ end
76
+ end
77
+ end
78
+
79
+ # @label Direction s
80
+ def direction_s
81
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |c|
82
+ c.with_button { "Dropdown" }
83
+ c.with_menu(direction: :s) do |m|
84
+ m.with_item { "Item 1" }
85
+ m.with_item { "Item 2" }
86
+ m.with_item { "Item 3" }
87
+ end
88
+ end
89
+ end
90
+
91
+ # @label Direction se
92
+ def direction_se
93
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |c|
94
+ c.with_button { "Dropdown" }
95
+ c.with_menu(direction: :se) do |m|
96
+ m.with_item { "Item 1" }
97
+ m.with_item { "Item 2" }
98
+ m.with_item { "Item 3" }
99
+ end
100
+ end
101
+ end
102
+
103
+ # @label Direction sw
104
+ def direction_sw
105
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |c|
106
+ c.with_button { "Dropdown" }
107
+ c.with_menu(direction: :sw) do |m|
108
+ m.with_item { "Item 1" }
109
+ m.with_item { "Item 2" }
110
+ m.with_item { "Item 3" }
111
+ end
112
+ end
113
+ end
114
+
115
+ # @label Direction w
116
+ def direction_w
117
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |c|
118
+ c.with_button { "Dropdown" }
119
+ c.with_menu(direction: :w) do |m|
120
+ m.with_item { "Item 1" }
121
+ m.with_item { "Item 2" }
122
+ m.with_item { "Item 3" }
123
+ end
124
+ end
125
+ end
126
+ #
127
+ # @!endgroup
128
+
129
+ # @!group Options
130
+ #
131
+ # @label With caret
132
+ def options_with_caret
133
+ render(Primer::Alpha::Dropdown.new(with_caret: true)) do |c|
134
+ c.with_button { "Dropdown" }
135
+ c.with_menu do |m|
136
+ m.with_item { "Item 1" }
137
+ m.with_item { "Item 2" }
138
+ m.with_item { "Item 3" }
139
+ end
140
+ end
141
+ end
142
+
143
+ # @label With header
144
+ def options_with_header
145
+ render(Primer::Alpha::Dropdown.new) do |c|
146
+ c.with_button { "Dropdown" }
147
+ c.with_menu(header: "Header") do |m|
148
+ m.with_item { "Item 1" }
149
+ m.with_item { "Item 2" }
150
+ m.with_item { "Item 3" }
151
+ end
152
+ end
153
+ end
154
+
155
+ # @label With dividers
156
+ def options_with_dividers
157
+ render(Primer::Alpha::Dropdown.new) do |c|
158
+ c.with_button { "Dropdown" }
159
+ c.with_menu do |m|
160
+ m.with_item { "Item 1" }
161
+ m.with_item { "Item 2" }
162
+ m.with_item(divider: true)
163
+ m.with_item { "Item 3" }
164
+ m.with_item { "Item 4" }
165
+ m.with_item(divider: true)
166
+ m.with_item { "Item 5" }
167
+ end
168
+ end
169
+ end
170
+
171
+ # @label As list
172
+ def options_as_list
173
+ render(Primer::Alpha::Dropdown.new) do |c|
174
+ c.with_button { "Dropdown" }
175
+ c.with_menu(as: :list) do |m|
176
+ m.with_item { "Item 1" }
177
+ m.with_item { "Item 2" }
178
+ m.with_item { "Item 3" }
179
+ end
180
+ end
181
+ end
182
+
183
+ # @label Overlay none
184
+ def options_overlay_none
185
+ render(Primer::Alpha::Dropdown.new(overlay: :none)) do |c|
186
+ c.with_button { "Dropdown" }
187
+ c.with_menu do |m|
188
+ m.with_item { "Item 1" }
189
+ m.with_item { "Item 2" }
190
+ m.with_item { "Item 3" }
191
+ end
192
+ end
193
+ end
194
+
195
+ # @label Overlay dark
196
+ def options_overlay_dark
197
+ render(Primer::Alpha::Dropdown.new(overlay: :dark)) do |c|
198
+ c.with_button { "Dropdown" }
199
+ c.with_menu do |m|
200
+ m.with_item { "Item 1" }
201
+ m.with_item { "Item 2" }
202
+ m.with_item { "Item 3" }
203
+ end
204
+ end
205
+ end
206
+ #
207
+ # @!endgroup
208
+ end
209
+ end
210
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Alpha
5
+ # @label TabNav
6
+ class TabNavPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param number_of_tabs [Integer] number
10
+ # @param with_icons [Boolean] toggle
11
+ # @param with_counters [Boolean] toggle
12
+ def playground(number_of_tabs: 3, with_icons: false, with_counters: false)
13
+ render(Primer::Alpha::TabNav.new(label: "label")) do |c|
14
+ Array.new(number_of_tabs || 3) do |i|
15
+ c.with_tab(selected: i.zero?, href: "##{i + 1}") do |t|
16
+ t.icon(icon: :star) if with_icons
17
+ t.text { "Tab #{i + 1}" }
18
+ t.counter(count: 10) if with_counters
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ # @label Default
25
+ def default
26
+ render(Primer::Alpha::TabNav.new(label: "Default")) do |c|
27
+ c.with_tab(selected: true, href: "#") { "Tab 1" }
28
+ c.with_tab(href: "#") { "Tab 2" }
29
+ c.with_tab(href: "#") { "Tab 3" }
30
+ end
31
+ end
32
+
33
+ # @label With icons and counters
34
+ def with_icons_and_counters
35
+ render(Primer::Alpha::TabNav.new(label: "With icons and counters")) do |c|
36
+ c.with_tab(href: "#1", selected: true) do |t|
37
+ t.icon(icon: :star)
38
+ t.text { "Stars" }
39
+ t.counter(count: 10)
40
+ end
41
+ c.with_tab(href: "#2") do |t|
42
+ t.icon(icon: :heart)
43
+ t.text { "Sponsors" }
44
+ t.counter(count: 14)
45
+ end
46
+ c.with_tab(href: "#3") do |t|
47
+ t.icon(icon: :bookmark)
48
+ t.text { "Bookmarks" }
49
+ t.counter(count: 7)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -13,14 +13,70 @@ module Primer
13
13
  render(Primer::Beta::Avatar.new(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser", size: size, shape: shape, href: href))
14
14
  end
15
15
 
16
- # @label Default options
16
+ # @label Default
17
+ def default
18
+ render(Primer::Beta::Avatar.new(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
19
+ end
20
+
21
+ # @label As link
17
22
  #
18
- # @param size [Integer] select [16, 20, 24, 32, 40, 48, 80]
19
- # @param shape [Symbol] select [circle, square]
20
23
  # @param href [String] text
21
- def default(size: 24, shape: :circle, href: nil)
22
- render(Primer::Beta::Avatar.new(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser", size: size, shape: shape, href: href))
24
+ def as_link(href: "#")
25
+ render(Primer::Beta::Avatar.new(href: href, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
26
+ end
27
+
28
+ # @!group Sizes
29
+ #
30
+ # @label 16px
31
+ def size_16
32
+ render(Primer::Beta::Avatar.new(size: 16, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
33
+ end
34
+
35
+ # @label 20px
36
+ def size_20
37
+ render(Primer::Beta::Avatar.new(size: 20, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
38
+ end
39
+
40
+ # @label 24px
41
+ def size_24
42
+ render(Primer::Beta::Avatar.new(size: 24, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
43
+ end
44
+
45
+ # @label 32px
46
+ def size_32
47
+ render(Primer::Beta::Avatar.new(size: 32, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
23
48
  end
49
+
50
+ # @label 40px
51
+ def size_40
52
+ render(Primer::Beta::Avatar.new(size: 40, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
53
+ end
54
+
55
+ # @label 48px
56
+ def size_48
57
+ render(Primer::Beta::Avatar.new(size: 48, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
58
+ end
59
+
60
+ # @label 80px
61
+ def size_80
62
+ render(Primer::Beta::Avatar.new(size: 80, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
63
+ end
64
+ #
65
+ # @!endgroup
66
+
67
+ # @!group Shape
68
+ #
69
+ # @label Circle
70
+ def shape_circle
71
+ render(Primer::Beta::Avatar.new(shape: :circle, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
72
+ end
73
+
74
+ # @label Square
75
+ def shape_square
76
+ render(Primer::Beta::Avatar.new(shape: :square, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
77
+ end
78
+ #
79
+ # @!endgroup
24
80
  end
25
81
  end
26
82
  end
@@ -19,23 +19,64 @@ module Primer
19
19
  end
20
20
  end
21
21
 
22
- # @label Default options
22
+ # @label Default
23
+ def default
24
+ render(Primer::Beta::AvatarStack.new) do |c|
25
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
26
+ end
27
+ end
28
+
29
+ # @!group Multiple avatars
23
30
  #
24
- # @param number_of_avatars [Integer] number
25
- # @param tag select [["div", div], ["span", span]]
26
- # @param align select [["Left", left], ["Right", right]]
27
- # @param tooltipped toggle
28
- # @param tooltip_label text
29
- def default(number_of_avatars: 1, tag: :div, align: :left, tooltipped: false, tooltip_label: "This is a tooltip!")
30
- render(Primer::Beta::AvatarStack.new(tag: tag, align: align, tooltipped: tooltipped, body_arguments: { label: tooltip_label })) do |c|
31
- Array.new(number_of_avatars || 1) do
32
- c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
33
- end
31
+ # @label 1 avatar
32
+ def avatar_1
33
+ render(Primer::Beta::AvatarStack.new) do |c|
34
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
34
35
  end
35
36
  end
36
37
 
37
- # @!group More Examples
38
+ # @label 2 avatars
39
+ def avatar_2
40
+ render(Primer::Beta::AvatarStack.new) do |c|
41
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
42
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
43
+ end
44
+ end
38
45
 
46
+ # @label 3 avatars
47
+ def avatar_3
48
+ render(Primer::Beta::AvatarStack.new) do |c|
49
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
50
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
51
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
52
+ end
53
+ end
54
+
55
+ # @label 4 avatars
56
+ def avatar_4
57
+ render(Primer::Beta::AvatarStack.new) do |c|
58
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
59
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
60
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
61
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
62
+ end
63
+ end
64
+
65
+ # @label 5 avatars
66
+ def avatar_5
67
+ render(Primer::Beta::AvatarStack.new) do |c|
68
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
69
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
70
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
71
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
72
+ c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
73
+ end
74
+ end
75
+ #
76
+ # @!endgroup
77
+
78
+ # @!group More options
79
+ #
39
80
  # @label Align right
40
81
  def align_right
41
82
  render(Primer::Beta::AvatarStack.new(align: :right)) do |c|
@@ -53,6 +94,7 @@ module Primer
53
94
  c.avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
54
95
  end
55
96
  end
97
+ #
56
98
  # @!endgroup
57
99
  end
58
100
  end
@@ -17,16 +17,40 @@ module Primer
17
17
  end
18
18
 
19
19
  # @label Default options
20
+ def default
21
+ render Primer::Beta::Blankslate.new do |c|
22
+ c.heading(tag: :h2).with_content("Title")
23
+ c.description { "Description" }
24
+ end
25
+ end
26
+
27
+ # @!group Options
20
28
  #
21
- # @param narrow [Boolean] toggle
22
- # @param spacious [Boolean] toggle
23
- # @param border [Boolean] toggle
24
- def default(narrow: false, spacious: false, border: false)
25
- render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |c|
29
+ # @label Narrow
30
+ def option_narrow
31
+ render Primer::Beta::Blankslate.new(narrow: true) do |c|
32
+ c.heading(tag: :h2).with_content("Title")
33
+ c.description { "Description" }
34
+ end
35
+ end
36
+
37
+ # @label Spacious
38
+ def option_spacious
39
+ render Primer::Beta::Blankslate.new(spacious: true) do |c|
40
+ c.heading(tag: :h2).with_content("Title")
41
+ c.description { "Description" }
42
+ end
43
+ end
44
+
45
+ # @label Border
46
+ def option_border
47
+ render Primer::Beta::Blankslate.new(border: true) do |c|
26
48
  c.heading(tag: :h2).with_content("Title")
27
49
  c.description { "Description" }
28
50
  end
29
51
  end
52
+ #
53
+ # @!endgroup
30
54
 
31
55
  # @param narrow [Boolean] toggle
32
56
  # @param spacious [Boolean] toggle
@@ -6,9 +6,22 @@ module Primer
6
6
  class BorderBoxPreview < ViewComponent::Preview
7
7
  # @label Playground
8
8
  #
9
- # @param padding [Symbol] select [default, condensed]
10
- def playground(padding: :default)
9
+ # @param padding [Symbol] select [default, condensed, spacious]
10
+ # @param scheme [Symbol] select [default, neutral, info, warning]
11
+ def playground(padding: :default, scheme: :default)
11
12
  render(Primer::Beta::BorderBox.new(padding: padding)) do |component|
13
+ component.header { "Header" }
14
+ component.body { "Body" }
15
+ component.row(scheme: scheme) { "#{scheme.to_s.capitalize} row one" }
16
+ component.row(scheme: scheme) { "#{scheme.to_s.capitalize} row two" }
17
+ component.row(scheme: scheme) { "#{scheme.to_s.capitalize} row three" }
18
+ component.footer { "Footer" }
19
+ end
20
+ end
21
+
22
+ # @label Default
23
+ def default
24
+ render(Primer::Beta::BorderBox.new) do |component|
12
25
  component.header { "Header" }
13
26
  component.body { "Body" }
14
27
  component.row { "Row one" }
@@ -18,11 +31,34 @@ module Primer
18
31
  end
19
32
  end
20
33
 
21
- # @label Default options
34
+ # @label Header with title
35
+ def header_with_title
36
+ render(Primer::Beta::BorderBox.new) do |component|
37
+ component.with_header do |h|
38
+ h.title(tag: :h2) do
39
+ "Header with title"
40
+ end
41
+ end
42
+ component.body { "Body" }
43
+ component.footer { "Footer" }
44
+ end
45
+ end
46
+
47
+ # @label Row colors
48
+ def row_colors
49
+ render(Primer::Beta::BorderBox.new) do |component|
50
+ component.row(scheme: :default) { "Default" }
51
+ component.row(scheme: :neutral) { "Neutral" }
52
+ component.row(scheme: :info) { "Info" }
53
+ component.row(scheme: :warning) { "Warning" }
54
+ end
55
+ end
56
+
57
+ # @!group Padding
22
58
  #
23
- # @param padding [Symbol] select [default, condensed]
24
- def default(padding: :default)
25
- render(Primer::Beta::BorderBox.new(padding: padding)) do |component|
59
+ # @label Default
60
+ def padding_default
61
+ render(Primer::Beta::BorderBox.new) do |component|
26
62
  component.header { "Header" }
27
63
  component.body { "Body" }
28
64
  component.row { "Row one" }
@@ -32,15 +68,31 @@ module Primer
32
68
  end
33
69
  end
34
70
 
35
- # @label Row schemes
36
- #
37
- # @param padding [Symbol] select [default, condensed]
38
- # @param scheme [Symbol] select [default, neutral, info, warning]
39
- def row_schemes(padding: :default, scheme: :default)
40
- render(Primer::Beta::BorderBox.new(padding: padding)) do |component|
41
- component.row(scheme: scheme) { "#{scheme.to_s.capitalize} scheme" }
71
+ # @label Condensed
72
+ def padding_condensed
73
+ render(Primer::Beta::BorderBox.new(padding: :condensed)) do |component|
74
+ component.header { "Header" }
75
+ component.body { "Body" }
76
+ component.row { "Row one" }
77
+ component.row { "Row two" }
78
+ component.row { "Row three" }
79
+ component.footer { "Footer" }
42
80
  end
43
81
  end
82
+
83
+ # @label Spacious
84
+ def padding_spacious
85
+ render(Primer::Beta::BorderBox.new(padding: :spacious)) do |component|
86
+ component.header { "Header" }
87
+ component.body { "Body" }
88
+ component.row { "Row one" }
89
+ component.row { "Row two" }
90
+ component.row { "Row three" }
91
+ component.footer { "Footer" }
92
+ end
93
+ end
94
+ #
95
+ # @!endgroup
44
96
  end
45
97
  end
46
98
  end