primer_view_components 0.0.113 → 0.0.115

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -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 +2 -2
  6. data/app/assets/styles/primer_view_components.css.map +1 -1
  7. data/app/components/primer/alpha/action_list/divider.rb +2 -0
  8. data/app/components/primer/alpha/action_list/heading.rb +2 -0
  9. data/app/components/primer/alpha/action_list/item.rb +8 -6
  10. data/app/components/primer/alpha/action_list.rb +1 -0
  11. data/app/components/primer/alpha/auto_complete/auto_complete.html.erb +1 -1
  12. data/app/components/primer/alpha/auto_complete/item.rb +1 -0
  13. data/app/components/primer/alpha/auto_complete.rb +3 -2
  14. data/app/components/primer/alpha/banner.html.erb +1 -1
  15. data/app/components/primer/alpha/banner.rb +1 -0
  16. data/app/components/primer/alpha/button_marketing.rb +2 -0
  17. data/app/components/primer/alpha/dialog.rb +3 -0
  18. data/app/components/primer/alpha/image.rb +1 -0
  19. data/app/components/primer/alpha/image_crop.html.erb +1 -1
  20. data/app/components/primer/alpha/layout.css +1 -0
  21. data/app/components/primer/alpha/layout.css.json +1 -0
  22. data/app/components/primer/alpha/layout.css.map +1 -0
  23. data/app/components/primer/alpha/layout.pcss +268 -0
  24. data/app/components/primer/{menu_component.css → alpha/menu.css} +0 -0
  25. data/app/components/primer/alpha/menu.css.json +1 -0
  26. data/app/components/primer/alpha/menu.css.map +1 -0
  27. data/app/components/primer/{menu_component.html.erb → alpha/menu.html.erb} +0 -0
  28. data/app/components/primer/{menu_component.pcss → alpha/menu.pcss} +0 -0
  29. data/app/components/primer/alpha/menu.rb +76 -0
  30. data/app/components/primer/{octicon_symbols_component.html.erb → alpha/octicon_symbols.html.erb} +0 -0
  31. data/app/components/primer/alpha/octicon_symbols.rb +61 -0
  32. data/app/components/primer/alpha/text_field.rb +1 -0
  33. data/app/components/primer/alpha/toggle_switch.html.erb +2 -2
  34. data/app/components/primer/alpha/toggle_switch.rb +2 -0
  35. data/app/components/primer/alpha/tool_tip.js +77 -69
  36. data/app/components/primer/alpha/tool_tip.ts +63 -51
  37. data/app/components/primer/alpha/tooltip.rb +2 -0
  38. data/app/components/primer/beta/auto_complete/item.rb +4 -4
  39. data/app/components/primer/beta/auto_complete.rb +3 -3
  40. data/app/components/primer/beta/avatar.rb +1 -0
  41. data/app/components/primer/beta/base_button.rb +1 -0
  42. data/app/components/primer/beta/blankslate.rb +5 -5
  43. data/app/components/primer/beta/button.rb +7 -7
  44. data/app/components/primer/beta/clipboard_copy.html.erb +2 -2
  45. data/app/components/primer/beta/clipboard_copy.rb +1 -0
  46. data/app/components/primer/beta/close_button.rb +2 -1
  47. data/app/components/primer/beta/counter.rb +1 -0
  48. data/app/components/primer/beta/heading.rb +1 -0
  49. data/app/components/primer/beta/icon_button.html.erb +1 -1
  50. data/app/components/primer/beta/icon_button.rb +1 -0
  51. data/app/components/primer/beta/label.rb +1 -0
  52. data/app/components/primer/beta/markdown.rb +291 -0
  53. data/app/components/primer/{octicon_component.html.erb → beta/octicon.html.erb} +0 -0
  54. data/app/components/primer/beta/octicon.rb +88 -0
  55. data/app/components/primer/beta/relative_time.rb +2 -1
  56. data/app/components/primer/{spinner_component.html.erb → beta/spinner.html.erb} +0 -0
  57. data/app/components/primer/beta/spinner.rb +46 -0
  58. data/app/components/primer/beta/text.rb +1 -0
  59. data/app/components/primer/blankslate_component.rb +3 -3
  60. data/app/components/primer/box.rb +1 -0
  61. data/app/components/primer/button_component.rb +3 -3
  62. data/app/components/primer/conditional_wrapper.rb +2 -0
  63. data/app/components/primer/hellip_button.rb +2 -0
  64. data/app/components/primer/icon_button.html.erb +2 -2
  65. data/app/components/primer/icon_button.rb +1 -0
  66. data/app/components/primer/layout_component.rb +2 -0
  67. data/app/components/primer/local_time.rb +3 -0
  68. data/app/components/primer/markdown.rb +2 -283
  69. data/app/components/primer/menu_component.rb +2 -69
  70. data/app/components/primer/navigation/tab_component.rb +2 -2
  71. data/app/components/primer/octicon_component.rb +3 -81
  72. data/app/components/primer/octicon_symbols_component.rb +2 -52
  73. data/app/components/primer/primer.d.ts +2 -0
  74. data/app/components/primer/primer.js +2 -0
  75. data/app/components/primer/primer.pcss +2 -3
  76. data/app/components/primer/primer.ts +2 -0
  77. data/app/components/primer/spinner_component.rb +2 -38
  78. data/app/components/primer/state_component.rb +1 -0
  79. data/app/components/primer/subhead_component.rb +2 -0
  80. data/app/components/primer/tab_container_component.rb +2 -0
  81. data/app/components/primer/time_ago_component.rb +2 -1
  82. data/app/components/primer/timeline_item_component.rb +3 -2
  83. data/app/components/primer/tooltip.rb +1 -0
  84. data/app/components/primer/truncate.rb +2 -0
  85. data/app/forms/immediate_validation_form.rb +29 -0
  86. data/app/forms/multi_input_form.rb +4 -2
  87. data/app/lib/primer/css/layout.css +1 -378
  88. data/app/lib/primer/css/layout.css.json +1 -1
  89. data/app/lib/primer/octicon/cache.rb +1 -1
  90. data/app/lib/primer/view_helper.rb +1 -1
  91. data/lib/primer/deprecations.yml +30 -0
  92. data/lib/primer/forms/builder.rb +48 -8
  93. data/lib/primer/forms/check_box.html.erb +3 -1
  94. data/lib/primer/forms/dsl/input.rb +23 -1
  95. data/lib/primer/forms/dsl/multi_input.rb +6 -9
  96. data/lib/primer/forms/dsl/select_list_input.rb +1 -1
  97. data/lib/primer/forms/dsl/text_field_input.rb +31 -1
  98. data/lib/primer/forms/form_control.html.erb +17 -13
  99. data/lib/primer/forms/form_control.rb +2 -0
  100. data/lib/primer/forms/multi.html.erb +6 -2
  101. data/lib/primer/forms/primer_multi_input.d.ts +10 -0
  102. data/lib/primer/forms/primer_multi_input.js +45 -0
  103. data/lib/primer/forms/primer_multi_input.ts +46 -0
  104. data/lib/primer/forms/primer_text_field.d.ts +1 -0
  105. data/lib/primer/forms/primer_text_field.js +62 -0
  106. data/lib/primer/forms/primer_text_field.ts +48 -0
  107. data/lib/primer/forms/radio_button.html.erb +3 -1
  108. data/lib/primer/forms/text_field.html.erb +8 -8
  109. data/lib/primer/forms/text_field.rb +11 -0
  110. data/lib/primer/view_components/linters/close_button_component_migration_counter.rb +1 -1
  111. data/lib/primer/view_components/version.rb +1 -1
  112. data/lib/tasks/docs.rake +6 -6
  113. data/lib/tasks/helpers/ast_traverser.rb +1 -1
  114. data/previews/primer/alpha/action_list_preview.rb +1 -1
  115. data/previews/primer/alpha/auto_complete_preview.rb +62 -6
  116. data/previews/primer/alpha/layout_preview.rb +179 -6
  117. data/previews/primer/{menu_component_preview → alpha/menu_preview}/default.html.erb +3 -3
  118. data/previews/primer/{menu_component_preview → alpha/menu_preview}/playground.html.erb +3 -3
  119. data/previews/primer/alpha/menu_preview.rb +14 -0
  120. data/previews/primer/alpha/toggle_switch_preview.rb +11 -9
  121. data/previews/primer/beta/auto_complete_preview/with_submit_button.html.erb +1 -1
  122. data/previews/primer/beta/auto_complete_preview.rb +19 -17
  123. data/previews/primer/{markdown_preview.rb → beta/markdown_preview.rb} +14 -12
  124. data/previews/primer/beta/octicon_preview.rb +24 -0
  125. data/previews/primer/beta/spinner_preview.rb +22 -0
  126. data/previews/primer/forms/forms_preview/immediate_validation_form.html.erb +3 -0
  127. data/previews/primer/forms/forms_preview/multi_input_form.html.erb +12 -1
  128. data/previews/primer/forms/forms_preview.rb +2 -0
  129. data/previews/primer/url_helpers.rb +15 -0
  130. data/static/arguments.json +178 -178
  131. data/static/audited_at.json +5 -0
  132. data/static/constants.json +50 -40
  133. data/static/statuses.json +12 -7
  134. metadata +34 -24
  135. data/app/components/primer/beta/button_group.css +0 -1
  136. data/app/components/primer/beta/button_group.css.json +0 -1
  137. data/app/components/primer/beta/button_group.css.map +0 -1
  138. data/app/components/primer/beta/button_group.pcss +0 -92
  139. data/app/components/primer/button_component.css +0 -1
  140. data/app/components/primer/button_component.css.json +0 -1
  141. data/app/components/primer/button_component.css.map +0 -1
  142. data/app/components/primer/button_component.pcss +0 -557
  143. data/app/components/primer/menu_component.css.json +0 -1
  144. data/app/components/primer/menu_component.css.map +0 -1
  145. data/previews/primer/menu_component_preview.rb +0 -12
  146. data/previews/primer/octicon_component_preview.rb +0 -22
  147. data/previews/primer/spinner_component_preview.rb +0 -20
@@ -1,557 +0,0 @@
1
- /* btn */
2
-
3
- /* Base button styles */
4
- .btn {
5
- position: relative;
6
- display: inline-block;
7
- padding: 5px var(--primer-control-medium-paddingInline-spacious, 16px);
8
- font-size: var(--primer-text-body-size-medium, 14px);
9
- font-weight: var(--base-text-weight-medium, 500);
10
- line-height: 20px; /* Specifically not inherit our `<body>` default */
11
- white-space: nowrap;
12
- vertical-align: middle;
13
- cursor: pointer;
14
- user-select: none;
15
- border: var(--primer-borderWidth-thin, 1px) solid;
16
- border-radius: var(--primer-borderRadius-medium, 6px);
17
- appearance: none; /* Corrects inability to style clickable `input` types in iOS. */
18
-
19
- &:hover {
20
- text-decoration: none;
21
- }
22
-
23
- &:disabled,
24
- &.disabled,
25
- &[aria-disabled='true'] {
26
- cursor: default;
27
- }
28
-
29
- & i {
30
- font-style: normal;
31
- font-weight: var(--base-text-weight-medium, 500);
32
- opacity: 0.75;
33
- }
34
-
35
- & .octicon {
36
- margin-right: var(--primer-control-small-gap, 4px);
37
- color: var(--color-fg-muted);
38
- vertical-align: text-bottom;
39
-
40
- &:only-child {
41
- margin-right: 0;
42
- }
43
- }
44
-
45
- & .Counter {
46
- margin-left: 2px;
47
- color: inherit;
48
- text-shadow: none;
49
- vertical-align: top;
50
- background-color: var(--color-btn-counter-bg);
51
- }
52
-
53
- & .dropdown-caret {
54
- margin-left: var(--primer-control-small-gap, 4px);
55
- opacity: 0.8;
56
- }
57
-
58
- /* Default button */
59
-
60
- color: var(--color-btn-text);
61
- background-color: var(--color-btn-bg);
62
- border-color: var(--color-btn-border);
63
- box-shadow: var(--color-btn-shadow), var(--color-btn-inset-shadow);
64
- transition: 80ms cubic-bezier(0.33, 1, 0.68, 1);
65
- transition-property: color, background-color, box-shadow, border-color;
66
-
67
- &:hover,
68
- &.hover,
69
- & [open] > & {
70
- background-color: var(--color-btn-hover-bg);
71
- border-color: var(--color-btn-hover-border);
72
- transition-duration: 0.1s;
73
- }
74
-
75
- &:active {
76
- background-color: var(--color-btn-active-bg);
77
- border-color: var(--color-btn-active-border);
78
- transition: none;
79
- }
80
-
81
- &.selected,
82
- &[aria-selected='true'] {
83
- background-color: var(--color-btn-selected-bg);
84
- box-shadow: var(--color-primer-shadow-inset);
85
- }
86
-
87
- &.disabled,
88
- &[aria-disabled='true'] {
89
- color: var(--color-primer-fg-disabled);
90
- background-color: var(--color-btn-bg);
91
- border-color: var(--color-btn-border);
92
-
93
- & .octicon {
94
- color: var(--color-primer-fg-disabled);
95
- }
96
- }
97
- }
98
-
99
- /* Primary button */
100
-
101
- .btn-primary {
102
- color: var(--color-btn-primary-text);
103
- background-color: var(--color-btn-primary-bg);
104
- border-color: var(--color-btn-primary-border);
105
- box-shadow: var(--color-btn-primary-shadow), var(--color-btn-primary-inset-shadow);
106
-
107
- &:hover,
108
- &.hover,
109
- & [open] > & {
110
- background-color: var(--color-btn-primary-hover-bg);
111
- border-color: var(--color-btn-primary-hover-border);
112
- }
113
-
114
- /* fallback :focus state */
115
- &:focus {
116
- @mixin focusOutlineOnEmphasis;
117
-
118
- /* remove fallback :focus if :focus-visible is supported */
119
- &:not(:focus-visible) {
120
- outline: solid 1px transparent;
121
- box-shadow: none;
122
- }
123
- }
124
-
125
- /* default focus state */
126
- &:focus-visible {
127
- @mixin focusOutlineOnEmphasis;
128
- }
129
-
130
- &:active,
131
- &.selected,
132
- &[aria-selected='true'] {
133
- background-color: var(--color-btn-primary-selected-bg);
134
- box-shadow: var(--color-btn-primary-selected-shadow);
135
- }
136
-
137
- &:disabled,
138
- &.disabled,
139
- &[aria-disabled='true'] {
140
- color: var(--color-btn-primary-disabled-text);
141
- background-color: var(--color-btn-primary-disabled-bg);
142
- border-color: var(--color-btn-primary-disabled-border);
143
-
144
- & .octicon {
145
- color: var(--color-btn-primary-disabled-text);
146
- }
147
- }
148
-
149
- & .Counter {
150
- color: inherit;
151
- background-color: var(--color-btn-primary-counter-bg);
152
- }
153
-
154
- & .octicon {
155
- color: var(--color-btn-primary-icon);
156
- }
157
- }
158
-
159
- /* ensure links styled as button primary gets proper focus style */
160
- a.btn-primary {
161
- /* fallback :focus state */
162
- &:focus {
163
- @mixin focusOutlineOnEmphasis;
164
-
165
- /* remove fallback :focus if :focus-visible is supported */
166
- &:not(:focus-visible) {
167
- outline: solid 1px transparent;
168
- box-shadow: none;
169
- }
170
- }
171
-
172
- /* default focus state */
173
- &:focus-visible {
174
- @mixin focusOutlineOnEmphasis;
175
- }
176
- }
177
-
178
- /* Outline button */
179
-
180
- .btn-outline {
181
- color: var(--color-btn-outline-text);
182
-
183
- &:hover,
184
- & [open] > & {
185
- color: var(--color-btn-outline-hover-text);
186
- background-color: var(--color-btn-outline-hover-bg);
187
- border-color: var(--color-btn-outline-hover-border);
188
- box-shadow: var(--color-btn-outline-hover-shadow), var(--color-btn-outline-hover-inset-shadow);
189
-
190
- & .Counter {
191
- background-color: var(--color-btn-outline-hover-counter-bg);
192
- }
193
-
194
- & .octicon {
195
- color: inherit;
196
- }
197
- }
198
-
199
- &:active,
200
- &.selected,
201
- &[aria-selected='true'] {
202
- color: var(--color-btn-outline-selected-text);
203
- background-color: var(--color-btn-outline-selected-bg);
204
- border-color: var(--color-btn-outline-selected-border);
205
- box-shadow: var(--color-btn-outline-selected-shadow);
206
-
207
- /* fallback :focus state */
208
- &:focus {
209
- @mixin focusOutlineOnEmphasis;
210
-
211
- /* remove fallback :focus if :focus-visible is supported */
212
- &:not(:focus-visible) {
213
- outline: solid 1px transparent;
214
- box-shadow: none;
215
- }
216
- }
217
-
218
- /* default focus state */
219
- &:focus-visible {
220
- @mixin focusOutlineOnEmphasis;
221
- }
222
- }
223
-
224
- &:disabled,
225
- &.disabled,
226
- &[aria-disabled='true'] {
227
- color: var(--color-btn-outline-disabled-text);
228
- background-color: var(--color-btn-outline-disabled-bg);
229
- border-color: var(--color-btn-border);
230
- box-shadow: none;
231
-
232
- & .Counter {
233
- background-color: var(--color-btn-outline-disabled-counter-bg);
234
- }
235
- }
236
-
237
- & .Counter {
238
- color: inherit;
239
- background-color: var(--color-btn-outline-counter-bg);
240
- }
241
- }
242
-
243
- /* Danger button */
244
-
245
- .btn-danger {
246
- color: var(--color-btn-danger-text);
247
-
248
- & .octicon {
249
- color: var(--color-btn-danger-icon);
250
- }
251
-
252
- &:hover,
253
- & [open] > & {
254
- color: var(--color-btn-danger-hover-text);
255
- background-color: var(--color-btn-danger-hover-bg);
256
- border-color: var(--color-btn-danger-hover-border);
257
- box-shadow: var(--color-btn-danger-hover-shadow), var(--color-btn-danger-hover-inset-shadow);
258
-
259
- & .Counter {
260
- background-color: var(--color-btn-danger-hover-counter-bg);
261
- }
262
-
263
- & .octicon {
264
- color: var(--color-btn-danger-hover-icon);
265
- }
266
- }
267
-
268
- &:active,
269
- &.selected,
270
- &[aria-selected='true'] {
271
- color: var(--color-btn-danger-selected-text);
272
- background-color: var(--color-btn-danger-selected-bg);
273
- border-color: var(--color-btn-danger-selected-border);
274
- box-shadow: var(--color-btn-danger-selected-shadow);
275
- }
276
-
277
- &:disabled,
278
- &.disabled,
279
- &[aria-disabled='true'] {
280
- color: var(--color-btn-danger-disabled-text);
281
- background-color: var(--color-btn-danger-disabled-bg);
282
- border-color: var(--color-btn-border);
283
- box-shadow: none;
284
-
285
- & .Counter {
286
- background-color: var(--color-btn-danger-disabled-counter-bg);
287
- }
288
-
289
- & .octicon {
290
- color: var(--color-btn-danger-disabled-text);
291
- }
292
- }
293
-
294
- & .Counter {
295
- color: inherit;
296
- background-color: var(--color-btn-danger-counter-bg);
297
- }
298
- }
299
-
300
- /* Sizes
301
- **
302
- ** Tweak `line-height` to make them smaller. */
303
- .btn-sm {
304
- padding: 3px 12px;
305
- font-size: var(--primer-text-body-size-small, 12px);
306
- line-height: 20px;
307
-
308
- & .octicon {
309
- vertical-align: text-top;
310
- }
311
- }
312
-
313
- /* Large button adds more padding around text. Use font-size utils to increase font-size..
314
- ** e.g, <p class="text-gamma"><button class="btn btn-large btn-primary" type="button">Big green button</button></p> */
315
- .btn-large {
316
- padding: 0.75em 1.5em;
317
- font-size: inherit;
318
- line-height: 1.5;
319
- border-radius: 0.5em;
320
- }
321
-
322
- /* Full-width button
323
- **
324
- ** These buttons expand to the full width of their parent container */
325
- .btn-block {
326
- display: block;
327
- width: 100%;
328
- text-align: center;
329
- }
330
-
331
-
332
- /* Link-like buttons
333
- **
334
- ** This class is for styling <button> and <input> elements to look like links */
335
-
336
- .btn-link {
337
- display: inline-block;
338
- padding: 0;
339
- font-size: inherit;
340
- color: var(--color-accent-fg);
341
- text-decoration: none;
342
- white-space: nowrap;
343
- cursor: pointer;
344
- user-select: none;
345
- background-color: transparent;
346
- border: 0;
347
- appearance: none; /* Corrects inability to style clickable `input` types in iOS. */
348
-
349
- &:hover {
350
- text-decoration: underline;
351
- }
352
-
353
- &:disabled,
354
- &[aria-disabled='true'] {
355
- &,
356
- &:hover {
357
- color: var(--color-primer-fg-disabled);
358
- cursor: default;
359
- }
360
- }
361
-
362
- &:not(.dropdown-item) {
363
- &:focus,
364
- &:focus-visible {
365
- border-radius: var(--primer-borderRadius-medium, 6px);
366
- outline-offset: 0;
367
- }
368
- }
369
- }
370
-
371
- /* Invisible button
372
- **
373
- ** Typically used as a "cancel" button next to a .btn */
374
-
375
- .btn-invisible {
376
- color: var(--color-accent-fg);
377
- background-color: transparent; /* Reset default gradient backgrounds and colors */
378
- border: 0;
379
- border-radius: var(--primer-borderRadius-medium, 6px);
380
- box-shadow: none;
381
-
382
- &:hover,
383
- &.zeroclipboard-is-hover {
384
- color: var(--color-accent-fg);
385
- background-color: var(--color-btn-hover-bg);
386
- outline: none;
387
- box-shadow: none;
388
- }
389
-
390
- &:active,
391
- &.selected,
392
- &[aria-selected='true'],
393
- &.zeroclipboard-is-active {
394
- color: var(--color-accent-fg);
395
- background: none;
396
- border-color: var(--color-btn-active-border);
397
-
398
- @mixin focusOutline;
399
- }
400
-
401
- &:active &.zeroclipboard-is-active {
402
- background-color: var(--color-btn-selected-bg);
403
- }
404
-
405
- &:disabled,
406
- &.disabled,
407
- &[aria-disabled='true'] {
408
- color: var(--color-primer-fg-disabled);
409
- background-color: transparent;
410
- }
411
- }
412
-
413
- /* Octicon button
414
- **
415
- ** Icon-only buttons */
416
-
417
- .btn-octicon {
418
- display: inline-block;
419
- padding: 5px;
420
- margin-left: 5px;
421
- line-height: 1;
422
- color: var(--color-fg-muted);
423
- vertical-align: middle;
424
-
425
- /* For `<button>` elements */
426
- background: transparent;
427
- border: 0;
428
- box-shadow: none;
429
-
430
- &:hover {
431
- color: var(--color-accent-fg);
432
- }
433
-
434
- &:focus,
435
- &:focus-visible {
436
- border-radius: var(--primer-borderRadius-medium, 6px);
437
- }
438
-
439
- &.disabled,
440
- &[aria-disabled='true'] {
441
- color: var(--color-primer-fg-disabled);
442
- cursor: default;
443
-
444
- &:hover {
445
- color: var(--color-primer-fg-disabled);
446
- }
447
- }
448
- }
449
-
450
- .btn-octicon-danger:hover {
451
- color: var(--color-danger-fg);
452
- }
453
-
454
- /* Close button
455
- **
456
- ** Typically used with an octicon-x */
457
-
458
- .close-button {
459
- padding: 0;
460
- color: var(--color-fg-muted);
461
- background: transparent;
462
- border: 0;
463
-
464
- &:hover {
465
- color: var(--color-fg-default);
466
- }
467
-
468
- &:active {
469
- @mixin focusOutline;
470
- }
471
- }
472
-
473
- /* Hidden text button
474
- **
475
- ** Use `.hidden-text-expander` to indicate and expand hidden text. */
476
-
477
- .hidden-text-expander {
478
- display: block;
479
-
480
- &.inline {
481
- position: relative;
482
- top: -1px;
483
- display: inline-block;
484
- margin-left: 5px;
485
- line-height: 0;
486
- }
487
- }
488
-
489
- .hidden-text-expander a,
490
- .ellipsis-expander {
491
- display: inline-block;
492
- height: 12px;
493
- padding: 0 5px 5px;
494
- font-size: var(--primer-text-body-size-small, 12px);
495
- font-weight: var(--base-text-weight-semibold, 600);
496
- line-height: 6px;
497
- color: var(--color-fg-default);
498
- text-decoration: none;
499
- vertical-align: middle;
500
- background: var(--color-neutral-muted);
501
- border: 0;
502
- border-radius: 1px;
503
-
504
- &:hover {
505
- text-decoration: none;
506
- background-color: var(--color-accent-muted);
507
- }
508
-
509
- &:active {
510
- color: var(--color-fg-on-emphasis);
511
- background-color: var(--color-accent-emphasis);
512
- }
513
- }
514
-
515
- /* Social button count
516
- ** TODO: Deprecate? Use BtnGroup instead? */
517
-
518
- .btn-with-count {
519
- float: left;
520
- border-top-right-radius: 0;
521
- border-bottom-right-radius: 0;
522
-
523
- &:focus {
524
- z-index: 1;
525
- }
526
- }
527
-
528
- /* Social count bubble
529
- **
530
- ** A container that is used for social bubbles counts. */
531
-
532
- .social-count {
533
- position: relative;
534
- float: left;
535
- padding: 3px 12px;
536
- font-size: var(--primer-text-body-size-small, 12px);
537
- font-weight: var(--base-text-weight-semibold, 600);
538
- line-height: 20px;
539
- color: var(--color-fg-default);
540
- vertical-align: middle;
541
- background-color: var(--color-canvas-default);
542
- border: var(--primer-borderWidth-thin, 1px) solid var(--color-btn-border);
543
- border-left: 0;
544
- border-top-right-radius: var(--primer-borderRadius-medium, 6px);
545
- border-bottom-right-radius: var(--primer-borderRadius-medium, 6px);
546
- box-shadow: var(--color-shadow-small), var(--color-primer-shadow-highlight);
547
-
548
- &:hover,
549
- &:active {
550
- text-decoration: none;
551
- }
552
-
553
- &:hover {
554
- color: var(--color-accent-fg);
555
- cursor: pointer;
556
- }
557
- }
@@ -1 +0,0 @@
1
- {"name":"menu_component","selectors":[".menu",".menu-item",".menu-item:first-child",".menu-item:first-child:before",".menu-item:last-child",".menu-item:last-child:before",".menu-item:hover",".menu-item:active",".menu-item.selected",".menu-item[aria-current]:not([aria-current=false])",".menu-item[aria-selected=true]",":is(.menu-item.selected",".menu-item[aria-current]:not([aria-current=false])):before",".menu-item .octicon",".menu-item .Counter",".menu-item .menu-warning",".menu-item .avatar",".menu-item.alert .Counter",".menu-heading",".menu-heading:hover",".menu-heading:first-child",".menu-heading:last-child"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["menu_component.pcss"],"names":[],"mappings":"AAIA,MAGE,4CAA6C,CAC7C,2EAA6E,CAC7E,mDAAqD,CAHrD,eAAgB,CADhB,iDAKF,CAEA,WAKE,gFAAkF,CADlF,6BAA8B,CAF9B,aAAc,CACd,yHAA4H,CAF5H,iBA+EF,CAzEE,uBACE,YAAa,CAEb,6DAKF,CAHE,qDAHA,4DAKA,CAGF,sBACE,eAAgB,CAChB,gEAMF,CAHE,mDAFA,+DAIA,CAGF,iBAEE,4CAA6C,CAD7C,oBAEF,CAEA,kBACE,2CACF,CAEA,sGAIE,4CAA6C,CAD7C,cAYF,CATE,kHAOE,kDAAmD,CAJnD,QAAS,CAGT,UAAW,CAFX,MAAO,CAHP,iBAAkB,CAClB,KAAM,CAGN,SAGF,CAGF,oBAGE,2BAA4B,CAD5B,iDAAmD,CAEnD,iBAAkB,CAHlB,UAIF,CAEA,oBACE,WAAY,CACZ,+CACF,CAEA,yBAEE,+BAAgC,CADhC,WAEF,CAEA,mBACE,UAAW,CACX,gDACF,CAGE,0BACE,4BACF,CAIJ,cAQE,gFAAkF,CADlF,6BAA8B,CAN9B,aAAc,CAId,iBAAkB,CAClB,gDAAkD,CAFlD,eAAgB,CADhB,YAAa,CADb,yHAsBF,CAdE,oBACE,oBACF,CAEA,0BACE,4DAA8D,CAC9D,6DACF,CAEA,yBACE,eAAgB,CAEhB,+DAAiE,CADjE,gEAEF","file":"menu_component.css","sourcesContent":["/* menu */\n\n/* A menu on the side of a page, defaults to left side. e.g. github.com/about */\n\n.menu {\n margin-bottom: var(--primer-stack-gap-normal, 16px);\n list-style: none;\n background-color: var(--color-canvas-default);\n border: var(--primer-borderWidth-thin, 1px) solid var(--color-border-default);\n border-radius: var(--primer-borderRadius-medium, 6px);\n}\n\n.menu-item {\n position: relative;\n display: block;\n padding: var(--primer-control-medium-paddingInline-condensed, 8px) var(--primer-control-medium-paddingInline-spacious, 16px);\n color: var(--color-fg-default);\n border-bottom: var(--primer-borderWidth-thin, 1px) solid var(--color-border-muted);\n\n &:first-child {\n border-top: 0;\n border-top-left-radius: var(--primer-borderRadius-medium, 6px);\n border-top-right-radius: var(--primer-borderRadius-medium, 6px);\n\n &::before {\n border-top-left-radius: var(--primer-borderRadius-medium, 6px);\n }\n }\n\n &:last-child {\n border-bottom: 0;\n border-bottom-right-radius: var(--primer-borderRadius-medium, 6px);\n border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);\n\n &::before {\n border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);\n }\n }\n\n &:hover {\n text-decoration: none;\n background-color: var(--color-neutral-subtle);\n }\n\n &:active {\n background-color: var(--color-canvas-subtle);\n }\n\n &.selected,\n &[aria-selected='true'],\n &[aria-current]:not([aria-current='false']) {\n cursor: default;\n background-color: var(--color-menu-bg-active);\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 2px;\n content: '';\n background-color: var(--color-primer-border-active);\n }\n }\n\n & .octicon {\n width: 16px;\n margin-right: var(--primer-control-medium-gap, 8px);\n color: var(--color-fg-muted);\n text-align: center;\n }\n\n & .Counter {\n float: right;\n margin-left: var(--primer-control-small-gap, 4px);\n }\n\n & .menu-warning {\n float: right;\n color: var(--color-attention-fg);\n }\n\n & .avatar {\n float: left;\n margin-right: var(--primer-control-small-gap, 4px);\n }\n\n &.alert {\n & .Counter {\n color: var(--color-danger-fg);\n }\n }\n}\n\n.menu-heading {\n display: block;\n padding: var(--primer-control-medium-paddingInline-condensed, 8px) var(--primer-control-medium-paddingInline-spacious, 16px);\n margin-top: 0;\n margin-bottom: 0;\n font-size: inherit;\n font-weight: var(--base-text-weight-semibold, 600);\n color: var(--color-fg-default);\n border-bottom: var(--primer-borderWidth-thin, 1px) solid var(--color-border-muted);\n\n &:hover {\n text-decoration: none;\n }\n\n &:first-child {\n border-top-left-radius: var(--primer-borderRadius-medium, 6px);\n border-top-right-radius: var(--primer-borderRadius-medium, 6px);\n }\n\n &:last-child {\n border-bottom: 0;\n border-bottom-right-radius: var(--primer-borderRadius-medium, 6px);\n border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Primer
4
- # @label MenuComponent
5
- class MenuComponentPreview < ViewComponent::Preview
6
- # @label Playground
7
- def playground; end
8
-
9
- # @label Default
10
- def default; end
11
- end
12
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Primer
4
- # @label OcticonComponent
5
- class OcticonComponentPreview < ViewComponent::Preview
6
- # @label Playground
7
- #
8
- # @param aria_label [String]
9
- # @param size [Symbol] select [xsmall, small, medium]
10
- def playground(size: :small, aria_label: nil)
11
- render(Primer::OcticonComponent.new(icon: :people, size: size, "aria-label": aria_label))
12
- end
13
-
14
- # @label Default Options
15
- #
16
- # @param aria_label [String]
17
- # @param size [Symbol] select [xsmall, small, medium]
18
- def default(size: :small, aria_label: nil)
19
- render(Primer::OcticonComponent.new(icon: :people, size: size, "aria-label": aria_label))
20
- end
21
- end
22
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Primer
4
- # @label SpinnerComponent
5
- class SpinnerComponentPreview < ViewComponent::Preview
6
- # @label Playground
7
- #
8
- # @param size [Symbol] select [small, medium, large]
9
- def playground(size: :medium)
10
- render(Primer::SpinnerComponent.new(size: size))
11
- end
12
-
13
- # @label Default Options
14
- #
15
- # @param size [Symbol] select [small, medium, large]
16
- def default(size: :medium)
17
- render(Primer::SpinnerComponent.new(size: size))
18
- end
19
- end
20
- end