wuffle 0.42.2 → 0.43.0
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/bin/run.js +1 -1
- package/lib/apps/github-issues/GithubIssues.js +70 -21
- package/lib/columns.js +16 -3
- package/lib/links.js +15 -5
- package/lib/probot/apps/setup.js +1 -1
- package/lib/probot/manifest-creation.js +1 -1
- package/lib/store.js +11 -0
- package/lib/util/index.js +1 -1
- package/lib/util/links.js +48 -26
- package/package.json +9 -9
- package/public/bundle.css +1 -1
- package/public/bundle.js +1 -1
- package/public/bundle.js.map +1 -1
package/bin/run.js
CHANGED
|
@@ -55,27 +55,25 @@ function GithubIssues(logger, config, columns) {
|
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
return update;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function getLabelUpdate(issue, newColumn) {
|
|
62
|
+
|
|
58
63
|
const issueLabels = issue.labels.map(l => l.name);
|
|
59
64
|
|
|
60
65
|
const newLabel = newColumn.label;
|
|
61
66
|
|
|
62
|
-
const
|
|
67
|
+
const addLabels = (!newLabel || issueLabels.includes(newLabel)) ? [] : [ newLabel ];
|
|
63
68
|
|
|
64
|
-
const
|
|
69
|
+
const removeLabels = columns.getAll().map(c => c.label).filter(
|
|
65
70
|
label => label && label !== newLabel && issueLabels.includes(label)
|
|
66
71
|
);
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
...issueLabels.filter(l => !labelsToRemove.includes(l)),
|
|
73
|
-
...labelsToAdd
|
|
74
|
-
]
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return update;
|
|
73
|
+
return {
|
|
74
|
+
addLabels,
|
|
75
|
+
removeLabels
|
|
76
|
+
};
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
function findIssue(context, issue_number) {
|
|
@@ -144,18 +142,67 @@ function GithubIssues(logger, config, columns) {
|
|
|
144
142
|
...getStateUpdate(issue, newColumn)
|
|
145
143
|
};
|
|
146
144
|
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
const {
|
|
146
|
+
addLabels,
|
|
147
|
+
removeLabels
|
|
148
|
+
} = getLabelUpdate(issue, newColumn);
|
|
149
|
+
|
|
150
|
+
const invocations = [];
|
|
151
|
+
|
|
152
|
+
if (hasKeys(addLabels)) {
|
|
153
|
+
|
|
154
|
+
const addLabelParams = context.repo({
|
|
155
|
+
issue_number,
|
|
156
|
+
labels: addLabels
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
log.info(addLabelParams, 'add labels');
|
|
160
|
+
|
|
161
|
+
invocations.push(
|
|
162
|
+
context.octokit.issues.addLabels(addLabelParams)
|
|
163
|
+
);
|
|
149
164
|
}
|
|
150
165
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
166
|
+
if (hasKeys(update)) {
|
|
167
|
+
|
|
168
|
+
const params = context.repo({
|
|
169
|
+
issue_number,
|
|
170
|
+
...update
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
log.info(params, 'update');
|
|
174
|
+
|
|
175
|
+
invocations.push(
|
|
176
|
+
context.octokit.issues.update(params)
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
for (const label of removeLabels) {
|
|
181
|
+
|
|
182
|
+
const removeLabelParams = context.repo({
|
|
183
|
+
issue_number,
|
|
184
|
+
name: label
|
|
185
|
+
});
|
|
155
186
|
|
|
156
|
-
|
|
187
|
+
log.info({
|
|
188
|
+
...removeLabelParams,
|
|
189
|
+
label
|
|
190
|
+
}, 'remove label');
|
|
191
|
+
|
|
192
|
+
invocations.push(
|
|
193
|
+
context.octokit.issues.removeLabel(removeLabelParams).catch(err => {
|
|
194
|
+
|
|
195
|
+
// gracefully handle non-existing label
|
|
196
|
+
// may have been already removed by other
|
|
197
|
+
// integrations
|
|
198
|
+
if (err.status !== 404) {
|
|
199
|
+
return Promise.reject(err);
|
|
200
|
+
}
|
|
201
|
+
})
|
|
202
|
+
);
|
|
203
|
+
}
|
|
157
204
|
|
|
158
|
-
return
|
|
205
|
+
return Promise.all(invocations);
|
|
159
206
|
}
|
|
160
207
|
|
|
161
208
|
|
|
@@ -169,6 +216,8 @@ function GithubIssues(logger, config, columns) {
|
|
|
169
216
|
|
|
170
217
|
this.getAssigneeUpdate = getAssigneeUpdate;
|
|
171
218
|
|
|
219
|
+
this.getLabelUpdate = getLabelUpdate;
|
|
220
|
+
|
|
172
221
|
this.findAndMoveIssue = findAndMoveIssue;
|
|
173
222
|
|
|
174
223
|
}
|
package/lib/columns.js
CHANGED
|
@@ -14,9 +14,15 @@ const StateToNames = {
|
|
|
14
14
|
EXTERNAL_CONTRIBUTION: 'Inbox'
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* @typedef { { name: string, label?: string|null, closed?: boolean } } ColumnDefinition
|
|
19
|
+
*/
|
|
17
20
|
|
|
18
21
|
class Columns {
|
|
19
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @param { ColumnDefinition[] } columns
|
|
25
|
+
*/
|
|
20
26
|
constructor(columns) {
|
|
21
27
|
this.columns = columns;
|
|
22
28
|
|
|
@@ -89,7 +95,11 @@ function createColumnGetter(columns) {
|
|
|
89
95
|
|
|
90
96
|
return function(issue) {
|
|
91
97
|
|
|
92
|
-
const
|
|
98
|
+
const {
|
|
99
|
+
column: issueColumn
|
|
100
|
+
} = issue;
|
|
101
|
+
|
|
102
|
+
const columns = sortedColumns.filter(column => {
|
|
93
103
|
|
|
94
104
|
const issueClosed = issue.state === 'closed';
|
|
95
105
|
|
|
@@ -101,14 +111,17 @@ function createColumnGetter(columns) {
|
|
|
101
111
|
return false;
|
|
102
112
|
}
|
|
103
113
|
|
|
104
|
-
if (!columnLabel) {
|
|
114
|
+
if (!columnLabel && defaultColumn !== column) {
|
|
105
115
|
return true;
|
|
106
116
|
}
|
|
107
117
|
|
|
108
118
|
return issue.labels.find(l => l.name === columnLabel);
|
|
109
119
|
});
|
|
110
120
|
|
|
111
|
-
|
|
121
|
+
// ensure that column is stable; it only changes
|
|
122
|
+
// if the given configuration doesn't match the
|
|
123
|
+
// existing column
|
|
124
|
+
return columns.find(c => c.name === issueColumn) || columns[0] || defaultColumn;
|
|
112
125
|
};
|
|
113
126
|
}
|
|
114
127
|
|
package/lib/links.js
CHANGED
|
@@ -19,6 +19,9 @@ const InverseLinkTypes = {
|
|
|
19
19
|
LINKED_TO: LinkTypes.LINKED_BY
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* @typedef { { sourceId: string, targetId: string, type: string, key: string } } Link
|
|
24
|
+
*/
|
|
22
25
|
|
|
23
26
|
/**
|
|
24
27
|
* A utility to maintain links
|
|
@@ -30,6 +33,13 @@ class Links {
|
|
|
30
33
|
this.inverseLinks = (data && data.inverseLinks) || {};
|
|
31
34
|
}
|
|
32
35
|
|
|
36
|
+
/**
|
|
37
|
+
* @param {string} sourceId
|
|
38
|
+
* @param {string} targetId
|
|
39
|
+
* @param {string} linkType
|
|
40
|
+
*
|
|
41
|
+
* @return {Link}
|
|
42
|
+
*/
|
|
33
43
|
createLink(sourceId, targetId, linkType) {
|
|
34
44
|
|
|
35
45
|
const key = `${targetId}-${linkType}`;
|
|
@@ -47,7 +57,7 @@ class Links {
|
|
|
47
57
|
/**
|
|
48
58
|
* Establish a link between source and target with the given type.
|
|
49
59
|
*
|
|
50
|
-
* @param {
|
|
60
|
+
* @param {Link} link
|
|
51
61
|
*/
|
|
52
62
|
addLink(link) {
|
|
53
63
|
|
|
@@ -92,9 +102,9 @@ class Links {
|
|
|
92
102
|
/**
|
|
93
103
|
* Get all links that have the issue as the source.
|
|
94
104
|
*
|
|
95
|
-
* @param {
|
|
105
|
+
* @param {string} sourceId
|
|
96
106
|
*
|
|
97
|
-
* @return {
|
|
107
|
+
* @return {Link[]} links
|
|
98
108
|
*/
|
|
99
109
|
getBySource(sourceId) {
|
|
100
110
|
const links = this.getDirect(sourceId);
|
|
@@ -118,9 +128,9 @@ class Links {
|
|
|
118
128
|
/**
|
|
119
129
|
* Remove primary links that have the issue as the source.
|
|
120
130
|
*
|
|
121
|
-
* @param {
|
|
131
|
+
* @param {string} sourceId
|
|
122
132
|
*
|
|
123
|
-
* @return {
|
|
133
|
+
* @return {Link[]} removedLinks
|
|
124
134
|
*/
|
|
125
135
|
removeBySource(sourceId) {
|
|
126
136
|
|
package/lib/probot/apps/setup.js
CHANGED
|
@@ -17,7 +17,7 @@ class ManifestCreation extends ProbotManifestCreation {
|
|
|
17
17
|
const options = {
|
|
18
18
|
code,
|
|
19
19
|
mediaType: {
|
|
20
|
-
previews: ['fury'] // needed for GHES 2.20 and older
|
|
20
|
+
previews: [ 'fury' ] // needed for GHES 2.20 and older
|
|
21
21
|
},
|
|
22
22
|
...(process.env.GHE_HOST && {
|
|
23
23
|
baseUrl: `${process.env.GHE_PROTOCOL || 'https'}://${
|
package/lib/store.js
CHANGED
|
@@ -15,8 +15,19 @@ const {
|
|
|
15
15
|
const { Links } = require('./links');
|
|
16
16
|
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* The store that holds all board data
|
|
20
|
+
* and makes it accessible.
|
|
21
|
+
*/
|
|
18
22
|
class Store {
|
|
19
23
|
|
|
24
|
+
/**
|
|
25
|
+
* @param {import('./columns')} columns
|
|
26
|
+
* @param {import('./types').Logger} logger
|
|
27
|
+
* @param {import('./events')} events
|
|
28
|
+
*
|
|
29
|
+
* @constructor
|
|
30
|
+
*/
|
|
20
31
|
constructor(columns, logger, events) {
|
|
21
32
|
this.log = logger.child({
|
|
22
33
|
name: 'wuffle:store'
|
package/lib/util/index.js
CHANGED
package/lib/util/links.js
CHANGED
|
@@ -54,65 +54,87 @@ function findLinks(issue, types) {
|
|
|
54
54
|
const issueUrlPart = `https:\\/\\/github.com\\/(${namePart})\\/(${namePart})\\/(?:issues|pull)\\/(\\d+)`;
|
|
55
55
|
const issuePart = `(?:${issueShortHandPart}|${issueUrlPart})`;
|
|
56
56
|
const separatorPart = '(?:[\\s,]+(?:and[\\s,]+)?)';
|
|
57
|
+
const taskPart = '[-*]{1}\\s*\\[[x ]{1}\\]\\s+.*';
|
|
57
58
|
|
|
58
59
|
const pattern = new RegExp(`${typePart}${issuePart}`, 'ig');
|
|
59
60
|
const continuationPattern = new RegExp(`^${separatorPart}${issuePart}`, 'i');
|
|
61
|
+
const taskPattern = new RegExp(`${taskPart}`, 'img');
|
|
60
62
|
|
|
61
63
|
const links = [];
|
|
62
64
|
|
|
63
65
|
let match, continuationMatch;
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
const issueMatches = [];
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
* match = [
|
|
71
|
+
* short_org, short_repo, short_number,
|
|
72
|
+
* long_org, long_repo, long_number
|
|
73
|
+
* ]
|
|
74
|
+
*/
|
|
66
75
|
|
|
67
76
|
while ((match = pattern.exec(text))) {
|
|
68
77
|
|
|
69
78
|
const type = phrasesToTypes[match[1]];
|
|
70
79
|
|
|
71
|
-
|
|
80
|
+
issueMatches.push([ type, match.slice(2) ]);
|
|
72
81
|
|
|
73
82
|
let continuationIdx = match.index + match[0].length;
|
|
74
83
|
|
|
84
|
+
/*
|
|
85
|
+
* continuationMatch = [
|
|
86
|
+
* short_org, short_repo, short_number,
|
|
87
|
+
* long_org, long_repo, long_number
|
|
88
|
+
* ]
|
|
89
|
+
*/
|
|
90
|
+
|
|
75
91
|
do {
|
|
76
92
|
continuationMatch = continuationPattern.exec(text.slice(continuationIdx));
|
|
77
93
|
|
|
78
94
|
if (continuationMatch) {
|
|
79
|
-
issueMatches
|
|
80
|
-
...issueMatches,
|
|
81
|
-
...continuationMatch.slice(1)
|
|
82
|
-
];
|
|
95
|
+
issueMatches.push([ type, continuationMatch.slice(1) ]);
|
|
83
96
|
|
|
84
97
|
continuationIdx += continuationMatch[0].length;
|
|
85
98
|
}
|
|
86
99
|
|
|
87
100
|
} while (continuationMatch);
|
|
88
101
|
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
while ((match = taskPattern.exec(text))) {
|
|
89
105
|
|
|
90
|
-
|
|
106
|
+
const text = match[0];
|
|
91
107
|
|
|
92
|
-
|
|
108
|
+
let issueMatch;
|
|
93
109
|
|
|
94
|
-
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
110
|
+
const issuePattern = new RegExp(`${issuePart}`, 'ig');
|
|
97
111
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const number = parseInt(issueMatches[offset + 2], 10);
|
|
101
|
-
|
|
102
|
-
const link = owner ? {
|
|
103
|
-
type,
|
|
104
|
-
number,
|
|
105
|
-
owner,
|
|
106
|
-
repo
|
|
107
|
-
} : {
|
|
108
|
-
type,
|
|
109
|
-
number
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
links.push(link);
|
|
112
|
+
while ((issueMatch = issuePattern.exec(text))) {
|
|
113
|
+
issueMatches.push([ PARENT_OF, issueMatch.slice(1) ]);
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
|
|
117
|
+
for (const issueMatch of issueMatches) {
|
|
118
|
+
|
|
119
|
+
const [ type, issueParts ] = issueMatch;
|
|
120
|
+
|
|
121
|
+
const owner = issueParts[0] || issueParts[3];
|
|
122
|
+
const repo = issueParts[1] || issueParts[4];
|
|
123
|
+
const number = parseInt(issueParts[2] || issueParts[5], 10);
|
|
124
|
+
|
|
125
|
+
const link = owner ? {
|
|
126
|
+
type,
|
|
127
|
+
number,
|
|
128
|
+
owner,
|
|
129
|
+
repo
|
|
130
|
+
} : {
|
|
131
|
+
type,
|
|
132
|
+
number
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
links.push(link);
|
|
136
|
+
}
|
|
137
|
+
|
|
116
138
|
if (typeof types !== 'undefined') {
|
|
117
139
|
return filterLinks(links, types);
|
|
118
140
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wuffle",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0",
|
|
4
4
|
"description": "A multi-repository task board for GitHub issues",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Nico Rehwaldt",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@aws-sdk/client-s3": "^3.38.0",
|
|
40
|
-
"async-didi": "^0.
|
|
40
|
+
"async-didi": "^0.3.1",
|
|
41
41
|
"body-parser": "^1.19.0",
|
|
42
42
|
"compression": "^1.7.4",
|
|
43
43
|
"express-session": "^1.17.2",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"mkdirp": "^1.0.4",
|
|
48
48
|
"p-defer": "^3.0.0",
|
|
49
49
|
"prexit": "0.0.5",
|
|
50
|
-
"probot": "^
|
|
50
|
+
"probot": "^12.1.1",
|
|
51
51
|
"smee-client": "^1.2.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"@types/mkdirp": "^1.0.2",
|
|
58
58
|
"chai": "^4.3.4",
|
|
59
59
|
"eslint": "^7.32.0",
|
|
60
|
-
"eslint-plugin-bpmn-io": "^0.
|
|
60
|
+
"eslint-plugin-bpmn-io": "^0.13.0",
|
|
61
61
|
"eslint-plugin-graphql": "^4.0.0",
|
|
62
|
-
"graphql": "^15.
|
|
62
|
+
"graphql": "^15.7.2",
|
|
63
63
|
"mocha": "^9.1.3",
|
|
64
|
-
"nock": "^13.1
|
|
65
|
-
"nodemon": "^2.0.
|
|
64
|
+
"nock": "^13.2.1",
|
|
65
|
+
"nodemon": "^2.0.15",
|
|
66
66
|
"npm-run-all": "^4.1.5",
|
|
67
|
-
"sinon": "^
|
|
67
|
+
"sinon": "^12.0.1",
|
|
68
68
|
"sinon-chai": "^3.7.0",
|
|
69
69
|
"typescript": "^4.4.4"
|
|
70
70
|
},
|
|
@@ -94,5 +94,5 @@
|
|
|
94
94
|
"index.js",
|
|
95
95
|
"wuffle.config.example.js"
|
|
96
96
|
],
|
|
97
|
-
"gitHead": "
|
|
97
|
+
"gitHead": "e43c02fccfe1e2aea4e8d50f9391ab85aef9d3d3"
|
|
98
98
|
}
|
package/public/bundle.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.taskboard.svelte-88s1pm.svelte-88s1pm{height:100vh;display:flex;flex-direction:column}@media all and (max-width: 600px){.board-filter{width:100% !important}.navbar .board-filter-parent{flex:1 !important}.navbar .logo{width:32px;height:32px}}.taskboard-error.svelte-88s1pm.svelte-88s1pm{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center}.taskboard-error.svelte-88s1pm p.svelte-88s1pm{font-size:1.3em;margin-top:1.7rem;margin-bottom:3rem;color:#495057}.taskboard-board.svelte-88s1pm.svelte-88s1pm{display:flex;flex:1;width:100%;padding:3px;padding-top:0;overflow-x:auto}.taskboard-column.svelte-88s1pm.svelte-88s1pm{display:flex;flex-direction:column;min-width:250px;flex:1;border-radius:2px;margin:3px;background:#ebecf0}.taskboard-column.collapsed.svelte-88s1pm.svelte-88s1pm{line-height:2em;min-width:42px;flex:0}.taskboard-column-items.svelte-88s1pm.svelte-88s1pm{flex:1;overflow-y:auto;padding:3px 10px 10px}.taskboard-column-header.svelte-88s1pm.svelte-88s1pm{text-align:center;line-height:2.4em;font-size:1.25em;color:inherit}.taskboard-column-collapse.svelte-88s1pm.svelte-88s1pm{color:#adb5bd;float:left;padding:0 12px;line-height:2.4em;margin-right:-20px;font-size:1.2rem}.taskboard-column-collapse.svelte-88s1pm.svelte-88s1pm:hover{color:#495057}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-collapse.svelte-88s1pm{float:unset;padding:0 12px;margin:0}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-header.svelte-88s1pm{display:flex;flex-direction:column;flex:1}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-name.svelte-88s1pm,.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-issue-count.svelte-88s1pm{transform:rotate(-180deg);writing-mode:vertical-rl}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-name.svelte-88s1pm{order:2}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-issue-count.svelte-88s1pm{padding:.5em 0;order:0}.taskboard-column-name.svelte-88s1pm.svelte-88s1pm{color:#424657}.taskboard-column-issue-count.svelte-88s1pm.svelte-88s1pm{color:#37ACC8;display:inline-block;padding:0 .25em}.taskboard.svelte-88s1pm.svelte-88s1pm{position:relative}.powered-by.svelte-6impii.svelte-6impii.svelte-6impii{position:absolute;bottom:10px;right:10px;padding:7px;border-radius:4px;opacity:.5;transition:opacity .1s, background .1s;color:#333;z-index:10;align-items:center;display:flex}.powered-by.svelte-6impii svg.svelte-6impii.svelte-6impii{vertical-align:bottom}.powered-by.svelte-6impii:not(:hover) .logo.svelte-6impii.svelte-6impii{color:#999}.powered-by.svelte-6impii.svelte-6impii.svelte-6impii:hover{opacity:1;box-shadow:0 1px 3px rgba(0, 0, 0, 0.3);background:white}.powered-by.svelte-6impii:hover .help.svelte-6impii.svelte-6impii{display:block}.powered-by.svelte-6impii .help.svelte-6impii.svelte-6impii{font-size:.9em;display:none}.powered-by.svelte-6impii .logo.svelte-6impii.svelte-6impii{margin-left:.5em}.powered-by.svelte-6impii .help-item.svelte-6impii.svelte-6impii{margin-left:.5em}.powered-by.svelte-6impii .help-item.svelte-6impii+.help-item.svelte-6impii{margin-left:1em}.powered-by.svelte-6impii .help-item.svelte-6impii.svelte-6impii{display:inline-block}.avatar.svelte-9r4rqh.svelte-9r4rqh{position:relative;display:inline-block;overflow:hidden;color:#fff;white-space:nowrap;text-align:center;vertical-align:middle;background:#ccc;width:32px;height:32px;line-height:32px}.avatar-shadow.svelte-9r4rqh.svelte-9r4rqh{position:absolute;top:0;left:0;width:100%;height:100%;box-shadow:inset 0 0 2px 0 rgba(0, 0, 0, 0.1)}.avatar-rounded.svelte-9r4rqh.svelte-9r4rqh{border-radius:50%}.avatar-rounded.svelte-9r4rqh .avatar-shadow.svelte-9r4rqh{border-radius:50%}.loader.svelte-1i1edqp.svelte-1i1edqp{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);text-align:center;z-index:200;pointer-events:none}.loader.svelte-1i1edqp>.content.svelte-1i1edqp{opacity:0.3;transition:opacity 0.5s}.loader.shown.svelte-1i1edqp>.content.svelte-1i1edqp{opacity:1;animation:svelte-1i1edqp-pulsate 1s infinite;animation-timing-function:ease-in-out}.loader.svelte-1i1edqp:not(.shown)>.content.svelte-1i1edqp{opacity:0}@keyframes svelte-1i1edqp-pulsate{0%{transform:scale(1);opacity:1}50%{transform:scale(0.9);opacity:0.8}100%{transform:scale(1);opacity:1}}.notifications.svelte-1kbv986{position:fixed;z-index:1010;top:24px;right:24px}.dropdown-parent.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{position:relative}.help-dropdown.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{border-radius:4px;margin:0;margin-top:5px;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;width:100%;min-width:0 !important;max-width:none !important;padding:.6em 0;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0, 0, 0, 0.1);box-shadow:0 0.1rem 1rem rgba(0, 0, 0, 0.075);position:absolute;top:100%;z-index:100;left:0px;right:auto;display:block}.help-dropdown.svelte-1bk05k0 .category.svelte-1bk05k0.svelte-1bk05k0{color:#37ACC8;font-weight:bold;padding:0 .8rem}.help-dropdown.svelte-1bk05k0 .note.svelte-1bk05k0.svelte-1bk05k0{padding:0 .8rem;color:#6c757d;margin:0}.help-dropdown.svelte-1bk05k0 .note em.svelte-1bk05k0.svelte-1bk05k0{font-style:italic}.help-dropdown.svelte-1bk05k0 .note.svelte-1bk05k0+.note.svelte-1bk05k0{margin-top:5px}.board-filter.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{width:300px}.board-filter.expanded.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{width:500px;max-width:100%}.board-filter.svelte-1bk05k0>input.svelte-1bk05k0.svelte-1bk05k0{width:100%}.icon.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{color:#dee2e6}.notification.svelte-16ri2nq{box-sizing:border-box;margin:0;padding:0;color:#6c757d;font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;width:384px;max-width:calc(100vw - 32px);padding:16px 24px;overflow:hidden;line-height:1.5;background:#fff;border-radius:3px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);border-left:solid 4px #0dcaf0}.notification.error.svelte-16ri2nq{border-left-color:#dc3545}.notification.warning.svelte-16ri2nq{border-left-color:#ffc107}.heading.svelte-16ri2nq{color:#212529;font-weight:normal;font-size:1.2em;margin-bottom:5px}.board-card-container.svelte-2qowi0.svelte-2qowi0{width:100%;margin-bottom:10px}.board-card.svelte-2qowi0.svelte-2qowi0{background:white;border-radius:4px;box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);position:relative;z-index:1;padding:4px 8px;cursor:default}.board-card.svelte-2qowi0 .header.svelte-2qowi0{margin-bottom:7px}.card-link:not(:last-child)>.card-status{margin-bottom:-2px !important}.board-card-links.attached .card-link:last-child>.card-status .state:last-child,.board-card>.card-status .state:last-child{border-bottom-right-radius:4px}.board-card-links.attached .card-link:last-child>.card-status .state:first-child,.board-card>.card-status .state:first-child{border-bottom-left-radius:4px}.board-card-links.svelte-2qowi0.svelte-2qowi0{margin-top:2px}.header.svelte-2qowi0.svelte-2qowi0{display:flex;align-items:center;user-select:none}.header.svelte-2qowi0>.svelte-2qowi0{flex-shrink:0}.header.svelte-2qowi0>.repository.svelte-2qowi0{flex:1}.header.svelte-2qowi0>.collaborator-links.svelte-2qowi0{display:flex;align-items:center}.issue-type.svelte-2qowi0.svelte-2qowi0{margin-right:3px}.issue-type-pull-request.svelte-2qowi0.svelte-2qowi0{color:#6cc644}.issue-number.svelte-2qowi0.svelte-2qowi0{font-weight:bold;margin-right:6px;display:flex;align-items:center;text-decoration:none}.repository.svelte-2qowi0.svelte-2qowi0,.short-title.svelte-2qowi0.svelte-2qowi0{color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.title.svelte-2qowi0.svelte-2qowi0{font-size:1.1em;margin:0 0 9px 0;min-height:30px;line-height:1.2em;color:#495057;overflow:hidden}.footer.svelte-2qowi0.svelte-2qowi0{display:flex;flex-direction:row;flex-wrap:wrap}.links.svelte-2qowi0.svelte-2qowi0{margin-left:auto}.links.svelte-2qowi0 a.svelte-2qowi0{color:#adb5bd}.links.svelte-2qowi0 a.svelte-2qowi0:hover{color:#6c757d}.tag.label,.tag.milestone{margin-right:4px;margin-bottom:4px}.tag.milestone{color:#343a40 !important;border:solid 1px #6c757d}.card-link:first-child{border-top:none !important;margin-top:1px !important}.board-card-links.attached.svelte-2qowi0.svelte-2qowi0{background:#F9F9F9;border-radius:0 0 4px 4px;box-shadow:inset 0 3px 5px -2px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);margin-top:-6px;position:relative;padding:7px 8px 4px 8px}.progress.svelte-2qowi0.svelte-2qowi0{display:flex;flex-direction:row;align-items:center;margin-bottom:7px;cursor:pointer}.progress.svelte-2qowi0:hover svg.svelte-2qowi0{color:#6c757d}.progress.svelte-2qowi0 svg.svelte-2qowi0{color:#CCC;transition:color .3s}.progress.svelte-2qowi0 .bar.svelte-2qowi0{border-radius:3px;height:5px;width:80px;background:#EEE;margin:auto 6px}.progress.svelte-2qowi0 .bar .indicator.svelte-2qowi0{border-radius:3px;background:#6c757d;height:100%}.progress.svelte-2qowi0 .text.svelte-2qowi0{margin-left:6px;font-size:0.9rem;color:#6c757d}.dropdown-parent.svelte-15toawx{position:relative}.help-dropdown.svelte-15toawx{border-radius:4px;margin:0;margin-top:5px;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;width:100%;min-width:0 !important;max-width:none !important;padding:.6em 0;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0, 0, 0, 0.1);box-shadow:0 0.1rem 1rem rgba(0, 0, 0, 0.075);position:absolute;top:100%;z-index:100;left:0px;right:auto;display:block}.repository-select.svelte-15toawx{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10}.overlay.svelte-15toawx{width:100%;height:100%;background:rgba(30, 30, 30, 0.3)}.issue-creator.svelte-15toawx{position:absolute;z-index:2;width:500px;max-width:100%;background:white;top:30%;left:50%;transform:translate(-50%);line-height:1.5;border-radius:5px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15)}.tag.svelte-tftc6d{list-style:none;display:inline-block;height:auto;margin:0 4px 4px 0;padding:1px 7px;font-size:12px;font-weight:500;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:white;background:#fafafa;border-radius:4px;text-decoration:none}.tag.svelte-tftc6d:not(a){cursor:default}.tag.inverted.svelte-tftc6d{color:#333}.svelte-tftc6d:not(a.tag, .tag.clickable){cursor:default}.pull-request-icon.svelte-8ct04d{margin-right:1px}.pull-request-icon.open.svelte-8ct04d{color:#28a745}.pull-request-icon.closed.svelte-8ct04d{color:#cb2431}.pull-request-icon.merged.svelte-8ct04d{color:#6f42c1}.icon.svelte-1wc70x{margin-right:2px;color:#1d76db}.card-status.svelte-ah4rak.svelte-ah4rak{display:flex;flex-direction:row;align-items:stretch;height:3px;width:auto;margin:3px -8px -4px}.state.svelte-ah4rak.svelte-ah4rak{flex:1;background-color:#adb5bd}.state.svelte-ah4rak>span.svelte-ah4rak{display:none}.state.striped.svelte-ah4rak.svelte-ah4rak{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);animation:svelte-ah4rak-progress-bar-stripes 1s linear infinite;background-size:1rem 1rem}.state.success.svelte-ah4rak.svelte-ah4rak{background-color:#4ede9b;box-shadow:0 1px 2px 0px rgba(36, 124, 83, 0.3)}.state.failure.svelte-ah4rak.svelte-ah4rak{background-color:#ea868f;box-shadow:0 1px 2px 0px rgba(203, 70, 83, 0.3)}.state.action-required.svelte-ah4rak.svelte-ah4rak{background-color:#ffda6a;box-shadow:0 1px 2px 0px rgba(230, 181, 32, 0.3)}.state.svelte-ah4rak+.state.svelte-ah4rak{margin-left:1px}@keyframes svelte-ah4rak-progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.assignee.svelte-1v2qyqs.svelte-1v2qyqs{box-sizing:border-box;margin:0;font-size:14px;position:relative;display:inline-block;text-align:center;border-radius:2px;margin-left:3px;transition:margin .1s;height:18px}.assignee.svelte-1v2qyqs img.svelte-1v2qyqs{height:100%;border-radius:2px;vertical-align:unset}.assignee.svelte-1v2qyqs .icon-shadow.svelte-1v2qyqs{position:absolute;display:none;top:0;left:0;height:100%;width:100%;box-shadow:inset 0 0 2px 0 rgba(20, 20, 20, 0.3);border-radius:2px}.assignee.requested-reviewer.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#bf8700;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.commented.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#0dcaf0;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.approved.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#198754;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.requested-changes.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#dc3545;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.svelte-1v2qyqs+.assignee.svelte-1v2qyqs{margin-left:-6px;box-shadow:0 0 0 1px white}.hovered>.header .assignee+.assignee{margin-left:3px !important;box-shadow:none}.card-link:not(:last-child)>.card-status{margin-bottom:-2px !important}.board-card-links.attached .card-link:last-child>.card-status .state:last-child,.board-card>.card-status .state:last-child{border-bottom-right-radius:4px}.board-card-links.attached .card-link:last-child>.card-status .state:first-child,.board-card>.card-status .state:first-child{border-bottom-left-radius:4px}.header.svelte-lrpwe8.svelte-lrpwe8{display:flex;align-items:center;user-select:none}.header.svelte-lrpwe8>.svelte-lrpwe8{flex-shrink:0}.header.svelte-lrpwe8>.collaborator-links.svelte-lrpwe8{display:flex;align-items:center}.issue-number.svelte-lrpwe8.svelte-lrpwe8{font-weight:bold;margin-right:6px;display:flex;align-items:center;text-decoration:none}.short-title.svelte-lrpwe8.svelte-lrpwe8{color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-link.svelte-lrpwe8.svelte-lrpwe8{border-top:solid 1px #F0F0F0;margin-top:2px;padding-top:2px}.card-link.svelte-lrpwe8 .short-title.svelte-lrpwe8{flex:1}.card-link .epic{color:#1d76db}.icon.svelte-1r532dq{margin-right:2px}.icon.issue.open.svelte-1r532dq,.icon.depends-on.closed.svelte-1r532dq{color:#28a745}.icon.issue.closed.svelte-1r532dq,.icon.depends-on.svelte-1r532dq{color:#cb2431}.icon.linked-to.svelte-1r532dq{color:#37ACC8}.icon.svelte-1og232h{vertical-align:initial}ul.svelte-r39x99{list-style:none;margin:0;padding:0}li.svelte-r39x99{padding:0 .8rem;line-height:2em}li.selectable.svelte-r39x99{cursor:pointer}li.selectable.svelte-r39x99:hover,li.selectable.active.svelte-r39x99{background:rgba(55, 172, 200, 0.1)}li.text.svelte-r39x99{color:#6c757d}.matched.svelte-r39x99{background:rgba(55, 172, 200, 0.2);color:#2c8aa0}
|
|
1
|
+
.taskboard.svelte-88s1pm.svelte-88s1pm{height:100vh;display:flex;flex-direction:column}@media all and (max-width: 600px){.board-filter{width:100% !important}.navbar .board-filter-parent{flex:1 !important}.navbar .logo{width:32px;height:32px}}.taskboard-error.svelte-88s1pm.svelte-88s1pm{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center}.taskboard-error.svelte-88s1pm p.svelte-88s1pm{font-size:1.3em;margin-top:1.7rem;margin-bottom:3rem;color:#495057}.taskboard-board.svelte-88s1pm.svelte-88s1pm{display:flex;flex:1;width:100%;padding:3px;padding-top:0;overflow-x:auto}.taskboard-column.svelte-88s1pm.svelte-88s1pm{display:flex;flex-direction:column;min-width:250px;flex:1;border-radius:2px;margin:3px;background:#ebecf0}.taskboard-column.collapsed.svelte-88s1pm.svelte-88s1pm{line-height:2em;min-width:42px;flex:0}.taskboard-column-items.svelte-88s1pm.svelte-88s1pm{flex:1;overflow-y:auto;padding:3px 10px 10px}.taskboard-column-header.svelte-88s1pm.svelte-88s1pm{text-align:center;line-height:2.4em;font-size:1.25em;color:inherit}.taskboard-column-collapse.svelte-88s1pm.svelte-88s1pm{color:#adb5bd;float:left;padding:0 12px;line-height:2.4em;margin-right:-20px;font-size:1.2rem}.taskboard-column-collapse.svelte-88s1pm.svelte-88s1pm:hover{color:#495057}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-collapse.svelte-88s1pm{float:unset;padding:0 12px;margin:0}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-header.svelte-88s1pm{display:flex;flex-direction:column;flex:1}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-name.svelte-88s1pm,.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-issue-count.svelte-88s1pm{transform:rotate(-180deg);writing-mode:vertical-rl}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-name.svelte-88s1pm{order:2}.taskboard-column.collapsed.svelte-88s1pm .taskboard-column-issue-count.svelte-88s1pm{padding:.5em 0;order:0}.taskboard-column-name.svelte-88s1pm.svelte-88s1pm{color:#424657}.taskboard-column-issue-count.svelte-88s1pm.svelte-88s1pm{color:#37ACC8;display:inline-block;padding:0 .25em}.taskboard.svelte-88s1pm.svelte-88s1pm{position:relative}.powered-by.svelte-6impii.svelte-6impii.svelte-6impii{position:absolute;bottom:10px;right:10px;padding:7px;border-radius:4px;opacity:.5;transition:opacity .1s, background .1s;color:#333;z-index:10;align-items:center;display:flex}.powered-by.svelte-6impii svg.svelte-6impii.svelte-6impii{vertical-align:bottom}.powered-by.svelte-6impii:not(:hover) .logo.svelte-6impii.svelte-6impii{color:#999}.powered-by.svelte-6impii.svelte-6impii.svelte-6impii:hover{opacity:1;box-shadow:0 1px 3px rgba(0, 0, 0, 0.3);background:white}.powered-by.svelte-6impii:hover .help.svelte-6impii.svelte-6impii{display:block}.powered-by.svelte-6impii .help.svelte-6impii.svelte-6impii{font-size:.9em;display:none}.powered-by.svelte-6impii .logo.svelte-6impii.svelte-6impii{margin-left:.5em}.powered-by.svelte-6impii .help-item.svelte-6impii.svelte-6impii{margin-left:.5em}.powered-by.svelte-6impii .help-item.svelte-6impii+.help-item.svelte-6impii{margin-left:1em}.powered-by.svelte-6impii .help-item.svelte-6impii.svelte-6impii{display:inline-block}.avatar.svelte-9r4rqh.svelte-9r4rqh{position:relative;display:inline-block;overflow:hidden;color:#fff;white-space:nowrap;text-align:center;vertical-align:middle;background:#ccc;width:32px;height:32px;line-height:32px}.avatar-shadow.svelte-9r4rqh.svelte-9r4rqh{position:absolute;top:0;left:0;width:100%;height:100%;box-shadow:inset 0 0 2px 0 rgba(0, 0, 0, 0.1)}.avatar-rounded.svelte-9r4rqh.svelte-9r4rqh{border-radius:50%}.avatar-rounded.svelte-9r4rqh .avatar-shadow.svelte-9r4rqh{border-radius:50%}.loader.svelte-1i1edqp.svelte-1i1edqp{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);text-align:center;z-index:200;pointer-events:none}.loader.svelte-1i1edqp>.content.svelte-1i1edqp{opacity:0.3;transition:opacity 0.5s}.loader.shown.svelte-1i1edqp>.content.svelte-1i1edqp{opacity:1;animation:svelte-1i1edqp-pulsate 1s infinite;animation-timing-function:ease-in-out}.loader.svelte-1i1edqp:not(.shown)>.content.svelte-1i1edqp{opacity:0}@keyframes svelte-1i1edqp-pulsate{0%{transform:scale(1);opacity:1}50%{transform:scale(0.9);opacity:0.8}100%{transform:scale(1);opacity:1}}.notifications.svelte-1kbv986{position:fixed;z-index:1010;top:24px;right:24px}.dropdown-parent.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{position:relative}.help-dropdown.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{border-radius:4px;margin:0;margin-top:5px;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;width:100%;min-width:0 !important;max-width:none !important;padding:.6em 0;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0, 0, 0, 0.1);box-shadow:0 0.1rem 1rem rgba(0, 0, 0, 0.075);position:absolute;top:100%;z-index:100;left:0px;right:auto;display:block}.help-dropdown.svelte-1bk05k0 .category.svelte-1bk05k0.svelte-1bk05k0{color:#37ACC8;font-weight:bold;padding:0 .8rem}.help-dropdown.svelte-1bk05k0 .note.svelte-1bk05k0.svelte-1bk05k0{padding:0 .8rem;color:#6c757d;margin:0}.help-dropdown.svelte-1bk05k0 .note em.svelte-1bk05k0.svelte-1bk05k0{font-style:italic}.help-dropdown.svelte-1bk05k0 .note.svelte-1bk05k0+.note.svelte-1bk05k0{margin-top:5px}.board-filter.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{width:300px}.board-filter.expanded.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{width:500px;max-width:100%}.board-filter.svelte-1bk05k0>input.svelte-1bk05k0.svelte-1bk05k0{width:100%}.icon.svelte-1bk05k0.svelte-1bk05k0.svelte-1bk05k0{color:#dee2e6}.notification.svelte-16ri2nq{box-sizing:border-box;margin:0;padding:0;color:#6c757d;font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;width:384px;max-width:calc(100vw - 32px);padding:16px 24px;overflow:hidden;line-height:1.5;background:#fff;border-radius:3px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);border-left:solid 4px #0dcaf0}.notification.error.svelte-16ri2nq{border-left-color:#dc3545}.notification.warning.svelte-16ri2nq{border-left-color:#ffc107}.heading.svelte-16ri2nq{color:#212529;font-weight:normal;font-size:1.2em;margin-bottom:5px}.board-card-container.svelte-2qowi0.svelte-2qowi0{width:100%;margin-bottom:10px}.board-card.svelte-2qowi0.svelte-2qowi0{background:white;border-radius:4px;box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);position:relative;z-index:1;padding:4px 8px;cursor:default}.board-card.svelte-2qowi0 .header.svelte-2qowi0{margin-bottom:7px}.card-link:not(:last-child)>.card-status{margin-bottom:-2px !important}.board-card-links.attached .card-link:last-child>.card-status .state:last-child,.board-card>.card-status .state:last-child{border-bottom-right-radius:4px}.board-card-links.attached .card-link:last-child>.card-status .state:first-child,.board-card>.card-status .state:first-child{border-bottom-left-radius:4px}.board-card-links.svelte-2qowi0.svelte-2qowi0{margin-top:2px}.header.svelte-2qowi0.svelte-2qowi0{display:flex;align-items:center;user-select:none}.header.svelte-2qowi0>.svelte-2qowi0{flex-shrink:0}.header.svelte-2qowi0>.repository.svelte-2qowi0{flex:1}.header.svelte-2qowi0>.collaborator-links.svelte-2qowi0{display:flex;align-items:center}.issue-type.svelte-2qowi0.svelte-2qowi0{margin-right:3px}.issue-type-pull-request.svelte-2qowi0.svelte-2qowi0{color:#6cc644}.issue-number.svelte-2qowi0.svelte-2qowi0{font-weight:bold;margin-right:6px;display:flex;align-items:center;text-decoration:none}.repository.svelte-2qowi0.svelte-2qowi0,.short-title.svelte-2qowi0.svelte-2qowi0{color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.title.svelte-2qowi0.svelte-2qowi0{font-size:1.1em;margin:0 0 9px 0;min-height:30px;line-height:1.2em;color:#495057;overflow:hidden}.footer.svelte-2qowi0.svelte-2qowi0{display:flex;flex-direction:row;flex-wrap:wrap}.links.svelte-2qowi0.svelte-2qowi0{margin-left:auto}.links.svelte-2qowi0 a.svelte-2qowi0{color:#adb5bd}.links.svelte-2qowi0 a.svelte-2qowi0:hover{color:#6c757d}.tag.label,.tag.milestone{margin-right:4px;margin-bottom:4px}.tag.milestone{color:#343a40 !important;border:solid 1px #6c757d}.card-link:first-child{border-top:none !important;margin-top:1px !important}.board-card-links.attached.svelte-2qowi0.svelte-2qowi0{background:#F9F9F9;border-radius:0 0 4px 4px;box-shadow:inset 0 3px 5px -2px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);margin-top:-6px;position:relative;padding:7px 8px 4px 8px}.progress.svelte-2qowi0.svelte-2qowi0{display:flex;flex-direction:row;align-items:center;margin-bottom:7px;cursor:pointer}.progress.svelte-2qowi0:hover svg.svelte-2qowi0{color:#6c757d}.progress.svelte-2qowi0 svg.svelte-2qowi0{color:#CCC;transition:color .3s}.progress.svelte-2qowi0 .bar.svelte-2qowi0{border-radius:3px;height:5px;width:80px;background:#EEE;margin:auto 6px}.progress.svelte-2qowi0 .bar .indicator.svelte-2qowi0{border-radius:3px;background:#6c757d;height:100%}.progress.svelte-2qowi0 .text.svelte-2qowi0{margin-left:6px;font-size:0.9rem;color:#6c757d}.dropdown-parent.svelte-15toawx{position:relative}.help-dropdown.svelte-15toawx{border-radius:4px;margin:0;margin-top:5px;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;width:100%;min-width:0 !important;max-width:none !important;padding:.6em 0;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0, 0, 0, 0.1);box-shadow:0 0.1rem 1rem rgba(0, 0, 0, 0.075);position:absolute;top:100%;z-index:100;left:0px;right:auto;display:block}.repository-select.svelte-15toawx{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10}.overlay.svelte-15toawx{width:100%;height:100%;background:rgba(30, 30, 30, 0.3)}.issue-creator.svelte-15toawx{position:absolute;z-index:2;width:500px;max-width:100%;background:white;top:30%;left:50%;transform:translate(-50%);line-height:1.5;border-radius:5px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15)}.tag.svelte-tftc6d{list-style:none;display:inline-block;height:auto;margin:0 4px 4px 0;padding:1px 7px;font-size:12px;font-weight:500;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:white;background:#fafafa;border-radius:4px;text-decoration:none}.tag.svelte-tftc6d:not(a){cursor:default}.tag.inverted.svelte-tftc6d{color:#333}.svelte-tftc6d:not(a.tag, .tag.clickable){cursor:default}.pull-request-icon.svelte-1570hl6{margin-right:1px}.pull-request-icon.open.svelte-1570hl6{color:#28a745}.pull-request-icon.closed.svelte-1570hl6{color:#cb2431}.pull-request-icon.merged.svelte-1570hl6{color:#6f42c1}.pull-request-icon.draft.svelte-1570hl6{color:#6e7781}.icon.svelte-1wc70x{margin-right:2px;color:#1d76db}.card-status.svelte-ah4rak.svelte-ah4rak{display:flex;flex-direction:row;align-items:stretch;height:3px;width:auto;margin:3px -8px -4px}.state.svelte-ah4rak.svelte-ah4rak{flex:1;background-color:#adb5bd}.state.svelte-ah4rak>span.svelte-ah4rak{display:none}.state.striped.svelte-ah4rak.svelte-ah4rak{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);animation:svelte-ah4rak-progress-bar-stripes 1s linear infinite;background-size:1rem 1rem}.state.success.svelte-ah4rak.svelte-ah4rak{background-color:#4ede9b;box-shadow:0 1px 2px 0px rgba(36, 124, 83, 0.3)}.state.failure.svelte-ah4rak.svelte-ah4rak{background-color:#ea868f;box-shadow:0 1px 2px 0px rgba(203, 70, 83, 0.3)}.state.action-required.svelte-ah4rak.svelte-ah4rak{background-color:#ffda6a;box-shadow:0 1px 2px 0px rgba(230, 181, 32, 0.3)}.state.svelte-ah4rak+.state.svelte-ah4rak{margin-left:1px}@keyframes svelte-ah4rak-progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.assignee.svelte-1v2qyqs.svelte-1v2qyqs{box-sizing:border-box;margin:0;font-size:14px;position:relative;display:inline-block;text-align:center;border-radius:2px;margin-left:3px;transition:margin .1s;height:18px}.assignee.svelte-1v2qyqs img.svelte-1v2qyqs{height:100%;border-radius:2px;vertical-align:unset}.assignee.svelte-1v2qyqs .icon-shadow.svelte-1v2qyqs{position:absolute;display:none;top:0;left:0;height:100%;width:100%;box-shadow:inset 0 0 2px 0 rgba(20, 20, 20, 0.3);border-radius:2px}.assignee.requested-reviewer.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#bf8700;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.commented.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#0dcaf0;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.approved.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#198754;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.requested-changes.svelte-1v2qyqs.svelte-1v2qyqs:before{content:'';display:block;background:#dc3545;box-shadow:0 0 0 2px white;width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;left:-2px;z-index:1}.assignee.svelte-1v2qyqs+.assignee.svelte-1v2qyqs{margin-left:-6px;box-shadow:0 0 0 1px white}.hovered>.header .assignee+.assignee{margin-left:3px !important;box-shadow:none}.card-link:not(:last-child)>.card-status{margin-bottom:-2px !important}.board-card-links.attached .card-link:last-child>.card-status .state:last-child,.board-card>.card-status .state:last-child{border-bottom-right-radius:4px}.board-card-links.attached .card-link:last-child>.card-status .state:first-child,.board-card>.card-status .state:first-child{border-bottom-left-radius:4px}.header.svelte-lrpwe8.svelte-lrpwe8{display:flex;align-items:center;user-select:none}.header.svelte-lrpwe8>.svelte-lrpwe8{flex-shrink:0}.header.svelte-lrpwe8>.collaborator-links.svelte-lrpwe8{display:flex;align-items:center}.issue-number.svelte-lrpwe8.svelte-lrpwe8{font-weight:bold;margin-right:6px;display:flex;align-items:center;text-decoration:none}.short-title.svelte-lrpwe8.svelte-lrpwe8{color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-link.svelte-lrpwe8.svelte-lrpwe8{border-top:solid 1px #F0F0F0;margin-top:2px;padding-top:2px}.card-link.svelte-lrpwe8 .short-title.svelte-lrpwe8{flex:1}.card-link .epic{color:#1d76db}.icon.svelte-1r532dq{margin-right:2px}.icon.issue.open.svelte-1r532dq,.icon.depends-on.closed.svelte-1r532dq{color:#28a745}.icon.issue.closed.svelte-1r532dq,.icon.depends-on.svelte-1r532dq{color:#cb2431}.icon.linked-to.svelte-1r532dq{color:#37ACC8}.icon.svelte-1og232h{vertical-align:initial}ul.svelte-r39x99{list-style:none;margin:0;padding:0}li.svelte-r39x99{padding:0 .8rem;line-height:2em}li.selectable.svelte-r39x99{cursor:pointer}li.selectable.svelte-r39x99:hover,li.selectable.active.svelte-r39x99{background:rgba(55, 172, 200, 0.1)}li.text.svelte-r39x99{color:#6c757d}.matched.svelte-r39x99{background:rgba(55, 172, 200, 0.2);color:#2c8aa0}
|