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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -0
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/assets/styles/primer_view_components.css +1 -1
- data/app/assets/styles/primer_view_components.css.map +1 -1
- data/app/components/primer/alpha/action_list/item.rb +2 -2
- data/app/components/primer/alpha/auto_complete.css +1 -0
- data/app/components/primer/alpha/auto_complete.css.json +1 -0
- data/app/components/primer/alpha/auto_complete.css.map +1 -0
- data/app/components/primer/alpha/auto_complete.pcss +118 -0
- data/app/components/primer/alpha/banner.css +1 -1
- data/app/components/primer/alpha/banner.css.map +1 -1
- data/app/components/primer/alpha/banner.pcss +2 -3
- data/app/components/primer/alpha/button_marketing.css +1 -0
- data/app/components/primer/alpha/button_marketing.css.json +1 -0
- data/app/components/primer/alpha/button_marketing.css.map +1 -0
- data/app/components/primer/alpha/button_marketing.pcss +175 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.d.ts +0 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.html.erb +0 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.js +0 -0
- data/app/components/primer/alpha/dropdown/menu.rb +105 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.ts +0 -0
- data/app/components/primer/alpha/dropdown.css +1 -0
- data/app/components/primer/alpha/dropdown.css.json +1 -0
- data/app/components/primer/alpha/dropdown.css.map +1 -0
- data/app/components/primer/{dropdown.d.ts → alpha/dropdown.d.ts} +0 -0
- data/app/components/primer/{dropdown.html.erb → alpha/dropdown.html.erb} +0 -0
- data/app/components/primer/{dropdown.js → alpha/dropdown.js} +0 -0
- data/app/components/primer/alpha/dropdown.pcss +260 -0
- data/app/components/primer/alpha/dropdown.rb +154 -0
- data/app/components/primer/{dropdown.ts → alpha/dropdown.ts} +0 -0
- data/app/components/primer/alpha/tab_nav.css +1 -0
- data/app/components/primer/alpha/tab_nav.css.json +1 -0
- data/app/components/primer/alpha/tab_nav.css.map +1 -0
- data/app/components/primer/alpha/tab_nav.pcss +100 -0
- data/app/components/primer/alpha/underline_nav.css +1 -0
- data/app/components/primer/alpha/underline_nav.css.json +1 -0
- data/app/components/primer/alpha/underline_nav.css.map +1 -0
- data/app/components/primer/alpha/underline_nav.pcss +133 -0
- data/app/components/primer/alpha/x_banner.d.ts +2 -1
- data/app/components/primer/alpha/x_banner.js +0 -1
- data/app/components/primer/alpha/x_banner.ts +1 -1
- data/app/components/primer/beta/avatar.css +1 -0
- data/app/components/primer/beta/avatar.css.json +1 -0
- data/app/components/primer/beta/avatar.css.map +1 -0
- data/app/components/primer/beta/avatar.pcss +73 -0
- data/app/components/primer/beta/avatar_stack.css +1 -0
- data/app/components/primer/beta/avatar_stack.css.json +1 -0
- data/app/components/primer/beta/avatar_stack.css.map +1 -0
- data/app/components/primer/beta/avatar_stack.pcss +141 -0
- data/app/components/primer/beta/border_box.css +1 -0
- data/app/components/primer/beta/border_box.css.json +1 -0
- data/app/components/primer/beta/border_box.css.map +1 -0
- data/app/components/primer/beta/border_box.pcss +284 -0
- data/app/components/primer/beta/button.rb +1 -1
- data/app/components/primer/beta/flash.css +1 -0
- data/app/components/primer/beta/flash.css.json +1 -0
- data/app/components/primer/beta/flash.css.map +1 -0
- data/app/components/primer/beta/flash.pcss +143 -0
- data/app/components/primer/beta/link.css +1 -0
- data/app/components/primer/beta/link.css.json +1 -0
- data/app/components/primer/beta/link.css.map +1 -0
- data/app/components/primer/beta/link.pcss +60 -0
- data/app/components/primer/beta/popover.css +1 -0
- data/app/components/primer/beta/popover.css.json +1 -0
- data/app/components/primer/beta/popover.css.map +1 -0
- data/app/components/primer/{popover_component.html.erb → beta/popover.html.erb} +0 -0
- data/app/components/primer/beta/popover.pcss +225 -0
- data/app/components/primer/beta/popover.rb +127 -0
- data/app/components/primer/component.rb +2 -2
- data/app/components/primer/dropdown/menu.rb +5 -90
- data/app/components/primer/dropdown.rb +2 -145
- data/app/components/primer/menu_component.css +1 -0
- data/app/components/primer/menu_component.css.json +1 -0
- data/app/components/primer/menu_component.css.map +1 -0
- data/app/components/primer/menu_component.pcss +119 -0
- data/app/components/primer/popover_component.rb +3 -120
- data/app/components/primer/primer.d.ts +1 -1
- data/app/components/primer/primer.js +1 -1
- data/app/components/primer/primer.pcss +14 -1
- data/app/components/primer/primer.ts +1 -1
- data/app/components/primer/timeline_item_component.css +1 -0
- data/app/components/primer/timeline_item_component.css.json +1 -0
- data/app/components/primer/timeline_item_component.css.map +1 -0
- data/app/components/primer/timeline_item_component.pcss +93 -0
- data/lib/primer/deprecations.rb +4 -3
- data/lib/primer/view_components/linters/deprecated_components_counter.rb +15 -4
- data/lib/primer/view_components/linters/severity_schema.rb +14 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/tasks/docs.rake +3 -3
- data/previews/primer/alpha/banner_preview.rb +1 -1
- data/previews/primer/alpha/button_marketing_preview.rb +36 -0
- data/previews/primer/alpha/dropdown_preview.rb +210 -0
- data/previews/primer/alpha/tab_nav_preview.rb +55 -0
- data/previews/primer/beta/avatar_preview.rb +61 -5
- data/previews/primer/beta/avatar_stack_preview.rb +54 -12
- data/previews/primer/beta/blankslate_preview.rb +29 -5
- data/previews/primer/beta/border_box_preview.rb +65 -13
- data/previews/primer/beta/flash_preview.rb +45 -8
- data/previews/primer/beta/label_preview.rb +86 -8
- data/previews/primer/beta/link_preview.rb +28 -0
- data/previews/primer/beta/popover_preview.rb +79 -0
- data/static/arguments.json +40 -40
- data/static/audited_at.json +4 -3
- data/static/constants.json +56 -52
- data/static/statuses.json +8 -7
- metadata +70 -16
- data/app/components/primer/counter_component.rb +0 -7
- data/app/components/primer/image.rb +0 -7
- data/app/components/primer/progress_bar_component.rb +0 -7
- data/previews/primer/dropdown_preview.rb +0 -57
- 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
|
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::
|
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,
|
@@ -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
|
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
|
22
|
-
render(Primer::Beta::Avatar.new(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"
|
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
|
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
|
-
# @
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
#
|
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
|
-
# @
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
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
|
-
|
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
|
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
|
-
# @
|
24
|
-
def
|
25
|
-
render(Primer::Beta::BorderBox.new
|
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
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
component.row
|
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
|