⋯ 19 hidden lines@@ -468,366 +487,366 @@ func Header(l Layout) templ.Component { 468 }() 487 }() 469 } 488 } 470 ctx = templ.InitializeContext(ctx) 489 ctx = templ.InitializeContext(ctx) 471 - templ_7745c5c3_Var26 := templ.GetChildren(ctx) 490 + templ_7745c5c3_Var27 := templ.GetChildren(ctx) 472 - if templ_7745c5c3_Var26 == nil { 491 + if templ_7745c5c3_Var27 == nil { 473 - templ_7745c5c3_Var26 = templ.NopComponent 492 + templ_7745c5c3_Var27 = templ.NopComponent 474 } 493 } 475 ctx = templ.ClearChildren(ctx) 494 ctx = templ.ClearChildren(ctx) 476 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "<header class=\"hdr\"><div class=\"hdr-top\"><a class=\"brand\" href=\"/\" data-g=\"h\" aria-label=\"home\" title=\"home (g h)\"><span class=\"brand-mark\" aria-hidden=\"true\"></span></a> " ) 495 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "<header class=\"hdr\"><div class=\"hdr-top\"><a class=\"brand\" href=\"/\" data-g=\"h\" aria-label=\"home\" title=\"home (g h)\"><span class=\"brand-mark\" aria-hidden=\"true\"></span></a> " ) 477 if templ_7745c5c3_Err != nil { 496 if templ_7745c5c3_Err != nil { 478 return templ_7745c5c3_Err 497 return templ_7745c5c3_Err 479 } 498 } 480 if l.Inbox != nil { 499 if l.Inbox != nil { 481 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<a class=\"btn inbox-btn\" href=\"" ) 500 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<a class=\"btn inbox-btn\" href=\"" ) 482 if templ_7745c5c3_Err != nil { 501 if templ_7745c5c3_Err != nil { 483 return templ_7745c5c3_Err 502 return templ_7745c5c3_Err 484 } 503 } 485 - var templ_7745c5c3_Var27 templ.SafeURL 504 + var templ_7745c5c3_Var28 templ.SafeURL 486 - templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(l.Inbox.Href)) 505 + templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(l.Inbox.Href)) 487 if templ_7745c5c3_Err != nil { 506 if templ_7745c5c3_Err != nil { 488 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 89, Col: 39} 507 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 92, Col: 39} 489 } 508 } 490 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) 509 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) 491 if templ_7745c5c3_Err != nil { 510 if templ_7745c5c3_Err != nil { 492 return templ_7745c5c3_Err 511 return templ_7745c5c3_Err 493 } 512 } 494 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "\" title=\"inbox\"><span class=\"ico i-mailbox\" aria-hidden=\"true\"></span> Inbox " ) 513 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "\" title=\"inbox (I)\" aria-keyshortcuts=\"Shift+I\"><span class=\"ico i-mailbox\" aria-hidden=\"true\"></span> Inbox " ) 495 if templ_7745c5c3_Err != nil { 514 if templ_7745c5c3_Err != nil { 496 return templ_7745c5c3_Err 515 return templ_7745c5c3_Err 497 } 516 } 498 if l.Inbox.Count >= 0 { 517 if l.Inbox.Count >= 0 { 499 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<span class=\"count\">" ) 518 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<span class=\"count\">" ) 500 if templ_7745c5c3_Err != nil { 519 if templ_7745c5c3_Err != nil { 501 return templ_7745c5c3_Err 520 return templ_7745c5c3_Err 502 } 521 } 503 - var templ_7745c5c3_Var28 string 522 + var templ_7745c5c3_Var29 string 504 - templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(l.Inbox.Count)) 523 + templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(l.Inbox.Count)) 505 if templ_7745c5c3_Err != nil { 524 if templ_7745c5c3_Err != nil { 506 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 95, Col: 47} 525 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 99, Col: 47} 507 } 526 } 508 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) 527 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) 509 if templ_7745c5c3_Err != nil { 528 if templ_7745c5c3_Err != nil { 510 return templ_7745c5c3_Err 529 return templ_7745c5c3_Err 511 } 530 } 512 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</span>" ) 531 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</span>" ) 513 if templ_7745c5c3_Err != nil { 532 if templ_7745c5c3_Err != nil { 514 return templ_7745c5c3_Err 533 return templ_7745c5c3_Err 515 } 534 } 516 } 535 } 517 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "</a> " ) 536 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</a> " ) 518 if templ_7745c5c3_Err != nil { 537 if templ_7745c5c3_Err != nil { 519 return templ_7745c5c3_Err 538 return templ_7745c5c3_Err 520 } 539 } 521 } 540 } 522 if len(l.Crumbs) > 0 { 541 if len(l.Crumbs) > 0 { 523 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "<nav class=\"crumbs\" aria-label=\"Path\"><ol>" ) 542 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<nav class=\"crumbs\" aria-label=\"Path\"><ol>" ) 524 if templ_7745c5c3_Err != nil { 543 if templ_7745c5c3_Err != nil { 525 return templ_7745c5c3_Err 544 return templ_7745c5c3_Err 526 } 545 } 527 for _, c := range l.Crumbs { 546 for _, c := range l.Crumbs { 528 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "<li>" ) 547 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "<li>" ) 529 if templ_7745c5c3_Err != nil { 548 if templ_7745c5c3_Err != nil { 530 return templ_7745c5c3_Err 549 return templ_7745c5c3_Err 531 } 550 } 532 if c.Href != "" { 551 if c.Href != "" { 533 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<a href=\"" ) 552 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<a href=\"" ) 534 if templ_7745c5c3_Err != nil { 553 if templ_7745c5c3_Err != nil { 535 return templ_7745c5c3_Err 554 return templ_7745c5c3_Err 536 } 555 } 537 - var templ_7745c5c3_Var29 templ.SafeURL 556 + var templ_7745c5c3_Var30 templ.SafeURL 538 - templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) 557 + templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href)) 539 if templ_7745c5c3_Err != nil { 558 if templ_7745c5c3_Err != nil { 540 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 106, Col: 38} 559 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 110, Col: 38} 541 } 560 } 542 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) 561 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) 543 if templ_7745c5c3_Err != nil { 562 if templ_7745c5c3_Err != nil { 544 return templ_7745c5c3_Err 563 return templ_7745c5c3_Err 545 } 564 } 546 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "\"" ) 565 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "\"" ) 547 if templ_7745c5c3_Err != nil { 566 if templ_7745c5c3_Err != nil { 548 return templ_7745c5c3_Err 567 return templ_7745c5c3_Err 549 } 568 } 550 if c.Current { 569 if c.Current { 551 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, " aria-current=\"page\"" ) 570 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, " aria-current=\"page\"" ) 552 if templ_7745c5c3_Err != nil { 571 if templ_7745c5c3_Err != nil { 553 return templ_7745c5c3_Err 572 return templ_7745c5c3_Err 554 } 573 } 555 } 574 } 556 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, ">" ) 575 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, ">" ) 557 if templ_7745c5c3_Err != nil { 576 if templ_7745c5c3_Err != nil { 558 return templ_7745c5c3_Err 577 return templ_7745c5c3_Err 559 } 578 } 560 - var templ_7745c5c3_Var30 string 579 + var templ_7745c5c3_Var31 string 561 - templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(c.Label) 580 + templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(c.Label) 562 if templ_7745c5c3_Err != nil { 581 if templ_7745c5c3_Err != nil { 563 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 110, Col: 19} 582 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 114, Col: 19} 564 } 583 } 565 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) 584 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) 566 if templ_7745c5c3_Err != nil { 585 if templ_7745c5c3_Err != nil { 567 return templ_7745c5c3_Err 586 return templ_7745c5c3_Err 568 } 587 } 569 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</a>" ) 588 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</a>" ) 570 if templ_7745c5c3_Err != nil { 589 if templ_7745c5c3_Err != nil { 571 return templ_7745c5c3_Err 590 return templ_7745c5c3_Err 572 } 591 } 573 } else { 592 } else { 574 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "<span" ) 593 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "<span" ) 575 if templ_7745c5c3_Err != nil { 594 if templ_7745c5c3_Err != nil { 576 return templ_7745c5c3_Err 595 return templ_7745c5c3_Err 577 } 596 } 578 if c.Current { 597 if c.Current { 579 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, " aria-current=\"page\"" ) 598 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, " aria-current=\"page\"" ) 580 if templ_7745c5c3_Err != nil { 599 if templ_7745c5c3_Err != nil { 581 return templ_7745c5c3_Err 600 return templ_7745c5c3_Err 582 } 601 } 583 } 602 } 584 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, ">" ) 603 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, ">" ) 585 if templ_7745c5c3_Err != nil { 604 if templ_7745c5c3_Err != nil { 586 return templ_7745c5c3_Err 605 return templ_7745c5c3_Err 587 } 606 } 588 - var templ_7745c5c3_Var31 string 607 + var templ_7745c5c3_Var32 string 589 - templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(c.Label) 608 + templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(c.Label) 590 if templ_7745c5c3_Err != nil { 609 if templ_7745c5c3_Err != nil { 591 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 116, Col: 19} 610 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 120, Col: 19} 592 } 611 } 593 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) 612 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) 594 if templ_7745c5c3_Err != nil { 613 if templ_7745c5c3_Err != nil { 595 return templ_7745c5c3_Err 614 return templ_7745c5c3_Err 596 } 615 } 597 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</span>" ) 616 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</span>" ) 598 if templ_7745c5c3_Err != nil { 617 if templ_7745c5c3_Err != nil { 599 return templ_7745c5c3_Err 618 return templ_7745c5c3_Err 600 } 619 } 601 } 620 } 602 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</li>" ) 621 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</li>" ) 603 if templ_7745c5c3_Err != nil { 622 if templ_7745c5c3_Err != nil { 604 return templ_7745c5c3_Err 623 return templ_7745c5c3_Err 605 } 624 } 606 } 625 } 607 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</ol></nav>" ) 626 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</ol></nav>" ) 608 if templ_7745c5c3_Err != nil { 627 if templ_7745c5c3_Err != nil { 609 return templ_7745c5c3_Err 628 return templ_7745c5c3_Err 610 } 629 } 611 } 630 } 612 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<div class=\"hdr-acts\">" ) 631 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<div class=\"hdr-acts\">" ) 613 if templ_7745c5c3_Err != nil { 632 if templ_7745c5c3_Err != nil { 614 return templ_7745c5c3_Err 633 return templ_7745c5c3_Err 615 } 634 } 616 if l.Ref != "" { 635 if l.Ref != "" { 617 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "<a class=\"btn ref\" href=\"" ) 636 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<a class=\"btn ref\" href=\"" ) 618 if templ_7745c5c3_Err != nil { 637 if templ_7745c5c3_Err != nil { 619 return templ_7745c5c3_Err 638 return templ_7745c5c3_Err 620 } 639 } 621 - var templ_7745c5c3_Var32 templ.SafeURL 640 + var templ_7745c5c3_Var33 templ.SafeURL 622 - templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(repoHref(l.Repo, "refs" ))) 641 + templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(repoHref(l.Repo, "refs" ))) 623 if templ_7745c5c3_Err != nil { 642 if templ_7745c5c3_Err != nil { 624 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 127, Col: 52} 643 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 131, Col: 52} 625 } 644 } 626 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) 645 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33)) 627 if templ_7745c5c3_Err != nil { 646 if templ_7745c5c3_Err != nil { 628 return templ_7745c5c3_Err 647 return templ_7745c5c3_Err 629 } 648 } 630 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "\" data-fire=\"refs\" aria-keyshortcuts=\"b\" title=\"switch branch or tag (b)\"><span class=\"ico i-branch\" aria-hidden=\"true\"></span> <span class=\"ref-name\">" ) 649 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "\" data-fire=\"refs\" aria-keyshortcuts=\"b\" title=\"switch branch or tag (b)\"><span class=\"ico i-branch\" aria-hidden=\"true\"></span> <span class=\"ref-name\">" ) 631 if templ_7745c5c3_Err != nil { 650 if templ_7745c5c3_Err != nil { 632 return templ_7745c5c3_Err 651 return templ_7745c5c3_Err 633 } 652 } 634 - var templ_7745c5c3_Var33 string 653 + var templ_7745c5c3_Var34 string 635 - templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(l.Ref) 654 + templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(l.Ref) 636 if templ_7745c5c3_Err != nil { 655 if templ_7745c5c3_Err != nil { 637 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 133, Col: 36} 656 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 137, Col: 36} 638 } 657 } 639 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33)) 658 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) 640 if templ_7745c5c3_Err != nil { 659 if templ_7745c5c3_Err != nil { 641 return templ_7745c5c3_Err 660 return templ_7745c5c3_Err 642 } 661 } 643 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</span> <span class=\"sha\">" ) 662 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "</span> <span class=\"sha\">" ) 644 if templ_7745c5c3_Err != nil { 663 if templ_7745c5c3_Err != nil { 645 return templ_7745c5c3_Err 664 return templ_7745c5c3_Err 646 } 665 } 647 - var templ_7745c5c3_Var34 string 666 + var templ_7745c5c3_Var35 string 648 - templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(l.Short) 667 + templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(l.Short) 649 if templ_7745c5c3_Err != nil { 668 if templ_7745c5c3_Err != nil { 650 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 134, Col: 33} 669 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 138, Col: 33} 651 } 670 } 652 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) 671 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) 653 if templ_7745c5c3_Err != nil { 672 if templ_7745c5c3_Err != nil { 654 return templ_7745c5c3_Err 673 return templ_7745c5c3_Err 655 } 674 } 656 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</span></a> " ) 675 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</span></a> " ) 657 if templ_7745c5c3_Err != nil { 676 if templ_7745c5c3_Err != nil { 658 return templ_7745c5c3_Err 677 return templ_7745c5c3_Err 659 } 678 } 660 } 679 } 661 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<button type=\"button\" class=\"btn search\" data-js aria-haspopup=\"dialog\" aria-controls=\"panel-cmd\" aria-keyshortcuts=\"Control+K :\" title=\"go to a section, ref, file or repo (ctrl k or :)\" data-fire=\"cmd\"><span class=\"ico i-search\" aria-hidden=\"true\"></span> <span class=\"search-label\">Go to…</span> <kbd aria-hidden=\"true\">ctrl k</kbd></button> " ) 680 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<button type=\"button\" class=\"btn search\" data-js aria-haspopup=\"dialog\" aria-controls=\"panel-cmd\" aria-keyshortcuts=\"Control+K :\" title=\"go to a section, ref, file or repo (ctrl k or :)\" data-fire=\"cmd\"><span class=\"ico i-search\" aria-hidden=\"true\"></span> <span class=\"search-label\">Go to…</span> <kbd aria-hidden=\"true\">ctrl k</kbd></button> " ) 662 if templ_7745c5c3_Err != nil { 681 if templ_7745c5c3_Err != nil { 663 return templ_7745c5c3_Err 682 return templ_7745c5c3_Err 664 } 683 } 665 if SignedIn(ctx) { 684 if SignedIn(ctx) { 666 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "<form class=\"owner\" method=\"post\" action=\"/-/logout\"><span class=\"owner-badge\" title=\"signed in as the owner\"><span class=\"ico i-user\" aria-hidden=\"true\"></span>" ) 685 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<form class=\"owner\" method=\"post\" action=\"/-/logout\"><span class=\"owner-badge\" title=\"signed in as the owner\"><span class=\"ico i-user\" aria-hidden=\"true\"></span>" ) 667 if templ_7745c5c3_Err != nil { 686 if templ_7745c5c3_Err != nil { 668 return templ_7745c5c3_Err 687 return templ_7745c5c3_Err 669 } 688 } 670 - var templ_7745c5c3_Var35 string 689 + var templ_7745c5c3_Var36 string 671 - templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(l.Owner) 690 + templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(l.Owner) 672 if templ_7745c5c3_Err != nil { 691 if templ_7745c5c3_Err != nil { 673 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 153, Col: 123} 692 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 157, Col: 123} 674 } 693 } 675 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) 694 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36)) 676 if templ_7745c5c3_Err != nil { 695 if templ_7745c5c3_Err != nil { 677 return templ_7745c5c3_Err 696 return templ_7745c5c3_Err 678 } 697 } 679 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "</span> " ) 698 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</span> " ) 680 if templ_7745c5c3_Err != nil { 699 if templ_7745c5c3_Err != nil { 681 return templ_7745c5c3_Err 700 return templ_7745c5c3_Err 682 } 701 } 683 if l.Passkeys { 702 if l.Passkeys { 684 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<a class=\"btn icon\" href=\"/-/passkeys\" aria-label=\"Passkeys\" title=\"passkeys: add or remove the passkeys that sign you in\"><span class=\"ico i-key\" aria-hidden=\"true\"></span></a> " ) 703 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<a class=\"btn icon\" href=\"/-/passkeys\" aria-label=\"Passkeys\" title=\"passkeys: add or remove the passkeys that sign you in\"><span class=\"ico i-key\" aria-hidden=\"true\"></span></a> " ) 685 if templ_7745c5c3_Err != nil { 704 if templ_7745c5c3_Err != nil { 686 return templ_7745c5c3_Err 705 return templ_7745c5c3_Err 687 } 706 } 688 } 707 } 689 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "<button type=\"submit\" class=\"btn icon\" aria-label=\"Sign out\" title=\"sign out of this browser\"><span class=\"ico i-log-out\" aria-hidden=\"true\"></span></button></form>" ) 708 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "<button type=\"submit\" class=\"btn icon\" aria-label=\"Sign out\" title=\"sign out of this browser\"><span class=\"ico i-log-out\" aria-hidden=\"true\"></span></button></form>" ) 690 if templ_7745c5c3_Err != nil { 709 if templ_7745c5c3_Err != nil { 691 return templ_7745c5c3_Err 710 return templ_7745c5c3_Err 692 } 711 } 693 } else if l.Passkeys { 712 } else if l.Passkeys { 694 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<a class=\"btn icon\" href=\"/-/login\" aria-label=\"Sign in\" title=\"sign in with a passkey\"><span class=\"ico i-log-in\" aria-hidden=\"true\"></span></a>" ) 713 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<a class=\"btn icon\" href=\"/-/login\" aria-label=\"Sign in\" title=\"sign in with a passkey\"><span class=\"ico i-log-in\" aria-hidden=\"true\"></span></a>" ) 695 if templ_7745c5c3_Err != nil { 714 if templ_7745c5c3_Err != nil { 696 return templ_7745c5c3_Err 715 return templ_7745c5c3_Err 697 } 716 } 698 } 717 } 699 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</div></div>" ) 718 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</div></div>" ) 700 if templ_7745c5c3_Err != nil { 719 if templ_7745c5c3_Err != nil { 701 return templ_7745c5c3_Err 720 return templ_7745c5c3_Err 702 } 721 } 703 if len(l.Sections) > 0 { 722 if len(l.Sections) > 0 { 704 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<nav class=\"tabs\" aria-label=\"Sections\"><ul>" ) 723 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<nav class=\"tabs\" aria-label=\"Sections\"><ul>" ) 705 if templ_7745c5c3_Err != nil { 724 if templ_7745c5c3_Err != nil { 706 return templ_7745c5c3_Err 725 return templ_7745c5c3_Err 707 } 726 } 708 for _, s := range l.Sections { 727 for _, s := range l.Sections { 709 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "<li><a href=\"" ) 728 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "<li><a href=\"" ) 710 if templ_7745c5c3_Err != nil { 729 if templ_7745c5c3_Err != nil { 711 return templ_7745c5c3_Err 730 return templ_7745c5c3_Err 712 } 731 } 713 - var templ_7745c5c3_Var36 templ.SafeURL 732 + var templ_7745c5c3_Var37 templ.SafeURL 714 - templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.Href)) 733 + templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(s.Href)) 715 if templ_7745c5c3_Err != nil { 734 if templ_7745c5c3_Err != nil { 716 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 170, Col: 36} 735 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 174, Col: 36} 717 } 736 } 718 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36)) 737 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37)) 719 if templ_7745c5c3_Err != nil { 738 if templ_7745c5c3_Err != nil { 720 return templ_7745c5c3_Err 739 return templ_7745c5c3_Err 721 } 740 } 722 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "\" data-key=\"" ) 741 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "\" data-key=\"" ) 723 if templ_7745c5c3_Err != nil { 742 if templ_7745c5c3_Err != nil { 724 return templ_7745c5c3_Err 743 return templ_7745c5c3_Err 725 } 744 } 726 - var templ_7745c5c3_Var37 string 745 + var templ_7745c5c3_Var38 string 727 - templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Key) 746 + templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Key) 728 if templ_7745c5c3_Err != nil { 747 if templ_7745c5c3_Err != nil { 729 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 171, Col: 24} 748 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 175, Col: 24} 730 } 749 } 731 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37) 750 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var38) 732 if templ_7745c5c3_Err != nil { 751 if templ_7745c5c3_Err != nil { 733 return templ_7745c5c3_Err 752 return templ_7745c5c3_Err 734 } 753 } 735 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "\" aria-keyshortcuts=\"" ) 754 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "\" aria-keyshortcuts=\"" ) 736 if templ_7745c5c3_Err != nil { 755 if templ_7745c5c3_Err != nil { 737 return templ_7745c5c3_Err 756 return templ_7745c5c3_Err 738 } 757 } 739 - var templ_7745c5c3_Var38 string 758 + var templ_7745c5c3_Var39 string 740 - templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Key) 759 + templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.ResolveAttributeValue(s.Key) 741 if templ_7745c5c3_Err != nil { 760 if templ_7745c5c3_Err != nil { 742 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 172, Col: 33} 761 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 176, Col: 33} 743 } 762 } 744 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var38) 763 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var39) 745 if templ_7745c5c3_Err != nil { 764 if templ_7745c5c3_Err != nil { 746 return templ_7745c5c3_Err 765 return templ_7745c5c3_Err 747 } 766 } 748 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "\"" ) 767 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "\"" ) 749 if templ_7745c5c3_Err != nil { 768 if templ_7745c5c3_Err != nil { 750 return templ_7745c5c3_Err 769 return templ_7745c5c3_Err 751 } 770 } 752 if s.Current { 771 if s.Current { 753 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, " aria-current=\"page\"" ) 772 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, " aria-current=\"page\"" ) 754 if templ_7745c5c3_Err != nil { 773 if templ_7745c5c3_Err != nil { 755 return templ_7745c5c3_Err 774 return templ_7745c5c3_Err 756 } 775 } 757 } 776 } 758 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, ">" ) 777 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, ">" ) 759 if templ_7745c5c3_Err != nil { 778 if templ_7745c5c3_Err != nil { 760 return templ_7745c5c3_Err 779 return templ_7745c5c3_Err 761 } 780 } 762 - var templ_7745c5c3_Var39 string 781 + var templ_7745c5c3_Var40 string 763 - templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(s.Label) 782 + templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(s.Label) 764 if templ_7745c5c3_Err != nil { 783 if templ_7745c5c3_Err != nil { 765 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 177, Col: 17} 784 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 181, Col: 17} 766 } 785 } 767 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) 786 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40)) 768 if templ_7745c5c3_Err != nil { 787 if templ_7745c5c3_Err != nil { 769 return templ_7745c5c3_Err 788 return templ_7745c5c3_Err 770 } 789 } 771 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, " " ) 790 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, " " ) 772 if templ_7745c5c3_Err != nil { 791 if templ_7745c5c3_Err != nil { 773 return templ_7745c5c3_Err 792 return templ_7745c5c3_Err 774 } 793 } 775 if s.Count != "" { 794 if s.Count != "" { 776 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "<span class=\"count\">" ) 795 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "<span class=\"count\">" ) 777 if templ_7745c5c3_Err != nil { 796 if templ_7745c5c3_Err != nil { 778 return templ_7745c5c3_Err 797 return templ_7745c5c3_Err 779 } 798 } 780 - var templ_7745c5c3_Var40 string 799 + var templ_7745c5c3_Var41 string 781 - templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(s.Count) 800 + templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(s.Count) 782 if templ_7745c5c3_Err != nil { 801 if templ_7745c5c3_Err != nil { 783 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 179, Col: 38} 802 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 183, Col: 38} 784 } 803 } 785 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40)) 804 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) 786 if templ_7745c5c3_Err != nil { 805 if templ_7745c5c3_Err != nil { 787 return templ_7745c5c3_Err 806 return templ_7745c5c3_Err 788 } 807 } 789 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "<span class=\"sr\">" ) 808 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "<span class=\"sr\">" ) 790 if templ_7745c5c3_Err != nil { 809 if templ_7745c5c3_Err != nil { 791 return templ_7745c5c3_Err 810 return templ_7745c5c3_Err 792 } 811 } 793 - var templ_7745c5c3_Var41 string 812 + var templ_7745c5c3_Var42 string 794 - templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(" open" ) 813 + templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(" open" ) 795 if templ_7745c5c3_Err != nil { 814 if templ_7745c5c3_Err != nil { 796 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 179, Col: 66} 815 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 183, Col: 66} 797 } 816 } 798 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) 817 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) 799 if templ_7745c5c3_Err != nil { 818 if templ_7745c5c3_Err != nil { 800 return templ_7745c5c3_Err 819 return templ_7745c5c3_Err 801 } 820 } 802 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</span></span> " ) 821 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</span></span> " ) 803 if templ_7745c5c3_Err != nil { 822 if templ_7745c5c3_Err != nil { 804 return templ_7745c5c3_Err 823 return templ_7745c5c3_Err 805 } 824 } 806 } 825 } 807 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "<kbd aria-hidden=\"true\">" ) 826 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<kbd aria-hidden=\"true\">" ) 808 if templ_7745c5c3_Err != nil { 827 if templ_7745c5c3_Err != nil { 809 return templ_7745c5c3_Err 828 return templ_7745c5c3_Err 810 } 829 } 811 - var templ_7745c5c3_Var42 string 830 + var templ_7745c5c3_Var43 string 812 - templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(s.Key) 831 + templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(s.Key) 813 if templ_7745c5c3_Err != nil { 832 if templ_7745c5c3_Err != nil { 814 - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 181, Col: 39} 833 + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/shell.templ` , Line: 185, Col: 39} 815 } 834 } 816 - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) 835 + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43)) 817 if templ_7745c5c3_Err != nil { 836 if templ_7745c5c3_Err != nil { 818 return templ_7745c5c3_Err 837 return templ_7745c5c3_Err 819 } 838 } 820 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</kbd></a></li>" ) 839 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</kbd></a></li>" ) 821 if templ_7745c5c3_Err != nil { 840 if templ_7745c5c3_Err != nil { 822 return templ_7745c5c3_Err 841 return templ_7745c5c3_Err 823 } 842 } 824 } 843 } 825 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "</ul></nav>" ) 844 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "</ul></nav>" ) 826 if templ_7745c5c3_Err != nil { 845 if templ_7745c5c3_Err != nil { 827 return templ_7745c5c3_Err 846 return templ_7745c5c3_Err 828 } 847 } 829 } 848 } 830 - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</header>" ) 849 + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "</header>" ) 831 if templ_7745c5c3_Err != nil { 850 if templ_7745c5c3_Err != nil { 832 return templ_7745c5c3_Err 851 return templ_7745c5c3_Err 833 } 852 }