primer_view_components 0.0.111 → 0.0.113
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +68 -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 +3 -1
- data/app/assets/styles/primer_view_components.css.map +1 -1
- data/app/components/primer/alpha/action_list.css +1 -1
- data/app/components/primer/alpha/action_list.css.json +1 -1
- data/app/components/primer/alpha/action_list.css.map +1 -1
- data/app/components/primer/alpha/action_list.pcss +0 -15
- 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 +0 -1
- 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/alpha/dialog/body.rb +3 -0
- data/app/components/primer/alpha/dialog/footer.rb +3 -0
- data/app/components/primer/alpha/dialog/header.rb +3 -0
- data/app/components/primer/alpha/dialog.css +1 -0
- data/app/components/primer/alpha/dialog.css.json +1 -0
- data/app/components/primer/alpha/dialog.css.map +1 -0
- data/app/components/primer/alpha/dialog.pcss +484 -0
- data/app/components/primer/alpha/dialog.rb +3 -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/{dropdown.css.map → alpha/dropdown.css.map} +1 -1
- 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/{dropdown.pcss → alpha/dropdown.pcss} +1 -1
- 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/segmented_control.css +1 -1
- data/app/components/primer/alpha/segmented_control.css.map +1 -1
- 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/text_field.css +3 -0
- data/app/components/primer/alpha/text_field.css.json +1 -0
- data/app/components/primer/alpha/text_field.css.map +1 -0
- data/app/components/primer/alpha/text_field.pcss +683 -0
- data/app/components/primer/alpha/toggle_switch.d.ts +1 -1
- data/app/components/primer/alpha/toggle_switch.js +7 -4
- data/app/components/primer/alpha/toggle_switch.ts +7 -3
- 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/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_group.css +1 -0
- data/app/components/primer/beta/button_group.css.json +1 -0
- data/app/components/primer/beta/button_group.css.map +1 -0
- data/app/components/primer/beta/button_group.pcss +92 -0
- data/app/components/primer/{clipboard_copy.d.ts → beta/clipboard_copy.d.ts} +0 -0
- data/app/components/primer/{clipboard_copy.html.erb → beta/clipboard_copy.html.erb} +0 -0
- data/app/components/primer/{clipboard_copy.js → beta/clipboard_copy.js} +0 -0
- data/app/components/primer/beta/clipboard_copy.rb +50 -0
- data/app/components/primer/{clipboard_copy.ts → beta/clipboard_copy.ts} +0 -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/{popover_component.css → beta/popover.css} +0 -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/{popover_component.pcss → beta/popover.pcss} +5 -5
- data/app/components/primer/beta/popover.rb +127 -0
- data/app/components/primer/beta/relative_time.rb +160 -0
- data/app/components/primer/button_component.css +1 -0
- data/app/components/primer/button_component.css.json +1 -0
- data/app/components/primer/button_component.css.map +1 -0
- data/app/components/primer/button_component.pcss +557 -0
- data/app/components/primer/button_component.rb +1 -1
- data/app/components/primer/clipboard_copy.rb +2 -43
- data/app/components/primer/component.rb +6 -2
- data/app/components/primer/dropdown/menu.rb +5 -90
- data/app/components/primer/dropdown.rb +2 -145
- data/app/components/primer/local_time.d.ts +1 -1
- data/app/components/primer/local_time.js +1 -1
- data/app/components/primer/local_time.rb +3 -1
- data/app/components/primer/local_time.ts +1 -1
- 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 +2 -2
- data/app/components/primer/primer.js +2 -2
- data/app/components/primer/primer.pcss +20 -3
- data/app/components/primer/primer.ts +2 -2
- data/app/components/primer/time_ago_component.d.ts +1 -1
- data/app/components/primer/time_ago_component.js +1 -1
- data/app/components/primer/time_ago_component.rb +2 -1
- data/app/components/primer/time_ago_component.ts +1 -1
- data/app/forms/submit_button_form.rb +8 -2
- data/app/helpers/primer/form_helper.rb +12 -0
- data/lib/postcss_mixins/clearfix.pcss +12 -0
- data/lib/primer/deprecations.rb +96 -24
- data/lib/primer/deprecations.yml +68 -0
- data/lib/primer/forms/base.rb +7 -20
- data/lib/primer/forms/base_component.rb +15 -1
- data/lib/primer/forms/button.html.erb +4 -0
- data/lib/primer/forms/button.rb +68 -0
- data/lib/primer/forms/check_box.html.erb +2 -2
- data/lib/primer/forms/check_box.rb +1 -1
- data/lib/primer/forms/check_box_group.html.erb +2 -2
- data/lib/primer/forms/dsl/button_input.rb +29 -0
- data/lib/primer/forms/dsl/input_methods.rb +7 -2
- data/lib/primer/forms/dsl/submit_button_input.rb +1 -0
- data/lib/primer/forms/dsl/text_field_input.rb +0 -7
- data/lib/primer/forms/radio_button.html.erb +2 -2
- data/lib/primer/forms/radio_button.rb +1 -1
- data/lib/primer/forms/radio_button_group.html.erb +2 -2
- data/lib/primer/forms/select_list.html.erb +1 -1
- data/lib/primer/forms/select_list.rb +4 -1
- data/lib/primer/forms/submit_button.html.erb +1 -4
- data/lib/primer/forms/submit_button.rb +1 -37
- data/lib/primer/forms/text_area.html.erb +1 -1
- data/lib/primer/forms/text_area.rb +5 -1
- data/lib/primer/forms/text_field.html.erb +1 -1
- data/lib/primer/forms/text_field.rb +11 -0
- data/lib/primer/forms/utils.rb +28 -0
- data/lib/primer/view_components/audited.rb +14 -0
- data/lib/primer/view_components/engine.rb +1 -0
- data/lib/primer/view_components/linters/clipboard_copy_component_migration_counter.rb +2 -2
- data/lib/primer/view_components/linters/deprecated_components_counter.rb +15 -4
- data/lib/primer/view_components/linters/helpers/deprecated_components_helpers.rb +3 -18
- data/lib/primer/view_components/linters/severity_schema.rb +14 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/rubocop/cop/primer/component_name_migration.rb +2 -2
- data/lib/tasks/docs.rake +6 -5
- data/previews/primer/alpha/auto_complete_preview.rb +12 -0
- data/previews/primer/alpha/button_marketing_preview.rb +36 -0
- data/previews/primer/alpha/dropdown_preview.rb +210 -0
- data/previews/primer/alpha/segmented_control_preview.rb +9 -6
- data/previews/primer/alpha/tab_nav_preview.rb +55 -0
- data/previews/primer/alpha/text_field_preview.rb +77 -52
- data/previews/primer/beta/border_box_preview.rb +65 -13
- data/previews/primer/beta/clipboard_copy_preview/element.html.erb +2 -0
- data/previews/primer/beta/clipboard_copy_preview.rb +39 -0
- data/previews/primer/beta/link_preview.rb +28 -0
- data/previews/primer/beta/popover_preview.rb +79 -0
- data/previews/primer/beta/relative_time_preview.rb +271 -0
- data/previews/primer/forms/forms_preview.rb +1 -0
- data/static/arguments.json +183 -73
- data/static/audited_at.json +10 -6
- data/static/constants.json +180 -50
- data/static/statuses.json +12 -8
- metadata +86 -29
- data/app/components/primer/dropdown.css +0 -1
- data/app/components/primer/dropdown.css.json +0 -1
- data/app/components/primer/image.rb +0 -7
- data/app/components/primer/popover_component.css.json +0 -1
- data/app/components/primer/popover_component.css.map +0 -1
- data/app/components/primer/progress_bar_component.rb +0 -7
- data/previews/primer/clipboard_copy_preview/element.html.erb +0 -2
- data/previews/primer/clipboard_copy_preview.rb +0 -37
- data/previews/primer/dropdown_preview.rb +0 -208
- data/previews/primer/popover_component_preview.rb +0 -34
@@ -0,0 +1,484 @@
|
|
1
|
+
/* Overlay */
|
2
|
+
|
3
|
+
.Overlay--hidden {
|
4
|
+
display: none !important;
|
5
|
+
}
|
6
|
+
|
7
|
+
.Overlay--visibilityHidden {
|
8
|
+
height: 0;
|
9
|
+
overflow: hidden;
|
10
|
+
visibility: hidden;
|
11
|
+
opacity: 0;
|
12
|
+
}
|
13
|
+
|
14
|
+
.Overlay {
|
15
|
+
display: flex;
|
16
|
+
width: min(var(--overlay-width), 100vw - 2rem);
|
17
|
+
min-width: 192px;
|
18
|
+
max-height: min(calc(100vh - 2rem), var(--overlay-height));
|
19
|
+
white-space: normal;
|
20
|
+
flex-direction: column;
|
21
|
+
background-color: var(--color-canvas-overlay);
|
22
|
+
border-radius: var(--primer-borderRadius-large, 12px);
|
23
|
+
box-shadow: var(--color-overlay-shadow);
|
24
|
+
opacity: 1;
|
25
|
+
|
26
|
+
&.Overlay--size-auto {
|
27
|
+
min-width: 192px;
|
28
|
+
max-width: calc(100vw - 2rem);
|
29
|
+
max-height: calc(100vh - 2rem);
|
30
|
+
}
|
31
|
+
|
32
|
+
&.Overlay--size-full {
|
33
|
+
width: 100vw;
|
34
|
+
height: 100vh;
|
35
|
+
}
|
36
|
+
|
37
|
+
&.Overlay--size-xsmall {
|
38
|
+
--overlay-width: 192px;
|
39
|
+
|
40
|
+
max-height: calc(100vh - 2rem);
|
41
|
+
}
|
42
|
+
|
43
|
+
&.Overlay--size-small {
|
44
|
+
--overlay-height: 256px;
|
45
|
+
--overlay-width: 320px;
|
46
|
+
}
|
47
|
+
|
48
|
+
&.Overlay--size-small-portrait {
|
49
|
+
--overlay-height: 432px;
|
50
|
+
--overlay-width: 320px;
|
51
|
+
}
|
52
|
+
|
53
|
+
&.Overlay--size-medium {
|
54
|
+
--overlay-height: 320px;
|
55
|
+
--overlay-width: 480px;
|
56
|
+
}
|
57
|
+
|
58
|
+
&.Overlay--size-medium-portrait {
|
59
|
+
--overlay-height: 600px;
|
60
|
+
--overlay-width: 480px;
|
61
|
+
}
|
62
|
+
|
63
|
+
&.Overlay--size-large {
|
64
|
+
--overlay-height: 432px;
|
65
|
+
--overlay-width: 640px;
|
66
|
+
}
|
67
|
+
|
68
|
+
&.Overlay--size-xlarge {
|
69
|
+
--overlay-height: 600px;
|
70
|
+
--overlay-width: 960px;
|
71
|
+
}
|
72
|
+
|
73
|
+
&.Overlay--height-auto {
|
74
|
+
height: auto;
|
75
|
+
}
|
76
|
+
|
77
|
+
/* start deprecate in favor of Alpha::Dialog */
|
78
|
+
&.Overlay--height-xsmall {
|
79
|
+
height: min(192px, 100vh - 2rem);
|
80
|
+
}
|
81
|
+
|
82
|
+
&.Overlay--height-small {
|
83
|
+
height: min(256px, 100vh - 2rem);
|
84
|
+
}
|
85
|
+
|
86
|
+
&.Overlay--height-medium {
|
87
|
+
height: min(320px, 100vh - 2rem);
|
88
|
+
}
|
89
|
+
|
90
|
+
&.Overlay--height-large {
|
91
|
+
height: min(432px, 100vh - 2rem);
|
92
|
+
}
|
93
|
+
|
94
|
+
&.Overlay--height-xlarge {
|
95
|
+
height: min(600px, 100vh - 2rem);
|
96
|
+
}
|
97
|
+
|
98
|
+
&.Overlay--width-auto {
|
99
|
+
width: auto;
|
100
|
+
}
|
101
|
+
|
102
|
+
&.Overlay--width-small {
|
103
|
+
width: min(256px, 100vw - 2rem);
|
104
|
+
}
|
105
|
+
|
106
|
+
&.Overlay--width-medium {
|
107
|
+
width: min(320px, 100vw - 2rem);
|
108
|
+
}
|
109
|
+
|
110
|
+
&.Overlay--width-large {
|
111
|
+
width: min(480px, 100vw - 2rem);
|
112
|
+
}
|
113
|
+
|
114
|
+
&.Overlay--width-xlarge {
|
115
|
+
width: min(640px, 100vw - 2rem);
|
116
|
+
}
|
117
|
+
|
118
|
+
&.Overlay--width-xxlarge {
|
119
|
+
width: min(960px, 100vw - 2rem);
|
120
|
+
}
|
121
|
+
|
122
|
+
/* end deprecate */
|
123
|
+
|
124
|
+
&.Overlay--motion-scaleFade {
|
125
|
+
@media screen and (prefers-reduced-motion: no-preference) {
|
126
|
+
animation: 200ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-scaleFade;
|
127
|
+
}
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
@keyframes Overlay--motion-scaleFade {
|
132
|
+
0% {
|
133
|
+
opacity: 0;
|
134
|
+
transform: scale(0.5);
|
135
|
+
}
|
136
|
+
|
137
|
+
100% {
|
138
|
+
opacity: 1;
|
139
|
+
transform: scale(1);
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
/* for <form> element that wraps entire contents of overlay */
|
144
|
+
.Overlay-form {
|
145
|
+
display: flex;
|
146
|
+
overflow: auto;
|
147
|
+
flex-direction: column;
|
148
|
+
flex-grow: 1;
|
149
|
+
}
|
150
|
+
|
151
|
+
.Overlay-header {
|
152
|
+
z-index: 1;
|
153
|
+
display: flex;
|
154
|
+
flex-direction: column;
|
155
|
+
|
156
|
+
&.Overlay-header--divided {
|
157
|
+
padding-bottom: var(--primer-stack-padding-condensed, 8px);
|
158
|
+
box-shadow: inset 0 calc(var(--primer-borderWidth-thin, 1px) * -1) var(--color-border-default);
|
159
|
+
|
160
|
+
& + .Overlay-body {
|
161
|
+
padding-top: var(--primer-stack-padding-normal, 16px);
|
162
|
+
}
|
163
|
+
}
|
164
|
+
|
165
|
+
&.Overlay-header--large {
|
166
|
+
& .Overlay-headerContentWrap {
|
167
|
+
& .Overlay-titleWrap {
|
168
|
+
gap: var(--primer-stack-gap-condensed, 8px);
|
169
|
+
|
170
|
+
& .Overlay-title {
|
171
|
+
font-size: var(--primer-text-title-size-medium, 20px);
|
172
|
+
}
|
173
|
+
|
174
|
+
& .Overlay-description {
|
175
|
+
font-size: var(--primer-text-body-size-medium, 14px);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
& .Overlay-headerContentWrap {
|
182
|
+
display: flex;
|
183
|
+
align-items: flex-start;
|
184
|
+
gap: var(--primer-stack-gap-condensed, 8px);
|
185
|
+
padding: var(--primer-stack-gap-condensed, 8px) var(--primer-stack-gap-condensed, 8px) 0 var(--primer-stack-gap-condensed, 8px);
|
186
|
+
|
187
|
+
& .Overlay-actionWrap {
|
188
|
+
display: flex;
|
189
|
+
flex-direction: row;
|
190
|
+
gap: var(--primer-stack-gap-condensed, 8px);
|
191
|
+
}
|
192
|
+
|
193
|
+
& .Overlay-titleWrap {
|
194
|
+
display: flex;
|
195
|
+
padding: calc(var(--primer-stack-gap-condensed, 8px) * 0.75) 0 calc(var(--primer-stack-gap-condensed, 8px) * 0.75) var(--primer-stack-gap-condensed, 8px);
|
196
|
+
flex-direction: column;
|
197
|
+
flex-grow: 1;
|
198
|
+
gap: var(--primer-control-small-gap, 4px);
|
199
|
+
|
200
|
+
& .Overlay-title {
|
201
|
+
margin: 0;
|
202
|
+
font-size: var(--primer-text-body-size-medium, 14px);
|
203
|
+
font-weight: var(--base-text-weight-semibold, 600);
|
204
|
+
}
|
205
|
+
|
206
|
+
& .Overlay-description {
|
207
|
+
margin: 0;
|
208
|
+
font-size: var(--primer-text-body-size-small, 12px);
|
209
|
+
font-weight: var(--base-text-weight-normal, 400);
|
210
|
+
color: var(--color-fg-muted);
|
211
|
+
}
|
212
|
+
}
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
216
|
+
/* generic body content slot */
|
217
|
+
.Overlay-body {
|
218
|
+
padding: var(--primer-stack-padding-normal, 16px);
|
219
|
+
padding-top: 0;
|
220
|
+
overflow-y: auto;
|
221
|
+
scrollbar-width: thin;
|
222
|
+
font-size: var(--primer-text-body-size-medium, 14px);
|
223
|
+
flex-grow: 1;
|
224
|
+
|
225
|
+
&.Overlay-body--paddingCondensed {
|
226
|
+
padding: var(--primer-stack-padding-condensed, 8px);
|
227
|
+
padding-top: 0;
|
228
|
+
}
|
229
|
+
|
230
|
+
&.Overlay-body--paddingNone {
|
231
|
+
padding: 0;
|
232
|
+
}
|
233
|
+
}
|
234
|
+
|
235
|
+
/* generic footer slot */
|
236
|
+
.Overlay-footer {
|
237
|
+
z-index: 1;
|
238
|
+
display: flex;
|
239
|
+
padding: 0 var(--primer-stack-padding-normal, 16px) var(--primer-stack-padding-normal, 16px) var(--primer-stack-padding-normal, 16px);
|
240
|
+
flex-direction: row;
|
241
|
+
flex-shrink: 0;
|
242
|
+
flex-wrap: wrap;
|
243
|
+
|
244
|
+
&.Overlay-footer--divided {
|
245
|
+
padding-top: var(--primer-stack-padding-normal, 16px);
|
246
|
+
box-shadow: inset 0 var(--primer-borderWidth-thin, 1px) var(--color-border-default);
|
247
|
+
}
|
248
|
+
|
249
|
+
&.Overlay-footer--alignStart {
|
250
|
+
justify-content: flex-start;
|
251
|
+
gap: var(--primer-stack-gap-condensed, 8px);
|
252
|
+
}
|
253
|
+
|
254
|
+
&.Overlay-footer--alignCenter {
|
255
|
+
justify-content: center;
|
256
|
+
gap: var(--primer-stack-gap-condensed, 8px);
|
257
|
+
}
|
258
|
+
|
259
|
+
&.Overlay-footer--alignEnd {
|
260
|
+
justify-content: flex-end;
|
261
|
+
gap: var(--primer-stack-gap-condensed, 8px);
|
262
|
+
}
|
263
|
+
}
|
264
|
+
|
265
|
+
/* TODO: replace with refactored IconButton */
|
266
|
+
.Overlay-closeButton {
|
267
|
+
position: relative;
|
268
|
+
display: grid;
|
269
|
+
width: var(--base-size-32, 32px);
|
270
|
+
height: var(--base-size-32, 32px);
|
271
|
+
padding: 0;
|
272
|
+
color: var(--color-fg-muted);
|
273
|
+
cursor: pointer;
|
274
|
+
user-select: none;
|
275
|
+
background-color: transparent;
|
276
|
+
border: var(--primer-borderWidth-thin, 1px) solid transparent;
|
277
|
+
border-radius: var(--primer-borderRadius-medium, 6px);
|
278
|
+
transition: 0.2s cubic-bezier(0.3, 0, 0.5, 1);
|
279
|
+
transition-property: color, background-color, border-color;
|
280
|
+
place-content: center;
|
281
|
+
align-self: flex-start;
|
282
|
+
flex-shrink: 0;
|
283
|
+
|
284
|
+
&:hover,
|
285
|
+
&:focus {
|
286
|
+
background-color: var(--color-btn-hover-bg);
|
287
|
+
border: var(--primer-borderWidth-thin, 1px) solid var(--color-btn-hover-bg);
|
288
|
+
}
|
289
|
+
|
290
|
+
/* Override .close-button's `border: 0` that triggers a border-color transition on hover */
|
291
|
+
&.close-button {
|
292
|
+
border: var(--primer-borderWidth-thin, 1px) solid transparent;
|
293
|
+
}
|
294
|
+
}
|
295
|
+
|
296
|
+
@define-mixin Overlay-backdrop {
|
297
|
+
position: fixed;
|
298
|
+
top: 0;
|
299
|
+
right: 0;
|
300
|
+
bottom: 0;
|
301
|
+
left: 0;
|
302
|
+
z-index: 999;
|
303
|
+
display: flex;
|
304
|
+
background-color: var(--color-neutral-muted);
|
305
|
+
}
|
306
|
+
|
307
|
+
@define-mixin Overlay-backdrop--transparent {
|
308
|
+
position: absolute;
|
309
|
+
z-index: 999;
|
310
|
+
background-color: transparent;
|
311
|
+
}
|
312
|
+
|
313
|
+
/* variants must be mixins so we can extend within a media query (@extend is not supported inside media queries) */
|
314
|
+
|
315
|
+
/* border-radius repeats within placement options to ensure the original radius is reset when two classes co-exist */
|
316
|
+
|
317
|
+
/* center */
|
318
|
+
@define-mixin Overlay-backdrop--center {
|
319
|
+
@mixin Overlay-backdrop;
|
320
|
+
|
321
|
+
align-items: center;
|
322
|
+
justify-content: center;
|
323
|
+
}
|
324
|
+
|
325
|
+
/* anchor */
|
326
|
+
@define-mixin Overlay-backdrop--anchor {
|
327
|
+
@mixin Overlay-backdrop--transparent;
|
328
|
+
|
329
|
+
& .Overlay {
|
330
|
+
width: auto;
|
331
|
+
}
|
332
|
+
}
|
333
|
+
|
334
|
+
/* anchor side(s) */
|
335
|
+
@define-mixin Overlay-backdrop--side $responsiveVariant {
|
336
|
+
@mixin Overlay-backdrop;
|
337
|
+
|
338
|
+
/* default left */
|
339
|
+
align-items: center;
|
340
|
+
justify-content: left;
|
341
|
+
|
342
|
+
&.Overlay-backdrop--placement-left$(responsiveVariant) {
|
343
|
+
align-items: center;
|
344
|
+
justify-content: left;
|
345
|
+
|
346
|
+
& > .Overlay$(responsiveVariant) {
|
347
|
+
height: 100vh;
|
348
|
+
max-height: unset;
|
349
|
+
border-radius: var(--primer-borderRadius-large, 12px);
|
350
|
+
border-top-left-radius: 0;
|
351
|
+
border-bottom-left-radius: 0;
|
352
|
+
|
353
|
+
@media screen and (prefers-reduced-motion: no-preference) {
|
354
|
+
animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideInRight;
|
355
|
+
}
|
356
|
+
}
|
357
|
+
}
|
358
|
+
|
359
|
+
&.Overlay-backdrop--placement-right$(responsiveVariant) {
|
360
|
+
align-items: center;
|
361
|
+
justify-content: right;
|
362
|
+
|
363
|
+
& > .Overlay$(responsiveVariant) {
|
364
|
+
height: 100vh;
|
365
|
+
max-height: unset;
|
366
|
+
border-radius: var(--primer-borderRadius-large, 12px);
|
367
|
+
border-top-right-radius: 0;
|
368
|
+
border-bottom-right-radius: 0;
|
369
|
+
|
370
|
+
@media screen and (prefers-reduced-motion: no-preference) {
|
371
|
+
animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideInLeft;
|
372
|
+
}
|
373
|
+
}
|
374
|
+
}
|
375
|
+
|
376
|
+
&.Overlay-backdrop--placement-bottom$(responsiveVariant) {
|
377
|
+
align-items: end;
|
378
|
+
justify-content: center;
|
379
|
+
|
380
|
+
& > .Overlay$(responsiveVariant) {
|
381
|
+
width: 100vw;
|
382
|
+
height: auto;
|
383
|
+
max-height: calc(100vh - 2rem);
|
384
|
+
border-radius: var(--primer-borderRadius-large, 12px);
|
385
|
+
border-bottom-right-radius: 0;
|
386
|
+
border-bottom-left-radius: 0;
|
387
|
+
|
388
|
+
@media screen and (prefers-reduced-motion: no-preference) {
|
389
|
+
animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideUp;
|
390
|
+
}
|
391
|
+
}
|
392
|
+
}
|
393
|
+
|
394
|
+
&.Overlay-backdrop--placement-top$(responsiveVariant) {
|
395
|
+
align-items: start;
|
396
|
+
justify-content: center;
|
397
|
+
|
398
|
+
& > .Overlay$(responsiveVariant) {
|
399
|
+
border-radius: var(--primer-borderRadius-large, 12px);
|
400
|
+
border-top-left-radius: 0;
|
401
|
+
border-top-right-radius: 0;
|
402
|
+
|
403
|
+
@media screen and (prefers-reduced-motion: no-preference) {
|
404
|
+
animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideDown;
|
405
|
+
}
|
406
|
+
}
|
407
|
+
}
|
408
|
+
}
|
409
|
+
|
410
|
+
/* full width */
|
411
|
+
@define-mixin Overlay-backdrop--full {
|
412
|
+
@mixin Overlay-backdrop;
|
413
|
+
|
414
|
+
& .Overlay {
|
415
|
+
width: 100%;
|
416
|
+
max-width: 100vw;
|
417
|
+
height: 100%;
|
418
|
+
max-height: 100vh;
|
419
|
+
border-radius: unset !important;
|
420
|
+
flex-grow: 1;
|
421
|
+
}
|
422
|
+
}
|
423
|
+
|
424
|
+
/* Overlay variant classnames */
|
425
|
+
.Overlay-backdrop--center {
|
426
|
+
@mixin Overlay-backdrop--center;
|
427
|
+
}
|
428
|
+
|
429
|
+
.Overlay-backdrop--anchor {
|
430
|
+
@mixin Overlay-backdrop--anchor;
|
431
|
+
}
|
432
|
+
|
433
|
+
.Overlay-backdrop--side {
|
434
|
+
@mixin Overlay-backdrop--side;
|
435
|
+
}
|
436
|
+
|
437
|
+
.Overlay-backdrop--full {
|
438
|
+
@mixin Overlay-backdrop--full;
|
439
|
+
}
|
440
|
+
|
441
|
+
/* responsive variants */
|
442
|
+
|
443
|
+
/* --primer-viewportRange-narrowLandscape */
|
444
|
+
@media (max-width: 767px) {
|
445
|
+
.Overlay-backdrop--center-whenNarrow {
|
446
|
+
@mixin Overlay-backdrop--center;
|
447
|
+
}
|
448
|
+
|
449
|
+
.Overlay-backdrop--anchor-whenNarrow {
|
450
|
+
@mixin Overlay-backdrop--anchor;
|
451
|
+
}
|
452
|
+
|
453
|
+
.Overlay-backdrop--side-whenNarrow {
|
454
|
+
@mixin Overlay-backdrop--side -whenNarrow;
|
455
|
+
}
|
456
|
+
|
457
|
+
.Overlay-backdrop--full-whenNarrow {
|
458
|
+
@mixin Overlay-backdrop--full;
|
459
|
+
}
|
460
|
+
}
|
461
|
+
|
462
|
+
@keyframes Overlay--motion-slideDown {
|
463
|
+
from {
|
464
|
+
transform: translateY(-100%);
|
465
|
+
}
|
466
|
+
}
|
467
|
+
|
468
|
+
@keyframes Overlay--motion-slideUp {
|
469
|
+
from {
|
470
|
+
transform: translateY(100%);
|
471
|
+
}
|
472
|
+
}
|
473
|
+
|
474
|
+
@keyframes Overlay--motion-slideInRight {
|
475
|
+
from {
|
476
|
+
transform: translateX(-100%);
|
477
|
+
}
|
478
|
+
}
|
479
|
+
|
480
|
+
@keyframes Overlay--motion-slideInLeft {
|
481
|
+
from {
|
482
|
+
transform: translateX(100%);
|
483
|
+
}
|
484
|
+
}
|
@@ -18,6 +18,9 @@ module Primer
|
|
18
18
|
# `aria-labelledby` relationship between the title and the unique id of
|
19
19
|
# the dialog.
|
20
20
|
class Dialog < Primer::Component
|
21
|
+
status :alpha
|
22
|
+
audited_at "2022-10-10"
|
23
|
+
|
21
24
|
DEFAULT_SIZE = :medium
|
22
25
|
SIZE_MAPPINGS = {
|
23
26
|
:small => "Overlay--size-small-portrait",
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module Alpha
|
5
|
+
class Dropdown
|
6
|
+
# This component is part of `Dropdown` and should not be
|
7
|
+
# used as a standalone component.
|
8
|
+
class Menu < Primer::Component
|
9
|
+
status :alpha
|
10
|
+
|
11
|
+
AS_DEFAULT = :default
|
12
|
+
AS_OPTIONS = [AS_DEFAULT, :list].freeze
|
13
|
+
|
14
|
+
SCHEME_DEFAULT = :default
|
15
|
+
SCHEME_MAPPINGS = {
|
16
|
+
SCHEME_DEFAULT => "",
|
17
|
+
:dark => "dropdown-menu-dark"
|
18
|
+
}.freeze
|
19
|
+
|
20
|
+
DIRECTION_DEFAULT = :se
|
21
|
+
DIRECTION_OPTIONS = [DIRECTION_DEFAULT, :sw, :w, :e, :ne, :s].freeze
|
22
|
+
|
23
|
+
# @param tag [Symbol] <%= one_of(Primer::Alpha::Dropdown::Menu::Item::TAG_OPTIONS) %>.
|
24
|
+
# @param divider [Boolean] Whether the item is a divider without any function.
|
25
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
26
|
+
renders_many :items, lambda { |divider: false, **system_arguments|
|
27
|
+
Primer::Alpha::Dropdown::Menu::Item.new(as: @as, divider: divider, **system_arguments)
|
28
|
+
}
|
29
|
+
|
30
|
+
# @param as [Symbol] When `as` is `:list`, wraps the menu in a `<ul>` with a `<li>` for each item.
|
31
|
+
# @param direction [Symbol] <%= one_of(Primer::Alpha::Dropdown::Menu::DIRECTION_OPTIONS) %>.
|
32
|
+
# @param header [String] Header to be displayed above the menu.
|
33
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
34
|
+
def initialize(as: AS_DEFAULT, direction: DIRECTION_DEFAULT, scheme: SCHEME_DEFAULT, header: nil, **system_arguments)
|
35
|
+
@header = header
|
36
|
+
@direction = direction
|
37
|
+
@as = fetch_or_fallback(AS_OPTIONS, as, AS_DEFAULT)
|
38
|
+
|
39
|
+
@system_arguments = deny_tag_argument(**system_arguments)
|
40
|
+
@system_arguments[:tag] = "details-menu"
|
41
|
+
@system_arguments[:role] = "menu"
|
42
|
+
|
43
|
+
@system_arguments[:classes] = class_names(
|
44
|
+
@system_arguments[:classes],
|
45
|
+
"dropdown-menu",
|
46
|
+
"dropdown-menu-#{fetch_or_fallback(DIRECTION_OPTIONS, direction, DIRECTION_DEFAULT)}",
|
47
|
+
SCHEME_MAPPINGS[fetch_or_fallback(SCHEME_MAPPINGS.keys, scheme, SCHEME_DEFAULT)]
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def list?
|
54
|
+
@as == :list
|
55
|
+
end
|
56
|
+
|
57
|
+
# Items to be rendered in the `Dropdown` menu.
|
58
|
+
class Item < Primer::Component
|
59
|
+
status :alpha
|
60
|
+
|
61
|
+
TAG_DEFAULT = :a
|
62
|
+
BUTTON_TAGS = [:button, :summary].freeze
|
63
|
+
TAG_OPTIONS = [TAG_DEFAULT, *BUTTON_TAGS].freeze
|
64
|
+
|
65
|
+
def initialize(as:, tag: TAG_DEFAULT, divider: false, **system_arguments)
|
66
|
+
@divider = divider
|
67
|
+
@as = as
|
68
|
+
|
69
|
+
@system_arguments = system_arguments
|
70
|
+
@system_arguments[:tag] = fetch_or_fallback(TAG_OPTIONS, tag, TAG_DEFAULT)
|
71
|
+
@system_arguments[:tag] = :li if list? && divider?
|
72
|
+
@system_arguments[:role] ||= :menuitem
|
73
|
+
@system_arguments[:role] = :separator if divider
|
74
|
+
@system_arguments[:classes] = class_names(
|
75
|
+
@system_arguments[:classes],
|
76
|
+
"dropdown-item" => !divider,
|
77
|
+
"dropdown-divider" => divider
|
78
|
+
)
|
79
|
+
end
|
80
|
+
|
81
|
+
def call
|
82
|
+
component = if BUTTON_TAGS.include?(@system_arguments[:tag])
|
83
|
+
Primer::ButtonComponent.new(scheme: :link, **@system_arguments)
|
84
|
+
else
|
85
|
+
Primer::BaseComponent.new(**@system_arguments)
|
86
|
+
end
|
87
|
+
|
88
|
+
# divider has no content
|
89
|
+
render(component) if divider?
|
90
|
+
|
91
|
+
render(component) { content }
|
92
|
+
end
|
93
|
+
|
94
|
+
def divider?
|
95
|
+
@divider
|
96
|
+
end
|
97
|
+
|
98
|
+
def list?
|
99
|
+
@as == :list
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
.dropdown{position:relative}.dropdown-caret{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;border-style:solid;border-width:var(--primer-borderWidth-thicker,4px) var(--primer-borderWidth-thicker,4px) 0;content:"";display:inline-block;height:0;vertical-align:middle;width:0}.dropdown-menu{background-clip:padding-box;background-color:var(--color-canvas-overlay);border:var(--primer-borderWidth-thin,1px) solid var(--color-border-default);border-radius:var(--primer-borderRadius-medium,6px);box-shadow:var(--color-shadow-large);left:0;list-style:none;margin-top:2px;padding-bottom:var(--primer-control-small-paddingBlock,4px);padding-top:var(--primer-control-small-paddingBlock,4px);position:absolute;top:100%;width:160px;z-index:100}.dropdown-menu:after,.dropdown-menu:before{content:"";display:inline-block;position:absolute}.dropdown-menu:before{border:8px solid #0000;border-bottom:8px solid var(--color-border-default)}.dropdown-menu:after{border:7px solid #0000;border-bottom:7px solid var(--color-canvas-overlay)}.dropdown-menu>ul{list-style:none}.dropdown-menu-no-overflow{width:auto}.dropdown-menu-no-overflow .dropdown-item{overflow:visible;padding:var(--primer-control-small-paddingBlock,4px) var(--primer-control-medium-paddingInline-spacious,16px);text-overflow:inherit}.dropdown-item{color:var(--color-fg-default);display:block;overflow:hidden;padding:var(--primer-control-small-paddingBlock,4px) var(--primer-control-medium-paddingInline-condensed,8px) var(--primer-control-small-paddingBlock,4px) var(--primer-control-medium-paddingInline-spacious,16px);text-overflow:ellipsis;white-space:nowrap}.dropdown-item:hover{background-color:var(--color-accent-emphasis);color:var(--color-fg-on-emphasis);text-decoration:none}.dropdown-item:hover>.octicon{color:inherit;opacity:1}.dropdown-item:hover [class*=color-fg-],.dropdown-item:hover>.Label{color:inherit!important}.dropdown-item:hover>.Label{border-color:currentcolor}.dropdown-item.btn-link,.dropdown-signout{text-align:left;width:100%}.dropdown-signout{background:none;border:0}.dropdown-divider{border-top:var(--primer-borderWidth-thin,1px) solid var(--color-border-default);display:block;height:0;margin:var(--primer-stack-gap-condensed,8px) 0}.dropdown-header{color:var(--color-fg-muted);font-size:var(--primer-text-body-size-small,12px);padding:var(--primer-control-small-paddingBlock,4px) var(--primer-control-medium-paddingInline-spacious,16px)}.dropdown-item[aria-checked=false] .octicon-check{display:none}.dropdown-menu-w{left:auto;margin-right:8px;margin-top:0;right:100%;top:0;width:auto}.dropdown-menu-w:before{border-color:#0000;border-left-color:var(--color-border-default);left:auto;right:-16px;top:10px}.dropdown-menu-w:after{border-color:#0000;border-left-color:var(--color-canvas-overlay);left:auto;right:-14px;top:11px}.dropdown-menu-e{left:100%;margin-left:8px;margin-top:0;top:0;width:auto}.dropdown-menu-e:before{border-color:#0000;border-right-color:var(--color-border-default);left:-16px;top:10px}.dropdown-menu-e:after{border-color:#0000;border-right-color:var(--color-canvas-overlay);left:-14px;top:11px}.dropdown-menu-ne{bottom:100%;left:0;margin-bottom:3px;top:auto}.dropdown-menu-ne:after,.dropdown-menu-ne:before{right:auto;top:auto}.dropdown-menu-ne:before{border-bottom:0;border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--color-border-default);bottom:-8px;left:9px}.dropdown-menu-ne:after{border-bottom:0;border-left:7px solid #0000;border-right:7px solid #0000;border-top:7px solid var(--color-canvas-overlay);bottom:-7px;left:10px}.dropdown-menu-s{left:auto;right:50%;transform:translateX(50%)}.dropdown-menu-s:before{right:50%;top:-16px;transform:translateX(50%)}.dropdown-menu-s:after{right:50%;top:-14px;transform:translateX(50%)}.dropdown-menu-sw{left:auto;right:0}.dropdown-menu-sw:before{left:auto;right:9px;top:-16px}.dropdown-menu-sw:after{left:auto;right:10px;top:-14px}.dropdown-menu-se:before{left:9px;top:-16px}.dropdown-menu-se:after{left:10px;top:-14px}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"name":"alpha/dropdown","selectors":[".dropdown",".dropdown-caret",".dropdown-menu",".dropdown-menu:after",".dropdown-menu:before",".dropdown-menu>ul",".dropdown-menu-no-overflow",".dropdown-menu-no-overflow .dropdown-item",".dropdown-item",".dropdown-item:hover",".dropdown-item:hover>.octicon",".dropdown-item:hover [class*=color-fg-]",".dropdown-item:hover>.Label",".dropdown-item.btn-link",".dropdown-signout",".dropdown-divider",".dropdown-header",".dropdown-item[aria-checked=false] .octicon-check",".dropdown-menu-w",".dropdown-menu-w:before",".dropdown-menu-w:after",".dropdown-menu-e",".dropdown-menu-e:before",".dropdown-menu-e:after",".dropdown-menu-ne",".dropdown-menu-ne:after",".dropdown-menu-ne:before",".dropdown-menu-s",".dropdown-menu-s:before",".dropdown-menu-s:after",".dropdown-menu-sw",".dropdown-menu-sw:before",".dropdown-menu-sw:after",".dropdown-menu-se:before",".dropdown-menu-se:after"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["dropdown.pcss"],"names":[],"mappings":"AAEA,UACE,iBACF,CAEA,gBASE,yBAAgC,CAChC,uBAA8B,CAF9B,wBAA+B,CAF/B,kBAAmB,CACnB,0FAA6F,CAF7F,UAAW,CAJX,oBAAqB,CAErB,QAAS,CACT,qBAAsB,CAFtB,OASF,CAKA,eAWE,2BAA4B,CAD5B,4CAA6C,CAE7C,2EAA6E,CAC7E,mDAAqD,CACrD,oCAAqC,CAXrC,MAAO,CAMP,eAAgB,CADhB,cAAe,CADf,2DAA6D,CAD7D,wDAA0D,CAL1D,iBAAkB,CAClB,QAAS,CAGT,WAAY,CADZ,WAkCF,CAtBE,2CAIE,UAAW,CADX,oBAAqB,CADrB,iBAGF,CAGA,sBAEE,sBAAgD,CAAhD,mDACF,CAGA,qBAEE,sBAAgD,CAAhD,mDACF,CAEA,kBACE,eACF,CAGF,2BACE,UAOF,CALE,0CAEE,gBAAiB,CADjB,6GAAgH,CAEhH,qBACF,CAIF,eAIE,6BAA8B,CAH9B,aAAc,CAEd,eAAgB,CADhB,mNAAwN,CAGxN,sBAAuB,CACvB,kBA0BF,CAxBE,qBAGE,6CAA8C,CAF9C,iCAAkC,CAClC,oBAgBF,CAbE,8BACE,aAAc,CACd,SACF,CAMA,
|
1
|
+
{"version":3,"sources":["dropdown.pcss"],"names":[],"mappings":"AAEA,UACE,iBACF,CAEA,gBASE,yBAAgC,CAChC,uBAA8B,CAF9B,wBAA+B,CAF/B,kBAAmB,CACnB,0FAA6F,CAF7F,UAAW,CAJX,oBAAqB,CAErB,QAAS,CACT,qBAAsB,CAFtB,OASF,CAKA,eAWE,2BAA4B,CAD5B,4CAA6C,CAE7C,2EAA6E,CAC7E,mDAAqD,CACrD,oCAAqC,CAXrC,MAAO,CAMP,eAAgB,CADhB,cAAe,CADf,2DAA6D,CAD7D,wDAA0D,CAL1D,iBAAkB,CAClB,QAAS,CAGT,WAAY,CADZ,WAkCF,CAtBE,2CAIE,UAAW,CADX,oBAAqB,CADrB,iBAGF,CAGA,sBAEE,sBAAgD,CAAhD,mDACF,CAGA,qBAEE,sBAAgD,CAAhD,mDACF,CAEA,kBACE,eACF,CAGF,2BACE,UAOF,CALE,0CAEE,gBAAiB,CADjB,6GAAgH,CAEhH,qBACF,CAIF,eAIE,6BAA8B,CAH9B,aAAc,CAEd,eAAgB,CADhB,mNAAwN,CAGxN,sBAAuB,CACvB,kBA0BF,CAxBE,qBAGE,6CAA8C,CAF9C,iCAAkC,CAClC,oBAgBF,CAbE,8BACE,aAAc,CACd,SACF,CAMA,oEACE,uBAEF,CAHA,4BAEE,yBACF,CASJ,0CAJI,eAAgB,CADhB,UAUJ,CALA,kBAGE,eAAgB,CAChB,QACF,CAEA,kBAIE,+EAAiF,CAHjF,aAAc,CACd,QAAS,CACT,8CAEF,CAEA,iBAGE,2BAA4B,CAD5B,iDAAmD,CADnD,6GAGF,CAEA,kDACE,YACF,CAOA,iBAGE,SAAU,CAGV,gBAAiB,CADjB,YAAa,CAHb,UAAW,CADX,KAAM,CAGN,UAmBF,CAfE,wBAIE,kBAAyB,CACzB,6CAA8C,CAF9C,SAAU,CADV,WAAY,CADZ,QAKF,CAEA,uBAIE,kBAAyB,CACzB,6CAA8C,CAF9C,SAAU,CADV,WAAY,CADZ,QAKF,CAGF,iBAEE,SAAU,CAGV,eAAgB,CADhB,YAAa,CAHb,KAAM,CAEN,UAiBF,CAbE,wBAGE,kBAAyB,CACzB,8CAA+C,CAF/C,UAAW,CADX,QAIF,CAEA,uBAGE,kBAAyB,CACzB,8CAA+C,CAF/C,UAAW,CADX,QAIF,CAGF,kBAEE,WAAY,CACZ,MAAO,CACP,iBAAkB,CAHlB,QA4BF,CAvBE,iDAGE,UAAW,CADX,QAEF,CAEA,yBAKE,eAAgB,CAChB,2BAAkC,CAFlC,4BAAmC,CADnC,gDAAiD,CAFjD,WAAY,CACZ,QAKF,CAEA,wBAKE,eAAgB,CAChB,2BAAkC,CAFlC,4BAAmC,CADnC,gDAAiD,CAFjD,WAAY,CACZ,SAKF,CAGF,iBAEE,SAAU,CADV,SAAU,CAEV,yBAaF,CAXE,wBAEE,SAAU,CADV,SAAU,CAEV,yBACF,CAEA,uBAEE,SAAU,CADV,SAAU,CAEV,yBACF,CAGF,kBAEE,SAAU,CADV,OAcF,CAXE,yBAGE,SAAU,CADV,SAAU,CADV,SAGF,CAEA,wBAGE,SAAU,CADV,UAAW,CADX,SAGF,CAIA,yBAEE,QAAS,CADT,SAEF,CAEA,wBAEE,SAAU,CADV,SAEF","file":"dropdown.css","sourcesContent":["/* dropdown */\n\n.dropdown {\n position: relative;\n}\n\n.dropdown-caret {\n display: inline-block;\n width: 0;\n height: 0;\n vertical-align: middle;\n content: '';\n border-style: solid;\n border-width: var(--primer-borderWidth-thicker, 4px) var(--primer-borderWidth-thicker, 4px) 0;\n border-right-color: transparent;\n border-bottom-color: transparent;\n border-left-color: transparent;\n}\n\n/* Requires a positioning class (e.g., `.dropdown-menu-w`) to determine which\n** way the menu should render from the element triggering it. */\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 100;\n width: 160px;\n padding-top: var(--primer-control-small-paddingBlock, 4px);\n padding-bottom: var(--primer-control-small-paddingBlock, 4px);\n margin-top: 2px;\n list-style: none;\n background-color: var(--color-canvas-overlay);\n background-clip: padding-box;\n border: var(--primer-borderWidth-thin, 1px) solid var(--color-border-default);\n border-radius: var(--primer-borderRadius-medium, 6px);\n box-shadow: var(--color-shadow-large);\n\n &::before,\n &::after {\n position: absolute;\n display: inline-block;\n content: '';\n }\n\n /* caret border */\n &::before {\n border: 8px solid transparent;\n border-bottom-color: var(--color-border-default);\n }\n\n /* caret background (should match dropdown background) */\n &::after {\n border: 7px solid transparent;\n border-bottom-color: var(--color-canvas-overlay);\n }\n\n & > ul {\n list-style: none;\n }\n}\n\n.dropdown-menu-no-overflow {\n width: auto;\n\n & .dropdown-item {\n padding: var(--primer-control-small-paddingBlock, 4px) var(--primer-control-medium-paddingInline-spacious, 16px);\n overflow: visible;\n text-overflow: inherit;\n }\n}\n\n/* Dropdown items (can be links or buttons) */\n.dropdown-item {\n display: block;\n padding: var(--primer-control-small-paddingBlock, 4px) var(--primer-control-medium-paddingInline-condensed, 8px) var(--primer-control-small-paddingBlock, 4px) var(--primer-control-medium-paddingInline-spacious, 16px);\n overflow: hidden;\n color: var(--color-fg-default);\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n color: var(--color-fg-on-emphasis);\n text-decoration: none;\n background-color: var(--color-accent-emphasis);\n\n & > .octicon {\n color: inherit;\n opacity: 1;\n }\n\n & [class*='color-fg-'] {\n color: inherit !important;\n }\n\n & > .Label {\n color: inherit !important;\n border-color: currentcolor;\n }\n }\n\n &.btn-link {\n width: 100%;\n text-align: left;\n }\n}\n\n.dropdown-signout {\n width: 100%;\n text-align: left;\n background: none;\n border: 0;\n}\n\n.dropdown-divider {\n display: block;\n height: 0;\n margin: var(--primer-stack-gap-condensed, 8px) 0;\n border-top: var(--primer-borderWidth-thin, 1px) solid var(--color-border-default);\n}\n\n.dropdown-header {\n padding: var(--primer-control-small-paddingBlock, 4px) var(--primer-control-medium-paddingInline-spacious, 16px);\n font-size: var(--primer-text-body-size-small, 12px);\n color: var(--color-fg-muted);\n}\n\n.dropdown-item[aria-checked='false'] .octicon-check {\n display: none;\n}\n\n/* Directional classes\n**\n** Move the menu and the caret attached to it. Requires at least one of these on\n** the `.dropdown-menu` element. */\n\n.dropdown-menu-w {\n top: 0;\n right: 100%;\n left: auto;\n width: auto;\n margin-top: 0;\n margin-right: 8px;\n\n &::before {\n top: 10px;\n right: -16px;\n left: auto;\n border-color: transparent;\n border-left-color: var(--color-border-default);\n }\n\n &::after {\n top: 11px;\n right: -14px;\n left: auto;\n border-color: transparent;\n border-left-color: var(--color-canvas-overlay);\n }\n}\n\n.dropdown-menu-e {\n top: 0;\n left: 100%;\n width: auto;\n margin-top: 0;\n margin-left: 8px;\n\n &::before {\n top: 10px;\n left: -16px;\n border-color: transparent;\n border-right-color: var(--color-border-default);\n }\n\n &::after {\n top: 11px;\n left: -14px;\n border-color: transparent;\n border-right-color: var(--color-canvas-overlay);\n }\n}\n\n.dropdown-menu-ne {\n top: auto;\n bottom: 100%;\n left: 0;\n margin-bottom: 3px;\n\n &::before,\n &::after {\n top: auto;\n right: auto;\n }\n\n &::before {\n bottom: -8px;\n left: 9px;\n border-top: 8px solid var(--color-border-default);\n border-right: 8px solid transparent;\n border-bottom: 0;\n border-left: 8px solid transparent;\n }\n\n &::after {\n bottom: -7px;\n left: 10px;\n border-top: 7px solid var(--color-canvas-overlay);\n border-right: 7px solid transparent;\n border-bottom: 0;\n border-left: 7px solid transparent;\n }\n}\n\n.dropdown-menu-s {\n right: 50%;\n left: auto;\n transform: translateX(50%);\n\n &::before {\n top: -16px;\n right: 50%;\n transform: translateX(50%);\n }\n\n &::after {\n top: -14px;\n right: 50%;\n transform: translateX(50%);\n }\n}\n\n.dropdown-menu-sw {\n right: 0;\n left: auto;\n\n &::before {\n top: -16px;\n right: 9px;\n left: auto;\n }\n\n &::after {\n top: -14px;\n right: 10px;\n left: auto;\n }\n}\n\n.dropdown-menu-se {\n &::before {\n top: -16px;\n left: 9px;\n }\n\n &::after {\n top: -14px;\n left: 10px;\n }\n}\n"]}
|
File without changes
|
File without changes
|
File without changes
|