detached 72d0556

fix(web): keep the merge box inside its popover and the MR URL after a refused merge

commit
72d05565440393e987aa46ca58611e6b1928e6c0
author
brice · · 2026-10-19 14:30 UTC
committer
brice · · 2026-10-19 14:37 UTC
parent
1790409
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
6 files · +783 -759
M internal/adapters/web/mr.go +7 -0
@@ -267,6 +267,10 @@ type MRPage struct {
267267 // MergeError is why a merge was refused when the page has no merge box
268268 // to show it in (the request is not open any more).
269269 MergeError string
270+ // Canonical is the address of the request, set when the page answers a
271+ // refused action from the address of that action: the script puts it in
272+ // the address bar, so that a reload does not post again.
273+ Canonical string
270274
271275 Since *SinceNav
272276 SinceNote string
@@ -716,6 +720,9 @@ func (s *Server) mrPage(ctx context.Context, r *http.Request, since bool) (templ
716720 p.Box.ReadyAction = mrHref(d.name(), n, "ready")
717721 }
718722 }
723+ if mergeErrorOf(ctx) != "" {
724+ p.Canonical = self
725+ }
719726 if p.Box == nil {
720727 p.MergeError = mergeErrorOf(ctx) // the request is not open any more
721728 }
@@ -267,6 +267,10 @@ type MRPage struct {
267 // MergeError is why a merge was refused when the page has no merge box267 // MergeError is why a merge was refused when the page has no merge box
268 // to show it in (the request is not open any more).268 // to show it in (the request is not open any more).
269 MergeError string269 MergeError string
270+ // Canonical is the address of the request, set when the page answers a
271+ // refused action from the address of that action: the script puts it in
272+ // the address bar, so that a reload does not post again.
273+ Canonical string
270 274
271 Since *SinceNav275 Since *SinceNav
272 SinceNote string276 SinceNote string
@@ -716,6 +720,9 @@ func (s *Server) mrPage(ctx context.Context, r *http.Request, since bool) (templ
716 p.Box.ReadyAction = mrHref(d.name(), n, "ready")720 p.Box.ReadyAction = mrHref(d.name(), n, "ready")
717 }721 }
718 }722 }
723+ if mergeErrorOf(ctx) != "" {
724+ p.Canonical = self
725+ }
719 if p.Box == nil {726 if p.Box == nil {
720 p.MergeError = mergeErrorOf(ctx) // the request is not open any more727 p.MergeError = mergeErrorOf(ctx) // the request is not open any more
721 }728 }
M internal/adapters/web/mr.templ +6 -3
@@ -185,6 +185,9 @@ templ MergeRequest(l Layout, p MRPage) {
185185 <div
186186 id="diffs"
187187 data-mr
188+ if p.Canonical != "" {
189+ data-canonical={ p.Canonical }
190+ }
188191 if p.Both {
189192 data-diff={ p.View }
190193 } else {
@@ -518,11 +521,11 @@ templ mergeMenu(p MRPage) {
518521 </fieldset>
519522 if p.Box.Signed {
520523 <p class="d-note" id="mr-signing">
521- squash and merge commits are signed with ermite's own key, generated automatically on first start.
524+ squash and merge commits are signed with ermite's own key (generated on first start).
522525 if p.Box.Fingerprint != "" {
523- { " " }key <code>{ p.Box.Fingerprint }</code>.
526+ fingerprint <code>{ p.Box.Fingerprint }</code>
524527 }
525- { " " }<code>ermite signing-key show</code> prints the public key to verify them.
528+ <code>ermite signing-key show</code> prints it.
526529 </p>
527530 }
528531 if p.Box.CanDeleteBranch {
@@ -185,6 +185,9 @@ templ MergeRequest(l Layout, p MRPage) {
185 <div185 <div
186 id="diffs"186 id="diffs"
187 data-mr187 data-mr
188+ if p.Canonical != "" {
189+ data-canonical={ p.Canonical }
190+ }
188 if p.Both {191 if p.Both {
189 data-diff={ p.View }192 data-diff={ p.View }
190 } else {193 } else {
@@ -518,11 +521,11 @@ templ mergeMenu(p MRPage) {
518 </fieldset>521 </fieldset>
519 if p.Box.Signed {522 if p.Box.Signed {
520 <p class="d-note" id="mr-signing">523 <p class="d-note" id="mr-signing">
521- squash and merge commits are signed with ermite's own key, generated automatically on first start.524+ squash and merge commits are signed with ermite's own key (generated on first start).
522 if p.Box.Fingerprint != "" {525 if p.Box.Fingerprint != "" {
523- { " " }key <code>{ p.Box.Fingerprint }</code>.526+ fingerprint <code>{ p.Box.Fingerprint }</code>
524 }527 }
525- { " " }<code>ermite signing-key show</code> prints the public key to verify them.528+ <code>ermite signing-key show</code> prints it.
526 </p>529 </p>
527 }530 }
528 if p.Box.CanDeleteBranch {531 if p.Box.CanDeleteBranch {
M internal/adapters/web/mr_templ.go +756 -755
@@ -1025,15 +1025,15 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
10251025 if templ_7745c5c3_Err != nil {
10261026 return templ_7745c5c3_Err
10271027 }
1028- if p.Both {
1029- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, " data-diff=\"")
1028+ if p.Canonical != "" {
1029+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, " data-canonical=\"")
10301030 if templ_7745c5c3_Err != nil {
10311031 return templ_7745c5c3_Err
10321032 }
10331033 var templ_7745c5c3_Var51 string
1034- templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
1034+ templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Canonical)
10351035 if templ_7745c5c3_Err != nil {
1036- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 189, Col: 22}
1036+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 189, Col: 32}
10371037 }
10381038 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var51)
10391039 if templ_7745c5c3_Err != nil {
@@ -1043,15 +1043,16 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
10431043 if templ_7745c5c3_Err != nil {
10441044 return templ_7745c5c3_Err
10451045 }
1046- } else {
1047- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, " data-view=\"")
1046+ }
1047+ if p.Both {
1048+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, " data-diff=\"")
10481049 if templ_7745c5c3_Err != nil {
10491050 return templ_7745c5c3_Err
10501051 }
10511052 var templ_7745c5c3_Var52 string
10521053 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
10531054 if templ_7745c5c3_Err != nil {
1054- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 191, Col: 22}
1055+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 192, Col: 22}
10551056 }
10561057 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var52)
10571058 if templ_7745c5c3_Err != nil {
@@ -1061,14 +1062,32 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
10611062 if templ_7745c5c3_Err != nil {
10621063 return templ_7745c5c3_Err
10631064 }
1065+ } else {
1066+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " data-view=\"")
1067+ if templ_7745c5c3_Err != nil {
1068+ return templ_7745c5c3_Err
1069+ }
1070+ var templ_7745c5c3_Var53 string
1071+ templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
1072+ if templ_7745c5c3_Err != nil {
1073+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 194, Col: 22}
1074+ }
1075+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var53)
1076+ if templ_7745c5c3_Err != nil {
1077+ return templ_7745c5c3_Err
1078+ }
1079+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"")
1080+ if templ_7745c5c3_Err != nil {
1081+ return templ_7745c5c3_Err
1082+ }
10641083 }
10651084 if p.Both && !p.Pinned {
1066- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
1085+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
10671086 if templ_7745c5c3_Err != nil {
10681087 return templ_7745c5c3_Err
10691088 }
10701089 }
1071- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, ">")
1090+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, ">")
10721091 if templ_7745c5c3_Err != nil {
10731092 return templ_7745c5c3_Err
10741093 }
@@ -1079,38 +1098,38 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
10791098 }
10801099 }
10811100 if len(p.Files) == 0 {
1082- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "<p class=\"note\">no changed files.</p>")
1101+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "<p class=\"note\">no changed files.</p>")
10831102 if templ_7745c5c3_Err != nil {
10841103 return templ_7745c5c3_Err
10851104 }
10861105 }
1087- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</div><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">")
1106+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "</div><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">")
10881107 if templ_7745c5c3_Err != nil {
10891108 return templ_7745c5c3_Err
10901109 }
1091- var templ_7745c5c3_Var53 string
1092- templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NUnresolved))
1110+ var templ_7745c5c3_Var54 string
1111+ templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NUnresolved))
10931112 if templ_7745c5c3_Err != nil {
1094- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 204, Col: 97}
1113+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 207, Col: 97}
10951114 }
1096- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var53))
1115+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
10971116 if templ_7745c5c3_Err != nil {
10981117 return templ_7745c5c3_Err
10991118 }
1100- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, " open / ")
1119+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, " open / ")
11011120 if templ_7745c5c3_Err != nil {
11021121 return templ_7745c5c3_Err
11031122 }
1104- var templ_7745c5c3_Var54 string
1105- templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NComments))
1123+ var templ_7745c5c3_Var55 string
1124+ templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NComments))
11061125 if templ_7745c5c3_Err != nil {
1107- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 204, Col: 126}
1126+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 207, Col: 126}
11081127 }
1109- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
1128+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
11101129 if templ_7745c5c3_Err != nil {
11111130 return templ_7745c5c3_Err
11121131 }
1113- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "</span></h2>")
1132+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</span></h2>")
11141133 if templ_7745c5c3_Err != nil {
11151134 return templ_7745c5c3_Err
11161135 }
@@ -1126,17 +1145,17 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
11261145 return templ_7745c5c3_Err
11271146 }
11281147 }
1129- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, " ")
1148+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, " ")
11301149 if templ_7745c5c3_Err != nil {
11311150 return templ_7745c5c3_Err
11321151 }
11331152 if p.NComments == 0 {
1134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "<p class=\"dim\">no comments yet.</p>")
1153+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "<p class=\"dim\">no comments yet.</p>")
11351154 if templ_7745c5c3_Err != nil {
11361155 return templ_7745c5c3_Err
11371156 }
11381157 }
1139- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, " ")
1158+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, " ")
11401159 if templ_7745c5c3_Err != nil {
11411160 return templ_7745c5c3_Err
11421161 }
@@ -1172,49 +1191,49 @@ func branchLink(name, href string) templ.Component {
11721191 }()
11731192 }
11741193 ctx = templ.InitializeContext(ctx)
1175- templ_7745c5c3_Var55 := templ.GetChildren(ctx)
1176- if templ_7745c5c3_Var55 == nil {
1177- templ_7745c5c3_Var55 = templ.NopComponent
1194+ templ_7745c5c3_Var56 := templ.GetChildren(ctx)
1195+ if templ_7745c5c3_Var56 == nil {
1196+ templ_7745c5c3_Var56 = templ.NopComponent
11781197 }
11791198 ctx = templ.ClearChildren(ctx)
11801199 if href != "" {
1181- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "<a href=\"")
1200+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "<a href=\"")
11821201 if templ_7745c5c3_Err != nil {
11831202 return templ_7745c5c3_Err
11841203 }
1185- var templ_7745c5c3_Var56 templ.SafeURL
1186- templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))
1204+ var templ_7745c5c3_Var57 templ.SafeURL
1205+ templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))
11871206 if templ_7745c5c3_Err != nil {
1188- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 222, Col: 31}
1207+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 225, Col: 31}
11891208 }
1190- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))
1209+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
11911210 if templ_7745c5c3_Err != nil {
11921211 return templ_7745c5c3_Err
11931212 }
1194- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "\">")
1213+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "\">")
11951214 if templ_7745c5c3_Err != nil {
11961215 return templ_7745c5c3_Err
11971216 }
1198- var templ_7745c5c3_Var57 string
1199- templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinStringErrs(name)
1217+ var templ_7745c5c3_Var58 string
1218+ templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(name)
12001219 if templ_7745c5c3_Err != nil {
1201- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 222, Col: 40}
1220+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 225, Col: 40}
12021221 }
1203- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
1222+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
12041223 if templ_7745c5c3_Err != nil {
12051224 return templ_7745c5c3_Err
12061225 }
1207- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "</a>")
1226+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "</a>")
12081227 if templ_7745c5c3_Err != nil {
12091228 return templ_7745c5c3_Err
12101229 }
12111230 } else {
1212- var templ_7745c5c3_Var58 string
1213- templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(name)
1231+ var templ_7745c5c3_Var59 string
1232+ templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(name)
12141233 if templ_7745c5c3_Err != nil {
1215- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 224, Col: 8}
1234+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 227, Col: 8}
12161235 }
1217- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
1236+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))
12181237 if templ_7745c5c3_Err != nil {
12191238 return templ_7745c5c3_Err
12201239 }
@@ -1242,9 +1261,9 @@ func lineNotes(notes []CommentView, form *CommentForm, suffix string) templ.Comp
12421261 }()
12431262 }
12441263 ctx = templ.InitializeContext(ctx)
1245- templ_7745c5c3_Var59 := templ.GetChildren(ctx)
1246- if templ_7745c5c3_Var59 == nil {
1247- templ_7745c5c3_Var59 = templ.NopComponent
1264+ templ_7745c5c3_Var60 := templ.GetChildren(ctx)
1265+ if templ_7745c5c3_Var60 == nil {
1266+ templ_7745c5c3_Var60 = templ.NopComponent
12481267 }
12491268 ctx = templ.ClearChildren(ctx)
12501269 for _, c := range notes {
@@ -1281,134 +1300,119 @@ func commentView(c CommentView, suffix string) templ.Component {
12811300 }()
12821301 }
12831302 ctx = templ.InitializeContext(ctx)
1284- templ_7745c5c3_Var60 := templ.GetChildren(ctx)
1285- if templ_7745c5c3_Var60 == nil {
1286- templ_7745c5c3_Var60 = templ.NopComponent
1303+ templ_7745c5c3_Var61 := templ.GetChildren(ctx)
1304+ if templ_7745c5c3_Var61 == nil {
1305+ templ_7745c5c3_Var61 = templ.NopComponent
12871306 }
12881307 ctx = templ.ClearChildren(ctx)
1289- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "<div class=\"cmt\" id=\"")
1308+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "<div class=\"cmt\" id=\"")
12901309 if templ_7745c5c3_Err != nil {
12911310 return templ_7745c5c3_Err
12921311 }
1293- var templ_7745c5c3_Var61 string
1294- templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.ResolveAttributeValue("c" + c.ID + suffix)
1312+ var templ_7745c5c3_Var62 string
1313+ templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue("c" + c.ID + suffix)
12951314 if templ_7745c5c3_Err != nil {
1296- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 243, Col: 42}
1315+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 246, Col: 42}
12971316 }
1298- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var61)
1317+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62)
12991318 if templ_7745c5c3_Err != nil {
13001319 return templ_7745c5c3_Err
13011320 }
1302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "\" data-resolved=\"")
1321+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "\" data-resolved=\"")
13031322 if templ_7745c5c3_Err != nil {
13041323 return templ_7745c5c3_Err
13051324 }
1306- var templ_7745c5c3_Var62 string
1307- templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolved))
1325+ var templ_7745c5c3_Var63 string
1326+ templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolved))
13081327 if templ_7745c5c3_Err != nil {
1309- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 243, Col: 81}
1328+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 246, Col: 81}
13101329 }
1311- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62)
1330+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63)
13121331 if templ_7745c5c3_Err != nil {
13131332 return templ_7745c5c3_Err
13141333 }
1315- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "\"")
1334+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "\"")
13161335 if templ_7745c5c3_Err != nil {
13171336 return templ_7745c5c3_Err
13181337 }
13191338 if c.Reply != nil {
1320- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, " data-thread")
1339+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, " data-thread")
13211340 if templ_7745c5c3_Err != nil {
13221341 return templ_7745c5c3_Err
13231342 }
13241343 }
1325- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "><p class=\"c-head\"><span class=\"c-who\">")
1344+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "><p class=\"c-head\"><span class=\"c-who\">")
13261345 if templ_7745c5c3_Err != nil {
13271346 return templ_7745c5c3_Err
13281347 }
1329- var templ_7745c5c3_Var63 string
1330- templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
1348+ var templ_7745c5c3_Var64 string
1349+ templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
13311350 if templ_7745c5c3_Err != nil {
1332- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 245, Col: 33}
1351+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 248, Col: 33}
13331352 }
1334- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
1353+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
13351354 if templ_7745c5c3_Err != nil {
13361355 return templ_7745c5c3_Err
13371356 }
1338- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "</span> ")
1357+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "</span> ")
13391358 if templ_7745c5c3_Err != nil {
13401359 return templ_7745c5c3_Err
13411360 }
13421361 if c.WhenAt != "" {
1343- var templ_7745c5c3_Var64 string
1344- templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1345- if templ_7745c5c3_Err != nil {
1346- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 9}
1347- }
1348- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
1349- if templ_7745c5c3_Err != nil {
1350- return templ_7745c5c3_Err
1351- }
1352- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "<time class=\"mute\" datetime=\"")
1353- if templ_7745c5c3_Err != nil {
1354- return templ_7745c5c3_Err
1355- }
13561362 var templ_7745c5c3_Var65 string
1357- templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
1363+ templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
13581364 if templ_7745c5c3_Err != nil {
1359- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 49}
1365+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 9}
13601366 }
1361- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var65)
1367+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
13621368 if templ_7745c5c3_Err != nil {
13631369 return templ_7745c5c3_Err
13641370 }
1365- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "\" title=\"")
1371+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "<time class=\"mute\" datetime=\"")
13661372 if templ_7745c5c3_Err != nil {
13671373 return templ_7745c5c3_Err
13681374 }
13691375 var templ_7745c5c3_Var66 string
1370- templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs)
1376+ templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
13711377 if templ_7745c5c3_Err != nil {
1372- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 65}
1378+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 49}
13731379 }
13741380 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)
13751381 if templ_7745c5c3_Err != nil {
13761382 return templ_7745c5c3_Err
13771383 }
1378- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "\">")
1384+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "\" title=\"")
13791385 if templ_7745c5c3_Err != nil {
13801386 return templ_7745c5c3_Err
13811387 }
13821388 var templ_7745c5c3_Var67 string
1383- templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
1389+ templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs)
13841390 if templ_7745c5c3_Err != nil {
1385- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 76}
1391+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 65}
13861392 }
1387- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var67))
1393+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67)
13881394 if templ_7745c5c3_Err != nil {
13891395 return templ_7745c5c3_Err
13901396 }
1391- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "</time> ")
1397+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "\">")
13921398 if templ_7745c5c3_Err != nil {
13931399 return templ_7745c5c3_Err
13941400 }
1395- }
1396- if c.Resolved {
13971401 var templ_7745c5c3_Var68 string
1398- templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1402+ templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
13991403 if templ_7745c5c3_Err != nil {
1400- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 9}
1404+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 76}
14011405 }
14021406 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
14031407 if templ_7745c5c3_Err != nil {
14041408 return templ_7745c5c3_Err
14051409 }
1406- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<span class=\"c-state\">resolved</span> ")
1410+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "</time> ")
14071411 if templ_7745c5c3_Err != nil {
14081412 return templ_7745c5c3_Err
14091413 }
14101414 }
1411- if c.Outdated {
1415+ if c.Resolved {
14121416 var templ_7745c5c3_Var69 string
14131417 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
14141418 if templ_7745c5c3_Err != nil {
@@ -1418,12 +1422,12 @@ func commentView(c CommentView, suffix string) templ.Component {
14181422 if templ_7745c5c3_Err != nil {
14191423 return templ_7745c5c3_Err
14201424 }
1421- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<span class=\"c-state\" title=\"written on an earlier head; the line may have moved\">outdated</span> ")
1425+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "<span class=\"c-state\">resolved</span> ")
14221426 if templ_7745c5c3_Err != nil {
14231427 return templ_7745c5c3_Err
14241428 }
14251429 }
1426- if c.Where != "" {
1430+ if c.Outdated {
14271431 var templ_7745c5c3_Var70 string
14281432 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
14291433 if templ_7745c5c3_Err != nil {
@@ -1433,30 +1437,45 @@ func commentView(c CommentView, suffix string) templ.Component {
14331437 if templ_7745c5c3_Err != nil {
14341438 return templ_7745c5c3_Err
14351439 }
1436- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "<span class=\"c-where mute\">")
1440+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"c-state\" title=\"written on an earlier head; the line may have moved\">outdated</span> ")
14371441 if templ_7745c5c3_Err != nil {
14381442 return templ_7745c5c3_Err
14391443 }
1444+ }
1445+ if c.Where != "" {
14401446 var templ_7745c5c3_Var71 string
1441- templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where)
1447+ templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
14421448 if templ_7745c5c3_Err != nil {
1443- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 256, Col: 47}
1449+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 259, Col: 9}
14441450 }
14451451 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71))
14461452 if templ_7745c5c3_Err != nil {
14471453 return templ_7745c5c3_Err
14481454 }
1449- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "</span>")
1455+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "<span class=\"c-where mute\">")
1456+ if templ_7745c5c3_Err != nil {
1457+ return templ_7745c5c3_Err
1458+ }
1459+ var templ_7745c5c3_Var72 string
1460+ templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where)
1461+ if templ_7745c5c3_Err != nil {
1462+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 259, Col: 47}
1463+ }
1464+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))
1465+ if templ_7745c5c3_Err != nil {
1466+ return templ_7745c5c3_Err
1467+ }
1468+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "</span>")
14501469 if templ_7745c5c3_Err != nil {
14511470 return templ_7745c5c3_Err
14521471 }
14531472 }
1454- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "</p>")
1473+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</p>")
14551474 if templ_7745c5c3_Err != nil {
14561475 return templ_7745c5c3_Err
14571476 }
14581477 if len(c.Parts) > 0 {
1459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "<p class=\"c-text\">")
1478+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "<p class=\"c-text\">")
14601479 if templ_7745c5c3_Err != nil {
14611480 return templ_7745c5c3_Err
14621481 }
@@ -1464,24 +1483,24 @@ func commentView(c CommentView, suffix string) templ.Component {
14641483 if templ_7745c5c3_Err != nil {
14651484 return templ_7745c5c3_Err
14661485 }
1467- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</p>")
1486+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "</p>")
14681487 if templ_7745c5c3_Err != nil {
14691488 return templ_7745c5c3_Err
14701489 }
14711490 } else if c.Deleted {
14721491 if c.Verdict != "" {
1473- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "<p class=\"mute\">text deleted</p>")
1492+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "<p class=\"mute\">text deleted</p>")
14741493 if templ_7745c5c3_Err != nil {
14751494 return templ_7745c5c3_Err
14761495 }
14771496 } else {
1478- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "<p class=\"mute\">deleted note</p>")
1497+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "<p class=\"mute\">deleted note</p>")
14791498 if templ_7745c5c3_Err != nil {
14801499 return templ_7745c5c3_Err
14811500 }
14821501 }
14831502 } else {
1484- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "<div class=\"c-body prose\">")
1503+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "<div class=\"c-body prose\">")
14851504 if templ_7745c5c3_Err != nil {
14861505 return templ_7745c5c3_Err
14871506 }
@@ -1496,147 +1515,147 @@ func commentView(c CommentView, suffix string) templ.Component {
14961515 return templ_7745c5c3_Err
14971516 }
14981517 }
1499- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "</div>")
1518+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "</div>")
15001519 if templ_7745c5c3_Err != nil {
15011520 return templ_7745c5c3_Err
15021521 }
15031522 }
15041523 if c.Edited {
1505- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "<span class=\"mute\">edited</span> ")
1524+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "<span class=\"mute\">edited</span> ")
15061525 if templ_7745c5c3_Err != nil {
15071526 return templ_7745c5c3_Err
15081527 }
15091528 }
15101529 if c.Verdict != "" {
1511- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "<span class=\"c-state\">")
1530+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<span class=\"c-state\">")
15121531 if templ_7745c5c3_Err != nil {
15131532 return templ_7745c5c3_Err
15141533 }
1515- var templ_7745c5c3_Var72 string
1516- templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict)
1534+ var templ_7745c5c3_Var73 string
1535+ templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict)
15171536 if templ_7745c5c3_Err != nil {
1518- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 280, Col: 36}
1537+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 283, Col: 36}
15191538 }
1520- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))
1539+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73))
15211540 if templ_7745c5c3_Err != nil {
15221541 return templ_7745c5c3_Err
15231542 }
1524- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "</span> ")
1543+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "</span> ")
15251544 if templ_7745c5c3_Err != nil {
15261545 return templ_7745c5c3_Err
15271546 }
15281547 }
15291548 if c.Range != "" {
1530- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<span class=\"mute\">")
1549+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<span class=\"mute\">")
15311550 if templ_7745c5c3_Err != nil {
15321551 return templ_7745c5c3_Err
15331552 }
1534- var templ_7745c5c3_Var73 string
1535- templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range)
1553+ var templ_7745c5c3_Var74 string
1554+ templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range)
15361555 if templ_7745c5c3_Err != nil {
1537- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 283, Col: 31}
1556+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 286, Col: 31}
15381557 }
1539- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73))
1558+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var74))
15401559 if templ_7745c5c3_Err != nil {
15411560 return templ_7745c5c3_Err
15421561 }
1543- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "</span> ")
1562+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "</span> ")
15441563 if templ_7745c5c3_Err != nil {
15451564 return templ_7745c5c3_Err
15461565 }
15471566 }
15481567 if c.Quote != "" {
1549- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<button type=\"button\" class=\"btn\" data-js data-quote=\"")
1568+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "<button type=\"button\" class=\"btn\" data-js data-quote=\"")
15501569 if templ_7745c5c3_Err != nil {
15511570 return templ_7745c5c3_Err
15521571 }
1553- var templ_7745c5c3_Var74 string
1554- templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote)
1572+ var templ_7745c5c3_Var75 string
1573+ templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote)
15551574 if templ_7745c5c3_Err != nil {
1556- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 286, Col: 65}
1575+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 65}
15571576 }
1558- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74)
1577+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var75)
15591578 if templ_7745c5c3_Err != nil {
15601579 return templ_7745c5c3_Err
15611580 }
1562- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "\">Quote</button> ")
1581+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "\">Quote</button> ")
15631582 if templ_7745c5c3_Err != nil {
15641583 return templ_7745c5c3_Err
15651584 }
15661585 }
15671586 if c.Edit != nil {
1568- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "<details><summary>Edit</summary><form method=\"post\" action=\"")
1587+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "<details><summary>Edit</summary><form method=\"post\" action=\"")
15691588 if templ_7745c5c3_Err != nil {
15701589 return templ_7745c5c3_Err
15711590 }
1572- var templ_7745c5c3_Var75 templ.SafeURL
1573- templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action))
1591+ var templ_7745c5c3_Var76 templ.SafeURL
1592+ templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action))
15741593 if templ_7745c5c3_Err != nil {
1575- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 92}
1594+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 92}
15761595 }
1577- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75))
1596+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76))
15781597 if templ_7745c5c3_Err != nil {
15791598 return templ_7745c5c3_Err
15801599 }
1581- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "\"><input type=\"hidden\" name=\"from\" value=\"")
1600+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "\"><input type=\"hidden\" name=\"from\" value=\"")
15821601 if templ_7745c5c3_Err != nil {
15831602 return templ_7745c5c3_Err
15841603 }
1585- var templ_7745c5c3_Var76 string
1586- templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From))
1604+ var templ_7745c5c3_Var77 string
1605+ templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From))
15871606 if templ_7745c5c3_Err != nil {
1588- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 153}
1607+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 153}
15891608 }
1590- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var76)
1609+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77)
15911610 if templ_7745c5c3_Err != nil {
15921611 return templ_7745c5c3_Err
15931612 }
1594- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\"><textarea name=\"text\" maxlength=\"8000\">")
1613+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "\"><textarea name=\"text\" maxlength=\"8000\">")
15951614 if templ_7745c5c3_Err != nil {
15961615 return templ_7745c5c3_Err
15971616 }
1598- var templ_7745c5c3_Var77 string
1599- templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text)
1617+ var templ_7745c5c3_Var78 string
1618+ templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text)
16001619 if templ_7745c5c3_Err != nil {
1601- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 209}
1620+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 209}
16021621 }
1603- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var77))
1622+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78))
16041623 if templ_7745c5c3_Err != nil {
16051624 return templ_7745c5c3_Err
16061625 }
1607- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ")
1626+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ")
16081627 if templ_7745c5c3_Err != nil {
16091628 return templ_7745c5c3_Err
16101629 }
16111630 }
16121631 if c.Delete != nil {
1613- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "<details><summary>Delete</summary><form method=\"post\" action=\"")
1632+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "<details><summary>Delete</summary><form method=\"post\" action=\"")
16141633 if templ_7745c5c3_Err != nil {
16151634 return templ_7745c5c3_Err
16161635 }
1617- var templ_7745c5c3_Var78 templ.SafeURL
1618- templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action))
1636+ var templ_7745c5c3_Var79 templ.SafeURL
1637+ templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action))
16191638 if templ_7745c5c3_Err != nil {
1620- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 96}
1639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 96}
16211640 }
1622- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78))
1641+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var79))
16231642 if templ_7745c5c3_Err != nil {
16241643 return templ_7745c5c3_Err
16251644 }
1626- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "\"><input type=\"hidden\" name=\"from\" value=\"")
1645+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "\"><input type=\"hidden\" name=\"from\" value=\"")
16271646 if templ_7745c5c3_Err != nil {
16281647 return templ_7745c5c3_Err
16291648 }
1630- var templ_7745c5c3_Var79 string
1631- templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From))
1649+ var templ_7745c5c3_Var80 string
1650+ templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From))
16321651 if templ_7745c5c3_Err != nil {
1633- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 159}
1652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 159}
16341653 }
1635- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79)
1654+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80)
16361655 if templ_7745c5c3_Err != nil {
16371656 return templ_7745c5c3_Err
16381657 }
1639- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ")
1658+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ")
16401659 if templ_7745c5c3_Err != nil {
16411660 return templ_7745c5c3_Err
16421661 }
@@ -1648,7 +1667,7 @@ func commentView(c CommentView, suffix string) templ.Component {
16481667 }
16491668 }
16501669 if c.Reply != nil {
1651- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "<details data-reply><summary>Reply</summary>")
1670+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<details data-reply><summary>Reply</summary>")
16521671 if templ_7745c5c3_Err != nil {
16531672 return templ_7745c5c3_Err
16541673 }
@@ -1656,80 +1675,80 @@ func commentView(c CommentView, suffix string) templ.Component {
16561675 if templ_7745c5c3_Err != nil {
16571676 return templ_7745c5c3_Err
16581677 }
1659- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "</details> ")
1678+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "</details> ")
16601679 if templ_7745c5c3_Err != nil {
16611680 return templ_7745c5c3_Err
16621681 }
16631682 }
16641683 if c.Resolve != nil {
1665- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<form class=\"c-act\" method=\"post\" action=\"")
1684+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "<form class=\"c-act\" method=\"post\" action=\"")
16661685 if templ_7745c5c3_Err != nil {
16671686 return templ_7745c5c3_Err
16681687 }
1669- var templ_7745c5c3_Var80 templ.SafeURL
1670- templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action))
1688+ var templ_7745c5c3_Var81 templ.SafeURL
1689+ templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action))
16711690 if templ_7745c5c3_Err != nil {
1672- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 303, Col: 77}
1691+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 306, Col: 77}
16731692 }
1674- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var80))
1693+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81))
16751694 if templ_7745c5c3_Err != nil {
16761695 return templ_7745c5c3_Err
16771696 }
1678- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\"><input type=\"hidden\" name=\"resolved\" value=\"")
1697+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "\"><input type=\"hidden\" name=\"resolved\" value=\"")
16791698 if templ_7745c5c3_Err != nil {
16801699 return templ_7745c5c3_Err
16811700 }
1682- var templ_7745c5c3_Var81 string
1683- templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value))
1701+ var templ_7745c5c3_Var82 string
1702+ templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value))
16841703 if templ_7745c5c3_Err != nil {
1685- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 74}
1704+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 74}
16861705 }
1687- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var81)
1706+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82)
16881707 if templ_7745c5c3_Err != nil {
16891708 return templ_7745c5c3_Err
16901709 }
1691- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "\"> ")
1710+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\"> ")
16921711 if templ_7745c5c3_Err != nil {
16931712 return templ_7745c5c3_Err
16941713 }
16951714 if c.Resolve.From > 0 {
1696- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "<input type=\"hidden\" name=\"from\" value=\"")
1715+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<input type=\"hidden\" name=\"from\" value=\"")
16971716 if templ_7745c5c3_Err != nil {
16981717 return templ_7745c5c3_Err
16991718 }
1700- var templ_7745c5c3_Var82 string
1701- templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From))
1719+ var templ_7745c5c3_Var83 string
1720+ templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From))
17021721 if templ_7745c5c3_Err != nil {
1703- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 306, Col: 66}
1722+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 309, Col: 66}
17041723 }
1705- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82)
1724+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var83)
17061725 if templ_7745c5c3_Err != nil {
17071726 return templ_7745c5c3_Err
17081727 }
1709- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\"> ")
1728+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "\"> ")
17101729 if templ_7745c5c3_Err != nil {
17111730 return templ_7745c5c3_Err
17121731 }
17131732 }
1714- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<button type=\"submit\" class=\"btn\">")
1733+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<button type=\"submit\" class=\"btn\">")
17151734 if templ_7745c5c3_Err != nil {
17161735 return templ_7745c5c3_Err
17171736 }
1718- var templ_7745c5c3_Var83 string
1719- templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label)
1737+ var templ_7745c5c3_Var84 string
1738+ templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label)
17201739 if templ_7745c5c3_Err != nil {
1721- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 308, Col: 55}
1740+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 311, Col: 55}
17221741 }
1723- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83))
1742+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var84))
17241743 if templ_7745c5c3_Err != nil {
17251744 return templ_7745c5c3_Err
17261745 }
1727- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "</button></form>")
1746+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "</button></form>")
17281747 if templ_7745c5c3_Err != nil {
17291748 return templ_7745c5c3_Err
17301749 }
17311750 }
1732- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "</div>")
1751+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "</div>")
17331752 if templ_7745c5c3_Err != nil {
17341753 return templ_7745c5c3_Err
17351754 }
@@ -1761,214 +1780,214 @@ func commentForm(f CommentForm, suffix string) templ.Component {
17611780 }()
17621781 }
17631782 ctx = templ.InitializeContext(ctx)
1764- templ_7745c5c3_Var84 := templ.GetChildren(ctx)
1765- if templ_7745c5c3_Var84 == nil {
1766- templ_7745c5c3_Var84 = templ.NopComponent
1783+ templ_7745c5c3_Var85 := templ.GetChildren(ctx)
1784+ if templ_7745c5c3_Var85 == nil {
1785+ templ_7745c5c3_Var85 = templ.NopComponent
17671786 }
17681787 ctx = templ.ClearChildren(ctx)
1769- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "<form class=\"cform\" method=\"post\" action=\"")
1788+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "<form class=\"cform\" method=\"post\" action=\"")
17701789 if templ_7745c5c3_Err != nil {
17711790 return templ_7745c5c3_Err
17721791 }
1773- var templ_7745c5c3_Var85 templ.SafeURL
1774- templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action))
1792+ var templ_7745c5c3_Var86 templ.SafeURL
1793+ templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action))
17751794 if templ_7745c5c3_Err != nil {
1776- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 67}
1795+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 67}
17771796 }
1778- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85))
1797+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86))
17791798 if templ_7745c5c3_Err != nil {
17801799 return templ_7745c5c3_Err
17811800 }
1782- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "\"><label for=\"")
1801+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "\"><label for=\"")
17831802 if templ_7745c5c3_Err != nil {
17841803 return templ_7745c5c3_Err
17851804 }
1786- var templ_7745c5c3_Var86 string
1787- templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)
1805+ var templ_7745c5c3_Var87 string
1806+ templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)
17881807 if templ_7745c5c3_Err != nil {
1789- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 324, Col: 28}
1808+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 327, Col: 28}
17901809 }
1791- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var86)
1810+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87)
17921811 if templ_7745c5c3_Err != nil {
17931812 return templ_7745c5c3_Err
17941813 }
1795- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\">")
1814+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\">")
17961815 if templ_7745c5c3_Err != nil {
17971816 return templ_7745c5c3_Err
17981817 }
1799- var templ_7745c5c3_Var87 string
1800- templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title)
1818+ var templ_7745c5c3_Var88 string
1819+ templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title)
18011820 if templ_7745c5c3_Err != nil {
1802- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 324, Col: 40}
1821+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 327, Col: 40}
18031822 }
1804- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87))
1823+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88))
18051824 if templ_7745c5c3_Err != nil {
18061825 return templ_7745c5c3_Err
18071826 }
1808- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "</label> <textarea id=\"")
1827+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "</label> <textarea id=\"")
18091828 if templ_7745c5c3_Err != nil {
18101829 return templ_7745c5c3_Err
18111830 }
1812- var templ_7745c5c3_Var88 string
1813- templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)
1831+ var templ_7745c5c3_Var89 string
1832+ templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)
18141833 if templ_7745c5c3_Err != nil {
1815- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 21}
1834+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, Col: 21}
18161835 }
1817- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var88)
1836+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89)
18181837 if templ_7745c5c3_Err != nil {
18191838 return templ_7745c5c3_Err
18201839 }
1821- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\" name=\"text\" rows=\"3\" maxlength=\"8000\"")
1840+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "\" name=\"text\" rows=\"3\" maxlength=\"8000\"")
18221841 if templ_7745c5c3_Err != nil {
18231842 return templ_7745c5c3_Err
18241843 }
18251844 if f.Plain {
1826- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, " required placeholder=\"plain text, 8000 characters at most\"")
1845+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, " required placeholder=\"plain text, 8000 characters at most\"")
18271846 if templ_7745c5c3_Err != nil {
18281847 return templ_7745c5c3_Err
18291848 }
18301849 } else {
1831- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, " placeholder=\"Markdown, 8000 characters at most\"")
1850+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, " placeholder=\"Markdown, 8000 characters at most\"")
18321851 if templ_7745c5c3_Err != nil {
18331852 return templ_7745c5c3_Err
18341853 }
18351854 }
18361855 if f.Focus {
1837- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, " autofocus")
1856+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, " autofocus")
18381857 if templ_7745c5c3_Err != nil {
18391858 return templ_7745c5c3_Err
18401859 }
18411860 }
1842- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "></textarea> ")
1861+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "></textarea> ")
18431862 if templ_7745c5c3_Err != nil {
18441863 return templ_7745c5c3_Err
18451864 }
18461865 if f.Path != "" {
1847- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<input type=\"hidden\" name=\"path\" value=\"")
1866+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "<input type=\"hidden\" name=\"path\" value=\"")
18481867 if templ_7745c5c3_Err != nil {
18491868 return templ_7745c5c3_Err
18501869 }
1851- var templ_7745c5c3_Var89 string
1852- templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path)
1870+ var templ_7745c5c3_Var90 string
1871+ templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path)
18531872 if templ_7745c5c3_Err != nil {
1854- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 341, Col: 50}
1873+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 344, Col: 50}
18551874 }
1856- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89)
1875+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90)
18571876 if templ_7745c5c3_Err != nil {
18581877 return templ_7745c5c3_Err
18591878 }
1860- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "\"> <input type=\"hidden\" name=\"line\" value=\"")
1879+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "\"> <input type=\"hidden\" name=\"line\" value=\"")
18611880 if templ_7745c5c3_Err != nil {
18621881 return templ_7745c5c3_Err
18631882 }
1864- var templ_7745c5c3_Var90 string
1865- templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line)
1883+ var templ_7745c5c3_Var91 string
1884+ templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line)
18661885 if templ_7745c5c3_Err != nil {
1867- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 342, Col: 50}
1886+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 345, Col: 50}
18681887 }
1869- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90)
1888+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91)
18701889 if templ_7745c5c3_Err != nil {
18711890 return templ_7745c5c3_Err
18721891 }
1873- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "\"> <input type=\"hidden\" name=\"side\" value=\"")
1892+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "\"> <input type=\"hidden\" name=\"side\" value=\"")
18741893 if templ_7745c5c3_Err != nil {
18751894 return templ_7745c5c3_Err
18761895 }
1877- var templ_7745c5c3_Var91 string
1878- templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side)
1896+ var templ_7745c5c3_Var92 string
1897+ templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side)
18791898 if templ_7745c5c3_Err != nil {
1880- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 343, Col: 50}
1899+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 346, Col: 50}
18811900 }
1882- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91)
1901+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92)
18831902 if templ_7745c5c3_Err != nil {
18841903 return templ_7745c5c3_Err
18851904 }
1886- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"")
1905+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"")
18871906 if templ_7745c5c3_Err != nil {
18881907 return templ_7745c5c3_Err
18891908 }
1890- var templ_7745c5c3_Var92 string
1891- templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine)
1909+ var templ_7745c5c3_Var93 string
1910+ templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine)
18921911 if templ_7745c5c3_Err != nil {
1893- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 344, Col: 86}
1912+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 347, Col: 86}
18941913 }
1895- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92)
1914+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var93)
18961915 if templ_7745c5c3_Err != nil {
18971916 return templ_7745c5c3_Err
18981917 }
1899- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "\"></label> ")
1918+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "\"></label> ")
19001919 if templ_7745c5c3_Err != nil {
19011920 return templ_7745c5c3_Err
19021921 }
19031922 }
19041923 if f.ReplyTo != "" {
1905- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "<input type=\"hidden\" name=\"reply_to\" value=\"")
1924+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<input type=\"hidden\" name=\"reply_to\" value=\"")
19061925 if templ_7745c5c3_Err != nil {
19071926 return templ_7745c5c3_Err
19081927 }
1909- var templ_7745c5c3_Var93 string
1910- templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo)
1928+ var templ_7745c5c3_Var94 string
1929+ templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo)
19111930 if templ_7745c5c3_Err != nil {
1912- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 347, Col: 57}
1931+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 350, Col: 57}
19131932 }
1914- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var93)
1933+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94)
19151934 if templ_7745c5c3_Err != nil {
19161935 return templ_7745c5c3_Err
19171936 }
1918- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "\"> ")
1937+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "\"> ")
19191938 if templ_7745c5c3_Err != nil {
19201939 return templ_7745c5c3_Err
19211940 }
19221941 }
19231942 if f.Path == "" && f.ReplyTo == "" && !f.Plain {
1924- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>")
1943+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>")
19251944 if templ_7745c5c3_Err != nil {
19261945 return templ_7745c5c3_Err
19271946 }
19281947 }
19291948 if f.From > 0 {
1930- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "<input type=\"hidden\" name=\"from\" value=\"")
1949+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "<input type=\"hidden\" name=\"from\" value=\"")
19311950 if templ_7745c5c3_Err != nil {
19321951 return templ_7745c5c3_Err
19331952 }
1934- var templ_7745c5c3_Var94 string
1935- templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From))
1953+ var templ_7745c5c3_Var95 string
1954+ templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From))
19361955 if templ_7745c5c3_Err != nil {
1937- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 353, Col: 56}
1956+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 56}
19381957 }
1939- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94)
1958+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var95)
19401959 if templ_7745c5c3_Err != nil {
19411960 return templ_7745c5c3_Err
19421961 }
1943- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "\">")
1962+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "\">")
19441963 if templ_7745c5c3_Err != nil {
19451964 return templ_7745c5c3_Err
19461965 }
19471966 }
1948- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ")
1967+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ")
19491968 if templ_7745c5c3_Err != nil {
19501969 return templ_7745c5c3_Err
19511970 }
19521971 if f.Cancel != "" {
1953- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "<a class=\"btn\" href=\"")
1972+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "<a class=\"btn\" href=\"")
19541973 if templ_7745c5c3_Err != nil {
19551974 return templ_7745c5c3_Err
19561975 }
1957- var templ_7745c5c3_Var95 templ.SafeURL
1958- templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel))
1976+ var templ_7745c5c3_Var96 templ.SafeURL
1977+ templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel))
19591978 if templ_7745c5c3_Err != nil {
1960- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, Col: 49}
1979+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 361, Col: 49}
19611980 }
1962- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95))
1981+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96))
19631982 if templ_7745c5c3_Err != nil {
19641983 return templ_7745c5c3_Err
19651984 }
1966- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "\">Cancel</a>")
1985+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "\">Cancel</a>")
19671986 if templ_7745c5c3_Err != nil {
19681987 return templ_7745c5c3_Err
19691988 }
19701989 }
1971- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</div></form>")
1990+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "</div></form>")
19721991 if templ_7745c5c3_Err != nil {
19731992 return templ_7745c5c3_Err
19741993 }
@@ -1992,25 +2011,25 @@ func mrRail(p MRPage) templ.Component {
19922011 }()
19932012 }
19942013 ctx = templ.InitializeContext(ctx)
1995- templ_7745c5c3_Var96 := templ.GetChildren(ctx)
1996- if templ_7745c5c3_Var96 == nil {
1997- templ_7745c5c3_Var96 = templ.NopComponent
2014+ templ_7745c5c3_Var97 := templ.GetChildren(ctx)
2015+ if templ_7745c5c3_Var97 == nil {
2016+ templ_7745c5c3_Var97 = templ.NopComponent
19982017 }
19992018 ctx = templ.ClearChildren(ctx)
2000- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
2019+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
20012020 if templ_7745c5c3_Err != nil {
20022021 return templ_7745c5c3_Err
20032022 }
2004- var templ_7745c5c3_Var97 string
2005- templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
2023+ var templ_7745c5c3_Var98 string
2024+ templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
20062025 if templ_7745c5c3_Err != nil {
2007- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 367, Col: 49}
2026+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 370, Col: 49}
20082027 }
2009- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var97))
2028+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98))
20102029 if templ_7745c5c3_Err != nil {
20112030 return templ_7745c5c3_Err
20122031 }
2013- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>")
2032+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>")
20142033 if templ_7745c5c3_Err != nil {
20152034 return templ_7745c5c3_Err
20162035 }
@@ -2018,71 +2037,71 @@ func mrRail(p MRPage) templ.Component {
20182037 if templ_7745c5c3_Err != nil {
20192038 return templ_7745c5c3_Err
20202039 }
2021- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "</section>")
2040+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "</section>")
20222041 if templ_7745c5c3_Err != nil {
20232042 return templ_7745c5c3_Err
20242043 }
20252044 if len(p.Verdicts) > 0 {
2026- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "<section><h2>Verdicts</h2><ul>")
2045+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "<section><h2>Verdicts</h2><ul>")
20272046 if templ_7745c5c3_Err != nil {
20282047 return templ_7745c5c3_Err
20292048 }
20302049 for _, v := range p.Verdicts {
2031- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "<li><a href=\"")
2050+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "<li><a href=\"")
20322051 if templ_7745c5c3_Err != nil {
20332052 return templ_7745c5c3_Err
20342053 }
2035- var templ_7745c5c3_Var98 templ.SafeURL
2036- templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href))
2054+ var templ_7745c5c3_Var99 templ.SafeURL
2055+ templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href))
20372056 if templ_7745c5c3_Err != nil {
2038- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 37}
2057+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 383, Col: 37}
20392058 }
2040- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98))
2059+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99))
20412060 if templ_7745c5c3_Err != nil {
20422061 return templ_7745c5c3_Err
20432062 }
2044- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "\">")
2063+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "\">")
20452064 if templ_7745c5c3_Err != nil {
20462065 return templ_7745c5c3_Err
20472066 }
2048- var templ_7745c5c3_Var99 string
2049- templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author)
2067+ var templ_7745c5c3_Var100 string
2068+ templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author)
20502069 if templ_7745c5c3_Err != nil {
2051- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 50}
2070+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 383, Col: 50}
20522071 }
2053- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99))
2072+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100))
20542073 if templ_7745c5c3_Err != nil {
20552074 return templ_7745c5c3_Err
20562075 }
2057- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, ": ")
2076+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, ": ")
20582077 if templ_7745c5c3_Err != nil {
20592078 return templ_7745c5c3_Err
20602079 }
2061- var templ_7745c5c3_Var100 string
2062- templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2080+ var templ_7745c5c3_Var101 string
2081+ templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
20632082 if templ_7745c5c3_Err != nil {
2064- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 63}
2083+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 383, Col: 63}
20652084 }
2066- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100))
2085+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101))
20672086 if templ_7745c5c3_Err != nil {
20682087 return templ_7745c5c3_Err
20692088 }
2070- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "</a> ")
2089+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "</a> ")
20712090 if templ_7745c5c3_Err != nil {
20722091 return templ_7745c5c3_Err
20732092 }
20742093 if v.Stale {
2075- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "<span class=\"mute\">(stale)</span>")
2094+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "<span class=\"mute\">(stale)</span>")
20762095 if templ_7745c5c3_Err != nil {
20772096 return templ_7745c5c3_Err
20782097 }
20792098 }
2080- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "</li>")
2099+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "</li>")
20812100 if templ_7745c5c3_Err != nil {
20822101 return templ_7745c5c3_Err
20832102 }
20842103 }
2085- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "</ul></section>")
2104+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "</ul></section>")
20862105 if templ_7745c5c3_Err != nil {
20872106 return templ_7745c5c3_Err
20882107 }
@@ -2091,74 +2110,74 @@ func mrRail(p MRPage) templ.Component {
20912110 if templ_7745c5c3_Err != nil {
20922111 return templ_7745c5c3_Err
20932112 }
2094- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">")
2113+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">")
20952114 if templ_7745c5c3_Err != nil {
20962115 return templ_7745c5c3_Err
20972116 }
2098- var templ_7745c5c3_Var101 string
2099- templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits)))
2117+ var templ_7745c5c3_Var102 string
2118+ templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits)))
21002119 if templ_7745c5c3_Err != nil {
2101- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 391, Col: 71}
2120+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 394, Col: 71}
21022121 }
2103- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101))
2122+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102))
21042123 if templ_7745c5c3_Err != nil {
21052124 return templ_7745c5c3_Err
21062125 }
2107- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "</span></h2><ul class=\"pcommits\">")
2126+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "</span></h2><ul class=\"pcommits\">")
21082127 if templ_7745c5c3_Err != nil {
21092128 return templ_7745c5c3_Err
21102129 }
21112130 for _, c := range p.Commits {
2112- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "<li")
2131+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "<li")
21132132 if templ_7745c5c3_Err != nil {
21142133 return templ_7745c5c3_Err
21152134 }
21162135 if c.New {
2117- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, " data-new")
2136+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, " data-new")
21182137 if templ_7745c5c3_Err != nil {
21192138 return templ_7745c5c3_Err
21202139 }
21212140 }
2122- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "><a href=\"")
2141+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "><a href=\"")
21232142 if templ_7745c5c3_Err != nil {
21242143 return templ_7745c5c3_Err
21252144 }
2126- var templ_7745c5c3_Var102 templ.SafeURL
2127- templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href))
2145+ var templ_7745c5c3_Var103 templ.SafeURL
2146+ templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href))
21282147 if templ_7745c5c3_Err != nil {
2129- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 395, Col: 36}
2148+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 36}
21302149 }
2131- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102))
2150+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103))
21322151 if templ_7745c5c3_Err != nil {
21332152 return templ_7745c5c3_Err
21342153 }
2135- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "\">")
2154+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "\">")
21362155 if templ_7745c5c3_Err != nil {
21372156 return templ_7745c5c3_Err
21382157 }
2139- var templ_7745c5c3_Var103 string
2140- templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
2158+ var templ_7745c5c3_Var104 string
2159+ templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
21412160 if templ_7745c5c3_Err != nil {
2142- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 395, Col: 48}
2161+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 48}
21432162 }
2144- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103))
2163+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104))
21452164 if templ_7745c5c3_Err != nil {
21462165 return templ_7745c5c3_Err
21472166 }
2148- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "</a> <span class=\"s\">")
2167+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "</a> <span class=\"s\">")
21492168 if templ_7745c5c3_Err != nil {
21502169 return templ_7745c5c3_Err
21512170 }
2152- var templ_7745c5c3_Var104 string
2153- templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
2171+ var templ_7745c5c3_Var105 string
2172+ templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
21542173 if templ_7745c5c3_Err != nil {
2155- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 396, Col: 32}
2174+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 32}
21562175 }
2157- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104))
2176+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105))
21582177 if templ_7745c5c3_Err != nil {
21592178 return templ_7745c5c3_Err
21602179 }
2161- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</span> ")
2180+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "</span> ")
21622181 if templ_7745c5c3_Err != nil {
21632182 return templ_7745c5c3_Err
21642183 }
@@ -2168,138 +2187,138 @@ func mrRail(p MRPage) templ.Component {
21682187 return templ_7745c5c3_Err
21692188 }
21702189 }
2171- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "<span class=\"mute\">")
2190+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "<span class=\"mute\">")
21722191 if templ_7745c5c3_Err != nil {
21732192 return templ_7745c5c3_Err
21742193 }
2175- var templ_7745c5c3_Var105 string
2176- templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
2194+ var templ_7745c5c3_Var106 string
2195+ templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
21772196 if templ_7745c5c3_Err != nil {
2178- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 401, Col: 16}
2197+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 404, Col: 16}
21792198 }
2180- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105))
2199+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106))
21812200 if templ_7745c5c3_Err != nil {
21822201 return templ_7745c5c3_Err
21832202 }
2184- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, " ")
2203+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, " ")
21852204 if templ_7745c5c3_Err != nil {
21862205 return templ_7745c5c3_Err
21872206 }
21882207 if c.WhenAt != "" {
2189- var templ_7745c5c3_Var106 string
2190- templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
2208+ var templ_7745c5c3_Var107 string
2209+ templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
21912210 if templ_7745c5c3_Err != nil {
2192- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 15}
2211+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 15}
21932212 }
2194- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106))
2213+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107))
21952214 if templ_7745c5c3_Err != nil {
21962215 return templ_7745c5c3_Err
21972216 }
2198- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "<time datetime=\"")
2217+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "<time datetime=\"")
21992218 if templ_7745c5c3_Err != nil {
22002219 return templ_7745c5c3_Err
22012220 }
2202- var templ_7745c5c3_Var107 string
2203- templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
2221+ var templ_7745c5c3_Var108 string
2222+ templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
22042223 if templ_7745c5c3_Err != nil {
2205- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 42}
2224+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 42}
22062225 }
2207- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var107)
2226+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var108)
22082227 if templ_7745c5c3_Err != nil {
22092228 return templ_7745c5c3_Err
22102229 }
2211- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "\">")
2230+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "\">")
22122231 if templ_7745c5c3_Err != nil {
22132232 return templ_7745c5c3_Err
22142233 }
2215- var templ_7745c5c3_Var108 string
2216- templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
2234+ var templ_7745c5c3_Var109 string
2235+ templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
22172236 if templ_7745c5c3_Err != nil {
2218- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 53}
2237+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 53}
22192238 }
2220- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108))
2239+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109))
22212240 if templ_7745c5c3_Err != nil {
22222241 return templ_7745c5c3_Err
22232242 }
2224- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "</time> ")
2243+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "</time> ")
22252244 if templ_7745c5c3_Err != nil {
22262245 return templ_7745c5c3_Err
22272246 }
22282247 }
22292248 if c.New {
2230- var templ_7745c5c3_Var109 string
2231- templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(" · new")
2249+ var templ_7745c5c3_Var110 string
2250+ templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(" · new")
22322251 if templ_7745c5c3_Err != nil {
2233- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 18}
2252+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 409, Col: 18}
22342253 }
2235- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109))
2254+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110))
22362255 if templ_7745c5c3_Err != nil {
22372256 return templ_7745c5c3_Err
22382257 }
22392258 }
2240- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "</span></li>")
2259+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "</span></li>")
22412260 if templ_7745c5c3_Err != nil {
22422261 return templ_7745c5c3_Err
22432262 }
22442263 }
2245- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "</ul>")
2264+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "</ul>")
22462265 if templ_7745c5c3_Err != nil {
22472266 return templ_7745c5c3_Err
22482267 }
22492268 if len(p.Commits) == 0 {
2250- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "<p class=\"dim\">no commit to merge.</p>")
2269+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "<p class=\"dim\">no commit to merge.</p>")
22512270 if templ_7745c5c3_Err != nil {
22522271 return templ_7745c5c3_Err
22532272 }
22542273 }
22552274 if p.CommitsNote != "" {
2256- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "<p class=\"note\">")
2275+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "<p class=\"note\">")
22572276 if templ_7745c5c3_Err != nil {
22582277 return templ_7745c5c3_Err
22592278 }
2260- var templ_7745c5c3_Var110 string
2261- templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote)
2279+ var templ_7745c5c3_Var111 string
2280+ templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote)
22622281 if templ_7745c5c3_Err != nil {
2263- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 416, Col: 34}
2282+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 419, Col: 34}
22642283 }
2265- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110))
2284+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111))
22662285 if templ_7745c5c3_Err != nil {
22672286 return templ_7745c5c3_Err
22682287 }
2269- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "</p>")
2288+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "</p>")
22702289 if templ_7745c5c3_Err != nil {
22712290 return templ_7745c5c3_Err
22722291 }
22732292 }
2274- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>")
2293+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>")
22752294 if templ_7745c5c3_Err != nil {
22762295 return templ_7745c5c3_Err
22772296 }
2278- var templ_7745c5c3_Var111 string
2279- templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", "))
2297+ var templ_7745c5c3_Var112 string
2298+ templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", "))
22802299 if templ_7745c5c3_Err != nil {
2281- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 423, Col: 36}
2300+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 36}
22822301 }
2283- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111))
2302+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112))
22842303 if templ_7745c5c3_Err != nil {
22852304 return templ_7745c5c3_Err
22862305 }
2287- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "</dd><dt>checks</dt><dd>")
2306+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "</dd><dt>checks</dt><dd>")
22882307 if templ_7745c5c3_Err != nil {
22892308 return templ_7745c5c3_Err
22902309 }
22912310 if p.ChecksBlock {
2292- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "failing ones block the merge")
2311+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "failing ones block the merge")
22932312 if templ_7745c5c3_Err != nil {
22942313 return templ_7745c5c3_Err
22952314 }
22962315 } else {
2297- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "do not block the merge")
2316+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "do not block the merge")
22982317 if templ_7745c5c3_Err != nil {
22992318 return templ_7745c5c3_Err
23002319 }
23012320 }
2302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "</dd></dl></section>")
2321+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "</dd></dl></section>")
23032322 if templ_7745c5c3_Err != nil {
23042323 return templ_7745c5c3_Err
23052324 }
@@ -2327,51 +2346,51 @@ func mrBar(p MRPage) templ.Component {
23272346 }()
23282347 }
23292348 ctx = templ.InitializeContext(ctx)
2330- templ_7745c5c3_Var112 := templ.GetChildren(ctx)
2331- if templ_7745c5c3_Var112 == nil {
2332- templ_7745c5c3_Var112 = templ.NopComponent
2349+ templ_7745c5c3_Var113 := templ.GetChildren(ctx)
2350+ if templ_7745c5c3_Var113 == nil {
2351+ templ_7745c5c3_Var113 = templ.NopComponent
23332352 }
23342353 ctx = templ.ClearChildren(ctx)
2335- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">")
2354+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">")
23362355 if templ_7745c5c3_Err != nil {
23372356 return templ_7745c5c3_Err
23382357 }
2339- var templ_7745c5c3_Var113 string
2340- templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
2358+ var templ_7745c5c3_Var114 string
2359+ templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
23412360 if templ_7745c5c3_Err != nil {
2342- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 442, Col: 55}
2361+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 55}
23432362 }
2344- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113))
2363+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var114))
23452364 if templ_7745c5c3_Err != nil {
23462365 return templ_7745c5c3_Err
23472366 }
2348- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, " · <span class=\"plus\">+")
2367+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, " · <span class=\"plus\">+")
23492368 if templ_7745c5c3_Err != nil {
23502369 return templ_7745c5c3_Err
23512370 }
2352- var templ_7745c5c3_Var114 string
2353- templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
2371+ var templ_7745c5c3_Var115 string
2372+ templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
23542373 if templ_7745c5c3_Err != nil {
2355- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 442, Col: 95}
2374+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 95}
23562375 }
2357- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var114))
2376+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115))
23582377 if templ_7745c5c3_Err != nil {
23592378 return templ_7745c5c3_Err
23602379 }
2361- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</span> <span class=\"minus\">-")
2380+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "</span> <span class=\"minus\">-")
23622381 if templ_7745c5c3_Err != nil {
23632382 return templ_7745c5c3_Err
23642383 }
2365- var templ_7745c5c3_Var115 string
2366- templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
2384+ var templ_7745c5c3_Var116 string
2385+ templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
23672386 if templ_7745c5c3_Err != nil {
2368- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 442, Col: 140}
2387+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 140}
23692388 }
2370- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115))
2389+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116))
23712390 if templ_7745c5c3_Err != nil {
23722391 return templ_7745c5c3_Err
23732392 }
2374- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "</span></span>")
2393+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "</span></span>")
23752394 if templ_7745c5c3_Err != nil {
23762395 return templ_7745c5c3_Err
23772396 }
@@ -2387,7 +2406,7 @@ func mrBar(p MRPage) templ.Component {
23872406 if templ_7745c5c3_Err != nil {
23882407 return templ_7745c5c3_Err
23892408 }
2390- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<span class=\"grow\"></span>")
2409+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "<span class=\"grow\"></span>")
23912410 if templ_7745c5c3_Err != nil {
23922411 return templ_7745c5c3_Err
23932412 }
@@ -2400,7 +2419,7 @@ func mrBar(p MRPage) templ.Component {
24002419 if templ_7745c5c3_Err != nil {
24012420 return templ_7745c5c3_Err
24022421 }
2403- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, " ")
2422+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, " ")
24042423 if templ_7745c5c3_Err != nil {
24052424 return templ_7745c5c3_Err
24062425 }
@@ -2409,7 +2428,7 @@ func mrBar(p MRPage) templ.Component {
24092428 return templ_7745c5c3_Err
24102429 }
24112430 }
2412- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "</div>")
2431+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "</div>")
24132432 if templ_7745c5c3_Err != nil {
24142433 return templ_7745c5c3_Err
24152434 }
@@ -2441,107 +2460,107 @@ func mergeMenu(p MRPage) templ.Component {
24412460 }()
24422461 }
24432462 ctx = templ.InitializeContext(ctx)
2444- templ_7745c5c3_Var116 := templ.GetChildren(ctx)
2445- if templ_7745c5c3_Var116 == nil {
2446- templ_7745c5c3_Var116 = templ.NopComponent
2463+ templ_7745c5c3_Var117 := templ.GetChildren(ctx)
2464+ if templ_7745c5c3_Var117 == nil {
2465+ templ_7745c5c3_Var117 = templ.NopComponent
24472466 }
24482467 ctx = templ.ClearChildren(ctx)
2449- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")
2468+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")
24502469 if templ_7745c5c3_Err != nil {
24512470 return templ_7745c5c3_Err
24522471 }
24532472 if p.Box.Error != "" {
2454- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, " open")
2473+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, " open")
24552474 if templ_7745c5c3_Err != nil {
24562475 return templ_7745c5c3_Err
24572476 }
24582477 }
2459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")
2478+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")
24602479 if templ_7745c5c3_Err != nil {
24612480 return templ_7745c5c3_Err
24622481 }
24632482 if p.Box.ReadyAction != "" {
2464- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "Draft ")
2483+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "Draft ")
24652484 if templ_7745c5c3_Err != nil {
24662485 return templ_7745c5c3_Err
24672486 }
24682487 } else {
2469- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "Merge ")
2488+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "Merge ")
24702489 if templ_7745c5c3_Err != nil {
24712490 return templ_7745c5c3_Err
24722491 }
24732492 }
2474- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>")
2493+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>")
24752494 if templ_7745c5c3_Err != nil {
24762495 return templ_7745c5c3_Err
24772496 }
24782497 if p.Box.HeadGone {
2479- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "gone: the source branch was deleted")
2498+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "gone: the source branch was deleted")
24802499 if templ_7745c5c3_Err != nil {
24812500 return templ_7745c5c3_Err
24822501 }
24832502 } else {
2484- var templ_7745c5c3_Var117 string
2485- templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)
2503+ var templ_7745c5c3_Var118 string
2504+ templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)
24862505 if templ_7745c5c3_Err != nil {
2487- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 19}
2506+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 483, Col: 19}
24882507 }
2489- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117))
2508+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))
24902509 if templ_7745c5c3_Err != nil {
24912510 return templ_7745c5c3_Err
24922511 }
24932512 }
2494- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "</dd><dt>into</dt><dd>")
2513+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</dd><dt>into</dt><dd>")
24952514 if templ_7745c5c3_Err != nil {
24962515 return templ_7745c5c3_Err
24972516 }
2498- var templ_7745c5c3_Var118 string
2499- templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2517+ var templ_7745c5c3_Var119 string
2518+ templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
25002519 if templ_7745c5c3_Err != nil {
2501- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 484, Col: 18}
2520+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 18}
25022521 }
2503- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))
2522+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))
25042523 if templ_7745c5c3_Err != nil {
25052524 return templ_7745c5c3_Err
25062525 }
2507- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</dd></dl>")
2526+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</dd></dl>")
25082527 if templ_7745c5c3_Err != nil {
25092528 return templ_7745c5c3_Err
25102529 }
25112530 if p.Box.Error != "" {
2512- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "<p class=\"d-err\" role=\"alert\">")
2531+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<p class=\"d-err\" role=\"alert\">")
25132532 if templ_7745c5c3_Err != nil {
25142533 return templ_7745c5c3_Err
25152534 }
2516- var templ_7745c5c3_Var119 string
2517- templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)
2535+ var templ_7745c5c3_Var120 string
2536+ templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)
25182537 if templ_7745c5c3_Err != nil {
2519- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 47}
2538+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 490, Col: 47}
25202539 }
2521- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))
2540+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))
25222541 if templ_7745c5c3_Err != nil {
25232542 return templ_7745c5c3_Err
25242543 }
2525- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</p>")
2544+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "</p>")
25262545 if templ_7745c5c3_Err != nil {
25272546 return templ_7745c5c3_Err
25282547 }
25292548 }
25302549 if p.Box.ReadyAction != "" {
2531- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"")
2550+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"")
25322551 if templ_7745c5c3_Err != nil {
25332552 return templ_7745c5c3_Err
25342553 }
2535- var templ_7745c5c3_Var120 templ.SafeURL
2536- templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))
2554+ var templ_7745c5c3_Var121 templ.SafeURL
2555+ templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))
25372556 if templ_7745c5c3_Err != nil {
2538- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 491, Col: 80}
2557+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 494, Col: 80}
25392558 }
2540- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))
2559+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))
25412560 if templ_7745c5c3_Err != nil {
25422561 return templ_7745c5c3_Err
25432562 }
2544- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>")
2563+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>")
25452564 if templ_7745c5c3_Err != nil {
25462565 return templ_7745c5c3_Err
25472566 }
@@ -2550,232 +2569,214 @@ func mergeMenu(p MRPage) templ.Component {
25502569 if templ_7745c5c3_Err != nil {
25512570 return templ_7745c5c3_Err
25522571 }
2553- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, " <form class=\"d-acts\" method=\"post\" action=\"")
2572+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, " <form class=\"d-acts\" method=\"post\" action=\"")
25542573 if templ_7745c5c3_Err != nil {
25552574 return templ_7745c5c3_Err
25562575 }
2557- var templ_7745c5c3_Var121 templ.SafeURL
2558- templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))
2576+ var templ_7745c5c3_Var122 templ.SafeURL
2577+ templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))
25592578 if templ_7745c5c3_Err != nil {
2560- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 496, Col: 80}
2579+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 499, Col: 80}
25612580 }
2562- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))
2581+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122))
25632582 if templ_7745c5c3_Err != nil {
25642583 return templ_7745c5c3_Err
25652584 }
2566- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
2585+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
25672586 if templ_7745c5c3_Err != nil {
25682587 return templ_7745c5c3_Err
25692588 }
2570- var templ_7745c5c3_Var122 string
2571- templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
2589+ var templ_7745c5c3_Var123 string
2590+ templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
25722591 if templ_7745c5c3_Err != nil {
2573- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 497, Col: 59}
2592+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 500, Col: 59}
25742593 }
2575- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122)
2594+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)
25762595 if templ_7745c5c3_Err != nil {
25772596 return templ_7745c5c3_Err
25782597 }
2579- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")
2598+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")
25802599 if templ_7745c5c3_Err != nil {
25812600 return templ_7745c5c3_Err
25822601 }
25832602 for i, m := range p.Box.Modes {
2584- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<label><input type=\"radio\" name=\"mode\" value=\"")
2603+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "<label><input type=\"radio\" name=\"mode\" value=\"")
25852604 if templ_7745c5c3_Err != nil {
25862605 return templ_7745c5c3_Err
25872606 }
2588- var templ_7745c5c3_Var123 string
2589- templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)
2607+ var templ_7745c5c3_Var124 string
2608+ templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)
25902609 if templ_7745c5c3_Err != nil {
2591- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 24}
2610+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 24}
25922611 }
2593- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)
2612+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)
25942613 if templ_7745c5c3_Err != nil {
25952614 return templ_7745c5c3_Err
25962615 }
2597- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"")
2616+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "\"")
25982617 if templ_7745c5c3_Err != nil {
25992618 return templ_7745c5c3_Err
26002619 }
26012620 if i == p.Box.Checked() {
2602- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, " checked")
2621+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " checked")
26032622 if templ_7745c5c3_Err != nil {
26042623 return templ_7745c5c3_Err
26052624 }
26062625 }
26072626 if m.Disabled {
2608- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, " disabled")
2627+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, " disabled")
26092628 if templ_7745c5c3_Err != nil {
26102629 return templ_7745c5c3_Err
26112630 }
26122631 }
2613- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " title=\"")
2632+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " title=\"")
26142633 if templ_7745c5c3_Err != nil {
26152634 return templ_7745c5c3_Err
26162635 }
2617- var templ_7745c5c3_Var124 string
2618- templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)
2636+ var templ_7745c5c3_Var125 string
2637+ templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)
26192638 if templ_7745c5c3_Err != nil {
2620- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 25}
2639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 511, Col: 25}
26212640 }
2622- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)
2641+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var125)
26232642 if templ_7745c5c3_Err != nil {
26242643 return templ_7745c5c3_Err
26252644 }
2626- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "\" :disabled=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffOk !== true : q('[data-mergeability]').data.mergeOk !== true\" :title=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffReason : q('[data-mergeability]').data.mergeReason\"> ")
2645+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "\" :disabled=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffOk !== true : q('[data-mergeability]').data.mergeOk !== true\" :title=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffReason : q('[data-mergeability]').data.mergeReason\"> ")
26272646 if templ_7745c5c3_Err != nil {
26282647 return templ_7745c5c3_Err
26292648 }
2630- var templ_7745c5c3_Var125 string
2631- templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)
2649+ var templ_7745c5c3_Var126 string
2650+ templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)
26322651 if templ_7745c5c3_Err != nil {
2633- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 512, Col: 17}
2652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 515, Col: 17}
26342653 }
2635- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125))
2654+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))
26362655 if templ_7745c5c3_Err != nil {
26372656 return templ_7745c5c3_Err
26382657 }
2639- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " ")
2658+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, " ")
26402659 if templ_7745c5c3_Err != nil {
26412660 return templ_7745c5c3_Err
26422661 }
26432662 if i < 9 {
2644- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "<kbd aria-hidden=\"true\">")
2663+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "<kbd aria-hidden=\"true\">")
26452664 if templ_7745c5c3_Err != nil {
26462665 return templ_7745c5c3_Err
26472666 }
2648- var templ_7745c5c3_Var126 string
2649- templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))
2667+ var templ_7745c5c3_Var127 string
2668+ templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))
26502669 if templ_7745c5c3_Err != nil {
2651- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 514, Col: 46}
2670+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 46}
26522671 }
2653- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))
2672+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
26542673 if templ_7745c5c3_Err != nil {
26552674 return templ_7745c5c3_Err
26562675 }
2657- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "</kbd>")
2676+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</kbd>")
26582677 if templ_7745c5c3_Err != nil {
26592678 return templ_7745c5c3_Err
26602679 }
26612680 }
2662- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "</label>")
2681+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "</label>")
26632682 if templ_7745c5c3_Err != nil {
26642683 return templ_7745c5c3_Err
26652684 }
26662685 }
2667- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</fieldset>")
2686+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "</fieldset>")
26682687 if templ_7745c5c3_Err != nil {
26692688 return templ_7745c5c3_Err
26702689 }
26712690 if p.Box.Signed {
2672- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "<p class=\"d-note\" id=\"mr-signing\">squash and merge commits are signed with ermite's own key, generated automatically on first start. ")
2691+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "<p class=\"d-note\" id=\"mr-signing\">squash and merge commits are signed with ermite's own key (generated on first start). ")
26732692 if templ_7745c5c3_Err != nil {
26742693 return templ_7745c5c3_Err
26752694 }
26762695 if p.Box.Fingerprint != "" {
2677- var templ_7745c5c3_Var127 string
2678- templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2679- if templ_7745c5c3_Err != nil {
2680- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 13}
2681- }
2682- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
2683- if templ_7745c5c3_Err != nil {
2684- return templ_7745c5c3_Err
2685- }
2686- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "key <code>")
2696+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "fingerprint <code>")
26872697 if templ_7745c5c3_Err != nil {
26882698 return templ_7745c5c3_Err
26892699 }
26902700 var templ_7745c5c3_Var128 string
26912701 templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint)
26922702 if templ_7745c5c3_Err != nil {
2693- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 44}
2703+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 45}
26942704 }
26952705 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128))
26962706 if templ_7745c5c3_Err != nil {
26972707 return templ_7745c5c3_Err
26982708 }
2699- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "</code>. ")
2709+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</code> ")
27002710 if templ_7745c5c3_Err != nil {
27012711 return templ_7745c5c3_Err
27022712 }
27032713 }
2704- var templ_7745c5c3_Var129 string
2705- templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2706- if templ_7745c5c3_Err != nil {
2707- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 12}
2708- }
2709- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
2710- if templ_7745c5c3_Err != nil {
2711- return templ_7745c5c3_Err
2712- }
2713- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "<code>ermite signing-key show</code> prints the public key to verify them.</p>")
2714+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "<code>ermite signing-key show</code> prints it.</p>")
27142715 if templ_7745c5c3_Err != nil {
27152716 return templ_7745c5c3_Err
27162717 }
27172718 }
27182719 if p.Box.CanDeleteBranch {
2719- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")
2720+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")
27202721 if templ_7745c5c3_Err != nil {
27212722 return templ_7745c5c3_Err
27222723 }
2723- var templ_7745c5c3_Var130 string
2724- templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
2724+ var templ_7745c5c3_Var129 string
2725+ templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
27252726 if templ_7745c5c3_Err != nil {
2726- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 102}
2727+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 102}
27272728 }
2728- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var130))
2729+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
27292730 if templ_7745c5c3_Err != nil {
27302731 return templ_7745c5c3_Err
27312732 }
2732- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")
2733+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")
27332734 if templ_7745c5c3_Err != nil {
27342735 return templ_7745c5c3_Err
27352736 }
27362737 }
2737- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")
2738+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")
27382739 if templ_7745c5c3_Err != nil {
27392740 return templ_7745c5c3_Err
27402741 }
27412742 if !p.Box.CanMerge() {
2742- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " disabled")
2743+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, " disabled")
27432744 if templ_7745c5c3_Err != nil {
27442745 return templ_7745c5c3_Err
27452746 }
27462747 }
2747- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, " title=\"")
2748+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, " title=\"")
27482749 if templ_7745c5c3_Err != nil {
27492750 return templ_7745c5c3_Err
27502751 }
2751- var templ_7745c5c3_Var131 string
2752- templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())
2752+ var templ_7745c5c3_Var130 string
2753+ templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())
27532754 if templ_7745c5c3_Err != nil {
2754- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 537, Col: 33}
2755+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 33}
27552756 }
2756- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131)
2757+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130)
27572758 if templ_7745c5c3_Err != nil {
27582759 return templ_7745c5c3_Err
27592760 }
2760- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "\" :disabled=\"!this.form.querySelector('input[name=mode]:checked:not(:disabled)')\" :title=\"(this.form.querySelector('input[name=mode]:checked') || {}).title || ''\">Merge into ")
2761+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "\" :disabled=\"!this.form.querySelector('input[name=mode]:checked:not(:disabled)')\" :title=\"(this.form.querySelector('input[name=mode]:checked') || {}).title || ''\">Merge into ")
27612762 if templ_7745c5c3_Err != nil {
27622763 return templ_7745c5c3_Err
27632764 }
2764- var templ_7745c5c3_Var132 string
2765- templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2765+ var templ_7745c5c3_Var131 string
2766+ templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
27662767 if templ_7745c5c3_Err != nil {
2767- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 28}
2768+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 543, Col: 28}
27682769 }
2769- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132))
2770+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131))
27702771 if templ_7745c5c3_Err != nil {
27712772 return templ_7745c5c3_Err
27722773 }
2773- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "</button></div></form>")
2774+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "</button></div></form>")
27742775 if templ_7745c5c3_Err != nil {
27752776 return templ_7745c5c3_Err
27762777 }
27772778 }
2778- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</div></details>")
2779+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "</div></details>")
27792780 if templ_7745c5c3_Err != nil {
27802781 return templ_7745c5c3_Err
27812782 }
@@ -2801,182 +2802,182 @@ func MRMergeability(v MergeabilityView) templ.Component {
28012802 }()
28022803 }
28032804 ctx = templ.InitializeContext(ctx)
2804- templ_7745c5c3_Var133 := templ.GetChildren(ctx)
2805- if templ_7745c5c3_Var133 == nil {
2806- templ_7745c5c3_Var133 = templ.NopComponent
2805+ templ_7745c5c3_Var132 := templ.GetChildren(ctx)
2806+ if templ_7745c5c3_Var132 == nil {
2807+ templ_7745c5c3_Var132 = templ.NopComponent
28072808 }
28082809 ctx = templ.ClearChildren(ctx)
2809- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "<span data-mergeability data-state=\"")
2810+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "<span data-mergeability data-state=\"")
2811+ if templ_7745c5c3_Err != nil {
2812+ return templ_7745c5c3_Err
2813+ }
2814+ var templ_7745c5c3_Var133 string
2815+ templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2816+ if templ_7745c5c3_Err != nil {
2817+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 22}
2818+ }
2819+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var133)
2820+ if templ_7745c5c3_Err != nil {
2821+ return templ_7745c5c3_Err
2822+ }
2823+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-ok=\"")
28102824 if templ_7745c5c3_Err != nil {
28112825 return templ_7745c5c3_Err
28122826 }
28132827 var templ_7745c5c3_Var134 string
2814- templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2828+ templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))
28152829 if templ_7745c5c3_Err != nil {
2816- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 553, Col: 22}
2830+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 41}
28172831 }
28182832 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134)
28192833 if templ_7745c5c3_Err != nil {
28202834 return templ_7745c5c3_Err
28212835 }
2822- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "\" data-ff-ok=\"")
2836+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-ok=\"")
28232837 if templ_7745c5c3_Err != nil {
28242838 return templ_7745c5c3_Err
28252839 }
28262840 var templ_7745c5c3_Var135 string
2827- templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))
2841+ templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))
28282842 if templ_7745c5c3_Err != nil {
2829- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 554, Col: 41}
2843+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 558, Col: 47}
28302844 }
28312845 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135)
28322846 if templ_7745c5c3_Err != nil {
28332847 return templ_7745c5c3_Err
28342848 }
2835- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\" data-merge-ok=\"")
2849+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\" data-ff-reason=\"")
28362850 if templ_7745c5c3_Err != nil {
28372851 return templ_7745c5c3_Err
28382852 }
28392853 var templ_7745c5c3_Var136 string
2840- templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))
2854+ templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)
28412855 if templ_7745c5c3_Err != nil {
2842- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 555, Col: 47}
2856+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 29}
28432857 }
28442858 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136)
28452859 if templ_7745c5c3_Err != nil {
28462860 return templ_7745c5c3_Err
28472861 }
2848- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-reason=\"")
2862+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\" data-merge-reason=\"")
28492863 if templ_7745c5c3_Err != nil {
28502864 return templ_7745c5c3_Err
28512865 }
28522866 var templ_7745c5c3_Var137 string
2853- templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)
2867+ templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)
28542868 if templ_7745c5c3_Err != nil {
2855- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 29}
2869+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 560, Col: 35}
28562870 }
28572871 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var137)
28582872 if templ_7745c5c3_Err != nil {
28592873 return templ_7745c5c3_Err
28602874 }
2861- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-reason=\"")
2875+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "\"><span class=\"badge\" data-state=\"")
28622876 if templ_7745c5c3_Err != nil {
28632877 return templ_7745c5c3_Err
28642878 }
28652879 var templ_7745c5c3_Var138 string
2866- templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)
2880+ templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
28672881 if templ_7745c5c3_Err != nil {
2868- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 35}
2882+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 42}
28692883 }
28702884 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var138)
28712885 if templ_7745c5c3_Err != nil {
28722886 return templ_7745c5c3_Err
28732887 }
2874- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\"><span class=\"badge\" data-state=\"")
2888+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "\">")
28752889 if templ_7745c5c3_Err != nil {
28762890 return templ_7745c5c3_Err
28772891 }
28782892 var templ_7745c5c3_Var139 string
2879- templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2880- if templ_7745c5c3_Err != nil {
2881- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 42}
2882- }
2883- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var139)
2884- if templ_7745c5c3_Err != nil {
2885- return templ_7745c5c3_Err
2886- }
2887- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\">")
2888- if templ_7745c5c3_Err != nil {
2889- return templ_7745c5c3_Err
2890- }
2891- var templ_7745c5c3_Var140 string
2892- templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2893+ templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
28932894 if templ_7745c5c3_Err != nil {
2894- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 54}
2895+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 54}
28952896 }
2896- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))
2897+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139))
28972898 if templ_7745c5c3_Err != nil {
28982899 return templ_7745c5c3_Err
28992900 }
2900- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "</span> ")
2901+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span> ")
29012902 if templ_7745c5c3_Err != nil {
29022903 return templ_7745c5c3_Err
29032904 }
29042905 if v.Detail != "" {
2905- var templ_7745c5c3_Var141 string
2906- templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2906+ var templ_7745c5c3_Var140 string
2907+ templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
29072908 if templ_7745c5c3_Err != nil {
2908- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 8}
2909+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 8}
29092910 }
2910- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))
2911+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))
29112912 if templ_7745c5c3_Err != nil {
29122913 return templ_7745c5c3_Err
29132914 }
2914- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "<span class=\"dim\">")
2915+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "<span class=\"dim\">")
29152916 if templ_7745c5c3_Err != nil {
29162917 return templ_7745c5c3_Err
29172918 }
2918- var templ_7745c5c3_Var142 string
2919- templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)
2919+ var templ_7745c5c3_Var141 string
2920+ templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)
29202921 if templ_7745c5c3_Err != nil {
2921- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 38}
2922+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 38}
29222923 }
2923- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))
2924+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))
29242925 if templ_7745c5c3_Err != nil {
29252926 return templ_7745c5c3_Err
29262927 }
2927- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span>")
2928+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "</span>")
29282929 if templ_7745c5c3_Err != nil {
29292930 return templ_7745c5c3_Err
29302931 }
29312932 }
2932- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</span> ")
2933+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "</span> ")
29332934 if templ_7745c5c3_Err != nil {
29342935 return templ_7745c5c3_Err
29352936 }
29362937 if len(v.Paths) > 0 {
2937- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")
2938+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")
29382939 if templ_7745c5c3_Err != nil {
29392940 return templ_7745c5c3_Err
29402941 }
29412942 for _, path := range v.Paths {
2942- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "<li><code>")
2943+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "<li><code>")
29432944 if templ_7745c5c3_Err != nil {
29442945 return templ_7745c5c3_Err
29452946 }
2946- var templ_7745c5c3_Var143 string
2947- templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(path)
2947+ var templ_7745c5c3_Var142 string
2948+ templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(path)
29482949 if templ_7745c5c3_Err != nil {
2949- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 567, Col: 20}
2950+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 20}
29502951 }
2951- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))
2952+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))
29522953 if templ_7745c5c3_Err != nil {
29532954 return templ_7745c5c3_Err
29542955 }
2955- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "</code></li>")
2956+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "</code></li>")
29562957 if templ_7745c5c3_Err != nil {
29572958 return templ_7745c5c3_Err
29582959 }
29592960 }
2960- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "</ul>")
2961+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</ul>")
29612962 if templ_7745c5c3_Err != nil {
29622963 return templ_7745c5c3_Err
29632964 }
29642965 }
29652966 if v.PathsNote != "" {
2966- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "<p class=\"dim\">")
2967+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<p class=\"dim\">")
29672968 if templ_7745c5c3_Err != nil {
29682969 return templ_7745c5c3_Err
29692970 }
2970- var templ_7745c5c3_Var144 string
2971- templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)
2971+ var templ_7745c5c3_Var143 string
2972+ templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)
29722973 if templ_7745c5c3_Err != nil {
2973- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 572, Col: 30}
2974+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 575, Col: 30}
29742975 }
2975- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var144))
2976+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))
29762977 if templ_7745c5c3_Err != nil {
29772978 return templ_7745c5c3_Err
29782979 }
2979- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</p>")
2980+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</p>")
29802981 if templ_7745c5c3_Err != nil {
29812982 return templ_7745c5c3_Err
29822983 }
@@ -3003,12 +3004,12 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
30033004 }()
30043005 }
30053006 ctx = templ.InitializeContext(ctx)
3006- templ_7745c5c3_Var145 := templ.GetChildren(ctx)
3007- if templ_7745c5c3_Var145 == nil {
3008- templ_7745c5c3_Var145 = templ.NopComponent
3007+ templ_7745c5c3_Var144 := templ.GetChildren(ctx)
3008+ if templ_7745c5c3_Var144 == nil {
3009+ templ_7745c5c3_Var144 = templ.NopComponent
30093010 }
30103011 ctx = templ.ClearChildren(ctx)
3011- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")
3012+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")
30123013 if templ_7745c5c3_Err != nil {
30133014 return templ_7745c5c3_Err
30143015 }
@@ -3016,7 +3017,7 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
30163017 if templ_7745c5c3_Err != nil {
30173018 return templ_7745c5c3_Err
30183019 }
3019- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</div>")
3020+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "</div>")
30203021 if templ_7745c5c3_Err != nil {
30213022 return templ_7745c5c3_Err
30223023 }
@@ -3041,9 +3042,9 @@ func MRMergeabilityFragment(v MergeabilityView) templ.Component {
30413042 }()
30423043 }
30433044 ctx = templ.InitializeContext(ctx)
3044- templ_7745c5c3_Var146 := templ.GetChildren(ctx)
3045- if templ_7745c5c3_Var146 == nil {
3046- templ_7745c5c3_Var146 = templ.NopComponent
3045+ templ_7745c5c3_Var145 := templ.GetChildren(ctx)
3046+ if templ_7745c5c3_Var145 == nil {
3047+ templ_7745c5c3_Var145 = templ.NopComponent
30473048 }
30483049 ctx = templ.ClearChildren(ctx)
30493050 templ_7745c5c3_Err = mrMergeabilitySlot(v).Render(ctx, templ_7745c5c3_Buffer)
@@ -3072,66 +3073,66 @@ func moreMenu(p MRPage) templ.Component {
30723073 }()
30733074 }
30743075 ctx = templ.InitializeContext(ctx)
3075- templ_7745c5c3_Var147 := templ.GetChildren(ctx)
3076- if templ_7745c5c3_Var147 == nil {
3077- templ_7745c5c3_Var147 = templ.NopComponent
3076+ templ_7745c5c3_Var146 := templ.GetChildren(ctx)
3077+ if templ_7745c5c3_Var146 == nil {
3078+ templ_7745c5c3_Var146 = templ.NopComponent
30783079 }
30793080 ctx = templ.ClearChildren(ctx)
3080- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">")
3081+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">")
30813082 if templ_7745c5c3_Err != nil {
30823083 return templ_7745c5c3_Err
30833084 }
30843085 if p.Box.CanMarkRead {
3085- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "<form method=\"post\" action=\"")
3086+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "<form method=\"post\" action=\"")
30863087 if templ_7745c5c3_Err != nil {
30873088 return templ_7745c5c3_Err
30883089 }
3089- var templ_7745c5c3_Var148 templ.SafeURL
3090- templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))
3090+ var templ_7745c5c3_Var147 templ.SafeURL
3091+ templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))
30913092 if templ_7745c5c3_Err != nil {
3092- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 596, Col: 64}
3093+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 599, Col: 64}
30933094 }
3094- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var148))
3095+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147))
30953096 if templ_7745c5c3_Err != nil {
30963097 return templ_7745c5c3_Err
30973098 }
3098- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
3099+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
30993100 if templ_7745c5c3_Err != nil {
31003101 return templ_7745c5c3_Err
31013102 }
3102- var templ_7745c5c3_Var149 string
3103- templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
3103+ var templ_7745c5c3_Var148 string
3104+ templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
31043105 if templ_7745c5c3_Err != nil {
3105- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 597, Col: 59}
3106+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 600, Col: 59}
31063107 }
3107- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149)
3108+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148)
31083109 if templ_7745c5c3_Err != nil {
31093110 return templ_7745c5c3_Err
31103111 }
3111- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>")
3112+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>")
31123113 if templ_7745c5c3_Err != nil {
31133114 return templ_7745c5c3_Err
31143115 }
31153116 }
3116- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "<form method=\"post\" action=\"")
3117+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<form method=\"post\" action=\"")
31173118 if templ_7745c5c3_Err != nil {
31183119 return templ_7745c5c3_Err
31193120 }
3120- var templ_7745c5c3_Var150 templ.SafeURL
3121- templ_7745c5c3_Var150, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))
3121+ var templ_7745c5c3_Var149 templ.SafeURL
3122+ templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))
31223123 if templ_7745c5c3_Err != nil {
3123- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 601, Col: 64}
3124+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 604, Col: 64}
31243125 }
3125- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var150))
3126+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var149))
31263127 if templ_7745c5c3_Err != nil {
31273128 return templ_7745c5c3_Err
31283129 }
3129- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>")
3130+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>")
31303131 if templ_7745c5c3_Err != nil {
31313132 return templ_7745c5c3_Err
31323133 }
31333134 if !p.Box.HeadGone && p.Box.ReadyAction == "" {
3134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")
3135+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")
31353136 if templ_7745c5c3_Err != nil {
31363137 return templ_7745c5c3_Err
31373138 }
@@ -3139,12 +3140,12 @@ func moreMenu(p MRPage) templ.Component {
31393140 if templ_7745c5c3_Err != nil {
31403141 return templ_7745c5c3_Err
31413142 }
3142- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "</details>")
3143+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "</details>")
31433144 if templ_7745c5c3_Err != nil {
31443145 return templ_7745c5c3_Err
31453146 }
31463147 }
3147- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "</div></details>")
3148+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "</div></details>")
31483149 if templ_7745c5c3_Err != nil {
31493150 return templ_7745c5c3_Err
31503151 }
@@ -3168,12 +3169,12 @@ func Compare(l Layout, p ComparePage) templ.Component {
31683169 }()
31693170 }
31703171 ctx = templ.InitializeContext(ctx)
3171- templ_7745c5c3_Var151 := templ.GetChildren(ctx)
3172- if templ_7745c5c3_Var151 == nil {
3173- templ_7745c5c3_Var151 = templ.NopComponent
3172+ templ_7745c5c3_Var150 := templ.GetChildren(ctx)
3173+ if templ_7745c5c3_Var150 == nil {
3174+ templ_7745c5c3_Var150 = templ.NopComponent
31743175 }
31753176 ctx = templ.ClearChildren(ctx)
3176- templ_7745c5c3_Var152 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
3177+ templ_7745c5c3_Var151 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
31773178 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
31783179 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
31793180 if !templ_7745c5c3_IsBuffer {
@@ -3185,263 +3186,263 @@ func Compare(l Layout, p ComparePage) templ.Component {
31853186 }()
31863187 }
31873188 ctx = templ.InitializeContext(ctx)
3188- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "<header class=\"show mr-h\"><h1>")
3189+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "<header class=\"show mr-h\"><h1>")
31893190 if templ_7745c5c3_Err != nil {
31903191 return templ_7745c5c3_Err
31913192 }
3192- var templ_7745c5c3_Var153 string
3193- templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3193+ var templ_7745c5c3_Var152 string
3194+ templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
31943195 if templ_7745c5c3_Err != nil {
3195- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 17}
3196+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 17}
31963197 }
3197- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))
3198+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152))
31983199 if templ_7745c5c3_Err != nil {
31993200 return templ_7745c5c3_Err
32003201 }
3201- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, " → ")
3202+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, " → ")
32023203 if templ_7745c5c3_Err != nil {
32033204 return templ_7745c5c3_Err
32043205 }
3205- var templ_7745c5c3_Var154 string
3206- templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3206+ var templ_7745c5c3_Var153 string
3207+ templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
32073208 if templ_7745c5c3_Err != nil {
3208- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 34}
3209+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 34}
32093210 }
3210- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))
3211+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))
32113212 if templ_7745c5c3_Err != nil {
32123213 return templ_7745c5c3_Err
32133214 }
3214- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")
3215+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")
32153216 if templ_7745c5c3_Err != nil {
32163217 return templ_7745c5c3_Err
32173218 }
3218- var templ_7745c5c3_Var155 templ.SafeURL
3219- templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))
3219+ var templ_7745c5c3_Var154 templ.SafeURL
3220+ templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))
32203221 if templ_7745c5c3_Err != nil {
3221- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 45}
3222+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 45}
32223223 }
3223- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))
3224+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))
32243225 if templ_7745c5c3_Err != nil {
32253226 return templ_7745c5c3_Err
32263227 }
3227- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "\">")
3228+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")
32283229 if templ_7745c5c3_Err != nil {
32293230 return templ_7745c5c3_Err
32303231 }
3231- var templ_7745c5c3_Var156 string
3232- templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3232+ var templ_7745c5c3_Var155 string
3233+ templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
32333234 if templ_7745c5c3_Err != nil {
3234- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 58}
3235+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 58}
32353236 }
3236- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))
3237+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))
32373238 if templ_7745c5c3_Err != nil {
32383239 return templ_7745c5c3_Err
32393240 }
3240- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</a></dd><dt>target</dt><dd><a href=\"")
3241+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>target</dt><dd><a href=\"")
32413242 if templ_7745c5c3_Err != nil {
32423243 return templ_7745c5c3_Err
32433244 }
3244- var templ_7745c5c3_Var157 templ.SafeURL
3245- templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))
3245+ var templ_7745c5c3_Var156 templ.SafeURL
3246+ templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))
32463247 if templ_7745c5c3_Err != nil {
3247- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 45}
3248+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 45}
32483249 }
3249- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))
3250+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))
32503251 if templ_7745c5c3_Err != nil {
32513252 return templ_7745c5c3_Err
32523253 }
3253- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")
3254+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "\">")
32543255 if templ_7745c5c3_Err != nil {
32553256 return templ_7745c5c3_Err
32563257 }
3257- var templ_7745c5c3_Var158 string
3258- templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3258+ var templ_7745c5c3_Var157 string
3259+ templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
32593260 if templ_7745c5c3_Err != nil {
3260- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 58}
3261+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 58}
32613262 }
3262- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))
3263+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))
32633264 if templ_7745c5c3_Err != nil {
32643265 return templ_7745c5c3_Err
32653266 }
3266- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>ahead</dt><dd>")
3267+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "</a></dd><dt>ahead</dt><dd>")
32673268 if templ_7745c5c3_Err != nil {
32683269 return templ_7745c5c3_Err
32693270 }
3270- var templ_7745c5c3_Var159 string
3271- templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)
3271+ var templ_7745c5c3_Var158 string
3272+ templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)
32723273 if templ_7745c5c3_Err != nil {
3273- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 624, Col: 21}
3274+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 627, Col: 21}
32743275 }
3275- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))
3276+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))
32763277 if templ_7745c5c3_Err != nil {
32773278 return templ_7745c5c3_Err
32783279 }
3279- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "</dd></dl></header>")
3280+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</dd></dl></header>")
32803281 if templ_7745c5c3_Err != nil {
32813282 return templ_7745c5c3_Err
32823283 }
32833284 if p.Note != "" {
3284- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "<p class=\"notice\">")
3285+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "<p class=\"notice\">")
32853286 if templ_7745c5c3_Err != nil {
32863287 return templ_7745c5c3_Err
32873288 }
3288- var templ_7745c5c3_Var160 string
3289- templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
3289+ var templ_7745c5c3_Var159 string
3290+ templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
32903291 if templ_7745c5c3_Err != nil {
3291- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 628, Col: 29}
3292+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 29}
32923293 }
3293- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))
3294+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))
32943295 if templ_7745c5c3_Err != nil {
32953296 return templ_7745c5c3_Err
32963297 }
3297- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</p>")
3298+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "</p>")
32983299 if templ_7745c5c3_Err != nil {
32993300 return templ_7745c5c3_Err
33003301 }
33013302 }
3302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, " ")
3303+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, " ")
33033304 if templ_7745c5c3_Err != nil {
33043305 return templ_7745c5c3_Err
33053306 }
33063307 if p.Existing != nil {
3307- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")
3308+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")
33083309 if templ_7745c5c3_Err != nil {
33093310 return templ_7745c5c3_Err
33103311 }
3311- var templ_7745c5c3_Var161 templ.SafeURL
3312- templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))
3312+ var templ_7745c5c3_Var160 templ.SafeURL
3313+ templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))
33133314 if templ_7745c5c3_Err != nil {
3314- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 114}
3315+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 114}
33153316 }
3316- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))
3317+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))
33173318 if templ_7745c5c3_Err != nil {
33183319 return templ_7745c5c3_Err
33193320 }
3320- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, "\">")
3321+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, "\">")
33213322 if templ_7745c5c3_Err != nil {
33223323 return templ_7745c5c3_Err
33233324 }
3324- var templ_7745c5c3_Var162 string
3325- templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)
3325+ var templ_7745c5c3_Var161 string
3326+ templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)
33263327 if templ_7745c5c3_Err != nil {
3327- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 135}
3328+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 135}
33283329 }
3329- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))
3330+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))
33303331 if templ_7745c5c3_Err != nil {
33313332 return templ_7745c5c3_Err
33323333 }
3333- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "</a></p>")
3334+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "</a></p>")
33343335 if templ_7745c5c3_Err != nil {
33353336 return templ_7745c5c3_Err
33363337 }
33373338 }
3338- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, " ")
3339+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, " ")
33393340 if templ_7745c5c3_Err != nil {
33403341 return templ_7745c5c3_Err
33413342 }
33423343 if p.Create != nil {
3343- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "<form class=\"cform create\" method=\"post\" action=\"")
3344+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "<form class=\"cform create\" method=\"post\" action=\"")
33443345 if templ_7745c5c3_Err != nil {
33453346 return templ_7745c5c3_Err
33463347 }
3347- var templ_7745c5c3_Var163 templ.SafeURL
3348- templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))
3348+ var templ_7745c5c3_Var162 templ.SafeURL
3349+ templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))
33493350 if templ_7745c5c3_Err != nil {
3350- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 83}
3351+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 637, Col: 83}
33513352 }
3352- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var163))
3353+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))
33533354 if templ_7745c5c3_Err != nil {
33543355 return templ_7745c5c3_Err
33553356 }
3356- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, "\"><input type=\"hidden\" name=\"source\" value=\"")
3357+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 309, "\"><input type=\"hidden\" name=\"source\" value=\"")
33573358 if templ_7745c5c3_Err != nil {
33583359 return templ_7745c5c3_Err
33593360 }
3360- var templ_7745c5c3_Var164 string
3361- templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)
3361+ var templ_7745c5c3_Var163 string
3362+ templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)
33623363 if templ_7745c5c3_Err != nil {
3363- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 635, Col: 62}
3364+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 62}
33643365 }
3365- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)
3366+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var163)
33663367 if templ_7745c5c3_Err != nil {
33673368 return templ_7745c5c3_Err
33683369 }
3369- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "\"> <input type=\"hidden\" name=\"target\" value=\"")
3370+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 310, "\"> <input type=\"hidden\" name=\"target\" value=\"")
33703371 if templ_7745c5c3_Err != nil {
33713372 return templ_7745c5c3_Err
33723373 }
3373- var templ_7745c5c3_Var165 string
3374- templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)
3374+ var templ_7745c5c3_Var164 string
3375+ templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)
33753376 if templ_7745c5c3_Err != nil {
3376- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 636, Col: 62}
3377+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 639, Col: 62}
33773378 }
3378- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)
3379+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)
33793380 if templ_7745c5c3_Err != nil {
33803381 return templ_7745c5c3_Err
33813382 }
3382- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 309, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"")
3383+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 311, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"")
33833384 if templ_7745c5c3_Err != nil {
33843385 return templ_7745c5c3_Err
33853386 }
3386- var templ_7745c5c3_Var166 string
3387- templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)
3387+ var templ_7745c5c3_Var165 string
3388+ templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)
33883389 if templ_7745c5c3_Err != nil {
3389- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 97}
3390+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 641, Col: 97}
33903391 }
3391- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var166)
3392+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)
33923393 if templ_7745c5c3_Err != nil {
33933394 return templ_7745c5c3_Err
33943395 }
3395- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 310, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>")
3396+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 312, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>")
33963397 if templ_7745c5c3_Err != nil {
33973398 return templ_7745c5c3_Err
33983399 }
33993400 }
3400- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 311, " ")
3401+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " ")
34013402 if templ_7745c5c3_Err != nil {
34023403 return templ_7745c5c3_Err
34033404 }
34043405 if p.HasDiff {
3405- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 312, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")
3406+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")
34063407 if templ_7745c5c3_Err != nil {
34073408 return templ_7745c5c3_Err
34083409 }
3409- var templ_7745c5c3_Var167 string
3410- templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
3410+ var templ_7745c5c3_Var166 string
3411+ templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
34113412 if templ_7745c5c3_Err != nil {
3412- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 57}
3413+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 57}
34133414 }
3414- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))
3415+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var166))
34153416 if templ_7745c5c3_Err != nil {
34163417 return templ_7745c5c3_Err
34173418 }
3418- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " · <span class=\"plus\">+")
3419+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, " · <span class=\"plus\">+")
34193420 if templ_7745c5c3_Err != nil {
34203421 return templ_7745c5c3_Err
34213422 }
3422- var templ_7745c5c3_Var168 string
3423- templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
3423+ var templ_7745c5c3_Var167 string
3424+ templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
34243425 if templ_7745c5c3_Err != nil {
3425- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 97}
3426+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 97}
34263427 }
3427- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))
3428+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))
34283429 if templ_7745c5c3_Err != nil {
34293430 return templ_7745c5c3_Err
34303431 }
3431- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "</span> <span class=\"minus\">-")
3432+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 316, "</span> <span class=\"minus\">-")
34323433 if templ_7745c5c3_Err != nil {
34333434 return templ_7745c5c3_Err
34343435 }
3435- var templ_7745c5c3_Var169 string
3436- templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
3436+ var templ_7745c5c3_Var168 string
3437+ templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
34373438 if templ_7745c5c3_Err != nil {
3438- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 142}
3439+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 142}
34393440 }
3440- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var169))
3441+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))
34413442 if templ_7745c5c3_Err != nil {
34423443 return templ_7745c5c3_Err
34433444 }
3444- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, "</span></span> <span class=\"grow\"></span>")
3445+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 317, "</span></span> <span class=\"grow\"></span>")
34453446 if templ_7745c5c3_Err != nil {
34463447 return templ_7745c5c3_Err
34473448 }
@@ -3457,64 +3458,64 @@ func Compare(l Layout, p ComparePage) templ.Component {
34573458 if templ_7745c5c3_Err != nil {
34583459 return templ_7745c5c3_Err
34593460 }
3460- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 316, "</div>")
3461+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, "</div>")
34613462 if templ_7745c5c3_Err != nil {
34623463 return templ_7745c5c3_Err
34633464 }
34643465 if p.Invisible {
3465- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 317, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\">&lt;U+XXXX&gt;</span> markers, never applied.</p>")
3466+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 319, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\">&lt;U+XXXX&gt;</span> markers, never applied.</p>")
34663467 if templ_7745c5c3_Err != nil {
34673468 return templ_7745c5c3_Err
34683469 }
34693470 }
3470- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, " <div id=\"diffs\"")
3471+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, " <div id=\"diffs\"")
34713472 if templ_7745c5c3_Err != nil {
34723473 return templ_7745c5c3_Err
34733474 }
34743475 if p.Both {
3475- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 319, " data-diff=\"")
3476+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-diff=\"")
34763477 if templ_7745c5c3_Err != nil {
34773478 return templ_7745c5c3_Err
34783479 }
3479- var templ_7745c5c3_Var170 string
3480- templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3480+ var templ_7745c5c3_Var169 string
3481+ templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
34813482 if templ_7745c5c3_Err != nil {
3482- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 663, Col: 23}
3483+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 23}
34833484 }
3484- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)
3485+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var169)
34853486 if templ_7745c5c3_Err != nil {
34863487 return templ_7745c5c3_Err
34873488 }
3488- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, "\"")
3489+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")
34893490 if templ_7745c5c3_Err != nil {
34903491 return templ_7745c5c3_Err
34913492 }
34923493 } else {
3493- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-view=\"")
3494+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " data-view=\"")
34943495 if templ_7745c5c3_Err != nil {
34953496 return templ_7745c5c3_Err
34963497 }
3497- var templ_7745c5c3_Var171 string
3498- templ_7745c5c3_Var171, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3498+ var templ_7745c5c3_Var170 string
3499+ templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
34993500 if templ_7745c5c3_Err != nil {
3500- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 665, Col: 23}
3501+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 668, Col: 23}
35013502 }
3502- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var171)
3503+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)
35033504 if templ_7745c5c3_Err != nil {
35043505 return templ_7745c5c3_Err
35053506 }
3506- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")
3507+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, "\"")
35073508 if templ_7745c5c3_Err != nil {
35083509 return templ_7745c5c3_Err
35093510 }
35103511 }
35113512 if p.Both && !p.Pinned {
3512- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
3513+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
35133514 if templ_7745c5c3_Err != nil {
35143515 return templ_7745c5c3_Err
35153516 }
35163517 }
3517- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, ">")
3518+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, ">")
35183519 if templ_7745c5c3_Err != nil {
35193520 return templ_7745c5c3_Err
35203521 }
@@ -3524,14 +3525,14 @@ func Compare(l Layout, p ComparePage) templ.Component {
35243525 return templ_7745c5c3_Err
35253526 }
35263527 }
3527- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, "</div>")
3528+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</div>")
35283529 if templ_7745c5c3_Err != nil {
35293530 return templ_7745c5c3_Err
35303531 }
35313532 }
35323533 return nil
35333534 })
3534- templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var152), templ_7745c5c3_Buffer)
3535+ templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var151), templ_7745c5c3_Buffer)
35353536 if templ_7745c5c3_Err != nil {
35363537 return templ_7745c5c3_Err
35373538 }
@@ -3555,173 +3556,173 @@ func compareRail(p ComparePage) templ.Component {
35553556 }()
35563557 }
35573558 ctx = templ.InitializeContext(ctx)
3558- templ_7745c5c3_Var172 := templ.GetChildren(ctx)
3559- if templ_7745c5c3_Var172 == nil {
3560- templ_7745c5c3_Var172 = templ.NopComponent
3559+ templ_7745c5c3_Var171 := templ.GetChildren(ctx)
3560+ if templ_7745c5c3_Var171 == nil {
3561+ templ_7745c5c3_Var171 = templ.NopComponent
35613562 }
35623563 ctx = templ.ClearChildren(ctx)
3563- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")
3564+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")
35643565 if templ_7745c5c3_Err != nil {
35653566 return templ_7745c5c3_Err
35663567 }
3567- var templ_7745c5c3_Var173 string
3568- templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))
3568+ var templ_7745c5c3_Var172 string
3569+ templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))
35693570 if templ_7745c5c3_Err != nil {
3570- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 681, Col: 67}
3571+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 684, Col: 67}
35713572 }
3572- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))
3573+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172))
35733574 if templ_7745c5c3_Err != nil {
35743575 return templ_7745c5c3_Err
35753576 }
3576- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</span></h2><ul class=\"pcommits\">")
3577+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "</span></h2><ul class=\"pcommits\">")
35773578 if templ_7745c5c3_Err != nil {
35783579 return templ_7745c5c3_Err
35793580 }
35803581 for _, c := range p.Ahead {
3581- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<li><a href=\"")
3582+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "<li><a href=\"")
35823583 if templ_7745c5c3_Err != nil {
35833584 return templ_7745c5c3_Err
35843585 }
3585- var templ_7745c5c3_Var174 templ.SafeURL
3586- templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
3586+ var templ_7745c5c3_Var173 templ.SafeURL
3587+ templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
35873588 if templ_7745c5c3_Err != nil {
3588- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 685, Col: 37}
3589+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 37}
35893590 }
3590- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))
3591+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))
35913592 if templ_7745c5c3_Err != nil {
35923593 return templ_7745c5c3_Err
35933594 }
3594- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "\">")
3595+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "\">")
35953596 if templ_7745c5c3_Err != nil {
35963597 return templ_7745c5c3_Err
35973598 }
3598- var templ_7745c5c3_Var175 string
3599- templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
3599+ var templ_7745c5c3_Var174 string
3600+ templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
36003601 if templ_7745c5c3_Err != nil {
3601- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 685, Col: 49}
3602+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 49}
36023603 }
3603- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))
3604+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))
36043605 if templ_7745c5c3_Err != nil {
36053606 return templ_7745c5c3_Err
36063607 }
3607- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "</a> <span class=\"s\">")
3608+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, "</a> <span class=\"s\">")
36083609 if templ_7745c5c3_Err != nil {
36093610 return templ_7745c5c3_Err
36103611 }
3611- var templ_7745c5c3_Var176 string
3612- templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
3612+ var templ_7745c5c3_Var175 string
3613+ templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
36133614 if templ_7745c5c3_Err != nil {
3614- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 32}
3615+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 689, Col: 32}
36153616 }
3616- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))
3617+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))
36173618 if templ_7745c5c3_Err != nil {
36183619 return templ_7745c5c3_Err
36193620 }
3620- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "</span> <span class=\"mute\">")
3621+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "</span> <span class=\"mute\">")
36213622 if templ_7745c5c3_Err != nil {
36223623 return templ_7745c5c3_Err
36233624 }
3624- var templ_7745c5c3_Var177 string
3625- templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
3625+ var templ_7745c5c3_Var176 string
3626+ templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
36263627 if templ_7745c5c3_Err != nil {
3627- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 16}
3628+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 16}
36283629 }
3629- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))
3630+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))
36303631 if templ_7745c5c3_Err != nil {
36313632 return templ_7745c5c3_Err
36323633 }
3633- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, " ")
3634+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, " ")
36343635 if templ_7745c5c3_Err != nil {
36353636 return templ_7745c5c3_Err
36363637 }
36373638 if c.WhenAt != "" {
3638- var templ_7745c5c3_Var178 string
3639- templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
3639+ var templ_7745c5c3_Var177 string
3640+ templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
36403641 if templ_7745c5c3_Err != nil {
3641- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 690, Col: 15}
3642+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 693, Col: 15}
36423643 }
3643- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var178))
3644+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))
36443645 if templ_7745c5c3_Err != nil {
36453646 return templ_7745c5c3_Err
36463647 }
3647- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "<time datetime=\"")
3648+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "<time datetime=\"")
36483649 if templ_7745c5c3_Err != nil {
36493650 return templ_7745c5c3_Err
36503651 }
3651- var templ_7745c5c3_Var179 string
3652- templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
3652+ var templ_7745c5c3_Var178 string
3653+ templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
36533654 if templ_7745c5c3_Err != nil {
3654- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 690, Col: 42}
3655+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 693, Col: 42}
36553656 }
3656- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var179)
3657+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var178)
36573658 if templ_7745c5c3_Err != nil {
36583659 return templ_7745c5c3_Err
36593660 }
3660- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, "\">")
3661+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "\">")
36613662 if templ_7745c5c3_Err != nil {
36623663 return templ_7745c5c3_Err
36633664 }
3664- var templ_7745c5c3_Var180 string
3665- templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
3665+ var templ_7745c5c3_Var179 string
3666+ templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
36663667 if templ_7745c5c3_Err != nil {
3667- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 690, Col: 53}
3668+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 693, Col: 53}
36683669 }
3669- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))
3670+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var179))
36703671 if templ_7745c5c3_Err != nil {
36713672 return templ_7745c5c3_Err
36723673 }
3673- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "</time>")
3674+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</time>")
36743675 if templ_7745c5c3_Err != nil {
36753676 return templ_7745c5c3_Err
36763677 }
36773678 }
3678- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "</span></li>")
3679+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "</span></li>")
36793680 if templ_7745c5c3_Err != nil {
36803681 return templ_7745c5c3_Err
36813682 }
36823683 }
3683- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</ul>")
3684+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, "</ul>")
36843685 if templ_7745c5c3_Err != nil {
36853686 return templ_7745c5c3_Err
36863687 }
36873688 if len(p.Ahead) == 0 {
3688- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "<p class=\"dim\">no commit ahead of ")
3689+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "<p class=\"dim\">no commit ahead of ")
36893690 if templ_7745c5c3_Err != nil {
36903691 return templ_7745c5c3_Err
36913692 }
3692- var templ_7745c5c3_Var181 string
3693- templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3693+ var templ_7745c5c3_Var180 string
3694+ templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
36943695 if templ_7745c5c3_Err != nil {
3695- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 697, Col: 47}
3696+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 700, Col: 47}
36963697 }
3697- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))
3698+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))
36983699 if templ_7745c5c3_Err != nil {
36993700 return templ_7745c5c3_Err
37003701 }
3701- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, ".</p>")
3702+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, ".</p>")
37023703 if templ_7745c5c3_Err != nil {
37033704 return templ_7745c5c3_Err
37043705 }
37053706 }
3706- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "</section>")
3707+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</section>")
37073708 if templ_7745c5c3_Err != nil {
37083709 return templ_7745c5c3_Err
37093710 }
37103711 if p.HasDiff {
3711- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
3712+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
37123713 if templ_7745c5c3_Err != nil {
37133714 return templ_7745c5c3_Err
37143715 }
3715- var templ_7745c5c3_Var182 string
3716- templ_7745c5c3_Var182, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
3716+ var templ_7745c5c3_Var181 string
3717+ templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
37173718 if templ_7745c5c3_Err != nil {
3718- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 702, Col: 66}
3719+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 705, Col: 66}
37193720 }
3720- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var182))
3721+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))
37213722 if templ_7745c5c3_Err != nil {
37223723 return templ_7745c5c3_Err
37233724 }
3724- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</span></h2>")
3725+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "</span></h2>")
37253726 if templ_7745c5c3_Err != nil {
37263727 return templ_7745c5c3_Err
37273728 }
@@ -3729,12 +3730,12 @@ func compareRail(p ComparePage) templ.Component {
37293730 if templ_7745c5c3_Err != nil {
37303731 return templ_7745c5c3_Err
37313732 }
3732- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "</section>")
3733+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")
37333734 if templ_7745c5c3_Err != nil {
37343735 return templ_7745c5c3_Err
37353736 }
37363737 }
3737- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")
3738+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 346, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")
37383739 if templ_7745c5c3_Err != nil {
37393740 return templ_7745c5c3_Err
37403741 }
@@ -3742,7 +3743,7 @@ func compareRail(p ComparePage) templ.Component {
37423743 if templ_7745c5c3_Err != nil {
37433744 return templ_7745c5c3_Err
37443745 }
3745- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")
3746+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 347, "</section>")
37463747 if templ_7745c5c3_Err != nil {
37473748 return templ_7745c5c3_Err
37483749 }
@@ -1025,15 +1025,15 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
1025 if templ_7745c5c3_Err != nil {1025 if templ_7745c5c3_Err != nil {
1026 return templ_7745c5c3_Err1026 return templ_7745c5c3_Err
1027 }1027 }
1028- if p.Both {1028+ if p.Canonical != "" {
1029- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, " data-diff=\"")1029+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, " data-canonical=\"")
1030 if templ_7745c5c3_Err != nil {1030 if templ_7745c5c3_Err != nil {
1031 return templ_7745c5c3_Err1031 return templ_7745c5c3_Err
1032 }1032 }
1033 var templ_7745c5c3_Var51 string1033 var templ_7745c5c3_Var51 string
1034- templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)1034+ templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Canonical)
1035 if templ_7745c5c3_Err != nil {1035 if templ_7745c5c3_Err != nil {
1036- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 189, Col: 22}1036+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 189, Col: 32}
1037 }1037 }
1038 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var51)1038 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var51)
1039 if templ_7745c5c3_Err != nil {1039 if templ_7745c5c3_Err != nil {
@@ -1043,15 +1043,16 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
1043 if templ_7745c5c3_Err != nil {1043 if templ_7745c5c3_Err != nil {
1044 return templ_7745c5c3_Err1044 return templ_7745c5c3_Err
1045 }1045 }
1046- } else {1046+ }
1047- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, " data-view=\"")1047+ if p.Both {
1048+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, " data-diff=\"")
1048 if templ_7745c5c3_Err != nil {1049 if templ_7745c5c3_Err != nil {
1049 return templ_7745c5c3_Err1050 return templ_7745c5c3_Err
1050 }1051 }
1051 var templ_7745c5c3_Var52 string1052 var templ_7745c5c3_Var52 string
1052 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)1053 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
1053 if templ_7745c5c3_Err != nil {1054 if templ_7745c5c3_Err != nil {
1054- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 191, Col: 22}1055+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 192, Col: 22}
1055 }1056 }
1056 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var52)1057 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var52)
1057 if templ_7745c5c3_Err != nil {1058 if templ_7745c5c3_Err != nil {
@@ -1061,14 +1062,32 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
1061 if templ_7745c5c3_Err != nil {1062 if templ_7745c5c3_Err != nil {
1062 return templ_7745c5c3_Err1063 return templ_7745c5c3_Err
1063 }1064 }
1065+ } else {
1066+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " data-view=\"")
1067+ if templ_7745c5c3_Err != nil {
1068+ return templ_7745c5c3_Err
1069+ }
1070+ var templ_7745c5c3_Var53 string
1071+ templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
1072+ if templ_7745c5c3_Err != nil {
1073+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 194, Col: 22}
1074+ }
1075+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var53)
1076+ if templ_7745c5c3_Err != nil {
1077+ return templ_7745c5c3_Err
1078+ }
1079+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\"")
1080+ if templ_7745c5c3_Err != nil {
1081+ return templ_7745c5c3_Err
1082+ }
1064 }1083 }
1065 if p.Both && !p.Pinned {1084 if p.Both && !p.Pinned {
1066- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")1085+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
1067 if templ_7745c5c3_Err != nil {1086 if templ_7745c5c3_Err != nil {
1068 return templ_7745c5c3_Err1087 return templ_7745c5c3_Err
1069 }1088 }
1070 }1089 }
1071- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, ">")1090+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, ">")
1072 if templ_7745c5c3_Err != nil {1091 if templ_7745c5c3_Err != nil {
1073 return templ_7745c5c3_Err1092 return templ_7745c5c3_Err
1074 }1093 }
@@ -1079,38 +1098,38 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
1079 }1098 }
1080 }1099 }
1081 if len(p.Files) == 0 {1100 if len(p.Files) == 0 {
1082- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "<p class=\"note\">no changed files.</p>")1101+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "<p class=\"note\">no changed files.</p>")
1083 if templ_7745c5c3_Err != nil {1102 if templ_7745c5c3_Err != nil {
1084 return templ_7745c5c3_Err1103 return templ_7745c5c3_Err
1085 }1104 }
1086 }1105 }
1087- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</div><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">")1106+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "</div><h2 class=\"rule-h\" id=\"comments\"><span>Comments</span><span class=\"count\">")
1088 if templ_7745c5c3_Err != nil {1107 if templ_7745c5c3_Err != nil {
1089 return templ_7745c5c3_Err1108 return templ_7745c5c3_Err
1090 }1109 }
1091- var templ_7745c5c3_Var53 string1110+ var templ_7745c5c3_Var54 string
1092- templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NUnresolved))1111+ templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NUnresolved))
1093 if templ_7745c5c3_Err != nil {1112 if templ_7745c5c3_Err != nil {
1094- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 204, Col: 97}1113+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 207, Col: 97}
1095 }1114 }
1096- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var53))1115+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
1097 if templ_7745c5c3_Err != nil {1116 if templ_7745c5c3_Err != nil {
1098 return templ_7745c5c3_Err1117 return templ_7745c5c3_Err
1099 }1118 }
1100- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, " open / ")1119+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, " open / ")
1101 if templ_7745c5c3_Err != nil {1120 if templ_7745c5c3_Err != nil {
1102 return templ_7745c5c3_Err1121 return templ_7745c5c3_Err
1103 }1122 }
1104- var templ_7745c5c3_Var54 string1123+ var templ_7745c5c3_Var55 string
1105- templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NComments))1124+ templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.NComments))
1106 if templ_7745c5c3_Err != nil {1125 if templ_7745c5c3_Err != nil {
1107- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 204, Col: 126}1126+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 207, Col: 126}
1108 }1127 }
1109- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))1128+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
1110 if templ_7745c5c3_Err != nil {1129 if templ_7745c5c3_Err != nil {
1111 return templ_7745c5c3_Err1130 return templ_7745c5c3_Err
1112 }1131 }
1113- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "</span></h2>")1132+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</span></h2>")
1114 if templ_7745c5c3_Err != nil {1133 if templ_7745c5c3_Err != nil {
1115 return templ_7745c5c3_Err1134 return templ_7745c5c3_Err
1116 }1135 }
@@ -1126,17 +1145,17 @@ func MergeRequest(l Layout, p MRPage) templ.Component {
1126 return templ_7745c5c3_Err1145 return templ_7745c5c3_Err
1127 }1146 }
1128 }1147 }
1129- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, " ")1148+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, " ")
1130 if templ_7745c5c3_Err != nil {1149 if templ_7745c5c3_Err != nil {
1131 return templ_7745c5c3_Err1150 return templ_7745c5c3_Err
1132 }1151 }
1133 if p.NComments == 0 {1152 if p.NComments == 0 {
1134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "<p class=\"dim\">no comments yet.</p>")1153+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "<p class=\"dim\">no comments yet.</p>")
1135 if templ_7745c5c3_Err != nil {1154 if templ_7745c5c3_Err != nil {
1136 return templ_7745c5c3_Err1155 return templ_7745c5c3_Err
1137 }1156 }
1138 }1157 }
1139- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, " ")1158+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, " ")
1140 if templ_7745c5c3_Err != nil {1159 if templ_7745c5c3_Err != nil {
1141 return templ_7745c5c3_Err1160 return templ_7745c5c3_Err
1142 }1161 }
@@ -1172,49 +1191,49 @@ func branchLink(name, href string) templ.Component {
1172 }()1191 }()
1173 }1192 }
1174 ctx = templ.InitializeContext(ctx)1193 ctx = templ.InitializeContext(ctx)
1175- templ_7745c5c3_Var55 := templ.GetChildren(ctx)1194+ templ_7745c5c3_Var56 := templ.GetChildren(ctx)
1176- if templ_7745c5c3_Var55 == nil {1195+ if templ_7745c5c3_Var56 == nil {
1177- templ_7745c5c3_Var55 = templ.NopComponent1196+ templ_7745c5c3_Var56 = templ.NopComponent
1178 }1197 }
1179 ctx = templ.ClearChildren(ctx)1198 ctx = templ.ClearChildren(ctx)
1180 if href != "" {1199 if href != "" {
1181- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "<a href=\"")1200+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "<a href=\"")
1182 if templ_7745c5c3_Err != nil {1201 if templ_7745c5c3_Err != nil {
1183 return templ_7745c5c3_Err1202 return templ_7745c5c3_Err
1184 }1203 }
1185- var templ_7745c5c3_Var56 templ.SafeURL1204+ var templ_7745c5c3_Var57 templ.SafeURL
1186- templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))1205+ templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))
1187 if templ_7745c5c3_Err != nil {1206 if templ_7745c5c3_Err != nil {
1188- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 222, Col: 31}1207+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 225, Col: 31}
1189 }1208 }
1190- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))1209+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
1191 if templ_7745c5c3_Err != nil {1210 if templ_7745c5c3_Err != nil {
1192 return templ_7745c5c3_Err1211 return templ_7745c5c3_Err
1193 }1212 }
1194- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "\">")1213+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "\">")
1195 if templ_7745c5c3_Err != nil {1214 if templ_7745c5c3_Err != nil {
1196 return templ_7745c5c3_Err1215 return templ_7745c5c3_Err
1197 }1216 }
1198- var templ_7745c5c3_Var57 string1217+ var templ_7745c5c3_Var58 string
1199- templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinStringErrs(name)1218+ templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(name)
1200 if templ_7745c5c3_Err != nil {1219 if templ_7745c5c3_Err != nil {
1201- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 222, Col: 40}1220+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 225, Col: 40}
1202 }1221 }
1203- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))1222+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
1204 if templ_7745c5c3_Err != nil {1223 if templ_7745c5c3_Err != nil {
1205 return templ_7745c5c3_Err1224 return templ_7745c5c3_Err
1206 }1225 }
1207- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "</a>")1226+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "</a>")
1208 if templ_7745c5c3_Err != nil {1227 if templ_7745c5c3_Err != nil {
1209 return templ_7745c5c3_Err1228 return templ_7745c5c3_Err
1210 }1229 }
1211 } else {1230 } else {
1212- var templ_7745c5c3_Var58 string1231+ var templ_7745c5c3_Var59 string
1213- templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(name)1232+ templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(name)
1214 if templ_7745c5c3_Err != nil {1233 if templ_7745c5c3_Err != nil {
1215- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 224, Col: 8}1234+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 227, Col: 8}
1216 }1235 }
1217- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))1236+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))
1218 if templ_7745c5c3_Err != nil {1237 if templ_7745c5c3_Err != nil {
1219 return templ_7745c5c3_Err1238 return templ_7745c5c3_Err
1220 }1239 }
@@ -1242,9 +1261,9 @@ func lineNotes(notes []CommentView, form *CommentForm, suffix string) templ.Comp
1242 }()1261 }()
1243 }1262 }
1244 ctx = templ.InitializeContext(ctx)1263 ctx = templ.InitializeContext(ctx)
1245- templ_7745c5c3_Var59 := templ.GetChildren(ctx)1264+ templ_7745c5c3_Var60 := templ.GetChildren(ctx)
1246- if templ_7745c5c3_Var59 == nil {1265+ if templ_7745c5c3_Var60 == nil {
1247- templ_7745c5c3_Var59 = templ.NopComponent1266+ templ_7745c5c3_Var60 = templ.NopComponent
1248 }1267 }
1249 ctx = templ.ClearChildren(ctx)1268 ctx = templ.ClearChildren(ctx)
1250 for _, c := range notes {1269 for _, c := range notes {
@@ -1281,134 +1300,119 @@ func commentView(c CommentView, suffix string) templ.Component {
1281 }()1300 }()
1282 }1301 }
1283 ctx = templ.InitializeContext(ctx)1302 ctx = templ.InitializeContext(ctx)
1284- templ_7745c5c3_Var60 := templ.GetChildren(ctx)1303+ templ_7745c5c3_Var61 := templ.GetChildren(ctx)
1285- if templ_7745c5c3_Var60 == nil {1304+ if templ_7745c5c3_Var61 == nil {
1286- templ_7745c5c3_Var60 = templ.NopComponent1305+ templ_7745c5c3_Var61 = templ.NopComponent
1287 }1306 }
1288 ctx = templ.ClearChildren(ctx)1307 ctx = templ.ClearChildren(ctx)
1289- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "<div class=\"cmt\" id=\"")1308+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "<div class=\"cmt\" id=\"")
1290 if templ_7745c5c3_Err != nil {1309 if templ_7745c5c3_Err != nil {
1291 return templ_7745c5c3_Err1310 return templ_7745c5c3_Err
1292 }1311 }
1293- var templ_7745c5c3_Var61 string1312+ var templ_7745c5c3_Var62 string
1294- templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.ResolveAttributeValue("c" + c.ID + suffix)1313+ templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue("c" + c.ID + suffix)
1295 if templ_7745c5c3_Err != nil {1314 if templ_7745c5c3_Err != nil {
1296- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 243, Col: 42}1315+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 246, Col: 42}
1297 }1316 }
1298- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var61)1317+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62)
1299 if templ_7745c5c3_Err != nil {1318 if templ_7745c5c3_Err != nil {
1300 return templ_7745c5c3_Err1319 return templ_7745c5c3_Err
1301 }1320 }
1302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "\" data-resolved=\"")1321+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "\" data-resolved=\"")
1303 if templ_7745c5c3_Err != nil {1322 if templ_7745c5c3_Err != nil {
1304 return templ_7745c5c3_Err1323 return templ_7745c5c3_Err
1305 }1324 }
1306- var templ_7745c5c3_Var62 string1325+ var templ_7745c5c3_Var63 string
1307- templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolved))1326+ templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolved))
1308 if templ_7745c5c3_Err != nil {1327 if templ_7745c5c3_Err != nil {
1309- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 243, Col: 81}1328+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 246, Col: 81}
1310 }1329 }
1311- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var62)1330+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var63)
1312 if templ_7745c5c3_Err != nil {1331 if templ_7745c5c3_Err != nil {
1313 return templ_7745c5c3_Err1332 return templ_7745c5c3_Err
1314 }1333 }
1315- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "\"")1334+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "\"")
1316 if templ_7745c5c3_Err != nil {1335 if templ_7745c5c3_Err != nil {
1317 return templ_7745c5c3_Err1336 return templ_7745c5c3_Err
1318 }1337 }
1319 if c.Reply != nil {1338 if c.Reply != nil {
1320- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, " data-thread")1339+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, " data-thread")
1321 if templ_7745c5c3_Err != nil {1340 if templ_7745c5c3_Err != nil {
1322 return templ_7745c5c3_Err1341 return templ_7745c5c3_Err
1323 }1342 }
1324 }1343 }
1325- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "><p class=\"c-head\"><span class=\"c-who\">")1344+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "><p class=\"c-head\"><span class=\"c-who\">")
1326 if templ_7745c5c3_Err != nil {1345 if templ_7745c5c3_Err != nil {
1327 return templ_7745c5c3_Err1346 return templ_7745c5c3_Err
1328 }1347 }
1329- var templ_7745c5c3_Var63 string1348+ var templ_7745c5c3_Var64 string
1330- templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)1349+ templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
1331 if templ_7745c5c3_Err != nil {1350 if templ_7745c5c3_Err != nil {
1332- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 245, Col: 33}1351+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 248, Col: 33}
1333 }1352 }
1334- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))1353+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
1335 if templ_7745c5c3_Err != nil {1354 if templ_7745c5c3_Err != nil {
1336 return templ_7745c5c3_Err1355 return templ_7745c5c3_Err
1337 }1356 }
1338- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "</span> ")1357+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "</span> ")
1339 if templ_7745c5c3_Err != nil {1358 if templ_7745c5c3_Err != nil {
1340 return templ_7745c5c3_Err1359 return templ_7745c5c3_Err
1341 }1360 }
1342 if c.WhenAt != "" {1361 if c.WhenAt != "" {
1343- var templ_7745c5c3_Var64 string
1344- templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1345- if templ_7745c5c3_Err != nil {
1346- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 9}
1347- }
1348- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
1349- if templ_7745c5c3_Err != nil {
1350- return templ_7745c5c3_Err
1351- }
1352- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "<time class=\"mute\" datetime=\"")
1353- if templ_7745c5c3_Err != nil {
1354- return templ_7745c5c3_Err
1355- }
1356 var templ_7745c5c3_Var65 string1362 var templ_7745c5c3_Var65 string
1357- templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)1363+ templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1358 if templ_7745c5c3_Err != nil {1364 if templ_7745c5c3_Err != nil {
1359- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 49}1365+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 9}
1360 }1366 }
1361- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var65)1367+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
1362 if templ_7745c5c3_Err != nil {1368 if templ_7745c5c3_Err != nil {
1363 return templ_7745c5c3_Err1369 return templ_7745c5c3_Err
1364 }1370 }
1365- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "\" title=\"")1371+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "<time class=\"mute\" datetime=\"")
1366 if templ_7745c5c3_Err != nil {1372 if templ_7745c5c3_Err != nil {
1367 return templ_7745c5c3_Err1373 return templ_7745c5c3_Err
1368 }1374 }
1369 var templ_7745c5c3_Var66 string1375 var templ_7745c5c3_Var66 string
1370- templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs)1376+ templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
1371 if templ_7745c5c3_Err != nil {1377 if templ_7745c5c3_Err != nil {
1372- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 65}1378+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 49}
1373 }1379 }
1374 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)1380 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var66)
1375 if templ_7745c5c3_Err != nil {1381 if templ_7745c5c3_Err != nil {
1376 return templ_7745c5c3_Err1382 return templ_7745c5c3_Err
1377 }1383 }
1378- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "\">")1384+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "\" title=\"")
1379 if templ_7745c5c3_Err != nil {1385 if templ_7745c5c3_Err != nil {
1380 return templ_7745c5c3_Err1386 return templ_7745c5c3_Err
1381 }1387 }
1382 var templ_7745c5c3_Var67 string1388 var templ_7745c5c3_Var67 string
1383- templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)1389+ templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Abs)
1384 if templ_7745c5c3_Err != nil {1390 if templ_7745c5c3_Err != nil {
1385- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 247, Col: 76}1391+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 65}
1386 }1392 }
1387- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var67))1393+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67)
1388 if templ_7745c5c3_Err != nil {1394 if templ_7745c5c3_Err != nil {
1389 return templ_7745c5c3_Err1395 return templ_7745c5c3_Err
1390 }1396 }
1391- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "</time> ")1397+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "\">")
1392 if templ_7745c5c3_Err != nil {1398 if templ_7745c5c3_Err != nil {
1393 return templ_7745c5c3_Err1399 return templ_7745c5c3_Err
1394 }1400 }
1395- }
1396- if c.Resolved {
1397 var templ_7745c5c3_Var68 string1401 var templ_7745c5c3_Var68 string
1398- templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(" ")1402+ templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
1399 if templ_7745c5c3_Err != nil {1403 if templ_7745c5c3_Err != nil {
1400- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 9}1404+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, Col: 76}
1401 }1405 }
1402 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))1406 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var68))
1403 if templ_7745c5c3_Err != nil {1407 if templ_7745c5c3_Err != nil {
1404 return templ_7745c5c3_Err1408 return templ_7745c5c3_Err
1405 }1409 }
1406- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "<span class=\"c-state\">resolved</span> ")1410+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "</time> ")
1407 if templ_7745c5c3_Err != nil {1411 if templ_7745c5c3_Err != nil {
1408 return templ_7745c5c3_Err1412 return templ_7745c5c3_Err
1409 }1413 }
1410 }1414 }
1411- if c.Outdated {1415+ if c.Resolved {
1412 var templ_7745c5c3_Var69 string1416 var templ_7745c5c3_Var69 string
1413 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(" ")1417 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1414 if templ_7745c5c3_Err != nil {1418 if templ_7745c5c3_Err != nil {
@@ -1418,12 +1422,12 @@ func commentView(c CommentView, suffix string) templ.Component {
1418 if templ_7745c5c3_Err != nil {1422 if templ_7745c5c3_Err != nil {
1419 return templ_7745c5c3_Err1423 return templ_7745c5c3_Err
1420 }1424 }
1421- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "<span class=\"c-state\" title=\"written on an earlier head; the line may have moved\">outdated</span> ")1425+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "<span class=\"c-state\">resolved</span> ")
1422 if templ_7745c5c3_Err != nil {1426 if templ_7745c5c3_Err != nil {
1423 return templ_7745c5c3_Err1427 return templ_7745c5c3_Err
1424 }1428 }
1425 }1429 }
1426- if c.Where != "" {1430+ if c.Outdated {
1427 var templ_7745c5c3_Var70 string1431 var templ_7745c5c3_Var70 string
1428 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(" ")1432 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1429 if templ_7745c5c3_Err != nil {1433 if templ_7745c5c3_Err != nil {
@@ -1433,30 +1437,45 @@ func commentView(c CommentView, suffix string) templ.Component {
1433 if templ_7745c5c3_Err != nil {1437 if templ_7745c5c3_Err != nil {
1434 return templ_7745c5c3_Err1438 return templ_7745c5c3_Err
1435 }1439 }
1436- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "<span class=\"c-where mute\">")1440+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "<span class=\"c-state\" title=\"written on an earlier head; the line may have moved\">outdated</span> ")
1437 if templ_7745c5c3_Err != nil {1441 if templ_7745c5c3_Err != nil {
1438 return templ_7745c5c3_Err1442 return templ_7745c5c3_Err
1439 }1443 }
1444+ }
1445+ if c.Where != "" {
1440 var templ_7745c5c3_Var71 string1446 var templ_7745c5c3_Var71 string
1441- templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where)1447+ templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1442 if templ_7745c5c3_Err != nil {1448 if templ_7745c5c3_Err != nil {
1443- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 256, Col: 47}1449+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 259, Col: 9}
1444 }1450 }
1445 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71))1451 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71))
1446 if templ_7745c5c3_Err != nil {1452 if templ_7745c5c3_Err != nil {
1447 return templ_7745c5c3_Err1453 return templ_7745c5c3_Err
1448 }1454 }
1449- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "</span>")1455+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "<span class=\"c-where mute\">")
1456+ if templ_7745c5c3_Err != nil {
1457+ return templ_7745c5c3_Err
1458+ }
1459+ var templ_7745c5c3_Var72 string
1460+ templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Where)
1461+ if templ_7745c5c3_Err != nil {
1462+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 259, Col: 47}
1463+ }
1464+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))
1465+ if templ_7745c5c3_Err != nil {
1466+ return templ_7745c5c3_Err
1467+ }
1468+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "</span>")
1450 if templ_7745c5c3_Err != nil {1469 if templ_7745c5c3_Err != nil {
1451 return templ_7745c5c3_Err1470 return templ_7745c5c3_Err
1452 }1471 }
1453 }1472 }
1454- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "</p>")1473+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</p>")
1455 if templ_7745c5c3_Err != nil {1474 if templ_7745c5c3_Err != nil {
1456 return templ_7745c5c3_Err1475 return templ_7745c5c3_Err
1457 }1476 }
1458 if len(c.Parts) > 0 {1477 if len(c.Parts) > 0 {
1459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "<p class=\"c-text\">")1478+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "<p class=\"c-text\">")
1460 if templ_7745c5c3_Err != nil {1479 if templ_7745c5c3_Err != nil {
1461 return templ_7745c5c3_Err1480 return templ_7745c5c3_Err
1462 }1481 }
@@ -1464,24 +1483,24 @@ func commentView(c CommentView, suffix string) templ.Component {
1464 if templ_7745c5c3_Err != nil {1483 if templ_7745c5c3_Err != nil {
1465 return templ_7745c5c3_Err1484 return templ_7745c5c3_Err
1466 }1485 }
1467- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</p>")1486+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "</p>")
1468 if templ_7745c5c3_Err != nil {1487 if templ_7745c5c3_Err != nil {
1469 return templ_7745c5c3_Err1488 return templ_7745c5c3_Err
1470 }1489 }
1471 } else if c.Deleted {1490 } else if c.Deleted {
1472 if c.Verdict != "" {1491 if c.Verdict != "" {
1473- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "<p class=\"mute\">text deleted</p>")1492+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "<p class=\"mute\">text deleted</p>")
1474 if templ_7745c5c3_Err != nil {1493 if templ_7745c5c3_Err != nil {
1475 return templ_7745c5c3_Err1494 return templ_7745c5c3_Err
1476 }1495 }
1477 } else {1496 } else {
1478- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "<p class=\"mute\">deleted note</p>")1497+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "<p class=\"mute\">deleted note</p>")
1479 if templ_7745c5c3_Err != nil {1498 if templ_7745c5c3_Err != nil {
1480 return templ_7745c5c3_Err1499 return templ_7745c5c3_Err
1481 }1500 }
1482 }1501 }
1483 } else {1502 } else {
1484- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "<div class=\"c-body prose\">")1503+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "<div class=\"c-body prose\">")
1485 if templ_7745c5c3_Err != nil {1504 if templ_7745c5c3_Err != nil {
1486 return templ_7745c5c3_Err1505 return templ_7745c5c3_Err
1487 }1506 }
@@ -1496,147 +1515,147 @@ func commentView(c CommentView, suffix string) templ.Component {
1496 return templ_7745c5c3_Err1515 return templ_7745c5c3_Err
1497 }1516 }
1498 }1517 }
1499- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "</div>")1518+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "</div>")
1500 if templ_7745c5c3_Err != nil {1519 if templ_7745c5c3_Err != nil {
1501 return templ_7745c5c3_Err1520 return templ_7745c5c3_Err
1502 }1521 }
1503 }1522 }
1504 if c.Edited {1523 if c.Edited {
1505- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "<span class=\"mute\">edited</span> ")1524+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "<span class=\"mute\">edited</span> ")
1506 if templ_7745c5c3_Err != nil {1525 if templ_7745c5c3_Err != nil {
1507 return templ_7745c5c3_Err1526 return templ_7745c5c3_Err
1508 }1527 }
1509 }1528 }
1510 if c.Verdict != "" {1529 if c.Verdict != "" {
1511- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "<span class=\"c-state\">")1530+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<span class=\"c-state\">")
1512 if templ_7745c5c3_Err != nil {1531 if templ_7745c5c3_Err != nil {
1513 return templ_7745c5c3_Err1532 return templ_7745c5c3_Err
1514 }1533 }
1515- var templ_7745c5c3_Var72 string1534+ var templ_7745c5c3_Var73 string
1516- templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict)1535+ templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Verdict)
1517 if templ_7745c5c3_Err != nil {1536 if templ_7745c5c3_Err != nil {
1518- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 280, Col: 36}1537+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 283, Col: 36}
1519 }1538 }
1520- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))1539+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73))
1521 if templ_7745c5c3_Err != nil {1540 if templ_7745c5c3_Err != nil {
1522 return templ_7745c5c3_Err1541 return templ_7745c5c3_Err
1523 }1542 }
1524- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "</span> ")1543+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "</span> ")
1525 if templ_7745c5c3_Err != nil {1544 if templ_7745c5c3_Err != nil {
1526 return templ_7745c5c3_Err1545 return templ_7745c5c3_Err
1527 }1546 }
1528 }1547 }
1529 if c.Range != "" {1548 if c.Range != "" {
1530- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<span class=\"mute\">")1549+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<span class=\"mute\">")
1531 if templ_7745c5c3_Err != nil {1550 if templ_7745c5c3_Err != nil {
1532 return templ_7745c5c3_Err1551 return templ_7745c5c3_Err
1533 }1552 }
1534- var templ_7745c5c3_Var73 string1553+ var templ_7745c5c3_Var74 string
1535- templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range)1554+ templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.JoinStringErrs(c.Range)
1536 if templ_7745c5c3_Err != nil {1555 if templ_7745c5c3_Err != nil {
1537- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 283, Col: 31}1556+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 286, Col: 31}
1538 }1557 }
1539- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var73))1558+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var74))
1540 if templ_7745c5c3_Err != nil {1559 if templ_7745c5c3_Err != nil {
1541 return templ_7745c5c3_Err1560 return templ_7745c5c3_Err
1542 }1561 }
1543- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "</span> ")1562+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "</span> ")
1544 if templ_7745c5c3_Err != nil {1563 if templ_7745c5c3_Err != nil {
1545 return templ_7745c5c3_Err1564 return templ_7745c5c3_Err
1546 }1565 }
1547 }1566 }
1548 if c.Quote != "" {1567 if c.Quote != "" {
1549- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<button type=\"button\" class=\"btn\" data-js data-quote=\"")1568+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "<button type=\"button\" class=\"btn\" data-js data-quote=\"")
1550 if templ_7745c5c3_Err != nil {1569 if templ_7745c5c3_Err != nil {
1551 return templ_7745c5c3_Err1570 return templ_7745c5c3_Err
1552 }1571 }
1553- var templ_7745c5c3_Var74 string1572+ var templ_7745c5c3_Var75 string
1554- templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote)1573+ templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.Quote)
1555 if templ_7745c5c3_Err != nil {1574 if templ_7745c5c3_Err != nil {
1556- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 286, Col: 65}1575+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 65}
1557 }1576 }
1558- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74)1577+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var75)
1559 if templ_7745c5c3_Err != nil {1578 if templ_7745c5c3_Err != nil {
1560 return templ_7745c5c3_Err1579 return templ_7745c5c3_Err
1561 }1580 }
1562- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "\">Quote</button> ")1581+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "\">Quote</button> ")
1563 if templ_7745c5c3_Err != nil {1582 if templ_7745c5c3_Err != nil {
1564 return templ_7745c5c3_Err1583 return templ_7745c5c3_Err
1565 }1584 }
1566 }1585 }
1567 if c.Edit != nil {1586 if c.Edit != nil {
1568- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "<details><summary>Edit</summary><form method=\"post\" action=\"")1587+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "<details><summary>Edit</summary><form method=\"post\" action=\"")
1569 if templ_7745c5c3_Err != nil {1588 if templ_7745c5c3_Err != nil {
1570 return templ_7745c5c3_Err1589 return templ_7745c5c3_Err
1571 }1590 }
1572- var templ_7745c5c3_Var75 templ.SafeURL1591+ var templ_7745c5c3_Var76 templ.SafeURL
1573- templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action))1592+ templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Edit.Action))
1574 if templ_7745c5c3_Err != nil {1593 if templ_7745c5c3_Err != nil {
1575- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 92}1594+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 92}
1576 }1595 }
1577- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75))1596+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var76))
1578 if templ_7745c5c3_Err != nil {1597 if templ_7745c5c3_Err != nil {
1579 return templ_7745c5c3_Err1598 return templ_7745c5c3_Err
1580 }1599 }
1581- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "\"><input type=\"hidden\" name=\"from\" value=\"")1600+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "\"><input type=\"hidden\" name=\"from\" value=\"")
1582 if templ_7745c5c3_Err != nil {1601 if templ_7745c5c3_Err != nil {
1583 return templ_7745c5c3_Err1602 return templ_7745c5c3_Err
1584 }1603 }
1585- var templ_7745c5c3_Var76 string1604+ var templ_7745c5c3_Var77 string
1586- templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From))1605+ templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Edit.From))
1587 if templ_7745c5c3_Err != nil {1606 if templ_7745c5c3_Err != nil {
1588- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 153}1607+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 153}
1589 }1608 }
1590- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var76)1609+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var77)
1591 if templ_7745c5c3_Err != nil {1610 if templ_7745c5c3_Err != nil {
1592 return templ_7745c5c3_Err1611 return templ_7745c5c3_Err
1593 }1612 }
1594- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "\"><textarea name=\"text\" maxlength=\"8000\">")1613+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "\"><textarea name=\"text\" maxlength=\"8000\">")
1595 if templ_7745c5c3_Err != nil {1614 if templ_7745c5c3_Err != nil {
1596 return templ_7745c5c3_Err1615 return templ_7745c5c3_Err
1597 }1616 }
1598- var templ_7745c5c3_Var77 string1617+ var templ_7745c5c3_Var78 string
1599- templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text)1618+ templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinStringErrs(c.Edit.Text)
1600 if templ_7745c5c3_Err != nil {1619 if templ_7745c5c3_Err != nil {
1601- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 289, Col: 209}1620+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 209}
1602 }1621 }
1603- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var77))1622+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78))
1604 if templ_7745c5c3_Err != nil {1623 if templ_7745c5c3_Err != nil {
1605 return templ_7745c5c3_Err1624 return templ_7745c5c3_Err
1606 }1625 }
1607- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ")1626+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "</textarea><button class=\"btn\" type=\"submit\">Save</button></form></details> ")
1608 if templ_7745c5c3_Err != nil {1627 if templ_7745c5c3_Err != nil {
1609 return templ_7745c5c3_Err1628 return templ_7745c5c3_Err
1610 }1629 }
1611 }1630 }
1612 if c.Delete != nil {1631 if c.Delete != nil {
1613- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "<details><summary>Delete</summary><form method=\"post\" action=\"")1632+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "<details><summary>Delete</summary><form method=\"post\" action=\"")
1614 if templ_7745c5c3_Err != nil {1633 if templ_7745c5c3_Err != nil {
1615 return templ_7745c5c3_Err1634 return templ_7745c5c3_Err
1616 }1635 }
1617- var templ_7745c5c3_Var78 templ.SafeURL1636+ var templ_7745c5c3_Var79 templ.SafeURL
1618- templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action))1637+ templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Delete.Action))
1619 if templ_7745c5c3_Err != nil {1638 if templ_7745c5c3_Err != nil {
1620- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 96}1639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 96}
1621 }1640 }
1622- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78))1641+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var79))
1623 if templ_7745c5c3_Err != nil {1642 if templ_7745c5c3_Err != nil {
1624 return templ_7745c5c3_Err1643 return templ_7745c5c3_Err
1625 }1644 }
1626- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "\"><input type=\"hidden\" name=\"from\" value=\"")1645+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "\"><input type=\"hidden\" name=\"from\" value=\"")
1627 if templ_7745c5c3_Err != nil {1646 if templ_7745c5c3_Err != nil {
1628 return templ_7745c5c3_Err1647 return templ_7745c5c3_Err
1629 }1648 }
1630- var templ_7745c5c3_Var79 string1649+ var templ_7745c5c3_Var80 string
1631- templ_7745c5c3_Var79, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From))1650+ templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Delete.From))
1632 if templ_7745c5c3_Err != nil {1651 if templ_7745c5c3_Err != nil {
1633- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 292, Col: 159}1652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 295, Col: 159}
1634 }1653 }
1635- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var79)1654+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var80)
1636 if templ_7745c5c3_Err != nil {1655 if templ_7745c5c3_Err != nil {
1637 return templ_7745c5c3_Err1656 return templ_7745c5c3_Err
1638 }1657 }
1639- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ")1658+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "\"><p>Delete this note?</p><button class=\"btn\" type=\"submit\">Confirm delete</button></form></details> ")
1640 if templ_7745c5c3_Err != nil {1659 if templ_7745c5c3_Err != nil {
1641 return templ_7745c5c3_Err1660 return templ_7745c5c3_Err
1642 }1661 }
@@ -1648,7 +1667,7 @@ func commentView(c CommentView, suffix string) templ.Component {
1648 }1667 }
1649 }1668 }
1650 if c.Reply != nil {1669 if c.Reply != nil {
1651- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "<details data-reply><summary>Reply</summary>")1670+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<details data-reply><summary>Reply</summary>")
1652 if templ_7745c5c3_Err != nil {1671 if templ_7745c5c3_Err != nil {
1653 return templ_7745c5c3_Err1672 return templ_7745c5c3_Err
1654 }1673 }
@@ -1656,80 +1675,80 @@ func commentView(c CommentView, suffix string) templ.Component {
1656 if templ_7745c5c3_Err != nil {1675 if templ_7745c5c3_Err != nil {
1657 return templ_7745c5c3_Err1676 return templ_7745c5c3_Err
1658 }1677 }
1659- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "</details> ")1678+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "</details> ")
1660 if templ_7745c5c3_Err != nil {1679 if templ_7745c5c3_Err != nil {
1661 return templ_7745c5c3_Err1680 return templ_7745c5c3_Err
1662 }1681 }
1663 }1682 }
1664 if c.Resolve != nil {1683 if c.Resolve != nil {
1665- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "<form class=\"c-act\" method=\"post\" action=\"")1684+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "<form class=\"c-act\" method=\"post\" action=\"")
1666 if templ_7745c5c3_Err != nil {1685 if templ_7745c5c3_Err != nil {
1667 return templ_7745c5c3_Err1686 return templ_7745c5c3_Err
1668 }1687 }
1669- var templ_7745c5c3_Var80 templ.SafeURL1688+ var templ_7745c5c3_Var81 templ.SafeURL
1670- templ_7745c5c3_Var80, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action))1689+ templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Resolve.Action))
1671 if templ_7745c5c3_Err != nil {1690 if templ_7745c5c3_Err != nil {
1672- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 303, Col: 77}1691+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 306, Col: 77}
1673 }1692 }
1674- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var80))1693+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var81))
1675 if templ_7745c5c3_Err != nil {1694 if templ_7745c5c3_Err != nil {
1676 return templ_7745c5c3_Err1695 return templ_7745c5c3_Err
1677 }1696 }
1678- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "\"><input type=\"hidden\" name=\"resolved\" value=\"")1697+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "\"><input type=\"hidden\" name=\"resolved\" value=\"")
1679 if templ_7745c5c3_Err != nil {1698 if templ_7745c5c3_Err != nil {
1680 return templ_7745c5c3_Err1699 return templ_7745c5c3_Err
1681 }1700 }
1682- var templ_7745c5c3_Var81 string1701+ var templ_7745c5c3_Var82 string
1683- templ_7745c5c3_Var81, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value))1702+ templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(boolText(c.Resolve.Value))
1684 if templ_7745c5c3_Err != nil {1703 if templ_7745c5c3_Err != nil {
1685- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 304, Col: 74}1704+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 307, Col: 74}
1686 }1705 }
1687- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var81)1706+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82)
1688 if templ_7745c5c3_Err != nil {1707 if templ_7745c5c3_Err != nil {
1689 return templ_7745c5c3_Err1708 return templ_7745c5c3_Err
1690 }1709 }
1691- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "\"> ")1710+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\"> ")
1692 if templ_7745c5c3_Err != nil {1711 if templ_7745c5c3_Err != nil {
1693 return templ_7745c5c3_Err1712 return templ_7745c5c3_Err
1694 }1713 }
1695 if c.Resolve.From > 0 {1714 if c.Resolve.From > 0 {
1696- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "<input type=\"hidden\" name=\"from\" value=\"")1715+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<input type=\"hidden\" name=\"from\" value=\"")
1697 if templ_7745c5c3_Err != nil {1716 if templ_7745c5c3_Err != nil {
1698 return templ_7745c5c3_Err1717 return templ_7745c5c3_Err
1699 }1718 }
1700- var templ_7745c5c3_Var82 string1719+ var templ_7745c5c3_Var83 string
1701- templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From))1720+ templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(c.Resolve.From))
1702 if templ_7745c5c3_Err != nil {1721 if templ_7745c5c3_Err != nil {
1703- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 306, Col: 66}1722+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 309, Col: 66}
1704 }1723 }
1705- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82)1724+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var83)
1706 if templ_7745c5c3_Err != nil {1725 if templ_7745c5c3_Err != nil {
1707 return templ_7745c5c3_Err1726 return templ_7745c5c3_Err
1708 }1727 }
1709- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "\"> ")1728+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "\"> ")
1710 if templ_7745c5c3_Err != nil {1729 if templ_7745c5c3_Err != nil {
1711 return templ_7745c5c3_Err1730 return templ_7745c5c3_Err
1712 }1731 }
1713 }1732 }
1714- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<button type=\"submit\" class=\"btn\">")1733+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "<button type=\"submit\" class=\"btn\">")
1715 if templ_7745c5c3_Err != nil {1734 if templ_7745c5c3_Err != nil {
1716 return templ_7745c5c3_Err1735 return templ_7745c5c3_Err
1717 }1736 }
1718- var templ_7745c5c3_Var83 string1737+ var templ_7745c5c3_Var84 string
1719- templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label)1738+ templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.JoinStringErrs(c.Resolve.Label)
1720 if templ_7745c5c3_Err != nil {1739 if templ_7745c5c3_Err != nil {
1721- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 308, Col: 55}1740+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 311, Col: 55}
1722 }1741 }
1723- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var83))1742+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var84))
1724 if templ_7745c5c3_Err != nil {1743 if templ_7745c5c3_Err != nil {
1725 return templ_7745c5c3_Err1744 return templ_7745c5c3_Err
1726 }1745 }
1727- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "</button></form>")1746+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "</button></form>")
1728 if templ_7745c5c3_Err != nil {1747 if templ_7745c5c3_Err != nil {
1729 return templ_7745c5c3_Err1748 return templ_7745c5c3_Err
1730 }1749 }
1731 }1750 }
1732- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "</div>")1751+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "</div>")
1733 if templ_7745c5c3_Err != nil {1752 if templ_7745c5c3_Err != nil {
1734 return templ_7745c5c3_Err1753 return templ_7745c5c3_Err
1735 }1754 }
@@ -1761,214 +1780,214 @@ func commentForm(f CommentForm, suffix string) templ.Component {
1761 }()1780 }()
1762 }1781 }
1763 ctx = templ.InitializeContext(ctx)1782 ctx = templ.InitializeContext(ctx)
1764- templ_7745c5c3_Var84 := templ.GetChildren(ctx)1783+ templ_7745c5c3_Var85 := templ.GetChildren(ctx)
1765- if templ_7745c5c3_Var84 == nil {1784+ if templ_7745c5c3_Var85 == nil {
1766- templ_7745c5c3_Var84 = templ.NopComponent1785+ templ_7745c5c3_Var85 = templ.NopComponent
1767 }1786 }
1768 ctx = templ.ClearChildren(ctx)1787 ctx = templ.ClearChildren(ctx)
1769- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "<form class=\"cform\" method=\"post\" action=\"")1788+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "<form class=\"cform\" method=\"post\" action=\"")
1770 if templ_7745c5c3_Err != nil {1789 if templ_7745c5c3_Err != nil {
1771 return templ_7745c5c3_Err1790 return templ_7745c5c3_Err
1772 }1791 }
1773- var templ_7745c5c3_Var85 templ.SafeURL1792+ var templ_7745c5c3_Var86 templ.SafeURL
1774- templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action))1793+ templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Action))
1775 if templ_7745c5c3_Err != nil {1794 if templ_7745c5c3_Err != nil {
1776- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 323, Col: 67}1795+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 67}
1777 }1796 }
1778- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85))1797+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var86))
1779 if templ_7745c5c3_Err != nil {1798 if templ_7745c5c3_Err != nil {
1780 return templ_7745c5c3_Err1799 return templ_7745c5c3_Err
1781 }1800 }
1782- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "\"><label for=\"")1801+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "\"><label for=\"")
1783 if templ_7745c5c3_Err != nil {1802 if templ_7745c5c3_Err != nil {
1784 return templ_7745c5c3_Err1803 return templ_7745c5c3_Err
1785 }1804 }
1786- var templ_7745c5c3_Var86 string1805+ var templ_7745c5c3_Var87 string
1787- templ_7745c5c3_Var86, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)1806+ templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)
1788 if templ_7745c5c3_Err != nil {1807 if templ_7745c5c3_Err != nil {
1789- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 324, Col: 28}1808+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 327, Col: 28}
1790 }1809 }
1791- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var86)1810+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var87)
1792 if templ_7745c5c3_Err != nil {1811 if templ_7745c5c3_Err != nil {
1793 return templ_7745c5c3_Err1812 return templ_7745c5c3_Err
1794 }1813 }
1795- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "\">")1814+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\">")
1796 if templ_7745c5c3_Err != nil {1815 if templ_7745c5c3_Err != nil {
1797 return templ_7745c5c3_Err1816 return templ_7745c5c3_Err
1798 }1817 }
1799- var templ_7745c5c3_Var87 string1818+ var templ_7745c5c3_Var88 string
1800- templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title)1819+ templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(f.Title)
1801 if templ_7745c5c3_Err != nil {1820 if templ_7745c5c3_Err != nil {
1802- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 324, Col: 40}1821+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 327, Col: 40}
1803 }1822 }
1804- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87))1823+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88))
1805 if templ_7745c5c3_Err != nil {1824 if templ_7745c5c3_Err != nil {
1806 return templ_7745c5c3_Err1825 return templ_7745c5c3_Err
1807 }1826 }
1808- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "</label> <textarea id=\"")1827+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "</label> <textarea id=\"")
1809 if templ_7745c5c3_Err != nil {1828 if templ_7745c5c3_Err != nil {
1810 return templ_7745c5c3_Err1829 return templ_7745c5c3_Err
1811 }1830 }
1812- var templ_7745c5c3_Var88 string1831+ var templ_7745c5c3_Var89 string
1813- templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)1832+ templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID + suffix)
1814 if templ_7745c5c3_Err != nil {1833 if templ_7745c5c3_Err != nil {
1815- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 326, Col: 21}1834+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, Col: 21}
1816 }1835 }
1817- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var88)1836+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89)
1818 if templ_7745c5c3_Err != nil {1837 if templ_7745c5c3_Err != nil {
1819 return templ_7745c5c3_Err1838 return templ_7745c5c3_Err
1820 }1839 }
1821- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "\" name=\"text\" rows=\"3\" maxlength=\"8000\"")1840+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "\" name=\"text\" rows=\"3\" maxlength=\"8000\"")
1822 if templ_7745c5c3_Err != nil {1841 if templ_7745c5c3_Err != nil {
1823 return templ_7745c5c3_Err1842 return templ_7745c5c3_Err
1824 }1843 }
1825 if f.Plain {1844 if f.Plain {
1826- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, " required placeholder=\"plain text, 8000 characters at most\"")1845+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, " required placeholder=\"plain text, 8000 characters at most\"")
1827 if templ_7745c5c3_Err != nil {1846 if templ_7745c5c3_Err != nil {
1828 return templ_7745c5c3_Err1847 return templ_7745c5c3_Err
1829 }1848 }
1830 } else {1849 } else {
1831- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, " placeholder=\"Markdown, 8000 characters at most\"")1850+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, " placeholder=\"Markdown, 8000 characters at most\"")
1832 if templ_7745c5c3_Err != nil {1851 if templ_7745c5c3_Err != nil {
1833 return templ_7745c5c3_Err1852 return templ_7745c5c3_Err
1834 }1853 }
1835 }1854 }
1836 if f.Focus {1855 if f.Focus {
1837- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, " autofocus")1856+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, " autofocus")
1838 if templ_7745c5c3_Err != nil {1857 if templ_7745c5c3_Err != nil {
1839 return templ_7745c5c3_Err1858 return templ_7745c5c3_Err
1840 }1859 }
1841 }1860 }
1842- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "></textarea> ")1861+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "></textarea> ")
1843 if templ_7745c5c3_Err != nil {1862 if templ_7745c5c3_Err != nil {
1844 return templ_7745c5c3_Err1863 return templ_7745c5c3_Err
1845 }1864 }
1846 if f.Path != "" {1865 if f.Path != "" {
1847- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<input type=\"hidden\" name=\"path\" value=\"")1866+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "<input type=\"hidden\" name=\"path\" value=\"")
1848 if templ_7745c5c3_Err != nil {1867 if templ_7745c5c3_Err != nil {
1849 return templ_7745c5c3_Err1868 return templ_7745c5c3_Err
1850 }1869 }
1851- var templ_7745c5c3_Var89 string1870+ var templ_7745c5c3_Var90 string
1852- templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path)1871+ templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path)
1853 if templ_7745c5c3_Err != nil {1872 if templ_7745c5c3_Err != nil {
1854- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 341, Col: 50}1873+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 344, Col: 50}
1855 }1874 }
1856- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var89)1875+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90)
1857 if templ_7745c5c3_Err != nil {1876 if templ_7745c5c3_Err != nil {
1858 return templ_7745c5c3_Err1877 return templ_7745c5c3_Err
1859 }1878 }
1860- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "\"> <input type=\"hidden\" name=\"line\" value=\"")1879+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "\"> <input type=\"hidden\" name=\"line\" value=\"")
1861 if templ_7745c5c3_Err != nil {1880 if templ_7745c5c3_Err != nil {
1862 return templ_7745c5c3_Err1881 return templ_7745c5c3_Err
1863 }1882 }
1864- var templ_7745c5c3_Var90 string1883+ var templ_7745c5c3_Var91 string
1865- templ_7745c5c3_Var90, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line)1884+ templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Line)
1866 if templ_7745c5c3_Err != nil {1885 if templ_7745c5c3_Err != nil {
1867- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 342, Col: 50}1886+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 345, Col: 50}
1868 }1887 }
1869- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var90)1888+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91)
1870 if templ_7745c5c3_Err != nil {1889 if templ_7745c5c3_Err != nil {
1871 return templ_7745c5c3_Err1890 return templ_7745c5c3_Err
1872 }1891 }
1873- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "\"> <input type=\"hidden\" name=\"side\" value=\"")1892+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "\"> <input type=\"hidden\" name=\"side\" value=\"")
1874 if templ_7745c5c3_Err != nil {1893 if templ_7745c5c3_Err != nil {
1875 return templ_7745c5c3_Err1894 return templ_7745c5c3_Err
1876 }1895 }
1877- var templ_7745c5c3_Var91 string1896+ var templ_7745c5c3_Var92 string
1878- templ_7745c5c3_Var91, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side)1897+ templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Side)
1879 if templ_7745c5c3_Err != nil {1898 if templ_7745c5c3_Err != nil {
1880- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 343, Col: 50}1899+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 346, Col: 50}
1881 }1900 }
1882- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var91)1901+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92)
1883 if templ_7745c5c3_Err != nil {1902 if templ_7745c5c3_Err != nil {
1884 return templ_7745c5c3_Err1903 return templ_7745c5c3_Err
1885 }1904 }
1886- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"")1905+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "\"> <label>from line <input type=\"number\" name=\"start_line\" min=\"1\" value=\"")
1887 if templ_7745c5c3_Err != nil {1906 if templ_7745c5c3_Err != nil {
1888 return templ_7745c5c3_Err1907 return templ_7745c5c3_Err
1889 }1908 }
1890- var templ_7745c5c3_Var92 string1909+ var templ_7745c5c3_Var93 string
1891- templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine)1910+ templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.StartLine)
1892 if templ_7745c5c3_Err != nil {1911 if templ_7745c5c3_Err != nil {
1893- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 344, Col: 86}1912+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 347, Col: 86}
1894 }1913 }
1895- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92)1914+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var93)
1896 if templ_7745c5c3_Err != nil {1915 if templ_7745c5c3_Err != nil {
1897 return templ_7745c5c3_Err1916 return templ_7745c5c3_Err
1898 }1917 }
1899- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "\"></label> ")1918+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "\"></label> ")
1900 if templ_7745c5c3_Err != nil {1919 if templ_7745c5c3_Err != nil {
1901 return templ_7745c5c3_Err1920 return templ_7745c5c3_Err
1902 }1921 }
1903 }1922 }
1904 if f.ReplyTo != "" {1923 if f.ReplyTo != "" {
1905- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "<input type=\"hidden\" name=\"reply_to\" value=\"")1924+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<input type=\"hidden\" name=\"reply_to\" value=\"")
1906 if templ_7745c5c3_Err != nil {1925 if templ_7745c5c3_Err != nil {
1907 return templ_7745c5c3_Err1926 return templ_7745c5c3_Err
1908 }1927 }
1909- var templ_7745c5c3_Var93 string1928+ var templ_7745c5c3_Var94 string
1910- templ_7745c5c3_Var93, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo)1929+ templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ReplyTo)
1911 if templ_7745c5c3_Err != nil {1930 if templ_7745c5c3_Err != nil {
1912- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 347, Col: 57}1931+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 350, Col: 57}
1913 }1932 }
1914- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var93)1933+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94)
1915 if templ_7745c5c3_Err != nil {1934 if templ_7745c5c3_Err != nil {
1916 return templ_7745c5c3_Err1935 return templ_7745c5c3_Err
1917 }1936 }
1918- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "\"> ")1937+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "\"> ")
1919 if templ_7745c5c3_Err != nil {1938 if templ_7745c5c3_Err != nil {
1920 return templ_7745c5c3_Err1939 return templ_7745c5c3_Err
1921 }1940 }
1922 }1941 }
1923 if f.Path == "" && f.ReplyTo == "" && !f.Plain {1942 if f.Path == "" && f.ReplyTo == "" && !f.Plain {
1924- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>")1943+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "<fieldset><legend>Verdict</legend><label><input type=\"radio\" name=\"verdict\" value=\"\" checked>Note</label><label><input type=\"radio\" name=\"verdict\" value=\"approve\">Approve</label><label><input type=\"radio\" name=\"verdict\" value=\"changes_requested\">Request changes</label></fieldset>")
1925 if templ_7745c5c3_Err != nil {1944 if templ_7745c5c3_Err != nil {
1926 return templ_7745c5c3_Err1945 return templ_7745c5c3_Err
1927 }1946 }
1928 }1947 }
1929 if f.From > 0 {1948 if f.From > 0 {
1930- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "<input type=\"hidden\" name=\"from\" value=\"")1949+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "<input type=\"hidden\" name=\"from\" value=\"")
1931 if templ_7745c5c3_Err != nil {1950 if templ_7745c5c3_Err != nil {
1932 return templ_7745c5c3_Err1951 return templ_7745c5c3_Err
1933 }1952 }
1934- var templ_7745c5c3_Var94 string1953+ var templ_7745c5c3_Var95 string
1935- templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From))1954+ templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(f.From))
1936 if templ_7745c5c3_Err != nil {1955 if templ_7745c5c3_Err != nil {
1937- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 353, Col: 56}1956+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 356, Col: 56}
1938 }1957 }
1939- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94)1958+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var95)
1940 if templ_7745c5c3_Err != nil {1959 if templ_7745c5c3_Err != nil {
1941 return templ_7745c5c3_Err1960 return templ_7745c5c3_Err
1942 }1961 }
1943- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "\">")1962+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "\">")
1944 if templ_7745c5c3_Err != nil {1963 if templ_7745c5c3_Err != nil {
1945 return templ_7745c5c3_Err1964 return templ_7745c5c3_Err
1946 }1965 }
1947 }1966 }
1948- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ")1967+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "<div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Comment</button> ")
1949 if templ_7745c5c3_Err != nil {1968 if templ_7745c5c3_Err != nil {
1950 return templ_7745c5c3_Err1969 return templ_7745c5c3_Err
1951 }1970 }
1952 if f.Cancel != "" {1971 if f.Cancel != "" {
1953- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "<a class=\"btn\" href=\"")1972+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "<a class=\"btn\" href=\"")
1954 if templ_7745c5c3_Err != nil {1973 if templ_7745c5c3_Err != nil {
1955 return templ_7745c5c3_Err1974 return templ_7745c5c3_Err
1956 }1975 }
1957- var templ_7745c5c3_Var95 templ.SafeURL1976+ var templ_7745c5c3_Var96 templ.SafeURL
1958- templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel))1977+ templ_7745c5c3_Var96, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(f.Cancel))
1959 if templ_7745c5c3_Err != nil {1978 if templ_7745c5c3_Err != nil {
1960- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, Col: 49}1979+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 361, Col: 49}
1961 }1980 }
1962- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95))1981+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var96))
1963 if templ_7745c5c3_Err != nil {1982 if templ_7745c5c3_Err != nil {
1964 return templ_7745c5c3_Err1983 return templ_7745c5c3_Err
1965 }1984 }
1966- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "\">Cancel</a>")1985+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "\">Cancel</a>")
1967 if templ_7745c5c3_Err != nil {1986 if templ_7745c5c3_Err != nil {
1968 return templ_7745c5c3_Err1987 return templ_7745c5c3_Err
1969 }1988 }
1970 }1989 }
1971- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "</div></form>")1990+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "</div></form>")
1972 if templ_7745c5c3_Err != nil {1991 if templ_7745c5c3_Err != nil {
1973 return templ_7745c5c3_Err1992 return templ_7745c5c3_Err
1974 }1993 }
@@ -1992,25 +2011,25 @@ func mrRail(p MRPage) templ.Component {
1992 }()2011 }()
1993 }2012 }
1994 ctx = templ.InitializeContext(ctx)2013 ctx = templ.InitializeContext(ctx)
1995- templ_7745c5c3_Var96 := templ.GetChildren(ctx)2014+ templ_7745c5c3_Var97 := templ.GetChildren(ctx)
1996- if templ_7745c5c3_Var96 == nil {2015+ if templ_7745c5c3_Var97 == nil {
1997- templ_7745c5c3_Var96 = templ.NopComponent2016+ templ_7745c5c3_Var97 = templ.NopComponent
1998 }2017 }
1999 ctx = templ.ClearChildren(ctx)2018 ctx = templ.ClearChildren(ctx)
2000- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")2019+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "<section aria-labelledby=\"r-files\" class=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
2001 if templ_7745c5c3_Err != nil {2020 if templ_7745c5c3_Err != nil {
2002 return templ_7745c5c3_Err2021 return templ_7745c5c3_Err
2003 }2022 }
2004- var templ_7745c5c3_Var97 string2023+ var templ_7745c5c3_Var98 string
2005- templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))2024+ templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
2006 if templ_7745c5c3_Err != nil {2025 if templ_7745c5c3_Err != nil {
2007- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 367, Col: 49}2026+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 370, Col: 49}
2008 }2027 }
2009- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var97))2028+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98))
2010 if templ_7745c5c3_Err != nil {2029 if templ_7745c5c3_Err != nil {
2011 return templ_7745c5c3_Err2030 return templ_7745c5c3_Err
2012 }2031 }
2013- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>")2032+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "</span><kbd aria-hidden=\"true\">g f</kbd> <button type=\"button\" class=\"btn icon fold\" data-js aria-expanded=\"true\" title=\"fold the list of files\" hx-on:click=\"ermiteMR.foldFiles()\"><span class=\"ico i-chevron\" aria-hidden=\"true\"></span><span class=\"sr\">fold the list of files</span></button></h2>")
2014 if templ_7745c5c3_Err != nil {2033 if templ_7745c5c3_Err != nil {
2015 return templ_7745c5c3_Err2034 return templ_7745c5c3_Err
2016 }2035 }
@@ -2018,71 +2037,71 @@ func mrRail(p MRPage) templ.Component {
2018 if templ_7745c5c3_Err != nil {2037 if templ_7745c5c3_Err != nil {
2019 return templ_7745c5c3_Err2038 return templ_7745c5c3_Err
2020 }2039 }
2021- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 185, "</section>")2040+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "</section>")
2022 if templ_7745c5c3_Err != nil {2041 if templ_7745c5c3_Err != nil {
2023 return templ_7745c5c3_Err2042 return templ_7745c5c3_Err
2024 }2043 }
2025 if len(p.Verdicts) > 0 {2044 if len(p.Verdicts) > 0 {
2026- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 186, "<section><h2>Verdicts</h2><ul>")2045+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "<section><h2>Verdicts</h2><ul>")
2027 if templ_7745c5c3_Err != nil {2046 if templ_7745c5c3_Err != nil {
2028 return templ_7745c5c3_Err2047 return templ_7745c5c3_Err
2029 }2048 }
2030 for _, v := range p.Verdicts {2049 for _, v := range p.Verdicts {
2031- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 187, "<li><a href=\"")2050+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, "<li><a href=\"")
2032 if templ_7745c5c3_Err != nil {2051 if templ_7745c5c3_Err != nil {
2033 return templ_7745c5c3_Err2052 return templ_7745c5c3_Err
2034 }2053 }
2035- var templ_7745c5c3_Var98 templ.SafeURL2054+ var templ_7745c5c3_Var99 templ.SafeURL
2036- templ_7745c5c3_Var98, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href))2055+ templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(v.Href))
2037 if templ_7745c5c3_Err != nil {2056 if templ_7745c5c3_Err != nil {
2038- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 37}2057+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 383, Col: 37}
2039 }2058 }
2040- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var98))2059+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99))
2041 if templ_7745c5c3_Err != nil {2060 if templ_7745c5c3_Err != nil {
2042 return templ_7745c5c3_Err2061 return templ_7745c5c3_Err
2043 }2062 }
2044- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 188, "\">")2063+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "\">")
2045 if templ_7745c5c3_Err != nil {2064 if templ_7745c5c3_Err != nil {
2046 return templ_7745c5c3_Err2065 return templ_7745c5c3_Err
2047 }2066 }
2048- var templ_7745c5c3_Var99 string2067+ var templ_7745c5c3_Var100 string
2049- templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author)2068+ templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(v.Author)
2050 if templ_7745c5c3_Err != nil {2069 if templ_7745c5c3_Err != nil {
2051- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 50}2070+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 383, Col: 50}
2052 }2071 }
2053- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99))2072+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100))
2054 if templ_7745c5c3_Err != nil {2073 if templ_7745c5c3_Err != nil {
2055 return templ_7745c5c3_Err2074 return templ_7745c5c3_Err
2056 }2075 }
2057- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 189, ": ")2076+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, ": ")
2058 if templ_7745c5c3_Err != nil {2077 if templ_7745c5c3_Err != nil {
2059 return templ_7745c5c3_Err2078 return templ_7745c5c3_Err
2060 }2079 }
2061- var templ_7745c5c3_Var100 string2080+ var templ_7745c5c3_Var101 string
2062- templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)2081+ templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2063 if templ_7745c5c3_Err != nil {2082 if templ_7745c5c3_Err != nil {
2064- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 380, Col: 63}2083+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 383, Col: 63}
2065 }2084 }
2066- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100))2085+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101))
2067 if templ_7745c5c3_Err != nil {2086 if templ_7745c5c3_Err != nil {
2068 return templ_7745c5c3_Err2087 return templ_7745c5c3_Err
2069 }2088 }
2070- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 190, "</a> ")2089+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "</a> ")
2071 if templ_7745c5c3_Err != nil {2090 if templ_7745c5c3_Err != nil {
2072 return templ_7745c5c3_Err2091 return templ_7745c5c3_Err
2073 }2092 }
2074 if v.Stale {2093 if v.Stale {
2075- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 191, "<span class=\"mute\">(stale)</span>")2094+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "<span class=\"mute\">(stale)</span>")
2076 if templ_7745c5c3_Err != nil {2095 if templ_7745c5c3_Err != nil {
2077 return templ_7745c5c3_Err2096 return templ_7745c5c3_Err
2078 }2097 }
2079 }2098 }
2080- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 192, "</li>")2099+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "</li>")
2081 if templ_7745c5c3_Err != nil {2100 if templ_7745c5c3_Err != nil {
2082 return templ_7745c5c3_Err2101 return templ_7745c5c3_Err
2083 }2102 }
2084 }2103 }
2085- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 193, "</ul></section>")2104+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "</ul></section>")
2086 if templ_7745c5c3_Err != nil {2105 if templ_7745c5c3_Err != nil {
2087 return templ_7745c5c3_Err2106 return templ_7745c5c3_Err
2088 }2107 }
@@ -2091,74 +2110,74 @@ func mrRail(p MRPage) templ.Component {
2091 if templ_7745c5c3_Err != nil {2110 if templ_7745c5c3_Err != nil {
2092 return templ_7745c5c3_Err2111 return templ_7745c5c3_Err
2093 }2112 }
2094- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 194, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">")2113+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "<section aria-labelledby=\"r-commits\"><h2 id=\"r-commits\">Commits <span class=\"count\">")
2095 if templ_7745c5c3_Err != nil {2114 if templ_7745c5c3_Err != nil {
2096 return templ_7745c5c3_Err2115 return templ_7745c5c3_Err
2097 }2116 }
2098- var templ_7745c5c3_Var101 string2117+ var templ_7745c5c3_Var102 string
2099- templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits)))2118+ templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Commits)))
2100 if templ_7745c5c3_Err != nil {2119 if templ_7745c5c3_Err != nil {
2101- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 391, Col: 71}2120+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 394, Col: 71}
2102 }2121 }
2103- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101))2122+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102))
2104 if templ_7745c5c3_Err != nil {2123 if templ_7745c5c3_Err != nil {
2105 return templ_7745c5c3_Err2124 return templ_7745c5c3_Err
2106 }2125 }
2107- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 195, "</span></h2><ul class=\"pcommits\">")2126+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, "</span></h2><ul class=\"pcommits\">")
2108 if templ_7745c5c3_Err != nil {2127 if templ_7745c5c3_Err != nil {
2109 return templ_7745c5c3_Err2128 return templ_7745c5c3_Err
2110 }2129 }
2111 for _, c := range p.Commits {2130 for _, c := range p.Commits {
2112- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 196, "<li")2131+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "<li")
2113 if templ_7745c5c3_Err != nil {2132 if templ_7745c5c3_Err != nil {
2114 return templ_7745c5c3_Err2133 return templ_7745c5c3_Err
2115 }2134 }
2116 if c.New {2135 if c.New {
2117- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 197, " data-new")2136+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, " data-new")
2118 if templ_7745c5c3_Err != nil {2137 if templ_7745c5c3_Err != nil {
2119 return templ_7745c5c3_Err2138 return templ_7745c5c3_Err
2120 }2139 }
2121 }2140 }
2122- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 198, "><a href=\"")2141+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "><a href=\"")
2123 if templ_7745c5c3_Err != nil {2142 if templ_7745c5c3_Err != nil {
2124 return templ_7745c5c3_Err2143 return templ_7745c5c3_Err
2125 }2144 }
2126- var templ_7745c5c3_Var102 templ.SafeURL2145+ var templ_7745c5c3_Var103 templ.SafeURL
2127- templ_7745c5c3_Var102, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href))2146+ templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.Href))
2128 if templ_7745c5c3_Err != nil {2147 if templ_7745c5c3_Err != nil {
2129- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 395, Col: 36}2148+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 36}
2130 }2149 }
2131- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var102))2150+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103))
2132 if templ_7745c5c3_Err != nil {2151 if templ_7745c5c3_Err != nil {
2133 return templ_7745c5c3_Err2152 return templ_7745c5c3_Err
2134 }2153 }
2135- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 199, "\">")2154+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "\">")
2136 if templ_7745c5c3_Err != nil {2155 if templ_7745c5c3_Err != nil {
2137 return templ_7745c5c3_Err2156 return templ_7745c5c3_Err
2138 }2157 }
2139- var templ_7745c5c3_Var103 string2158+ var templ_7745c5c3_Var104 string
2140- templ_7745c5c3_Var103, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)2159+ templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
2141 if templ_7745c5c3_Err != nil {2160 if templ_7745c5c3_Err != nil {
2142- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 395, Col: 48}2161+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 398, Col: 48}
2143 }2162 }
2144- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var103))2163+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104))
2145 if templ_7745c5c3_Err != nil {2164 if templ_7745c5c3_Err != nil {
2146 return templ_7745c5c3_Err2165 return templ_7745c5c3_Err
2147 }2166 }
2148- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 200, "</a> <span class=\"s\">")2167+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "</a> <span class=\"s\">")
2149 if templ_7745c5c3_Err != nil {2168 if templ_7745c5c3_Err != nil {
2150 return templ_7745c5c3_Err2169 return templ_7745c5c3_Err
2151 }2170 }
2152- var templ_7745c5c3_Var104 string2171+ var templ_7745c5c3_Var105 string
2153- templ_7745c5c3_Var104, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)2172+ templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
2154 if templ_7745c5c3_Err != nil {2173 if templ_7745c5c3_Err != nil {
2155- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 396, Col: 32}2174+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 399, Col: 32}
2156 }2175 }
2157- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var104))2176+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105))
2158 if templ_7745c5c3_Err != nil {2177 if templ_7745c5c3_Err != nil {
2159 return templ_7745c5c3_Err2178 return templ_7745c5c3_Err
2160 }2179 }
2161- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 201, "</span> ")2180+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, "</span> ")
2162 if templ_7745c5c3_Err != nil {2181 if templ_7745c5c3_Err != nil {
2163 return templ_7745c5c3_Err2182 return templ_7745c5c3_Err
2164 }2183 }
@@ -2168,138 +2187,138 @@ func mrRail(p MRPage) templ.Component {
2168 return templ_7745c5c3_Err2187 return templ_7745c5c3_Err
2169 }2188 }
2170 }2189 }
2171- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 202, "<span class=\"mute\">")2190+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "<span class=\"mute\">")
2172 if templ_7745c5c3_Err != nil {2191 if templ_7745c5c3_Err != nil {
2173 return templ_7745c5c3_Err2192 return templ_7745c5c3_Err
2174 }2193 }
2175- var templ_7745c5c3_Var105 string2194+ var templ_7745c5c3_Var106 string
2176- templ_7745c5c3_Var105, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)2195+ templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
2177 if templ_7745c5c3_Err != nil {2196 if templ_7745c5c3_Err != nil {
2178- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 401, Col: 16}2197+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 404, Col: 16}
2179 }2198 }
2180- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var105))2199+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106))
2181 if templ_7745c5c3_Err != nil {2200 if templ_7745c5c3_Err != nil {
2182 return templ_7745c5c3_Err2201 return templ_7745c5c3_Err
2183 }2202 }
2184- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 203, " ")2203+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, " ")
2185 if templ_7745c5c3_Err != nil {2204 if templ_7745c5c3_Err != nil {
2186 return templ_7745c5c3_Err2205 return templ_7745c5c3_Err
2187 }2206 }
2188 if c.WhenAt != "" {2207 if c.WhenAt != "" {
2189- var templ_7745c5c3_Var106 string2208+ var templ_7745c5c3_Var107 string
2190- templ_7745c5c3_Var106, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")2209+ templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
2191 if templ_7745c5c3_Err != nil {2210 if templ_7745c5c3_Err != nil {
2192- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 15}2211+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 15}
2193 }2212 }
2194- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var106))2213+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var107))
2195 if templ_7745c5c3_Err != nil {2214 if templ_7745c5c3_Err != nil {
2196 return templ_7745c5c3_Err2215 return templ_7745c5c3_Err
2197 }2216 }
2198- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 204, "<time datetime=\"")2217+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "<time datetime=\"")
2199 if templ_7745c5c3_Err != nil {2218 if templ_7745c5c3_Err != nil {
2200 return templ_7745c5c3_Err2219 return templ_7745c5c3_Err
2201 }2220 }
2202- var templ_7745c5c3_Var107 string2221+ var templ_7745c5c3_Var108 string
2203- templ_7745c5c3_Var107, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)2222+ templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
2204 if templ_7745c5c3_Err != nil {2223 if templ_7745c5c3_Err != nil {
2205- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 42}2224+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 42}
2206 }2225 }
2207- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var107)2226+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var108)
2208 if templ_7745c5c3_Err != nil {2227 if templ_7745c5c3_Err != nil {
2209 return templ_7745c5c3_Err2228 return templ_7745c5c3_Err
2210 }2229 }
2211- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 205, "\">")2230+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "\">")
2212 if templ_7745c5c3_Err != nil {2231 if templ_7745c5c3_Err != nil {
2213 return templ_7745c5c3_Err2232 return templ_7745c5c3_Err
2214 }2233 }
2215- var templ_7745c5c3_Var108 string2234+ var templ_7745c5c3_Var109 string
2216- templ_7745c5c3_Var108, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)2235+ templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
2217 if templ_7745c5c3_Err != nil {2236 if templ_7745c5c3_Err != nil {
2218- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 403, Col: 53}2237+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 53}
2219 }2238 }
2220- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var108))2239+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109))
2221 if templ_7745c5c3_Err != nil {2240 if templ_7745c5c3_Err != nil {
2222 return templ_7745c5c3_Err2241 return templ_7745c5c3_Err
2223 }2242 }
2224- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 206, "</time> ")2243+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "</time> ")
2225 if templ_7745c5c3_Err != nil {2244 if templ_7745c5c3_Err != nil {
2226 return templ_7745c5c3_Err2245 return templ_7745c5c3_Err
2227 }2246 }
2228 }2247 }
2229 if c.New {2248 if c.New {
2230- var templ_7745c5c3_Var109 string2249+ var templ_7745c5c3_Var110 string
2231- templ_7745c5c3_Var109, templ_7745c5c3_Err = templ.JoinStringErrs(" · new")2250+ templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(" · new")
2232 if templ_7745c5c3_Err != nil {2251 if templ_7745c5c3_Err != nil {
2233- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, Col: 18}2252+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 409, Col: 18}
2234 }2253 }
2235- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var109))2254+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110))
2236 if templ_7745c5c3_Err != nil {2255 if templ_7745c5c3_Err != nil {
2237 return templ_7745c5c3_Err2256 return templ_7745c5c3_Err
2238 }2257 }
2239 }2258 }
2240- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 207, "</span></li>")2259+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "</span></li>")
2241 if templ_7745c5c3_Err != nil {2260 if templ_7745c5c3_Err != nil {
2242 return templ_7745c5c3_Err2261 return templ_7745c5c3_Err
2243 }2262 }
2244 }2263 }
2245- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 208, "</ul>")2264+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "</ul>")
2246 if templ_7745c5c3_Err != nil {2265 if templ_7745c5c3_Err != nil {
2247 return templ_7745c5c3_Err2266 return templ_7745c5c3_Err
2248 }2267 }
2249 if len(p.Commits) == 0 {2268 if len(p.Commits) == 0 {
2250- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 209, "<p class=\"dim\">no commit to merge.</p>")2269+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "<p class=\"dim\">no commit to merge.</p>")
2251 if templ_7745c5c3_Err != nil {2270 if templ_7745c5c3_Err != nil {
2252 return templ_7745c5c3_Err2271 return templ_7745c5c3_Err
2253 }2272 }
2254 }2273 }
2255 if p.CommitsNote != "" {2274 if p.CommitsNote != "" {
2256- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 210, "<p class=\"note\">")2275+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "<p class=\"note\">")
2257 if templ_7745c5c3_Err != nil {2276 if templ_7745c5c3_Err != nil {
2258 return templ_7745c5c3_Err2277 return templ_7745c5c3_Err
2259 }2278 }
2260- var templ_7745c5c3_Var110 string2279+ var templ_7745c5c3_Var111 string
2261- templ_7745c5c3_Var110, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote)2280+ templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(p.CommitsNote)
2262 if templ_7745c5c3_Err != nil {2281 if templ_7745c5c3_Err != nil {
2263- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 416, Col: 34}2282+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 419, Col: 34}
2264 }2283 }
2265- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var110))2284+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111))
2266 if templ_7745c5c3_Err != nil {2285 if templ_7745c5c3_Err != nil {
2267 return templ_7745c5c3_Err2286 return templ_7745c5c3_Err
2268 }2287 }
2269- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 211, "</p>")2288+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "</p>")
2270 if templ_7745c5c3_Err != nil {2289 if templ_7745c5c3_Err != nil {
2271 return templ_7745c5c3_Err2290 return templ_7745c5c3_Err
2272 }2291 }
2273 }2292 }
2274- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 212, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>")2293+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "</section><section aria-labelledby=\"r-settings\"><h2 id=\"r-settings\">Settings</h2><dl class=\"kv\"><dt>modes</dt><dd>")
2275 if templ_7745c5c3_Err != nil {2294 if templ_7745c5c3_Err != nil {
2276 return templ_7745c5c3_Err2295 return templ_7745c5c3_Err
2277 }2296 }
2278- var templ_7745c5c3_Var111 string2297+ var templ_7745c5c3_Var112 string
2279- templ_7745c5c3_Var111, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", "))2298+ templ_7745c5c3_Var112, templ_7745c5c3_Err = templ.JoinStringErrs(strings.Join(p.Modes, ", "))
2280 if templ_7745c5c3_Err != nil {2299 if templ_7745c5c3_Err != nil {
2281- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 423, Col: 36}2300+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 426, Col: 36}
2282 }2301 }
2283- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var111))2302+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var112))
2284 if templ_7745c5c3_Err != nil {2303 if templ_7745c5c3_Err != nil {
2285 return templ_7745c5c3_Err2304 return templ_7745c5c3_Err
2286 }2305 }
2287- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 213, "</dd><dt>checks</dt><dd>")2306+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "</dd><dt>checks</dt><dd>")
2288 if templ_7745c5c3_Err != nil {2307 if templ_7745c5c3_Err != nil {
2289 return templ_7745c5c3_Err2308 return templ_7745c5c3_Err
2290 }2309 }
2291 if p.ChecksBlock {2310 if p.ChecksBlock {
2292- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 214, "failing ones block the merge")2311+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "failing ones block the merge")
2293 if templ_7745c5c3_Err != nil {2312 if templ_7745c5c3_Err != nil {
2294 return templ_7745c5c3_Err2313 return templ_7745c5c3_Err
2295 }2314 }
2296 } else {2315 } else {
2297- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 215, "do not block the merge")2316+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "do not block the merge")
2298 if templ_7745c5c3_Err != nil {2317 if templ_7745c5c3_Err != nil {
2299 return templ_7745c5c3_Err2318 return templ_7745c5c3_Err
2300 }2319 }
2301 }2320 }
2302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 216, "</dd></dl></section>")2321+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, "</dd></dl></section>")
2303 if templ_7745c5c3_Err != nil {2322 if templ_7745c5c3_Err != nil {
2304 return templ_7745c5c3_Err2323 return templ_7745c5c3_Err
2305 }2324 }
@@ -2327,51 +2346,51 @@ func mrBar(p MRPage) templ.Component {
2327 }()2346 }()
2328 }2347 }
2329 ctx = templ.InitializeContext(ctx)2348 ctx = templ.InitializeContext(ctx)
2330- templ_7745c5c3_Var112 := templ.GetChildren(ctx)2349+ templ_7745c5c3_Var113 := templ.GetChildren(ctx)
2331- if templ_7745c5c3_Var112 == nil {2350+ if templ_7745c5c3_Var113 == nil {
2332- templ_7745c5c3_Var112 = templ.NopComponent2351+ templ_7745c5c3_Var113 = templ.NopComponent
2333 }2352 }
2334 ctx = templ.ClearChildren(ctx)2353 ctx = templ.ClearChildren(ctx)
2335- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 217, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">")2354+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "<div class=\"diff-tools mr-bar\" role=\"group\" aria-label=\"Diff view and merge\"><span class=\"dim\">")
2336 if templ_7745c5c3_Err != nil {2355 if templ_7745c5c3_Err != nil {
2337 return templ_7745c5c3_Err2356 return templ_7745c5c3_Err
2338 }2357 }
2339- var templ_7745c5c3_Var113 string2358+ var templ_7745c5c3_Var114 string
2340- templ_7745c5c3_Var113, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))2359+ templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
2341 if templ_7745c5c3_Err != nil {2360 if templ_7745c5c3_Err != nil {
2342- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 442, Col: 55}2361+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 55}
2343 }2362 }
2344- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var113))2363+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var114))
2345 if templ_7745c5c3_Err != nil {2364 if templ_7745c5c3_Err != nil {
2346 return templ_7745c5c3_Err2365 return templ_7745c5c3_Err
2347 }2366 }
2348- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 218, " · <span class=\"plus\">+")2367+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, " · <span class=\"plus\">+")
2349 if templ_7745c5c3_Err != nil {2368 if templ_7745c5c3_Err != nil {
2350 return templ_7745c5c3_Err2369 return templ_7745c5c3_Err
2351 }2370 }
2352- var templ_7745c5c3_Var114 string2371+ var templ_7745c5c3_Var115 string
2353- templ_7745c5c3_Var114, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))2372+ templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
2354 if templ_7745c5c3_Err != nil {2373 if templ_7745c5c3_Err != nil {
2355- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 442, Col: 95}2374+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 95}
2356 }2375 }
2357- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var114))2376+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115))
2358 if templ_7745c5c3_Err != nil {2377 if templ_7745c5c3_Err != nil {
2359 return templ_7745c5c3_Err2378 return templ_7745c5c3_Err
2360 }2379 }
2361- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 219, "</span> <span class=\"minus\">-")2380+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "</span> <span class=\"minus\">-")
2362 if templ_7745c5c3_Err != nil {2381 if templ_7745c5c3_Err != nil {
2363 return templ_7745c5c3_Err2382 return templ_7745c5c3_Err
2364 }2383 }
2365- var templ_7745c5c3_Var115 string2384+ var templ_7745c5c3_Var116 string
2366- templ_7745c5c3_Var115, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))2385+ templ_7745c5c3_Var116, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
2367 if templ_7745c5c3_Err != nil {2386 if templ_7745c5c3_Err != nil {
2368- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 442, Col: 140}2387+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 445, Col: 140}
2369 }2388 }
2370- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var115))2389+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var116))
2371 if templ_7745c5c3_Err != nil {2390 if templ_7745c5c3_Err != nil {
2372 return templ_7745c5c3_Err2391 return templ_7745c5c3_Err
2373 }2392 }
2374- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 220, "</span></span>")2393+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, "</span></span>")
2375 if templ_7745c5c3_Err != nil {2394 if templ_7745c5c3_Err != nil {
2376 return templ_7745c5c3_Err2395 return templ_7745c5c3_Err
2377 }2396 }
@@ -2387,7 +2406,7 @@ func mrBar(p MRPage) templ.Component {
2387 if templ_7745c5c3_Err != nil {2406 if templ_7745c5c3_Err != nil {
2388 return templ_7745c5c3_Err2407 return templ_7745c5c3_Err
2389 }2408 }
2390- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<span class=\"grow\"></span>")2409+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "<span class=\"grow\"></span>")
2391 if templ_7745c5c3_Err != nil {2410 if templ_7745c5c3_Err != nil {
2392 return templ_7745c5c3_Err2411 return templ_7745c5c3_Err
2393 }2412 }
@@ -2400,7 +2419,7 @@ func mrBar(p MRPage) templ.Component {
2400 if templ_7745c5c3_Err != nil {2419 if templ_7745c5c3_Err != nil {
2401 return templ_7745c5c3_Err2420 return templ_7745c5c3_Err
2402 }2421 }
2403- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, " ")2422+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, " ")
2404 if templ_7745c5c3_Err != nil {2423 if templ_7745c5c3_Err != nil {
2405 return templ_7745c5c3_Err2424 return templ_7745c5c3_Err
2406 }2425 }
@@ -2409,7 +2428,7 @@ func mrBar(p MRPage) templ.Component {
2409 return templ_7745c5c3_Err2428 return templ_7745c5c3_Err
2410 }2429 }
2411 }2430 }
2412- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "</div>")2431+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "</div>")
2413 if templ_7745c5c3_Err != nil {2432 if templ_7745c5c3_Err != nil {
2414 return templ_7745c5c3_Err2433 return templ_7745c5c3_Err
2415 }2434 }
@@ -2441,107 +2460,107 @@ func mergeMenu(p MRPage) templ.Component {
2441 }()2460 }()
2442 }2461 }
2443 ctx = templ.InitializeContext(ctx)2462 ctx = templ.InitializeContext(ctx)
2444- templ_7745c5c3_Var116 := templ.GetChildren(ctx)2463+ templ_7745c5c3_Var117 := templ.GetChildren(ctx)
2445- if templ_7745c5c3_Var116 == nil {2464+ if templ_7745c5c3_Var117 == nil {
2446- templ_7745c5c3_Var116 = templ.NopComponent2465+ templ_7745c5c3_Var117 = templ.NopComponent
2447 }2466 }
2448 ctx = templ.ClearChildren(ctx)2467 ctx = templ.ClearChildren(ctx)
2449- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")2468+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")
2450 if templ_7745c5c3_Err != nil {2469 if templ_7745c5c3_Err != nil {
2451 return templ_7745c5c3_Err2470 return templ_7745c5c3_Err
2452 }2471 }
2453 if p.Box.Error != "" {2472 if p.Box.Error != "" {
2454- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, " open")2473+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, " open")
2455 if templ_7745c5c3_Err != nil {2474 if templ_7745c5c3_Err != nil {
2456 return templ_7745c5c3_Err2475 return templ_7745c5c3_Err
2457 }2476 }
2458 }2477 }
2459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")2478+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")
2460 if templ_7745c5c3_Err != nil {2479 if templ_7745c5c3_Err != nil {
2461 return templ_7745c5c3_Err2480 return templ_7745c5c3_Err
2462 }2481 }
2463 if p.Box.ReadyAction != "" {2482 if p.Box.ReadyAction != "" {
2464- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "Draft ")2483+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "Draft ")
2465 if templ_7745c5c3_Err != nil {2484 if templ_7745c5c3_Err != nil {
2466 return templ_7745c5c3_Err2485 return templ_7745c5c3_Err
2467 }2486 }
2468 } else {2487 } else {
2469- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "Merge ")2488+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "Merge ")
2470 if templ_7745c5c3_Err != nil {2489 if templ_7745c5c3_Err != nil {
2471 return templ_7745c5c3_Err2490 return templ_7745c5c3_Err
2472 }2491 }
2473 }2492 }
2474- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>")2493+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "<kbd aria-hidden=\"true\">M</kbd></summary><div class=\"menu-pop\" role=\"group\" aria-label=\"Merge\"><dl class=\"kv\"><dt>head</dt><dd>")
2475 if templ_7745c5c3_Err != nil {2494 if templ_7745c5c3_Err != nil {
2476 return templ_7745c5c3_Err2495 return templ_7745c5c3_Err
2477 }2496 }
2478 if p.Box.HeadGone {2497 if p.Box.HeadGone {
2479- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "gone: the source branch was deleted")2498+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "gone: the source branch was deleted")
2480 if templ_7745c5c3_Err != nil {2499 if templ_7745c5c3_Err != nil {
2481 return templ_7745c5c3_Err2500 return templ_7745c5c3_Err
2482 }2501 }
2483 } else {2502 } else {
2484- var templ_7745c5c3_Var117 string2503+ var templ_7745c5c3_Var118 string
2485- templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)2504+ templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)
2486 if templ_7745c5c3_Err != nil {2505 if templ_7745c5c3_Err != nil {
2487- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 19}2506+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 483, Col: 19}
2488 }2507 }
2489- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117))2508+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))
2490 if templ_7745c5c3_Err != nil {2509 if templ_7745c5c3_Err != nil {
2491 return templ_7745c5c3_Err2510 return templ_7745c5c3_Err
2492 }2511 }
2493 }2512 }
2494- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "</dd><dt>into</dt><dd>")2513+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</dd><dt>into</dt><dd>")
2495 if templ_7745c5c3_Err != nil {2514 if templ_7745c5c3_Err != nil {
2496 return templ_7745c5c3_Err2515 return templ_7745c5c3_Err
2497 }2516 }
2498- var templ_7745c5c3_Var118 string2517+ var templ_7745c5c3_Var119 string
2499- templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)2518+ templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2500 if templ_7745c5c3_Err != nil {2519 if templ_7745c5c3_Err != nil {
2501- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 484, Col: 18}2520+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 18}
2502 }2521 }
2503- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))2522+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))
2504 if templ_7745c5c3_Err != nil {2523 if templ_7745c5c3_Err != nil {
2505 return templ_7745c5c3_Err2524 return templ_7745c5c3_Err
2506 }2525 }
2507- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</dd></dl>")2526+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</dd></dl>")
2508 if templ_7745c5c3_Err != nil {2527 if templ_7745c5c3_Err != nil {
2509 return templ_7745c5c3_Err2528 return templ_7745c5c3_Err
2510 }2529 }
2511 if p.Box.Error != "" {2530 if p.Box.Error != "" {
2512- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "<p class=\"d-err\" role=\"alert\">")2531+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<p class=\"d-err\" role=\"alert\">")
2513 if templ_7745c5c3_Err != nil {2532 if templ_7745c5c3_Err != nil {
2514 return templ_7745c5c3_Err2533 return templ_7745c5c3_Err
2515 }2534 }
2516- var templ_7745c5c3_Var119 string2535+ var templ_7745c5c3_Var120 string
2517- templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)2536+ templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)
2518 if templ_7745c5c3_Err != nil {2537 if templ_7745c5c3_Err != nil {
2519- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 47}2538+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 490, Col: 47}
2520 }2539 }
2521- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))2540+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))
2522 if templ_7745c5c3_Err != nil {2541 if templ_7745c5c3_Err != nil {
2523 return templ_7745c5c3_Err2542 return templ_7745c5c3_Err
2524 }2543 }
2525- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</p>")2544+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "</p>")
2526 if templ_7745c5c3_Err != nil {2545 if templ_7745c5c3_Err != nil {
2527 return templ_7745c5c3_Err2546 return templ_7745c5c3_Err
2528 }2547 }
2529 }2548 }
2530 if p.Box.ReadyAction != "" {2549 if p.Box.ReadyAction != "" {
2531- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"")2550+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, "<p class=\"d-draft\">this is a draft: it cannot be merged until it is ready for review.</p><form class=\"d-btns\" method=\"post\" action=\"")
2532 if templ_7745c5c3_Err != nil {2551 if templ_7745c5c3_Err != nil {
2533 return templ_7745c5c3_Err2552 return templ_7745c5c3_Err
2534 }2553 }
2535- var templ_7745c5c3_Var120 templ.SafeURL2554+ var templ_7745c5c3_Var121 templ.SafeURL
2536- templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))2555+ templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))
2537 if templ_7745c5c3_Err != nil {2556 if templ_7745c5c3_Err != nil {
2538- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 491, Col: 80}2557+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 494, Col: 80}
2539 }2558 }
2540- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))2559+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))
2541 if templ_7745c5c3_Err != nil {2560 if templ_7745c5c3_Err != nil {
2542 return templ_7745c5c3_Err2561 return templ_7745c5c3_Err
2543 }2562 }
2544- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>")2563+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "\"><button type=\"submit\" class=\"btn primary\" data-default title=\"remove the draft prefix from the title\">Ready for review</button></form>")
2545 if templ_7745c5c3_Err != nil {2564 if templ_7745c5c3_Err != nil {
2546 return templ_7745c5c3_Err2565 return templ_7745c5c3_Err
2547 }2566 }
@@ -2550,232 +2569,214 @@ func mergeMenu(p MRPage) templ.Component {
2550 if templ_7745c5c3_Err != nil {2569 if templ_7745c5c3_Err != nil {
2551 return templ_7745c5c3_Err2570 return templ_7745c5c3_Err
2552 }2571 }
2553- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, " <form class=\"d-acts\" method=\"post\" action=\"")2572+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, " <form class=\"d-acts\" method=\"post\" action=\"")
2554 if templ_7745c5c3_Err != nil {2573 if templ_7745c5c3_Err != nil {
2555 return templ_7745c5c3_Err2574 return templ_7745c5c3_Err
2556 }2575 }
2557- var templ_7745c5c3_Var121 templ.SafeURL2576+ var templ_7745c5c3_Var122 templ.SafeURL
2558- templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))2577+ templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))
2559 if templ_7745c5c3_Err != nil {2578 if templ_7745c5c3_Err != nil {
2560- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 496, Col: 80}2579+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 499, Col: 80}
2561 }2580 }
2562- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))2581+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122))
2563 if templ_7745c5c3_Err != nil {2582 if templ_7745c5c3_Err != nil {
2564 return templ_7745c5c3_Err2583 return templ_7745c5c3_Err
2565 }2584 }
2566- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "\"><input type=\"hidden\" name=\"head_id\" value=\"")2585+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
2567 if templ_7745c5c3_Err != nil {2586 if templ_7745c5c3_Err != nil {
2568 return templ_7745c5c3_Err2587 return templ_7745c5c3_Err
2569 }2588 }
2570- var templ_7745c5c3_Var122 string2589+ var templ_7745c5c3_Var123 string
2571- templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)2590+ templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
2572 if templ_7745c5c3_Err != nil {2591 if templ_7745c5c3_Err != nil {
2573- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 497, Col: 59}2592+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 500, Col: 59}
2574 }2593 }
2575- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122)2594+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)
2576 if templ_7745c5c3_Err != nil {2595 if templ_7745c5c3_Err != nil {
2577 return templ_7745c5c3_Err2596 return templ_7745c5c3_Err
2578 }2597 }
2579- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")2598+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")
2580 if templ_7745c5c3_Err != nil {2599 if templ_7745c5c3_Err != nil {
2581 return templ_7745c5c3_Err2600 return templ_7745c5c3_Err
2582 }2601 }
2583 for i, m := range p.Box.Modes {2602 for i, m := range p.Box.Modes {
2584- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<label><input type=\"radio\" name=\"mode\" value=\"")2603+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "<label><input type=\"radio\" name=\"mode\" value=\"")
2585 if templ_7745c5c3_Err != nil {2604 if templ_7745c5c3_Err != nil {
2586 return templ_7745c5c3_Err2605 return templ_7745c5c3_Err
2587 }2606 }
2588- var templ_7745c5c3_Var123 string2607+ var templ_7745c5c3_Var124 string
2589- templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)2608+ templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)
2590 if templ_7745c5c3_Err != nil {2609 if templ_7745c5c3_Err != nil {
2591- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 24}2610+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 24}
2592 }2611 }
2593- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)2612+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)
2594 if templ_7745c5c3_Err != nil {2613 if templ_7745c5c3_Err != nil {
2595 return templ_7745c5c3_Err2614 return templ_7745c5c3_Err
2596 }2615 }
2597- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"")2616+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "\"")
2598 if templ_7745c5c3_Err != nil {2617 if templ_7745c5c3_Err != nil {
2599 return templ_7745c5c3_Err2618 return templ_7745c5c3_Err
2600 }2619 }
2601 if i == p.Box.Checked() {2620 if i == p.Box.Checked() {
2602- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, " checked")2621+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " checked")
2603 if templ_7745c5c3_Err != nil {2622 if templ_7745c5c3_Err != nil {
2604 return templ_7745c5c3_Err2623 return templ_7745c5c3_Err
2605 }2624 }
2606 }2625 }
2607 if m.Disabled {2626 if m.Disabled {
2608- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, " disabled")2627+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, " disabled")
2609 if templ_7745c5c3_Err != nil {2628 if templ_7745c5c3_Err != nil {
2610 return templ_7745c5c3_Err2629 return templ_7745c5c3_Err
2611 }2630 }
2612 }2631 }
2613- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " title=\"")2632+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " title=\"")
2614 if templ_7745c5c3_Err != nil {2633 if templ_7745c5c3_Err != nil {
2615 return templ_7745c5c3_Err2634 return templ_7745c5c3_Err
2616 }2635 }
2617- var templ_7745c5c3_Var124 string2636+ var templ_7745c5c3_Var125 string
2618- templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)2637+ templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)
2619 if templ_7745c5c3_Err != nil {2638 if templ_7745c5c3_Err != nil {
2620- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 25}2639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 511, Col: 25}
2621 }2640 }
2622- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)2641+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var125)
2623 if templ_7745c5c3_Err != nil {2642 if templ_7745c5c3_Err != nil {
2624 return templ_7745c5c3_Err2643 return templ_7745c5c3_Err
2625 }2644 }
2626- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, "\" :disabled=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffOk !== true : q('[data-mergeability]').data.mergeOk !== true\" :title=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffReason : q('[data-mergeability]').data.mergeReason\"> ")2645+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "\" :disabled=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffOk !== true : q('[data-mergeability]').data.mergeOk !== true\" :title=\"this.value === 'fast-forward' ? q('[data-mergeability]').data.ffReason : q('[data-mergeability]').data.mergeReason\"> ")
2627 if templ_7745c5c3_Err != nil {2646 if templ_7745c5c3_Err != nil {
2628 return templ_7745c5c3_Err2647 return templ_7745c5c3_Err
2629 }2648 }
2630- var templ_7745c5c3_Var125 string2649+ var templ_7745c5c3_Var126 string
2631- templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)2650+ templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)
2632 if templ_7745c5c3_Err != nil {2651 if templ_7745c5c3_Err != nil {
2633- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 512, Col: 17}2652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 515, Col: 17}
2634 }2653 }
2635- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125))2654+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))
2636 if templ_7745c5c3_Err != nil {2655 if templ_7745c5c3_Err != nil {
2637 return templ_7745c5c3_Err2656 return templ_7745c5c3_Err
2638 }2657 }
2639- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " ")2658+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, " ")
2640 if templ_7745c5c3_Err != nil {2659 if templ_7745c5c3_Err != nil {
2641 return templ_7745c5c3_Err2660 return templ_7745c5c3_Err
2642 }2661 }
2643 if i < 9 {2662 if i < 9 {
2644- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "<kbd aria-hidden=\"true\">")2663+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "<kbd aria-hidden=\"true\">")
2645 if templ_7745c5c3_Err != nil {2664 if templ_7745c5c3_Err != nil {
2646 return templ_7745c5c3_Err2665 return templ_7745c5c3_Err
2647 }2666 }
2648- var templ_7745c5c3_Var126 string2667+ var templ_7745c5c3_Var127 string
2649- templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))2668+ templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))
2650 if templ_7745c5c3_Err != nil {2669 if templ_7745c5c3_Err != nil {
2651- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 514, Col: 46}2670+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 46}
2652 }2671 }
2653- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))2672+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
2654 if templ_7745c5c3_Err != nil {2673 if templ_7745c5c3_Err != nil {
2655 return templ_7745c5c3_Err2674 return templ_7745c5c3_Err
2656 }2675 }
2657- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "</kbd>")2676+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</kbd>")
2658 if templ_7745c5c3_Err != nil {2677 if templ_7745c5c3_Err != nil {
2659 return templ_7745c5c3_Err2678 return templ_7745c5c3_Err
2660 }2679 }
2661 }2680 }
2662- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "</label>")2681+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "</label>")
2663 if templ_7745c5c3_Err != nil {2682 if templ_7745c5c3_Err != nil {
2664 return templ_7745c5c3_Err2683 return templ_7745c5c3_Err
2665 }2684 }
2666 }2685 }
2667- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</fieldset>")2686+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "</fieldset>")
2668 if templ_7745c5c3_Err != nil {2687 if templ_7745c5c3_Err != nil {
2669 return templ_7745c5c3_Err2688 return templ_7745c5c3_Err
2670 }2689 }
2671 if p.Box.Signed {2690 if p.Box.Signed {
2672- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "<p class=\"d-note\" id=\"mr-signing\">squash and merge commits are signed with ermite's own key, generated automatically on first start. ")2691+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "<p class=\"d-note\" id=\"mr-signing\">squash and merge commits are signed with ermite's own key (generated on first start). ")
2673 if templ_7745c5c3_Err != nil {2692 if templ_7745c5c3_Err != nil {
2674 return templ_7745c5c3_Err2693 return templ_7745c5c3_Err
2675 }2694 }
2676 if p.Box.Fingerprint != "" {2695 if p.Box.Fingerprint != "" {
2677- var templ_7745c5c3_Var127 string2696+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "fingerprint <code>")
2678- templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2679- if templ_7745c5c3_Err != nil {
2680- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 13}
2681- }
2682- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
2683- if templ_7745c5c3_Err != nil {
2684- return templ_7745c5c3_Err
2685- }
2686- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "key <code>")
2687 if templ_7745c5c3_Err != nil {2697 if templ_7745c5c3_Err != nil {
2688 return templ_7745c5c3_Err2698 return templ_7745c5c3_Err
2689 }2699 }
2690 var templ_7745c5c3_Var128 string2700 var templ_7745c5c3_Var128 string
2691 templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint)2701 templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint)
2692 if templ_7745c5c3_Err != nil {2702 if templ_7745c5c3_Err != nil {
2693- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 44}2703+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 45}
2694 }2704 }
2695 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128))2705 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128))
2696 if templ_7745c5c3_Err != nil {2706 if templ_7745c5c3_Err != nil {
2697 return templ_7745c5c3_Err2707 return templ_7745c5c3_Err
2698 }2708 }
2699- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "</code>. ")2709+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</code> ")
2700 if templ_7745c5c3_Err != nil {2710 if templ_7745c5c3_Err != nil {
2701 return templ_7745c5c3_Err2711 return templ_7745c5c3_Err
2702 }2712 }
2703 }2713 }
2704- var templ_7745c5c3_Var129 string2714+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "<code>ermite signing-key show</code> prints it.</p>")
2705- templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2706- if templ_7745c5c3_Err != nil {
2707- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 12}
2708- }
2709- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
2710- if templ_7745c5c3_Err != nil {
2711- return templ_7745c5c3_Err
2712- }
2713- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "<code>ermite signing-key show</code> prints the public key to verify them.</p>")
2714 if templ_7745c5c3_Err != nil {2715 if templ_7745c5c3_Err != nil {
2715 return templ_7745c5c3_Err2716 return templ_7745c5c3_Err
2716 }2717 }
2717 }2718 }
2718 if p.Box.CanDeleteBranch {2719 if p.Box.CanDeleteBranch {
2719- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")2720+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")
2720 if templ_7745c5c3_Err != nil {2721 if templ_7745c5c3_Err != nil {
2721 return templ_7745c5c3_Err2722 return templ_7745c5c3_Err
2722 }2723 }
2723- var templ_7745c5c3_Var130 string2724+ var templ_7745c5c3_Var129 string
2724- templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)2725+ templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
2725 if templ_7745c5c3_Err != nil {2726 if templ_7745c5c3_Err != nil {
2726- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 102}2727+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 102}
2727 }2728 }
2728- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var130))2729+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
2729 if templ_7745c5c3_Err != nil {2730 if templ_7745c5c3_Err != nil {
2730 return templ_7745c5c3_Err2731 return templ_7745c5c3_Err
2731 }2732 }
2732- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")2733+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")
2733 if templ_7745c5c3_Err != nil {2734 if templ_7745c5c3_Err != nil {
2734 return templ_7745c5c3_Err2735 return templ_7745c5c3_Err
2735 }2736 }
2736 }2737 }
2737- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")2738+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")
2738 if templ_7745c5c3_Err != nil {2739 if templ_7745c5c3_Err != nil {
2739 return templ_7745c5c3_Err2740 return templ_7745c5c3_Err
2740 }2741 }
2741 if !p.Box.CanMerge() {2742 if !p.Box.CanMerge() {
2742- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " disabled")2743+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, " disabled")
2743 if templ_7745c5c3_Err != nil {2744 if templ_7745c5c3_Err != nil {
2744 return templ_7745c5c3_Err2745 return templ_7745c5c3_Err
2745 }2746 }
2746 }2747 }
2747- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, " title=\"")2748+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, " title=\"")
2748 if templ_7745c5c3_Err != nil {2749 if templ_7745c5c3_Err != nil {
2749 return templ_7745c5c3_Err2750 return templ_7745c5c3_Err
2750 }2751 }
2751- var templ_7745c5c3_Var131 string2752+ var templ_7745c5c3_Var130 string
2752- templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())2753+ templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())
2753 if templ_7745c5c3_Err != nil {2754 if templ_7745c5c3_Err != nil {
2754- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 537, Col: 33}2755+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 33}
2755 }2756 }
2756- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131)2757+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130)
2757 if templ_7745c5c3_Err != nil {2758 if templ_7745c5c3_Err != nil {
2758 return templ_7745c5c3_Err2759 return templ_7745c5c3_Err
2759 }2760 }
2760- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, "\" :disabled=\"!this.form.querySelector('input[name=mode]:checked:not(:disabled)')\" :title=\"(this.form.querySelector('input[name=mode]:checked') || {}).title || ''\">Merge into ")2761+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "\" :disabled=\"!this.form.querySelector('input[name=mode]:checked:not(:disabled)')\" :title=\"(this.form.querySelector('input[name=mode]:checked') || {}).title || ''\">Merge into ")
2761 if templ_7745c5c3_Err != nil {2762 if templ_7745c5c3_Err != nil {
2762 return templ_7745c5c3_Err2763 return templ_7745c5c3_Err
2763 }2764 }
2764- var templ_7745c5c3_Var132 string2765+ var templ_7745c5c3_Var131 string
2765- templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)2766+ templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2766 if templ_7745c5c3_Err != nil {2767 if templ_7745c5c3_Err != nil {
2767- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 28}2768+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 543, Col: 28}
2768 }2769 }
2769- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132))2770+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131))
2770 if templ_7745c5c3_Err != nil {2771 if templ_7745c5c3_Err != nil {
2771 return templ_7745c5c3_Err2772 return templ_7745c5c3_Err
2772 }2773 }
2773- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "</button></div></form>")2774+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "</button></div></form>")
2774 if templ_7745c5c3_Err != nil {2775 if templ_7745c5c3_Err != nil {
2775 return templ_7745c5c3_Err2776 return templ_7745c5c3_Err
2776 }2777 }
2777 }2778 }
2778- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</div></details>")2779+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "</div></details>")
2779 if templ_7745c5c3_Err != nil {2780 if templ_7745c5c3_Err != nil {
2780 return templ_7745c5c3_Err2781 return templ_7745c5c3_Err
2781 }2782 }
@@ -2801,182 +2802,182 @@ func MRMergeability(v MergeabilityView) templ.Component {
2801 }()2802 }()
2802 }2803 }
2803 ctx = templ.InitializeContext(ctx)2804 ctx = templ.InitializeContext(ctx)
2804- templ_7745c5c3_Var133 := templ.GetChildren(ctx)2805+ templ_7745c5c3_Var132 := templ.GetChildren(ctx)
2805- if templ_7745c5c3_Var133 == nil {2806+ if templ_7745c5c3_Var132 == nil {
2806- templ_7745c5c3_Var133 = templ.NopComponent2807+ templ_7745c5c3_Var132 = templ.NopComponent
2807 }2808 }
2808 ctx = templ.ClearChildren(ctx)2809 ctx = templ.ClearChildren(ctx)
2809- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "<span data-mergeability data-state=\"")2810+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "<span data-mergeability data-state=\"")
2811+ if templ_7745c5c3_Err != nil {
2812+ return templ_7745c5c3_Err
2813+ }
2814+ var templ_7745c5c3_Var133 string
2815+ templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2816+ if templ_7745c5c3_Err != nil {
2817+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 22}
2818+ }
2819+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var133)
2820+ if templ_7745c5c3_Err != nil {
2821+ return templ_7745c5c3_Err
2822+ }
2823+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-ok=\"")
2810 if templ_7745c5c3_Err != nil {2824 if templ_7745c5c3_Err != nil {
2811 return templ_7745c5c3_Err2825 return templ_7745c5c3_Err
2812 }2826 }
2813 var templ_7745c5c3_Var134 string2827 var templ_7745c5c3_Var134 string
2814- templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)2828+ templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))
2815 if templ_7745c5c3_Err != nil {2829 if templ_7745c5c3_Err != nil {
2816- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 553, Col: 22}2830+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 41}
2817 }2831 }
2818 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134)2832 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134)
2819 if templ_7745c5c3_Err != nil {2833 if templ_7745c5c3_Err != nil {
2820 return templ_7745c5c3_Err2834 return templ_7745c5c3_Err
2821 }2835 }
2822- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "\" data-ff-ok=\"")2836+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-ok=\"")
2823 if templ_7745c5c3_Err != nil {2837 if templ_7745c5c3_Err != nil {
2824 return templ_7745c5c3_Err2838 return templ_7745c5c3_Err
2825 }2839 }
2826 var templ_7745c5c3_Var135 string2840 var templ_7745c5c3_Var135 string
2827- templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))2841+ templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))
2828 if templ_7745c5c3_Err != nil {2842 if templ_7745c5c3_Err != nil {
2829- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 554, Col: 41}2843+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 558, Col: 47}
2830 }2844 }
2831 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135)2845 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135)
2832 if templ_7745c5c3_Err != nil {2846 if templ_7745c5c3_Err != nil {
2833 return templ_7745c5c3_Err2847 return templ_7745c5c3_Err
2834 }2848 }
2835- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\" data-merge-ok=\"")2849+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\" data-ff-reason=\"")
2836 if templ_7745c5c3_Err != nil {2850 if templ_7745c5c3_Err != nil {
2837 return templ_7745c5c3_Err2851 return templ_7745c5c3_Err
2838 }2852 }
2839 var templ_7745c5c3_Var136 string2853 var templ_7745c5c3_Var136 string
2840- templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))2854+ templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)
2841 if templ_7745c5c3_Err != nil {2855 if templ_7745c5c3_Err != nil {
2842- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 555, Col: 47}2856+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 29}
2843 }2857 }
2844 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136)2858 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136)
2845 if templ_7745c5c3_Err != nil {2859 if templ_7745c5c3_Err != nil {
2846 return templ_7745c5c3_Err2860 return templ_7745c5c3_Err
2847 }2861 }
2848- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-reason=\"")2862+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\" data-merge-reason=\"")
2849 if templ_7745c5c3_Err != nil {2863 if templ_7745c5c3_Err != nil {
2850 return templ_7745c5c3_Err2864 return templ_7745c5c3_Err
2851 }2865 }
2852 var templ_7745c5c3_Var137 string2866 var templ_7745c5c3_Var137 string
2853- templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)2867+ templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)
2854 if templ_7745c5c3_Err != nil {2868 if templ_7745c5c3_Err != nil {
2855- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 29}2869+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 560, Col: 35}
2856 }2870 }
2857 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var137)2871 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var137)
2858 if templ_7745c5c3_Err != nil {2872 if templ_7745c5c3_Err != nil {
2859 return templ_7745c5c3_Err2873 return templ_7745c5c3_Err
2860 }2874 }
2861- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-reason=\"")2875+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "\"><span class=\"badge\" data-state=\"")
2862 if templ_7745c5c3_Err != nil {2876 if templ_7745c5c3_Err != nil {
2863 return templ_7745c5c3_Err2877 return templ_7745c5c3_Err
2864 }2878 }
2865 var templ_7745c5c3_Var138 string2879 var templ_7745c5c3_Var138 string
2866- templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)2880+ templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2867 if templ_7745c5c3_Err != nil {2881 if templ_7745c5c3_Err != nil {
2868- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 35}2882+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 42}
2869 }2883 }
2870 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var138)2884 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var138)
2871 if templ_7745c5c3_Err != nil {2885 if templ_7745c5c3_Err != nil {
2872 return templ_7745c5c3_Err2886 return templ_7745c5c3_Err
2873 }2887 }
2874- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\"><span class=\"badge\" data-state=\"")2888+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "\">")
2875 if templ_7745c5c3_Err != nil {2889 if templ_7745c5c3_Err != nil {
2876 return templ_7745c5c3_Err2890 return templ_7745c5c3_Err
2877 }2891 }
2878 var templ_7745c5c3_Var139 string2892 var templ_7745c5c3_Var139 string
2879- templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)2893+ templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2880- if templ_7745c5c3_Err != nil {
2881- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 42}
2882- }
2883- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var139)
2884- if templ_7745c5c3_Err != nil {
2885- return templ_7745c5c3_Err
2886- }
2887- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\">")
2888- if templ_7745c5c3_Err != nil {
2889- return templ_7745c5c3_Err
2890- }
2891- var templ_7745c5c3_Var140 string
2892- templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2893 if templ_7745c5c3_Err != nil {2894 if templ_7745c5c3_Err != nil {
2894- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 54}2895+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 54}
2895 }2896 }
2896- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))2897+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139))
2897 if templ_7745c5c3_Err != nil {2898 if templ_7745c5c3_Err != nil {
2898 return templ_7745c5c3_Err2899 return templ_7745c5c3_Err
2899 }2900 }
2900- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "</span> ")2901+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span> ")
2901 if templ_7745c5c3_Err != nil {2902 if templ_7745c5c3_Err != nil {
2902 return templ_7745c5c3_Err2903 return templ_7745c5c3_Err
2903 }2904 }
2904 if v.Detail != "" {2905 if v.Detail != "" {
2905- var templ_7745c5c3_Var141 string2906+ var templ_7745c5c3_Var140 string
2906- templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(" ")2907+ templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2907 if templ_7745c5c3_Err != nil {2908 if templ_7745c5c3_Err != nil {
2908- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 8}2909+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 8}
2909 }2910 }
2910- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))2911+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))
2911 if templ_7745c5c3_Err != nil {2912 if templ_7745c5c3_Err != nil {
2912 return templ_7745c5c3_Err2913 return templ_7745c5c3_Err
2913 }2914 }
2914- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "<span class=\"dim\">")2915+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "<span class=\"dim\">")
2915 if templ_7745c5c3_Err != nil {2916 if templ_7745c5c3_Err != nil {
2916 return templ_7745c5c3_Err2917 return templ_7745c5c3_Err
2917 }2918 }
2918- var templ_7745c5c3_Var142 string2919+ var templ_7745c5c3_Var141 string
2919- templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)2920+ templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)
2920 if templ_7745c5c3_Err != nil {2921 if templ_7745c5c3_Err != nil {
2921- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 38}2922+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 38}
2922 }2923 }
2923- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))2924+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))
2924 if templ_7745c5c3_Err != nil {2925 if templ_7745c5c3_Err != nil {
2925 return templ_7745c5c3_Err2926 return templ_7745c5c3_Err
2926 }2927 }
2927- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span>")2928+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "</span>")
2928 if templ_7745c5c3_Err != nil {2929 if templ_7745c5c3_Err != nil {
2929 return templ_7745c5c3_Err2930 return templ_7745c5c3_Err
2930 }2931 }
2931 }2932 }
2932- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</span> ")2933+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "</span> ")
2933 if templ_7745c5c3_Err != nil {2934 if templ_7745c5c3_Err != nil {
2934 return templ_7745c5c3_Err2935 return templ_7745c5c3_Err
2935 }2936 }
2936 if len(v.Paths) > 0 {2937 if len(v.Paths) > 0 {
2937- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")2938+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")
2938 if templ_7745c5c3_Err != nil {2939 if templ_7745c5c3_Err != nil {
2939 return templ_7745c5c3_Err2940 return templ_7745c5c3_Err
2940 }2941 }
2941 for _, path := range v.Paths {2942 for _, path := range v.Paths {
2942- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "<li><code>")2943+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "<li><code>")
2943 if templ_7745c5c3_Err != nil {2944 if templ_7745c5c3_Err != nil {
2944 return templ_7745c5c3_Err2945 return templ_7745c5c3_Err
2945 }2946 }
2946- var templ_7745c5c3_Var143 string2947+ var templ_7745c5c3_Var142 string
2947- templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(path)2948+ templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(path)
2948 if templ_7745c5c3_Err != nil {2949 if templ_7745c5c3_Err != nil {
2949- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 567, Col: 20}2950+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 20}
2950 }2951 }
2951- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))2952+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))
2952 if templ_7745c5c3_Err != nil {2953 if templ_7745c5c3_Err != nil {
2953 return templ_7745c5c3_Err2954 return templ_7745c5c3_Err
2954 }2955 }
2955- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "</code></li>")2956+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "</code></li>")
2956 if templ_7745c5c3_Err != nil {2957 if templ_7745c5c3_Err != nil {
2957 return templ_7745c5c3_Err2958 return templ_7745c5c3_Err
2958 }2959 }
2959 }2960 }
2960- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "</ul>")2961+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</ul>")
2961 if templ_7745c5c3_Err != nil {2962 if templ_7745c5c3_Err != nil {
2962 return templ_7745c5c3_Err2963 return templ_7745c5c3_Err
2963 }2964 }
2964 }2965 }
2965 if v.PathsNote != "" {2966 if v.PathsNote != "" {
2966- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "<p class=\"dim\">")2967+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<p class=\"dim\">")
2967 if templ_7745c5c3_Err != nil {2968 if templ_7745c5c3_Err != nil {
2968 return templ_7745c5c3_Err2969 return templ_7745c5c3_Err
2969 }2970 }
2970- var templ_7745c5c3_Var144 string2971+ var templ_7745c5c3_Var143 string
2971- templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)2972+ templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)
2972 if templ_7745c5c3_Err != nil {2973 if templ_7745c5c3_Err != nil {
2973- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 572, Col: 30}2974+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 575, Col: 30}
2974 }2975 }
2975- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var144))2976+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))
2976 if templ_7745c5c3_Err != nil {2977 if templ_7745c5c3_Err != nil {
2977 return templ_7745c5c3_Err2978 return templ_7745c5c3_Err
2978 }2979 }
2979- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</p>")2980+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</p>")
2980 if templ_7745c5c3_Err != nil {2981 if templ_7745c5c3_Err != nil {
2981 return templ_7745c5c3_Err2982 return templ_7745c5c3_Err
2982 }2983 }
@@ -3003,12 +3004,12 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
3003 }()3004 }()
3004 }3005 }
3005 ctx = templ.InitializeContext(ctx)3006 ctx = templ.InitializeContext(ctx)
3006- templ_7745c5c3_Var145 := templ.GetChildren(ctx)3007+ templ_7745c5c3_Var144 := templ.GetChildren(ctx)
3007- if templ_7745c5c3_Var145 == nil {3008+ if templ_7745c5c3_Var144 == nil {
3008- templ_7745c5c3_Var145 = templ.NopComponent3009+ templ_7745c5c3_Var144 = templ.NopComponent
3009 }3010 }
3010 ctx = templ.ClearChildren(ctx)3011 ctx = templ.ClearChildren(ctx)
3011- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")3012+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")
3012 if templ_7745c5c3_Err != nil {3013 if templ_7745c5c3_Err != nil {
3013 return templ_7745c5c3_Err3014 return templ_7745c5c3_Err
3014 }3015 }
@@ -3016,7 +3017,7 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
3016 if templ_7745c5c3_Err != nil {3017 if templ_7745c5c3_Err != nil {
3017 return templ_7745c5c3_Err3018 return templ_7745c5c3_Err
3018 }3019 }
3019- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</div>")3020+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "</div>")
3020 if templ_7745c5c3_Err != nil {3021 if templ_7745c5c3_Err != nil {
3021 return templ_7745c5c3_Err3022 return templ_7745c5c3_Err
3022 }3023 }
@@ -3041,9 +3042,9 @@ func MRMergeabilityFragment(v MergeabilityView) templ.Component {
3041 }()3042 }()
3042 }3043 }
3043 ctx = templ.InitializeContext(ctx)3044 ctx = templ.InitializeContext(ctx)
3044- templ_7745c5c3_Var146 := templ.GetChildren(ctx)3045+ templ_7745c5c3_Var145 := templ.GetChildren(ctx)
3045- if templ_7745c5c3_Var146 == nil {3046+ if templ_7745c5c3_Var145 == nil {
3046- templ_7745c5c3_Var146 = templ.NopComponent3047+ templ_7745c5c3_Var145 = templ.NopComponent
3047 }3048 }
3048 ctx = templ.ClearChildren(ctx)3049 ctx = templ.ClearChildren(ctx)
3049 templ_7745c5c3_Err = mrMergeabilitySlot(v).Render(ctx, templ_7745c5c3_Buffer)3050 templ_7745c5c3_Err = mrMergeabilitySlot(v).Render(ctx, templ_7745c5c3_Buffer)
@@ -3072,66 +3073,66 @@ func moreMenu(p MRPage) templ.Component {
3072 }()3073 }()
3073 }3074 }
3074 ctx = templ.InitializeContext(ctx)3075 ctx = templ.InitializeContext(ctx)
3075- templ_7745c5c3_Var147 := templ.GetChildren(ctx)3076+ templ_7745c5c3_Var146 := templ.GetChildren(ctx)
3076- if templ_7745c5c3_Var147 == nil {3077+ if templ_7745c5c3_Var146 == nil {
3077- templ_7745c5c3_Var147 = templ.NopComponent3078+ templ_7745c5c3_Var146 = templ.NopComponent
3078 }3079 }
3079 ctx = templ.ClearChildren(ctx)3080 ctx = templ.ClearChildren(ctx)
3080- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">")3081+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "<details class=\"menu omenu\"><summary class=\"btn icon\" aria-label=\"More actions\" title=\"more actions\">⋯</summary><div class=\"menu-pop\" role=\"group\" aria-label=\"More actions\">")
3081 if templ_7745c5c3_Err != nil {3082 if templ_7745c5c3_Err != nil {
3082 return templ_7745c5c3_Err3083 return templ_7745c5c3_Err
3083 }3084 }
3084 if p.Box.CanMarkRead {3085 if p.Box.CanMarkRead {
3085- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "<form method=\"post\" action=\"")3086+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "<form method=\"post\" action=\"")
3086 if templ_7745c5c3_Err != nil {3087 if templ_7745c5c3_Err != nil {
3087 return templ_7745c5c3_Err3088 return templ_7745c5c3_Err
3088 }3089 }
3089- var templ_7745c5c3_Var148 templ.SafeURL3090+ var templ_7745c5c3_Var147 templ.SafeURL
3090- templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))3091+ templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))
3091 if templ_7745c5c3_Err != nil {3092 if templ_7745c5c3_Err != nil {
3092- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 596, Col: 64}3093+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 599, Col: 64}
3093 }3094 }
3094- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var148))3095+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147))
3095 if templ_7745c5c3_Err != nil {3096 if templ_7745c5c3_Err != nil {
3096 return templ_7745c5c3_Err3097 return templ_7745c5c3_Err
3097 }3098 }
3098- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "\"><input type=\"hidden\" name=\"head_id\" value=\"")3099+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
3099 if templ_7745c5c3_Err != nil {3100 if templ_7745c5c3_Err != nil {
3100 return templ_7745c5c3_Err3101 return templ_7745c5c3_Err
3101 }3102 }
3102- var templ_7745c5c3_Var149 string3103+ var templ_7745c5c3_Var148 string
3103- templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)3104+ templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
3104 if templ_7745c5c3_Err != nil {3105 if templ_7745c5c3_Err != nil {
3105- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 597, Col: 59}3106+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 600, Col: 59}
3106 }3107 }
3107- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149)3108+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148)
3108 if templ_7745c5c3_Err != nil {3109 if templ_7745c5c3_Err != nil {
3109 return templ_7745c5c3_Err3110 return templ_7745c5c3_Err
3110 }3111 }
3111- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>")3112+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "\"> <button type=\"submit\" title=\"the next visit can show only what changed after this head\" class=\"btn\" aria-keyshortcuts=\"Shift+R\" data-read>Mark read <kbd aria-hidden=\"true\">R</kbd></button></form>")
3112 if templ_7745c5c3_Err != nil {3113 if templ_7745c5c3_Err != nil {
3113 return templ_7745c5c3_Err3114 return templ_7745c5c3_Err
3114 }3115 }
3115 }3116 }
3116- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "<form method=\"post\" action=\"")3117+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<form method=\"post\" action=\"")
3117 if templ_7745c5c3_Err != nil {3118 if templ_7745c5c3_Err != nil {
3118 return templ_7745c5c3_Err3119 return templ_7745c5c3_Err
3119 }3120 }
3120- var templ_7745c5c3_Var150 templ.SafeURL3121+ var templ_7745c5c3_Var149 templ.SafeURL
3121- templ_7745c5c3_Var150, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))3122+ templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))
3122 if templ_7745c5c3_Err != nil {3123 if templ_7745c5c3_Err != nil {
3123- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 601, Col: 64}3124+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 604, Col: 64}
3124 }3125 }
3125- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var150))3126+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var149))
3126 if templ_7745c5c3_Err != nil {3127 if templ_7745c5c3_Err != nil {
3127 return templ_7745c5c3_Err3128 return templ_7745c5c3_Err
3128 }3129 }
3129- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 287, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>")3130+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "\"><button type=\"submit\" title=\"close without merging; the branch is kept\" class=\"btn danger\">Close</button></form>")
3130 if templ_7745c5c3_Err != nil {3131 if templ_7745c5c3_Err != nil {
3131 return templ_7745c5c3_Err3132 return templ_7745c5c3_Err
3132 }3133 }
3133 if !p.Box.HeadGone && p.Box.ReadyAction == "" {3134 if !p.Box.HeadGone && p.Box.ReadyAction == "" {
3134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")3135+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")
3135 if templ_7745c5c3_Err != nil {3136 if templ_7745c5c3_Err != nil {
3136 return templ_7745c5c3_Err3137 return templ_7745c5c3_Err
3137 }3138 }
@@ -3139,12 +3140,12 @@ func moreMenu(p MRPage) templ.Component {
3139 if templ_7745c5c3_Err != nil {3140 if templ_7745c5c3_Err != nil {
3140 return templ_7745c5c3_Err3141 return templ_7745c5c3_Err
3141 }3142 }
3142- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "</details>")3143+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "</details>")
3143 if templ_7745c5c3_Err != nil {3144 if templ_7745c5c3_Err != nil {
3144 return templ_7745c5c3_Err3145 return templ_7745c5c3_Err
3145 }3146 }
3146 }3147 }
3147- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "</div></details>")3148+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "</div></details>")
3148 if templ_7745c5c3_Err != nil {3149 if templ_7745c5c3_Err != nil {
3149 return templ_7745c5c3_Err3150 return templ_7745c5c3_Err
3150 }3151 }
@@ -3168,12 +3169,12 @@ func Compare(l Layout, p ComparePage) templ.Component {
3168 }()3169 }()
3169 }3170 }
3170 ctx = templ.InitializeContext(ctx)3171 ctx = templ.InitializeContext(ctx)
3171- templ_7745c5c3_Var151 := templ.GetChildren(ctx)3172+ templ_7745c5c3_Var150 := templ.GetChildren(ctx)
3172- if templ_7745c5c3_Var151 == nil {3173+ if templ_7745c5c3_Var150 == nil {
3173- templ_7745c5c3_Var151 = templ.NopComponent3174+ templ_7745c5c3_Var150 = templ.NopComponent
3174 }3175 }
3175 ctx = templ.ClearChildren(ctx)3176 ctx = templ.ClearChildren(ctx)
3176- templ_7745c5c3_Var152 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {3177+ templ_7745c5c3_Var151 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
3177 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context3178 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
3178 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)3179 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
3179 if !templ_7745c5c3_IsBuffer {3180 if !templ_7745c5c3_IsBuffer {
@@ -3185,263 +3186,263 @@ func Compare(l Layout, p ComparePage) templ.Component {
3185 }()3186 }()
3186 }3187 }
3187 ctx = templ.InitializeContext(ctx)3188 ctx = templ.InitializeContext(ctx)
3188- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "<header class=\"show mr-h\"><h1>")3189+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "<header class=\"show mr-h\"><h1>")
3189 if templ_7745c5c3_Err != nil {3190 if templ_7745c5c3_Err != nil {
3190 return templ_7745c5c3_Err3191 return templ_7745c5c3_Err
3191 }3192 }
3192- var templ_7745c5c3_Var153 string3193+ var templ_7745c5c3_Var152 string
3193- templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)3194+ templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3194 if templ_7745c5c3_Err != nil {3195 if templ_7745c5c3_Err != nil {
3195- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 17}3196+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 17}
3196 }3197 }
3197- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))3198+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152))
3198 if templ_7745c5c3_Err != nil {3199 if templ_7745c5c3_Err != nil {
3199 return templ_7745c5c3_Err3200 return templ_7745c5c3_Err
3200 }3201 }
3201- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, " → ")3202+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, " → ")
3202 if templ_7745c5c3_Err != nil {3203 if templ_7745c5c3_Err != nil {
3203 return templ_7745c5c3_Err3204 return templ_7745c5c3_Err
3204 }3205 }
3205- var templ_7745c5c3_Var154 string3206+ var templ_7745c5c3_Var153 string
3206- templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)3207+ templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3207 if templ_7745c5c3_Err != nil {3208 if templ_7745c5c3_Err != nil {
3208- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 34}3209+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 34}
3209 }3210 }
3210- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))3211+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))
3211 if templ_7745c5c3_Err != nil {3212 if templ_7745c5c3_Err != nil {
3212 return templ_7745c5c3_Err3213 return templ_7745c5c3_Err
3213 }3214 }
3214- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")3215+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")
3215 if templ_7745c5c3_Err != nil {3216 if templ_7745c5c3_Err != nil {
3216 return templ_7745c5c3_Err3217 return templ_7745c5c3_Err
3217 }3218 }
3218- var templ_7745c5c3_Var155 templ.SafeURL3219+ var templ_7745c5c3_Var154 templ.SafeURL
3219- templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))3220+ templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))
3220 if templ_7745c5c3_Err != nil {3221 if templ_7745c5c3_Err != nil {
3221- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 45}3222+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 45}
3222 }3223 }
3223- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))3224+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))
3224 if templ_7745c5c3_Err != nil {3225 if templ_7745c5c3_Err != nil {
3225 return templ_7745c5c3_Err3226 return templ_7745c5c3_Err
3226 }3227 }
3227- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "\">")3228+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")
3228 if templ_7745c5c3_Err != nil {3229 if templ_7745c5c3_Err != nil {
3229 return templ_7745c5c3_Err3230 return templ_7745c5c3_Err
3230 }3231 }
3231- var templ_7745c5c3_Var156 string3232+ var templ_7745c5c3_Var155 string
3232- templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)3233+ templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3233 if templ_7745c5c3_Err != nil {3234 if templ_7745c5c3_Err != nil {
3234- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 58}3235+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 58}
3235 }3236 }
3236- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))3237+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))
3237 if templ_7745c5c3_Err != nil {3238 if templ_7745c5c3_Err != nil {
3238 return templ_7745c5c3_Err3239 return templ_7745c5c3_Err
3239 }3240 }
3240- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</a></dd><dt>target</dt><dd><a href=\"")3241+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>target</dt><dd><a href=\"")
3241 if templ_7745c5c3_Err != nil {3242 if templ_7745c5c3_Err != nil {
3242 return templ_7745c5c3_Err3243 return templ_7745c5c3_Err
3243 }3244 }
3244- var templ_7745c5c3_Var157 templ.SafeURL3245+ var templ_7745c5c3_Var156 templ.SafeURL
3245- templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))3246+ templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))
3246 if templ_7745c5c3_Err != nil {3247 if templ_7745c5c3_Err != nil {
3247- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 45}3248+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 45}
3248 }3249 }
3249- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))3250+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))
3250 if templ_7745c5c3_Err != nil {3251 if templ_7745c5c3_Err != nil {
3251 return templ_7745c5c3_Err3252 return templ_7745c5c3_Err
3252 }3253 }
3253- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")3254+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "\">")
3254 if templ_7745c5c3_Err != nil {3255 if templ_7745c5c3_Err != nil {
3255 return templ_7745c5c3_Err3256 return templ_7745c5c3_Err
3256 }3257 }
3257- var templ_7745c5c3_Var158 string3258+ var templ_7745c5c3_Var157 string
3258- templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)3259+ templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3259 if templ_7745c5c3_Err != nil {3260 if templ_7745c5c3_Err != nil {
3260- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 58}3261+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 58}
3261 }3262 }
3262- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))3263+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))
3263 if templ_7745c5c3_Err != nil {3264 if templ_7745c5c3_Err != nil {
3264 return templ_7745c5c3_Err3265 return templ_7745c5c3_Err
3265 }3266 }
3266- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>ahead</dt><dd>")3267+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "</a></dd><dt>ahead</dt><dd>")
3267 if templ_7745c5c3_Err != nil {3268 if templ_7745c5c3_Err != nil {
3268 return templ_7745c5c3_Err3269 return templ_7745c5c3_Err
3269 }3270 }
3270- var templ_7745c5c3_Var159 string3271+ var templ_7745c5c3_Var158 string
3271- templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)3272+ templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)
3272 if templ_7745c5c3_Err != nil {3273 if templ_7745c5c3_Err != nil {
3273- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 624, Col: 21}3274+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 627, Col: 21}
3274 }3275 }
3275- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))3276+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))
3276 if templ_7745c5c3_Err != nil {3277 if templ_7745c5c3_Err != nil {
3277 return templ_7745c5c3_Err3278 return templ_7745c5c3_Err
3278 }3279 }
3279- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "</dd></dl></header>")3280+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</dd></dl></header>")
3280 if templ_7745c5c3_Err != nil {3281 if templ_7745c5c3_Err != nil {
3281 return templ_7745c5c3_Err3282 return templ_7745c5c3_Err
3282 }3283 }
3283 if p.Note != "" {3284 if p.Note != "" {
3284- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "<p class=\"notice\">")3285+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "<p class=\"notice\">")
3285 if templ_7745c5c3_Err != nil {3286 if templ_7745c5c3_Err != nil {
3286 return templ_7745c5c3_Err3287 return templ_7745c5c3_Err
3287 }3288 }
3288- var templ_7745c5c3_Var160 string3289+ var templ_7745c5c3_Var159 string
3289- templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)3290+ templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
3290 if templ_7745c5c3_Err != nil {3291 if templ_7745c5c3_Err != nil {
3291- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 628, Col: 29}3292+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 29}
3292 }3293 }
3293- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))3294+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))
3294 if templ_7745c5c3_Err != nil {3295 if templ_7745c5c3_Err != nil {
3295 return templ_7745c5c3_Err3296 return templ_7745c5c3_Err
3296 }3297 }
3297- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</p>")3298+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "</p>")
3298 if templ_7745c5c3_Err != nil {3299 if templ_7745c5c3_Err != nil {
3299 return templ_7745c5c3_Err3300 return templ_7745c5c3_Err
3300 }3301 }
3301 }3302 }
3302- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, " ")3303+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, " ")
3303 if templ_7745c5c3_Err != nil {3304 if templ_7745c5c3_Err != nil {
3304 return templ_7745c5c3_Err3305 return templ_7745c5c3_Err
3305 }3306 }
3306 if p.Existing != nil {3307 if p.Existing != nil {
3307- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")3308+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")
3308 if templ_7745c5c3_Err != nil {3309 if templ_7745c5c3_Err != nil {
3309 return templ_7745c5c3_Err3310 return templ_7745c5c3_Err
3310 }3311 }
3311- var templ_7745c5c3_Var161 templ.SafeURL3312+ var templ_7745c5c3_Var160 templ.SafeURL
3312- templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))3313+ templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))
3313 if templ_7745c5c3_Err != nil {3314 if templ_7745c5c3_Err != nil {
3314- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 114}3315+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 114}
3315 }3316 }
3316- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))3317+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))
3317 if templ_7745c5c3_Err != nil {3318 if templ_7745c5c3_Err != nil {
3318 return templ_7745c5c3_Err3319 return templ_7745c5c3_Err
3319 }3320 }
3320- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, "\">")3321+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, "\">")
3321 if templ_7745c5c3_Err != nil {3322 if templ_7745c5c3_Err != nil {
3322 return templ_7745c5c3_Err3323 return templ_7745c5c3_Err
3323 }3324 }
3324- var templ_7745c5c3_Var162 string3325+ var templ_7745c5c3_Var161 string
3325- templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)3326+ templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)
3326 if templ_7745c5c3_Err != nil {3327 if templ_7745c5c3_Err != nil {
3327- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 135}3328+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 135}
3328 }3329 }
3329- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))3330+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))
3330 if templ_7745c5c3_Err != nil {3331 if templ_7745c5c3_Err != nil {
3331 return templ_7745c5c3_Err3332 return templ_7745c5c3_Err
3332 }3333 }
3333- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "</a></p>")3334+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "</a></p>")
3334 if templ_7745c5c3_Err != nil {3335 if templ_7745c5c3_Err != nil {
3335 return templ_7745c5c3_Err3336 return templ_7745c5c3_Err
3336 }3337 }
3337 }3338 }
3338- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, " ")3339+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, " ")
3339 if templ_7745c5c3_Err != nil {3340 if templ_7745c5c3_Err != nil {
3340 return templ_7745c5c3_Err3341 return templ_7745c5c3_Err
3341 }3342 }
3342 if p.Create != nil {3343 if p.Create != nil {
3343- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "<form class=\"cform create\" method=\"post\" action=\"")3344+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "<form class=\"cform create\" method=\"post\" action=\"")
3344 if templ_7745c5c3_Err != nil {3345 if templ_7745c5c3_Err != nil {
3345 return templ_7745c5c3_Err3346 return templ_7745c5c3_Err
3346 }3347 }
3347- var templ_7745c5c3_Var163 templ.SafeURL3348+ var templ_7745c5c3_Var162 templ.SafeURL
3348- templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))3349+ templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))
3349 if templ_7745c5c3_Err != nil {3350 if templ_7745c5c3_Err != nil {
3350- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 83}3351+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 637, Col: 83}
3351 }3352 }
3352- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var163))3353+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))
3353 if templ_7745c5c3_Err != nil {3354 if templ_7745c5c3_Err != nil {
3354 return templ_7745c5c3_Err3355 return templ_7745c5c3_Err
3355 }3356 }
3356- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, "\"><input type=\"hidden\" name=\"source\" value=\"")3357+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 309, "\"><input type=\"hidden\" name=\"source\" value=\"")
3357 if templ_7745c5c3_Err != nil {3358 if templ_7745c5c3_Err != nil {
3358 return templ_7745c5c3_Err3359 return templ_7745c5c3_Err
3359 }3360 }
3360- var templ_7745c5c3_Var164 string3361+ var templ_7745c5c3_Var163 string
3361- templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)3362+ templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)
3362 if templ_7745c5c3_Err != nil {3363 if templ_7745c5c3_Err != nil {
3363- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 635, Col: 62}3364+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 62}
3364 }3365 }
3365- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)3366+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var163)
3366 if templ_7745c5c3_Err != nil {3367 if templ_7745c5c3_Err != nil {
3367 return templ_7745c5c3_Err3368 return templ_7745c5c3_Err
3368 }3369 }
3369- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "\"> <input type=\"hidden\" name=\"target\" value=\"")3370+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 310, "\"> <input type=\"hidden\" name=\"target\" value=\"")
3370 if templ_7745c5c3_Err != nil {3371 if templ_7745c5c3_Err != nil {
3371 return templ_7745c5c3_Err3372 return templ_7745c5c3_Err
3372 }3373 }
3373- var templ_7745c5c3_Var165 string3374+ var templ_7745c5c3_Var164 string
3374- templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)3375+ templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)
3375 if templ_7745c5c3_Err != nil {3376 if templ_7745c5c3_Err != nil {
3376- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 636, Col: 62}3377+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 639, Col: 62}
3377 }3378 }
3378- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)3379+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)
3379 if templ_7745c5c3_Err != nil {3380 if templ_7745c5c3_Err != nil {
3380 return templ_7745c5c3_Err3381 return templ_7745c5c3_Err
3381 }3382 }
3382- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 309, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"")3383+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 311, "\"> <label for=\"mr-title\">title</label> <input id=\"mr-title\" name=\"title\" type=\"text\" maxlength=\"120\" required value=\"")
3383 if templ_7745c5c3_Err != nil {3384 if templ_7745c5c3_Err != nil {
3384 return templ_7745c5c3_Err3385 return templ_7745c5c3_Err
3385 }3386 }
3386- var templ_7745c5c3_Var166 string3387+ var templ_7745c5c3_Var165 string
3387- templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)3388+ templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)
3388 if templ_7745c5c3_Err != nil {3389 if templ_7745c5c3_Err != nil {
3389- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 97}3390+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 641, Col: 97}
3390 }3391 }
3391- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var166)3392+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)
3392 if templ_7745c5c3_Err != nil {3393 if templ_7745c5c3_Err != nil {
3393 return templ_7745c5c3_Err3394 return templ_7745c5c3_Err
3394 }3395 }
3395- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 310, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>")3396+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 312, "\" autocomplete=\"off\"> <label for=\"mr-desc\">description</label> <textarea id=\"mr-desc\" name=\"description\" rows=\"4\" maxlength=\"8000\" placeholder=\"Markdown, optional\"></textarea><div class=\"f-btns\"><button type=\"submit\" class=\"btn primary\">Create merge request</button></div></form>")
3396 if templ_7745c5c3_Err != nil {3397 if templ_7745c5c3_Err != nil {
3397 return templ_7745c5c3_Err3398 return templ_7745c5c3_Err
3398 }3399 }
3399 }3400 }
3400- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 311, " ")3401+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " ")
3401 if templ_7745c5c3_Err != nil {3402 if templ_7745c5c3_Err != nil {
3402 return templ_7745c5c3_Err3403 return templ_7745c5c3_Err
3403 }3404 }
3404 if p.HasDiff {3405 if p.HasDiff {
3405- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 312, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")3406+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")
3406 if templ_7745c5c3_Err != nil {3407 if templ_7745c5c3_Err != nil {
3407 return templ_7745c5c3_Err3408 return templ_7745c5c3_Err
3408 }3409 }
3409- var templ_7745c5c3_Var167 string3410+ var templ_7745c5c3_Var166 string
3410- templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))3411+ templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
3411 if templ_7745c5c3_Err != nil {3412 if templ_7745c5c3_Err != nil {
3412- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 57}3413+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 57}
3413 }3414 }
3414- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))3415+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var166))
3415 if templ_7745c5c3_Err != nil {3416 if templ_7745c5c3_Err != nil {
3416 return templ_7745c5c3_Err3417 return templ_7745c5c3_Err
3417 }3418 }
3418- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " · <span class=\"plus\">+")3419+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, " · <span class=\"plus\">+")
3419 if templ_7745c5c3_Err != nil {3420 if templ_7745c5c3_Err != nil {
3420 return templ_7745c5c3_Err3421 return templ_7745c5c3_Err
3421 }3422 }
3422- var templ_7745c5c3_Var168 string3423+ var templ_7745c5c3_Var167 string
3423- templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))3424+ templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
3424 if templ_7745c5c3_Err != nil {3425 if templ_7745c5c3_Err != nil {
3425- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 97}3426+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 97}
3426 }3427 }
3427- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))3428+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))
3428 if templ_7745c5c3_Err != nil {3429 if templ_7745c5c3_Err != nil {
3429 return templ_7745c5c3_Err3430 return templ_7745c5c3_Err
3430 }3431 }
3431- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "</span> <span class=\"minus\">-")3432+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 316, "</span> <span class=\"minus\">-")
3432 if templ_7745c5c3_Err != nil {3433 if templ_7745c5c3_Err != nil {
3433 return templ_7745c5c3_Err3434 return templ_7745c5c3_Err
3434 }3435 }
3435- var templ_7745c5c3_Var169 string3436+ var templ_7745c5c3_Var168 string
3436- templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))3437+ templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
3437 if templ_7745c5c3_Err != nil {3438 if templ_7745c5c3_Err != nil {
3438- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 142}3439+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 142}
3439 }3440 }
3440- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var169))3441+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))
3441 if templ_7745c5c3_Err != nil {3442 if templ_7745c5c3_Err != nil {
3442 return templ_7745c5c3_Err3443 return templ_7745c5c3_Err
3443 }3444 }
3444- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, "</span></span> <span class=\"grow\"></span>")3445+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 317, "</span></span> <span class=\"grow\"></span>")
3445 if templ_7745c5c3_Err != nil {3446 if templ_7745c5c3_Err != nil {
3446 return templ_7745c5c3_Err3447 return templ_7745c5c3_Err
3447 }3448 }
@@ -3457,64 +3458,64 @@ func Compare(l Layout, p ComparePage) templ.Component {
3457 if templ_7745c5c3_Err != nil {3458 if templ_7745c5c3_Err != nil {
3458 return templ_7745c5c3_Err3459 return templ_7745c5c3_Err
3459 }3460 }
3460- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 316, "</div>")3461+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, "</div>")
3461 if templ_7745c5c3_Err != nil {3462 if templ_7745c5c3_Err != nil {
3462 return templ_7745c5c3_Err3463 return templ_7745c5c3_Err
3463 }3464 }
3464 if p.Invisible {3465 if p.Invisible {
3465- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 317, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\">&lt;U+XXXX&gt;</span> markers, never applied.</p>")3466+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 319, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\">&lt;U+XXXX&gt;</span> markers, never applied.</p>")
3466 if templ_7745c5c3_Err != nil {3467 if templ_7745c5c3_Err != nil {
3467 return templ_7745c5c3_Err3468 return templ_7745c5c3_Err
3468 }3469 }
3469 }3470 }
3470- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, " <div id=\"diffs\"")3471+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, " <div id=\"diffs\"")
3471 if templ_7745c5c3_Err != nil {3472 if templ_7745c5c3_Err != nil {
3472 return templ_7745c5c3_Err3473 return templ_7745c5c3_Err
3473 }3474 }
3474 if p.Both {3475 if p.Both {
3475- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 319, " data-diff=\"")3476+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-diff=\"")
3476 if templ_7745c5c3_Err != nil {3477 if templ_7745c5c3_Err != nil {
3477 return templ_7745c5c3_Err3478 return templ_7745c5c3_Err
3478 }3479 }
3479- var templ_7745c5c3_Var170 string3480+ var templ_7745c5c3_Var169 string
3480- templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)3481+ templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3481 if templ_7745c5c3_Err != nil {3482 if templ_7745c5c3_Err != nil {
3482- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 663, Col: 23}3483+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 23}
3483 }3484 }
3484- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)3485+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var169)
3485 if templ_7745c5c3_Err != nil {3486 if templ_7745c5c3_Err != nil {
3486 return templ_7745c5c3_Err3487 return templ_7745c5c3_Err
3487 }3488 }
3488- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, "\"")3489+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")
3489 if templ_7745c5c3_Err != nil {3490 if templ_7745c5c3_Err != nil {
3490 return templ_7745c5c3_Err3491 return templ_7745c5c3_Err
3491 }3492 }
3492 } else {3493 } else {
3493- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-view=\"")3494+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " data-view=\"")
3494 if templ_7745c5c3_Err != nil {3495 if templ_7745c5c3_Err != nil {
3495 return templ_7745c5c3_Err3496 return templ_7745c5c3_Err
3496 }3497 }
3497- var templ_7745c5c3_Var171 string3498+ var templ_7745c5c3_Var170 string
3498- templ_7745c5c3_Var171, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)3499+ templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3499 if templ_7745c5c3_Err != nil {3500 if templ_7745c5c3_Err != nil {
3500- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 665, Col: 23}3501+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 668, Col: 23}
3501 }3502 }
3502- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var171)3503+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)
3503 if templ_7745c5c3_Err != nil {3504 if templ_7745c5c3_Err != nil {
3504 return templ_7745c5c3_Err3505 return templ_7745c5c3_Err
3505 }3506 }
3506- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")3507+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, "\"")
3507 if templ_7745c5c3_Err != nil {3508 if templ_7745c5c3_Err != nil {
3508 return templ_7745c5c3_Err3509 return templ_7745c5c3_Err
3509 }3510 }
3510 }3511 }
3511 if p.Both && !p.Pinned {3512 if p.Both && !p.Pinned {
3512- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")3513+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
3513 if templ_7745c5c3_Err != nil {3514 if templ_7745c5c3_Err != nil {
3514 return templ_7745c5c3_Err3515 return templ_7745c5c3_Err
3515 }3516 }
3516 }3517 }
3517- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, ">")3518+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, ">")
3518 if templ_7745c5c3_Err != nil {3519 if templ_7745c5c3_Err != nil {
3519 return templ_7745c5c3_Err3520 return templ_7745c5c3_Err
3520 }3521 }
@@ -3524,14 +3525,14 @@ func Compare(l Layout, p ComparePage) templ.Component {
3524 return templ_7745c5c3_Err3525 return templ_7745c5c3_Err
3525 }3526 }
3526 }3527 }
3527- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, "</div>")3528+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</div>")
3528 if templ_7745c5c3_Err != nil {3529 if templ_7745c5c3_Err != nil {
3529 return templ_7745c5c3_Err3530 return templ_7745c5c3_Err
3530 }3531 }
3531 }3532 }
3532 return nil3533 return nil
3533 })3534 })
3534- templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var152), templ_7745c5c3_Buffer)3535+ templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var151), templ_7745c5c3_Buffer)
3535 if templ_7745c5c3_Err != nil {3536 if templ_7745c5c3_Err != nil {
3536 return templ_7745c5c3_Err3537 return templ_7745c5c3_Err
3537 }3538 }
@@ -3555,173 +3556,173 @@ func compareRail(p ComparePage) templ.Component {
3555 }()3556 }()
3556 }3557 }
3557 ctx = templ.InitializeContext(ctx)3558 ctx = templ.InitializeContext(ctx)
3558- templ_7745c5c3_Var172 := templ.GetChildren(ctx)3559+ templ_7745c5c3_Var171 := templ.GetChildren(ctx)
3559- if templ_7745c5c3_Var172 == nil {3560+ if templ_7745c5c3_Var171 == nil {
3560- templ_7745c5c3_Var172 = templ.NopComponent3561+ templ_7745c5c3_Var171 = templ.NopComponent
3561 }3562 }
3562 ctx = templ.ClearChildren(ctx)3563 ctx = templ.ClearChildren(ctx)
3563- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")3564+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")
3564 if templ_7745c5c3_Err != nil {3565 if templ_7745c5c3_Err != nil {
3565 return templ_7745c5c3_Err3566 return templ_7745c5c3_Err
3566 }3567 }
3567- var templ_7745c5c3_Var173 string3568+ var templ_7745c5c3_Var172 string
3568- templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))3569+ templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))
3569 if templ_7745c5c3_Err != nil {3570 if templ_7745c5c3_Err != nil {
3570- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 681, Col: 67}3571+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 684, Col: 67}
3571 }3572 }
3572- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))3573+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172))
3573 if templ_7745c5c3_Err != nil {3574 if templ_7745c5c3_Err != nil {
3574 return templ_7745c5c3_Err3575 return templ_7745c5c3_Err
3575 }3576 }
3576- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</span></h2><ul class=\"pcommits\">")3577+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "</span></h2><ul class=\"pcommits\">")
3577 if templ_7745c5c3_Err != nil {3578 if templ_7745c5c3_Err != nil {
3578 return templ_7745c5c3_Err3579 return templ_7745c5c3_Err
3579 }3580 }
3580 for _, c := range p.Ahead {3581 for _, c := range p.Ahead {
3581- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<li><a href=\"")3582+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "<li><a href=\"")
3582 if templ_7745c5c3_Err != nil {3583 if templ_7745c5c3_Err != nil {
3583 return templ_7745c5c3_Err3584 return templ_7745c5c3_Err
3584 }3585 }
3585- var templ_7745c5c3_Var174 templ.SafeURL3586+ var templ_7745c5c3_Var173 templ.SafeURL
3586- templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))3587+ templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
3587 if templ_7745c5c3_Err != nil {3588 if templ_7745c5c3_Err != nil {
3588- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 685, Col: 37}3589+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 37}
3589 }3590 }
3590- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))3591+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))
3591 if templ_7745c5c3_Err != nil {3592 if templ_7745c5c3_Err != nil {
3592 return templ_7745c5c3_Err3593 return templ_7745c5c3_Err
3593 }3594 }
3594- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "\">")3595+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "\">")
3595 if templ_7745c5c3_Err != nil {3596 if templ_7745c5c3_Err != nil {
3596 return templ_7745c5c3_Err3597 return templ_7745c5c3_Err
3597 }3598 }
3598- var templ_7745c5c3_Var175 string3599+ var templ_7745c5c3_Var174 string
3599- templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)3600+ templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
3600 if templ_7745c5c3_Err != nil {3601 if templ_7745c5c3_Err != nil {
3601- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 685, Col: 49}3602+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 49}
3602 }3603 }
3603- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))3604+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))
3604 if templ_7745c5c3_Err != nil {3605 if templ_7745c5c3_Err != nil {
3605 return templ_7745c5c3_Err3606 return templ_7745c5c3_Err
3606 }3607 }
3607- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "</a> <span class=\"s\">")3608+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, "</a> <span class=\"s\">")
3608 if templ_7745c5c3_Err != nil {3609 if templ_7745c5c3_Err != nil {
3609 return templ_7745c5c3_Err3610 return templ_7745c5c3_Err
3610 }3611 }
3611- var templ_7745c5c3_Var176 string3612+ var templ_7745c5c3_Var175 string
3612- templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)3613+ templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
3613 if templ_7745c5c3_Err != nil {3614 if templ_7745c5c3_Err != nil {
3614- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 32}3615+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 689, Col: 32}
3615 }3616 }
3616- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))3617+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))
3617 if templ_7745c5c3_Err != nil {3618 if templ_7745c5c3_Err != nil {
3618 return templ_7745c5c3_Err3619 return templ_7745c5c3_Err
3619 }3620 }
3620- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "</span> <span class=\"mute\">")3621+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "</span> <span class=\"mute\">")
3621 if templ_7745c5c3_Err != nil {3622 if templ_7745c5c3_Err != nil {
3622 return templ_7745c5c3_Err3623 return templ_7745c5c3_Err
3623 }3624 }
3624- var templ_7745c5c3_Var177 string3625+ var templ_7745c5c3_Var176 string
3625- templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)3626+ templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
3626 if templ_7745c5c3_Err != nil {3627 if templ_7745c5c3_Err != nil {
3627- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 16}3628+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 16}
3628 }3629 }
3629- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))3630+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))
3630 if templ_7745c5c3_Err != nil {3631 if templ_7745c5c3_Err != nil {
3631 return templ_7745c5c3_Err3632 return templ_7745c5c3_Err
3632 }3633 }
3633- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, " ")3634+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, " ")
3634 if templ_7745c5c3_Err != nil {3635 if templ_7745c5c3_Err != nil {
3635 return templ_7745c5c3_Err3636 return templ_7745c5c3_Err
3636 }3637 }
3637 if c.WhenAt != "" {3638 if c.WhenAt != "" {
3638- var templ_7745c5c3_Var178 string3639+ var templ_7745c5c3_Var177 string
3639- templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")3640+ templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
3640 if templ_7745c5c3_Err != nil {3641 if templ_7745c5c3_Err != nil {
3641- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 690, Col: 15}3642+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 693, Col: 15}
3642 }3643 }
3643- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var178))3644+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))
3644 if templ_7745c5c3_Err != nil {3645 if templ_7745c5c3_Err != nil {
3645 return templ_7745c5c3_Err3646 return templ_7745c5c3_Err
3646 }3647 }
3647- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "<time datetime=\"")3648+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "<time datetime=\"")
3648 if templ_7745c5c3_Err != nil {3649 if templ_7745c5c3_Err != nil {
3649 return templ_7745c5c3_Err3650 return templ_7745c5c3_Err
3650 }3651 }
3651- var templ_7745c5c3_Var179 string3652+ var templ_7745c5c3_Var178 string
3652- templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)3653+ templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
3653 if templ_7745c5c3_Err != nil {3654 if templ_7745c5c3_Err != nil {
3654- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 690, Col: 42}3655+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 693, Col: 42}
3655 }3656 }
3656- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var179)3657+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var178)
3657 if templ_7745c5c3_Err != nil {3658 if templ_7745c5c3_Err != nil {
3658 return templ_7745c5c3_Err3659 return templ_7745c5c3_Err
3659 }3660 }
3660- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, "\">")3661+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "\">")
3661 if templ_7745c5c3_Err != nil {3662 if templ_7745c5c3_Err != nil {
3662 return templ_7745c5c3_Err3663 return templ_7745c5c3_Err
3663 }3664 }
3664- var templ_7745c5c3_Var180 string3665+ var templ_7745c5c3_Var179 string
3665- templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)3666+ templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
3666 if templ_7745c5c3_Err != nil {3667 if templ_7745c5c3_Err != nil {
3667- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 690, Col: 53}3668+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 693, Col: 53}
3668 }3669 }
3669- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))3670+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var179))
3670 if templ_7745c5c3_Err != nil {3671 if templ_7745c5c3_Err != nil {
3671 return templ_7745c5c3_Err3672 return templ_7745c5c3_Err
3672 }3673 }
3673- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "</time>")3674+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</time>")
3674 if templ_7745c5c3_Err != nil {3675 if templ_7745c5c3_Err != nil {
3675 return templ_7745c5c3_Err3676 return templ_7745c5c3_Err
3676 }3677 }
3677 }3678 }
3678- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "</span></li>")3679+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "</span></li>")
3679 if templ_7745c5c3_Err != nil {3680 if templ_7745c5c3_Err != nil {
3680 return templ_7745c5c3_Err3681 return templ_7745c5c3_Err
3681 }3682 }
3682 }3683 }
3683- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</ul>")3684+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, "</ul>")
3684 if templ_7745c5c3_Err != nil {3685 if templ_7745c5c3_Err != nil {
3685 return templ_7745c5c3_Err3686 return templ_7745c5c3_Err
3686 }3687 }
3687 if len(p.Ahead) == 0 {3688 if len(p.Ahead) == 0 {
3688- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "<p class=\"dim\">no commit ahead of ")3689+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "<p class=\"dim\">no commit ahead of ")
3689 if templ_7745c5c3_Err != nil {3690 if templ_7745c5c3_Err != nil {
3690 return templ_7745c5c3_Err3691 return templ_7745c5c3_Err
3691 }3692 }
3692- var templ_7745c5c3_Var181 string3693+ var templ_7745c5c3_Var180 string
3693- templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)3694+ templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3694 if templ_7745c5c3_Err != nil {3695 if templ_7745c5c3_Err != nil {
3695- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 697, Col: 47}3696+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 700, Col: 47}
3696 }3697 }
3697- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))3698+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))
3698 if templ_7745c5c3_Err != nil {3699 if templ_7745c5c3_Err != nil {
3699 return templ_7745c5c3_Err3700 return templ_7745c5c3_Err
3700 }3701 }
3701- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, ".</p>")3702+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, ".</p>")
3702 if templ_7745c5c3_Err != nil {3703 if templ_7745c5c3_Err != nil {
3703 return templ_7745c5c3_Err3704 return templ_7745c5c3_Err
3704 }3705 }
3705 }3706 }
3706- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "</section>")3707+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</section>")
3707 if templ_7745c5c3_Err != nil {3708 if templ_7745c5c3_Err != nil {
3708 return templ_7745c5c3_Err3709 return templ_7745c5c3_Err
3709 }3710 }
3710 if p.HasDiff {3711 if p.HasDiff {
3711- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")3712+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
3712 if templ_7745c5c3_Err != nil {3713 if templ_7745c5c3_Err != nil {
3713 return templ_7745c5c3_Err3714 return templ_7745c5c3_Err
3714 }3715 }
3715- var templ_7745c5c3_Var182 string3716+ var templ_7745c5c3_Var181 string
3716- templ_7745c5c3_Var182, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))3717+ templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
3717 if templ_7745c5c3_Err != nil {3718 if templ_7745c5c3_Err != nil {
3718- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 702, Col: 66}3719+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 705, Col: 66}
3719 }3720 }
3720- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var182))3721+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))
3721 if templ_7745c5c3_Err != nil {3722 if templ_7745c5c3_Err != nil {
3722 return templ_7745c5c3_Err3723 return templ_7745c5c3_Err
3723 }3724 }
3724- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</span></h2>")3725+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "</span></h2>")
3725 if templ_7745c5c3_Err != nil {3726 if templ_7745c5c3_Err != nil {
3726 return templ_7745c5c3_Err3727 return templ_7745c5c3_Err
3727 }3728 }
@@ -3729,12 +3730,12 @@ func compareRail(p ComparePage) templ.Component {
3729 if templ_7745c5c3_Err != nil {3730 if templ_7745c5c3_Err != nil {
3730 return templ_7745c5c3_Err3731 return templ_7745c5c3_Err
3731 }3732 }
3732- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "</section>")3733+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")
3733 if templ_7745c5c3_Err != nil {3734 if templ_7745c5c3_Err != nil {
3734 return templ_7745c5c3_Err3735 return templ_7745c5c3_Err
3735 }3736 }
3736 }3737 }
3737- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")3738+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 346, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")
3738 if templ_7745c5c3_Err != nil {3739 if templ_7745c5c3_Err != nil {
3739 return templ_7745c5c3_Err3740 return templ_7745c5c3_Err
3740 }3741 }
@@ -3742,7 +3743,7 @@ func compareRail(p ComparePage) templ.Component {
3742 if templ_7745c5c3_Err != nil {3743 if templ_7745c5c3_Err != nil {
3743 return templ_7745c5c3_Err3744 return templ_7745c5c3_Err
3744 }3745 }
3745- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")3746+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 347, "</section>")
3746 if templ_7745c5c3_Err != nil {3747 if templ_7745c5c3_Err != nil {
3747 return templ_7745c5c3_Err3748 return templ_7745c5c3_Err
3748 }3749 }
M internal/adapters/web/static/css/60-mr.css +6 -0
@@ -50,6 +50,12 @@
5050 & .kv { margin: 0; }
5151 }
5252 .mmenu {
53+ & .menu-pop { box-sizing: border-box; min-width: 0; overflow-wrap: anywhere; }
54+ & .menu-pop > *, & form, & .d-modes, & .d-btns { min-width: 0; max-width: 100%; box-sizing: border-box; }
55+ & .d-acts { display: grid; gap: var(--s3); }
56+ & .d-modes label, & .d-check { min-width: 0; }
57+ & code { overflow-wrap: anywhere; }
58+ & .d-btns .btn { min-width: 0; max-width: 100%; white-space: normal; }
5359 & .d-modes { display: grid; gap: var(--s1); border: 0; padding: 0; margin: 0; }
5460 & .d-modes label, & .d-check {
5561 display: flex; gap: var(--s2); align-items: center; padding: 4px var(--s2); margin: 0 calc(-1 * var(--s2));
@@ -50,6 +50,12 @@
50 & .kv { margin: 0; }50 & .kv { margin: 0; }
51 }51 }
52 .mmenu {52 .mmenu {
53+ & .menu-pop { box-sizing: border-box; min-width: 0; overflow-wrap: anywhere; }
54+ & .menu-pop > *, & form, & .d-modes, & .d-btns { min-width: 0; max-width: 100%; box-sizing: border-box; }
55+ & .d-acts { display: grid; gap: var(--s3); }
56+ & .d-modes label, & .d-check { min-width: 0; }
57+ & code { overflow-wrap: anywhere; }
58+ & .d-btns .btn { min-width: 0; max-width: 100%; white-space: normal; }
53 & .d-modes { display: grid; gap: var(--s1); border: 0; padding: 0; margin: 0; }59 & .d-modes { display: grid; gap: var(--s1); border: 0; padding: 0; margin: 0; }
54 & .d-modes label, & .d-check {60 & .d-modes label, & .d-check {
55 display: flex; gap: var(--s2); align-items: center; padding: 4px var(--s2); margin: 0 calc(-1 * var(--s2));61 display: flex; gap: var(--s2); align-items: center; padding: 4px var(--s2); margin: 0 calc(-1 * var(--s2));
M internal/adapters/web/static/js/mr.js +4 -0
@@ -291,6 +291,10 @@ window.ermiteMR = (() => {
291291 let folded = false;
292292 try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ }
293293 if (folded) foldFiles(true);
294+ // The page answers a refused action from the address of the action: show
295+ // the address of the request, so that a reload does not post again.
296+ const canonical = $('#diffs[data-canonical]')?.dataset.canonical;
297+ if (canonical && location.pathname !== canonical) history.replaceState(history.state, '', canonical + location.hash);
294298 watch();
295299 // A link to a file or a comment that is not loaded yet.
296300 const hash = () => {
@@ -291,6 +291,10 @@ window.ermiteMR = (() => {
291 let folded = false;291 let folded = false;
292 try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ }292 try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ }
293 if (folded) foldFiles(true);293 if (folded) foldFiles(true);
294+ // The page answers a refused action from the address of the action: show
295+ // the address of the request, so that a reload does not post again.
296+ const canonical = $('#diffs[data-canonical]')?.dataset.canonical;
297+ if (canonical && location.pathname !== canonical) history.replaceState(history.state, '', canonical + location.hash);
294 watch();298 watch();
295 // A link to a file or a comment that is not loaded yet.299 // A link to a file or a comment that is not loaded yet.
296 const hash = () => {300 const hash = () => {
M internal/app/web_mr_test.go +4 -1
@@ -466,6 +466,9 @@ func TestWebMergeRequestDraft(t *testing.T) {
466466
467467 res := b.form("/proj/merge-requests/1/merge", token, url.Values{"mode": {"fast-forward"}, "head_id": {head}})
468468 assert.Equal(t, http.StatusConflict, res.status, "a draft is not merged")
469+ assert.Contains(t, res.body, `data-canonical="/proj/merge-requests/1"`, "the refused page names its own address")
470+ assert.Contains(t, res.body, `class="d-err"`, "the reason stays inline")
471+ assert.NotContains(t, b.get("/proj/merge-requests/1", as(token)).body, "data-canonical", "the plain page has no marker")
469472
470473 res = b.form("/proj/merge-requests/1/ready", token, nil)
471474 require.Equal(t, http.StatusSeeOther, res.status, res.body)
@@ -775,7 +778,7 @@ func TestWebMergeRequestMergeabilityBadge(t *testing.T) {
775778 assert.Contains(t, body, `name="mode" value="fast-forward" checked`)
776779 assert.NotContains(t, body, `value="fast-forward" checked disabled`)
777780 assert.Contains(t, body, `id="mr-signing"`, "squash and merge commits say who signs them")
778- assert.Contains(t, body, "signed with ermite's own key, generated automatically on first start")
781+ assert.Contains(t, body, "signed with ermite's own key (generated on first start)")
779782 assert.Contains(t, body, "<code>ermite signing-key show</code>")
780783 assert.Contains(t, body, "SHA256:", "the fingerprint of the signing key")
781784 assert.Contains(t, body, `:disabled="`, "the controls follow the badge")
@@ -466,6 +466,9 @@ func TestWebMergeRequestDraft(t *testing.T) {
466 466
467 res := b.form("/proj/merge-requests/1/merge", token, url.Values{"mode": {"fast-forward"}, "head_id": {head}})467 res := b.form("/proj/merge-requests/1/merge", token, url.Values{"mode": {"fast-forward"}, "head_id": {head}})
468 assert.Equal(t, http.StatusConflict, res.status, "a draft is not merged")468 assert.Equal(t, http.StatusConflict, res.status, "a draft is not merged")
469+ assert.Contains(t, res.body, `data-canonical="/proj/merge-requests/1"`, "the refused page names its own address")
470+ assert.Contains(t, res.body, `class="d-err"`, "the reason stays inline")
471+ assert.NotContains(t, b.get("/proj/merge-requests/1", as(token)).body, "data-canonical", "the plain page has no marker")
469 472
470 res = b.form("/proj/merge-requests/1/ready", token, nil)473 res = b.form("/proj/merge-requests/1/ready", token, nil)
471 require.Equal(t, http.StatusSeeOther, res.status, res.body)474 require.Equal(t, http.StatusSeeOther, res.status, res.body)
@@ -775,7 +778,7 @@ func TestWebMergeRequestMergeabilityBadge(t *testing.T) {
775 assert.Contains(t, body, `name="mode" value="fast-forward" checked`)778 assert.Contains(t, body, `name="mode" value="fast-forward" checked`)
776 assert.NotContains(t, body, `value="fast-forward" checked disabled`)779 assert.NotContains(t, body, `value="fast-forward" checked disabled`)
777 assert.Contains(t, body, `id="mr-signing"`, "squash and merge commits say who signs them")780 assert.Contains(t, body, `id="mr-signing"`, "squash and merge commits say who signs them")
778- assert.Contains(t, body, "signed with ermite's own key, generated automatically on first start")781+ assert.Contains(t, body, "signed with ermite's own key (generated on first start)")
779 assert.Contains(t, body, "<code>ermite signing-key show</code>")782 assert.Contains(t, body, "<code>ermite signing-key show</code>")
780 assert.Contains(t, body, "SHA256:", "the fingerprint of the signing key")783 assert.Contains(t, body, "SHA256:", "the fingerprint of the signing key")
781 assert.Contains(t, body, `:disabled="`, "the controls follow the badge")784 assert.Contains(t, body, `:disabled="`, "the controls follow the badge")

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 46

↑↓ moveenter openesc close