@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
@@ -7,26 +7,32 @@
7
7
  ".Popover-message::after",
8
8
  ".Popover-message--no-caret::before",
9
9
  ".Popover-message--no-caret::after",
10
- ":is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left)::before",
11
- ":is(.Popover-message--bottom,.Popover-message--bottom-right,.Popover-message--bottom-left)::after",
10
+ ".Popover-message--bottom::before",
11
+ ".Popover-message--bottom::after",
12
+ ".Popover-message--bottom-right::before",
13
+ ".Popover-message--bottom-right::after",
14
+ ".Popover-message--bottom-left::before",
15
+ ".Popover-message--bottom-left::after",
12
16
  ".Popover-message--top-right",
13
17
  ".Popover-message--bottom-right",
14
- ":is(.Popover-message--top-right,.Popover-message--bottom-right)::before",
15
- ":is(.Popover-message--top-right,.Popover-message--bottom-right)::after",
18
+ ".Popover-message--top-right::before",
19
+ ".Popover-message--top-right::after",
16
20
  ".Popover-message--top-left",
17
21
  ".Popover-message--bottom-left",
18
- ":is(.Popover-message--top-left,.Popover-message--bottom-left)::before",
19
- ":is(.Popover-message--top-left,.Popover-message--bottom-left)::after",
20
- ":is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom)::before",
21
- ":is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom,.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom)::after",
22
- ":is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom)::before",
23
- ":is(.Popover-message--right,.Popover-message--right-top,.Popover-message--right-bottom)::after",
24
- ":is(.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom)::before",
25
- ":is(.Popover-message--left,.Popover-message--left-top,.Popover-message--left-bottom)::after",
26
- ":is(.Popover-message--right-top,.Popover-message--left-top)::before",
27
- ":is(.Popover-message--right-top,.Popover-message--left-top)::after",
28
- ":is(.Popover-message--right-bottom,.Popover-message--left-bottom)::before",
29
- ":is(.Popover-message--right-bottom,.Popover-message--left-bottom)::after",
22
+ ".Popover-message--top-left::before",
23
+ ".Popover-message--top-left::after",
24
+ ".Popover-message--right::before",
25
+ ".Popover-message--right::after",
26
+ ".Popover-message--right-top::before",
27
+ ".Popover-message--right-top::after",
28
+ ".Popover-message--right-bottom::before",
29
+ ".Popover-message--right-bottom::after",
30
+ ".Popover-message--left::before",
31
+ ".Popover-message--left::after",
32
+ ".Popover-message--left-top::before",
33
+ ".Popover-message--left-top::after",
34
+ ".Popover-message--left-bottom::before",
35
+ ".Popover-message--left-bottom::after",
30
36
  ".Popover-message--large",
31
37
  ".Popover-message > .btn-octicon"
32
38
  ]
@@ -5,7 +5,6 @@
5
5
  .state, /* TODO: Deprecate */
6
6
  .State {
7
7
  display: inline-block;
8
- /* stylelint-disable-next-line primer/spacing */
9
8
  padding: var(--base-size-4) var(--control-medium-paddingInline-normal);
10
9
  font-size: var(--text-body-size-medium);
11
10
  font-weight: var(--base-text-weight-medium);
@@ -2,9 +2,7 @@
2
2
 
3
3
  .Subhead {
4
4
  display: flex;
5
- /* stylelint-disable-next-line primer/spacing */
6
5
  padding-bottom: var(--stack-padding-condensed);
7
- /* stylelint-disable-next-line primer/spacing */
8
6
  margin-bottom: var(--stack-gap-normal);
9
7
  border-bottom: var(--borderWidth-thin) solid var(--borderColor-muted);
10
8
  flex-flow: row wrap;
@@ -12,13 +10,11 @@
12
10
  }
13
11
 
14
12
  /* Modifier class to give a lot of breathing room between sections of content. */
15
-
16
13
  .Subhead--spacious {
17
14
  margin-top: var(--base-size-40);
18
15
  }
19
16
 
20
17
  /* <h2> sized heading with normal font weight */
21
-
22
18
  .Subhead-heading {
23
19
  font-weight: var(--base-text-weight-normal);
24
20
  flex: 1 1 auto;
@@ -35,14 +31,12 @@
35
31
  }
36
32
 
37
33
  /* Make the text bold and red for dangerous content */
38
-
39
34
  .Subhead-heading--danger {
40
35
  font-weight: var(--base-text-weight-semibold);
41
36
  color: var(--fgColor-danger);
42
37
  }
43
38
 
44
39
  /* One-liner of supporting text */
45
-
46
40
  .Subhead-description {
47
41
  font-size: var(--text-body-size-medium);
48
42
  color: var(--fgColor-muted);
@@ -51,14 +45,12 @@
51
45
  }
52
46
 
53
47
  /* Add 1 or 2 buttons to the right of the heading */
54
-
55
48
  .Subhead-actions {
56
49
  margin: var(--base-size-4) 0 var(--base-size-4) var(--base-size-4);
57
50
  align-self: center;
58
51
  justify-content: flex-end;
59
52
  order: 1;
60
53
  }
61
-
62
54
  .Subhead-actions + .Subhead-description {
63
55
  margin-top: var(--base-size-4);
64
56
  }
@@ -3,9 +3,7 @@
3
3
  .TimelineItem {
4
4
  position: relative;
5
5
  display: flex;
6
- /* stylelint-disable-next-line primer/spacing */
7
6
  padding: var(--stack-padding-normal) 0;
8
- /* stylelint-disable-next-line primer/spacing */
9
7
  margin-left: var(--stack-gap-normal);
10
8
 
11
9
  /* The Timeline */
@@ -35,7 +33,6 @@
35
33
  display: flex;
36
34
  width: var(--control-medium-size);
37
35
  height: var(--control-medium-size);
38
- /* stylelint-disable-next-line primer/spacing */
39
36
  margin-right: var(--controlStack-medium-gap-condensed);
40
37
  /* stylelint-disable-next-line primer/spacing */
41
38
  margin-left: calc(var(--control-medium-size) / -2 + 1px);
@@ -76,7 +73,6 @@
76
73
  z-index: 1;
77
74
  height: var(--stack-gap-spacious);
78
75
  margin: 0;
79
- /* stylelint-disable-next-line primer/spacing */
80
76
  margin-bottom: calc(var(--stack-gap-normal) * -1);
81
77
  /* stylelint-disable-next-line primer/spacing */
82
78
  margin-left: -56px;
@@ -93,7 +89,6 @@
93
89
  }
94
90
 
95
91
  .TimelineItem--condensed:last-child {
96
- /* stylelint-disable-next-line primer/spacing */
97
92
  padding-bottom: var(--stack-gap-normal);
98
93
  }
99
94
 
@@ -15,7 +15,6 @@
15
15
  }
16
16
 
17
17
  :is(.Truncate > .Truncate-text) + .Truncate-text {
18
- /* stylelint-disable-next-line primer/spacing */
19
18
  margin-left: var(--control-small-gap);
20
19
  }
21
20
 
@@ -15,6 +15,10 @@ function setScrollGutter(doc) {
15
15
  return;
16
16
  doc.body.style.setProperty('--dialog-scrollgutter', `${window.innerWidth - doc.body.clientWidth}px`);
17
17
  }
18
+ function updateBodyModalClasses(doc) {
19
+ doc.body.classList.toggle('has-modal', Boolean(doc.querySelector('dialog[open]')));
20
+ doc.body.classList.toggle('has-modal-disable-scroll', Boolean(doc.querySelector('dialog[open].Overlay--disableScroll')));
21
+ }
18
22
  function dialogInvokerButtonHandler(event) {
19
23
  const target = event.target;
20
24
  const button = target?.closest('button');
@@ -75,6 +79,7 @@ function dialogInvokerButtonHandler(event) {
75
79
  }
76
80
  }, { once: true });
77
81
  }
82
+ updateBodyModalClasses(dialog.ownerDocument);
78
83
  }
79
84
  }
80
85
  dialogId = button.getAttribute('data-close-dialog-id') || button.getAttribute('data-submit-dialog-id');
@@ -82,6 +87,7 @@ function dialogInvokerButtonHandler(event) {
82
87
  const dialog = document.getElementById(dialogId);
83
88
  if (dialog instanceof HTMLDialogElement && dialog.open) {
84
89
  dialog.close();
90
+ updateBodyModalClasses(dialog.ownerDocument);
85
91
  }
86
92
  }
87
93
  }
@@ -98,6 +104,7 @@ export class DialogHelperElement extends HTMLElement {
98
104
  const { signal } = (__classPrivateFieldSet(this, _DialogHelperElement_abortController, new AbortController(), "f"));
99
105
  document.addEventListener('click', dialogInvokerButtonHandler, true);
100
106
  document.addEventListener('click', this, { signal });
107
+ this.dialog?.addEventListener('close', () => updateBodyModalClasses(this.dialog.ownerDocument), { signal });
101
108
  new MutationObserver(records => {
102
109
  for (const record of records) {
103
110
  if (record.target === this.dialog) {
@@ -132,14 +139,16 @@ export class DialogHelperElement extends HTMLElement {
132
139
  _DialogHelperElement_abortController = new WeakMap(), _DialogHelperElement_instances = new WeakSet(), _DialogHelperElement_handleDialogOpenAttribute = function _DialogHelperElement_handleDialogOpenAttribute() {
133
140
  if (!this.dialog)
134
141
  return;
142
+ const { ownerDocument } = this.dialog;
135
143
  // We don't want to show the Dialog component as non-modal
136
144
  if (this.dialog.matches('[open]:not(:modal)')) {
137
145
  // eslint-disable-next-line no-restricted-syntax
138
146
  this.dialog.addEventListener('close', e => e.stopImmediatePropagation(), { once: true });
139
147
  this.dialog.close();
140
- setScrollGutter(this.dialog.ownerDocument);
148
+ setScrollGutter(ownerDocument);
141
149
  this.dialog.showModal();
142
150
  }
151
+ updateBodyModalClasses(ownerDocument);
143
152
  };
144
153
  if (!window.customElements.get('dialog-helper')) {
145
154
  window.DialogHelperElement = DialogHelperElement;
@@ -1,28 +1,38 @@
1
1
  /* stylelint-disable selector-max-type, selector-max-specificity */
2
2
  /* Type selectors are required for the avatar-fallback custom element wrapper.
3
3
  Specificity overrides are needed to properly style nested avatar stacking. */
4
+
4
5
  /* OpenProject AvatarStack - styles for avatar-fallback wrapper elements */
6
+
5
7
  /* Make avatar-fallback invisible to layout - inner img acts as direct child */
8
+
6
9
  .AvatarStack-body avatar-fallback {
7
10
  display: contents;
8
11
  }
12
+
9
13
  /*
10
14
  * Z-index stacking for avatars inside avatar-fallback wrappers.
11
15
  * The base CSS uses .avatar:first-child/:last-child but those selectors
12
16
  * don't match when .avatar is inside avatar-fallback (not a direct child).
13
17
  */
18
+
14
19
  .AvatarStack-body avatar-fallback:first-child .avatar {
15
20
  z-index: 3;
16
21
  }
22
+
17
23
  .AvatarStack-body avatar-fallback:nth-child(2) .avatar {
18
24
  z-index: 2;
19
25
  }
26
+
20
27
  /* Hide 4th+ wrapped avatars */
28
+
21
29
  .AvatarStack-body avatar-fallback:nth-child(n + 4) {
22
30
  display: none;
23
31
  opacity: 0;
24
32
  }
33
+
25
34
  /* Show all on hover/focus */
35
+
26
36
  :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) avatar-fallback:nth-child(n + 4) {
27
37
  display: contents;
28
38
  opacity: 1;
@@ -1,5 +1,7 @@
1
1
  /* CSS for BorderBox::CollapsibleHeader */
2
2
 
3
+ /* stylelint-disable selector-nested-pattern -- component nests descendant class selectors (and `.X > &`) inside container queries, not &-prefixed selectors */
4
+
3
5
  .CollapsibleHeader {
4
6
  display: block;
5
7
  container-name: collapsible-header-container;
@@ -58,7 +60,7 @@
58
60
 
59
61
  .CollapsibleHeader--multi-line .CollapsibleHeader-description {
60
62
  overflow: visible;
61
- text-overflow: initial;
63
+ text-overflow: clip;
62
64
  white-space: normal;
63
65
  width: 100%;
64
66
  }
@@ -3,26 +3,28 @@
3
3
  .BorderGrid {
4
4
  display: table;
5
5
  width: 100%;
6
- margin-top: -16px;
7
- margin-bottom: -16px;
6
+ margin-top: calc(-1 * var(--base-size-16));
7
+ margin-bottom: calc(-1 * var(--base-size-16));
8
8
  table-layout: fixed;
9
+ /* stylelint-disable-next-line primer/borders -- table border-collapse keyword, not a border size */
9
10
  border-collapse: collapse;
11
+ /* stylelint-disable-next-line primer/borders -- table border-style keyword, not a border size */
10
12
  border-style: hidden
11
13
  }
12
14
 
13
15
  .BorderGrid .BorderGrid-cell {
14
- padding-top: 16px;
15
- padding-bottom: 16px
16
+ padding-top: var(--base-size-16);
17
+ padding-bottom: var(--base-size-16)
16
18
  }
17
19
 
18
20
  .BorderGrid--spacious {
19
- margin-top: -24px;
20
- margin-bottom: -24px
21
+ margin-top: calc(-1 * var(--base-size-24));
22
+ margin-bottom: calc(-1 * var(--base-size-24))
21
23
  }
22
24
 
23
25
  .BorderGrid--spacious .BorderGrid-cell {
24
- padding-top: 24px;
25
- padding-bottom: 24px
26
+ padding-top: var(--base-size-24);
27
+ padding-bottom: var(--base-size-24)
26
28
  }
27
29
 
28
30
  .BorderGrid-row {
@@ -31,5 +33,5 @@
31
33
 
32
34
  .BorderGrid-cell {
33
35
  display: table-cell;
34
- border: 1px solid var(--borderColor-muted)
36
+ border: var(--borderWidth-thin) solid var(--borderColor-muted)
35
37
  }
@@ -5,7 +5,7 @@ export declare abstract class CollapsibleElement extends HTMLElement {
5
5
  collapsibleElements: HTMLElement[];
6
6
  collapsed: boolean;
7
7
  toggleViaKeyboard(event: KeyboardEvent): void;
8
- toggle(): void;
8
+ toggle(event?: Event): void;
9
9
  attributeChangedCallback(name: string): void;
10
10
  hideAll(): void;
11
11
  expandAll(): void;
@@ -5,7 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { attr, target, targets } from '@github/catalyst';
8
- // eslint-disable-next-line custom-elements/expose-class-on-global
9
8
  export class CollapsibleElement extends HTMLElement {
10
9
  constructor() {
11
10
  super(...arguments);
@@ -13,11 +12,16 @@ export class CollapsibleElement extends HTMLElement {
13
12
  }
14
13
  toggleViaKeyboard(event) {
15
14
  if (event.code === 'Enter' || event.code === 'Space') {
16
- event.preventDefault();
17
- this.toggle();
15
+ this.toggle(event);
18
16
  }
19
17
  }
20
- toggle() {
18
+ toggle(event) {
19
+ if (event &&
20
+ event.target instanceof Element &&
21
+ !event.target.closest('[data-collapsible-toggle]') &&
22
+ event.target.closest('a, button'))
23
+ return;
24
+ event?.preventDefault();
21
25
  this.collapsed = !this.collapsed;
22
26
  }
23
27
  attributeChangedCallback(name) {
@@ -10,7 +10,6 @@
10
10
  */
11
11
 
12
12
  /* stylelint-disable-next-line selector-max-type */
13
-
14
13
  filterable-tree-view {
15
14
  display: flex;
16
15
  flex-direction: column;
@@ -30,30 +29,26 @@ filterable-tree-view {
30
29
  }
31
30
 
32
31
  /* Highlight style for CSS Custom Highlight API */
33
-
34
32
  ::highlight(primer-filterable-tree-view-search-results) {
33
+ /* stylelint-disable-next-line primer/no-display-colors, primer/colors -- intentional yellow search-match highlight; no Primer semantic token exists for this */
35
34
  background-color: var(--display-yellow-scale-2);
36
35
  }
37
36
 
38
37
  /* Fallback: <mark> elements used when CSS Custom Highlight API is unavailable */
39
-
40
38
  /* stylelint-disable-next-line selector-max-type */
41
-
42
39
  filterable-tree-view mark {
40
+ /* stylelint-disable-next-line primer/no-display-colors, primer/colors -- intentional yellow search-match highlight; no Primer semantic token exists for this */
43
41
  background-color: var(--display-yellow-scale-2);
44
42
  color: inherit;
45
43
  }
46
44
 
47
45
  /* Loading skeleton */
48
-
49
46
  .FilterableTreeViewLoadingSkeleton {
50
47
  display: none;
51
48
  }
52
49
 
53
50
  /* stylelint-disable selector-no-qualifying-type */
54
-
55
51
  /* stylelint-disable selector-max-type */
56
-
57
52
  filterable-tree-view[data-loading] .FilterableTreeViewLoadingSkeleton {
58
53
  display: block;
59
54
  }
@@ -41,13 +41,13 @@
41
41
  }
42
42
 
43
43
  /* One-liner of supporting text */
44
-
45
44
  .PageHeader-description {
46
45
  font-size: var(--text-body-size-medium);
47
46
  color: var(--fgColor-muted);
48
47
  flex: 1 auto;
49
48
  }
50
49
 
50
+ /* stylelint-disable-next-line selector-max-type -- description holds rich text; links can only be targeted by the `a` type selector */
51
51
  .PageHeader-description--underlined-links a {
52
52
  /* Ensure the accessibility is met, given that the description is written in light grey */
53
53
  -webkit-text-decoration: underline;
@@ -74,7 +74,6 @@
74
74
  }
75
75
 
76
76
  /* OpenProject legacy form markup inside header actions: match Primer / dark theme */
77
-
78
77
  .PageHeader-actions .form--label {
79
78
  color: var(--fgColor-muted);
80
79
  min-width: 0;
@@ -120,7 +119,6 @@
120
119
  }
121
120
 
122
121
  /* Hide the context bar on desktop when no breadcrumb is visible */
123
-
124
122
  @media screen and (min-width: 543.98px) {
125
123
  .PageHeader--noBreadcrumb .PageHeader-contextBar {
126
124
  display: none;
@@ -128,11 +126,10 @@
128
126
  }
129
127
 
130
128
  /* Match the title bar and actions height with the toggle menu button for proper vertical alignment */
131
-
132
129
  .PageHeader--noBreadcrumb .PageHeader-titleBar {
130
+ /* stylelint-disable-next-line primer/typography -- control size var intentionally matches the toggle-menu button height for vertical alignment */
133
131
  line-height: var(--control-small-size);
134
132
  }
135
-
136
133
  .PageHeader--noBreadcrumb .PageHeader-actions {
137
134
  height: var(--control-small-size);
138
135
  }
@@ -1,3 +1,5 @@
1
+ /* stylelint-disable selector-max-type -- pagination arrows are styled via `.Page[rel] > svg`; the svg icon can only be targeted by its type selector */
2
+
1
3
  .Page {
2
4
  min-width: var(--base-size-32);
3
5
  height: var(--base-size-32);
@@ -7,7 +9,7 @@
7
9
  white-space: nowrap;
8
10
  vertical-align: middle;
9
11
  cursor: pointer;
10
- border-radius: var(--borderRadius-medium,.375rem);
12
+ border-radius: var(--borderRadius-medium);
11
13
  transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
12
14
  display: inline-flex;
13
15
  align-items: center;
@@ -63,6 +65,7 @@
63
65
 
64
66
  .Page[aria-current]:focus-visible {
65
67
  outline: 2px solid var(--bgColor-accent-emphasis);
68
+ /* stylelint-disable-next-line primer/box-shadow -- custom focus-ring built from Primer size/color primitives; no single Primer box-shadow token matches */
66
69
  box-shadow: inset 0 0 0 var(--base-size-2) var(--fgColor-onEmphasis);
67
70
  }
68
71
 
@@ -4,11 +4,11 @@
4
4
  display: flex;
5
5
  align-items: center;
6
6
  height: 32px;
7
- margin-bottom: 8px;
7
+ margin-bottom: var(--base-size-8);
8
8
  }
9
9
 
10
10
  .SidePanel-sectionCounter {
11
- margin-left: 8px;
11
+ margin-left: var(--base-size-8);
12
12
  }
13
13
 
14
14
  .SidePanel-sectionAction {
@@ -23,5 +23,5 @@
23
23
  }
24
24
 
25
25
  :is(.SidePanel-sectionContent,.SidePanel-sectionDescription):not(:last-child) {
26
- margin-bottom: 16px;
26
+ margin-bottom: var(--base-size-16);
27
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mixtint/primer-view-components",
3
- "version": "0.89.1",
3
+ "version": "0.90.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -8,6 +8,23 @@
8
8
  "main": "app/assets/javascripts/primer_view_components.js",
9
9
  "module": "app/components/primer/primer.js",
10
10
  "types": "app/components/primer/primer.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./app/components/primer/primer.d.ts",
14
+ "import": "./app/components/primer/primer.js",
15
+ "require": "./app/assets/javascripts/primer_view_components.js"
16
+ },
17
+ "./classnames": {
18
+ "types": "./static/classnames.d.ts",
19
+ "import": "./static/classnames.js",
20
+ "require": "./static/classnames.cjs"
21
+ },
22
+ "./app/*": {
23
+ "types": "./app/*.d.ts",
24
+ "default": "./app/*"
25
+ },
26
+ "./*": "./*"
27
+ },
11
28
  "repository": "opf/primer_view_components",
12
29
  "keywords": [
13
30
  "rails",
@@ -24,6 +41,9 @@
24
41
  },
25
42
  "files": [
26
43
  "static/*.json",
44
+ "static/classnames.js",
45
+ "static/classnames.cjs",
46
+ "static/classnames.d.ts",
27
47
  "app/assets/**/*",
28
48
  "app/components/primer/**/*.js",
29
49
  "app/components/primer/**/*.css",
@@ -53,7 +73,7 @@
53
73
  "@github/details-menu-element": "^1.0.13",
54
74
  "@github/image-crop-element": "^5.0.0",
55
75
  "@github/include-fragment-element": "^6.4.1",
56
- "@github/relative-time-element": "^5.2.0",
76
+ "@github/relative-time-element": "^5.3.0",
57
77
  "@github/remote-input-element": "^0.4.0",
58
78
  "@github/tab-container-element": "^3.4.0",
59
79
  "@oddbird/popover-polyfill": "^0.5.2",
@@ -65,39 +85,39 @@
65
85
  },
66
86
  "devDependencies": {
67
87
  "@changesets/changelog-github": "^0.5.2",
68
- "@changesets/cli": "^2.31.0",
88
+ "@changesets/cli": "^2.31.1",
69
89
  "@github/axe-github": "^0.8.1",
70
90
  "@github/browserslist-config": "^1.0.0",
71
91
  "@github/markdownlint-github": "^0.8.3",
72
92
  "@github/prettier-config": "0.0.6",
73
- "@playwright/test": "^1.61.1",
74
- "@primer/css": "22.1.1",
93
+ "@playwright/test": "^1.62.0",
94
+ "@primer/css": "22.3.0",
75
95
  "@primer/primitives": "^11.9.0",
76
96
  "@primer/stylelint-config": "^13.6.0",
77
97
  "@rollup/plugin-node-resolve": "^16.0.3",
78
- "@rollup/plugin-typescript": "^8.5.0",
98
+ "@rollup/plugin-typescript": "^12.3.0",
79
99
  "axe-core": "^4.12.1",
80
100
  "chokidar-cli": "^3.0.0",
81
- "css-what": "^7.0.0",
82
- "cssnano": "^7.1.9",
83
- "eslint": "^9.39.4",
84
- "eslint-plugin-github": "^6.0.0",
101
+ "css-what": "^8.0.0",
102
+ "cssnano": "^8.0.2",
103
+ "eslint": "^9.39.5",
104
+ "eslint-plugin-github": "^6.1.1",
85
105
  "glob": "^11.1.0",
86
106
  "markdownlint-cli2": "^0.22.1",
87
107
  "mocha": "^11.7.6",
88
- "playwright": "^1.61.1",
89
- "postcss": "^8.5.16",
108
+ "playwright": "^1.62.0",
109
+ "postcss": "^8.5.24",
90
110
  "postcss-cli": "^11.0.1",
91
111
  "postcss-import": "^16.1.1",
92
112
  "postcss-mixins": "^12.1.2",
93
113
  "postcss-preset-env": "^11.3.2",
94
- "prettier": "^3.9.4",
114
+ "prettier": "^3.9.6",
95
115
  "rollup": "^2.80.0",
96
116
  "rollup-plugin-terser": "^7.0.2",
97
117
  "stylelint-actions-formatters": "^16.3.1",
98
118
  "tslib": "^2.8.1",
99
- "typescript": "^5.9.3",
100
- "vite": "^8.1.3",
119
+ "typescript": "^6.0.3",
120
+ "vite": "^8.1.5",
101
121
  "vite-plugin-ruby": "^5.2.2"
102
122
  },
103
123
  "prettier": "@github/prettier-config",
@@ -4250,6 +4250,18 @@
4250
4250
  "default": "`:default`",
4251
4251
  "description": "One of `:condensed`, `:default`, or `:spacious`."
4252
4252
  },
4253
+ {
4254
+ "name": "list_arguments",
4255
+ "type": "Hash",
4256
+ "default": "`{}`",
4257
+ "description": "[System arguments](/system-arguments)"
4258
+ },
4259
+ {
4260
+ "name": "list_id",
4261
+ "type": "String",
4262
+ "default": "N/A",
4263
+ "description": "Deprecated. Use <code>list_arguments: { id: ... }</code> instead."
4264
+ },
4253
4265
  {
4254
4266
  "name": "system_arguments",
4255
4267
  "type": "Hash",
@@ -566,6 +566,9 @@
566
566
  "Popover-message": [
567
567
  "Primer::Beta::Popover"
568
568
  ],
569
+ "Popover-message--bottom": [
570
+ "Primer::Beta::Popover"
571
+ ],
569
572
  "Popover-message--bottom-left": [
570
573
  "Primer::Beta::Popover"
571
574
  ],
@@ -575,9 +578,27 @@
575
578
  "Popover-message--large": [
576
579
  "Primer::Beta::Popover"
577
580
  ],
581
+ "Popover-message--left": [
582
+ "Primer::Beta::Popover"
583
+ ],
584
+ "Popover-message--left-bottom": [
585
+ "Primer::Beta::Popover"
586
+ ],
587
+ "Popover-message--left-top": [
588
+ "Primer::Beta::Popover"
589
+ ],
578
590
  "Popover-message--no-caret": [
579
591
  "Primer::Beta::Popover"
580
592
  ],
593
+ "Popover-message--right": [
594
+ "Primer::Beta::Popover"
595
+ ],
596
+ "Popover-message--right-bottom": [
597
+ "Primer::Beta::Popover"
598
+ ],
599
+ "Popover-message--right-top": [
600
+ "Primer::Beta::Popover"
601
+ ],
581
602
  "Popover-message--top-left": [
582
603
  "Primer::Beta::Popover"
583
604
  ],