@industry-theme/github-panels 0.1.31 → 0.1.33
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/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/panels/GitHubIssuesPanel.d.ts +25 -0
- package/dist/panels/GitHubIssuesPanel.d.ts.map +1 -0
- package/dist/panels/GitHubIssuesPanel.stories.d.ts +78 -0
- package/dist/panels/GitHubIssuesPanel.stories.d.ts.map +1 -0
- package/dist/panels/WelcomePanel.d.ts +13 -0
- package/dist/panels/WelcomePanel.d.ts.map +1 -1
- package/dist/panels/WelcomePanel.stories.d.ts +2 -0
- package/dist/panels/WelcomePanel.stories.d.ts.map +1 -1
- package/dist/panels.bundle.js +1587 -172
- package/dist/panels.bundle.js.map +1 -1
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools.bundle.js +45 -1
- package/dist/types/github.d.ts +61 -0
- package/dist/types/github.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/panels.bundle.js
CHANGED
|
@@ -128,31 +128,55 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
128
128
|
* This source code is licensed under the ISC license.
|
|
129
129
|
* See the LICENSE file in the root directory of this source tree.
|
|
130
130
|
*/
|
|
131
|
-
const __iconNode$
|
|
131
|
+
const __iconNode$C = [
|
|
132
132
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
133
133
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
134
134
|
];
|
|
135
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
135
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$C);
|
|
136
136
|
/**
|
|
137
137
|
* @license lucide-react v0.552.0 - ISC
|
|
138
138
|
*
|
|
139
139
|
* This source code is licensed under the ISC license.
|
|
140
140
|
* See the LICENSE file in the root directory of this source tree.
|
|
141
141
|
*/
|
|
142
|
-
const __iconNode$
|
|
142
|
+
const __iconNode$B = [
|
|
143
143
|
["path", { d: "m21 16-4 4-4-4", key: "f6ql7i" }],
|
|
144
144
|
["path", { d: "M17 20V4", key: "1ejh1v" }],
|
|
145
145
|
["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
|
|
146
146
|
["path", { d: "M7 4v16", key: "1glfcx" }]
|
|
147
147
|
];
|
|
148
|
-
const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$
|
|
148
|
+
const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$B);
|
|
149
149
|
/**
|
|
150
150
|
* @license lucide-react v0.552.0 - ISC
|
|
151
151
|
*
|
|
152
152
|
* This source code is licensed under the ISC license.
|
|
153
153
|
* See the LICENSE file in the root directory of this source tree.
|
|
154
154
|
*/
|
|
155
|
-
const __iconNode$
|
|
155
|
+
const __iconNode$A = [
|
|
156
|
+
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
157
|
+
[
|
|
158
|
+
"path",
|
|
159
|
+
{
|
|
160
|
+
d: "M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z",
|
|
161
|
+
key: "1l2ple"
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
[
|
|
165
|
+
"path",
|
|
166
|
+
{
|
|
167
|
+
d: "M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z",
|
|
168
|
+
key: "1wam0m"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
];
|
|
172
|
+
const Atom = createLucideIcon("atom", __iconNode$A);
|
|
173
|
+
/**
|
|
174
|
+
* @license lucide-react v0.552.0 - ISC
|
|
175
|
+
*
|
|
176
|
+
* This source code is licensed under the ISC license.
|
|
177
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
178
|
+
*/
|
|
179
|
+
const __iconNode$z = [
|
|
156
180
|
["path", { d: "M12 7v14", key: "1akyts" }],
|
|
157
181
|
[
|
|
158
182
|
"path",
|
|
@@ -162,14 +186,32 @@ const __iconNode$k = [
|
|
|
162
186
|
}
|
|
163
187
|
]
|
|
164
188
|
];
|
|
165
|
-
const BookOpen = createLucideIcon("book-open", __iconNode$
|
|
189
|
+
const BookOpen = createLucideIcon("book-open", __iconNode$z);
|
|
166
190
|
/**
|
|
167
191
|
* @license lucide-react v0.552.0 - ISC
|
|
168
192
|
*
|
|
169
193
|
* This source code is licensed under the ISC license.
|
|
170
194
|
* See the LICENSE file in the root directory of this source tree.
|
|
171
195
|
*/
|
|
172
|
-
const __iconNode$
|
|
196
|
+
const __iconNode$y = [
|
|
197
|
+
[
|
|
198
|
+
"path",
|
|
199
|
+
{
|
|
200
|
+
d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",
|
|
201
|
+
key: "hh9hay"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
["path", { d: "m3.3 7 8.7 5 8.7-5", key: "g66t2b" }],
|
|
205
|
+
["path", { d: "M12 22V12", key: "d0xqtd" }]
|
|
206
|
+
];
|
|
207
|
+
const Box = createLucideIcon("box", __iconNode$y);
|
|
208
|
+
/**
|
|
209
|
+
* @license lucide-react v0.552.0 - ISC
|
|
210
|
+
*
|
|
211
|
+
* This source code is licensed under the ISC license.
|
|
212
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
213
|
+
*/
|
|
214
|
+
const __iconNode$x = [
|
|
173
215
|
["path", { d: "M10 12h4", key: "a56b0p" }],
|
|
174
216
|
["path", { d: "M10 8h4", key: "1sr2af" }],
|
|
175
217
|
["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
|
|
@@ -182,55 +224,162 @@ const __iconNode$j = [
|
|
|
182
224
|
],
|
|
183
225
|
["path", { d: "M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16", key: "16ra0t" }]
|
|
184
226
|
];
|
|
185
|
-
const Building2 = createLucideIcon("building-2", __iconNode$
|
|
227
|
+
const Building2 = createLucideIcon("building-2", __iconNode$x);
|
|
186
228
|
/**
|
|
187
229
|
* @license lucide-react v0.552.0 - ISC
|
|
188
230
|
*
|
|
189
231
|
* This source code is licensed under the ISC license.
|
|
190
232
|
* See the LICENSE file in the root directory of this source tree.
|
|
191
233
|
*/
|
|
192
|
-
const __iconNode$
|
|
234
|
+
const __iconNode$w = [
|
|
193
235
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
194
236
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
195
237
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
196
238
|
["path", { d: "M3 10h18", key: "8toen8" }]
|
|
197
239
|
];
|
|
198
|
-
const Calendar = createLucideIcon("calendar", __iconNode$
|
|
240
|
+
const Calendar = createLucideIcon("calendar", __iconNode$w);
|
|
241
|
+
/**
|
|
242
|
+
* @license lucide-react v0.552.0 - ISC
|
|
243
|
+
*
|
|
244
|
+
* This source code is licensed under the ISC license.
|
|
245
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
246
|
+
*/
|
|
247
|
+
const __iconNode$v = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
248
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$v);
|
|
249
|
+
/**
|
|
250
|
+
* @license lucide-react v0.552.0 - ISC
|
|
251
|
+
*
|
|
252
|
+
* This source code is licensed under the ISC license.
|
|
253
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
254
|
+
*/
|
|
255
|
+
const __iconNode$u = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
256
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$u);
|
|
257
|
+
/**
|
|
258
|
+
* @license lucide-react v0.552.0 - ISC
|
|
259
|
+
*
|
|
260
|
+
* This source code is licensed under the ISC license.
|
|
261
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
262
|
+
*/
|
|
263
|
+
const __iconNode$t = [
|
|
264
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
265
|
+
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
266
|
+
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
267
|
+
];
|
|
268
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$t);
|
|
269
|
+
/**
|
|
270
|
+
* @license lucide-react v0.552.0 - ISC
|
|
271
|
+
*
|
|
272
|
+
* This source code is licensed under the ISC license.
|
|
273
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
274
|
+
*/
|
|
275
|
+
const __iconNode$s = [
|
|
276
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
277
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
278
|
+
];
|
|
279
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$s);
|
|
280
|
+
/**
|
|
281
|
+
* @license lucide-react v0.552.0 - ISC
|
|
282
|
+
*
|
|
283
|
+
* This source code is licensed under the ISC license.
|
|
284
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
285
|
+
*/
|
|
286
|
+
const __iconNode$r = [
|
|
287
|
+
["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
|
|
288
|
+
["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
|
|
289
|
+
];
|
|
290
|
+
const Code = createLucideIcon("code", __iconNode$r);
|
|
291
|
+
/**
|
|
292
|
+
* @license lucide-react v0.552.0 - ISC
|
|
293
|
+
*
|
|
294
|
+
* This source code is licensed under the ISC license.
|
|
295
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
296
|
+
*/
|
|
297
|
+
const __iconNode$q = [
|
|
298
|
+
["path", { d: "M11 10.27 7 3.34", key: "16pf9h" }],
|
|
299
|
+
["path", { d: "m11 13.73-4 6.93", key: "794ttg" }],
|
|
300
|
+
["path", { d: "M12 22v-2", key: "1osdcq" }],
|
|
301
|
+
["path", { d: "M12 2v2", key: "tus03m" }],
|
|
302
|
+
["path", { d: "M14 12h8", key: "4f43i9" }],
|
|
303
|
+
["path", { d: "m17 20.66-1-1.73", key: "eq3orb" }],
|
|
304
|
+
["path", { d: "m17 3.34-1 1.73", key: "2wel8s" }],
|
|
305
|
+
["path", { d: "M2 12h2", key: "1t8f8n" }],
|
|
306
|
+
["path", { d: "m20.66 17-1.73-1", key: "sg0v6f" }],
|
|
307
|
+
["path", { d: "m20.66 7-1.73 1", key: "1ow05n" }],
|
|
308
|
+
["path", { d: "m3.34 17 1.73-1", key: "nuk764" }],
|
|
309
|
+
["path", { d: "m3.34 7 1.73 1", key: "1ulond" }],
|
|
310
|
+
["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
|
|
311
|
+
["circle", { cx: "12", cy: "12", r: "8", key: "46899m" }]
|
|
312
|
+
];
|
|
313
|
+
const Cog = createLucideIcon("cog", __iconNode$q);
|
|
199
314
|
/**
|
|
200
315
|
* @license lucide-react v0.552.0 - ISC
|
|
201
316
|
*
|
|
202
317
|
* This source code is licensed under the ISC license.
|
|
203
318
|
* See the LICENSE file in the root directory of this source tree.
|
|
204
319
|
*/
|
|
205
|
-
const __iconNode$
|
|
206
|
-
|
|
320
|
+
const __iconNode$p = [
|
|
321
|
+
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
322
|
+
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
323
|
+
];
|
|
324
|
+
const Copy = createLucideIcon("copy", __iconNode$p);
|
|
207
325
|
/**
|
|
208
326
|
* @license lucide-react v0.552.0 - ISC
|
|
209
327
|
*
|
|
210
328
|
* This source code is licensed under the ISC license.
|
|
211
329
|
* See the LICENSE file in the root directory of this source tree.
|
|
212
330
|
*/
|
|
213
|
-
const __iconNode$
|
|
214
|
-
|
|
331
|
+
const __iconNode$o = [
|
|
332
|
+
["path", { d: "M12 20v2", key: "1lh1kg" }],
|
|
333
|
+
["path", { d: "M12 2v2", key: "tus03m" }],
|
|
334
|
+
["path", { d: "M17 20v2", key: "1rnc9c" }],
|
|
335
|
+
["path", { d: "M17 2v2", key: "11trls" }],
|
|
336
|
+
["path", { d: "M2 12h2", key: "1t8f8n" }],
|
|
337
|
+
["path", { d: "M2 17h2", key: "7oei6x" }],
|
|
338
|
+
["path", { d: "M2 7h2", key: "asdhe0" }],
|
|
339
|
+
["path", { d: "M20 12h2", key: "1q8mjw" }],
|
|
340
|
+
["path", { d: "M20 17h2", key: "1fpfkl" }],
|
|
341
|
+
["path", { d: "M20 7h2", key: "1o8tra" }],
|
|
342
|
+
["path", { d: "M7 20v2", key: "4gnj0m" }],
|
|
343
|
+
["path", { d: "M7 2v2", key: "1i4yhu" }],
|
|
344
|
+
["rect", { x: "4", y: "4", width: "16", height: "16", rx: "2", key: "1vbyd7" }],
|
|
345
|
+
["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1", key: "z9xiuo" }]
|
|
346
|
+
];
|
|
347
|
+
const Cpu = createLucideIcon("cpu", __iconNode$o);
|
|
215
348
|
/**
|
|
216
349
|
* @license lucide-react v0.552.0 - ISC
|
|
217
350
|
*
|
|
218
351
|
* This source code is licensed under the ISC license.
|
|
219
352
|
* See the LICENSE file in the root directory of this source tree.
|
|
220
353
|
*/
|
|
221
|
-
const __iconNode$
|
|
354
|
+
const __iconNode$n = [
|
|
222
355
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
223
356
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
224
357
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
225
358
|
];
|
|
226
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
359
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$n);
|
|
227
360
|
/**
|
|
228
361
|
* @license lucide-react v0.552.0 - ISC
|
|
229
362
|
*
|
|
230
363
|
* This source code is licensed under the ISC license.
|
|
231
364
|
* See the LICENSE file in the root directory of this source tree.
|
|
232
365
|
*/
|
|
233
|
-
const __iconNode$
|
|
366
|
+
const __iconNode$m = [
|
|
367
|
+
[
|
|
368
|
+
"path",
|
|
369
|
+
{
|
|
370
|
+
d: "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",
|
|
371
|
+
key: "usdka0"
|
|
372
|
+
}
|
|
373
|
+
]
|
|
374
|
+
];
|
|
375
|
+
const FolderOpen = createLucideIcon("folder-open", __iconNode$m);
|
|
376
|
+
/**
|
|
377
|
+
* @license lucide-react v0.552.0 - ISC
|
|
378
|
+
*
|
|
379
|
+
* This source code is licensed under the ISC license.
|
|
380
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
381
|
+
*/
|
|
382
|
+
const __iconNode$l = [
|
|
234
383
|
[
|
|
235
384
|
"path",
|
|
236
385
|
{
|
|
@@ -239,14 +388,14 @@ const __iconNode$e = [
|
|
|
239
388
|
}
|
|
240
389
|
]
|
|
241
390
|
];
|
|
242
|
-
const Folder = createLucideIcon("folder", __iconNode$
|
|
391
|
+
const Folder = createLucideIcon("folder", __iconNode$l);
|
|
243
392
|
/**
|
|
244
393
|
* @license lucide-react v0.552.0 - ISC
|
|
245
394
|
*
|
|
246
395
|
* This source code is licensed under the ISC license.
|
|
247
396
|
* See the LICENSE file in the root directory of this source tree.
|
|
248
397
|
*/
|
|
249
|
-
const __iconNode$
|
|
398
|
+
const __iconNode$k = [
|
|
250
399
|
[
|
|
251
400
|
"path",
|
|
252
401
|
{
|
|
@@ -255,28 +404,28 @@ const __iconNode$d = [
|
|
|
255
404
|
}
|
|
256
405
|
]
|
|
257
406
|
];
|
|
258
|
-
const Funnel = createLucideIcon("funnel", __iconNode$
|
|
407
|
+
const Funnel = createLucideIcon("funnel", __iconNode$k);
|
|
259
408
|
/**
|
|
260
409
|
* @license lucide-react v0.552.0 - ISC
|
|
261
410
|
*
|
|
262
411
|
* This source code is licensed under the ISC license.
|
|
263
412
|
* See the LICENSE file in the root directory of this source tree.
|
|
264
413
|
*/
|
|
265
|
-
const __iconNode$
|
|
414
|
+
const __iconNode$j = [
|
|
266
415
|
["circle", { cx: "12", cy: "18", r: "3", key: "1mpf1b" }],
|
|
267
416
|
["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
|
|
268
417
|
["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
|
|
269
418
|
["path", { d: "M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9", key: "1uq4wg" }],
|
|
270
419
|
["path", { d: "M12 12v3", key: "158kv8" }]
|
|
271
420
|
];
|
|
272
|
-
const GitFork = createLucideIcon("git-fork", __iconNode$
|
|
421
|
+
const GitFork = createLucideIcon("git-fork", __iconNode$j);
|
|
273
422
|
/**
|
|
274
423
|
* @license lucide-react v0.552.0 - ISC
|
|
275
424
|
*
|
|
276
425
|
* This source code is licensed under the ISC license.
|
|
277
426
|
* See the LICENSE file in the root directory of this source tree.
|
|
278
427
|
*/
|
|
279
|
-
const __iconNode$
|
|
428
|
+
const __iconNode$i = [
|
|
280
429
|
[
|
|
281
430
|
"path",
|
|
282
431
|
{
|
|
@@ -286,88 +435,155 @@ const __iconNode$b = [
|
|
|
286
435
|
],
|
|
287
436
|
["path", { d: "M9 18c-4.51 2-5-2-7-2", key: "9comsn" }]
|
|
288
437
|
];
|
|
289
|
-
const Github = createLucideIcon("github", __iconNode$
|
|
438
|
+
const Github = createLucideIcon("github", __iconNode$i);
|
|
290
439
|
/**
|
|
291
440
|
* @license lucide-react v0.552.0 - ISC
|
|
292
441
|
*
|
|
293
442
|
* This source code is licensed under the ISC license.
|
|
294
443
|
* See the LICENSE file in the root directory of this source tree.
|
|
295
444
|
*/
|
|
296
|
-
const __iconNode$
|
|
445
|
+
const __iconNode$h = [
|
|
297
446
|
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
|
|
298
447
|
["path", { d: "M3 3v5h5", key: "1xhq8a" }],
|
|
299
448
|
["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
|
|
300
449
|
];
|
|
301
|
-
const History = createLucideIcon("history", __iconNode$
|
|
450
|
+
const History = createLucideIcon("history", __iconNode$h);
|
|
302
451
|
/**
|
|
303
452
|
* @license lucide-react v0.552.0 - ISC
|
|
304
453
|
*
|
|
305
454
|
* This source code is licensed under the ISC license.
|
|
306
455
|
* See the LICENSE file in the root directory of this source tree.
|
|
307
456
|
*/
|
|
308
|
-
const __iconNode$
|
|
457
|
+
const __iconNode$g = [
|
|
458
|
+
[
|
|
459
|
+
"path",
|
|
460
|
+
{
|
|
461
|
+
d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",
|
|
462
|
+
key: "zw3jo"
|
|
463
|
+
}
|
|
464
|
+
],
|
|
465
|
+
[
|
|
466
|
+
"path",
|
|
467
|
+
{
|
|
468
|
+
d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",
|
|
469
|
+
key: "1wduqc"
|
|
470
|
+
}
|
|
471
|
+
],
|
|
472
|
+
[
|
|
473
|
+
"path",
|
|
474
|
+
{
|
|
475
|
+
d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",
|
|
476
|
+
key: "kqbvx6"
|
|
477
|
+
}
|
|
478
|
+
]
|
|
479
|
+
];
|
|
480
|
+
const Layers = createLucideIcon("layers", __iconNode$g);
|
|
481
|
+
/**
|
|
482
|
+
* @license lucide-react v0.552.0 - ISC
|
|
483
|
+
*
|
|
484
|
+
* This source code is licensed under the ISC license.
|
|
485
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
486
|
+
*/
|
|
487
|
+
const __iconNode$f = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
488
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$f);
|
|
489
|
+
/**
|
|
490
|
+
* @license lucide-react v0.552.0 - ISC
|
|
491
|
+
*
|
|
492
|
+
* This source code is licensed under the ISC license.
|
|
493
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
494
|
+
*/
|
|
495
|
+
const __iconNode$e = [
|
|
309
496
|
["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
|
|
310
497
|
["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
|
|
311
498
|
];
|
|
312
|
-
const Lock = createLucideIcon("lock", __iconNode$
|
|
499
|
+
const Lock = createLucideIcon("lock", __iconNode$e);
|
|
313
500
|
/**
|
|
314
501
|
* @license lucide-react v0.552.0 - ISC
|
|
315
502
|
*
|
|
316
503
|
* This source code is licensed under the ISC license.
|
|
317
504
|
* See the LICENSE file in the root directory of this source tree.
|
|
318
505
|
*/
|
|
319
|
-
const __iconNode$
|
|
506
|
+
const __iconNode$d = [
|
|
320
507
|
["path", { d: "m10 17 5-5-5-5", key: "1bsop3" }],
|
|
321
508
|
["path", { d: "M15 12H3", key: "6jk70r" }],
|
|
322
509
|
["path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4", key: "u53s6r" }]
|
|
323
510
|
];
|
|
324
|
-
const LogIn = createLucideIcon("log-in", __iconNode$
|
|
511
|
+
const LogIn = createLucideIcon("log-in", __iconNode$d);
|
|
325
512
|
/**
|
|
326
513
|
* @license lucide-react v0.552.0 - ISC
|
|
327
514
|
*
|
|
328
515
|
* This source code is licensed under the ISC license.
|
|
329
516
|
* See the LICENSE file in the root directory of this source tree.
|
|
330
517
|
*/
|
|
331
|
-
const __iconNode$
|
|
518
|
+
const __iconNode$c = [
|
|
519
|
+
[
|
|
520
|
+
"path",
|
|
521
|
+
{
|
|
522
|
+
d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
|
|
523
|
+
key: "18887p"
|
|
524
|
+
}
|
|
525
|
+
]
|
|
526
|
+
];
|
|
527
|
+
const MessageSquare = createLucideIcon("message-square", __iconNode$c);
|
|
528
|
+
/**
|
|
529
|
+
* @license lucide-react v0.552.0 - ISC
|
|
530
|
+
*
|
|
531
|
+
* This source code is licensed under the ISC license.
|
|
532
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
533
|
+
*/
|
|
534
|
+
const __iconNode$b = [
|
|
332
535
|
["rect", { x: "16", y: "16", width: "6", height: "6", rx: "1", key: "4q2zg0" }],
|
|
333
536
|
["rect", { x: "2", y: "16", width: "6", height: "6", rx: "1", key: "8cvhb9" }],
|
|
334
537
|
["rect", { x: "9", y: "2", width: "6", height: "6", rx: "1", key: "1egb70" }],
|
|
335
538
|
["path", { d: "M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3", key: "1jsf9p" }],
|
|
336
539
|
["path", { d: "M12 12V8", key: "2874zd" }]
|
|
337
540
|
];
|
|
338
|
-
const Network = createLucideIcon("network", __iconNode$
|
|
541
|
+
const Network = createLucideIcon("network", __iconNode$b);
|
|
339
542
|
/**
|
|
340
543
|
* @license lucide-react v0.552.0 - ISC
|
|
341
544
|
*
|
|
342
545
|
* This source code is licensed under the ISC license.
|
|
343
546
|
* See the LICENSE file in the root directory of this source tree.
|
|
344
547
|
*/
|
|
345
|
-
const __iconNode$
|
|
548
|
+
const __iconNode$a = [
|
|
549
|
+
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
550
|
+
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
551
|
+
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
552
|
+
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
553
|
+
];
|
|
554
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$a);
|
|
555
|
+
/**
|
|
556
|
+
* @license lucide-react v0.552.0 - ISC
|
|
557
|
+
*
|
|
558
|
+
* This source code is licensed under the ISC license.
|
|
559
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
560
|
+
*/
|
|
561
|
+
const __iconNode$9 = [
|
|
346
562
|
["path", { d: "m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "7g6ntu" }],
|
|
347
563
|
["path", { d: "m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "ijws7r" }],
|
|
348
564
|
["path", { d: "M7 21h10", key: "1b0cd5" }],
|
|
349
565
|
["path", { d: "M12 3v18", key: "108xh3" }],
|
|
350
566
|
["path", { d: "M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2", key: "3gwbw2" }]
|
|
351
567
|
];
|
|
352
|
-
const Scale = createLucideIcon("scale", __iconNode$
|
|
568
|
+
const Scale = createLucideIcon("scale", __iconNode$9);
|
|
353
569
|
/**
|
|
354
570
|
* @license lucide-react v0.552.0 - ISC
|
|
355
571
|
*
|
|
356
572
|
* This source code is licensed under the ISC license.
|
|
357
573
|
* See the LICENSE file in the root directory of this source tree.
|
|
358
574
|
*/
|
|
359
|
-
const __iconNode$
|
|
575
|
+
const __iconNode$8 = [
|
|
360
576
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
361
577
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
362
578
|
];
|
|
363
|
-
const Search = createLucideIcon("search", __iconNode$
|
|
579
|
+
const Search = createLucideIcon("search", __iconNode$8);
|
|
364
580
|
/**
|
|
365
581
|
* @license lucide-react v0.552.0 - ISC
|
|
366
582
|
*
|
|
367
583
|
* This source code is licensed under the ISC license.
|
|
368
584
|
* See the LICENSE file in the root directory of this source tree.
|
|
369
585
|
*/
|
|
370
|
-
const __iconNode$
|
|
586
|
+
const __iconNode$7 = [
|
|
371
587
|
[
|
|
372
588
|
"path",
|
|
373
589
|
{
|
|
@@ -379,14 +595,14 @@ const __iconNode$4 = [
|
|
|
379
595
|
["path", { d: "M22 4h-4", key: "gwowj6" }],
|
|
380
596
|
["circle", { cx: "4", cy: "20", r: "2", key: "6kqj1y" }]
|
|
381
597
|
];
|
|
382
|
-
const Sparkles = createLucideIcon("sparkles", __iconNode$
|
|
598
|
+
const Sparkles = createLucideIcon("sparkles", __iconNode$7);
|
|
383
599
|
/**
|
|
384
600
|
* @license lucide-react v0.552.0 - ISC
|
|
385
601
|
*
|
|
386
602
|
* This source code is licensed under the ISC license.
|
|
387
603
|
* See the LICENSE file in the root directory of this source tree.
|
|
388
604
|
*/
|
|
389
|
-
const __iconNode$
|
|
605
|
+
const __iconNode$6 = [
|
|
390
606
|
[
|
|
391
607
|
"path",
|
|
392
608
|
{
|
|
@@ -395,43 +611,92 @@ const __iconNode$3 = [
|
|
|
395
611
|
}
|
|
396
612
|
]
|
|
397
613
|
];
|
|
398
|
-
const Star = createLucideIcon("star", __iconNode$
|
|
614
|
+
const Star = createLucideIcon("star", __iconNode$6);
|
|
399
615
|
/**
|
|
400
616
|
* @license lucide-react v0.552.0 - ISC
|
|
401
617
|
*
|
|
402
618
|
* This source code is licensed under the ISC license.
|
|
403
619
|
* See the LICENSE file in the root directory of this source tree.
|
|
404
620
|
*/
|
|
405
|
-
const __iconNode$
|
|
621
|
+
const __iconNode$5 = [
|
|
622
|
+
[
|
|
623
|
+
"path",
|
|
624
|
+
{
|
|
625
|
+
d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
|
|
626
|
+
key: "vktsd0"
|
|
627
|
+
}
|
|
628
|
+
],
|
|
629
|
+
["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
|
|
630
|
+
];
|
|
631
|
+
const Tag = createLucideIcon("tag", __iconNode$5);
|
|
632
|
+
/**
|
|
633
|
+
* @license lucide-react v0.552.0 - ISC
|
|
634
|
+
*
|
|
635
|
+
* This source code is licensed under the ISC license.
|
|
636
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
637
|
+
*/
|
|
638
|
+
const __iconNode$4 = [
|
|
406
639
|
["path", { d: "M10 11v6", key: "nco0om" }],
|
|
407
640
|
["path", { d: "M14 11v6", key: "outv1u" }],
|
|
408
641
|
["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
|
|
409
642
|
["path", { d: "M3 6h18", key: "d0wm0j" }],
|
|
410
643
|
["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
|
|
411
644
|
];
|
|
412
|
-
const Trash2 = createLucideIcon("trash-2", __iconNode$
|
|
645
|
+
const Trash2 = createLucideIcon("trash-2", __iconNode$4);
|
|
413
646
|
/**
|
|
414
647
|
* @license lucide-react v0.552.0 - ISC
|
|
415
648
|
*
|
|
416
649
|
* This source code is licensed under the ISC license.
|
|
417
650
|
* See the LICENSE file in the root directory of this source tree.
|
|
418
651
|
*/
|
|
419
|
-
const __iconNode$
|
|
652
|
+
const __iconNode$3 = [
|
|
420
653
|
["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
|
|
421
654
|
["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
|
|
422
655
|
];
|
|
423
|
-
const User = createLucideIcon("user", __iconNode$
|
|
656
|
+
const User = createLucideIcon("user", __iconNode$3);
|
|
424
657
|
/**
|
|
425
658
|
* @license lucide-react v0.552.0 - ISC
|
|
426
659
|
*
|
|
427
660
|
* This source code is licensed under the ISC license.
|
|
428
661
|
* See the LICENSE file in the root directory of this source tree.
|
|
429
662
|
*/
|
|
430
|
-
const __iconNode = [
|
|
663
|
+
const __iconNode$2 = [
|
|
664
|
+
[
|
|
665
|
+
"path",
|
|
666
|
+
{
|
|
667
|
+
d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",
|
|
668
|
+
key: "1ngwbx"
|
|
669
|
+
}
|
|
670
|
+
]
|
|
671
|
+
];
|
|
672
|
+
const Wrench = createLucideIcon("wrench", __iconNode$2);
|
|
673
|
+
/**
|
|
674
|
+
* @license lucide-react v0.552.0 - ISC
|
|
675
|
+
*
|
|
676
|
+
* This source code is licensed under the ISC license.
|
|
677
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
678
|
+
*/
|
|
679
|
+
const __iconNode$1 = [
|
|
431
680
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
432
681
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
433
682
|
];
|
|
434
|
-
const X = createLucideIcon("x", __iconNode);
|
|
683
|
+
const X = createLucideIcon("x", __iconNode$1);
|
|
684
|
+
/**
|
|
685
|
+
* @license lucide-react v0.552.0 - ISC
|
|
686
|
+
*
|
|
687
|
+
* This source code is licensed under the ISC license.
|
|
688
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
689
|
+
*/
|
|
690
|
+
const __iconNode = [
|
|
691
|
+
[
|
|
692
|
+
"path",
|
|
693
|
+
{
|
|
694
|
+
d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
|
|
695
|
+
key: "1xq2db"
|
|
696
|
+
}
|
|
697
|
+
]
|
|
698
|
+
];
|
|
699
|
+
const Zap = createLucideIcon("zap", __iconNode);
|
|
435
700
|
function getLanguageColor(language) {
|
|
436
701
|
const colors = {
|
|
437
702
|
TypeScript: "#3178c6",
|
|
@@ -1395,131 +1660,1189 @@ const GitHubSearchPanelContent = ({ events }) => {
|
|
|
1395
1660
|
((_a = repo.owner) == null ? void 0 : _a.avatar_url) && /* @__PURE__ */ jsx(
|
|
1396
1661
|
"img",
|
|
1397
1662
|
{
|
|
1398
|
-
src: repo.owner.avatar_url,
|
|
1399
|
-
alt: repo.owner.login,
|
|
1400
|
-
style: { width: 20, height: 20, borderRadius: 4 }
|
|
1663
|
+
src: repo.owner.avatar_url,
|
|
1664
|
+
alt: repo.owner.login,
|
|
1665
|
+
style: { width: 20, height: 20, borderRadius: 4 }
|
|
1666
|
+
}
|
|
1667
|
+
),
|
|
1668
|
+
/* @__PURE__ */ jsx(
|
|
1669
|
+
"span",
|
|
1670
|
+
{
|
|
1671
|
+
style: {
|
|
1672
|
+
fontSize: `${theme.fontSizes[2]}px`,
|
|
1673
|
+
fontWeight: theme.fontWeights.semibold,
|
|
1674
|
+
color: theme.colors.primary
|
|
1675
|
+
},
|
|
1676
|
+
children: repo.full_name
|
|
1677
|
+
}
|
|
1678
|
+
),
|
|
1679
|
+
repo.private && /* @__PURE__ */ jsx(
|
|
1680
|
+
"span",
|
|
1681
|
+
{
|
|
1682
|
+
style: {
|
|
1683
|
+
fontSize: `${theme.fontSizes[0]}px`,
|
|
1684
|
+
padding: "2px 6px",
|
|
1685
|
+
borderRadius: "4px",
|
|
1686
|
+
backgroundColor: theme.colors.backgroundTertiary,
|
|
1687
|
+
color: theme.colors.textSecondary
|
|
1688
|
+
},
|
|
1689
|
+
children: "Private"
|
|
1690
|
+
}
|
|
1691
|
+
)
|
|
1692
|
+
] }),
|
|
1693
|
+
repo.description && /* @__PURE__ */ jsx(
|
|
1694
|
+
"p",
|
|
1695
|
+
{
|
|
1696
|
+
style: {
|
|
1697
|
+
margin: 0,
|
|
1698
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
1699
|
+
color: theme.colors.textSecondary,
|
|
1700
|
+
overflow: "hidden",
|
|
1701
|
+
textOverflow: "ellipsis",
|
|
1702
|
+
display: "-webkit-box",
|
|
1703
|
+
WebkitLineClamp: 2,
|
|
1704
|
+
WebkitBoxOrient: "vertical"
|
|
1705
|
+
},
|
|
1706
|
+
children: repo.description
|
|
1707
|
+
}
|
|
1708
|
+
),
|
|
1709
|
+
/* @__PURE__ */ jsxs(
|
|
1710
|
+
"div",
|
|
1711
|
+
{
|
|
1712
|
+
style: {
|
|
1713
|
+
display: "flex",
|
|
1714
|
+
alignItems: "center",
|
|
1715
|
+
gap: "16px",
|
|
1716
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
1717
|
+
color: theme.colors.textSecondary
|
|
1718
|
+
},
|
|
1719
|
+
children: [
|
|
1720
|
+
repo.language && /* @__PURE__ */ jsxs("span", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
1721
|
+
/* @__PURE__ */ jsx(
|
|
1722
|
+
"span",
|
|
1723
|
+
{
|
|
1724
|
+
style: {
|
|
1725
|
+
width: 10,
|
|
1726
|
+
height: 10,
|
|
1727
|
+
borderRadius: "50%",
|
|
1728
|
+
backgroundColor: theme.colors.info
|
|
1729
|
+
}
|
|
1730
|
+
}
|
|
1731
|
+
),
|
|
1732
|
+
repo.language
|
|
1733
|
+
] }),
|
|
1734
|
+
/* @__PURE__ */ jsxs("span", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
1735
|
+
/* @__PURE__ */ jsx(Star, { size: 14 }),
|
|
1736
|
+
formatNumber(repo.stargazers_count || 0)
|
|
1737
|
+
] }),
|
|
1738
|
+
/* @__PURE__ */ jsxs("span", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
1739
|
+
/* @__PURE__ */ jsx(GitFork, { size: 14 }),
|
|
1740
|
+
formatNumber(repo.forks_count || 0)
|
|
1741
|
+
] }),
|
|
1742
|
+
/* @__PURE__ */ jsx(
|
|
1743
|
+
"a",
|
|
1744
|
+
{
|
|
1745
|
+
href: repo.html_url,
|
|
1746
|
+
target: "_blank",
|
|
1747
|
+
rel: "noopener noreferrer",
|
|
1748
|
+
onClick: (e) => e.stopPropagation(),
|
|
1749
|
+
style: {
|
|
1750
|
+
marginLeft: "auto",
|
|
1751
|
+
color: theme.colors.textSecondary,
|
|
1752
|
+
display: "flex",
|
|
1753
|
+
alignItems: "center"
|
|
1754
|
+
},
|
|
1755
|
+
children: /* @__PURE__ */ jsx(ExternalLink, { size: 14 })
|
|
1756
|
+
}
|
|
1757
|
+
)
|
|
1758
|
+
]
|
|
1759
|
+
}
|
|
1760
|
+
)
|
|
1761
|
+
]
|
|
1762
|
+
},
|
|
1763
|
+
repo.id
|
|
1764
|
+
);
|
|
1765
|
+
})
|
|
1766
|
+
]
|
|
1767
|
+
}
|
|
1768
|
+
),
|
|
1769
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
1770
|
+
@keyframes spin {
|
|
1771
|
+
to { transform: rotate(360deg); }
|
|
1772
|
+
}
|
|
1773
|
+
` })
|
|
1774
|
+
]
|
|
1775
|
+
}
|
|
1776
|
+
);
|
|
1777
|
+
};
|
|
1778
|
+
const GitHubSearchPanel = (props) => {
|
|
1779
|
+
return /* @__PURE__ */ jsx(GitHubSearchPanelContent, { ...props });
|
|
1780
|
+
};
|
|
1781
|
+
const GitHubSearchPanelMetadata = {
|
|
1782
|
+
id: "github-search",
|
|
1783
|
+
name: "GitHub Search",
|
|
1784
|
+
description: "Search for repositories on GitHub",
|
|
1785
|
+
icon: "search",
|
|
1786
|
+
version: "0.1.0",
|
|
1787
|
+
slices: [],
|
|
1788
|
+
surfaces: ["panel"]
|
|
1789
|
+
};
|
|
1790
|
+
const formatDate = (dateString) => {
|
|
1791
|
+
const date = new Date(dateString);
|
|
1792
|
+
const now = /* @__PURE__ */ new Date();
|
|
1793
|
+
const diffMs = now.getTime() - date.getTime();
|
|
1794
|
+
const diffDays = Math.floor(diffMs / (1e3 * 60 * 60 * 24));
|
|
1795
|
+
if (diffDays === 0) return "Today";
|
|
1796
|
+
if (diffDays === 1) return "Yesterday";
|
|
1797
|
+
if (diffDays < 7) return `${diffDays} days ago`;
|
|
1798
|
+
if (diffDays < 30) return `${Math.floor(diffDays / 7)} weeks ago`;
|
|
1799
|
+
if (diffDays < 365) return `${Math.floor(diffDays / 30)} months ago`;
|
|
1800
|
+
return `${Math.floor(diffDays / 365)} years ago`;
|
|
1801
|
+
};
|
|
1802
|
+
const GitHubIssuesPanelContent = ({
|
|
1803
|
+
context,
|
|
1804
|
+
events
|
|
1805
|
+
}) => {
|
|
1806
|
+
var _a, _b, _c, _d, _e;
|
|
1807
|
+
const { theme } = useTheme();
|
|
1808
|
+
const issuesSlice = context.getSlice("github-issues");
|
|
1809
|
+
const isLoading = context.isSliceLoading("github-issues");
|
|
1810
|
+
const hasData = context.hasSlice("github-issues");
|
|
1811
|
+
const issues = ((_a = issuesSlice == null ? void 0 : issuesSlice.data) == null ? void 0 : _a.issues) ?? [];
|
|
1812
|
+
const owner = ((_b = issuesSlice == null ? void 0 : issuesSlice.data) == null ? void 0 : _b.owner) ?? "";
|
|
1813
|
+
const repo = ((_c = issuesSlice == null ? void 0 : issuesSlice.data) == null ? void 0 : _c.repo) ?? "";
|
|
1814
|
+
const isAuthenticated = ((_d = issuesSlice == null ? void 0 : issuesSlice.data) == null ? void 0 : _d.isAuthenticated) ?? false;
|
|
1815
|
+
const sliceError = (_e = issuesSlice == null ? void 0 : issuesSlice.data) == null ? void 0 : _e.error;
|
|
1816
|
+
const [selectedIssues, setSelectedIssues] = useState(/* @__PURE__ */ new Set());
|
|
1817
|
+
const [copiedPrompt, setCopiedPrompt] = useState(false);
|
|
1818
|
+
const [issueFilter, setIssueFilter] = useState("open");
|
|
1819
|
+
const [selectedIssue, setSelectedIssue] = useState(null);
|
|
1820
|
+
const [showIssueModal, setShowIssueModal] = useState(false);
|
|
1821
|
+
useEffect(() => {
|
|
1822
|
+
events.emit({
|
|
1823
|
+
type: "github-issues:request",
|
|
1824
|
+
source: "github-issues-panel",
|
|
1825
|
+
timestamp: Date.now(),
|
|
1826
|
+
payload: {}
|
|
1827
|
+
});
|
|
1828
|
+
}, [events]);
|
|
1829
|
+
const filteredIssues = useMemo(() => {
|
|
1830
|
+
if (issueFilter === "all") return issues;
|
|
1831
|
+
return issues.filter((issue) => issue.state === issueFilter);
|
|
1832
|
+
}, [issues, issueFilter]);
|
|
1833
|
+
const issueCounts = useMemo(() => ({
|
|
1834
|
+
all: issues.length,
|
|
1835
|
+
open: issues.filter((i) => i.state === "open").length,
|
|
1836
|
+
closed: issues.filter((i) => i.state === "closed").length
|
|
1837
|
+
}), [issues]);
|
|
1838
|
+
const handleSelectAll = () => {
|
|
1839
|
+
if (selectedIssues.size === filteredIssues.length) {
|
|
1840
|
+
setSelectedIssues(/* @__PURE__ */ new Set());
|
|
1841
|
+
} else {
|
|
1842
|
+
setSelectedIssues(new Set(filteredIssues.map((i) => i.number)));
|
|
1843
|
+
}
|
|
1844
|
+
};
|
|
1845
|
+
const handleToggleIssue = (issueNumber, event) => {
|
|
1846
|
+
const newSelected = new Set(selectedIssues);
|
|
1847
|
+
if (newSelected.has(issueNumber)) {
|
|
1848
|
+
newSelected.delete(issueNumber);
|
|
1849
|
+
} else {
|
|
1850
|
+
newSelected.add(issueNumber);
|
|
1851
|
+
}
|
|
1852
|
+
setSelectedIssues(newSelected);
|
|
1853
|
+
};
|
|
1854
|
+
const handleIssueClick = (issue, event) => {
|
|
1855
|
+
const target = event.target;
|
|
1856
|
+
if (target.tagName === "INPUT" || target.closest("a")) {
|
|
1857
|
+
return;
|
|
1858
|
+
}
|
|
1859
|
+
setSelectedIssue(issue);
|
|
1860
|
+
setShowIssueModal(true);
|
|
1861
|
+
events.emit({
|
|
1862
|
+
type: "issue:selected",
|
|
1863
|
+
source: "github-issues-panel",
|
|
1864
|
+
timestamp: Date.now(),
|
|
1865
|
+
payload: {
|
|
1866
|
+
issue,
|
|
1867
|
+
owner,
|
|
1868
|
+
repo
|
|
1869
|
+
}
|
|
1870
|
+
});
|
|
1871
|
+
};
|
|
1872
|
+
const handleRefresh = () => {
|
|
1873
|
+
events.emit({
|
|
1874
|
+
type: "github-issues:refresh",
|
|
1875
|
+
source: "github-issues-panel",
|
|
1876
|
+
timestamp: Date.now(),
|
|
1877
|
+
payload: {}
|
|
1878
|
+
});
|
|
1879
|
+
};
|
|
1880
|
+
const handleLogin = () => {
|
|
1881
|
+
events.emit({
|
|
1882
|
+
type: "github:login-requested",
|
|
1883
|
+
source: "github-issues-panel",
|
|
1884
|
+
timestamp: Date.now(),
|
|
1885
|
+
payload: {}
|
|
1886
|
+
});
|
|
1887
|
+
};
|
|
1888
|
+
const generatePrompt = () => {
|
|
1889
|
+
const selectedIssueData = issues.filter(
|
|
1890
|
+
(i) => selectedIssues.has(i.number)
|
|
1891
|
+
);
|
|
1892
|
+
if (selectedIssueData.length === 0) return "";
|
|
1893
|
+
let prompt = `I'm working on the GitHub repository ${owner}/${repo}. Here are the issues I need help with:
|
|
1894
|
+
|
|
1895
|
+
`;
|
|
1896
|
+
selectedIssueData.forEach((issue) => {
|
|
1897
|
+
prompt += `## Issue #${issue.number}: ${issue.title}
|
|
1898
|
+
`;
|
|
1899
|
+
prompt += `- Status: ${issue.state}
|
|
1900
|
+
`;
|
|
1901
|
+
prompt += `- URL: ${issue.html_url}
|
|
1902
|
+
`;
|
|
1903
|
+
if (issue.labels.length > 0) {
|
|
1904
|
+
prompt += `- Labels: ${issue.labels.map((l) => l.name).join(", ")}
|
|
1905
|
+
`;
|
|
1906
|
+
}
|
|
1907
|
+
if (issue.body) {
|
|
1908
|
+
prompt += `- Description:
|
|
1909
|
+
${issue.body}
|
|
1910
|
+
`;
|
|
1911
|
+
}
|
|
1912
|
+
prompt += "\n";
|
|
1913
|
+
});
|
|
1914
|
+
prompt += `Please help me understand and address these issues.`;
|
|
1915
|
+
return prompt;
|
|
1916
|
+
};
|
|
1917
|
+
const handleCopyPrompt = async () => {
|
|
1918
|
+
const prompt = generatePrompt();
|
|
1919
|
+
if (!prompt) return;
|
|
1920
|
+
try {
|
|
1921
|
+
await navigator.clipboard.writeText(prompt);
|
|
1922
|
+
setCopiedPrompt(true);
|
|
1923
|
+
setTimeout(() => setCopiedPrompt(false), 2e3);
|
|
1924
|
+
} catch (err) {
|
|
1925
|
+
console.error("Failed to copy to clipboard:", err);
|
|
1926
|
+
}
|
|
1927
|
+
};
|
|
1928
|
+
const renderState = (icon, title, description, action) => /* @__PURE__ */ jsx(
|
|
1929
|
+
"div",
|
|
1930
|
+
{
|
|
1931
|
+
style: {
|
|
1932
|
+
height: "100%",
|
|
1933
|
+
display: "flex",
|
|
1934
|
+
alignItems: "center",
|
|
1935
|
+
justifyContent: "center",
|
|
1936
|
+
padding: "24px",
|
|
1937
|
+
backgroundColor: theme.colors.background
|
|
1938
|
+
},
|
|
1939
|
+
children: /* @__PURE__ */ jsxs(
|
|
1940
|
+
"div",
|
|
1941
|
+
{
|
|
1942
|
+
style: {
|
|
1943
|
+
display: "flex",
|
|
1944
|
+
flexDirection: "column",
|
|
1945
|
+
alignItems: "center",
|
|
1946
|
+
gap: "16px",
|
|
1947
|
+
maxWidth: "360px",
|
|
1948
|
+
textAlign: "center"
|
|
1949
|
+
},
|
|
1950
|
+
children: [
|
|
1951
|
+
/* @__PURE__ */ jsx("div", { children: icon }),
|
|
1952
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
1953
|
+
/* @__PURE__ */ jsx(
|
|
1954
|
+
"h3",
|
|
1955
|
+
{
|
|
1956
|
+
style: {
|
|
1957
|
+
margin: 0,
|
|
1958
|
+
marginBottom: "8px",
|
|
1959
|
+
color: theme.colors.text,
|
|
1960
|
+
fontSize: `${theme.fontSizes[3]}px`,
|
|
1961
|
+
fontWeight: theme.fontWeights.semibold
|
|
1962
|
+
},
|
|
1963
|
+
children: title
|
|
1964
|
+
}
|
|
1965
|
+
),
|
|
1966
|
+
description && /* @__PURE__ */ jsx(
|
|
1967
|
+
"p",
|
|
1968
|
+
{
|
|
1969
|
+
style: {
|
|
1970
|
+
margin: 0,
|
|
1971
|
+
color: theme.colors.textSecondary,
|
|
1972
|
+
lineHeight: 1.5,
|
|
1973
|
+
fontSize: `${theme.fontSizes[2]}px`
|
|
1974
|
+
},
|
|
1975
|
+
children: description
|
|
1976
|
+
}
|
|
1977
|
+
)
|
|
1978
|
+
] }),
|
|
1979
|
+
action
|
|
1980
|
+
]
|
|
1981
|
+
}
|
|
1982
|
+
)
|
|
1983
|
+
}
|
|
1984
|
+
);
|
|
1985
|
+
if (isLoading && !hasData) {
|
|
1986
|
+
return renderState(
|
|
1987
|
+
/* @__PURE__ */ jsx(
|
|
1988
|
+
LoaderCircle,
|
|
1989
|
+
{
|
|
1990
|
+
size: 32,
|
|
1991
|
+
style: { color: theme.colors.textSecondary },
|
|
1992
|
+
className: "animate-spin"
|
|
1993
|
+
}
|
|
1994
|
+
),
|
|
1995
|
+
"Loading issues...",
|
|
1996
|
+
"Fetching issues from GitHub"
|
|
1997
|
+
);
|
|
1998
|
+
}
|
|
1999
|
+
if (!isAuthenticated && !hasData) {
|
|
2000
|
+
return renderState(
|
|
2001
|
+
/* @__PURE__ */ jsx(
|
|
2002
|
+
CircleAlert,
|
|
2003
|
+
{
|
|
2004
|
+
size: 32,
|
|
2005
|
+
style: { color: theme.colors.warning || "#f59e0b" }
|
|
2006
|
+
}
|
|
2007
|
+
),
|
|
2008
|
+
"Sign in to GitHub",
|
|
2009
|
+
"Connect your GitHub account to view repository issues.",
|
|
2010
|
+
/* @__PURE__ */ jsxs(
|
|
2011
|
+
"button",
|
|
2012
|
+
{
|
|
2013
|
+
type: "button",
|
|
2014
|
+
onClick: handleLogin,
|
|
2015
|
+
style: {
|
|
2016
|
+
display: "inline-flex",
|
|
2017
|
+
alignItems: "center",
|
|
2018
|
+
gap: "8px",
|
|
2019
|
+
padding: "10px 18px",
|
|
2020
|
+
borderRadius: "6px",
|
|
2021
|
+
border: "none",
|
|
2022
|
+
backgroundColor: theme.colors.primary,
|
|
2023
|
+
color: theme.colors.background,
|
|
2024
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2025
|
+
fontSize: `${theme.fontSizes[2]}px`,
|
|
2026
|
+
cursor: "pointer"
|
|
2027
|
+
},
|
|
2028
|
+
children: [
|
|
2029
|
+
/* @__PURE__ */ jsx(LogIn, { size: 16 }),
|
|
2030
|
+
"Sign in with GitHub"
|
|
2031
|
+
]
|
|
2032
|
+
}
|
|
2033
|
+
)
|
|
2034
|
+
);
|
|
2035
|
+
}
|
|
2036
|
+
if (sliceError) {
|
|
2037
|
+
return renderState(
|
|
2038
|
+
/* @__PURE__ */ jsx(CircleAlert, { size: 32, style: { color: theme.colors.error } }),
|
|
2039
|
+
"Failed to Load Issues",
|
|
2040
|
+
sliceError,
|
|
2041
|
+
/* @__PURE__ */ jsxs(
|
|
2042
|
+
"button",
|
|
2043
|
+
{
|
|
2044
|
+
type: "button",
|
|
2045
|
+
onClick: handleRefresh,
|
|
2046
|
+
style: {
|
|
2047
|
+
display: "inline-flex",
|
|
2048
|
+
alignItems: "center",
|
|
2049
|
+
gap: "8px",
|
|
2050
|
+
padding: "10px 18px",
|
|
2051
|
+
borderRadius: "6px",
|
|
2052
|
+
border: `1px solid ${theme.colors.border}`,
|
|
2053
|
+
backgroundColor: theme.colors.background,
|
|
2054
|
+
color: theme.colors.text,
|
|
2055
|
+
fontWeight: theme.fontWeights.medium,
|
|
2056
|
+
fontSize: `${theme.fontSizes[2]}px`,
|
|
2057
|
+
cursor: "pointer"
|
|
2058
|
+
},
|
|
2059
|
+
children: [
|
|
2060
|
+
/* @__PURE__ */ jsx(RefreshCw, { size: 16 }),
|
|
2061
|
+
"Try Again"
|
|
2062
|
+
]
|
|
2063
|
+
}
|
|
2064
|
+
)
|
|
2065
|
+
);
|
|
2066
|
+
}
|
|
2067
|
+
if (!owner || !repo) {
|
|
2068
|
+
return renderState(
|
|
2069
|
+
/* @__PURE__ */ jsx(Github, { size: 32, style: { color: theme.colors.textSecondary } }),
|
|
2070
|
+
"No Repository Selected",
|
|
2071
|
+
"Select a repository to view its issues."
|
|
2072
|
+
);
|
|
2073
|
+
}
|
|
2074
|
+
return /* @__PURE__ */ jsxs(
|
|
2075
|
+
"div",
|
|
2076
|
+
{
|
|
2077
|
+
style: {
|
|
2078
|
+
height: "100%",
|
|
2079
|
+
display: "flex",
|
|
2080
|
+
flexDirection: "column",
|
|
2081
|
+
backgroundColor: theme.colors.background,
|
|
2082
|
+
color: theme.colors.text,
|
|
2083
|
+
fontFamily: theme.fonts.body
|
|
2084
|
+
},
|
|
2085
|
+
children: [
|
|
2086
|
+
/* @__PURE__ */ jsxs(
|
|
2087
|
+
"div",
|
|
2088
|
+
{
|
|
2089
|
+
style: {
|
|
2090
|
+
padding: "12px 16px",
|
|
2091
|
+
borderBottom: `1px solid ${theme.colors.border}`,
|
|
2092
|
+
display: "flex",
|
|
2093
|
+
alignItems: "center",
|
|
2094
|
+
gap: "12px"
|
|
2095
|
+
},
|
|
2096
|
+
children: [
|
|
2097
|
+
/* @__PURE__ */ jsx(Github, { size: 20, color: theme.colors.primary }),
|
|
2098
|
+
/* @__PURE__ */ jsx(
|
|
2099
|
+
"h2",
|
|
2100
|
+
{
|
|
2101
|
+
style: {
|
|
2102
|
+
margin: 0,
|
|
2103
|
+
fontSize: `${theme.fontSizes[3]}px`,
|
|
2104
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2105
|
+
flex: 1
|
|
2106
|
+
},
|
|
2107
|
+
children: "Issues"
|
|
2108
|
+
}
|
|
2109
|
+
),
|
|
2110
|
+
/* @__PURE__ */ jsxs(
|
|
2111
|
+
"span",
|
|
2112
|
+
{
|
|
2113
|
+
style: {
|
|
2114
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
2115
|
+
color: theme.colors.textSecondary
|
|
2116
|
+
},
|
|
2117
|
+
children: [
|
|
2118
|
+
owner,
|
|
2119
|
+
"/",
|
|
2120
|
+
repo
|
|
2121
|
+
]
|
|
2122
|
+
}
|
|
2123
|
+
)
|
|
2124
|
+
]
|
|
2125
|
+
}
|
|
2126
|
+
),
|
|
2127
|
+
/* @__PURE__ */ jsxs(
|
|
2128
|
+
"div",
|
|
2129
|
+
{
|
|
2130
|
+
style: {
|
|
2131
|
+
display: "flex",
|
|
2132
|
+
alignItems: "center",
|
|
2133
|
+
justifyContent: "space-between",
|
|
2134
|
+
padding: "12px 16px",
|
|
2135
|
+
borderBottom: `1px solid ${theme.colors.border}`,
|
|
2136
|
+
backgroundColor: theme.colors.backgroundSecondary,
|
|
2137
|
+
flexWrap: "wrap",
|
|
2138
|
+
gap: "8px"
|
|
2139
|
+
},
|
|
2140
|
+
children: [
|
|
2141
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
2142
|
+
/* @__PURE__ */ jsx("div", { style: { display: "flex", gap: "4px" }, children: ["open", "closed", "all"].map((filter) => /* @__PURE__ */ jsxs(
|
|
2143
|
+
"button",
|
|
2144
|
+
{
|
|
2145
|
+
type: "button",
|
|
2146
|
+
onClick: () => setIssueFilter(filter),
|
|
2147
|
+
style: {
|
|
2148
|
+
padding: "6px 12px",
|
|
2149
|
+
borderRadius: "6px",
|
|
2150
|
+
border: issueFilter === filter ? "none" : `1px solid ${theme.colors.border}`,
|
|
2151
|
+
backgroundColor: issueFilter === filter ? theme.colors.primary : theme.colors.background,
|
|
2152
|
+
color: issueFilter === filter ? theme.colors.background : theme.colors.text,
|
|
2153
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
2154
|
+
fontWeight: issueFilter === filter ? theme.fontWeights.semibold : theme.fontWeights.body,
|
|
2155
|
+
cursor: "pointer",
|
|
2156
|
+
textTransform: "capitalize"
|
|
2157
|
+
},
|
|
2158
|
+
children: [
|
|
2159
|
+
filter === "all" ? "All" : filter === "open" ? "Open" : "Closed",
|
|
2160
|
+
/* @__PURE__ */ jsxs("span", { style: { marginLeft: "6px", opacity: 0.8 }, children: [
|
|
2161
|
+
"(",
|
|
2162
|
+
issueCounts[filter],
|
|
2163
|
+
")"
|
|
2164
|
+
] })
|
|
2165
|
+
]
|
|
2166
|
+
},
|
|
2167
|
+
filter
|
|
2168
|
+
)) }),
|
|
2169
|
+
filteredIssues.length > 0 && /* @__PURE__ */ jsx(
|
|
2170
|
+
"button",
|
|
2171
|
+
{
|
|
2172
|
+
type: "button",
|
|
2173
|
+
onClick: handleSelectAll,
|
|
2174
|
+
style: {
|
|
2175
|
+
padding: "6px 12px",
|
|
2176
|
+
borderRadius: "6px",
|
|
2177
|
+
border: `1px solid ${theme.colors.border}`,
|
|
2178
|
+
backgroundColor: theme.colors.background,
|
|
2179
|
+
color: theme.colors.textSecondary,
|
|
2180
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
2181
|
+
cursor: "pointer"
|
|
2182
|
+
},
|
|
2183
|
+
children: selectedIssues.size === filteredIssues.length ? "Deselect All" : "Select All"
|
|
2184
|
+
}
|
|
2185
|
+
)
|
|
2186
|
+
] }),
|
|
2187
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: "8px" }, children: [
|
|
2188
|
+
/* @__PURE__ */ jsx(
|
|
2189
|
+
"button",
|
|
2190
|
+
{
|
|
2191
|
+
type: "button",
|
|
2192
|
+
onClick: handleRefresh,
|
|
2193
|
+
disabled: isLoading,
|
|
2194
|
+
style: {
|
|
2195
|
+
display: "flex",
|
|
2196
|
+
alignItems: "center",
|
|
2197
|
+
gap: "6px",
|
|
2198
|
+
padding: "6px 12px",
|
|
2199
|
+
borderRadius: "6px",
|
|
2200
|
+
border: `1px solid ${theme.colors.border}`,
|
|
2201
|
+
backgroundColor: theme.colors.background,
|
|
2202
|
+
color: theme.colors.text,
|
|
2203
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
2204
|
+
cursor: isLoading ? "not-allowed" : "pointer",
|
|
2205
|
+
opacity: isLoading ? 0.5 : 1
|
|
2206
|
+
},
|
|
2207
|
+
children: /* @__PURE__ */ jsx(RefreshCw, { size: 14, className: isLoading ? "animate-spin" : "" })
|
|
2208
|
+
}
|
|
2209
|
+
),
|
|
2210
|
+
/* @__PURE__ */ jsxs(
|
|
2211
|
+
"button",
|
|
2212
|
+
{
|
|
2213
|
+
type: "button",
|
|
2214
|
+
onClick: handleCopyPrompt,
|
|
2215
|
+
disabled: selectedIssues.size === 0,
|
|
2216
|
+
style: {
|
|
2217
|
+
display: "flex",
|
|
2218
|
+
alignItems: "center",
|
|
2219
|
+
gap: "6px",
|
|
2220
|
+
padding: "6px 12px",
|
|
2221
|
+
borderRadius: "6px",
|
|
2222
|
+
border: "none",
|
|
2223
|
+
backgroundColor: selectedIssues.size > 0 ? theme.colors.primary : theme.colors.backgroundTertiary,
|
|
2224
|
+
color: selectedIssues.size > 0 ? theme.colors.background : theme.colors.textSecondary,
|
|
2225
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
2226
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2227
|
+
cursor: selectedIssues.size > 0 ? "pointer" : "not-allowed",
|
|
2228
|
+
opacity: selectedIssues.size > 0 ? 1 : 0.5
|
|
2229
|
+
},
|
|
2230
|
+
children: [
|
|
2231
|
+
copiedPrompt ? /* @__PURE__ */ jsx(CircleCheck, { size: 14 }) : /* @__PURE__ */ jsx(Copy, { size: 14 }),
|
|
2232
|
+
copiedPrompt ? "Copied!" : `Copy Prompt (${selectedIssues.size})`
|
|
2233
|
+
]
|
|
2234
|
+
}
|
|
2235
|
+
)
|
|
2236
|
+
] })
|
|
2237
|
+
]
|
|
2238
|
+
}
|
|
2239
|
+
),
|
|
2240
|
+
/* @__PURE__ */ jsx("div", { style: { flex: 1, overflow: "auto", padding: "8px" }, children: filteredIssues.length === 0 ? /* @__PURE__ */ jsxs(
|
|
2241
|
+
"div",
|
|
2242
|
+
{
|
|
2243
|
+
style: {
|
|
2244
|
+
display: "flex",
|
|
2245
|
+
flexDirection: "column",
|
|
2246
|
+
alignItems: "center",
|
|
2247
|
+
justifyContent: "center",
|
|
2248
|
+
height: "100%",
|
|
2249
|
+
gap: "16px",
|
|
2250
|
+
color: theme.colors.textSecondary
|
|
2251
|
+
},
|
|
2252
|
+
children: [
|
|
2253
|
+
/* @__PURE__ */ jsx(Github, { size: 48, color: theme.colors.border }),
|
|
2254
|
+
/* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
|
|
2255
|
+
/* @__PURE__ */ jsx(
|
|
2256
|
+
"h3",
|
|
2257
|
+
{
|
|
2258
|
+
style: {
|
|
2259
|
+
color: theme.colors.text,
|
|
2260
|
+
marginBottom: "8px",
|
|
2261
|
+
fontSize: `${theme.fontSizes[3]}px`
|
|
2262
|
+
},
|
|
2263
|
+
children: "No Issues Found"
|
|
2264
|
+
}
|
|
2265
|
+
),
|
|
2266
|
+
/* @__PURE__ */ jsxs("p", { style: { margin: 0, fontSize: `${theme.fontSizes[2]}px` }, children: [
|
|
2267
|
+
"There are no ",
|
|
2268
|
+
issueFilter !== "all" ? issueFilter : "",
|
|
2269
|
+
" issues in this repository."
|
|
2270
|
+
] })
|
|
2271
|
+
] })
|
|
2272
|
+
]
|
|
2273
|
+
}
|
|
2274
|
+
) : /* @__PURE__ */ jsx(
|
|
2275
|
+
"div",
|
|
2276
|
+
{
|
|
2277
|
+
style: { display: "flex", flexDirection: "column", gap: "8px" },
|
|
2278
|
+
children: filteredIssues.map((issue) => /* @__PURE__ */ jsx(
|
|
2279
|
+
"button",
|
|
2280
|
+
{
|
|
2281
|
+
type: "button",
|
|
2282
|
+
onClick: (e) => handleIssueClick(issue, e),
|
|
2283
|
+
style: {
|
|
2284
|
+
width: "100%",
|
|
2285
|
+
padding: "12px",
|
|
2286
|
+
borderRadius: "6px",
|
|
2287
|
+
border: `1px solid ${selectedIssues.has(issue.number) ? theme.colors.primary : theme.colors.border}`,
|
|
2288
|
+
backgroundColor: selectedIssues.has(issue.number) ? `${theme.colors.primary}10` : theme.colors.surface,
|
|
2289
|
+
cursor: "pointer",
|
|
2290
|
+
textAlign: "left"
|
|
2291
|
+
},
|
|
2292
|
+
children: /* @__PURE__ */ jsxs(
|
|
2293
|
+
"div",
|
|
2294
|
+
{
|
|
2295
|
+
style: {
|
|
2296
|
+
display: "flex",
|
|
2297
|
+
alignItems: "flex-start",
|
|
2298
|
+
gap: "12px"
|
|
2299
|
+
},
|
|
2300
|
+
children: [
|
|
2301
|
+
/* @__PURE__ */ jsx(
|
|
2302
|
+
"input",
|
|
2303
|
+
{
|
|
2304
|
+
type: "checkbox",
|
|
2305
|
+
checked: selectedIssues.has(issue.number),
|
|
2306
|
+
onChange: () => handleToggleIssue(issue.number),
|
|
2307
|
+
onClick: (e) => e.stopPropagation(),
|
|
2308
|
+
style: { marginTop: "2px", cursor: "pointer" }
|
|
2309
|
+
}
|
|
2310
|
+
),
|
|
2311
|
+
/* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2312
|
+
/* @__PURE__ */ jsxs(
|
|
2313
|
+
"div",
|
|
2314
|
+
{
|
|
2315
|
+
style: {
|
|
2316
|
+
display: "flex",
|
|
2317
|
+
alignItems: "center",
|
|
2318
|
+
gap: "8px",
|
|
2319
|
+
marginBottom: "6px",
|
|
2320
|
+
flexWrap: "wrap"
|
|
2321
|
+
},
|
|
2322
|
+
children: [
|
|
2323
|
+
/* @__PURE__ */ jsx(
|
|
2324
|
+
"span",
|
|
2325
|
+
{
|
|
2326
|
+
style: {
|
|
2327
|
+
display: "inline-flex",
|
|
2328
|
+
alignItems: "center",
|
|
2329
|
+
padding: "2px 8px",
|
|
2330
|
+
borderRadius: "12px",
|
|
2331
|
+
backgroundColor: issue.state === "open" ? "#22c55e22" : "#6b728022",
|
|
2332
|
+
color: issue.state === "open" ? "#22c55e" : "#6b7280",
|
|
2333
|
+
fontSize: `${theme.fontSizes[0]}px`,
|
|
2334
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2335
|
+
textTransform: "uppercase"
|
|
2336
|
+
},
|
|
2337
|
+
children: issue.state
|
|
2338
|
+
}
|
|
2339
|
+
),
|
|
2340
|
+
/* @__PURE__ */ jsxs(
|
|
2341
|
+
"span",
|
|
2342
|
+
{
|
|
2343
|
+
style: {
|
|
2344
|
+
color: theme.colors.textSecondary,
|
|
2345
|
+
fontSize: `${theme.fontSizes[1]}px`
|
|
2346
|
+
},
|
|
2347
|
+
children: [
|
|
2348
|
+
"#",
|
|
2349
|
+
issue.number
|
|
2350
|
+
]
|
|
2351
|
+
}
|
|
2352
|
+
),
|
|
2353
|
+
/* @__PURE__ */ jsx(
|
|
2354
|
+
"a",
|
|
2355
|
+
{
|
|
2356
|
+
href: issue.html_url,
|
|
2357
|
+
target: "_blank",
|
|
2358
|
+
rel: "noopener noreferrer",
|
|
2359
|
+
onClick: (e) => e.stopPropagation(),
|
|
2360
|
+
style: {
|
|
2361
|
+
color: theme.colors.primary,
|
|
2362
|
+
textDecoration: "none",
|
|
2363
|
+
display: "inline-flex",
|
|
2364
|
+
alignItems: "center"
|
|
2365
|
+
},
|
|
2366
|
+
children: /* @__PURE__ */ jsx(ExternalLink, { size: 12 })
|
|
2367
|
+
}
|
|
2368
|
+
)
|
|
2369
|
+
]
|
|
2370
|
+
}
|
|
2371
|
+
),
|
|
2372
|
+
/* @__PURE__ */ jsx(
|
|
2373
|
+
"h4",
|
|
2374
|
+
{
|
|
2375
|
+
style: {
|
|
2376
|
+
margin: 0,
|
|
2377
|
+
marginBottom: "6px",
|
|
2378
|
+
color: theme.colors.text,
|
|
2379
|
+
fontSize: `${theme.fontSizes[2]}px`,
|
|
2380
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2381
|
+
overflow: "hidden",
|
|
2382
|
+
textOverflow: "ellipsis",
|
|
2383
|
+
whiteSpace: "nowrap"
|
|
2384
|
+
},
|
|
2385
|
+
children: issue.title
|
|
2386
|
+
}
|
|
2387
|
+
),
|
|
2388
|
+
issue.labels.length > 0 && /* @__PURE__ */ jsxs(
|
|
2389
|
+
"div",
|
|
2390
|
+
{
|
|
2391
|
+
style: {
|
|
2392
|
+
display: "flex",
|
|
2393
|
+
flexWrap: "wrap",
|
|
2394
|
+
gap: "4px",
|
|
2395
|
+
marginBottom: "6px"
|
|
2396
|
+
},
|
|
2397
|
+
children: [
|
|
2398
|
+
issue.labels.slice(0, 3).map((label) => /* @__PURE__ */ jsxs(
|
|
2399
|
+
"span",
|
|
2400
|
+
{
|
|
2401
|
+
style: {
|
|
2402
|
+
display: "inline-flex",
|
|
2403
|
+
alignItems: "center",
|
|
2404
|
+
gap: "4px",
|
|
2405
|
+
padding: "2px 6px",
|
|
2406
|
+
borderRadius: "12px",
|
|
2407
|
+
backgroundColor: `#${label.color}22`,
|
|
2408
|
+
color: `#${label.color}`,
|
|
2409
|
+
fontSize: `${theme.fontSizes[0]}px`,
|
|
2410
|
+
fontWeight: theme.fontWeights.medium
|
|
2411
|
+
},
|
|
2412
|
+
children: [
|
|
2413
|
+
/* @__PURE__ */ jsx(Tag, { size: 10 }),
|
|
2414
|
+
label.name
|
|
2415
|
+
]
|
|
2416
|
+
},
|
|
2417
|
+
label.id
|
|
2418
|
+
)),
|
|
2419
|
+
issue.labels.length > 3 && /* @__PURE__ */ jsxs(
|
|
2420
|
+
"span",
|
|
2421
|
+
{
|
|
2422
|
+
style: {
|
|
2423
|
+
fontSize: `${theme.fontSizes[0]}px`,
|
|
2424
|
+
color: theme.colors.textSecondary
|
|
2425
|
+
},
|
|
2426
|
+
children: [
|
|
2427
|
+
"+",
|
|
2428
|
+
issue.labels.length - 3
|
|
2429
|
+
]
|
|
2430
|
+
}
|
|
2431
|
+
)
|
|
2432
|
+
]
|
|
2433
|
+
}
|
|
2434
|
+
),
|
|
2435
|
+
/* @__PURE__ */ jsxs(
|
|
2436
|
+
"div",
|
|
2437
|
+
{
|
|
2438
|
+
style: {
|
|
2439
|
+
display: "flex",
|
|
2440
|
+
alignItems: "center",
|
|
2441
|
+
gap: "12px",
|
|
2442
|
+
fontSize: `${theme.fontSizes[0]}px`,
|
|
2443
|
+
color: theme.colors.textSecondary,
|
|
2444
|
+
flexWrap: "wrap"
|
|
2445
|
+
},
|
|
2446
|
+
children: [
|
|
2447
|
+
/* @__PURE__ */ jsxs(
|
|
2448
|
+
"span",
|
|
2449
|
+
{
|
|
2450
|
+
style: {
|
|
2451
|
+
display: "flex",
|
|
2452
|
+
alignItems: "center",
|
|
2453
|
+
gap: "4px"
|
|
2454
|
+
},
|
|
2455
|
+
children: [
|
|
2456
|
+
/* @__PURE__ */ jsx(
|
|
2457
|
+
"img",
|
|
2458
|
+
{
|
|
2459
|
+
src: issue.user.avatar_url,
|
|
2460
|
+
alt: issue.user.login,
|
|
2461
|
+
style: {
|
|
2462
|
+
width: "14px",
|
|
2463
|
+
height: "14px",
|
|
2464
|
+
borderRadius: "50%"
|
|
2465
|
+
}
|
|
2466
|
+
}
|
|
2467
|
+
),
|
|
2468
|
+
issue.user.login
|
|
2469
|
+
]
|
|
2470
|
+
}
|
|
2471
|
+
),
|
|
2472
|
+
/* @__PURE__ */ jsxs(
|
|
2473
|
+
"span",
|
|
2474
|
+
{
|
|
2475
|
+
style: {
|
|
2476
|
+
display: "flex",
|
|
2477
|
+
alignItems: "center",
|
|
2478
|
+
gap: "4px"
|
|
2479
|
+
},
|
|
2480
|
+
children: [
|
|
2481
|
+
/* @__PURE__ */ jsx(Calendar, { size: 12 }),
|
|
2482
|
+
formatDate(issue.created_at)
|
|
2483
|
+
]
|
|
2484
|
+
}
|
|
2485
|
+
),
|
|
2486
|
+
issue.comments > 0 && /* @__PURE__ */ jsxs(
|
|
2487
|
+
"span",
|
|
2488
|
+
{
|
|
2489
|
+
style: {
|
|
2490
|
+
display: "flex",
|
|
2491
|
+
alignItems: "center",
|
|
2492
|
+
gap: "4px"
|
|
2493
|
+
},
|
|
2494
|
+
children: [
|
|
2495
|
+
/* @__PURE__ */ jsx(MessageSquare, { size: 12 }),
|
|
2496
|
+
issue.comments
|
|
2497
|
+
]
|
|
2498
|
+
}
|
|
2499
|
+
)
|
|
2500
|
+
]
|
|
2501
|
+
}
|
|
2502
|
+
)
|
|
2503
|
+
] })
|
|
2504
|
+
]
|
|
2505
|
+
}
|
|
2506
|
+
)
|
|
2507
|
+
},
|
|
2508
|
+
issue.id
|
|
2509
|
+
))
|
|
2510
|
+
}
|
|
2511
|
+
) }),
|
|
2512
|
+
showIssueModal && selectedIssue && /* @__PURE__ */ jsx(
|
|
2513
|
+
"div",
|
|
2514
|
+
{
|
|
2515
|
+
style: {
|
|
2516
|
+
position: "fixed",
|
|
2517
|
+
inset: 0,
|
|
2518
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)",
|
|
2519
|
+
display: "flex",
|
|
2520
|
+
alignItems: "center",
|
|
2521
|
+
justifyContent: "center",
|
|
2522
|
+
zIndex: 1e3
|
|
2523
|
+
},
|
|
2524
|
+
onClick: () => {
|
|
2525
|
+
setShowIssueModal(false);
|
|
2526
|
+
setSelectedIssue(null);
|
|
2527
|
+
},
|
|
2528
|
+
children: /* @__PURE__ */ jsxs(
|
|
2529
|
+
"div",
|
|
2530
|
+
{
|
|
2531
|
+
style: {
|
|
2532
|
+
backgroundColor: theme.colors.background,
|
|
2533
|
+
borderRadius: "12px",
|
|
2534
|
+
width: "90%",
|
|
2535
|
+
maxWidth: "700px",
|
|
2536
|
+
maxHeight: "80vh",
|
|
2537
|
+
display: "flex",
|
|
2538
|
+
flexDirection: "column",
|
|
2539
|
+
boxShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1)",
|
|
2540
|
+
border: `1px solid ${theme.colors.border}`
|
|
2541
|
+
},
|
|
2542
|
+
onClick: (e) => e.stopPropagation(),
|
|
2543
|
+
children: [
|
|
2544
|
+
/* @__PURE__ */ jsxs(
|
|
2545
|
+
"div",
|
|
2546
|
+
{
|
|
2547
|
+
style: {
|
|
2548
|
+
display: "flex",
|
|
2549
|
+
alignItems: "flex-start",
|
|
2550
|
+
justifyContent: "space-between",
|
|
2551
|
+
padding: "20px",
|
|
2552
|
+
borderBottom: `1px solid ${theme.colors.border}`
|
|
2553
|
+
},
|
|
2554
|
+
children: [
|
|
2555
|
+
/* @__PURE__ */ jsxs("div", { style: { flex: 1 }, children: [
|
|
2556
|
+
/* @__PURE__ */ jsxs(
|
|
2557
|
+
"div",
|
|
2558
|
+
{
|
|
2559
|
+
style: {
|
|
2560
|
+
display: "flex",
|
|
2561
|
+
alignItems: "center",
|
|
2562
|
+
gap: "12px",
|
|
2563
|
+
marginBottom: "8px"
|
|
2564
|
+
},
|
|
2565
|
+
children: [
|
|
2566
|
+
/* @__PURE__ */ jsx(
|
|
2567
|
+
"span",
|
|
2568
|
+
{
|
|
2569
|
+
style: {
|
|
2570
|
+
display: "inline-flex",
|
|
2571
|
+
alignItems: "center",
|
|
2572
|
+
padding: "4px 10px",
|
|
2573
|
+
borderRadius: "12px",
|
|
2574
|
+
backgroundColor: selectedIssue.state === "open" ? "#22c55e22" : "#6b728022",
|
|
2575
|
+
color: selectedIssue.state === "open" ? "#22c55e" : "#6b7280",
|
|
2576
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
2577
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2578
|
+
textTransform: "uppercase"
|
|
2579
|
+
},
|
|
2580
|
+
children: selectedIssue.state
|
|
2581
|
+
}
|
|
2582
|
+
),
|
|
2583
|
+
/* @__PURE__ */ jsxs(
|
|
2584
|
+
"span",
|
|
2585
|
+
{
|
|
2586
|
+
style: {
|
|
2587
|
+
color: theme.colors.textSecondary,
|
|
2588
|
+
fontSize: `${theme.fontSizes[2]}px`
|
|
2589
|
+
},
|
|
2590
|
+
children: [
|
|
2591
|
+
"#",
|
|
2592
|
+
selectedIssue.number
|
|
2593
|
+
]
|
|
2594
|
+
}
|
|
2595
|
+
)
|
|
2596
|
+
]
|
|
2597
|
+
}
|
|
2598
|
+
),
|
|
2599
|
+
/* @__PURE__ */ jsx(
|
|
2600
|
+
"h2",
|
|
2601
|
+
{
|
|
2602
|
+
style: {
|
|
2603
|
+
color: theme.colors.text,
|
|
2604
|
+
fontSize: `${theme.fontSizes[4]}px`,
|
|
2605
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2606
|
+
margin: 0
|
|
2607
|
+
},
|
|
2608
|
+
children: selectedIssue.title
|
|
2609
|
+
}
|
|
2610
|
+
)
|
|
2611
|
+
] }),
|
|
2612
|
+
/* @__PURE__ */ jsx(
|
|
2613
|
+
"button",
|
|
2614
|
+
{
|
|
2615
|
+
type: "button",
|
|
2616
|
+
onClick: () => {
|
|
2617
|
+
setShowIssueModal(false);
|
|
2618
|
+
setSelectedIssue(null);
|
|
2619
|
+
},
|
|
2620
|
+
style: {
|
|
2621
|
+
background: "none",
|
|
2622
|
+
border: "none",
|
|
2623
|
+
color: theme.colors.textSecondary,
|
|
2624
|
+
cursor: "pointer",
|
|
2625
|
+
padding: "8px"
|
|
2626
|
+
},
|
|
2627
|
+
children: /* @__PURE__ */ jsx(X, { size: 20 })
|
|
1401
2628
|
}
|
|
1402
|
-
)
|
|
1403
|
-
|
|
1404
|
-
|
|
2629
|
+
)
|
|
2630
|
+
]
|
|
2631
|
+
}
|
|
2632
|
+
),
|
|
2633
|
+
/* @__PURE__ */ jsxs(
|
|
2634
|
+
"div",
|
|
2635
|
+
{
|
|
2636
|
+
style: {
|
|
2637
|
+
flex: 1,
|
|
2638
|
+
overflow: "auto",
|
|
2639
|
+
padding: "20px"
|
|
2640
|
+
},
|
|
2641
|
+
children: [
|
|
2642
|
+
/* @__PURE__ */ jsxs(
|
|
2643
|
+
"div",
|
|
1405
2644
|
{
|
|
1406
2645
|
style: {
|
|
2646
|
+
display: "flex",
|
|
2647
|
+
alignItems: "center",
|
|
2648
|
+
gap: "20px",
|
|
2649
|
+
marginBottom: "20px",
|
|
1407
2650
|
fontSize: `${theme.fontSizes[2]}px`,
|
|
1408
|
-
|
|
1409
|
-
|
|
2651
|
+
color: theme.colors.textSecondary,
|
|
2652
|
+
flexWrap: "wrap"
|
|
1410
2653
|
},
|
|
1411
|
-
children:
|
|
2654
|
+
children: [
|
|
2655
|
+
/* @__PURE__ */ jsxs(
|
|
2656
|
+
"span",
|
|
2657
|
+
{
|
|
2658
|
+
style: { display: "flex", alignItems: "center", gap: "6px" },
|
|
2659
|
+
children: [
|
|
2660
|
+
/* @__PURE__ */ jsx(
|
|
2661
|
+
"img",
|
|
2662
|
+
{
|
|
2663
|
+
src: selectedIssue.user.avatar_url,
|
|
2664
|
+
alt: selectedIssue.user.login,
|
|
2665
|
+
style: {
|
|
2666
|
+
width: "20px",
|
|
2667
|
+
height: "20px",
|
|
2668
|
+
borderRadius: "50%"
|
|
2669
|
+
}
|
|
2670
|
+
}
|
|
2671
|
+
),
|
|
2672
|
+
/* @__PURE__ */ jsx("strong", { style: { color: theme.colors.text }, children: selectedIssue.user.login }),
|
|
2673
|
+
" ",
|
|
2674
|
+
"opened"
|
|
2675
|
+
]
|
|
2676
|
+
}
|
|
2677
|
+
),
|
|
2678
|
+
/* @__PURE__ */ jsxs(
|
|
2679
|
+
"span",
|
|
2680
|
+
{
|
|
2681
|
+
style: { display: "flex", alignItems: "center", gap: "4px" },
|
|
2682
|
+
children: [
|
|
2683
|
+
/* @__PURE__ */ jsx(Calendar, { size: 14 }),
|
|
2684
|
+
formatDate(selectedIssue.created_at)
|
|
2685
|
+
]
|
|
2686
|
+
}
|
|
2687
|
+
),
|
|
2688
|
+
selectedIssue.comments > 0 && /* @__PURE__ */ jsxs(
|
|
2689
|
+
"span",
|
|
2690
|
+
{
|
|
2691
|
+
style: {
|
|
2692
|
+
display: "flex",
|
|
2693
|
+
alignItems: "center",
|
|
2694
|
+
gap: "4px"
|
|
2695
|
+
},
|
|
2696
|
+
children: [
|
|
2697
|
+
/* @__PURE__ */ jsx(MessageSquare, { size: 14 }),
|
|
2698
|
+
selectedIssue.comments,
|
|
2699
|
+
" ",
|
|
2700
|
+
selectedIssue.comments === 1 ? "comment" : "comments"
|
|
2701
|
+
]
|
|
2702
|
+
}
|
|
2703
|
+
)
|
|
2704
|
+
]
|
|
1412
2705
|
}
|
|
1413
2706
|
),
|
|
1414
|
-
|
|
1415
|
-
"
|
|
2707
|
+
selectedIssue.labels.length > 0 && /* @__PURE__ */ jsx(
|
|
2708
|
+
"div",
|
|
1416
2709
|
{
|
|
1417
2710
|
style: {
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
color: theme.colors.textSecondary
|
|
2711
|
+
display: "flex",
|
|
2712
|
+
flexWrap: "wrap",
|
|
2713
|
+
gap: "8px",
|
|
2714
|
+
marginBottom: "20px"
|
|
1423
2715
|
},
|
|
1424
|
-
children:
|
|
2716
|
+
children: selectedIssue.labels.map((label) => /* @__PURE__ */ jsxs(
|
|
2717
|
+
"span",
|
|
2718
|
+
{
|
|
2719
|
+
style: {
|
|
2720
|
+
display: "inline-flex",
|
|
2721
|
+
alignItems: "center",
|
|
2722
|
+
gap: "6px",
|
|
2723
|
+
padding: "4px 12px",
|
|
2724
|
+
borderRadius: "16px",
|
|
2725
|
+
backgroundColor: `#${label.color}22`,
|
|
2726
|
+
color: `#${label.color}`,
|
|
2727
|
+
fontSize: `${theme.fontSizes[1]}px`,
|
|
2728
|
+
fontWeight: theme.fontWeights.medium
|
|
2729
|
+
},
|
|
2730
|
+
children: [
|
|
2731
|
+
/* @__PURE__ */ jsx(Tag, { size: 12 }),
|
|
2732
|
+
label.name
|
|
2733
|
+
]
|
|
2734
|
+
},
|
|
2735
|
+
label.id
|
|
2736
|
+
))
|
|
2737
|
+
}
|
|
2738
|
+
),
|
|
2739
|
+
selectedIssue.body && /* @__PURE__ */ jsxs(
|
|
2740
|
+
"div",
|
|
2741
|
+
{
|
|
2742
|
+
style: {
|
|
2743
|
+
backgroundColor: theme.colors.backgroundSecondary,
|
|
2744
|
+
borderRadius: "8px",
|
|
2745
|
+
padding: "16px",
|
|
2746
|
+
border: `1px solid ${theme.colors.border}`
|
|
2747
|
+
},
|
|
2748
|
+
children: [
|
|
2749
|
+
/* @__PURE__ */ jsx(
|
|
2750
|
+
"h3",
|
|
2751
|
+
{
|
|
2752
|
+
style: {
|
|
2753
|
+
color: theme.colors.text,
|
|
2754
|
+
fontSize: `${theme.fontSizes[2]}px`,
|
|
2755
|
+
fontWeight: theme.fontWeights.semibold,
|
|
2756
|
+
marginTop: 0,
|
|
2757
|
+
marginBottom: "12px"
|
|
2758
|
+
},
|
|
2759
|
+
children: "Description"
|
|
2760
|
+
}
|
|
2761
|
+
),
|
|
2762
|
+
/* @__PURE__ */ jsx(
|
|
2763
|
+
"div",
|
|
2764
|
+
{
|
|
2765
|
+
style: {
|
|
2766
|
+
color: theme.colors.text,
|
|
2767
|
+
fontSize: `${theme.fontSizes[2]}px`,
|
|
2768
|
+
lineHeight: 1.6,
|
|
2769
|
+
whiteSpace: "pre-wrap",
|
|
2770
|
+
wordBreak: "break-word"
|
|
2771
|
+
},
|
|
2772
|
+
children: selectedIssue.body
|
|
2773
|
+
}
|
|
2774
|
+
)
|
|
2775
|
+
]
|
|
1425
2776
|
}
|
|
1426
2777
|
)
|
|
1427
|
-
]
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
),
|
|
1444
|
-
/* @__PURE__ */ jsxs(
|
|
1445
|
-
"div",
|
|
2778
|
+
]
|
|
2779
|
+
}
|
|
2780
|
+
),
|
|
2781
|
+
/* @__PURE__ */ jsx(
|
|
2782
|
+
"div",
|
|
2783
|
+
{
|
|
2784
|
+
style: {
|
|
2785
|
+
display: "flex",
|
|
2786
|
+
alignItems: "center",
|
|
2787
|
+
justifyContent: "flex-end",
|
|
2788
|
+
padding: "16px 20px",
|
|
2789
|
+
borderTop: `1px solid ${theme.colors.border}`,
|
|
2790
|
+
gap: "12px"
|
|
2791
|
+
},
|
|
2792
|
+
children: /* @__PURE__ */ jsxs(
|
|
2793
|
+
"a",
|
|
1446
2794
|
{
|
|
2795
|
+
href: selectedIssue.html_url,
|
|
2796
|
+
target: "_blank",
|
|
2797
|
+
rel: "noopener noreferrer",
|
|
1447
2798
|
style: {
|
|
1448
2799
|
display: "flex",
|
|
1449
2800
|
alignItems: "center",
|
|
1450
|
-
gap: "
|
|
1451
|
-
|
|
1452
|
-
|
|
2801
|
+
gap: "6px",
|
|
2802
|
+
padding: "8px 16px",
|
|
2803
|
+
borderRadius: "6px",
|
|
2804
|
+
border: "none",
|
|
2805
|
+
backgroundColor: theme.colors.primary,
|
|
2806
|
+
color: theme.colors.background,
|
|
2807
|
+
fontSize: `${theme.fontSizes[2]}px`,
|
|
2808
|
+
fontWeight: theme.fontWeights.medium,
|
|
2809
|
+
textDecoration: "none"
|
|
1453
2810
|
},
|
|
1454
2811
|
children: [
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
"span",
|
|
1458
|
-
{
|
|
1459
|
-
style: {
|
|
1460
|
-
width: 10,
|
|
1461
|
-
height: 10,
|
|
1462
|
-
borderRadius: "50%",
|
|
1463
|
-
backgroundColor: theme.colors.info
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
),
|
|
1467
|
-
repo.language
|
|
1468
|
-
] }),
|
|
1469
|
-
/* @__PURE__ */ jsxs("span", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
1470
|
-
/* @__PURE__ */ jsx(Star, { size: 14 }),
|
|
1471
|
-
formatNumber(repo.stargazers_count || 0)
|
|
1472
|
-
] }),
|
|
1473
|
-
/* @__PURE__ */ jsxs("span", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
1474
|
-
/* @__PURE__ */ jsx(GitFork, { size: 14 }),
|
|
1475
|
-
formatNumber(repo.forks_count || 0)
|
|
1476
|
-
] }),
|
|
1477
|
-
/* @__PURE__ */ jsx(
|
|
1478
|
-
"a",
|
|
1479
|
-
{
|
|
1480
|
-
href: repo.html_url,
|
|
1481
|
-
target: "_blank",
|
|
1482
|
-
rel: "noopener noreferrer",
|
|
1483
|
-
onClick: (e) => e.stopPropagation(),
|
|
1484
|
-
style: {
|
|
1485
|
-
marginLeft: "auto",
|
|
1486
|
-
color: theme.colors.textSecondary,
|
|
1487
|
-
display: "flex",
|
|
1488
|
-
alignItems: "center"
|
|
1489
|
-
},
|
|
1490
|
-
children: /* @__PURE__ */ jsx(ExternalLink, { size: 14 })
|
|
1491
|
-
}
|
|
1492
|
-
)
|
|
2812
|
+
/* @__PURE__ */ jsx(ExternalLink, { size: 14 }),
|
|
2813
|
+
"View on GitHub"
|
|
1493
2814
|
]
|
|
1494
2815
|
}
|
|
1495
2816
|
)
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
]
|
|
2817
|
+
}
|
|
2818
|
+
)
|
|
2819
|
+
]
|
|
2820
|
+
}
|
|
2821
|
+
)
|
|
1502
2822
|
}
|
|
1503
2823
|
),
|
|
1504
2824
|
/* @__PURE__ */ jsx("style", { children: `
|
|
1505
2825
|
@keyframes spin {
|
|
1506
2826
|
to { transform: rotate(360deg); }
|
|
1507
2827
|
}
|
|
2828
|
+
.animate-spin {
|
|
2829
|
+
animation: spin 1s linear infinite;
|
|
2830
|
+
}
|
|
1508
2831
|
` })
|
|
1509
2832
|
]
|
|
1510
2833
|
}
|
|
1511
2834
|
);
|
|
1512
2835
|
};
|
|
1513
|
-
const
|
|
1514
|
-
return /* @__PURE__ */ jsx(
|
|
2836
|
+
const GitHubIssuesPanel = (props) => {
|
|
2837
|
+
return /* @__PURE__ */ jsx(GitHubIssuesPanelContent, { ...props });
|
|
1515
2838
|
};
|
|
1516
|
-
const
|
|
1517
|
-
id: "github-
|
|
1518
|
-
name: "GitHub
|
|
1519
|
-
description: "
|
|
1520
|
-
icon: "
|
|
2839
|
+
const GitHubIssuesPanelMetadata = {
|
|
2840
|
+
id: "github-issues",
|
|
2841
|
+
name: "GitHub Issues",
|
|
2842
|
+
description: "View and manage GitHub repository issues",
|
|
2843
|
+
icon: "circle-dot",
|
|
1521
2844
|
version: "0.1.0",
|
|
1522
|
-
slices: [],
|
|
2845
|
+
slices: ["github-issues"],
|
|
1523
2846
|
surfaces: ["panel"]
|
|
1524
2847
|
};
|
|
1525
2848
|
const OwnerRepositoriesPanelContent = ({
|
|
@@ -2773,6 +4096,20 @@ const RecentRepositoriesPanelMetadata = {
|
|
|
2773
4096
|
slices: [],
|
|
2774
4097
|
surfaces: ["panel"]
|
|
2775
4098
|
};
|
|
4099
|
+
const iconMap = {
|
|
4100
|
+
Sparkles,
|
|
4101
|
+
Wrench,
|
|
4102
|
+
Atom,
|
|
4103
|
+
Cog,
|
|
4104
|
+
Cpu,
|
|
4105
|
+
Zap,
|
|
4106
|
+
Code,
|
|
4107
|
+
Layers,
|
|
4108
|
+
Box,
|
|
4109
|
+
FolderOpen,
|
|
4110
|
+
BookOpen,
|
|
4111
|
+
Network
|
|
4112
|
+
};
|
|
2776
4113
|
function parseGitHubInput(input) {
|
|
2777
4114
|
const trimmed = input.trim();
|
|
2778
4115
|
const urlMatch = trimmed.match(/github\.com\/([^/]+)\/([^/]+)/);
|
|
@@ -2881,23 +4218,24 @@ const defaultHighlightedProjects = [
|
|
|
2881
4218
|
{ owner: "facebook", repo: "react" },
|
|
2882
4219
|
{ owner: "vercel", repo: "next.js" }
|
|
2883
4220
|
];
|
|
2884
|
-
const
|
|
2885
|
-
const
|
|
4221
|
+
const CollectionCard = ({ collection, theme, onClick }) => {
|
|
4222
|
+
const IconComponent = collection.icon && iconMap[collection.icon] || FolderOpen;
|
|
2886
4223
|
return /* @__PURE__ */ jsxs(
|
|
2887
4224
|
"button",
|
|
2888
4225
|
{
|
|
2889
4226
|
onClick,
|
|
2890
4227
|
style: {
|
|
2891
|
-
padding: "
|
|
4228
|
+
padding: "20px 24px",
|
|
2892
4229
|
borderRadius: "12px",
|
|
2893
4230
|
backgroundColor: theme.colors.surface,
|
|
2894
4231
|
border: `1px solid ${theme.colors.border}`,
|
|
2895
4232
|
display: "flex",
|
|
2896
4233
|
alignItems: "center",
|
|
2897
|
-
gap: "
|
|
4234
|
+
gap: "16px",
|
|
2898
4235
|
cursor: "pointer",
|
|
2899
4236
|
transition: "all 0.2s ease",
|
|
2900
|
-
minWidth: "
|
|
4237
|
+
minWidth: "280px",
|
|
4238
|
+
maxWidth: "320px",
|
|
2901
4239
|
textAlign: "left"
|
|
2902
4240
|
},
|
|
2903
4241
|
onMouseEnter: (e) => {
|
|
@@ -2910,16 +4248,20 @@ const OrganizationCard = ({ org, theme, onClick }) => {
|
|
|
2910
4248
|
},
|
|
2911
4249
|
children: [
|
|
2912
4250
|
/* @__PURE__ */ jsx(
|
|
2913
|
-
"
|
|
4251
|
+
"div",
|
|
2914
4252
|
{
|
|
2915
|
-
src: `https://github.com/${org.login}.png?size=64`,
|
|
2916
|
-
alt: org.login,
|
|
2917
4253
|
style: {
|
|
2918
|
-
width:
|
|
2919
|
-
height:
|
|
2920
|
-
borderRadius: "
|
|
4254
|
+
width: 48,
|
|
4255
|
+
height: 48,
|
|
4256
|
+
borderRadius: "10px",
|
|
4257
|
+
backgroundColor: `${theme.colors.primary}15`,
|
|
4258
|
+
display: "flex",
|
|
4259
|
+
alignItems: "center",
|
|
4260
|
+
justifyContent: "center",
|
|
4261
|
+
color: theme.colors.primary,
|
|
2921
4262
|
flexShrink: 0
|
|
2922
|
-
}
|
|
4263
|
+
},
|
|
4264
|
+
children: /* @__PURE__ */ jsx(IconComponent, { size: 24 })
|
|
2923
4265
|
}
|
|
2924
4266
|
),
|
|
2925
4267
|
/* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -2930,12 +4272,12 @@ const OrganizationCard = ({ org, theme, onClick }) => {
|
|
|
2930
4272
|
fontSize: `${theme.fontSizes[2]}px`,
|
|
2931
4273
|
fontWeight: theme.fontWeights.semibold,
|
|
2932
4274
|
color: theme.colors.text,
|
|
2933
|
-
marginBottom:
|
|
4275
|
+
marginBottom: "4px"
|
|
2934
4276
|
},
|
|
2935
|
-
children:
|
|
4277
|
+
children: collection.name
|
|
2936
4278
|
}
|
|
2937
4279
|
),
|
|
2938
|
-
|
|
4280
|
+
/* @__PURE__ */ jsx(
|
|
2939
4281
|
"div",
|
|
2940
4282
|
{
|
|
2941
4283
|
style: {
|
|
@@ -2945,10 +4287,25 @@ const OrganizationCard = ({ org, theme, onClick }) => {
|
|
|
2945
4287
|
textOverflow: "ellipsis",
|
|
2946
4288
|
whiteSpace: "nowrap"
|
|
2947
4289
|
},
|
|
2948
|
-
children:
|
|
4290
|
+
children: collection.description
|
|
4291
|
+
}
|
|
4292
|
+
),
|
|
4293
|
+
collection.repositoryCount !== void 0 && /* @__PURE__ */ jsxs(
|
|
4294
|
+
"div",
|
|
4295
|
+
{
|
|
4296
|
+
style: {
|
|
4297
|
+
fontSize: `${theme.fontSizes[0]}px`,
|
|
4298
|
+
color: theme.colors.textSecondary,
|
|
4299
|
+
marginTop: "4px"
|
|
4300
|
+
},
|
|
4301
|
+
children: [
|
|
4302
|
+
collection.repositoryCount,
|
|
4303
|
+
" repositories"
|
|
4304
|
+
]
|
|
2949
4305
|
}
|
|
2950
4306
|
)
|
|
2951
|
-
] })
|
|
4307
|
+
] }),
|
|
4308
|
+
/* @__PURE__ */ jsx(ChevronRight, { size: 20, style: { color: theme.colors.textSecondary, flexShrink: 0 } })
|
|
2952
4309
|
]
|
|
2953
4310
|
}
|
|
2954
4311
|
);
|
|
@@ -2956,8 +4313,8 @@ const OrganizationCard = ({ org, theme, onClick }) => {
|
|
|
2956
4313
|
const WelcomePanel = ({
|
|
2957
4314
|
onNavigate,
|
|
2958
4315
|
highlightedProjects = defaultHighlightedProjects,
|
|
2959
|
-
|
|
2960
|
-
|
|
4316
|
+
curatedCollections = [],
|
|
4317
|
+
onCollectionClick
|
|
2961
4318
|
}) => {
|
|
2962
4319
|
const { theme } = useTheme();
|
|
2963
4320
|
const [repoInput, setRepoInput] = useState("");
|
|
@@ -2983,13 +4340,11 @@ const WelcomePanel = ({
|
|
|
2983
4340
|
window.location.href = `/${project.owner}/${project.repo}`;
|
|
2984
4341
|
}
|
|
2985
4342
|
}, [onNavigate]);
|
|
2986
|
-
const
|
|
2987
|
-
if (
|
|
2988
|
-
|
|
2989
|
-
} else {
|
|
2990
|
-
window.open(`https://github.com/${org.login}`, "_blank");
|
|
4343
|
+
const handleCollectionClick = useCallback((collection) => {
|
|
4344
|
+
if (onCollectionClick) {
|
|
4345
|
+
onCollectionClick(collection.id);
|
|
2991
4346
|
}
|
|
2992
|
-
}, [
|
|
4347
|
+
}, [onCollectionClick]);
|
|
2993
4348
|
return /* @__PURE__ */ jsxs(
|
|
2994
4349
|
"div",
|
|
2995
4350
|
{
|
|
@@ -3003,7 +4358,7 @@ const WelcomePanel = ({
|
|
|
3003
4358
|
overflowY: "auto"
|
|
3004
4359
|
},
|
|
3005
4360
|
children: [
|
|
3006
|
-
|
|
4361
|
+
curatedCollections.length > 0 && /* @__PURE__ */ jsxs(
|
|
3007
4362
|
"div",
|
|
3008
4363
|
{
|
|
3009
4364
|
style: {
|
|
@@ -3011,7 +4366,7 @@ const WelcomePanel = ({
|
|
|
3011
4366
|
display: "flex",
|
|
3012
4367
|
flexDirection: "column",
|
|
3013
4368
|
alignItems: "center",
|
|
3014
|
-
gap: "
|
|
4369
|
+
gap: "24px",
|
|
3015
4370
|
borderBottom: `1px solid ${theme.colors.border}`
|
|
3016
4371
|
},
|
|
3017
4372
|
children: [
|
|
@@ -3025,7 +4380,7 @@ const WelcomePanel = ({
|
|
|
3025
4380
|
color: theme.colors.textSecondary,
|
|
3026
4381
|
textAlign: "center"
|
|
3027
4382
|
},
|
|
3028
|
-
children: "Explore
|
|
4383
|
+
children: "Explore Curated Collections"
|
|
3029
4384
|
}
|
|
3030
4385
|
),
|
|
3031
4386
|
/* @__PURE__ */ jsx(
|
|
@@ -3035,16 +4390,17 @@ const WelcomePanel = ({
|
|
|
3035
4390
|
display: "flex",
|
|
3036
4391
|
gap: "16px",
|
|
3037
4392
|
flexWrap: "wrap",
|
|
3038
|
-
justifyContent: "center"
|
|
4393
|
+
justifyContent: "center",
|
|
4394
|
+
maxWidth: "1200px"
|
|
3039
4395
|
},
|
|
3040
|
-
children:
|
|
3041
|
-
|
|
4396
|
+
children: curatedCollections.map((collection) => /* @__PURE__ */ jsx(
|
|
4397
|
+
CollectionCard,
|
|
3042
4398
|
{
|
|
3043
|
-
|
|
4399
|
+
collection,
|
|
3044
4400
|
theme,
|
|
3045
|
-
onClick: () =>
|
|
4401
|
+
onClick: () => handleCollectionClick(collection)
|
|
3046
4402
|
},
|
|
3047
|
-
|
|
4403
|
+
collection.id
|
|
3048
4404
|
))
|
|
3049
4405
|
}
|
|
3050
4406
|
)
|
|
@@ -3377,13 +4733,55 @@ const requestGitHubLoginTool = {
|
|
|
3377
4733
|
event_type: "github:login-requested"
|
|
3378
4734
|
}
|
|
3379
4735
|
};
|
|
4736
|
+
const listIssuesTool = {
|
|
4737
|
+
name: "list_issues",
|
|
4738
|
+
description: "Get a list of GitHub issues for the current repository.",
|
|
4739
|
+
inputs: {
|
|
4740
|
+
type: "object",
|
|
4741
|
+
properties: {},
|
|
4742
|
+
required: []
|
|
4743
|
+
},
|
|
4744
|
+
outputs: {
|
|
4745
|
+
type: "object",
|
|
4746
|
+
properties: {
|
|
4747
|
+
success: { type: "boolean" }
|
|
4748
|
+
}
|
|
4749
|
+
},
|
|
4750
|
+
tags: ["github", "issues", "list", "browse"],
|
|
4751
|
+
tool_call_template: {
|
|
4752
|
+
call_template_type: "panel_event",
|
|
4753
|
+
event_type: "github-issues:request"
|
|
4754
|
+
}
|
|
4755
|
+
};
|
|
4756
|
+
const refreshIssuesTool = {
|
|
4757
|
+
name: "refresh_issues",
|
|
4758
|
+
description: "Refresh the list of GitHub issues for the current repository.",
|
|
4759
|
+
inputs: {
|
|
4760
|
+
type: "object",
|
|
4761
|
+
properties: {},
|
|
4762
|
+
required: []
|
|
4763
|
+
},
|
|
4764
|
+
outputs: {
|
|
4765
|
+
type: "object",
|
|
4766
|
+
properties: {
|
|
4767
|
+
success: { type: "boolean" }
|
|
4768
|
+
}
|
|
4769
|
+
},
|
|
4770
|
+
tags: ["github", "issues", "refresh", "update"],
|
|
4771
|
+
tool_call_template: {
|
|
4772
|
+
call_template_type: "panel_event",
|
|
4773
|
+
event_type: "github-issues:refresh"
|
|
4774
|
+
}
|
|
4775
|
+
};
|
|
3380
4776
|
const githubTools = [
|
|
3381
4777
|
listRepositoriesTool,
|
|
3382
4778
|
selectRepositoryTool,
|
|
3383
4779
|
previewRepositoryTool,
|
|
3384
4780
|
searchRepositoriesTool,
|
|
3385
4781
|
openRepositorySwitcherTool,
|
|
3386
|
-
requestGitHubLoginTool
|
|
4782
|
+
requestGitHubLoginTool,
|
|
4783
|
+
listIssuesTool,
|
|
4784
|
+
refreshIssuesTool
|
|
3387
4785
|
];
|
|
3388
4786
|
const githubToolsMetadata = {
|
|
3389
4787
|
id: "github-panels",
|
|
@@ -3420,6 +4818,20 @@ const panels = [
|
|
|
3420
4818
|
console.log("GitHub Search Panel unmounting");
|
|
3421
4819
|
}
|
|
3422
4820
|
},
|
|
4821
|
+
{
|
|
4822
|
+
metadata: GitHubIssuesPanelMetadata,
|
|
4823
|
+
component: GitHubIssuesPanel,
|
|
4824
|
+
onMount: async (context) => {
|
|
4825
|
+
console.log("GitHub Issues Panel mounted");
|
|
4826
|
+
const slice = context.getSlice("github-issues");
|
|
4827
|
+
if (slice && !slice.loading) {
|
|
4828
|
+
await slice.refresh();
|
|
4829
|
+
}
|
|
4830
|
+
},
|
|
4831
|
+
onUnmount: async (_context) => {
|
|
4832
|
+
console.log("GitHub Issues Panel unmounting");
|
|
4833
|
+
}
|
|
4834
|
+
},
|
|
3423
4835
|
{
|
|
3424
4836
|
metadata: OwnerRepositoriesPanelMetadata,
|
|
3425
4837
|
component: OwnerRepositoriesPanel,
|
|
@@ -3458,6 +4870,7 @@ const onPackageUnload = async () => {
|
|
|
3458
4870
|
console.log("Panel package unloading - GitHub Panels Extension");
|
|
3459
4871
|
};
|
|
3460
4872
|
export {
|
|
4873
|
+
GitHubIssuesPanel,
|
|
3461
4874
|
GitHubProjectCard,
|
|
3462
4875
|
GitHubProjectsPanel,
|
|
3463
4876
|
GitHubSearchPanel,
|
|
@@ -3468,12 +4881,14 @@ export {
|
|
|
3468
4881
|
addRecentRepository,
|
|
3469
4882
|
githubTools,
|
|
3470
4883
|
githubToolsMetadata,
|
|
4884
|
+
listIssuesTool,
|
|
3471
4885
|
listRepositoriesTool,
|
|
3472
4886
|
onPackageLoad,
|
|
3473
4887
|
onPackageUnload,
|
|
3474
4888
|
openRepositorySwitcherTool,
|
|
3475
4889
|
panels,
|
|
3476
4890
|
previewRepositoryTool,
|
|
4891
|
+
refreshIssuesTool,
|
|
3477
4892
|
requestGitHubLoginTool,
|
|
3478
4893
|
searchRepositoriesTool,
|
|
3479
4894
|
selectRepositoryTool
|