@industry-theme/github-panels 0.1.41 → 0.1.43

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.
@@ -130,7 +130,7 @@ const createLucideIcon = (iconName, iconNode) => {
130
130
  * This source code is licensed under the ISC license.
131
131
  * See the LICENSE file in the root directory of this source tree.
132
132
  */
133
- const __iconNode$w = [
133
+ const __iconNode$E = [
134
134
  ["path", { d: "M12 7v14", key: "1akyts" }],
135
135
  [
136
136
  "path",
@@ -140,14 +140,14 @@ const __iconNode$w = [
140
140
  }
141
141
  ]
142
142
  ];
143
- const BookOpen = createLucideIcon("book-open", __iconNode$w);
143
+ const BookOpen = createLucideIcon("book-open", __iconNode$E);
144
144
  /**
145
145
  * @license lucide-react v0.552.0 - ISC
146
146
  *
147
147
  * This source code is licensed under the ISC license.
148
148
  * See the LICENSE file in the root directory of this source tree.
149
149
  */
150
- const __iconNode$v = [
150
+ const __iconNode$D = [
151
151
  ["path", { d: "M10 12h4", key: "a56b0p" }],
152
152
  ["path", { d: "M10 8h4", key: "1sr2af" }],
153
153
  ["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
@@ -160,86 +160,97 @@ const __iconNode$v = [
160
160
  ],
161
161
  ["path", { d: "M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16", key: "16ra0t" }]
162
162
  ];
163
- const Building2 = createLucideIcon("building-2", __iconNode$v);
163
+ const Building2 = createLucideIcon("building-2", __iconNode$D);
164
164
  /**
165
165
  * @license lucide-react v0.552.0 - ISC
166
166
  *
167
167
  * This source code is licensed under the ISC license.
168
168
  * See the LICENSE file in the root directory of this source tree.
169
169
  */
170
- const __iconNode$u = [
170
+ const __iconNode$C = [
171
171
  ["path", { d: "M8 2v4", key: "1cmpym" }],
172
172
  ["path", { d: "M16 2v4", key: "4m81vk" }],
173
173
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
174
174
  ["path", { d: "M3 10h18", key: "8toen8" }]
175
175
  ];
176
- const Calendar = createLucideIcon("calendar", __iconNode$u);
176
+ const Calendar = createLucideIcon("calendar", __iconNode$C);
177
177
  /**
178
178
  * @license lucide-react v0.552.0 - ISC
179
179
  *
180
180
  * This source code is licensed under the ISC license.
181
181
  * See the LICENSE file in the root directory of this source tree.
182
182
  */
183
- const __iconNode$t = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
184
- const Check = createLucideIcon("check", __iconNode$t);
183
+ const __iconNode$B = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
184
+ const Check = createLucideIcon("check", __iconNode$B);
185
185
  /**
186
186
  * @license lucide-react v0.552.0 - ISC
187
187
  *
188
188
  * This source code is licensed under the ISC license.
189
189
  * See the LICENSE file in the root directory of this source tree.
190
190
  */
191
- const __iconNode$s = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
192
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$s);
191
+ const __iconNode$A = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
192
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$A);
193
193
  /**
194
194
  * @license lucide-react v0.552.0 - ISC
195
195
  *
196
196
  * This source code is licensed under the ISC license.
197
197
  * See the LICENSE file in the root directory of this source tree.
198
198
  */
199
- const __iconNode$r = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
200
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$r);
199
+ const __iconNode$z = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
200
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$z);
201
201
  /**
202
202
  * @license lucide-react v0.552.0 - ISC
203
203
  *
204
204
  * This source code is licensed under the ISC license.
205
205
  * See the LICENSE file in the root directory of this source tree.
206
206
  */
207
- const __iconNode$q = [
207
+ const __iconNode$y = [
208
208
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
209
209
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
210
210
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
211
211
  ];
212
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$q);
212
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$y);
213
213
  /**
214
214
  * @license lucide-react v0.552.0 - ISC
215
215
  *
216
216
  * This source code is licensed under the ISC license.
217
217
  * See the LICENSE file in the root directory of this source tree.
218
218
  */
219
- const __iconNode$p = [
219
+ const __iconNode$x = [
220
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
221
+ ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }]
222
+ ];
223
+ const CircleDot = createLucideIcon("circle-dot", __iconNode$x);
224
+ /**
225
+ * @license lucide-react v0.552.0 - ISC
226
+ *
227
+ * This source code is licensed under the ISC license.
228
+ * See the LICENSE file in the root directory of this source tree.
229
+ */
230
+ const __iconNode$w = [
220
231
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
221
232
  ["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" }]
222
233
  ];
223
- const Copy = createLucideIcon("copy", __iconNode$p);
234
+ const Copy = createLucideIcon("copy", __iconNode$w);
224
235
  /**
225
236
  * @license lucide-react v0.552.0 - ISC
226
237
  *
227
238
  * This source code is licensed under the ISC license.
228
239
  * See the LICENSE file in the root directory of this source tree.
229
240
  */
230
- const __iconNode$o = [
241
+ const __iconNode$v = [
231
242
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
232
243
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
233
244
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
234
245
  ];
235
- const Download = createLucideIcon("download", __iconNode$o);
246
+ const Download = createLucideIcon("download", __iconNode$v);
236
247
  /**
237
248
  * @license lucide-react v0.552.0 - ISC
238
249
  *
239
250
  * This source code is licensed under the ISC license.
240
251
  * See the LICENSE file in the root directory of this source tree.
241
252
  */
242
- const __iconNode$n = [
253
+ const __iconNode$u = [
243
254
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
244
255
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
245
256
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
@@ -249,26 +260,43 @@ const __iconNode$n = [
249
260
  ["path", { d: "M3 8V3h5", key: "1ln10m" }],
250
261
  ["path", { d: "M9 9 3 3", key: "v551iv" }]
251
262
  ];
252
- const Expand = createLucideIcon("expand", __iconNode$n);
263
+ const Expand = createLucideIcon("expand", __iconNode$u);
253
264
  /**
254
265
  * @license lucide-react v0.552.0 - ISC
255
266
  *
256
267
  * This source code is licensed under the ISC license.
257
268
  * See the LICENSE file in the root directory of this source tree.
258
269
  */
259
- const __iconNode$m = [
270
+ const __iconNode$t = [
260
271
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
261
272
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
262
273
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
263
274
  ];
264
- const ExternalLink = createLucideIcon("external-link", __iconNode$m);
275
+ const ExternalLink = createLucideIcon("external-link", __iconNode$t);
265
276
  /**
266
277
  * @license lucide-react v0.552.0 - ISC
267
278
  *
268
279
  * This source code is licensed under the ISC license.
269
280
  * See the LICENSE file in the root directory of this source tree.
270
281
  */
271
- const __iconNode$l = [
282
+ const __iconNode$s = [
283
+ [
284
+ "path",
285
+ {
286
+ d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
287
+ key: "1nclc0"
288
+ }
289
+ ],
290
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
291
+ ];
292
+ const Eye = createLucideIcon("eye", __iconNode$s);
293
+ /**
294
+ * @license lucide-react v0.552.0 - ISC
295
+ *
296
+ * This source code is licensed under the ISC license.
297
+ * See the LICENSE file in the root directory of this source tree.
298
+ */
299
+ const __iconNode$r = [
272
300
  [
273
301
  "path",
274
302
  {
@@ -281,14 +309,14 @@ const __iconNode$l = [
281
309
  ["path", { d: "M16 13H8", key: "t4e002" }],
282
310
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
283
311
  ];
284
- const FileText = createLucideIcon("file-text", __iconNode$l);
312
+ const FileText = createLucideIcon("file-text", __iconNode$r);
285
313
  /**
286
314
  * @license lucide-react v0.552.0 - ISC
287
315
  *
288
316
  * This source code is licensed under the ISC license.
289
317
  * See the LICENSE file in the root directory of this source tree.
290
318
  */
291
- const __iconNode$k = [
319
+ const __iconNode$q = [
292
320
  [
293
321
  "path",
294
322
  {
@@ -297,14 +325,14 @@ const __iconNode$k = [
297
325
  }
298
326
  ]
299
327
  ];
300
- const FolderOpen = createLucideIcon("folder-open", __iconNode$k);
328
+ const FolderOpen = createLucideIcon("folder-open", __iconNode$q);
301
329
  /**
302
330
  * @license lucide-react v0.552.0 - ISC
303
331
  *
304
332
  * This source code is licensed under the ISC license.
305
333
  * See the LICENSE file in the root directory of this source tree.
306
334
  */
307
- const __iconNode$j = [
335
+ const __iconNode$p = [
308
336
  ["path", { d: "M12 10v6", key: "1bos4e" }],
309
337
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
310
338
  [
@@ -315,14 +343,14 @@ const __iconNode$j = [
315
343
  }
316
344
  ]
317
345
  ];
318
- const FolderPlus = createLucideIcon("folder-plus", __iconNode$j);
346
+ const FolderPlus = createLucideIcon("folder-plus", __iconNode$p);
319
347
  /**
320
348
  * @license lucide-react v0.552.0 - ISC
321
349
  *
322
350
  * This source code is licensed under the ISC license.
323
351
  * See the LICENSE file in the root directory of this source tree.
324
352
  */
325
- const __iconNode$i = [
353
+ const __iconNode$o = [
326
354
  [
327
355
  "path",
328
356
  {
@@ -331,28 +359,65 @@ const __iconNode$i = [
331
359
  }
332
360
  ]
333
361
  ];
334
- const Folder = createLucideIcon("folder", __iconNode$i);
362
+ const Folder = createLucideIcon("folder", __iconNode$o);
363
+ /**
364
+ * @license lucide-react v0.552.0 - ISC
365
+ *
366
+ * This source code is licensed under the ISC license.
367
+ * See the LICENSE file in the root directory of this source tree.
368
+ */
369
+ const __iconNode$n = [
370
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
371
+ ["line", { x1: "3", x2: "9", y1: "12", y2: "12", key: "1dyftd" }],
372
+ ["line", { x1: "15", x2: "21", y1: "12", y2: "12", key: "oup4p8" }]
373
+ ];
374
+ const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode$n);
335
375
  /**
336
376
  * @license lucide-react v0.552.0 - ISC
337
377
  *
338
378
  * This source code is licensed under the ISC license.
339
379
  * See the LICENSE file in the root directory of this source tree.
340
380
  */
341
- const __iconNode$h = [
381
+ const __iconNode$m = [
342
382
  ["circle", { cx: "12", cy: "18", r: "3", key: "1mpf1b" }],
343
383
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
344
384
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
345
385
  ["path", { d: "M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9", key: "1uq4wg" }],
346
386
  ["path", { d: "M12 12v3", key: "158kv8" }]
347
387
  ];
348
- const GitFork = createLucideIcon("git-fork", __iconNode$h);
388
+ const GitFork = createLucideIcon("git-fork", __iconNode$m);
349
389
  /**
350
390
  * @license lucide-react v0.552.0 - ISC
351
391
  *
352
392
  * This source code is licensed under the ISC license.
353
393
  * See the LICENSE file in the root directory of this source tree.
354
394
  */
355
- const __iconNode$g = [
395
+ const __iconNode$l = [
396
+ ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
397
+ ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
398
+ ["path", { d: "M6 21V9a9 9 0 0 0 9 9", key: "7kw0sc" }]
399
+ ];
400
+ const GitMerge = createLucideIcon("git-merge", __iconNode$l);
401
+ /**
402
+ * @license lucide-react v0.552.0 - ISC
403
+ *
404
+ * This source code is licensed under the ISC license.
405
+ * See the LICENSE file in the root directory of this source tree.
406
+ */
407
+ const __iconNode$k = [
408
+ ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
409
+ ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
410
+ ["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
411
+ ["line", { x1: "6", x2: "6", y1: "9", y2: "21", key: "rroup" }]
412
+ ];
413
+ const GitPullRequest = createLucideIcon("git-pull-request", __iconNode$k);
414
+ /**
415
+ * @license lucide-react v0.552.0 - ISC
416
+ *
417
+ * This source code is licensed under the ISC license.
418
+ * See the LICENSE file in the root directory of this source tree.
419
+ */
420
+ const __iconNode$j = [
356
421
  [
357
422
  "path",
358
423
  {
@@ -362,57 +427,57 @@ const __iconNode$g = [
362
427
  ],
363
428
  ["path", { d: "M9 18c-4.51 2-5-2-7-2", key: "9comsn" }]
364
429
  ];
365
- const Github = createLucideIcon("github", __iconNode$g);
430
+ const Github = createLucideIcon("github", __iconNode$j);
366
431
  /**
367
432
  * @license lucide-react v0.552.0 - ISC
368
433
  *
369
434
  * This source code is licensed under the ISC license.
370
435
  * See the LICENSE file in the root directory of this source tree.
371
436
  */
372
- const __iconNode$f = [
437
+ const __iconNode$i = [
373
438
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
374
439
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
375
440
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
376
441
  ];
377
- const History = createLucideIcon("history", __iconNode$f);
442
+ const History = createLucideIcon("history", __iconNode$i);
378
443
  /**
379
444
  * @license lucide-react v0.552.0 - ISC
380
445
  *
381
446
  * This source code is licensed under the ISC license.
382
447
  * See the LICENSE file in the root directory of this source tree.
383
448
  */
384
- const __iconNode$e = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
385
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$e);
449
+ const __iconNode$h = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
450
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$h);
386
451
  /**
387
452
  * @license lucide-react v0.552.0 - ISC
388
453
  *
389
454
  * This source code is licensed under the ISC license.
390
455
  * See the LICENSE file in the root directory of this source tree.
391
456
  */
392
- const __iconNode$d = [
457
+ const __iconNode$g = [
393
458
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
394
459
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
395
460
  ];
396
- const Lock = createLucideIcon("lock", __iconNode$d);
461
+ const Lock = createLucideIcon("lock", __iconNode$g);
397
462
  /**
398
463
  * @license lucide-react v0.552.0 - ISC
399
464
  *
400
465
  * This source code is licensed under the ISC license.
401
466
  * See the LICENSE file in the root directory of this source tree.
402
467
  */
403
- const __iconNode$c = [
468
+ const __iconNode$f = [
404
469
  ["path", { d: "m10 17 5-5-5-5", key: "1bsop3" }],
405
470
  ["path", { d: "M15 12H3", key: "6jk70r" }],
406
471
  ["path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4", key: "u53s6r" }]
407
472
  ];
408
- const LogIn = createLucideIcon("log-in", __iconNode$c);
473
+ const LogIn = createLucideIcon("log-in", __iconNode$f);
409
474
  /**
410
475
  * @license lucide-react v0.552.0 - ISC
411
476
  *
412
477
  * This source code is licensed under the ISC license.
413
478
  * See the LICENSE file in the root directory of this source tree.
414
479
  */
415
- const __iconNode$b = [
480
+ const __iconNode$e = [
416
481
  [
417
482
  "path",
418
483
  {
@@ -421,37 +486,37 @@ const __iconNode$b = [
421
486
  }
422
487
  ]
423
488
  ];
424
- const MessageSquare = createLucideIcon("message-square", __iconNode$b);
489
+ const MessageSquare = createLucideIcon("message-square", __iconNode$e);
425
490
  /**
426
491
  * @license lucide-react v0.552.0 - ISC
427
492
  *
428
493
  * This source code is licensed under the ISC license.
429
494
  * See the LICENSE file in the root directory of this source tree.
430
495
  */
431
- const __iconNode$a = [
496
+ const __iconNode$d = [
432
497
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
433
498
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
434
499
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
435
500
  ];
436
- const Monitor = createLucideIcon("monitor", __iconNode$a);
501
+ const Monitor = createLucideIcon("monitor", __iconNode$d);
437
502
  /**
438
503
  * @license lucide-react v0.552.0 - ISC
439
504
  *
440
505
  * This source code is licensed under the ISC license.
441
506
  * See the LICENSE file in the root directory of this source tree.
442
507
  */
443
- const __iconNode$9 = [
508
+ const __iconNode$c = [
444
509
  ["path", { d: "M18 8L22 12L18 16", key: "1r0oui" }],
445
510
  ["path", { d: "M2 12H22", key: "1m8cig" }]
446
511
  ];
447
- const MoveRight = createLucideIcon("move-right", __iconNode$9);
512
+ const MoveRight = createLucideIcon("move-right", __iconNode$c);
448
513
  /**
449
514
  * @license lucide-react v0.552.0 - ISC
450
515
  *
451
516
  * This source code is licensed under the ISC license.
452
517
  * See the LICENSE file in the root directory of this source tree.
453
518
  */
454
- const __iconNode$8 = [
519
+ const __iconNode$b = [
455
520
  [
456
521
  "path",
457
522
  {
@@ -460,52 +525,77 @@ const __iconNode$8 = [
460
525
  }
461
526
  ]
462
527
  ];
463
- const Play = createLucideIcon("play", __iconNode$8);
528
+ const Play = createLucideIcon("play", __iconNode$b);
464
529
  /**
465
530
  * @license lucide-react v0.552.0 - ISC
466
531
  *
467
532
  * This source code is licensed under the ISC license.
468
533
  * See the LICENSE file in the root directory of this source tree.
469
534
  */
470
- const __iconNode$7 = [
535
+ const __iconNode$a = [
471
536
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
472
537
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
473
538
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
474
539
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
475
540
  ];
476
- const RefreshCw = createLucideIcon("refresh-cw", __iconNode$7);
541
+ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$a);
477
542
  /**
478
543
  * @license lucide-react v0.552.0 - ISC
479
544
  *
480
545
  * This source code is licensed under the ISC license.
481
546
  * See the LICENSE file in the root directory of this source tree.
482
547
  */
483
- const __iconNode$6 = [
548
+ const __iconNode$9 = [
549
+ [
550
+ "path",
551
+ {
552
+ d: "M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",
553
+ key: "m3kijz"
554
+ }
555
+ ],
556
+ [
557
+ "path",
558
+ {
559
+ d: "m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",
560
+ key: "1fmvmk"
561
+ }
562
+ ],
563
+ ["path", { d: "M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0", key: "1f8sc4" }],
564
+ ["path", { d: "M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5", key: "qeys4" }]
565
+ ];
566
+ const Rocket = createLucideIcon("rocket", __iconNode$9);
567
+ /**
568
+ * @license lucide-react v0.552.0 - ISC
569
+ *
570
+ * This source code is licensed under the ISC license.
571
+ * See the LICENSE file in the root directory of this source tree.
572
+ */
573
+ const __iconNode$8 = [
484
574
  ["path", { d: "m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "7g6ntu" }],
485
575
  ["path", { d: "m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "ijws7r" }],
486
576
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
487
577
  ["path", { d: "M12 3v18", key: "108xh3" }],
488
578
  ["path", { d: "M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2", key: "3gwbw2" }]
489
579
  ];
490
- const Scale = createLucideIcon("scale", __iconNode$6);
580
+ const Scale = createLucideIcon("scale", __iconNode$8);
491
581
  /**
492
582
  * @license lucide-react v0.552.0 - ISC
493
583
  *
494
584
  * This source code is licensed under the ISC license.
495
585
  * See the LICENSE file in the root directory of this source tree.
496
586
  */
497
- const __iconNode$5 = [
587
+ const __iconNode$7 = [
498
588
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
499
589
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
500
590
  ];
501
- const Search = createLucideIcon("search", __iconNode$5);
591
+ const Search = createLucideIcon("search", __iconNode$7);
502
592
  /**
503
593
  * @license lucide-react v0.552.0 - ISC
504
594
  *
505
595
  * This source code is licensed under the ISC license.
506
596
  * See the LICENSE file in the root directory of this source tree.
507
597
  */
508
- const __iconNode$4 = [
598
+ const __iconNode$6 = [
509
599
  [
510
600
  "path",
511
601
  {
@@ -514,14 +604,14 @@ const __iconNode$4 = [
514
604
  }
515
605
  ]
516
606
  ];
517
- const Star = createLucideIcon("star", __iconNode$4);
607
+ const Star = createLucideIcon("star", __iconNode$6);
518
608
  /**
519
609
  * @license lucide-react v0.552.0 - ISC
520
610
  *
521
611
  * This source code is licensed under the ISC license.
522
612
  * See the LICENSE file in the root directory of this source tree.
523
613
  */
524
- const __iconNode$3 = [
614
+ const __iconNode$5 = [
525
615
  [
526
616
  "path",
527
617
  {
@@ -531,21 +621,46 @@ const __iconNode$3 = [
531
621
  ],
532
622
  ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
533
623
  ];
534
- const Tag = createLucideIcon("tag", __iconNode$3);
624
+ const Tag = createLucideIcon("tag", __iconNode$5);
535
625
  /**
536
626
  * @license lucide-react v0.552.0 - ISC
537
627
  *
538
628
  * This source code is licensed under the ISC license.
539
629
  * See the LICENSE file in the root directory of this source tree.
540
630
  */
541
- const __iconNode$2 = [
631
+ const __iconNode$4 = [
542
632
  ["path", { d: "M10 11v6", key: "nco0om" }],
543
633
  ["path", { d: "M14 11v6", key: "outv1u" }],
544
634
  ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
545
635
  ["path", { d: "M3 6h18", key: "d0wm0j" }],
546
636
  ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
547
637
  ];
548
- const Trash2 = createLucideIcon("trash-2", __iconNode$2);
638
+ const Trash2 = createLucideIcon("trash-2", __iconNode$4);
639
+ /**
640
+ * @license lucide-react v0.552.0 - ISC
641
+ *
642
+ * This source code is licensed under the ISC license.
643
+ * See the LICENSE file in the root directory of this source tree.
644
+ */
645
+ const __iconNode$3 = [
646
+ ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
647
+ ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
648
+ ["line", { x1: "22", x2: "16", y1: "11", y2: "11", key: "1shjgl" }]
649
+ ];
650
+ const UserMinus = createLucideIcon("user-minus", __iconNode$3);
651
+ /**
652
+ * @license lucide-react v0.552.0 - ISC
653
+ *
654
+ * This source code is licensed under the ISC license.
655
+ * See the LICENSE file in the root directory of this source tree.
656
+ */
657
+ const __iconNode$2 = [
658
+ ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
659
+ ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
660
+ ["line", { x1: "19", x2: "19", y1: "8", y2: "14", key: "1bvyxn" }],
661
+ ["line", { x1: "22", x2: "16", y1: "11", y2: "11", key: "1shjgl" }]
662
+ ];
663
+ const UserPlus = createLucideIcon("user-plus", __iconNode$2);
549
664
  /**
550
665
  * @license lucide-react v0.552.0 - ISC
551
666
  *
@@ -739,7 +854,7 @@ const GitHubProjectCard = ({
739
854
  ] }),
740
855
  repository.license && /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
741
856
  /* @__PURE__ */ jsx(Scale, { size: 12 }),
742
- /* @__PURE__ */ jsx("span", { children: repository.license })
857
+ /* @__PURE__ */ jsx("span", { children: typeof repository.license === "string" ? repository.license : repository.license.spdx_id || repository.license.name })
743
858
  ] })
744
859
  ]
745
860
  }
@@ -1526,7 +1641,7 @@ const GitHubRepositoryCard = ({
1526
1641
  ] }),
1527
1642
  repository.license && /* @__PURE__ */ jsxs("span", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
1528
1643
  /* @__PURE__ */ jsx(Scale, { size: 12 }),
1529
- repository.license
1644
+ typeof repository.license === "string" ? repository.license : repository.license.spdx_id || repository.license.name
1530
1645
  ] }),
1531
1646
  (repository.pushed_at || repository.updated_at) && /* @__PURE__ */ jsxs("span", { children: [
1532
1647
  "Updated ",
@@ -1735,10 +1850,13 @@ const GitHubSearchPanelContent = ({ context, actions, events }) => {
1735
1850
  return new Set(collectionRepos.map((r2) => r2.full_name));
1736
1851
  }, [collectionRepos]);
1737
1852
  const panelActions = actions;
1853
+ const searchAvailable = Boolean(panelActions.searchRepositories);
1738
1854
  useEffect(() => {
1739
1855
  var _a2;
1740
- (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
1741
- }, []);
1856
+ if (searchAvailable) {
1857
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
1858
+ }
1859
+ }, [searchAvailable]);
1742
1860
  const performSearch = useCallback(async (query) => {
1743
1861
  if (!query.trim()) {
1744
1862
  setResults([]);
@@ -1746,17 +1864,14 @@ const GitHubSearchPanelContent = ({ context, actions, events }) => {
1746
1864
  setError(null);
1747
1865
  return;
1748
1866
  }
1867
+ if (!panelActions.searchRepositories) {
1868
+ setError("Search is not available");
1869
+ return;
1870
+ }
1749
1871
  setIsLoading(true);
1750
1872
  setError(null);
1751
1873
  try {
1752
- const response = await fetch(
1753
- `/api/github/search?q=${encodeURIComponent(query)}&per_page=30`
1754
- );
1755
- if (!response.ok) {
1756
- const errorData = await response.json().catch(() => ({}));
1757
- throw new Error(errorData.error || "Search failed");
1758
- }
1759
- const data = await response.json();
1874
+ const data = await panelActions.searchRepositories(query, { perPage: 30 });
1760
1875
  setResults(data.items || []);
1761
1876
  setTotalCount(data.total_count || 0);
1762
1877
  } catch (err) {
@@ -1766,7 +1881,7 @@ const GitHubSearchPanelContent = ({ context, actions, events }) => {
1766
1881
  } finally {
1767
1882
  setIsLoading(false);
1768
1883
  }
1769
- }, []);
1884
+ }, [panelActions]);
1770
1885
  const handleSearchChange = (e) => {
1771
1886
  const query = e.target.value;
1772
1887
  setSearchQuery(query);
@@ -1814,6 +1929,30 @@ const GitHubSearchPanelContent = ({ context, actions, events }) => {
1814
1929
  if (num >= 1e3) return `${(num / 1e3).toFixed(1)}K`;
1815
1930
  return num.toString();
1816
1931
  };
1932
+ if (!searchAvailable) {
1933
+ return /* @__PURE__ */ jsxs(
1934
+ "div",
1935
+ {
1936
+ style: {
1937
+ height: "100%",
1938
+ display: "flex",
1939
+ flexDirection: "column",
1940
+ alignItems: "center",
1941
+ justifyContent: "center",
1942
+ backgroundColor: theme2.colors.background,
1943
+ color: theme2.colors.textSecondary,
1944
+ fontFamily: theme2.fonts.body,
1945
+ padding: "32px",
1946
+ textAlign: "center"
1947
+ },
1948
+ children: [
1949
+ /* @__PURE__ */ jsx(CircleAlert, { size: 48, style: { marginBottom: 16, opacity: 0.5 } }),
1950
+ /* @__PURE__ */ jsx("p", { style: { margin: 0, fontSize: `${theme2.fontSizes[2]}px` }, children: "Search is not available" }),
1951
+ /* @__PURE__ */ jsx("p", { style: { margin: "8px 0 0", fontSize: `${theme2.fontSizes[1]}px` }, children: "The host application must provide a searchRepositories action" })
1952
+ ]
1953
+ }
1954
+ );
1955
+ }
1817
1956
  return /* @__PURE__ */ jsxs(
1818
1957
  "div",
1819
1958
  {
@@ -2023,7 +2162,7 @@ const GitHubSearchPanelMetadata = {
2023
2162
  slices: ["workspace", "workspaceRepositories"],
2024
2163
  surfaces: ["panel"]
2025
2164
  };
2026
- const formatDate$1 = (dateString) => {
2165
+ const formatDate$2 = (dateString) => {
2027
2166
  const date = new Date(dateString);
2028
2167
  const now = /* @__PURE__ */ new Date();
2029
2168
  const diffMs = now.getTime() - date.getTime();
@@ -2443,7 +2582,7 @@ const GitHubIssuesPanelContent = ({
2443
2582
  " ",
2444
2583
  /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.primary }, children: issue.user.login })
2445
2584
  ] }),
2446
- /* @__PURE__ */ jsx("span", { children: formatDate$1(issue.created_at) }),
2585
+ /* @__PURE__ */ jsx("span", { children: formatDate$2(issue.created_at) }),
2447
2586
  issue.comments > 0 && /* @__PURE__ */ jsxs(
2448
2587
  "span",
2449
2588
  {
@@ -46440,7 +46579,7 @@ var DocumentView = ({
46440
46579
  }
46441
46580
  })))));
46442
46581
  };
46443
- const formatDate = (dateString) => {
46582
+ const formatDate$1 = (dateString) => {
46444
46583
  const date = new Date(dateString);
46445
46584
  const now = /* @__PURE__ */ new Date();
46446
46585
  const diffMs = now.getTime() - date.getTime();
@@ -46608,7 +46747,7 @@ const GitHubIssueDetailPanelContent = ({ events }) => {
46608
46747
  "by ",
46609
46748
  /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.primary }, children: selectedIssue.user.login }),
46610
46749
  " ",
46611
- formatDate(selectedIssue.created_at)
46750
+ formatDate$1(selectedIssue.created_at)
46612
46751
  ]
46613
46752
  }
46614
46753
  ),
@@ -46766,6 +46905,1077 @@ const GitHubIssueDetailPanelMetadata = {
46766
46905
  slices: [],
46767
46906
  surfaces: ["panel"]
46768
46907
  };
46908
+ const formatDate = (dateString) => {
46909
+ const date = new Date(dateString);
46910
+ const now = /* @__PURE__ */ new Date();
46911
+ const diffMs = now.getTime() - date.getTime();
46912
+ const diffDays = Math.floor(diffMs / (1e3 * 60 * 60 * 24));
46913
+ if (diffDays === 0) {
46914
+ const diffHours = Math.floor(diffMs / (1e3 * 60 * 60));
46915
+ if (diffHours === 0) {
46916
+ const diffMins = Math.floor(diffMs / (1e3 * 60));
46917
+ if (diffMins < 1) return "just now";
46918
+ return `${diffMins}m ago`;
46919
+ }
46920
+ return `${diffHours}h ago`;
46921
+ }
46922
+ if (diffDays === 1) return "yesterday";
46923
+ if (diffDays < 7) return `${diffDays}d ago`;
46924
+ const weeks = Math.floor(diffDays / 7);
46925
+ if (diffDays < 30) return `${weeks}w ago`;
46926
+ const months = Math.floor(diffDays / 30);
46927
+ if (diffDays < 365) return `${months}mo ago`;
46928
+ const years = Math.floor(diffDays / 365);
46929
+ return `${years}y ago`;
46930
+ };
46931
+ const formatSha = (sha) => sha.substring(0, 7);
46932
+ const Avatar = ({ user, size = 32 }) => {
46933
+ const { theme: theme2 } = useTheme();
46934
+ return /* @__PURE__ */ jsx(
46935
+ "img",
46936
+ {
46937
+ src: user.avatar_url,
46938
+ alt: user.login,
46939
+ style: {
46940
+ width: size,
46941
+ height: size,
46942
+ borderRadius: "50%",
46943
+ border: `1px solid ${theme2.colors.border}`
46944
+ }
46945
+ }
46946
+ );
46947
+ };
46948
+ const ReactionsDisplay = ({ reactions }) => {
46949
+ const { theme: theme2 } = useTheme();
46950
+ if (reactions.total_count === 0) return null;
46951
+ const reactionEmojis = {
46952
+ "+1": "👍",
46953
+ "-1": "👎",
46954
+ laugh: "😄",
46955
+ hooray: "🎉",
46956
+ confused: "😕",
46957
+ heart: "❤️",
46958
+ rocket: "🚀",
46959
+ eyes: "👀"
46960
+ };
46961
+ const reactionCounts = {
46962
+ "+1": reactions["+1"],
46963
+ "-1": reactions["-1"],
46964
+ laugh: reactions.laugh,
46965
+ hooray: reactions.hooray,
46966
+ confused: reactions.confused,
46967
+ heart: reactions.heart,
46968
+ rocket: reactions.rocket,
46969
+ eyes: reactions.eyes
46970
+ };
46971
+ const activeReactions = Object.entries(reactionEmojis).filter(([key]) => reactionCounts[key] > 0).map(([key, emoji]) => ({
46972
+ emoji,
46973
+ count: reactionCounts[key]
46974
+ }));
46975
+ return /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: "8px", marginTop: "8px" }, children: activeReactions.map(({ emoji, count }) => /* @__PURE__ */ jsxs(
46976
+ "span",
46977
+ {
46978
+ style: {
46979
+ display: "inline-flex",
46980
+ alignItems: "center",
46981
+ gap: "4px",
46982
+ padding: "2px 8px",
46983
+ borderRadius: "12px",
46984
+ backgroundColor: theme2.colors.backgroundSecondary,
46985
+ border: `1px solid ${theme2.colors.border}`,
46986
+ fontSize: theme2.fontSizes[0]
46987
+ },
46988
+ children: [
46989
+ /* @__PURE__ */ jsx("span", { children: emoji }),
46990
+ /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.textSecondary }, children: count })
46991
+ ]
46992
+ },
46993
+ emoji
46994
+ )) });
46995
+ };
46996
+ const CommentEvent = ({ event }) => {
46997
+ const { theme: theme2 } = useTheme();
46998
+ const user = event.user || event.actor;
46999
+ return /* @__PURE__ */ jsxs(
47000
+ "div",
47001
+ {
47002
+ style: {
47003
+ display: "flex",
47004
+ gap: "12px",
47005
+ padding: "16px",
47006
+ borderBottom: `1px solid ${theme2.colors.border}`
47007
+ },
47008
+ children: [
47009
+ /* @__PURE__ */ jsx(Avatar, { user }),
47010
+ /* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
47011
+ /* @__PURE__ */ jsxs(
47012
+ "div",
47013
+ {
47014
+ style: {
47015
+ display: "flex",
47016
+ alignItems: "center",
47017
+ gap: "8px",
47018
+ marginBottom: "8px"
47019
+ },
47020
+ children: [
47021
+ /* @__PURE__ */ jsx(
47022
+ "span",
47023
+ {
47024
+ style: {
47025
+ fontWeight: 600,
47026
+ color: theme2.colors.text,
47027
+ fontFamily: theme2.fonts.body,
47028
+ fontSize: theme2.fontSizes[1]
47029
+ },
47030
+ children: user.login
47031
+ }
47032
+ ),
47033
+ /* @__PURE__ */ jsxs(
47034
+ "span",
47035
+ {
47036
+ style: {
47037
+ color: theme2.colors.textMuted,
47038
+ fontSize: theme2.fontSizes[0]
47039
+ },
47040
+ children: [
47041
+ "commented ",
47042
+ formatDate(event.created_at)
47043
+ ]
47044
+ }
47045
+ ),
47046
+ event.author_association && event.author_association !== "NONE" && /* @__PURE__ */ jsx(
47047
+ "span",
47048
+ {
47049
+ style: {
47050
+ padding: "2px 6px",
47051
+ borderRadius: "4px",
47052
+ backgroundColor: theme2.colors.backgroundSecondary,
47053
+ border: `1px solid ${theme2.colors.border}`,
47054
+ fontSize: theme2.fontSizes[0],
47055
+ color: theme2.colors.textSecondary,
47056
+ textTransform: "uppercase"
47057
+ },
47058
+ children: event.author_association.toLowerCase()
47059
+ }
47060
+ )
47061
+ ]
47062
+ }
47063
+ ),
47064
+ /* @__PURE__ */ jsx(
47065
+ "div",
47066
+ {
47067
+ style: {
47068
+ backgroundColor: theme2.colors.backgroundSecondary,
47069
+ border: `1px solid ${theme2.colors.border}`,
47070
+ borderRadius: "8px",
47071
+ overflow: "hidden"
47072
+ },
47073
+ children: /* @__PURE__ */ jsx(
47074
+ DocumentView,
47075
+ {
47076
+ content: event.body,
47077
+ theme: theme2,
47078
+ maxWidth: "100%",
47079
+ transparentBackground: true
47080
+ }
47081
+ )
47082
+ }
47083
+ ),
47084
+ event.reactions && /* @__PURE__ */ jsx(ReactionsDisplay, { reactions: event.reactions })
47085
+ ] })
47086
+ ]
47087
+ }
47088
+ );
47089
+ };
47090
+ const ReviewEvent = ({ event }) => {
47091
+ const { theme: theme2 } = useTheme();
47092
+ const stateConfig = {
47093
+ approved: {
47094
+ icon: /* @__PURE__ */ jsx(Check, { size: 16 }),
47095
+ color: theme2.colors.success || "#22c55e",
47096
+ label: "approved"
47097
+ },
47098
+ changes_requested: {
47099
+ icon: /* @__PURE__ */ jsx(CircleAlert, { size: 16 }),
47100
+ color: theme2.colors.error || "#ef4444",
47101
+ label: "requested changes"
47102
+ },
47103
+ commented: {
47104
+ icon: /* @__PURE__ */ jsx(MessageSquare, { size: 16 }),
47105
+ color: theme2.colors.textSecondary,
47106
+ label: "reviewed"
47107
+ },
47108
+ dismissed: {
47109
+ icon: /* @__PURE__ */ jsx(X, { size: 16 }),
47110
+ color: theme2.colors.textMuted,
47111
+ label: "dismissed review"
47112
+ }
47113
+ };
47114
+ const config = stateConfig[event.state] || stateConfig.commented;
47115
+ return /* @__PURE__ */ jsxs(
47116
+ "div",
47117
+ {
47118
+ style: {
47119
+ display: "flex",
47120
+ gap: "12px",
47121
+ padding: "16px",
47122
+ borderBottom: `1px solid ${theme2.colors.border}`
47123
+ },
47124
+ children: [
47125
+ /* @__PURE__ */ jsx(Avatar, { user: event.user }),
47126
+ /* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
47127
+ /* @__PURE__ */ jsxs(
47128
+ "div",
47129
+ {
47130
+ style: {
47131
+ display: "flex",
47132
+ alignItems: "center",
47133
+ gap: "8px",
47134
+ marginBottom: event.body ? "8px" : 0
47135
+ },
47136
+ children: [
47137
+ /* @__PURE__ */ jsx("span", { style: { color: config.color }, children: config.icon }),
47138
+ /* @__PURE__ */ jsx(
47139
+ "span",
47140
+ {
47141
+ style: {
47142
+ fontWeight: 600,
47143
+ color: theme2.colors.text,
47144
+ fontFamily: theme2.fonts.body,
47145
+ fontSize: theme2.fontSizes[1]
47146
+ },
47147
+ children: event.user.login
47148
+ }
47149
+ ),
47150
+ /* @__PURE__ */ jsx(
47151
+ "span",
47152
+ {
47153
+ style: {
47154
+ color: config.color,
47155
+ fontWeight: 500,
47156
+ fontSize: theme2.fontSizes[1]
47157
+ },
47158
+ children: config.label
47159
+ }
47160
+ ),
47161
+ /* @__PURE__ */ jsx(
47162
+ "span",
47163
+ {
47164
+ style: {
47165
+ color: theme2.colors.textMuted,
47166
+ fontSize: theme2.fontSizes[0]
47167
+ },
47168
+ children: formatDate(event.submitted_at)
47169
+ }
47170
+ )
47171
+ ]
47172
+ }
47173
+ ),
47174
+ event.body && /* @__PURE__ */ jsx(
47175
+ "div",
47176
+ {
47177
+ style: {
47178
+ backgroundColor: theme2.colors.backgroundSecondary,
47179
+ border: `1px solid ${theme2.colors.border}`,
47180
+ borderRadius: "8px",
47181
+ overflow: "hidden"
47182
+ },
47183
+ children: /* @__PURE__ */ jsx(
47184
+ DocumentView,
47185
+ {
47186
+ content: event.body,
47187
+ theme: theme2,
47188
+ maxWidth: "100%",
47189
+ transparentBackground: true
47190
+ }
47191
+ )
47192
+ }
47193
+ )
47194
+ ] })
47195
+ ]
47196
+ }
47197
+ );
47198
+ };
47199
+ const CommitEvent = ({ event }) => {
47200
+ var _a;
47201
+ const { theme: theme2 } = useTheme();
47202
+ const [expanded, setExpanded] = useState(false);
47203
+ const messageLines = event.message.split("\n");
47204
+ const title = messageLines[0];
47205
+ const body = messageLines.slice(1).join("\n").trim();
47206
+ return /* @__PURE__ */ jsxs(
47207
+ "div",
47208
+ {
47209
+ style: {
47210
+ display: "flex",
47211
+ alignItems: "flex-start",
47212
+ gap: "12px",
47213
+ padding: "12px 16px",
47214
+ borderBottom: `1px solid ${theme2.colors.border}`,
47215
+ backgroundColor: theme2.colors.background
47216
+ },
47217
+ children: [
47218
+ /* @__PURE__ */ jsx(
47219
+ "div",
47220
+ {
47221
+ style: {
47222
+ width: 32,
47223
+ height: 32,
47224
+ borderRadius: "50%",
47225
+ backgroundColor: theme2.colors.backgroundSecondary,
47226
+ display: "flex",
47227
+ alignItems: "center",
47228
+ justifyContent: "center",
47229
+ color: theme2.colors.textSecondary
47230
+ },
47231
+ children: /* @__PURE__ */ jsx(GitCommitHorizontal, { size: 16 })
47232
+ }
47233
+ ),
47234
+ /* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
47235
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
47236
+ body && /* @__PURE__ */ jsx(
47237
+ "button",
47238
+ {
47239
+ type: "button",
47240
+ onClick: () => setExpanded(!expanded),
47241
+ style: {
47242
+ background: "none",
47243
+ border: "none",
47244
+ padding: 0,
47245
+ cursor: "pointer",
47246
+ color: theme2.colors.textSecondary,
47247
+ display: "flex",
47248
+ alignItems: "center"
47249
+ },
47250
+ children: expanded ? /* @__PURE__ */ jsx(ChevronDown, { size: 16 }) : /* @__PURE__ */ jsx(ChevronRight, { size: 16 })
47251
+ }
47252
+ ),
47253
+ /* @__PURE__ */ jsx(
47254
+ "span",
47255
+ {
47256
+ style: {
47257
+ fontFamily: theme2.fonts.body,
47258
+ fontSize: theme2.fontSizes[1],
47259
+ color: theme2.colors.text,
47260
+ flex: 1
47261
+ },
47262
+ children: title
47263
+ }
47264
+ ),
47265
+ /* @__PURE__ */ jsx(
47266
+ "a",
47267
+ {
47268
+ href: event.html_url,
47269
+ target: "_blank",
47270
+ rel: "noopener noreferrer",
47271
+ style: {
47272
+ fontFamily: theme2.fonts.monospace,
47273
+ fontSize: theme2.fontSizes[0],
47274
+ color: theme2.colors.primary,
47275
+ textDecoration: "none"
47276
+ },
47277
+ children: formatSha(event.sha)
47278
+ }
47279
+ )
47280
+ ] }),
47281
+ expanded && body && /* @__PURE__ */ jsx(
47282
+ "pre",
47283
+ {
47284
+ style: {
47285
+ marginTop: "8px",
47286
+ padding: "12px",
47287
+ backgroundColor: theme2.colors.backgroundSecondary,
47288
+ borderRadius: "6px",
47289
+ fontFamily: theme2.fonts.monospace,
47290
+ fontSize: theme2.fontSizes[0],
47291
+ color: theme2.colors.textSecondary,
47292
+ whiteSpace: "pre-wrap",
47293
+ overflow: "auto"
47294
+ },
47295
+ children: body
47296
+ }
47297
+ ),
47298
+ /* @__PURE__ */ jsxs(
47299
+ "div",
47300
+ {
47301
+ style: {
47302
+ marginTop: "4px",
47303
+ fontSize: theme2.fontSizes[0],
47304
+ color: theme2.colors.textMuted
47305
+ },
47306
+ children: [
47307
+ event.author.name,
47308
+ " committed ",
47309
+ formatDate(event.committer.date),
47310
+ ((_a = event.verification) == null ? void 0 : _a.verified) && /* @__PURE__ */ jsxs(
47311
+ "span",
47312
+ {
47313
+ style: {
47314
+ marginLeft: "8px",
47315
+ color: theme2.colors.success || "#22c55e"
47316
+ },
47317
+ children: [
47318
+ /* @__PURE__ */ jsx(Check, { size: 12, style: { verticalAlign: "middle" } }),
47319
+ " Verified"
47320
+ ]
47321
+ }
47322
+ )
47323
+ ]
47324
+ }
47325
+ )
47326
+ ] })
47327
+ ]
47328
+ }
47329
+ );
47330
+ };
47331
+ const SimpleEvent = ({ icon, actor, action, timestamp }) => {
47332
+ const { theme: theme2 } = useTheme();
47333
+ return /* @__PURE__ */ jsxs(
47334
+ "div",
47335
+ {
47336
+ style: {
47337
+ display: "flex",
47338
+ alignItems: "center",
47339
+ gap: "12px",
47340
+ padding: "8px 16px",
47341
+ borderBottom: `1px solid ${theme2.colors.border}`,
47342
+ fontSize: theme2.fontSizes[0],
47343
+ color: theme2.colors.textSecondary
47344
+ },
47345
+ children: [
47346
+ /* @__PURE__ */ jsx(
47347
+ "div",
47348
+ {
47349
+ style: {
47350
+ width: 32,
47351
+ display: "flex",
47352
+ justifyContent: "center"
47353
+ },
47354
+ children: icon
47355
+ }
47356
+ ),
47357
+ /* @__PURE__ */ jsx(Avatar, { user: actor, size: 20 }),
47358
+ /* @__PURE__ */ jsx("span", { style: { fontWeight: 500, color: theme2.colors.text }, children: actor.login }),
47359
+ action,
47360
+ /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.textMuted, marginLeft: "auto" }, children: formatDate(timestamp) })
47361
+ ]
47362
+ }
47363
+ );
47364
+ };
47365
+ const LabelEvent = ({ event }) => {
47366
+ const { theme: theme2 } = useTheme();
47367
+ const isLabeled = event.event === "labeled";
47368
+ return /* @__PURE__ */ jsx(
47369
+ SimpleEvent,
47370
+ {
47371
+ icon: /* @__PURE__ */ jsx(Tag, { size: 14, style: { color: theme2.colors.textMuted } }),
47372
+ actor: event.actor,
47373
+ action: /* @__PURE__ */ jsxs(Fragment, { children: [
47374
+ /* @__PURE__ */ jsx("span", { children: isLabeled ? "added" : "removed" }),
47375
+ /* @__PURE__ */ jsx(
47376
+ "span",
47377
+ {
47378
+ style: {
47379
+ padding: "2px 8px",
47380
+ borderRadius: "12px",
47381
+ backgroundColor: `#${event.label.color}`,
47382
+ color: parseInt(event.label.color, 16) > 8388607 ? "#000" : "#fff",
47383
+ fontSize: "11px",
47384
+ fontWeight: 500
47385
+ },
47386
+ children: event.label.name
47387
+ }
47388
+ )
47389
+ ] }),
47390
+ timestamp: event.created_at
47391
+ }
47392
+ );
47393
+ };
47394
+ const AssignEvent = ({ event }) => {
47395
+ const { theme: theme2 } = useTheme();
47396
+ const isAssigned = event.event === "assigned";
47397
+ return /* @__PURE__ */ jsx(
47398
+ SimpleEvent,
47399
+ {
47400
+ icon: isAssigned ? /* @__PURE__ */ jsx(UserPlus, { size: 14, style: { color: theme2.colors.textMuted } }) : /* @__PURE__ */ jsx(UserMinus, { size: 14, style: { color: theme2.colors.textMuted } }),
47401
+ actor: event.actor,
47402
+ action: /* @__PURE__ */ jsxs(Fragment, { children: [
47403
+ /* @__PURE__ */ jsx("span", { children: isAssigned ? "assigned" : "unassigned" }),
47404
+ /* @__PURE__ */ jsx("span", { style: { fontWeight: 500, color: theme2.colors.text }, children: event.assignee.login })
47405
+ ] }),
47406
+ timestamp: event.created_at
47407
+ }
47408
+ );
47409
+ };
47410
+ const ReviewRequestEvent = ({ event }) => {
47411
+ var _a, _b;
47412
+ const { theme: theme2 } = useTheme();
47413
+ const isRequested = event.event === "review_requested";
47414
+ const reviewer = ((_a = event.requested_reviewer) == null ? void 0 : _a.login) || ((_b = event.requested_team) == null ? void 0 : _b.name) || "unknown";
47415
+ return /* @__PURE__ */ jsx(
47416
+ SimpleEvent,
47417
+ {
47418
+ icon: /* @__PURE__ */ jsx(Eye, { size: 14, style: { color: theme2.colors.textMuted } }),
47419
+ actor: event.review_requester,
47420
+ action: /* @__PURE__ */ jsxs(Fragment, { children: [
47421
+ /* @__PURE__ */ jsx("span", { children: isRequested ? "requested review from" : "removed review request from" }),
47422
+ /* @__PURE__ */ jsx("span", { style: { fontWeight: 500, color: theme2.colors.text }, children: reviewer })
47423
+ ] }),
47424
+ timestamp: event.created_at
47425
+ }
47426
+ );
47427
+ };
47428
+ const MergeEvent = ({ event }) => {
47429
+ const { theme: theme2 } = useTheme();
47430
+ return /* @__PURE__ */ jsx(
47431
+ SimpleEvent,
47432
+ {
47433
+ icon: /* @__PURE__ */ jsx(GitMerge, { size: 14, style: { color: theme2.colors.success || "#22c55e" } }),
47434
+ actor: event.actor,
47435
+ action: /* @__PURE__ */ jsxs(Fragment, { children: [
47436
+ /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.success || "#22c55e", fontWeight: 500 }, children: "merged" }),
47437
+ /* @__PURE__ */ jsx("span", { children: "commit" }),
47438
+ /* @__PURE__ */ jsx(
47439
+ "code",
47440
+ {
47441
+ style: {
47442
+ padding: "2px 6px",
47443
+ borderRadius: "4px",
47444
+ backgroundColor: theme2.colors.backgroundSecondary,
47445
+ fontFamily: theme2.fonts.monospace,
47446
+ fontSize: "11px"
47447
+ },
47448
+ children: formatSha(event.commit_id)
47449
+ }
47450
+ )
47451
+ ] }),
47452
+ timestamp: event.created_at
47453
+ }
47454
+ );
47455
+ };
47456
+ const StateEvent = ({ event }) => {
47457
+ const { theme: theme2 } = useTheme();
47458
+ const isClosed = event.event === "closed";
47459
+ return /* @__PURE__ */ jsx(
47460
+ SimpleEvent,
47461
+ {
47462
+ icon: isClosed ? /* @__PURE__ */ jsx(CircleDot, { size: 14, style: { color: theme2.colors.error || "#ef4444" } }) : /* @__PURE__ */ jsx(CircleDot, { size: 14, style: { color: theme2.colors.success || "#22c55e" } }),
47463
+ actor: event.actor,
47464
+ action: /* @__PURE__ */ jsx(
47465
+ "span",
47466
+ {
47467
+ style: {
47468
+ color: isClosed ? theme2.colors.error || "#ef4444" : theme2.colors.success || "#22c55e",
47469
+ fontWeight: 500
47470
+ },
47471
+ children: isClosed ? "closed" : "reopened"
47472
+ }
47473
+ ),
47474
+ timestamp: event.created_at
47475
+ }
47476
+ );
47477
+ };
47478
+ const RefEvent = ({ event }) => {
47479
+ const { theme: theme2 } = useTheme();
47480
+ const labels = {
47481
+ head_ref_force_pushed: "force-pushed",
47482
+ head_ref_deleted: "deleted branch",
47483
+ head_ref_restored: "restored branch"
47484
+ };
47485
+ return /* @__PURE__ */ jsx(
47486
+ SimpleEvent,
47487
+ {
47488
+ icon: /* @__PURE__ */ jsx(Rocket, { size: 14, style: { color: theme2.colors.textMuted } }),
47489
+ actor: event.actor,
47490
+ action: /* @__PURE__ */ jsx("span", { children: labels[event.event] || event.event }),
47491
+ timestamp: event.created_at
47492
+ }
47493
+ );
47494
+ };
47495
+ const InlineReviewComment = ({ comment: comment2 }) => {
47496
+ const { theme: theme2 } = useTheme();
47497
+ return /* @__PURE__ */ jsxs(
47498
+ "div",
47499
+ {
47500
+ style: {
47501
+ display: "flex",
47502
+ gap: "12px",
47503
+ padding: "12px 16px",
47504
+ borderBottom: `1px solid ${theme2.colors.border}`,
47505
+ backgroundColor: theme2.colors.backgroundSecondary
47506
+ },
47507
+ children: [
47508
+ /* @__PURE__ */ jsx(Avatar, { user: comment2.user, size: 28 }),
47509
+ /* @__PURE__ */ jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [
47510
+ /* @__PURE__ */ jsxs(
47511
+ "div",
47512
+ {
47513
+ style: {
47514
+ display: "flex",
47515
+ alignItems: "center",
47516
+ gap: "8px",
47517
+ marginBottom: "8px"
47518
+ },
47519
+ children: [
47520
+ /* @__PURE__ */ jsx(
47521
+ "span",
47522
+ {
47523
+ style: {
47524
+ fontWeight: 600,
47525
+ color: theme2.colors.text,
47526
+ fontSize: theme2.fontSizes[0]
47527
+ },
47528
+ children: comment2.user.login
47529
+ }
47530
+ ),
47531
+ /* @__PURE__ */ jsx(
47532
+ "span",
47533
+ {
47534
+ style: {
47535
+ color: theme2.colors.textMuted,
47536
+ fontSize: theme2.fontSizes[0]
47537
+ },
47538
+ children: "on"
47539
+ }
47540
+ ),
47541
+ /* @__PURE__ */ jsx(
47542
+ "code",
47543
+ {
47544
+ style: {
47545
+ padding: "2px 6px",
47546
+ borderRadius: "4px",
47547
+ backgroundColor: theme2.colors.background,
47548
+ fontFamily: theme2.fonts.monospace,
47549
+ fontSize: "11px",
47550
+ color: theme2.colors.primary
47551
+ },
47552
+ children: comment2.path
47553
+ }
47554
+ ),
47555
+ comment2.line && /* @__PURE__ */ jsxs("span", { style: { fontSize: theme2.fontSizes[0], color: theme2.colors.textSecondary }, children: [
47556
+ "line ",
47557
+ comment2.line
47558
+ ] })
47559
+ ]
47560
+ }
47561
+ ),
47562
+ comment2.diff_hunk && /* @__PURE__ */ jsx(
47563
+ "pre",
47564
+ {
47565
+ style: {
47566
+ margin: "0 0 8px 0",
47567
+ padding: "8px",
47568
+ backgroundColor: theme2.colors.background,
47569
+ border: `1px solid ${theme2.colors.border}`,
47570
+ borderRadius: "6px",
47571
+ fontFamily: theme2.fonts.monospace,
47572
+ fontSize: "11px",
47573
+ color: theme2.colors.textSecondary,
47574
+ overflow: "auto",
47575
+ maxHeight: "100px"
47576
+ },
47577
+ children: comment2.diff_hunk
47578
+ }
47579
+ ),
47580
+ /* @__PURE__ */ jsx(
47581
+ "div",
47582
+ {
47583
+ style: {
47584
+ backgroundColor: theme2.colors.background,
47585
+ border: `1px solid ${theme2.colors.border}`,
47586
+ borderRadius: "6px",
47587
+ overflow: "hidden"
47588
+ },
47589
+ children: /* @__PURE__ */ jsx(
47590
+ DocumentView,
47591
+ {
47592
+ content: comment2.body,
47593
+ theme: theme2,
47594
+ maxWidth: "100%",
47595
+ transparentBackground: true
47596
+ }
47597
+ )
47598
+ }
47599
+ ),
47600
+ comment2.reactions && /* @__PURE__ */ jsx(ReactionsDisplay, { reactions: comment2.reactions })
47601
+ ] })
47602
+ ]
47603
+ }
47604
+ );
47605
+ };
47606
+ const TimelineEventRenderer = ({ event }) => {
47607
+ switch (event.event) {
47608
+ case "commented":
47609
+ return /* @__PURE__ */ jsx(CommentEvent, { event });
47610
+ case "reviewed":
47611
+ return /* @__PURE__ */ jsx(ReviewEvent, { event });
47612
+ case "committed":
47613
+ return /* @__PURE__ */ jsx(CommitEvent, { event });
47614
+ case "labeled":
47615
+ case "unlabeled":
47616
+ return /* @__PURE__ */ jsx(LabelEvent, { event });
47617
+ case "assigned":
47618
+ case "unassigned":
47619
+ return /* @__PURE__ */ jsx(AssignEvent, { event });
47620
+ case "review_requested":
47621
+ case "review_request_removed":
47622
+ return /* @__PURE__ */ jsx(ReviewRequestEvent, { event });
47623
+ case "merged":
47624
+ return /* @__PURE__ */ jsx(MergeEvent, { event });
47625
+ case "closed":
47626
+ case "reopened":
47627
+ return /* @__PURE__ */ jsx(StateEvent, { event });
47628
+ case "head_ref_force_pushed":
47629
+ case "head_ref_deleted":
47630
+ case "head_ref_restored":
47631
+ return /* @__PURE__ */ jsx(RefEvent, { event });
47632
+ default:
47633
+ return null;
47634
+ }
47635
+ };
47636
+ const GitHubMessagesPanelContent = ({ context, events }) => {
47637
+ const { theme: theme2 } = useTheme();
47638
+ const [messagesData, setMessagesData] = useState(null);
47639
+ useEffect(() => {
47640
+ var _a;
47641
+ if (!context) return;
47642
+ const sliceData = (_a = context.getSlice) == null ? void 0 : _a.call(context, "github-messages");
47643
+ if (sliceData) {
47644
+ setMessagesData(sliceData);
47645
+ }
47646
+ }, [context]);
47647
+ useEffect(() => {
47648
+ if (!events) return;
47649
+ const handleMessagesData = (event) => {
47650
+ setMessagesData(event.payload);
47651
+ };
47652
+ const unsubData = events.on("github-messages:data", handleMessagesData);
47653
+ return () => {
47654
+ if (typeof unsubData === "function") unsubData();
47655
+ };
47656
+ }, [events]);
47657
+ useEffect(() => {
47658
+ if (!events) return;
47659
+ const handleIssueSelected = (event) => {
47660
+ events.emit({
47661
+ type: "github-messages:request",
47662
+ source: "github-messages-panel",
47663
+ timestamp: Date.now(),
47664
+ payload: {
47665
+ owner: event.payload.owner,
47666
+ repo: event.payload.repo,
47667
+ number: event.payload.issue.number,
47668
+ type: "issue"
47669
+ }
47670
+ });
47671
+ };
47672
+ const handlePRSelected = (event) => {
47673
+ events.emit({
47674
+ type: "github-messages:request",
47675
+ source: "github-messages-panel",
47676
+ timestamp: Date.now(),
47677
+ payload: {
47678
+ owner: event.payload.owner,
47679
+ repo: event.payload.repo,
47680
+ number: event.payload.pullRequest.number,
47681
+ type: "pull_request"
47682
+ }
47683
+ });
47684
+ };
47685
+ const unsubIssue = events.on("issue:selected", handleIssueSelected);
47686
+ const unsubPR = events.on("pr:selected", handlePRSelected);
47687
+ return () => {
47688
+ if (typeof unsubIssue === "function") unsubIssue();
47689
+ if (typeof unsubPR === "function") unsubPR();
47690
+ };
47691
+ }, [events]);
47692
+ const containerStyle = {
47693
+ display: "flex",
47694
+ flexDirection: "column",
47695
+ height: "100%",
47696
+ backgroundColor: theme2.colors.background,
47697
+ overflow: "hidden"
47698
+ };
47699
+ if (!messagesData || !messagesData.target) {
47700
+ return /* @__PURE__ */ jsx("div", { style: containerStyle, children: /* @__PURE__ */ jsxs(
47701
+ "div",
47702
+ {
47703
+ style: {
47704
+ flex: 1,
47705
+ display: "flex",
47706
+ flexDirection: "column",
47707
+ alignItems: "center",
47708
+ justifyContent: "center",
47709
+ gap: "16px",
47710
+ padding: "24px",
47711
+ textAlign: "center"
47712
+ },
47713
+ children: [
47714
+ /* @__PURE__ */ jsx(MessageSquare, { size: 48, style: { color: theme2.colors.textMuted } }),
47715
+ /* @__PURE__ */ jsxs("div", { children: [
47716
+ /* @__PURE__ */ jsx(
47717
+ "h3",
47718
+ {
47719
+ style: {
47720
+ margin: 0,
47721
+ marginBottom: "8px",
47722
+ fontFamily: theme2.fonts.heading,
47723
+ fontSize: theme2.fontSizes[3],
47724
+ fontWeight: 600,
47725
+ color: theme2.colors.text
47726
+ },
47727
+ children: "No Conversation Selected"
47728
+ }
47729
+ ),
47730
+ /* @__PURE__ */ jsx(
47731
+ "p",
47732
+ {
47733
+ style: {
47734
+ margin: 0,
47735
+ fontFamily: theme2.fonts.body,
47736
+ fontSize: theme2.fontSizes[1],
47737
+ color: theme2.colors.textSecondary,
47738
+ lineHeight: 1.5
47739
+ },
47740
+ children: "Select an issue or pull request to view its conversation thread."
47741
+ }
47742
+ )
47743
+ ] })
47744
+ ]
47745
+ }
47746
+ ) });
47747
+ }
47748
+ if (messagesData.loading) {
47749
+ return /* @__PURE__ */ jsx("div", { style: containerStyle, children: /* @__PURE__ */ jsx(
47750
+ "div",
47751
+ {
47752
+ style: {
47753
+ flex: 1,
47754
+ display: "flex",
47755
+ alignItems: "center",
47756
+ justifyContent: "center",
47757
+ color: theme2.colors.textSecondary
47758
+ },
47759
+ children: "Loading conversation..."
47760
+ }
47761
+ ) });
47762
+ }
47763
+ if (messagesData.error) {
47764
+ return /* @__PURE__ */ jsx("div", { style: containerStyle, children: /* @__PURE__ */ jsxs(
47765
+ "div",
47766
+ {
47767
+ style: {
47768
+ flex: 1,
47769
+ display: "flex",
47770
+ flexDirection: "column",
47771
+ alignItems: "center",
47772
+ justifyContent: "center",
47773
+ gap: "8px",
47774
+ color: theme2.colors.error || "#ef4444"
47775
+ },
47776
+ children: [
47777
+ /* @__PURE__ */ jsx(CircleAlert, { size: 32 }),
47778
+ /* @__PURE__ */ jsx("span", { children: messagesData.error })
47779
+ ]
47780
+ }
47781
+ ) });
47782
+ }
47783
+ const { target, timeline, reviewComments } = messagesData;
47784
+ const isPR = target.type === "pull_request";
47785
+ const getStatusConfig = () => {
47786
+ if (isPR && target.merged) {
47787
+ return {
47788
+ icon: /* @__PURE__ */ jsx(GitMerge, { size: 14 }),
47789
+ color: "#a855f7",
47790
+ // purple for merged
47791
+ label: "Merged"
47792
+ };
47793
+ }
47794
+ if (target.state === "open") {
47795
+ return {
47796
+ icon: isPR ? /* @__PURE__ */ jsx(GitPullRequest, { size: 14 }) : /* @__PURE__ */ jsx(CircleDot, { size: 14 }),
47797
+ color: theme2.colors.success || "#22c55e",
47798
+ label: target.draft ? "Draft" : "Open"
47799
+ };
47800
+ }
47801
+ return {
47802
+ icon: /* @__PURE__ */ jsx(CircleDot, { size: 14 }),
47803
+ color: theme2.colors.error || "#ef4444",
47804
+ label: "Closed"
47805
+ };
47806
+ };
47807
+ const statusConfig = getStatusConfig();
47808
+ return /* @__PURE__ */ jsxs("div", { style: containerStyle, children: [
47809
+ /* @__PURE__ */ jsxs(
47810
+ "div",
47811
+ {
47812
+ style: {
47813
+ height: "40px",
47814
+ minHeight: "40px",
47815
+ padding: "0 12px",
47816
+ borderBottom: `1px solid ${theme2.colors.border}`,
47817
+ backgroundColor: theme2.colors.backgroundSecondary,
47818
+ display: "flex",
47819
+ alignItems: "center",
47820
+ gap: "12px",
47821
+ boxSizing: "border-box"
47822
+ },
47823
+ children: [
47824
+ /* @__PURE__ */ jsxs(
47825
+ "span",
47826
+ {
47827
+ style: {
47828
+ display: "inline-flex",
47829
+ alignItems: "center",
47830
+ gap: "6px",
47831
+ fontFamily: theme2.fonts.monospace,
47832
+ fontSize: theme2.fontSizes[0],
47833
+ color: theme2.colors.textSecondary
47834
+ },
47835
+ children: [
47836
+ isPR ? /* @__PURE__ */ jsx(GitPullRequest, { size: 14 }) : /* @__PURE__ */ jsx(CircleDot, { size: 14 }),
47837
+ "#",
47838
+ target.number
47839
+ ]
47840
+ }
47841
+ ),
47842
+ /* @__PURE__ */ jsxs(
47843
+ "span",
47844
+ {
47845
+ style: {
47846
+ display: "inline-flex",
47847
+ alignItems: "center",
47848
+ gap: "6px",
47849
+ padding: "4px 10px",
47850
+ borderRadius: "999px",
47851
+ backgroundColor: `${statusConfig.color}20`,
47852
+ color: statusConfig.color,
47853
+ fontFamily: theme2.fonts.heading,
47854
+ fontSize: theme2.fontSizes[0],
47855
+ fontWeight: 600
47856
+ },
47857
+ children: [
47858
+ statusConfig.icon,
47859
+ statusConfig.label
47860
+ ]
47861
+ }
47862
+ ),
47863
+ /* @__PURE__ */ jsx(
47864
+ "span",
47865
+ {
47866
+ style: {
47867
+ flex: 1,
47868
+ overflow: "hidden",
47869
+ textOverflow: "ellipsis",
47870
+ whiteSpace: "nowrap",
47871
+ color: theme2.colors.text,
47872
+ fontSize: theme2.fontSizes[1]
47873
+ },
47874
+ children: target.title
47875
+ }
47876
+ ),
47877
+ /* @__PURE__ */ jsxs(
47878
+ "span",
47879
+ {
47880
+ style: {
47881
+ display: "inline-flex",
47882
+ alignItems: "center",
47883
+ gap: "4px",
47884
+ color: theme2.colors.textSecondary,
47885
+ fontSize: theme2.fontSizes[0]
47886
+ },
47887
+ children: [
47888
+ /* @__PURE__ */ jsx(MessageSquare, { size: 12 }),
47889
+ timeline.filter((e) => e.event === "commented" || e.event === "reviewed").length
47890
+ ]
47891
+ }
47892
+ ),
47893
+ /* @__PURE__ */ jsx(
47894
+ "a",
47895
+ {
47896
+ href: target.html_url,
47897
+ target: "_blank",
47898
+ rel: "noopener noreferrer",
47899
+ title: "View on GitHub",
47900
+ style: {
47901
+ display: "inline-flex",
47902
+ alignItems: "center",
47903
+ justifyContent: "center",
47904
+ width: "28px",
47905
+ height: "28px",
47906
+ padding: 0,
47907
+ border: `1px solid ${theme2.colors.border}`,
47908
+ borderRadius: "6px",
47909
+ backgroundColor: theme2.colors.background,
47910
+ color: theme2.colors.textSecondary,
47911
+ textDecoration: "none"
47912
+ },
47913
+ children: /* @__PURE__ */ jsx(ExternalLink, { size: 14 })
47914
+ }
47915
+ )
47916
+ ]
47917
+ }
47918
+ ),
47919
+ /* @__PURE__ */ jsx(
47920
+ "div",
47921
+ {
47922
+ style: {
47923
+ flex: 1,
47924
+ overflow: "auto"
47925
+ },
47926
+ children: timeline.length === 0 && reviewComments.length === 0 ? /* @__PURE__ */ jsx(
47927
+ "div",
47928
+ {
47929
+ style: {
47930
+ padding: "40px",
47931
+ textAlign: "center",
47932
+ color: theme2.colors.textMuted,
47933
+ fontFamily: theme2.fonts.body,
47934
+ fontSize: theme2.fontSizes[1]
47935
+ },
47936
+ children: "No activity yet."
47937
+ }
47938
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
47939
+ timeline.map((event, index2) => /* @__PURE__ */ jsx(TimelineEventRenderer, { event }, `${event.event}-${index2}`)),
47940
+ reviewComments.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
47941
+ /* @__PURE__ */ jsxs(
47942
+ "div",
47943
+ {
47944
+ style: {
47945
+ padding: "12px 16px",
47946
+ backgroundColor: theme2.colors.backgroundSecondary,
47947
+ borderBottom: `1px solid ${theme2.colors.border}`,
47948
+ fontWeight: 600,
47949
+ fontSize: theme2.fontSizes[0],
47950
+ color: theme2.colors.textSecondary,
47951
+ textTransform: "uppercase"
47952
+ },
47953
+ children: [
47954
+ "Inline Review Comments (",
47955
+ reviewComments.length,
47956
+ ")"
47957
+ ]
47958
+ }
47959
+ ),
47960
+ reviewComments.map((comment2) => /* @__PURE__ */ jsx(InlineReviewComment, { comment: comment2 }, comment2.id))
47961
+ ] })
47962
+ ] })
47963
+ }
47964
+ )
47965
+ ] });
47966
+ };
47967
+ const GitHubMessagesPanel = (props) => {
47968
+ return /* @__PURE__ */ jsx(GitHubMessagesPanelContent, { ...props });
47969
+ };
47970
+ const GitHubMessagesPanelMetadata = {
47971
+ id: "github-messages",
47972
+ name: "GitHub Messages",
47973
+ description: "View conversation threads for GitHub issues and pull requests",
47974
+ icon: "message-square",
47975
+ version: "0.1.0",
47976
+ slices: ["github-messages"],
47977
+ surfaces: ["panel"]
47978
+ };
46769
47979
  const OwnerRepositoriesPanelContent = ({
46770
47980
  events,
46771
47981
  context,
@@ -48305,6 +49515,92 @@ const refreshIssuesTool = {
48305
49515
  event_type: "github-issues:refresh"
48306
49516
  }
48307
49517
  };
49518
+ const viewIssueMessagesTool = {
49519
+ name: "view_issue_messages",
49520
+ description: "View the conversation thread (comments, timeline events) for a GitHub issue.",
49521
+ inputs: {
49522
+ type: "object",
49523
+ properties: {
49524
+ owner: {
49525
+ type: "string",
49526
+ description: "The repository owner (user or organization)"
49527
+ },
49528
+ repo: {
49529
+ type: "string",
49530
+ description: "The repository name"
49531
+ },
49532
+ number: {
49533
+ type: "number",
49534
+ description: "The issue number"
49535
+ }
49536
+ },
49537
+ required: ["owner", "repo", "number"]
49538
+ },
49539
+ outputs: {
49540
+ type: "object",
49541
+ properties: {
49542
+ success: { type: "boolean" }
49543
+ }
49544
+ },
49545
+ tags: ["github", "issues", "messages", "comments", "conversation"],
49546
+ tool_call_template: {
49547
+ call_template_type: "panel_event",
49548
+ event_type: "github-messages:request"
49549
+ }
49550
+ };
49551
+ const viewPullRequestMessagesTool = {
49552
+ name: "view_pull_request_messages",
49553
+ description: "View the conversation thread (comments, reviews, commits, timeline events) for a GitHub pull request.",
49554
+ inputs: {
49555
+ type: "object",
49556
+ properties: {
49557
+ owner: {
49558
+ type: "string",
49559
+ description: "The repository owner (user or organization)"
49560
+ },
49561
+ repo: {
49562
+ type: "string",
49563
+ description: "The repository name"
49564
+ },
49565
+ number: {
49566
+ type: "number",
49567
+ description: "The pull request number"
49568
+ }
49569
+ },
49570
+ required: ["owner", "repo", "number"]
49571
+ },
49572
+ outputs: {
49573
+ type: "object",
49574
+ properties: {
49575
+ success: { type: "boolean" }
49576
+ }
49577
+ },
49578
+ tags: ["github", "pull-request", "pr", "messages", "comments", "reviews", "conversation"],
49579
+ tool_call_template: {
49580
+ call_template_type: "panel_event",
49581
+ event_type: "github-messages:request"
49582
+ }
49583
+ };
49584
+ const refreshMessagesTool = {
49585
+ name: "refresh_messages",
49586
+ description: "Refresh the conversation thread for the currently viewed issue or pull request.",
49587
+ inputs: {
49588
+ type: "object",
49589
+ properties: {},
49590
+ required: []
49591
+ },
49592
+ outputs: {
49593
+ type: "object",
49594
+ properties: {
49595
+ success: { type: "boolean" }
49596
+ }
49597
+ },
49598
+ tags: ["github", "messages", "refresh", "update"],
49599
+ tool_call_template: {
49600
+ call_template_type: "panel_event",
49601
+ event_type: "github-messages:refresh"
49602
+ }
49603
+ };
48308
49604
  const githubTools = [
48309
49605
  listRepositoriesTool,
48310
49606
  selectRepositoryTool,
@@ -48313,7 +49609,10 @@ const githubTools = [
48313
49609
  openRepositorySwitcherTool,
48314
49610
  requestGitHubLoginTool,
48315
49611
  listIssuesTool,
48316
- refreshIssuesTool
49612
+ refreshIssuesTool,
49613
+ viewIssueMessagesTool,
49614
+ viewPullRequestMessagesTool,
49615
+ refreshMessagesTool
48317
49616
  ];
48318
49617
  const githubToolsMetadata = {
48319
49618
  id: "github-panels",
@@ -48321,6 +49620,18 @@ const githubToolsMetadata = {
48321
49620
  description: "Tools for browsing and managing GitHub repositories",
48322
49621
  tools: githubTools
48323
49622
  };
49623
+ function getTimelineEventType(event) {
49624
+ return event.event;
49625
+ }
49626
+ function isCommentEvent(event) {
49627
+ return event.event === "commented";
49628
+ }
49629
+ function isReviewEvent(event) {
49630
+ return event.event === "reviewed";
49631
+ }
49632
+ function isCommitEvent(event) {
49633
+ return event.event === "committed";
49634
+ }
48324
49635
  const panels = [
48325
49636
  {
48326
49637
  metadata: {
@@ -48393,6 +49704,16 @@ const panels = [
48393
49704
  onUnmount: async (_context) => {
48394
49705
  console.log("Recent Repositories Panel unmounting");
48395
49706
  }
49707
+ },
49708
+ {
49709
+ metadata: GitHubMessagesPanelMetadata,
49710
+ component: GitHubMessagesPanel,
49711
+ onMount: async (_context) => {
49712
+ console.log("GitHub Messages Panel mounted");
49713
+ },
49714
+ onUnmount: async (_context) => {
49715
+ console.log("GitHub Messages Panel unmounting");
49716
+ }
48396
49717
  }
48397
49718
  ];
48398
49719
  const onPackageLoad = async () => {
@@ -48404,6 +49725,7 @@ const onPackageUnload = async () => {
48404
49725
  export {
48405
49726
  GitHubIssueDetailPanel,
48406
49727
  GitHubIssuesPanel,
49728
+ GitHubMessagesPanel,
48407
49729
  GitHubProjectCard,
48408
49730
  GitHubProjectsPanel,
48409
49731
  GitHubSearchPanel,
@@ -48411,8 +49733,12 @@ export {
48411
49733
  RecentRepositoriesPanel,
48412
49734
  addRecentOwner,
48413
49735
  addRecentRepository,
49736
+ getTimelineEventType,
48414
49737
  githubTools,
48415
49738
  githubToolsMetadata,
49739
+ isCommentEvent,
49740
+ isCommitEvent,
49741
+ isReviewEvent,
48416
49742
  listIssuesTool,
48417
49743
  listRepositoriesTool,
48418
49744
  onPackageLoad,
@@ -48421,8 +49747,11 @@ export {
48421
49747
  panels,
48422
49748
  previewRepositoryTool,
48423
49749
  refreshIssuesTool,
49750
+ refreshMessagesTool,
48424
49751
  requestGitHubLoginTool,
48425
49752
  searchRepositoriesTool,
48426
- selectRepositoryTool
49753
+ selectRepositoryTool,
49754
+ viewIssueMessagesTool,
49755
+ viewPullRequestMessagesTool
48427
49756
  };
48428
49757
  //# sourceMappingURL=panels.bundle.js.map