@mixtint/primer-view-components 0.89.1 → 0.90.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/app/assets/javascripts/primer_view_components.js +1 -1
  2. package/app/assets/javascripts/primer_view_components.js.map +1 -1
  3. package/app/assets/styles/primer_view_components.css +210 -647
  4. package/app/assets/styles/primer_view_components.css.map +1 -1
  5. package/app/components/primer/alpha/action_bar.css +9 -3
  6. package/app/components/primer/alpha/action_list.css +92 -2
  7. package/app/components/primer/alpha/auto_complete.css +4 -22
  8. package/app/components/primer/alpha/auto_complete.css.json +1 -3
  9. package/app/components/primer/alpha/banner.css +0 -1
  10. package/app/components/primer/alpha/button_marketing.css +4 -4
  11. package/app/components/primer/alpha/dialog.css +66 -1
  12. package/app/components/primer/alpha/dialog.css.json +2 -1
  13. package/app/components/primer/alpha/dropdown.css +0 -6
  14. package/app/components/primer/alpha/layout.css +3 -1
  15. package/app/components/primer/alpha/menu.css +0 -6
  16. package/app/components/primer/alpha/overlay.css +5 -0
  17. package/app/components/primer/alpha/segmented_control.css +0 -4
  18. package/app/components/primer/alpha/tab_nav.css +0 -8
  19. package/app/components/primer/alpha/text_field.css +97 -5
  20. package/app/components/primer/alpha/text_field.css.json +2 -2
  21. package/app/components/primer/alpha/toggle_switch.css +8 -7
  22. package/app/components/primer/alpha/tree_view/tree_view_icon_pair_element.js +1 -1
  23. package/app/components/primer/alpha/tree_view.css +1 -0
  24. package/app/components/primer/alpha/underline_nav.css +0 -3
  25. package/app/components/primer/beta/avatar.css +0 -1
  26. package/app/components/primer/beta/avatar_stack.css +33 -0
  27. package/app/components/primer/beta/blankslate.css +2 -61
  28. package/app/components/primer/beta/border_box.css +35 -0
  29. package/app/components/primer/beta/breadcrumbs.css +7 -4
  30. package/app/components/primer/beta/breadcrumbs.css.json +2 -1
  31. package/app/components/primer/beta/button.css +51 -1
  32. package/app/components/primer/beta/flash.css +0 -16
  33. package/app/components/primer/beta/label.css +0 -2
  34. package/app/components/primer/beta/link.css +0 -2
  35. package/app/components/primer/beta/popover.css +138 -85
  36. package/app/components/primer/beta/popover.css.json +22 -16
  37. package/app/components/primer/beta/state.css +0 -1
  38. package/app/components/primer/beta/subhead.css +0 -8
  39. package/app/components/primer/beta/timeline_item.css +0 -5
  40. package/app/components/primer/beta/truncate.css +0 -1
  41. package/app/components/primer/dialog_helper.js +10 -1
  42. package/app/components/primer/open_project/avatar_stack.css +10 -0
  43. package/app/components/primer/open_project/border_box/collapsible_header.css +3 -1
  44. package/app/components/primer/open_project/border_grid.css +11 -9
  45. package/app/components/primer/open_project/collapsible.d.ts +1 -1
  46. package/app/components/primer/open_project/collapsible.js +8 -4
  47. package/app/components/primer/open_project/filterable_tree_view.css +2 -7
  48. package/app/components/primer/open_project/page_header.css +2 -5
  49. package/app/components/primer/open_project/pagination.css +4 -1
  50. package/app/components/primer/open_project/side_panel/section.css +3 -3
  51. package/package.json +35 -15
  52. package/static/arguments.json +12 -0
  53. package/static/classes.json +21 -0
  54. package/static/classnames.cjs +516 -0
  55. package/static/classnames.d.ts +2 -0
  56. package/static/classnames.js +518 -0
  57. package/static/info_arch.json +59 -2
  58. package/static/previews.json +2439 -2400
@@ -2,29 +2,37 @@
2
2
  /* The selector-max-specificity rule is disabled here because the nested selectors
3
3
  in AvatarStack require high specificity to properly override default styles and
4
4
  achieve the intended visual stacking. */
5
+
5
6
  /* AvatarStack */
7
+
6
8
  /* Stacked avatars can be used to show who is participating in thread when
7
9
  ** there is limited space available. */
10
+
8
11
  .AvatarStack {
9
12
  position: relative;
10
13
  min-width: 26px;
11
14
  height: 20px;
12
15
  }
16
+
13
17
  .AvatarStack .AvatarStack-body {
14
18
  position: absolute;
15
19
  }
20
+
16
21
  .AvatarStack.AvatarStack--two {
17
22
  min-width: 36px;
18
23
  }
24
+
19
25
  .AvatarStack.AvatarStack--three-plus {
20
26
  min-width: 46px;
21
27
  }
28
+
22
29
  .AvatarStack-body {
23
30
  display: flex;
24
31
  background: var(--bgColor-default);
25
32
  /* stylelint-disable-next-line primer/borders */
26
33
  border-radius: 100px;
27
34
  }
35
+
28
36
  .AvatarStack-body .avatar {
29
37
  position: relative;
30
38
  z-index: 2;
@@ -38,49 +46,65 @@
38
46
  border-radius: var(--borderRadius-small);
39
47
  transition: margin 0.1s ease-in-out;
40
48
  }
49
+
41
50
  :is(.AvatarStack-body .avatar):first-child {
42
51
  z-index: 3;
43
52
  }
53
+
44
54
  :is(.AvatarStack-body .avatar):last-child {
45
55
  z-index: 1;
46
56
  }
57
+
47
58
  /* stylelint-disable-next-line selector-max-type */
59
+
48
60
  :is(.AvatarStack-body .avatar) img {
49
61
  border-radius: var(--borderRadius-small);
50
62
  }
63
+
51
64
  /* Account for 4+ avatars */
65
+
52
66
  :is(.AvatarStack-body .avatar):nth-child(n + 4) {
53
67
  display: none;
54
68
  opacity: 0;
55
69
  }
70
+
56
71
  /* stylelint-disable-next-line selector-max-type */
72
+
57
73
  .AvatarStack-body span:nth-child(n + 4) .avatar {
58
74
  display: none;
59
75
  opacity: 0;
60
76
  }
77
+
61
78
  :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) .avatar {
62
79
  margin-right: var(--base-size-4);
63
80
  }
81
+
64
82
  :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) .avatar:nth-child(n + 4) {
65
83
  display: flex;
66
84
  opacity: 1;
67
85
  }
86
+
68
87
  /* stylelint-disable-next-line selector-max-type */
88
+
69
89
  :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) span:nth-child(n + 4) .avatar {
70
90
  display: flex;
71
91
  opacity: 1;
72
92
  }
93
+
73
94
  :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) .avatar-more {
74
95
  display: none !important;
75
96
  }
97
+
76
98
  .AvatarStack-body[data-disable-expand] {
77
99
  position: relative;
78
100
  }
101
+
79
102
  .avatar.avatar-more {
80
103
  z-index: 1;
81
104
  margin-right: 0;
82
105
  background: var(--bgColor-muted);
83
106
  }
107
+
84
108
  .avatar.avatar-more::before,.avatar.avatar-more::after {
85
109
  position: absolute;
86
110
  display: block;
@@ -90,33 +114,42 @@
90
114
  border-radius: 2px;
91
115
  outline: var(--borderWidth-thin) solid var(--bgColor-default);
92
116
  }
117
+
93
118
  .avatar.avatar-more::before {
94
119
  width: 17px;
95
120
  background: var(--avatarStack-fade-bgColor-muted);
96
121
  }
122
+
97
123
  .avatar.avatar-more::after {
98
124
  width: 14px;
99
125
  background: var(--avatarStack-fade-bgColor-default);
100
126
  }
127
+
101
128
  /* Right aligned variation */
129
+
102
130
  .AvatarStack--right .AvatarStack-body {
103
131
  right: 0;
104
132
  flex-direction: row-reverse;
105
133
  }
134
+
106
135
  :is(.AvatarStack--right .AvatarStack-body):hover:not([data-disable-expand]) .avatar {
107
136
  margin-right: 0;
108
137
  margin-left: var(--base-size-4);
109
138
  }
139
+
110
140
  .AvatarStack--right .avatar.avatar-more {
111
141
  background: var(--avatarStack-fade-bgColor-default);
112
142
  }
143
+
113
144
  :is(.AvatarStack--right .avatar.avatar-more)::before {
114
145
  width: 5px;
115
146
  }
147
+
116
148
  :is(.AvatarStack--right .avatar.avatar-more)::after {
117
149
  width: 2px;
118
150
  background: var(--bgColor-muted);
119
151
  }
152
+
120
153
  .AvatarStack--right .avatar {
121
154
  margin-right: 0;
122
155
  /* stylelint-disable-next-line primer/spacing */
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  .blankslate p {
21
- font-size: var(--text-body-size-large);
21
+ font-size: var(--text-body-size-medium);
22
22
  color: var(--fgColor-muted);
23
23
  max-width: 56rem;
24
24
  margin: auto;
@@ -42,23 +42,19 @@
42
42
  }
43
43
 
44
44
  .blankslate-icon {
45
- /* stylelint-disable-next-line primer/spacing */
46
45
  margin-right: var(--control-small-gap);
47
- /* stylelint-disable-next-line primer/spacing */
48
46
  margin-bottom: var(--stack-gap-condensed);
49
- /* stylelint-disable-next-line primer/spacing */
50
47
  margin-left: var(--control-small-gap);
51
48
  color: var(--fgColor-muted);
52
49
  }
53
50
 
54
51
  .blankslate-image {
55
- /* stylelint-disable-next-line primer/spacing */
56
52
  margin-bottom: var(--stack-gap-normal);
57
53
  }
58
54
 
59
55
  .blankslate-heading {
60
56
  margin-bottom: var(--base-size-4);
61
- font-size: var(--text-title-size-medium);
57
+ font-size: var(--text-title-size-small);
62
58
  font-weight: var(--text-title-weight-medium);
63
59
  text-wrap: balance;
64
60
  }
@@ -68,17 +64,14 @@
68
64
  }
69
65
 
70
66
  .blankslate-action {
71
- /* stylelint-disable-next-line primer/spacing */
72
67
  margin-top: var(--stack-gap-normal);
73
68
  }
74
69
 
75
70
  .blankslate-action:first-of-type {
76
- /* stylelint-disable-next-line primer/spacing */
77
71
  margin-top: var(--stack-gap-spacious);
78
72
  }
79
73
 
80
74
  .blankslate-action:last-of-type {
81
- /* stylelint-disable-next-line primer/spacing */
82
75
  margin-bottom: var(--stack-gap-condensed);
83
76
  }
84
77
 
@@ -98,78 +91,26 @@
98
91
 
99
92
  /* was .large-format
100
93
  ** QUESTION: should we deprecate this? */
101
-
102
94
  /* stylelint-disable-next-line selector-max-type */
103
-
104
95
  .blankslate-large img {
105
96
  width: 80px;
106
97
  height: 80px;
107
98
  }
108
-
109
99
  /* stylelint-disable-next-line selector-max-type */
110
-
111
100
  .blankslate-large h3 {
112
- /* stylelint-disable-next-line primer/spacing */
113
101
  margin: var(--stack-gap-normal) 0;
114
102
 
115
103
  /* font-size: $h3-size; // This doesn't actually make the text larger. Should this be $h2-size? */
116
104
  /* stylelint-disable-next-line primer/typography */
117
105
  font-size: 24px;
118
106
  }
119
-
120
107
  /* stylelint-disable-next-line selector-max-type */
121
-
122
108
  .blankslate-large p {
123
109
  font-size: var(--text-body-size-large);
124
110
  }
125
111
 
126
112
  /* was .clean-background
127
113
  ** TO DO: deprecate this and use utility instead */
128
-
129
114
  .blankslate-clean-background {
130
115
  border: 0;
131
116
  }
132
-
133
- /* At the time these styles were written,
134
- `34rem` was our "small" breakpoint width */
135
-
136
- @container (max-width: 34rem) {
137
- .blankslate {
138
- --blankslate-outer-padding-block: var(--base-size-20);
139
- --blankslate-outer-padding-inline: var(--base-size-20);
140
- }
141
-
142
- .blankslate-spacious {
143
- --blankslate-outer-padding-block: var(--base-size-44);
144
- --blankslate-outer-padding-inline: var(--base-size-28);
145
- }
146
-
147
- .blankslate-icon {
148
- /* stylelint-disable-next-line primer/spacing */
149
- margin-bottom: var(--stack-gap-condensed);
150
- }
151
-
152
- .blankslate-heading {
153
- font-size: var(--text-title-size-small);
154
- }
155
-
156
- /* stylelint-disable-next-line selector-max-type */
157
- .blankslate p {
158
- font-size: var(--text-body-size-medium);
159
- }
160
-
161
- .blankslate-action {
162
- /* stylelint-disable-next-line primer/spacing */
163
- margin-top: var(--stack-gap-condensed);
164
- }
165
-
166
- .blankslate-action:first-of-type {
167
- /* stylelint-disable-next-line primer/spacing */
168
- margin-top: var(--stack-gap-normal);
169
- }
170
-
171
- .blankslate-action:last-of-type {
172
- /* stylelint-disable-next-line primer/spacing */
173
- margin-bottom: calc(var(--stack-gap-condensed) / 2);
174
- }
175
- }
@@ -1,6 +1,8 @@
1
1
  /* stylelint-disable primer/spacing */
2
2
  /* stylelint-disable primer/typography */
3
+
3
4
  /* BorderBox */
5
+
4
6
  /* TODO: Rename to BorderBox to match PVC */
5
7
  .Box {
6
8
  background-color: var(--bgColor-default);
@@ -9,6 +11,7 @@
9
11
  border-width: var(--borderWidth-thin);
10
12
  border-radius: var(--borderRadius-medium);
11
13
  }
14
+
12
15
  /* Box padding density options */
13
16
  .Box--condensed {
14
17
  line-height: 1.25;
@@ -30,26 +33,33 @@
30
33
  .Box--condensed .Box-row {
31
34
  padding: var(--stack-padding-condensed) var(--stack-padding-normal);
32
35
  }
36
+
33
37
  .Box--spacious .Box-header {
34
38
  padding: var(--stack-padding-spacious);
35
39
  line-height: 1.25;
36
40
  }
41
+
37
42
  .Box--spacious .Box-title {
38
43
  font-size: var(--text-title-size-medium);
39
44
  }
45
+
40
46
  .Box--spacious .Box-body {
41
47
  padding: var(--stack-padding-spacious);
42
48
  }
49
+
43
50
  .Box--spacious .Box-footer {
44
51
  padding: var(--stack-padding-spacious);
45
52
  }
53
+
46
54
  .btn-octicon:is(.Box--spacious .Box-btn-octicon) {
47
55
  padding: var(--stack-padding-spacious);
48
56
  margin: calc(var(--stack-gap-spacious) * -1);
49
57
  }
58
+
50
59
  .Box--spacious .Box-row {
51
60
  padding: var(--stack-padding-spacious);
52
61
  }
62
+
53
63
  .Box-header {
54
64
  padding: var(--stack-padding-normal);
55
65
  margin: calc(var(--borderWidth-thin) * -1) calc(var(--borderWidth-thin) * -1) 0;
@@ -60,21 +70,25 @@
60
70
  border-top-left-radius: var(--borderRadius-medium);
61
71
  border-top-right-radius: var(--borderRadius-medium);
62
72
  }
73
+
63
74
  .Box-title {
64
75
  font-size: var(--text-body-size-medium);
65
76
  font-weight: var(--base-text-weight-semibold);
66
77
  }
78
+
67
79
  .Box-body {
68
80
  padding: var(--stack-padding-normal);
69
81
  border-bottom: var(--borderWidth-thin) solid var(--borderColor-default);
70
82
 
71
83
  /* Ensures bottom-border doesn't poke out when .Box-body used without box-footer */
72
84
  }
85
+
73
86
  .Box-body:last-of-type {
74
87
  margin-bottom: calc(var(--borderWidth-thin) * -1);
75
88
  border-bottom-right-radius: var(--borderRadius-medium);
76
89
  border-bottom-left-radius: var(--borderRadius-medium);
77
90
  }
91
+
78
92
  /* Box rows */
79
93
  .Box-row {
80
94
  padding: var(--stack-padding-normal);
@@ -121,18 +135,23 @@
121
135
  .Box-row.navigation-focus.sortable-ghost .Box-row--drag-hide {
122
136
  opacity: 0;
123
137
  }
138
+
124
139
  .Box-row--focus-gray.navigation-focus {
125
140
  background-color: var(--bgColor-muted);
126
141
  }
142
+
127
143
  .Box-row--focus-blue.navigation-focus {
128
144
  background-color: var(--bgColor-accent-muted);
129
145
  }
146
+
130
147
  .Box-row--hover-gray:hover {
131
148
  background-color: var(--bgColor-muted);
132
149
  }
150
+
133
151
  .Box-row--hover-blue:hover {
134
152
  background-color: var(--bgColor-accent-muted);
135
153
  }
154
+
136
155
  /* Optional link style
137
156
  ** Makes links on mobile blue since they don't have hover state,
138
157
  ** and links are dark-gray with blue hover on desktop. */
@@ -149,11 +168,13 @@
149
168
  text-decoration: none;
150
169
  }
151
170
  }
171
+
152
172
  /* Optional drag icon styles for reordering items
153
173
  ** Focus styles included in .Box-row above */
154
174
  .Box-row--drag-button {
155
175
  opacity: 0;
156
176
  }
177
+
157
178
  .Box-footer {
158
179
  padding: var(--stack-padding-normal);
159
180
  margin-top: calc(var(--borderWidth-thin) * -1); /* prevents double border when used with .Box-body */
@@ -162,28 +183,36 @@
162
183
  border-top-width: var(--borderWidth-thin);
163
184
  border-radius: 0 0 var(--borderRadius-medium) var(--borderRadius-medium);
164
185
  }
186
+
165
187
  /* Option for a box with scrolling content */
166
188
  .Box--scrollable {
167
189
  max-height: 324px;
168
190
  overflow: scroll;
169
191
  }
192
+
170
193
  /* Box themes */
194
+
171
195
  .Box--blue {
172
196
  border-color: var(--borderColor-accent-muted);
173
197
  }
198
+
174
199
  .Box--blue .Box-header {
175
200
  background-color: var(--bgColor-accent-muted);
176
201
  border-color: var(--borderColor-accent-muted);
177
202
  }
203
+
178
204
  .Box--blue .Box-body {
179
205
  border-color: var(--borderColor-accent-muted);
180
206
  }
207
+
181
208
  .Box--blue .Box-row {
182
209
  border-color: var(--borderColor-accent-muted);
183
210
  }
211
+
184
212
  .Box--blue .Box-footer {
185
213
  border-color: var(--borderColor-accent-muted);
186
214
  }
215
+
187
216
  /* Applies and red border to the outside of the box,
188
217
  ** but not to the border separating rows. */
189
218
  .Box--danger {
@@ -195,20 +224,26 @@
195
224
  :is(.Box--danger .Box-body):last-of-type {
196
225
  border-color: var(--borderColor-danger-emphasis);
197
226
  }
227
+
198
228
  .Box-header--blue {
199
229
  background-color: var(--bgColor-accent-muted);
200
230
  border-color: var(--borderColor-accent-muted);
201
231
  }
232
+
202
233
  /* Box row highlight themes */
234
+
203
235
  .Box-row--yellow {
204
236
  background-color: var(--bgColor-attention-muted);
205
237
  }
238
+
206
239
  .Box-row--blue {
207
240
  background-color: var(--bgColor-accent-muted);
208
241
  }
242
+
209
243
  .Box-row--gray {
210
244
  background-color: var(--bgColor-muted);
211
245
  }
246
+
212
247
  /* Box with btn-octicon */
213
248
  /* Increase specificity when btn-octicon is used because comes after .Box in the cascade */
214
249
  .Box-btn-octicon.btn-octicon {
@@ -15,12 +15,15 @@
15
15
  transform: rotate(15deg) translateY(0.0625em);
16
16
  }
17
17
 
18
- :is(.breadcrumb-item-selected,.breadcrumb-item[aria-current]:not([aria-current='false']))::after {
19
- content: none;
20
- }
18
+ /* Expanded per-class so each selector buckets by its own class during style
19
+ ** recalc, instead of compiling to a merged `:is(...)` that Blink cannot
20
+ ** fast-reject. */
21
+ .breadcrumb-item-selected::after,
22
+ .breadcrumb-item[aria-current]:not([aria-current='false'])::after {
23
+ content: none;
24
+ }
21
25
 
22
26
  /* stylelint-disable-next-line selector-max-type */
23
-
24
27
  .breadcrumb-item-selected a {
25
28
  color: var(--fgColor-default);
26
29
  -webkit-text-decoration: none !important;
@@ -3,7 +3,8 @@
3
3
  "selectors": [
4
4
  ".breadcrumb-item",
5
5
  ".breadcrumb-item::after",
6
- ":is(.breadcrumb-item-selected,.breadcrumb-item[aria-current]:not([aria-current='false']))::after",
6
+ ".breadcrumb-item-selected::after",
7
+ ".breadcrumb-item[aria-current]:not([aria-current='false'])::after",
7
8
  ".breadcrumb-item-selected a"
8
9
  ]
9
10
  }