@primer/view-components 0.15.0-rc.bbd7736d → 0.15.0-rc.cf8d9e05
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.
- package/app/assets/javascripts/app/components/primer/beta/nav_list.d.ts +0 -11
- package/app/assets/javascripts/app/components/primer/beta/nav_list_group_element.d.ts +19 -0
- package/app/assets/javascripts/app/components/primer/primer.d.ts +1 -0
- package/app/assets/javascripts/primer_view_components.js +1 -1
- package/app/assets/javascripts/primer_view_components.js.map +1 -1
- package/app/assets/styles/primer_view_components.css +1 -1
- package/app/assets/styles/primer_view_components.css.map +1 -1
- package/app/components/primer/beta/blankslate.css +1 -1
- package/app/components/primer/beta/nav_list.d.ts +0 -11
- package/app/components/primer/beta/nav_list.js +2 -85
- package/app/components/primer/beta/nav_list_group_element.d.ts +19 -0
- package/app/components/primer/beta/nav_list_group_element.js +108 -0
- package/app/components/primer/primer.d.ts +1 -0
- package/app/components/primer/primer.js +1 -0
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
.blankslate-container{container-type:inline-size}.blankslate{--blankslate-outer-padding-block:var(--base-size-32,2rem);--blankslate-outer-padding-inline:var(--base-size-32,2rem);padding:var(--blankslate-outer-padding-block) var(--blankslate-outer-padding-inline);position:relative;text-align:center}.blankslate p{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-large,1rem)}.blankslate code{background:var(--bgColor-default,var(--color-canvas-default));border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--borderColor-muted,var(--color-border-muted));border-radius:var(--borderRadius-medium,.375rem);font-size:var(--text-body-size-medium,.875rem);padding:2px 5px 3px}.blankslate img{height:56px;width:56px}.blankslate-icon{color:var(--fgColor-muted,var(--color-fg-muted));margin-bottom:var(--stack-gap-condensed,.5rem);margin-left:var(--control-small-gap,.25rem);margin-right:var(--control-small-gap,.25rem)}.blankslate-image{margin-bottom:var(--stack-gap-normal,1rem)}.blankslate-heading{font-size:var(--text-title-size-medium,1.25rem);font-weight:var(--text-title-weight-medium,600);margin-bottom:var(--base-size-4,.25rem)}.blankslate-action{margin-top:var(--stack-gap-normal,1rem)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-spacious,1.5rem)}.blankslate-action:last-of-type{margin-bottom:var(--stack-gap-condensed,.5rem)}.blankslate-capped{border-radius:0 0 var(--borderRadius-medium,.375rem) var(--borderRadius-medium,.375rem)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-80,5rem);--blankslate-outer-padding-inline:var(--base-size-40,2.5rem)}.blankslate-narrow{margin:0 auto;max-width:485px}.blankslate-large img{height:80px;width:80px}.blankslate-large h3{font-size:24px;margin:var(--stack-gap-normal,1rem) 0}.blankslate-large p{font-size:var(--text-body-size-large,1rem)}.blankslate-clean-background{border:0}@container (max-width: 34rem){.blankslate{--blankslate-outer-padding-block:var(--base-size-20,1.25rem);--blankslate-outer-padding-inline:var(--base-size-20,1.25rem)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-44,2.75rem);--blankslate-outer-padding-inline:var(--base-size-28,1.75rem)}.blankslate-icon{margin-bottom:var(--stack-gap-condensed,.5rem)}.blankslate-heading{font-size:var(--text-title-size-small,1rem)}.blankslate p{font-size:var(--text-body-size-medium,.875rem)}.blankslate-action{margin-top:var(--stack-gap-condensed,.5rem)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-normal,1rem)}.blankslate-action:last-of-type{margin-bottom:calc(var(--stack-gap-condensed,.5rem)/2)}}
|
1
|
+
.blankslate-container{container-type:inline-size;width:100%}.blankslate{--blankslate-outer-padding-block:var(--base-size-32,2rem);--blankslate-outer-padding-inline:var(--base-size-32,2rem);padding:var(--blankslate-outer-padding-block) var(--blankslate-outer-padding-inline);position:relative;text-align:center}.blankslate p{color:var(--fgColor-muted,var(--color-fg-muted));font-size:var(--text-body-size-large,1rem)}.blankslate code{background:var(--bgColor-default,var(--color-canvas-default));border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--borderColor-muted,var(--color-border-muted));border-radius:var(--borderRadius-medium,.375rem);font-size:var(--text-body-size-medium,.875rem);padding:2px 5px 3px}.blankslate img{height:56px;width:56px}.blankslate-icon{color:var(--fgColor-muted,var(--color-fg-muted));margin-bottom:var(--stack-gap-condensed,.5rem);margin-left:var(--control-small-gap,.25rem);margin-right:var(--control-small-gap,.25rem)}.blankslate-image{margin-bottom:var(--stack-gap-normal,1rem)}.blankslate-heading{font-size:var(--text-title-size-medium,1.25rem);font-weight:var(--text-title-weight-medium,600);margin-bottom:var(--base-size-4,.25rem)}.blankslate-action{margin-top:var(--stack-gap-normal,1rem)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-spacious,1.5rem)}.blankslate-action:last-of-type{margin-bottom:var(--stack-gap-condensed,.5rem)}.blankslate-capped{border-radius:0 0 var(--borderRadius-medium,.375rem) var(--borderRadius-medium,.375rem)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-80,5rem);--blankslate-outer-padding-inline:var(--base-size-40,2.5rem)}.blankslate-narrow{margin:0 auto;max-width:485px}.blankslate-large img{height:80px;width:80px}.blankslate-large h3{font-size:24px;margin:var(--stack-gap-normal,1rem) 0}.blankslate-large p{font-size:var(--text-body-size-large,1rem)}.blankslate-clean-background{border:0}@container (max-width: 34rem){.blankslate{--blankslate-outer-padding-block:var(--base-size-20,1.25rem);--blankslate-outer-padding-inline:var(--base-size-20,1.25rem)}.blankslate-spacious{--blankslate-outer-padding-block:var(--base-size-44,2.75rem);--blankslate-outer-padding-inline:var(--base-size-28,1.75rem)}.blankslate-icon{margin-bottom:var(--stack-gap-condensed,.5rem)}.blankslate-heading{font-size:var(--text-title-size-small,1rem)}.blankslate p{font-size:var(--text-body-size-medium,.875rem)}.blankslate-action{margin-top:var(--stack-gap-condensed,.5rem)}.blankslate-action:first-of-type{margin-top:var(--stack-gap-normal,1rem)}.blankslate-action:last-of-type{margin-bottom:calc(var(--stack-gap-condensed,.5rem)/2)}}
|
@@ -1,15 +1,6 @@
|
|
1
1
|
export declare class NavListElement extends HTMLElement {
|
2
2
|
#private;
|
3
3
|
items: HTMLElement[];
|
4
|
-
showMoreItem: HTMLElement;
|
5
|
-
focusMarkers: HTMLElement[];
|
6
|
-
connectedCallback(): void;
|
7
|
-
get showMoreDisabled(): boolean;
|
8
|
-
set showMoreDisabled(value: boolean);
|
9
|
-
set currentPage(value: number);
|
10
|
-
get currentPage(): number;
|
11
|
-
get totalPages(): number;
|
12
|
-
get paginationSrc(): string;
|
13
4
|
selectItemById(itemId: string | null): boolean;
|
14
5
|
selectItemByHref(href: string | null): boolean;
|
15
6
|
selectItemByCurrentLocation(): boolean;
|
@@ -18,8 +9,6 @@ export declare class NavListElement extends HTMLElement {
|
|
18
9
|
itemIsExpanded(item: HTMLElement | null): boolean;
|
19
10
|
handleItemWithSubItemClick(e: Event): void;
|
20
11
|
handleItemWithSubItemKeydown(e: KeyboardEvent): void;
|
21
|
-
private showMore;
|
22
|
-
private setShowMoreItemState;
|
23
12
|
}
|
24
13
|
declare global {
|
25
14
|
interface Window {
|
@@ -9,41 +9,14 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
11
11
|
};
|
12
|
-
var _NavListElement_instances,
|
12
|
+
var _NavListElement_instances, _NavListElement_findSelectedNavItemById, _NavListElement_findSelectedNavItemByHref, _NavListElement_findSelectedNavItemByCurrentLocation, _NavListElement_select, _NavListElement_deselect, _NavListElement_findParentMenu;
|
13
13
|
/* eslint-disable custom-elements/expose-class-on-global */
|
14
|
-
import { controller,
|
14
|
+
import { controller, targets } from '@github/catalyst';
|
15
15
|
let NavListElement = class NavListElement extends HTMLElement {
|
16
16
|
constructor() {
|
17
17
|
super(...arguments);
|
18
18
|
_NavListElement_instances.add(this);
|
19
19
|
}
|
20
|
-
connectedCallback() {
|
21
|
-
this.setShowMoreItemState();
|
22
|
-
}
|
23
|
-
get showMoreDisabled() {
|
24
|
-
return this.showMoreItem.hasAttribute('aria-disabled');
|
25
|
-
}
|
26
|
-
set showMoreDisabled(value) {
|
27
|
-
if (value) {
|
28
|
-
this.showMoreItem.setAttribute('aria-disabled', 'true');
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
this.showMoreItem.removeAttribute('aria-disabled');
|
32
|
-
}
|
33
|
-
this.showMoreItem.classList.toggle('disabled', value);
|
34
|
-
}
|
35
|
-
set currentPage(value) {
|
36
|
-
this.showMoreItem.setAttribute('data-current-page', value.toString());
|
37
|
-
}
|
38
|
-
get currentPage() {
|
39
|
-
return parseInt(this.showMoreItem.getAttribute('data-current-page')) || 1;
|
40
|
-
}
|
41
|
-
get totalPages() {
|
42
|
-
return parseInt(this.showMoreItem.getAttribute('data-total-pages')) || 1;
|
43
|
-
}
|
44
|
-
get paginationSrc() {
|
45
|
-
return this.showMoreItem.getAttribute('src') || '';
|
46
|
-
}
|
47
20
|
selectItemById(itemId) {
|
48
21
|
if (!itemId)
|
49
22
|
return false;
|
@@ -126,58 +99,8 @@ let NavListElement = class NavListElement extends HTMLElement {
|
|
126
99
|
}
|
127
100
|
e.stopPropagation();
|
128
101
|
}
|
129
|
-
async showMore(e) {
|
130
|
-
var _a, _b;
|
131
|
-
e.preventDefault();
|
132
|
-
if (this.showMoreDisabled)
|
133
|
-
return;
|
134
|
-
this.showMoreDisabled = true;
|
135
|
-
let html;
|
136
|
-
try {
|
137
|
-
const paginationURL = new URL(this.paginationSrc, window.location.origin);
|
138
|
-
this.currentPage++;
|
139
|
-
paginationURL.searchParams.append('page', this.currentPage.toString());
|
140
|
-
const response = await fetch(paginationURL);
|
141
|
-
if (!response.ok)
|
142
|
-
return;
|
143
|
-
html = await response.text();
|
144
|
-
if (this.currentPage === this.totalPages) {
|
145
|
-
this.showMoreItem.hidden = true;
|
146
|
-
}
|
147
|
-
}
|
148
|
-
catch (err) {
|
149
|
-
// Ignore network errors
|
150
|
-
this.showMoreDisabled = false;
|
151
|
-
this.currentPage--;
|
152
|
-
return;
|
153
|
-
}
|
154
|
-
const fragment = __classPrivateFieldGet(this, _NavListElement_instances, "m", _NavListElement_parseHTML).call(this, document, html);
|
155
|
-
(_a = fragment === null || fragment === void 0 ? void 0 : fragment.querySelector('li > a')) === null || _a === void 0 ? void 0 : _a.setAttribute('data-targets', 'nav-list.focusMarkers');
|
156
|
-
const listId = e.target.closest('button').getAttribute('data-list-id');
|
157
|
-
const list = document.getElementById(listId);
|
158
|
-
list.append(fragment);
|
159
|
-
(_b = this.focusMarkers.pop()) === null || _b === void 0 ? void 0 : _b.focus();
|
160
|
-
this.showMoreDisabled = false;
|
161
|
-
}
|
162
|
-
setShowMoreItemState() {
|
163
|
-
if (!this.showMoreItem) {
|
164
|
-
return;
|
165
|
-
}
|
166
|
-
if (this.currentPage < this.totalPages) {
|
167
|
-
this.showMoreItem.hidden = false;
|
168
|
-
}
|
169
|
-
else {
|
170
|
-
this.showMoreItem.hidden = true;
|
171
|
-
}
|
172
|
-
}
|
173
102
|
};
|
174
103
|
_NavListElement_instances = new WeakSet();
|
175
|
-
_NavListElement_parseHTML = function _NavListElement_parseHTML(document, html) {
|
176
|
-
const template = document.createElement('template');
|
177
|
-
// eslint-disable-next-line github/no-inner-html
|
178
|
-
template.innerHTML = html;
|
179
|
-
return document.importNode(template.content, true);
|
180
|
-
};
|
181
104
|
_NavListElement_findSelectedNavItemById = function _NavListElement_findSelectedNavItemById(itemId) {
|
182
105
|
var _a;
|
183
106
|
// First we compare the selected link to data-item-id for each nav item
|
@@ -243,12 +166,6 @@ _NavListElement_findParentMenu = function _NavListElement_findParentMenu(navItem
|
|
243
166
|
__decorate([
|
244
167
|
targets
|
245
168
|
], NavListElement.prototype, "items", void 0);
|
246
|
-
__decorate([
|
247
|
-
target
|
248
|
-
], NavListElement.prototype, "showMoreItem", void 0);
|
249
|
-
__decorate([
|
250
|
-
targets
|
251
|
-
], NavListElement.prototype, "focusMarkers", void 0);
|
252
169
|
NavListElement = __decorate([
|
253
170
|
controller
|
254
171
|
], NavListElement);
|
@@ -0,0 +1,19 @@
|
|
1
|
+
export declare class NavListGroupElement extends HTMLElement {
|
2
|
+
#private;
|
3
|
+
showMoreItem: HTMLElement;
|
4
|
+
focusMarkers: HTMLElement[];
|
5
|
+
connectedCallback(): void;
|
6
|
+
get showMoreDisabled(): boolean;
|
7
|
+
set showMoreDisabled(value: boolean);
|
8
|
+
set currentPage(value: number);
|
9
|
+
get currentPage(): number;
|
10
|
+
get totalPages(): number;
|
11
|
+
get paginationSrc(): string;
|
12
|
+
private showMore;
|
13
|
+
private setShowMoreItemState;
|
14
|
+
}
|
15
|
+
declare global {
|
16
|
+
interface Window {
|
17
|
+
NavListGroupElement: typeof NavListGroupElement;
|
18
|
+
}
|
19
|
+
}
|
@@ -0,0 +1,108 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
11
|
+
};
|
12
|
+
var _NavListGroupElement_instances, _NavListGroupElement_parseHTML;
|
13
|
+
import { controller, target, targets } from '@github/catalyst';
|
14
|
+
let NavListGroupElement = class NavListGroupElement extends HTMLElement {
|
15
|
+
constructor() {
|
16
|
+
super(...arguments);
|
17
|
+
_NavListGroupElement_instances.add(this);
|
18
|
+
}
|
19
|
+
connectedCallback() {
|
20
|
+
this.setShowMoreItemState();
|
21
|
+
}
|
22
|
+
get showMoreDisabled() {
|
23
|
+
return this.showMoreItem.hasAttribute('aria-disabled');
|
24
|
+
}
|
25
|
+
set showMoreDisabled(value) {
|
26
|
+
if (value) {
|
27
|
+
this.showMoreItem.setAttribute('aria-disabled', 'true');
|
28
|
+
}
|
29
|
+
else {
|
30
|
+
this.showMoreItem.removeAttribute('aria-disabled');
|
31
|
+
}
|
32
|
+
this.showMoreItem.classList.toggle('disabled', value);
|
33
|
+
}
|
34
|
+
set currentPage(value) {
|
35
|
+
this.showMoreItem.setAttribute('data-current-page', value.toString());
|
36
|
+
}
|
37
|
+
get currentPage() {
|
38
|
+
return parseInt(this.showMoreItem.getAttribute('data-current-page')) || 1;
|
39
|
+
}
|
40
|
+
get totalPages() {
|
41
|
+
return parseInt(this.showMoreItem.getAttribute('data-total-pages')) || 1;
|
42
|
+
}
|
43
|
+
get paginationSrc() {
|
44
|
+
return this.showMoreItem.getAttribute('src') || '';
|
45
|
+
}
|
46
|
+
async showMore(e) {
|
47
|
+
var _a, _b;
|
48
|
+
e.preventDefault();
|
49
|
+
if (this.showMoreDisabled)
|
50
|
+
return;
|
51
|
+
this.showMoreDisabled = true;
|
52
|
+
let html;
|
53
|
+
try {
|
54
|
+
const paginationURL = new URL(this.paginationSrc, window.location.origin);
|
55
|
+
this.currentPage++;
|
56
|
+
paginationURL.searchParams.append('page', this.currentPage.toString());
|
57
|
+
const response = await fetch(paginationURL);
|
58
|
+
if (!response.ok)
|
59
|
+
return;
|
60
|
+
html = await response.text();
|
61
|
+
if (this.currentPage === this.totalPages) {
|
62
|
+
this.showMoreItem.hidden = true;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
catch (err) {
|
66
|
+
// Ignore network errors
|
67
|
+
this.showMoreDisabled = false;
|
68
|
+
this.currentPage--;
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
const fragment = __classPrivateFieldGet(this, _NavListGroupElement_instances, "m", _NavListGroupElement_parseHTML).call(this, document, html);
|
72
|
+
(_a = fragment === null || fragment === void 0 ? void 0 : fragment.querySelector('li > a')) === null || _a === void 0 ? void 0 : _a.setAttribute('data-targets', 'nav-list-group.focusMarkers');
|
73
|
+
const listId = e.target.closest('button').getAttribute('data-list-id');
|
74
|
+
const list = document.getElementById(listId);
|
75
|
+
list.append(fragment);
|
76
|
+
(_b = this.focusMarkers.pop()) === null || _b === void 0 ? void 0 : _b.focus();
|
77
|
+
this.showMoreDisabled = false;
|
78
|
+
}
|
79
|
+
setShowMoreItemState() {
|
80
|
+
if (!this.showMoreItem) {
|
81
|
+
return;
|
82
|
+
}
|
83
|
+
if (this.currentPage < this.totalPages) {
|
84
|
+
this.showMoreItem.hidden = false;
|
85
|
+
}
|
86
|
+
else {
|
87
|
+
this.showMoreItem.hidden = true;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
};
|
91
|
+
_NavListGroupElement_instances = new WeakSet();
|
92
|
+
_NavListGroupElement_parseHTML = function _NavListGroupElement_parseHTML(document, html) {
|
93
|
+
const template = document.createElement('template');
|
94
|
+
// eslint-disable-next-line github/no-inner-html
|
95
|
+
template.innerHTML = html;
|
96
|
+
return document.importNode(template.content, true);
|
97
|
+
};
|
98
|
+
__decorate([
|
99
|
+
target
|
100
|
+
], NavListGroupElement.prototype, "showMoreItem", void 0);
|
101
|
+
__decorate([
|
102
|
+
targets
|
103
|
+
], NavListGroupElement.prototype, "focusMarkers", void 0);
|
104
|
+
NavListGroupElement = __decorate([
|
105
|
+
controller
|
106
|
+
], NavListGroupElement);
|
107
|
+
export { NavListGroupElement };
|
108
|
+
window.NavListGroupElement = NavListGroupElement;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@primer/view-components",
|
3
|
-
"version": "0.15.0-rc.
|
3
|
+
"version": "0.15.0-rc.cf8d9e05",
|
4
4
|
"description": "ViewComponents for the Primer Design System",
|
5
5
|
"main": "app/assets/javascripts/primer_view_components.js",
|
6
6
|
"module": "app/components/primer/primer.js",
|
@@ -59,7 +59,7 @@
|
|
59
59
|
"@changesets/cli": "^2.24.1",
|
60
60
|
"@github/axe-github": "^0.6.1",
|
61
61
|
"@github/browserslist-config": "^1.0.0",
|
62
|
-
"@github/markdownlint-github": "^0.
|
62
|
+
"@github/markdownlint-github": "^0.6.0",
|
63
63
|
"@github/prettier-config": "0.0.6",
|
64
64
|
"@playwright/test": "^1.35.1",
|
65
65
|
"@primer/css": "21.0.10",
|