detached 1b45752

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

commit
1b457529c92e378d1102b4114238bdfc2b7b9d4d
author
brice · · 2026-10-19 14:30 UTC
committer
brice · · 2026-10-19 18:30 UTC
parent
b5b4bf9
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
@@ -187,6 +187,9 @@ templ MergeRequest(l Layout, p MRPage) {
187187 <div
188188 id="diffs"
189189 data-mr
190+ if p.Canonical != "" {
191+ data-canonical={ p.Canonical }
192+ }
190193 if p.Both {
191194 data-diff={ p.View }
192195 } 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 {
@@ -187,6 +187,9 @@ templ MergeRequest(l Layout, p MRPage) {
187 <div187 <div
188 id="diffs"188 id="diffs"
189 data-mr189 data-mr
190+ if p.Canonical != "" {
191+ data-canonical={ p.Canonical }
192+ }
190 if p.Both {193 if p.Both {
191 data-diff={ p.View }194 data-diff={ p.View }
192 } else {195 } 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: 191, Col: 22}
1036+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 191, 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: 193, Col: 22}
1055+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 194, 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: 196, 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: 206, Col: 97}
1113+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 209, 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: 206, Col: 126}
1126+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 209, 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: 224, Col: 31}
1207+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 227, 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: 224, Col: 40}
1220+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 227, 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: 226, Col: 8}
1234+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 229, 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: 245, Col: 42}
1315+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 248, 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: 245, Col: 81}
1328+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 248, 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: 247, Col: 33}
1351+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, 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: 249, 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: 249, Col: 49}
1365+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 249, Col: 65}
1378+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 249, Col: 76}
1391+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 252, Col: 9}
1404+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 258, Col: 47}
1449+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 261, 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: 261, 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: 282, Col: 36}
1537+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 285, 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: 285, Col: 31}
1556+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 288, 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: 288, Col: 65}
1575+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 291, 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: 291, Col: 92}
1594+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, 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: 291, Col: 153}
1607+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, 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: 291, Col: 209}
1620+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, 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: 294, Col: 96}
1639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, 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: 294, Col: 159}
1652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, 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: 305, Col: 77}
1691+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 308, 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: 306, Col: 74}
1704+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 309, 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: 308, Col: 66}
1722+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 311, 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: 310, Col: 55}
1740+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, 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: 325, Col: 67}
1795+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 328, 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: 326, Col: 28}
1808+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, 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: 326, Col: 40}
1821+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, 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: 328, Col: 21}
1834+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 331, 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: 343, Col: 50}
1873+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 346, 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: 344, Col: 50}
1886+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 347, 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: 345, Col: 50}
1899+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 348, 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: 346, Col: 86}
1912+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 349, 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: 349, Col: 57}
1931+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 352, 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: 355, Col: 56}
1956+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, 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: 360, Col: 49}
1979+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 363, 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: 369, Col: 49}
2026+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 372, 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: 382, Col: 37}
2057+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, 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: 382, Col: 50}
2070+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, 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: 382, Col: 63}
2083+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, 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: 393, Col: 71}
2120+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 396, 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: 397, Col: 36}
2148+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, 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: 397, Col: 48}
2161+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, 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: 398, Col: 32}
2174+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 401, 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: 403, Col: 16}
2197+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, 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: 405, Col: 15}
2211+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, 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: 405, Col: 42}
2224+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, 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: 405, Col: 53}
2237+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, 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: 408, Col: 18}
2252+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 411, 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: 418, Col: 34}
2282+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 421, 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: 425, Col: 36}
2300+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 428, 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: 444, Col: 55}
2361+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 447, 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: 444, Col: 95}
2374+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 447, 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: 444, Col: 140}
2387+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 447, 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 }
@@ -2379,7 +2398,7 @@ func mrBar(p MRPage) templ.Component {
23792398 if templ_7745c5c3_Err != nil {
23802399 return templ_7745c5c3_Err
23812400 }
2382- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<span class=\"grow\"></span>")
2401+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "<span class=\"grow\"></span>")
23832402 if templ_7745c5c3_Err != nil {
23842403 return templ_7745c5c3_Err
23852404 }
@@ -2392,7 +2411,7 @@ func mrBar(p MRPage) templ.Component {
23922411 if templ_7745c5c3_Err != nil {
23932412 return templ_7745c5c3_Err
23942413 }
2395- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, " ")
2414+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, " ")
23962415 if templ_7745c5c3_Err != nil {
23972416 return templ_7745c5c3_Err
23982417 }
@@ -2401,7 +2420,7 @@ func mrBar(p MRPage) templ.Component {
24012420 return templ_7745c5c3_Err
24022421 }
24032422 }
2404- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "</div>")
2423+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "</div>")
24052424 if templ_7745c5c3_Err != nil {
24062425 return templ_7745c5c3_Err
24072426 }
@@ -2433,107 +2452,107 @@ func mergeMenu(p MRPage) templ.Component {
24332452 }()
24342453 }
24352454 ctx = templ.InitializeContext(ctx)
2436- templ_7745c5c3_Var116 := templ.GetChildren(ctx)
2437- if templ_7745c5c3_Var116 == nil {
2438- templ_7745c5c3_Var116 = templ.NopComponent
2455+ templ_7745c5c3_Var117 := templ.GetChildren(ctx)
2456+ if templ_7745c5c3_Var117 == nil {
2457+ templ_7745c5c3_Var117 = templ.NopComponent
24392458 }
24402459 ctx = templ.ClearChildren(ctx)
2441- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")
2460+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")
24422461 if templ_7745c5c3_Err != nil {
24432462 return templ_7745c5c3_Err
24442463 }
24452464 if p.Box.Error != "" {
2446- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, " open")
2465+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, " open")
24472466 if templ_7745c5c3_Err != nil {
24482467 return templ_7745c5c3_Err
24492468 }
24502469 }
2451- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")
2470+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")
24522471 if templ_7745c5c3_Err != nil {
24532472 return templ_7745c5c3_Err
24542473 }
24552474 if p.Box.ReadyAction != "" {
2456- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "Draft ")
2475+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "Draft ")
24572476 if templ_7745c5c3_Err != nil {
24582477 return templ_7745c5c3_Err
24592478 }
24602479 } else {
2461- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "Merge ")
2480+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "Merge ")
24622481 if templ_7745c5c3_Err != nil {
24632482 return templ_7745c5c3_Err
24642483 }
24652484 }
2466- 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>")
2485+ 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>")
24672486 if templ_7745c5c3_Err != nil {
24682487 return templ_7745c5c3_Err
24692488 }
24702489 if p.Box.HeadGone {
2471- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "gone: the source branch was deleted")
2490+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "gone: the source branch was deleted")
24722491 if templ_7745c5c3_Err != nil {
24732492 return templ_7745c5c3_Err
24742493 }
24752494 } else {
2476- var templ_7745c5c3_Var117 string
2477- templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)
2495+ var templ_7745c5c3_Var118 string
2496+ templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)
24782497 if templ_7745c5c3_Err != nil {
2479- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 19}
2498+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 483, Col: 19}
24802499 }
2481- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117))
2500+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))
24822501 if templ_7745c5c3_Err != nil {
24832502 return templ_7745c5c3_Err
24842503 }
24852504 }
2486- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "</dd><dt>into</dt><dd>")
2505+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</dd><dt>into</dt><dd>")
24872506 if templ_7745c5c3_Err != nil {
24882507 return templ_7745c5c3_Err
24892508 }
2490- var templ_7745c5c3_Var118 string
2491- templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2509+ var templ_7745c5c3_Var119 string
2510+ templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
24922511 if templ_7745c5c3_Err != nil {
2493- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 484, Col: 18}
2512+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 18}
24942513 }
2495- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))
2514+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))
24962515 if templ_7745c5c3_Err != nil {
24972516 return templ_7745c5c3_Err
24982517 }
2499- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</dd></dl>")
2518+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</dd></dl>")
25002519 if templ_7745c5c3_Err != nil {
25012520 return templ_7745c5c3_Err
25022521 }
25032522 if p.Box.Error != "" {
2504- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "<p class=\"d-err\" role=\"alert\">")
2523+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<p class=\"d-err\" role=\"alert\">")
25052524 if templ_7745c5c3_Err != nil {
25062525 return templ_7745c5c3_Err
25072526 }
2508- var templ_7745c5c3_Var119 string
2509- templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)
2527+ var templ_7745c5c3_Var120 string
2528+ templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)
25102529 if templ_7745c5c3_Err != nil {
2511- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 47}
2530+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 490, Col: 47}
25122531 }
2513- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))
2532+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))
25142533 if templ_7745c5c3_Err != nil {
25152534 return templ_7745c5c3_Err
25162535 }
2517- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</p>")
2536+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "</p>")
25182537 if templ_7745c5c3_Err != nil {
25192538 return templ_7745c5c3_Err
25202539 }
25212540 }
25222541 if p.Box.ReadyAction != "" {
2523- 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=\"")
2542+ 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=\"")
25242543 if templ_7745c5c3_Err != nil {
25252544 return templ_7745c5c3_Err
25262545 }
2527- var templ_7745c5c3_Var120 templ.SafeURL
2528- templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))
2546+ var templ_7745c5c3_Var121 templ.SafeURL
2547+ templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))
25292548 if templ_7745c5c3_Err != nil {
2530- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 491, Col: 80}
2549+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 494, Col: 80}
25312550 }
2532- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))
2551+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))
25332552 if templ_7745c5c3_Err != nil {
25342553 return templ_7745c5c3_Err
25352554 }
2536- 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>")
2555+ 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>")
25372556 if templ_7745c5c3_Err != nil {
25382557 return templ_7745c5c3_Err
25392558 }
@@ -2542,232 +2561,214 @@ func mergeMenu(p MRPage) templ.Component {
25422561 if templ_7745c5c3_Err != nil {
25432562 return templ_7745c5c3_Err
25442563 }
2545- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, " <form class=\"d-acts\" method=\"post\" action=\"")
2564+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, " <form class=\"d-acts\" method=\"post\" action=\"")
25462565 if templ_7745c5c3_Err != nil {
25472566 return templ_7745c5c3_Err
25482567 }
2549- var templ_7745c5c3_Var121 templ.SafeURL
2550- templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))
2568+ var templ_7745c5c3_Var122 templ.SafeURL
2569+ templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))
25512570 if templ_7745c5c3_Err != nil {
2552- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 496, Col: 80}
2571+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 499, Col: 80}
25532572 }
2554- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))
2573+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122))
25552574 if templ_7745c5c3_Err != nil {
25562575 return templ_7745c5c3_Err
25572576 }
2558- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
2577+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
25592578 if templ_7745c5c3_Err != nil {
25602579 return templ_7745c5c3_Err
25612580 }
2562- var templ_7745c5c3_Var122 string
2563- templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
2581+ var templ_7745c5c3_Var123 string
2582+ templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
25642583 if templ_7745c5c3_Err != nil {
2565- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 497, Col: 59}
2584+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 500, Col: 59}
25662585 }
2567- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122)
2586+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)
25682587 if templ_7745c5c3_Err != nil {
25692588 return templ_7745c5c3_Err
25702589 }
2571- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")
2590+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")
25722591 if templ_7745c5c3_Err != nil {
25732592 return templ_7745c5c3_Err
25742593 }
25752594 for i, m := range p.Box.Modes {
2576- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<label><input type=\"radio\" name=\"mode\" value=\"")
2595+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "<label><input type=\"radio\" name=\"mode\" value=\"")
25772596 if templ_7745c5c3_Err != nil {
25782597 return templ_7745c5c3_Err
25792598 }
2580- var templ_7745c5c3_Var123 string
2581- templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)
2599+ var templ_7745c5c3_Var124 string
2600+ templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)
25822601 if templ_7745c5c3_Err != nil {
2583- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 24}
2602+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 24}
25842603 }
2585- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)
2604+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)
25862605 if templ_7745c5c3_Err != nil {
25872606 return templ_7745c5c3_Err
25882607 }
2589- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"")
2608+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "\"")
25902609 if templ_7745c5c3_Err != nil {
25912610 return templ_7745c5c3_Err
25922611 }
25932612 if i == p.Box.Checked() {
2594- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, " checked")
2613+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " checked")
25952614 if templ_7745c5c3_Err != nil {
25962615 return templ_7745c5c3_Err
25972616 }
25982617 }
25992618 if m.Disabled {
2600- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, " disabled")
2619+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, " disabled")
26012620 if templ_7745c5c3_Err != nil {
26022621 return templ_7745c5c3_Err
26032622 }
26042623 }
2605- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " title=\"")
2624+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " title=\"")
26062625 if templ_7745c5c3_Err != nil {
26072626 return templ_7745c5c3_Err
26082627 }
2609- var templ_7745c5c3_Var124 string
2610- templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)
2628+ var templ_7745c5c3_Var125 string
2629+ templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)
26112630 if templ_7745c5c3_Err != nil {
2612- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 25}
2631+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 511, Col: 25}
26132632 }
2614- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)
2633+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var125)
26152634 if templ_7745c5c3_Err != nil {
26162635 return templ_7745c5c3_Err
26172636 }
2618- 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\"> ")
2637+ 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\"> ")
26192638 if templ_7745c5c3_Err != nil {
26202639 return templ_7745c5c3_Err
26212640 }
2622- var templ_7745c5c3_Var125 string
2623- templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)
2641+ var templ_7745c5c3_Var126 string
2642+ templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)
26242643 if templ_7745c5c3_Err != nil {
2625- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 512, Col: 17}
2644+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 515, Col: 17}
26262645 }
2627- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125))
2646+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))
26282647 if templ_7745c5c3_Err != nil {
26292648 return templ_7745c5c3_Err
26302649 }
2631- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " ")
2650+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, " ")
26322651 if templ_7745c5c3_Err != nil {
26332652 return templ_7745c5c3_Err
26342653 }
26352654 if i < 9 {
2636- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "<kbd aria-hidden=\"true\">")
2655+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "<kbd aria-hidden=\"true\">")
26372656 if templ_7745c5c3_Err != nil {
26382657 return templ_7745c5c3_Err
26392658 }
2640- var templ_7745c5c3_Var126 string
2641- templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))
2659+ var templ_7745c5c3_Var127 string
2660+ templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))
26422661 if templ_7745c5c3_Err != nil {
2643- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 514, Col: 46}
2662+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 46}
26442663 }
2645- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))
2664+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
26462665 if templ_7745c5c3_Err != nil {
26472666 return templ_7745c5c3_Err
26482667 }
2649- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "</kbd>")
2668+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</kbd>")
26502669 if templ_7745c5c3_Err != nil {
26512670 return templ_7745c5c3_Err
26522671 }
26532672 }
2654- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "</label>")
2673+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "</label>")
26552674 if templ_7745c5c3_Err != nil {
26562675 return templ_7745c5c3_Err
26572676 }
26582677 }
2659- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</fieldset>")
2678+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "</fieldset>")
26602679 if templ_7745c5c3_Err != nil {
26612680 return templ_7745c5c3_Err
26622681 }
26632682 if p.Box.Signed {
2664- 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. ")
2683+ 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). ")
26652684 if templ_7745c5c3_Err != nil {
26662685 return templ_7745c5c3_Err
26672686 }
26682687 if p.Box.Fingerprint != "" {
2669- var templ_7745c5c3_Var127 string
2670- templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2671- if templ_7745c5c3_Err != nil {
2672- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 13}
2673- }
2674- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
2675- if templ_7745c5c3_Err != nil {
2676- return templ_7745c5c3_Err
2677- }
2678- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "key <code>")
2688+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "fingerprint <code>")
26792689 if templ_7745c5c3_Err != nil {
26802690 return templ_7745c5c3_Err
26812691 }
26822692 var templ_7745c5c3_Var128 string
26832693 templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint)
26842694 if templ_7745c5c3_Err != nil {
2685- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 44}
2695+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 45}
26862696 }
26872697 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128))
26882698 if templ_7745c5c3_Err != nil {
26892699 return templ_7745c5c3_Err
26902700 }
2691- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "</code>. ")
2701+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</code> ")
26922702 if templ_7745c5c3_Err != nil {
26932703 return templ_7745c5c3_Err
26942704 }
26952705 }
2696- var templ_7745c5c3_Var129 string
2697- templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2698- if templ_7745c5c3_Err != nil {
2699- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 12}
2700- }
2701- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
2702- if templ_7745c5c3_Err != nil {
2703- return templ_7745c5c3_Err
2704- }
2705- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "<code>ermite signing-key show</code> prints the public key to verify them.</p>")
2706+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "<code>ermite signing-key show</code> prints it.</p>")
27062707 if templ_7745c5c3_Err != nil {
27072708 return templ_7745c5c3_Err
27082709 }
27092710 }
27102711 if p.Box.CanDeleteBranch {
2711- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")
2712+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")
27122713 if templ_7745c5c3_Err != nil {
27132714 return templ_7745c5c3_Err
27142715 }
2715- var templ_7745c5c3_Var130 string
2716- templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
2716+ var templ_7745c5c3_Var129 string
2717+ templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
27172718 if templ_7745c5c3_Err != nil {
2718- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 102}
2719+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 102}
27192720 }
2720- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var130))
2721+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
27212722 if templ_7745c5c3_Err != nil {
27222723 return templ_7745c5c3_Err
27232724 }
2724- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")
2725+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")
27252726 if templ_7745c5c3_Err != nil {
27262727 return templ_7745c5c3_Err
27272728 }
27282729 }
2729- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")
2730+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")
27302731 if templ_7745c5c3_Err != nil {
27312732 return templ_7745c5c3_Err
27322733 }
27332734 if !p.Box.CanMerge() {
2734- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " disabled")
2735+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, " disabled")
27352736 if templ_7745c5c3_Err != nil {
27362737 return templ_7745c5c3_Err
27372738 }
27382739 }
2739- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, " title=\"")
2740+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, " title=\"")
27402741 if templ_7745c5c3_Err != nil {
27412742 return templ_7745c5c3_Err
27422743 }
2743- var templ_7745c5c3_Var131 string
2744- templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())
2744+ var templ_7745c5c3_Var130 string
2745+ templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())
27452746 if templ_7745c5c3_Err != nil {
2746- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 537, Col: 33}
2747+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 33}
27472748 }
2748- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131)
2749+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130)
27492750 if templ_7745c5c3_Err != nil {
27502751 return templ_7745c5c3_Err
27512752 }
2752- 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 ")
2753+ 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 ")
27532754 if templ_7745c5c3_Err != nil {
27542755 return templ_7745c5c3_Err
27552756 }
2756- var templ_7745c5c3_Var132 string
2757- templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2757+ var templ_7745c5c3_Var131 string
2758+ templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
27582759 if templ_7745c5c3_Err != nil {
2759- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 28}
2760+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 543, Col: 28}
27602761 }
2761- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132))
2762+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131))
27622763 if templ_7745c5c3_Err != nil {
27632764 return templ_7745c5c3_Err
27642765 }
2765- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "</button></div></form>")
2766+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "</button></div></form>")
27662767 if templ_7745c5c3_Err != nil {
27672768 return templ_7745c5c3_Err
27682769 }
27692770 }
2770- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</div></details>")
2771+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "</div></details>")
27712772 if templ_7745c5c3_Err != nil {
27722773 return templ_7745c5c3_Err
27732774 }
@@ -2793,182 +2794,182 @@ func MRMergeability(v MergeabilityView) templ.Component {
27932794 }()
27942795 }
27952796 ctx = templ.InitializeContext(ctx)
2796- templ_7745c5c3_Var133 := templ.GetChildren(ctx)
2797- if templ_7745c5c3_Var133 == nil {
2798- templ_7745c5c3_Var133 = templ.NopComponent
2797+ templ_7745c5c3_Var132 := templ.GetChildren(ctx)
2798+ if templ_7745c5c3_Var132 == nil {
2799+ templ_7745c5c3_Var132 = templ.NopComponent
27992800 }
28002801 ctx = templ.ClearChildren(ctx)
2801- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "<span data-mergeability data-state=\"")
2802+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "<span data-mergeability data-state=\"")
2803+ if templ_7745c5c3_Err != nil {
2804+ return templ_7745c5c3_Err
2805+ }
2806+ var templ_7745c5c3_Var133 string
2807+ templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2808+ if templ_7745c5c3_Err != nil {
2809+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 22}
2810+ }
2811+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var133)
2812+ if templ_7745c5c3_Err != nil {
2813+ return templ_7745c5c3_Err
2814+ }
2815+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-ok=\"")
28022816 if templ_7745c5c3_Err != nil {
28032817 return templ_7745c5c3_Err
28042818 }
28052819 var templ_7745c5c3_Var134 string
2806- templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2820+ templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))
28072821 if templ_7745c5c3_Err != nil {
2808- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 553, Col: 22}
2822+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 41}
28092823 }
28102824 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134)
28112825 if templ_7745c5c3_Err != nil {
28122826 return templ_7745c5c3_Err
28132827 }
2814- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "\" data-ff-ok=\"")
2828+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-ok=\"")
28152829 if templ_7745c5c3_Err != nil {
28162830 return templ_7745c5c3_Err
28172831 }
28182832 var templ_7745c5c3_Var135 string
2819- templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))
2833+ templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))
28202834 if templ_7745c5c3_Err != nil {
2821- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 554, Col: 41}
2835+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 558, Col: 47}
28222836 }
28232837 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135)
28242838 if templ_7745c5c3_Err != nil {
28252839 return templ_7745c5c3_Err
28262840 }
2827- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\" data-merge-ok=\"")
2841+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\" data-ff-reason=\"")
28282842 if templ_7745c5c3_Err != nil {
28292843 return templ_7745c5c3_Err
28302844 }
28312845 var templ_7745c5c3_Var136 string
2832- templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))
2846+ templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)
28332847 if templ_7745c5c3_Err != nil {
2834- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 555, Col: 47}
2848+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 29}
28352849 }
28362850 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136)
28372851 if templ_7745c5c3_Err != nil {
28382852 return templ_7745c5c3_Err
28392853 }
2840- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-reason=\"")
2854+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\" data-merge-reason=\"")
28412855 if templ_7745c5c3_Err != nil {
28422856 return templ_7745c5c3_Err
28432857 }
28442858 var templ_7745c5c3_Var137 string
2845- templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)
2859+ templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)
28462860 if templ_7745c5c3_Err != nil {
2847- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 29}
2861+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 560, Col: 35}
28482862 }
28492863 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var137)
28502864 if templ_7745c5c3_Err != nil {
28512865 return templ_7745c5c3_Err
28522866 }
2853- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-reason=\"")
2867+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "\"><span class=\"badge\" data-state=\"")
28542868 if templ_7745c5c3_Err != nil {
28552869 return templ_7745c5c3_Err
28562870 }
28572871 var templ_7745c5c3_Var138 string
2858- templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)
2872+ templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
28592873 if templ_7745c5c3_Err != nil {
2860- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 35}
2874+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 42}
28612875 }
28622876 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var138)
28632877 if templ_7745c5c3_Err != nil {
28642878 return templ_7745c5c3_Err
28652879 }
2866- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\"><span class=\"badge\" data-state=\"")
2880+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "\">")
28672881 if templ_7745c5c3_Err != nil {
28682882 return templ_7745c5c3_Err
28692883 }
28702884 var templ_7745c5c3_Var139 string
2871- templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2872- if templ_7745c5c3_Err != nil {
2873- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 42}
2874- }
2875- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var139)
2876- if templ_7745c5c3_Err != nil {
2877- return templ_7745c5c3_Err
2878- }
2879- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\">")
2880- if templ_7745c5c3_Err != nil {
2881- return templ_7745c5c3_Err
2882- }
2883- var templ_7745c5c3_Var140 string
2884- templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2885+ templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
28852886 if templ_7745c5c3_Err != nil {
2886- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 54}
2887+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 54}
28872888 }
2888- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))
2889+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139))
28892890 if templ_7745c5c3_Err != nil {
28902891 return templ_7745c5c3_Err
28912892 }
2892- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "</span> ")
2893+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span> ")
28932894 if templ_7745c5c3_Err != nil {
28942895 return templ_7745c5c3_Err
28952896 }
28962897 if v.Detail != "" {
2897- var templ_7745c5c3_Var141 string
2898- templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2898+ var templ_7745c5c3_Var140 string
2899+ templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
28992900 if templ_7745c5c3_Err != nil {
2900- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 8}
2901+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 8}
29012902 }
2902- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))
2903+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))
29032904 if templ_7745c5c3_Err != nil {
29042905 return templ_7745c5c3_Err
29052906 }
2906- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "<span class=\"dim\">")
2907+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "<span class=\"dim\">")
29072908 if templ_7745c5c3_Err != nil {
29082909 return templ_7745c5c3_Err
29092910 }
2910- var templ_7745c5c3_Var142 string
2911- templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)
2911+ var templ_7745c5c3_Var141 string
2912+ templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)
29122913 if templ_7745c5c3_Err != nil {
2913- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 38}
2914+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 38}
29142915 }
2915- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))
2916+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))
29162917 if templ_7745c5c3_Err != nil {
29172918 return templ_7745c5c3_Err
29182919 }
2919- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span>")
2920+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "</span>")
29202921 if templ_7745c5c3_Err != nil {
29212922 return templ_7745c5c3_Err
29222923 }
29232924 }
2924- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</span> ")
2925+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "</span> ")
29252926 if templ_7745c5c3_Err != nil {
29262927 return templ_7745c5c3_Err
29272928 }
29282929 if len(v.Paths) > 0 {
2929- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")
2930+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")
29302931 if templ_7745c5c3_Err != nil {
29312932 return templ_7745c5c3_Err
29322933 }
29332934 for _, path := range v.Paths {
2934- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "<li><code>")
2935+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "<li><code>")
29352936 if templ_7745c5c3_Err != nil {
29362937 return templ_7745c5c3_Err
29372938 }
2938- var templ_7745c5c3_Var143 string
2939- templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(path)
2939+ var templ_7745c5c3_Var142 string
2940+ templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(path)
29402941 if templ_7745c5c3_Err != nil {
2941- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 567, Col: 20}
2942+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 20}
29422943 }
2943- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))
2944+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))
29442945 if templ_7745c5c3_Err != nil {
29452946 return templ_7745c5c3_Err
29462947 }
2947- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "</code></li>")
2948+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "</code></li>")
29482949 if templ_7745c5c3_Err != nil {
29492950 return templ_7745c5c3_Err
29502951 }
29512952 }
2952- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "</ul>")
2953+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</ul>")
29532954 if templ_7745c5c3_Err != nil {
29542955 return templ_7745c5c3_Err
29552956 }
29562957 }
29572958 if v.PathsNote != "" {
2958- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "<p class=\"dim\">")
2959+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<p class=\"dim\">")
29592960 if templ_7745c5c3_Err != nil {
29602961 return templ_7745c5c3_Err
29612962 }
2962- var templ_7745c5c3_Var144 string
2963- templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)
2963+ var templ_7745c5c3_Var143 string
2964+ templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)
29642965 if templ_7745c5c3_Err != nil {
2965- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 572, Col: 30}
2966+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 575, Col: 30}
29662967 }
2967- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var144))
2968+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))
29682969 if templ_7745c5c3_Err != nil {
29692970 return templ_7745c5c3_Err
29702971 }
2971- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</p>")
2972+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</p>")
29722973 if templ_7745c5c3_Err != nil {
29732974 return templ_7745c5c3_Err
29742975 }
@@ -2995,12 +2996,12 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
29952996 }()
29962997 }
29972998 ctx = templ.InitializeContext(ctx)
2998- templ_7745c5c3_Var145 := templ.GetChildren(ctx)
2999- if templ_7745c5c3_Var145 == nil {
3000- templ_7745c5c3_Var145 = templ.NopComponent
2999+ templ_7745c5c3_Var144 := templ.GetChildren(ctx)
3000+ if templ_7745c5c3_Var144 == nil {
3001+ templ_7745c5c3_Var144 = templ.NopComponent
30013002 }
30023003 ctx = templ.ClearChildren(ctx)
3003- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")
3004+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")
30043005 if templ_7745c5c3_Err != nil {
30053006 return templ_7745c5c3_Err
30063007 }
@@ -3008,7 +3009,7 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
30083009 if templ_7745c5c3_Err != nil {
30093010 return templ_7745c5c3_Err
30103011 }
3011- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</div>")
3012+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "</div>")
30123013 if templ_7745c5c3_Err != nil {
30133014 return templ_7745c5c3_Err
30143015 }
@@ -3033,9 +3034,9 @@ func MRMergeabilityFragment(v MergeabilityView) templ.Component {
30333034 }()
30343035 }
30353036 ctx = templ.InitializeContext(ctx)
3036- templ_7745c5c3_Var146 := templ.GetChildren(ctx)
3037- if templ_7745c5c3_Var146 == nil {
3038- templ_7745c5c3_Var146 = templ.NopComponent
3037+ templ_7745c5c3_Var145 := templ.GetChildren(ctx)
3038+ if templ_7745c5c3_Var145 == nil {
3039+ templ_7745c5c3_Var145 = templ.NopComponent
30393040 }
30403041 ctx = templ.ClearChildren(ctx)
30413042 templ_7745c5c3_Err = mrMergeabilitySlot(v).Render(ctx, templ_7745c5c3_Buffer)
@@ -3064,66 +3065,66 @@ func moreMenu(p MRPage) templ.Component {
30643065 }()
30653066 }
30663067 ctx = templ.InitializeContext(ctx)
3067- templ_7745c5c3_Var147 := templ.GetChildren(ctx)
3068- if templ_7745c5c3_Var147 == nil {
3069- templ_7745c5c3_Var147 = templ.NopComponent
3068+ templ_7745c5c3_Var146 := templ.GetChildren(ctx)
3069+ if templ_7745c5c3_Var146 == nil {
3070+ templ_7745c5c3_Var146 = templ.NopComponent
30703071 }
30713072 ctx = templ.ClearChildren(ctx)
3072- 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\">")
3073+ 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\">")
30733074 if templ_7745c5c3_Err != nil {
30743075 return templ_7745c5c3_Err
30753076 }
30763077 if p.Box.CanMarkRead {
3077- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "<form method=\"post\" action=\"")
3078+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "<form method=\"post\" action=\"")
30783079 if templ_7745c5c3_Err != nil {
30793080 return templ_7745c5c3_Err
30803081 }
3081- var templ_7745c5c3_Var148 templ.SafeURL
3082- templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))
3082+ var templ_7745c5c3_Var147 templ.SafeURL
3083+ templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))
30833084 if templ_7745c5c3_Err != nil {
3084- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 596, Col: 64}
3085+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 599, Col: 64}
30853086 }
3086- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var148))
3087+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147))
30873088 if templ_7745c5c3_Err != nil {
30883089 return templ_7745c5c3_Err
30893090 }
3090- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
3091+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
30913092 if templ_7745c5c3_Err != nil {
30923093 return templ_7745c5c3_Err
30933094 }
3094- var templ_7745c5c3_Var149 string
3095- templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
3095+ var templ_7745c5c3_Var148 string
3096+ templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
30963097 if templ_7745c5c3_Err != nil {
3097- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 597, Col: 59}
3098+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 600, Col: 59}
30983099 }
3099- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149)
3100+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148)
31003101 if templ_7745c5c3_Err != nil {
31013102 return templ_7745c5c3_Err
31023103 }
3103- 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>")
3104+ 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>")
31043105 if templ_7745c5c3_Err != nil {
31053106 return templ_7745c5c3_Err
31063107 }
31073108 }
3108- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "<form method=\"post\" action=\"")
3109+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<form method=\"post\" action=\"")
31093110 if templ_7745c5c3_Err != nil {
31103111 return templ_7745c5c3_Err
31113112 }
3112- var templ_7745c5c3_Var150 templ.SafeURL
3113- templ_7745c5c3_Var150, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))
3113+ var templ_7745c5c3_Var149 templ.SafeURL
3114+ templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))
31143115 if templ_7745c5c3_Err != nil {
3115- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 601, Col: 64}
3116+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 604, Col: 64}
31163117 }
3117- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var150))
3118+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var149))
31183119 if templ_7745c5c3_Err != nil {
31193120 return templ_7745c5c3_Err
31203121 }
3121- 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>")
3122+ 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>")
31223123 if templ_7745c5c3_Err != nil {
31233124 return templ_7745c5c3_Err
31243125 }
31253126 if !p.Box.HeadGone && p.Box.ReadyAction == "" {
3126- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")
3127+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")
31273128 if templ_7745c5c3_Err != nil {
31283129 return templ_7745c5c3_Err
31293130 }
@@ -3131,12 +3132,12 @@ func moreMenu(p MRPage) templ.Component {
31313132 if templ_7745c5c3_Err != nil {
31323133 return templ_7745c5c3_Err
31333134 }
3134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "</details>")
3135+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "</details>")
31353136 if templ_7745c5c3_Err != nil {
31363137 return templ_7745c5c3_Err
31373138 }
31383139 }
3139- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "</div></details>")
3140+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "</div></details>")
31403141 if templ_7745c5c3_Err != nil {
31413142 return templ_7745c5c3_Err
31423143 }
@@ -3160,12 +3161,12 @@ func Compare(l Layout, p ComparePage) templ.Component {
31603161 }()
31613162 }
31623163 ctx = templ.InitializeContext(ctx)
3163- templ_7745c5c3_Var151 := templ.GetChildren(ctx)
3164- if templ_7745c5c3_Var151 == nil {
3165- templ_7745c5c3_Var151 = templ.NopComponent
3164+ templ_7745c5c3_Var150 := templ.GetChildren(ctx)
3165+ if templ_7745c5c3_Var150 == nil {
3166+ templ_7745c5c3_Var150 = templ.NopComponent
31663167 }
31673168 ctx = templ.ClearChildren(ctx)
3168- templ_7745c5c3_Var152 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
3169+ templ_7745c5c3_Var151 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
31693170 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
31703171 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
31713172 if !templ_7745c5c3_IsBuffer {
@@ -3177,263 +3178,263 @@ func Compare(l Layout, p ComparePage) templ.Component {
31773178 }()
31783179 }
31793180 ctx = templ.InitializeContext(ctx)
3180- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "<header class=\"show mr-h\"><h1>")
3181+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "<header class=\"show mr-h\"><h1>")
31813182 if templ_7745c5c3_Err != nil {
31823183 return templ_7745c5c3_Err
31833184 }
3184- var templ_7745c5c3_Var153 string
3185- templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3185+ var templ_7745c5c3_Var152 string
3186+ templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
31863187 if templ_7745c5c3_Err != nil {
3187- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 17}
3188+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 17}
31883189 }
3189- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))
3190+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152))
31903191 if templ_7745c5c3_Err != nil {
31913192 return templ_7745c5c3_Err
31923193 }
3193- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, " → ")
3194+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, " → ")
31943195 if templ_7745c5c3_Err != nil {
31953196 return templ_7745c5c3_Err
31963197 }
3197- var templ_7745c5c3_Var154 string
3198- templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3198+ var templ_7745c5c3_Var153 string
3199+ templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
31993200 if templ_7745c5c3_Err != nil {
3200- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 34}
3201+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 34}
32013202 }
3202- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))
3203+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))
32033204 if templ_7745c5c3_Err != nil {
32043205 return templ_7745c5c3_Err
32053206 }
3206- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")
3207+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")
32073208 if templ_7745c5c3_Err != nil {
32083209 return templ_7745c5c3_Err
32093210 }
3210- var templ_7745c5c3_Var155 templ.SafeURL
3211- templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))
3211+ var templ_7745c5c3_Var154 templ.SafeURL
3212+ templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))
32123213 if templ_7745c5c3_Err != nil {
3213- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 45}
3214+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 45}
32143215 }
3215- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))
3216+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))
32163217 if templ_7745c5c3_Err != nil {
32173218 return templ_7745c5c3_Err
32183219 }
3219- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "\">")
3220+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")
32203221 if templ_7745c5c3_Err != nil {
32213222 return templ_7745c5c3_Err
32223223 }
3223- var templ_7745c5c3_Var156 string
3224- templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3224+ var templ_7745c5c3_Var155 string
3225+ templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
32253226 if templ_7745c5c3_Err != nil {
3226- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 58}
3227+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 58}
32273228 }
3228- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))
3229+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))
32293230 if templ_7745c5c3_Err != nil {
32303231 return templ_7745c5c3_Err
32313232 }
3232- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</a></dd><dt>target</dt><dd><a href=\"")
3233+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>target</dt><dd><a href=\"")
32333234 if templ_7745c5c3_Err != nil {
32343235 return templ_7745c5c3_Err
32353236 }
3236- var templ_7745c5c3_Var157 templ.SafeURL
3237- templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))
3237+ var templ_7745c5c3_Var156 templ.SafeURL
3238+ templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))
32383239 if templ_7745c5c3_Err != nil {
3239- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 45}
3240+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 45}
32403241 }
3241- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))
3242+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))
32423243 if templ_7745c5c3_Err != nil {
32433244 return templ_7745c5c3_Err
32443245 }
3245- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")
3246+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "\">")
32463247 if templ_7745c5c3_Err != nil {
32473248 return templ_7745c5c3_Err
32483249 }
3249- var templ_7745c5c3_Var158 string
3250- templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3250+ var templ_7745c5c3_Var157 string
3251+ templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
32513252 if templ_7745c5c3_Err != nil {
3252- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 58}
3253+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 58}
32533254 }
3254- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))
3255+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))
32553256 if templ_7745c5c3_Err != nil {
32563257 return templ_7745c5c3_Err
32573258 }
3258- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>ahead</dt><dd>")
3259+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "</a></dd><dt>ahead</dt><dd>")
32593260 if templ_7745c5c3_Err != nil {
32603261 return templ_7745c5c3_Err
32613262 }
3262- var templ_7745c5c3_Var159 string
3263- templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)
3263+ var templ_7745c5c3_Var158 string
3264+ templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)
32643265 if templ_7745c5c3_Err != nil {
3265- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 624, Col: 21}
3266+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 627, Col: 21}
32663267 }
3267- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))
3268+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))
32683269 if templ_7745c5c3_Err != nil {
32693270 return templ_7745c5c3_Err
32703271 }
3271- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "</dd></dl></header>")
3272+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</dd></dl></header>")
32723273 if templ_7745c5c3_Err != nil {
32733274 return templ_7745c5c3_Err
32743275 }
32753276 if p.Note != "" {
3276- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "<p class=\"notice\">")
3277+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "<p class=\"notice\">")
32773278 if templ_7745c5c3_Err != nil {
32783279 return templ_7745c5c3_Err
32793280 }
3280- var templ_7745c5c3_Var160 string
3281- templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
3281+ var templ_7745c5c3_Var159 string
3282+ templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
32823283 if templ_7745c5c3_Err != nil {
3283- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 628, Col: 29}
3284+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 29}
32843285 }
3285- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))
3286+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))
32863287 if templ_7745c5c3_Err != nil {
32873288 return templ_7745c5c3_Err
32883289 }
3289- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</p>")
3290+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "</p>")
32903291 if templ_7745c5c3_Err != nil {
32913292 return templ_7745c5c3_Err
32923293 }
32933294 }
3294- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, " ")
3295+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, " ")
32953296 if templ_7745c5c3_Err != nil {
32963297 return templ_7745c5c3_Err
32973298 }
32983299 if p.Existing != nil {
3299- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")
3300+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")
33003301 if templ_7745c5c3_Err != nil {
33013302 return templ_7745c5c3_Err
33023303 }
3303- var templ_7745c5c3_Var161 templ.SafeURL
3304- templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))
3304+ var templ_7745c5c3_Var160 templ.SafeURL
3305+ templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))
33053306 if templ_7745c5c3_Err != nil {
3306- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 114}
3307+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 114}
33073308 }
3308- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))
3309+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))
33093310 if templ_7745c5c3_Err != nil {
33103311 return templ_7745c5c3_Err
33113312 }
3312- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, "\">")
3313+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, "\">")
33133314 if templ_7745c5c3_Err != nil {
33143315 return templ_7745c5c3_Err
33153316 }
3316- var templ_7745c5c3_Var162 string
3317- templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)
3317+ var templ_7745c5c3_Var161 string
3318+ templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)
33183319 if templ_7745c5c3_Err != nil {
3319- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 135}
3320+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 135}
33203321 }
3321- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))
3322+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))
33223323 if templ_7745c5c3_Err != nil {
33233324 return templ_7745c5c3_Err
33243325 }
3325- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "</a></p>")
3326+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "</a></p>")
33263327 if templ_7745c5c3_Err != nil {
33273328 return templ_7745c5c3_Err
33283329 }
33293330 }
3330- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, " ")
3331+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, " ")
33313332 if templ_7745c5c3_Err != nil {
33323333 return templ_7745c5c3_Err
33333334 }
33343335 if p.Create != nil {
3335- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "<form class=\"cform create\" method=\"post\" action=\"")
3336+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "<form class=\"cform create\" method=\"post\" action=\"")
33363337 if templ_7745c5c3_Err != nil {
33373338 return templ_7745c5c3_Err
33383339 }
3339- var templ_7745c5c3_Var163 templ.SafeURL
3340- templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))
3340+ var templ_7745c5c3_Var162 templ.SafeURL
3341+ templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))
33413342 if templ_7745c5c3_Err != nil {
3342- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 83}
3343+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 637, Col: 83}
33433344 }
3344- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var163))
3345+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))
33453346 if templ_7745c5c3_Err != nil {
33463347 return templ_7745c5c3_Err
33473348 }
3348- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, "\"><input type=\"hidden\" name=\"source\" value=\"")
3349+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 309, "\"><input type=\"hidden\" name=\"source\" value=\"")
33493350 if templ_7745c5c3_Err != nil {
33503351 return templ_7745c5c3_Err
33513352 }
3352- var templ_7745c5c3_Var164 string
3353- templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)
3353+ var templ_7745c5c3_Var163 string
3354+ templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)
33543355 if templ_7745c5c3_Err != nil {
3355- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 635, Col: 62}
3356+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 62}
33563357 }
3357- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)
3358+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var163)
33583359 if templ_7745c5c3_Err != nil {
33593360 return templ_7745c5c3_Err
33603361 }
3361- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "\"> <input type=\"hidden\" name=\"target\" value=\"")
3362+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 310, "\"> <input type=\"hidden\" name=\"target\" value=\"")
33623363 if templ_7745c5c3_Err != nil {
33633364 return templ_7745c5c3_Err
33643365 }
3365- var templ_7745c5c3_Var165 string
3366- templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)
3366+ var templ_7745c5c3_Var164 string
3367+ templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)
33673368 if templ_7745c5c3_Err != nil {
3368- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 636, Col: 62}
3369+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 639, Col: 62}
33693370 }
3370- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)
3371+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)
33713372 if templ_7745c5c3_Err != nil {
33723373 return templ_7745c5c3_Err
33733374 }
3374- 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=\"")
3375+ 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=\"")
33753376 if templ_7745c5c3_Err != nil {
33763377 return templ_7745c5c3_Err
33773378 }
3378- var templ_7745c5c3_Var166 string
3379- templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)
3379+ var templ_7745c5c3_Var165 string
3380+ templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)
33803381 if templ_7745c5c3_Err != nil {
3381- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 97}
3382+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 641, Col: 97}
33823383 }
3383- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var166)
3384+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)
33843385 if templ_7745c5c3_Err != nil {
33853386 return templ_7745c5c3_Err
33863387 }
3387- 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>")
3388+ 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>")
33883389 if templ_7745c5c3_Err != nil {
33893390 return templ_7745c5c3_Err
33903391 }
33913392 }
3392- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 311, " ")
3393+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " ")
33933394 if templ_7745c5c3_Err != nil {
33943395 return templ_7745c5c3_Err
33953396 }
33963397 if p.HasDiff {
3397- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 312, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")
3398+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")
33983399 if templ_7745c5c3_Err != nil {
33993400 return templ_7745c5c3_Err
34003401 }
3401- var templ_7745c5c3_Var167 string
3402- templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
3402+ var templ_7745c5c3_Var166 string
3403+ templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
34033404 if templ_7745c5c3_Err != nil {
3404- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 57}
3405+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 57}
34053406 }
3406- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))
3407+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var166))
34073408 if templ_7745c5c3_Err != nil {
34083409 return templ_7745c5c3_Err
34093410 }
3410- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " · <span class=\"plus\">+")
3411+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, " · <span class=\"plus\">+")
34113412 if templ_7745c5c3_Err != nil {
34123413 return templ_7745c5c3_Err
34133414 }
3414- var templ_7745c5c3_Var168 string
3415- templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
3415+ var templ_7745c5c3_Var167 string
3416+ templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
34163417 if templ_7745c5c3_Err != nil {
3417- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 97}
3418+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 97}
34183419 }
3419- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))
3420+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))
34203421 if templ_7745c5c3_Err != nil {
34213422 return templ_7745c5c3_Err
34223423 }
3423- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "</span> <span class=\"minus\">-")
3424+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 316, "</span> <span class=\"minus\">-")
34243425 if templ_7745c5c3_Err != nil {
34253426 return templ_7745c5c3_Err
34263427 }
3427- var templ_7745c5c3_Var169 string
3428- templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
3428+ var templ_7745c5c3_Var168 string
3429+ templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
34293430 if templ_7745c5c3_Err != nil {
3430- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 142}
3431+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 142}
34313432 }
3432- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var169))
3433+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))
34333434 if templ_7745c5c3_Err != nil {
34343435 return templ_7745c5c3_Err
34353436 }
3436- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, "</span></span> <span class=\"grow\"></span>")
3437+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 317, "</span></span> <span class=\"grow\"></span>")
34373438 if templ_7745c5c3_Err != nil {
34383439 return templ_7745c5c3_Err
34393440 }
@@ -3441,64 +3442,64 @@ func Compare(l Layout, p ComparePage) templ.Component {
34413442 if templ_7745c5c3_Err != nil {
34423443 return templ_7745c5c3_Err
34433444 }
3444- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 316, "</div>")
3445+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, "</div>")
34453446 if templ_7745c5c3_Err != nil {
34463447 return templ_7745c5c3_Err
34473448 }
34483449 if p.Invisible {
3449- 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>")
3450+ 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>")
34503451 if templ_7745c5c3_Err != nil {
34513452 return templ_7745c5c3_Err
34523453 }
34533454 }
3454- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, " <div id=\"diffs\"")
3455+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, " <div id=\"diffs\"")
34553456 if templ_7745c5c3_Err != nil {
34563457 return templ_7745c5c3_Err
34573458 }
34583459 if p.Both {
3459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 319, " data-diff=\"")
3460+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-diff=\"")
34603461 if templ_7745c5c3_Err != nil {
34613462 return templ_7745c5c3_Err
34623463 }
3463- var templ_7745c5c3_Var170 string
3464- templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3464+ var templ_7745c5c3_Var169 string
3465+ templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
34653466 if templ_7745c5c3_Err != nil {
3466- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 661, Col: 23}
3467+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 664, Col: 23}
34673468 }
3468- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)
3469+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var169)
34693470 if templ_7745c5c3_Err != nil {
34703471 return templ_7745c5c3_Err
34713472 }
3472- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, "\"")
3473+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")
34733474 if templ_7745c5c3_Err != nil {
34743475 return templ_7745c5c3_Err
34753476 }
34763477 } else {
3477- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-view=\"")
3478+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " data-view=\"")
34783479 if templ_7745c5c3_Err != nil {
34793480 return templ_7745c5c3_Err
34803481 }
3481- var templ_7745c5c3_Var171 string
3482- templ_7745c5c3_Var171, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3482+ var templ_7745c5c3_Var170 string
3483+ templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
34833484 if templ_7745c5c3_Err != nil {
3484- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 663, Col: 23}
3485+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 23}
34853486 }
3486- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var171)
3487+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)
34873488 if templ_7745c5c3_Err != nil {
34883489 return templ_7745c5c3_Err
34893490 }
3490- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")
3491+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, "\"")
34913492 if templ_7745c5c3_Err != nil {
34923493 return templ_7745c5c3_Err
34933494 }
34943495 }
34953496 if p.Both && !p.Pinned {
3496- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
3497+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
34973498 if templ_7745c5c3_Err != nil {
34983499 return templ_7745c5c3_Err
34993500 }
35003501 }
3501- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, ">")
3502+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, ">")
35023503 if templ_7745c5c3_Err != nil {
35033504 return templ_7745c5c3_Err
35043505 }
@@ -3508,14 +3509,14 @@ func Compare(l Layout, p ComparePage) templ.Component {
35083509 return templ_7745c5c3_Err
35093510 }
35103511 }
3511- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, "</div>")
3512+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</div>")
35123513 if templ_7745c5c3_Err != nil {
35133514 return templ_7745c5c3_Err
35143515 }
35153516 }
35163517 return nil
35173518 })
3518- templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var152), templ_7745c5c3_Buffer)
3519+ templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var151), templ_7745c5c3_Buffer)
35193520 if templ_7745c5c3_Err != nil {
35203521 return templ_7745c5c3_Err
35213522 }
@@ -3539,173 +3540,173 @@ func compareRail(p ComparePage) templ.Component {
35393540 }()
35403541 }
35413542 ctx = templ.InitializeContext(ctx)
3542- templ_7745c5c3_Var172 := templ.GetChildren(ctx)
3543- if templ_7745c5c3_Var172 == nil {
3544- templ_7745c5c3_Var172 = templ.NopComponent
3543+ templ_7745c5c3_Var171 := templ.GetChildren(ctx)
3544+ if templ_7745c5c3_Var171 == nil {
3545+ templ_7745c5c3_Var171 = templ.NopComponent
35453546 }
35463547 ctx = templ.ClearChildren(ctx)
3547- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")
3548+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")
35483549 if templ_7745c5c3_Err != nil {
35493550 return templ_7745c5c3_Err
35503551 }
3551- var templ_7745c5c3_Var173 string
3552- templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))
3552+ var templ_7745c5c3_Var172 string
3553+ templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))
35533554 if templ_7745c5c3_Err != nil {
3554- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 67}
3555+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 682, Col: 67}
35553556 }
3556- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))
3557+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172))
35573558 if templ_7745c5c3_Err != nil {
35583559 return templ_7745c5c3_Err
35593560 }
3560- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</span></h2><ul class=\"pcommits\">")
3561+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "</span></h2><ul class=\"pcommits\">")
35613562 if templ_7745c5c3_Err != nil {
35623563 return templ_7745c5c3_Err
35633564 }
35643565 for _, c := range p.Ahead {
3565- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<li><a href=\"")
3566+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "<li><a href=\"")
35663567 if templ_7745c5c3_Err != nil {
35673568 return templ_7745c5c3_Err
35683569 }
3569- var templ_7745c5c3_Var174 templ.SafeURL
3570- templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
3570+ var templ_7745c5c3_Var173 templ.SafeURL
3571+ templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
35713572 if templ_7745c5c3_Err != nil {
3572- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 37}
3573+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 37}
35733574 }
3574- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))
3575+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))
35753576 if templ_7745c5c3_Err != nil {
35763577 return templ_7745c5c3_Err
35773578 }
3578- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "\">")
3579+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "\">")
35793580 if templ_7745c5c3_Err != nil {
35803581 return templ_7745c5c3_Err
35813582 }
3582- var templ_7745c5c3_Var175 string
3583- templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
3583+ var templ_7745c5c3_Var174 string
3584+ templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
35843585 if templ_7745c5c3_Err != nil {
3585- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 49}
3586+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 49}
35863587 }
3587- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))
3588+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))
35883589 if templ_7745c5c3_Err != nil {
35893590 return templ_7745c5c3_Err
35903591 }
3591- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "</a> <span class=\"s\">")
3592+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, "</a> <span class=\"s\">")
35923593 if templ_7745c5c3_Err != nil {
35933594 return templ_7745c5c3_Err
35943595 }
3595- var templ_7745c5c3_Var176 string
3596- templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
3596+ var templ_7745c5c3_Var175 string
3597+ templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
35973598 if templ_7745c5c3_Err != nil {
3598- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 684, Col: 32}
3599+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 687, Col: 32}
35993600 }
3600- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))
3601+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))
36013602 if templ_7745c5c3_Err != nil {
36023603 return templ_7745c5c3_Err
36033604 }
3604- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "</span> <span class=\"mute\">")
3605+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "</span> <span class=\"mute\">")
36053606 if templ_7745c5c3_Err != nil {
36063607 return templ_7745c5c3_Err
36073608 }
3608- var templ_7745c5c3_Var177 string
3609- templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
3609+ var templ_7745c5c3_Var176 string
3610+ templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
36103611 if templ_7745c5c3_Err != nil {
3611- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 16}
3612+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 689, Col: 16}
36123613 }
3613- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))
3614+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))
36143615 if templ_7745c5c3_Err != nil {
36153616 return templ_7745c5c3_Err
36163617 }
3617- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, " ")
3618+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, " ")
36183619 if templ_7745c5c3_Err != nil {
36193620 return templ_7745c5c3_Err
36203621 }
36213622 if c.WhenAt != "" {
3622- var templ_7745c5c3_Var178 string
3623- templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
3623+ var templ_7745c5c3_Var177 string
3624+ templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
36243625 if templ_7745c5c3_Err != nil {
3625- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 15}
3626+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 15}
36263627 }
3627- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var178))
3628+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))
36283629 if templ_7745c5c3_Err != nil {
36293630 return templ_7745c5c3_Err
36303631 }
3631- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "<time datetime=\"")
3632+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "<time datetime=\"")
36323633 if templ_7745c5c3_Err != nil {
36333634 return templ_7745c5c3_Err
36343635 }
3635- var templ_7745c5c3_Var179 string
3636- templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
3636+ var templ_7745c5c3_Var178 string
3637+ templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
36373638 if templ_7745c5c3_Err != nil {
3638- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 42}
3639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 42}
36393640 }
3640- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var179)
3641+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var178)
36413642 if templ_7745c5c3_Err != nil {
36423643 return templ_7745c5c3_Err
36433644 }
3644- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, "\">")
3645+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "\">")
36453646 if templ_7745c5c3_Err != nil {
36463647 return templ_7745c5c3_Err
36473648 }
3648- var templ_7745c5c3_Var180 string
3649- templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
3649+ var templ_7745c5c3_Var179 string
3650+ templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
36503651 if templ_7745c5c3_Err != nil {
3651- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 53}
3652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 53}
36523653 }
3653- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))
3654+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var179))
36543655 if templ_7745c5c3_Err != nil {
36553656 return templ_7745c5c3_Err
36563657 }
3657- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "</time>")
3658+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</time>")
36583659 if templ_7745c5c3_Err != nil {
36593660 return templ_7745c5c3_Err
36603661 }
36613662 }
3662- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "</span></li>")
3663+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "</span></li>")
36633664 if templ_7745c5c3_Err != nil {
36643665 return templ_7745c5c3_Err
36653666 }
36663667 }
3667- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</ul>")
3668+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, "</ul>")
36683669 if templ_7745c5c3_Err != nil {
36693670 return templ_7745c5c3_Err
36703671 }
36713672 if len(p.Ahead) == 0 {
3672- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "<p class=\"dim\">no commit ahead of ")
3673+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "<p class=\"dim\">no commit ahead of ")
36733674 if templ_7745c5c3_Err != nil {
36743675 return templ_7745c5c3_Err
36753676 }
3676- var templ_7745c5c3_Var181 string
3677- templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3677+ var templ_7745c5c3_Var180 string
3678+ templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
36783679 if templ_7745c5c3_Err != nil {
3679- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 695, Col: 47}
3680+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 698, Col: 47}
36803681 }
3681- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))
3682+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))
36823683 if templ_7745c5c3_Err != nil {
36833684 return templ_7745c5c3_Err
36843685 }
3685- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, ".</p>")
3686+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, ".</p>")
36863687 if templ_7745c5c3_Err != nil {
36873688 return templ_7745c5c3_Err
36883689 }
36893690 }
3690- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "</section>")
3691+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</section>")
36913692 if templ_7745c5c3_Err != nil {
36923693 return templ_7745c5c3_Err
36933694 }
36943695 if p.HasDiff {
3695- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
3696+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
36963697 if templ_7745c5c3_Err != nil {
36973698 return templ_7745c5c3_Err
36983699 }
3699- var templ_7745c5c3_Var182 string
3700- templ_7745c5c3_Var182, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
3700+ var templ_7745c5c3_Var181 string
3701+ templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
37013702 if templ_7745c5c3_Err != nil {
3702- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 700, Col: 66}
3703+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 703, Col: 66}
37033704 }
3704- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var182))
3705+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))
37053706 if templ_7745c5c3_Err != nil {
37063707 return templ_7745c5c3_Err
37073708 }
3708- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</span></h2>")
3709+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "</span></h2>")
37093710 if templ_7745c5c3_Err != nil {
37103711 return templ_7745c5c3_Err
37113712 }
@@ -3713,12 +3714,12 @@ func compareRail(p ComparePage) templ.Component {
37133714 if templ_7745c5c3_Err != nil {
37143715 return templ_7745c5c3_Err
37153716 }
3716- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "</section>")
3717+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")
37173718 if templ_7745c5c3_Err != nil {
37183719 return templ_7745c5c3_Err
37193720 }
37203721 }
3721- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")
3722+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 346, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")
37223723 if templ_7745c5c3_Err != nil {
37233724 return templ_7745c5c3_Err
37243725 }
@@ -3726,7 +3727,7 @@ func compareRail(p ComparePage) templ.Component {
37263727 if templ_7745c5c3_Err != nil {
37273728 return templ_7745c5c3_Err
37283729 }
3729- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")
3730+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 347, "</section>")
37303731 if templ_7745c5c3_Err != nil {
37313732 return templ_7745c5c3_Err
37323733 }
@@ -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: 191, Col: 22}1036+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 191, 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: 193, Col: 22}1055+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 194, 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: 196, 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: 206, Col: 97}1113+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 209, 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: 206, Col: 126}1126+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 209, 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: 224, Col: 31}1207+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 227, 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: 224, Col: 40}1220+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 227, 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: 226, Col: 8}1234+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 229, 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: 245, Col: 42}1315+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 248, 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: 245, Col: 81}1328+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 248, 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: 247, Col: 33}1351+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 250, 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: 249, 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: 249, Col: 49}1365+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 249, Col: 65}1378+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 249, Col: 76}1391+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 252, Col: 9}1404+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 252, 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: 258, Col: 47}1449+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 261, 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: 261, 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: 282, Col: 36}1537+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 285, 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: 285, Col: 31}1556+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 288, 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: 288, Col: 65}1575+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 291, 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: 291, Col: 92}1594+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, 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: 291, Col: 153}1607+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, 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: 291, Col: 209}1620+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 294, 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: 294, Col: 96}1639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, 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: 294, Col: 159}1652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 297, 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: 305, Col: 77}1691+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 308, 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: 306, Col: 74}1704+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 309, 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: 308, Col: 66}1722+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 311, 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: 310, Col: 55}1740+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 313, 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: 325, Col: 67}1795+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 328, 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: 326, Col: 28}1808+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, 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: 326, Col: 40}1821+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 329, 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: 328, Col: 21}1834+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 331, 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: 343, Col: 50}1873+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 346, 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: 344, Col: 50}1886+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 347, 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: 345, Col: 50}1899+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 348, 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: 346, Col: 86}1912+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 349, 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: 349, Col: 57}1931+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 352, 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: 355, Col: 56}1956+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 358, 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: 360, Col: 49}1979+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 363, 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: 369, Col: 49}2026+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 372, 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: 382, Col: 37}2057+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, 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: 382, Col: 50}2070+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, 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: 382, Col: 63}2083+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 385, 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: 393, Col: 71}2120+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 396, 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: 397, Col: 36}2148+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, 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: 397, Col: 48}2161+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 400, 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: 398, Col: 32}2174+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 401, 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: 403, Col: 16}2197+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 406, 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: 405, Col: 15}2211+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, 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: 405, Col: 42}2224+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, 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: 405, Col: 53}2237+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 408, 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: 408, Col: 18}2252+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 411, 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: 418, Col: 34}2282+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 421, 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: 425, Col: 36}2300+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 428, 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: 444, Col: 55}2361+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 447, 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: 444, Col: 95}2374+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 447, 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: 444, Col: 140}2387+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 447, 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 }
@@ -2379,7 +2398,7 @@ func mrBar(p MRPage) templ.Component {
2379 if templ_7745c5c3_Err != nil {2398 if templ_7745c5c3_Err != nil {
2380 return templ_7745c5c3_Err2399 return templ_7745c5c3_Err
2381 }2400 }
2382- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 221, "<span class=\"grow\"></span>")2401+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "<span class=\"grow\"></span>")
2383 if templ_7745c5c3_Err != nil {2402 if templ_7745c5c3_Err != nil {
2384 return templ_7745c5c3_Err2403 return templ_7745c5c3_Err
2385 }2404 }
@@ -2392,7 +2411,7 @@ func mrBar(p MRPage) templ.Component {
2392 if templ_7745c5c3_Err != nil {2411 if templ_7745c5c3_Err != nil {
2393 return templ_7745c5c3_Err2412 return templ_7745c5c3_Err
2394 }2413 }
2395- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 222, " ")2414+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, " ")
2396 if templ_7745c5c3_Err != nil {2415 if templ_7745c5c3_Err != nil {
2397 return templ_7745c5c3_Err2416 return templ_7745c5c3_Err
2398 }2417 }
@@ -2401,7 +2420,7 @@ func mrBar(p MRPage) templ.Component {
2401 return templ_7745c5c3_Err2420 return templ_7745c5c3_Err
2402 }2421 }
2403 }2422 }
2404- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 223, "</div>")2423+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, "</div>")
2405 if templ_7745c5c3_Err != nil {2424 if templ_7745c5c3_Err != nil {
2406 return templ_7745c5c3_Err2425 return templ_7745c5c3_Err
2407 }2426 }
@@ -2433,107 +2452,107 @@ func mergeMenu(p MRPage) templ.Component {
2433 }()2452 }()
2434 }2453 }
2435 ctx = templ.InitializeContext(ctx)2454 ctx = templ.InitializeContext(ctx)
2436- templ_7745c5c3_Var116 := templ.GetChildren(ctx)2455+ templ_7745c5c3_Var117 := templ.GetChildren(ctx)
2437- if templ_7745c5c3_Var116 == nil {2456+ if templ_7745c5c3_Var117 == nil {
2438- templ_7745c5c3_Var116 = templ.NopComponent2457+ templ_7745c5c3_Var117 = templ.NopComponent
2439 }2458 }
2440 ctx = templ.ClearChildren(ctx)2459 ctx = templ.ClearChildren(ctx)
2441- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 224, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")2460+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "<details class=\"menu mmenu\" id=\"merge-menu\" data-state=\"open\"")
2442 if templ_7745c5c3_Err != nil {2461 if templ_7745c5c3_Err != nil {
2443 return templ_7745c5c3_Err2462 return templ_7745c5c3_Err
2444 }2463 }
2445 if p.Box.Error != "" {2464 if p.Box.Error != "" {
2446- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 225, " open")2465+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, " open")
2447 if templ_7745c5c3_Err != nil {2466 if templ_7745c5c3_Err != nil {
2448 return templ_7745c5c3_Err2467 return templ_7745c5c3_Err
2449 }2468 }
2450 }2469 }
2451- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 226, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")2470+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "><summary class=\"btn primary\" aria-keyshortcuts=\"Shift+M\">")
2452 if templ_7745c5c3_Err != nil {2471 if templ_7745c5c3_Err != nil {
2453 return templ_7745c5c3_Err2472 return templ_7745c5c3_Err
2454 }2473 }
2455 if p.Box.ReadyAction != "" {2474 if p.Box.ReadyAction != "" {
2456- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 227, "Draft ")2475+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 229, "Draft ")
2457 if templ_7745c5c3_Err != nil {2476 if templ_7745c5c3_Err != nil {
2458 return templ_7745c5c3_Err2477 return templ_7745c5c3_Err
2459 }2478 }
2460 } else {2479 } else {
2461- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 228, "Merge ")2480+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "Merge ")
2462 if templ_7745c5c3_Err != nil {2481 if templ_7745c5c3_Err != nil {
2463 return templ_7745c5c3_Err2482 return templ_7745c5c3_Err
2464 }2483 }
2465 }2484 }
2466- 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>")2485+ 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>")
2467 if templ_7745c5c3_Err != nil {2486 if templ_7745c5c3_Err != nil {
2468 return templ_7745c5c3_Err2487 return templ_7745c5c3_Err
2469 }2488 }
2470 if p.Box.HeadGone {2489 if p.Box.HeadGone {
2471- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 230, "gone: the source branch was deleted")2490+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "gone: the source branch was deleted")
2472 if templ_7745c5c3_Err != nil {2491 if templ_7745c5c3_Err != nil {
2473 return templ_7745c5c3_Err2492 return templ_7745c5c3_Err
2474 }2493 }
2475 } else {2494 } else {
2476- var templ_7745c5c3_Var117 string2495+ var templ_7745c5c3_Var118 string
2477- templ_7745c5c3_Var117, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)2496+ templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadShort)
2478 if templ_7745c5c3_Err != nil {2497 if templ_7745c5c3_Err != nil {
2479- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 480, Col: 19}2498+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 483, Col: 19}
2480 }2499 }
2481- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var117))2500+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))
2482 if templ_7745c5c3_Err != nil {2501 if templ_7745c5c3_Err != nil {
2483 return templ_7745c5c3_Err2502 return templ_7745c5c3_Err
2484 }2503 }
2485 }2504 }
2486- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 231, "</dd><dt>into</dt><dd>")2505+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "</dd><dt>into</dt><dd>")
2487 if templ_7745c5c3_Err != nil {2506 if templ_7745c5c3_Err != nil {
2488 return templ_7745c5c3_Err2507 return templ_7745c5c3_Err
2489 }2508 }
2490- var templ_7745c5c3_Var118 string2509+ var templ_7745c5c3_Var119 string
2491- templ_7745c5c3_Var118, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)2510+ templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2492 if templ_7745c5c3_Err != nil {2511 if templ_7745c5c3_Err != nil {
2493- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 484, Col: 18}2512+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 18}
2494 }2513 }
2495- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var118))2514+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))
2496 if templ_7745c5c3_Err != nil {2515 if templ_7745c5c3_Err != nil {
2497 return templ_7745c5c3_Err2516 return templ_7745c5c3_Err
2498 }2517 }
2499- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 232, "</dd></dl>")2518+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</dd></dl>")
2500 if templ_7745c5c3_Err != nil {2519 if templ_7745c5c3_Err != nil {
2501 return templ_7745c5c3_Err2520 return templ_7745c5c3_Err
2502 }2521 }
2503 if p.Box.Error != "" {2522 if p.Box.Error != "" {
2504- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 233, "<p class=\"d-err\" role=\"alert\">")2523+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 235, "<p class=\"d-err\" role=\"alert\">")
2505 if templ_7745c5c3_Err != nil {2524 if templ_7745c5c3_Err != nil {
2506 return templ_7745c5c3_Err2525 return templ_7745c5c3_Err
2507 }2526 }
2508- var templ_7745c5c3_Var119 string2527+ var templ_7745c5c3_Var120 string
2509- templ_7745c5c3_Var119, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)2528+ templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Error)
2510 if templ_7745c5c3_Err != nil {2529 if templ_7745c5c3_Err != nil {
2511- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 487, Col: 47}2530+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 490, Col: 47}
2512 }2531 }
2513- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var119))2532+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))
2514 if templ_7745c5c3_Err != nil {2533 if templ_7745c5c3_Err != nil {
2515 return templ_7745c5c3_Err2534 return templ_7745c5c3_Err
2516 }2535 }
2517- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 234, "</p>")2536+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 236, "</p>")
2518 if templ_7745c5c3_Err != nil {2537 if templ_7745c5c3_Err != nil {
2519 return templ_7745c5c3_Err2538 return templ_7745c5c3_Err
2520 }2539 }
2521 }2540 }
2522 if p.Box.ReadyAction != "" {2541 if p.Box.ReadyAction != "" {
2523- 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=\"")2542+ 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=\"")
2524 if templ_7745c5c3_Err != nil {2543 if templ_7745c5c3_Err != nil {
2525 return templ_7745c5c3_Err2544 return templ_7745c5c3_Err
2526 }2545 }
2527- var templ_7745c5c3_Var120 templ.SafeURL2546+ var templ_7745c5c3_Var121 templ.SafeURL
2528- templ_7745c5c3_Var120, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))2547+ templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadyAction))
2529 if templ_7745c5c3_Err != nil {2548 if templ_7745c5c3_Err != nil {
2530- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 491, Col: 80}2549+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 494, Col: 80}
2531 }2550 }
2532- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var120))2551+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))
2533 if templ_7745c5c3_Err != nil {2552 if templ_7745c5c3_Err != nil {
2534 return templ_7745c5c3_Err2553 return templ_7745c5c3_Err
2535 }2554 }
2536- 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>")2555+ 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>")
2537 if templ_7745c5c3_Err != nil {2556 if templ_7745c5c3_Err != nil {
2538 return templ_7745c5c3_Err2557 return templ_7745c5c3_Err
2539 }2558 }
@@ -2542,232 +2561,214 @@ func mergeMenu(p MRPage) templ.Component {
2542 if templ_7745c5c3_Err != nil {2561 if templ_7745c5c3_Err != nil {
2543 return templ_7745c5c3_Err2562 return templ_7745c5c3_Err
2544 }2563 }
2545- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 237, " <form class=\"d-acts\" method=\"post\" action=\"")2564+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, " <form class=\"d-acts\" method=\"post\" action=\"")
2546 if templ_7745c5c3_Err != nil {2565 if templ_7745c5c3_Err != nil {
2547 return templ_7745c5c3_Err2566 return templ_7745c5c3_Err
2548 }2567 }
2549- var templ_7745c5c3_Var121 templ.SafeURL2568+ var templ_7745c5c3_Var122 templ.SafeURL
2550- templ_7745c5c3_Var121, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))2569+ templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.MergeAction))
2551 if templ_7745c5c3_Err != nil {2570 if templ_7745c5c3_Err != nil {
2552- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 496, Col: 80}2571+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 499, Col: 80}
2553 }2572 }
2554- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var121))2573+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var122))
2555 if templ_7745c5c3_Err != nil {2574 if templ_7745c5c3_Err != nil {
2556 return templ_7745c5c3_Err2575 return templ_7745c5c3_Err
2557 }2576 }
2558- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 238, "\"><input type=\"hidden\" name=\"head_id\" value=\"")2577+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
2559 if templ_7745c5c3_Err != nil {2578 if templ_7745c5c3_Err != nil {
2560 return templ_7745c5c3_Err2579 return templ_7745c5c3_Err
2561 }2580 }
2562- var templ_7745c5c3_Var122 string2581+ var templ_7745c5c3_Var123 string
2563- templ_7745c5c3_Var122, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)2582+ templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
2564 if templ_7745c5c3_Err != nil {2583 if templ_7745c5c3_Err != nil {
2565- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 497, Col: 59}2584+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 500, Col: 59}
2566 }2585 }
2567- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var122)2586+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)
2568 if templ_7745c5c3_Err != nil {2587 if templ_7745c5c3_Err != nil {
2569 return templ_7745c5c3_Err2588 return templ_7745c5c3_Err
2570 }2589 }
2571- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 239, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")2590+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"><fieldset class=\"d-modes\"><legend class=\"sr\">merge mode</legend> ")
2572 if templ_7745c5c3_Err != nil {2591 if templ_7745c5c3_Err != nil {
2573 return templ_7745c5c3_Err2592 return templ_7745c5c3_Err
2574 }2593 }
2575 for i, m := range p.Box.Modes {2594 for i, m := range p.Box.Modes {
2576- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 240, "<label><input type=\"radio\" name=\"mode\" value=\"")2595+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, "<label><input type=\"radio\" name=\"mode\" value=\"")
2577 if templ_7745c5c3_Err != nil {2596 if templ_7745c5c3_Err != nil {
2578 return templ_7745c5c3_Err2597 return templ_7745c5c3_Err
2579 }2598 }
2580- var templ_7745c5c3_Var123 string2599+ var templ_7745c5c3_Var124 string
2581- templ_7745c5c3_Var123, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)2600+ templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Value)
2582 if templ_7745c5c3_Err != nil {2601 if templ_7745c5c3_Err != nil {
2583- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 505, Col: 24}2602+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 24}
2584 }2603 }
2585- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var123)2604+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)
2586 if templ_7745c5c3_Err != nil {2605 if templ_7745c5c3_Err != nil {
2587 return templ_7745c5c3_Err2606 return templ_7745c5c3_Err
2588 }2607 }
2589- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 241, "\"")2608+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, "\"")
2590 if templ_7745c5c3_Err != nil {2609 if templ_7745c5c3_Err != nil {
2591 return templ_7745c5c3_Err2610 return templ_7745c5c3_Err
2592 }2611 }
2593 if i == p.Box.Checked() {2612 if i == p.Box.Checked() {
2594- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 242, " checked")2613+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " checked")
2595 if templ_7745c5c3_Err != nil {2614 if templ_7745c5c3_Err != nil {
2596 return templ_7745c5c3_Err2615 return templ_7745c5c3_Err
2597 }2616 }
2598 }2617 }
2599 if m.Disabled {2618 if m.Disabled {
2600- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 243, " disabled")2619+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 245, " disabled")
2601 if templ_7745c5c3_Err != nil {2620 if templ_7745c5c3_Err != nil {
2602 return templ_7745c5c3_Err2621 return templ_7745c5c3_Err
2603 }2622 }
2604 }2623 }
2605- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 244, " title=\"")2624+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " title=\"")
2606 if templ_7745c5c3_Err != nil {2625 if templ_7745c5c3_Err != nil {
2607 return templ_7745c5c3_Err2626 return templ_7745c5c3_Err
2608 }2627 }
2609- var templ_7745c5c3_Var124 string2628+ var templ_7745c5c3_Var125 string
2610- templ_7745c5c3_Var124, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)2629+ templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.ResolveAttributeValue(m.Reason)
2611 if templ_7745c5c3_Err != nil {2630 if templ_7745c5c3_Err != nil {
2612- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 508, Col: 25}2631+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 511, Col: 25}
2613 }2632 }
2614- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var124)2633+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var125)
2615 if templ_7745c5c3_Err != nil {2634 if templ_7745c5c3_Err != nil {
2616 return templ_7745c5c3_Err2635 return templ_7745c5c3_Err
2617 }2636 }
2618- 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\"> ")2637+ 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\"> ")
2619 if templ_7745c5c3_Err != nil {2638 if templ_7745c5c3_Err != nil {
2620 return templ_7745c5c3_Err2639 return templ_7745c5c3_Err
2621 }2640 }
2622- var templ_7745c5c3_Var125 string2641+ var templ_7745c5c3_Var126 string
2623- templ_7745c5c3_Var125, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)2642+ templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(m.Label)
2624 if templ_7745c5c3_Err != nil {2643 if templ_7745c5c3_Err != nil {
2625- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 512, Col: 17}2644+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 515, Col: 17}
2626 }2645 }
2627- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var125))2646+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))
2628 if templ_7745c5c3_Err != nil {2647 if templ_7745c5c3_Err != nil {
2629 return templ_7745c5c3_Err2648 return templ_7745c5c3_Err
2630 }2649 }
2631- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 246, " ")2650+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, " ")
2632 if templ_7745c5c3_Err != nil {2651 if templ_7745c5c3_Err != nil {
2633 return templ_7745c5c3_Err2652 return templ_7745c5c3_Err
2634 }2653 }
2635 if i < 9 {2654 if i < 9 {
2636- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 247, "<kbd aria-hidden=\"true\">")2655+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "<kbd aria-hidden=\"true\">")
2637 if templ_7745c5c3_Err != nil {2656 if templ_7745c5c3_Err != nil {
2638 return templ_7745c5c3_Err2657 return templ_7745c5c3_Err
2639 }2658 }
2640- var templ_7745c5c3_Var126 string2659+ var templ_7745c5c3_Var127 string
2641- templ_7745c5c3_Var126, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))2660+ templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(i + 1))
2642 if templ_7745c5c3_Err != nil {2661 if templ_7745c5c3_Err != nil {
2643- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 514, Col: 46}2662+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 517, Col: 46}
2644 }2663 }
2645- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var126))2664+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
2646 if templ_7745c5c3_Err != nil {2665 if templ_7745c5c3_Err != nil {
2647 return templ_7745c5c3_Err2666 return templ_7745c5c3_Err
2648 }2667 }
2649- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 248, "</kbd>")2668+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</kbd>")
2650 if templ_7745c5c3_Err != nil {2669 if templ_7745c5c3_Err != nil {
2651 return templ_7745c5c3_Err2670 return templ_7745c5c3_Err
2652 }2671 }
2653 }2672 }
2654- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 249, "</label>")2673+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 251, "</label>")
2655 if templ_7745c5c3_Err != nil {2674 if templ_7745c5c3_Err != nil {
2656 return templ_7745c5c3_Err2675 return templ_7745c5c3_Err
2657 }2676 }
2658 }2677 }
2659- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 250, "</fieldset>")2678+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "</fieldset>")
2660 if templ_7745c5c3_Err != nil {2679 if templ_7745c5c3_Err != nil {
2661 return templ_7745c5c3_Err2680 return templ_7745c5c3_Err
2662 }2681 }
2663 if p.Box.Signed {2682 if p.Box.Signed {
2664- 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. ")2683+ 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). ")
2665 if templ_7745c5c3_Err != nil {2684 if templ_7745c5c3_Err != nil {
2666 return templ_7745c5c3_Err2685 return templ_7745c5c3_Err
2667 }2686 }
2668 if p.Box.Fingerprint != "" {2687 if p.Box.Fingerprint != "" {
2669- var templ_7745c5c3_Var127 string2688+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "fingerprint <code>")
2670- templ_7745c5c3_Var127, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2671- if templ_7745c5c3_Err != nil {
2672- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 13}
2673- }
2674- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var127))
2675- if templ_7745c5c3_Err != nil {
2676- return templ_7745c5c3_Err
2677- }
2678- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 252, "key <code>")
2679 if templ_7745c5c3_Err != nil {2689 if templ_7745c5c3_Err != nil {
2680 return templ_7745c5c3_Err2690 return templ_7745c5c3_Err
2681 }2691 }
2682 var templ_7745c5c3_Var128 string2692 var templ_7745c5c3_Var128 string
2683 templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint)2693 templ_7745c5c3_Var128, templ_7745c5c3_Err = templ.JoinStringErrs(p.Box.Fingerprint)
2684 if templ_7745c5c3_Err != nil {2694 if templ_7745c5c3_Err != nil {
2685- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 523, Col: 44}2695+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 526, Col: 45}
2686 }2696 }
2687 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128))2697 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var128))
2688 if templ_7745c5c3_Err != nil {2698 if templ_7745c5c3_Err != nil {
2689 return templ_7745c5c3_Err2699 return templ_7745c5c3_Err
2690 }2700 }
2691- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 253, "</code>. ")2701+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "</code> ")
2692 if templ_7745c5c3_Err != nil {2702 if templ_7745c5c3_Err != nil {
2693 return templ_7745c5c3_Err2703 return templ_7745c5c3_Err
2694 }2704 }
2695 }2705 }
2696- var templ_7745c5c3_Var129 string2706+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, "<code>ermite signing-key show</code> prints it.</p>")
2697- templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2698- if templ_7745c5c3_Err != nil {
2699- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 525, Col: 12}
2700- }
2701- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
2702- if templ_7745c5c3_Err != nil {
2703- return templ_7745c5c3_Err
2704- }
2705- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 254, "<code>ermite signing-key show</code> prints the public key to verify them.</p>")
2706 if templ_7745c5c3_Err != nil {2707 if templ_7745c5c3_Err != nil {
2707 return templ_7745c5c3_Err2708 return templ_7745c5c3_Err
2708 }2709 }
2709 }2710 }
2710 if p.Box.CanDeleteBranch {2711 if p.Box.CanDeleteBranch {
2711- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 255, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")2712+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<label class=\"d-check\"><input type=\"checkbox\" name=\"delete_branch\" value=\"1\"> delete ")
2712 if templ_7745c5c3_Err != nil {2713 if templ_7745c5c3_Err != nil {
2713 return templ_7745c5c3_Err2714 return templ_7745c5c3_Err
2714 }2715 }
2715- var templ_7745c5c3_Var130 string2716+ var templ_7745c5c3_Var129 string
2716- templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)2717+ templ_7745c5c3_Var129, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
2717 if templ_7745c5c3_Err != nil {2718 if templ_7745c5c3_Err != nil {
2718- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 529, Col: 102}2719+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 532, Col: 102}
2719 }2720 }
2720- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var130))2721+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var129))
2721 if templ_7745c5c3_Err != nil {2722 if templ_7745c5c3_Err != nil {
2722 return templ_7745c5c3_Err2723 return templ_7745c5c3_Err
2723 }2724 }
2724- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 256, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")2725+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " after the merge <kbd aria-hidden=\"true\">D</kbd></label>")
2725 if templ_7745c5c3_Err != nil {2726 if templ_7745c5c3_Err != nil {
2726 return templ_7745c5c3_Err2727 return templ_7745c5c3_Err
2727 }2728 }
2728 }2729 }
2729- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 257, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")2730+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, "<div class=\"d-btns\"><button type=\"submit\" class=\"btn primary\" data-default")
2730 if templ_7745c5c3_Err != nil {2731 if templ_7745c5c3_Err != nil {
2731 return templ_7745c5c3_Err2732 return templ_7745c5c3_Err
2732 }2733 }
2733 if !p.Box.CanMerge() {2734 if !p.Box.CanMerge() {
2734- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 258, " disabled")2735+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 260, " disabled")
2735 if templ_7745c5c3_Err != nil {2736 if templ_7745c5c3_Err != nil {
2736 return templ_7745c5c3_Err2737 return templ_7745c5c3_Err
2737 }2738 }
2738 }2739 }
2739- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 259, " title=\"")2740+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, " title=\"")
2740 if templ_7745c5c3_Err != nil {2741 if templ_7745c5c3_Err != nil {
2741 return templ_7745c5c3_Err2742 return templ_7745c5c3_Err
2742 }2743 }
2743- var templ_7745c5c3_Var131 string2744+ var templ_7745c5c3_Var130 string
2744- templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())2745+ templ_7745c5c3_Var130, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.MergeTitle())
2745 if templ_7745c5c3_Err != nil {2746 if templ_7745c5c3_Err != nil {
2746- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 537, Col: 33}2747+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 33}
2747 }2748 }
2748- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var131)2749+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var130)
2749 if templ_7745c5c3_Err != nil {2750 if templ_7745c5c3_Err != nil {
2750 return templ_7745c5c3_Err2751 return templ_7745c5c3_Err
2751 }2752 }
2752- 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 ")2753+ 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 ")
2753 if templ_7745c5c3_Err != nil {2754 if templ_7745c5c3_Err != nil {
2754 return templ_7745c5c3_Err2755 return templ_7745c5c3_Err
2755 }2756 }
2756- var templ_7745c5c3_Var132 string2757+ var templ_7745c5c3_Var131 string
2757- templ_7745c5c3_Var132, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)2758+ templ_7745c5c3_Var131, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
2758 if templ_7745c5c3_Err != nil {2759 if templ_7745c5c3_Err != nil {
2759- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 540, Col: 28}2760+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 543, Col: 28}
2760 }2761 }
2761- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var132))2762+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var131))
2762 if templ_7745c5c3_Err != nil {2763 if templ_7745c5c3_Err != nil {
2763 return templ_7745c5c3_Err2764 return templ_7745c5c3_Err
2764 }2765 }
2765- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 261, "</button></div></form>")2766+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "</button></div></form>")
2766 if templ_7745c5c3_Err != nil {2767 if templ_7745c5c3_Err != nil {
2767 return templ_7745c5c3_Err2768 return templ_7745c5c3_Err
2768 }2769 }
2769 }2770 }
2770- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 262, "</div></details>")2771+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "</div></details>")
2771 if templ_7745c5c3_Err != nil {2772 if templ_7745c5c3_Err != nil {
2772 return templ_7745c5c3_Err2773 return templ_7745c5c3_Err
2773 }2774 }
@@ -2793,182 +2794,182 @@ func MRMergeability(v MergeabilityView) templ.Component {
2793 }()2794 }()
2794 }2795 }
2795 ctx = templ.InitializeContext(ctx)2796 ctx = templ.InitializeContext(ctx)
2796- templ_7745c5c3_Var133 := templ.GetChildren(ctx)2797+ templ_7745c5c3_Var132 := templ.GetChildren(ctx)
2797- if templ_7745c5c3_Var133 == nil {2798+ if templ_7745c5c3_Var132 == nil {
2798- templ_7745c5c3_Var133 = templ.NopComponent2799+ templ_7745c5c3_Var132 = templ.NopComponent
2799 }2800 }
2800 ctx = templ.ClearChildren(ctx)2801 ctx = templ.ClearChildren(ctx)
2801- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 263, "<span data-mergeability data-state=\"")2802+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "<span data-mergeability data-state=\"")
2803+ if templ_7745c5c3_Err != nil {
2804+ return templ_7745c5c3_Err
2805+ }
2806+ var templ_7745c5c3_Var133 string
2807+ templ_7745c5c3_Var133, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2808+ if templ_7745c5c3_Err != nil {
2809+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 22}
2810+ }
2811+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var133)
2812+ if templ_7745c5c3_Err != nil {
2813+ return templ_7745c5c3_Err
2814+ }
2815+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-ok=\"")
2802 if templ_7745c5c3_Err != nil {2816 if templ_7745c5c3_Err != nil {
2803 return templ_7745c5c3_Err2817 return templ_7745c5c3_Err
2804 }2818 }
2805 var templ_7745c5c3_Var134 string2819 var templ_7745c5c3_Var134 string
2806- templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)2820+ templ_7745c5c3_Var134, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))
2807 if templ_7745c5c3_Err != nil {2821 if templ_7745c5c3_Err != nil {
2808- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 553, Col: 22}2822+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 41}
2809 }2823 }
2810 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134)2824 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var134)
2811 if templ_7745c5c3_Err != nil {2825 if templ_7745c5c3_Err != nil {
2812 return templ_7745c5c3_Err2826 return templ_7745c5c3_Err
2813 }2827 }
2814- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 264, "\" data-ff-ok=\"")2828+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-ok=\"")
2815 if templ_7745c5c3_Err != nil {2829 if templ_7745c5c3_Err != nil {
2816 return templ_7745c5c3_Err2830 return templ_7745c5c3_Err
2817 }2831 }
2818 var templ_7745c5c3_Var135 string2832 var templ_7745c5c3_Var135 string
2819- templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.FFOk))2833+ templ_7745c5c3_Var135, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))
2820 if templ_7745c5c3_Err != nil {2834 if templ_7745c5c3_Err != nil {
2821- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 554, Col: 41}2835+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 558, Col: 47}
2822 }2836 }
2823 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135)2837 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var135)
2824 if templ_7745c5c3_Err != nil {2838 if templ_7745c5c3_Err != nil {
2825 return templ_7745c5c3_Err2839 return templ_7745c5c3_Err
2826 }2840 }
2827- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 265, "\" data-merge-ok=\"")2841+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\" data-ff-reason=\"")
2828 if templ_7745c5c3_Err != nil {2842 if templ_7745c5c3_Err != nil {
2829 return templ_7745c5c3_Err2843 return templ_7745c5c3_Err
2830 }2844 }
2831 var templ_7745c5c3_Var136 string2845 var templ_7745c5c3_Var136 string
2832- templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(strconv.FormatBool(v.MergeOk))2846+ templ_7745c5c3_Var136, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)
2833 if templ_7745c5c3_Err != nil {2847 if templ_7745c5c3_Err != nil {
2834- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 555, Col: 47}2848+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 29}
2835 }2849 }
2836 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136)2850 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var136)
2837 if templ_7745c5c3_Err != nil {2851 if templ_7745c5c3_Err != nil {
2838 return templ_7745c5c3_Err2852 return templ_7745c5c3_Err
2839 }2853 }
2840- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 266, "\" data-ff-reason=\"")2854+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\" data-merge-reason=\"")
2841 if templ_7745c5c3_Err != nil {2855 if templ_7745c5c3_Err != nil {
2842 return templ_7745c5c3_Err2856 return templ_7745c5c3_Err
2843 }2857 }
2844 var templ_7745c5c3_Var137 string2858 var templ_7745c5c3_Var137 string
2845- templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.FFReason)2859+ templ_7745c5c3_Var137, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)
2846 if templ_7745c5c3_Err != nil {2860 if templ_7745c5c3_Err != nil {
2847- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 556, Col: 29}2861+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 560, Col: 35}
2848 }2862 }
2849 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var137)2863 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var137)
2850 if templ_7745c5c3_Err != nil {2864 if templ_7745c5c3_Err != nil {
2851 return templ_7745c5c3_Err2865 return templ_7745c5c3_Err
2852 }2866 }
2853- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 267, "\" data-merge-reason=\"")2867+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "\"><span class=\"badge\" data-state=\"")
2854 if templ_7745c5c3_Err != nil {2868 if templ_7745c5c3_Err != nil {
2855 return templ_7745c5c3_Err2869 return templ_7745c5c3_Err
2856 }2870 }
2857 var templ_7745c5c3_Var138 string2871 var templ_7745c5c3_Var138 string
2858- templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.MergeReason)2872+ templ_7745c5c3_Var138, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)
2859 if templ_7745c5c3_Err != nil {2873 if templ_7745c5c3_Err != nil {
2860- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 557, Col: 35}2874+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 42}
2861 }2875 }
2862 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var138)2876 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var138)
2863 if templ_7745c5c3_Err != nil {2877 if templ_7745c5c3_Err != nil {
2864 return templ_7745c5c3_Err2878 return templ_7745c5c3_Err
2865 }2879 }
2866- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 268, "\"><span class=\"badge\" data-state=\"")2880+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "\">")
2867 if templ_7745c5c3_Err != nil {2881 if templ_7745c5c3_Err != nil {
2868 return templ_7745c5c3_Err2882 return templ_7745c5c3_Err
2869 }2883 }
2870 var templ_7745c5c3_Var139 string2884 var templ_7745c5c3_Var139 string
2871- templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.ResolveAttributeValue(v.State)2885+ templ_7745c5c3_Var139, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2872- if templ_7745c5c3_Err != nil {
2873- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 42}
2874- }
2875- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var139)
2876- if templ_7745c5c3_Err != nil {
2877- return templ_7745c5c3_Err
2878- }
2879- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 269, "\">")
2880- if templ_7745c5c3_Err != nil {
2881- return templ_7745c5c3_Err
2882- }
2883- var templ_7745c5c3_Var140 string
2884- templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(v.Label)
2885 if templ_7745c5c3_Err != nil {2886 if templ_7745c5c3_Err != nil {
2886- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 559, Col: 54}2887+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 562, Col: 54}
2887 }2888 }
2888- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))2889+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var139))
2889 if templ_7745c5c3_Err != nil {2890 if templ_7745c5c3_Err != nil {
2890 return templ_7745c5c3_Err2891 return templ_7745c5c3_Err
2891 }2892 }
2892- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 270, "</span> ")2893+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span> ")
2893 if templ_7745c5c3_Err != nil {2894 if templ_7745c5c3_Err != nil {
2894 return templ_7745c5c3_Err2895 return templ_7745c5c3_Err
2895 }2896 }
2896 if v.Detail != "" {2897 if v.Detail != "" {
2897- var templ_7745c5c3_Var141 string2898+ var templ_7745c5c3_Var140 string
2898- templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(" ")2899+ templ_7745c5c3_Var140, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
2899 if templ_7745c5c3_Err != nil {2900 if templ_7745c5c3_Err != nil {
2900- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 8}2901+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 8}
2901 }2902 }
2902- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))2903+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var140))
2903 if templ_7745c5c3_Err != nil {2904 if templ_7745c5c3_Err != nil {
2904 return templ_7745c5c3_Err2905 return templ_7745c5c3_Err
2905 }2906 }
2906- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 271, "<span class=\"dim\">")2907+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "<span class=\"dim\">")
2907 if templ_7745c5c3_Err != nil {2908 if templ_7745c5c3_Err != nil {
2908 return templ_7745c5c3_Err2909 return templ_7745c5c3_Err
2909 }2910 }
2910- var templ_7745c5c3_Var142 string2911+ var templ_7745c5c3_Var141 string
2911- templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)2912+ templ_7745c5c3_Var141, templ_7745c5c3_Err = templ.JoinStringErrs(v.Detail)
2912 if templ_7745c5c3_Err != nil {2913 if templ_7745c5c3_Err != nil {
2913- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 561, Col: 38}2914+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 564, Col: 38}
2914 }2915 }
2915- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))2916+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var141))
2916 if templ_7745c5c3_Err != nil {2917 if templ_7745c5c3_Err != nil {
2917 return templ_7745c5c3_Err2918 return templ_7745c5c3_Err
2918 }2919 }
2919- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 272, "</span>")2920+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "</span>")
2920 if templ_7745c5c3_Err != nil {2921 if templ_7745c5c3_Err != nil {
2921 return templ_7745c5c3_Err2922 return templ_7745c5c3_Err
2922 }2923 }
2923 }2924 }
2924- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 273, "</span> ")2925+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "</span> ")
2925 if templ_7745c5c3_Err != nil {2926 if templ_7745c5c3_Err != nil {
2926 return templ_7745c5c3_Err2927 return templ_7745c5c3_Err
2927 }2928 }
2928 if len(v.Paths) > 0 {2929 if len(v.Paths) > 0 {
2929- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 274, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")2930+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "<ul class=\"mg-paths\" aria-label=\"conflicting files\">")
2930 if templ_7745c5c3_Err != nil {2931 if templ_7745c5c3_Err != nil {
2931 return templ_7745c5c3_Err2932 return templ_7745c5c3_Err
2932 }2933 }
2933 for _, path := range v.Paths {2934 for _, path := range v.Paths {
2934- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 275, "<li><code>")2935+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "<li><code>")
2935 if templ_7745c5c3_Err != nil {2936 if templ_7745c5c3_Err != nil {
2936 return templ_7745c5c3_Err2937 return templ_7745c5c3_Err
2937 }2938 }
2938- var templ_7745c5c3_Var143 string2939+ var templ_7745c5c3_Var142 string
2939- templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(path)2940+ templ_7745c5c3_Var142, templ_7745c5c3_Err = templ.JoinStringErrs(path)
2940 if templ_7745c5c3_Err != nil {2941 if templ_7745c5c3_Err != nil {
2941- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 567, Col: 20}2942+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 570, Col: 20}
2942 }2943 }
2943- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))2944+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var142))
2944 if templ_7745c5c3_Err != nil {2945 if templ_7745c5c3_Err != nil {
2945 return templ_7745c5c3_Err2946 return templ_7745c5c3_Err
2946 }2947 }
2947- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 276, "</code></li>")2948+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "</code></li>")
2948 if templ_7745c5c3_Err != nil {2949 if templ_7745c5c3_Err != nil {
2949 return templ_7745c5c3_Err2950 return templ_7745c5c3_Err
2950 }2951 }
2951 }2952 }
2952- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 277, "</ul>")2953+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</ul>")
2953 if templ_7745c5c3_Err != nil {2954 if templ_7745c5c3_Err != nil {
2954 return templ_7745c5c3_Err2955 return templ_7745c5c3_Err
2955 }2956 }
2956 }2957 }
2957 if v.PathsNote != "" {2958 if v.PathsNote != "" {
2958- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 278, "<p class=\"dim\">")2959+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<p class=\"dim\">")
2959 if templ_7745c5c3_Err != nil {2960 if templ_7745c5c3_Err != nil {
2960 return templ_7745c5c3_Err2961 return templ_7745c5c3_Err
2961 }2962 }
2962- var templ_7745c5c3_Var144 string2963+ var templ_7745c5c3_Var143 string
2963- templ_7745c5c3_Var144, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)2964+ templ_7745c5c3_Var143, templ_7745c5c3_Err = templ.JoinStringErrs(v.PathsNote)
2964 if templ_7745c5c3_Err != nil {2965 if templ_7745c5c3_Err != nil {
2965- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 572, Col: 30}2966+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 575, Col: 30}
2966 }2967 }
2967- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var144))2968+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var143))
2968 if templ_7745c5c3_Err != nil {2969 if templ_7745c5c3_Err != nil {
2969 return templ_7745c5c3_Err2970 return templ_7745c5c3_Err
2970 }2971 }
2971- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 279, "</p>")2972+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</p>")
2972 if templ_7745c5c3_Err != nil {2973 if templ_7745c5c3_Err != nil {
2973 return templ_7745c5c3_Err2974 return templ_7745c5c3_Err
2974 }2975 }
@@ -2995,12 +2996,12 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
2995 }()2996 }()
2996 }2997 }
2997 ctx = templ.InitializeContext(ctx)2998 ctx = templ.InitializeContext(ctx)
2998- templ_7745c5c3_Var145 := templ.GetChildren(ctx)2999+ templ_7745c5c3_Var144 := templ.GetChildren(ctx)
2999- if templ_7745c5c3_Var145 == nil {3000+ if templ_7745c5c3_Var144 == nil {
3000- templ_7745c5c3_Var145 = templ.NopComponent3001+ templ_7745c5c3_Var144 = templ.NopComponent
3001 }3002 }
3002 ctx = templ.ClearChildren(ctx)3003 ctx = templ.ClearChildren(ctx)
3003- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 280, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")3004+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 282, "<div id=\"mr-mergeability\" class=\"live-slot\" role=\"status\" data-slot>")
3004 if templ_7745c5c3_Err != nil {3005 if templ_7745c5c3_Err != nil {
3005 return templ_7745c5c3_Err3006 return templ_7745c5c3_Err
3006 }3007 }
@@ -3008,7 +3009,7 @@ func mrMergeabilitySlot(v MergeabilityView) templ.Component {
3008 if templ_7745c5c3_Err != nil {3009 if templ_7745c5c3_Err != nil {
3009 return templ_7745c5c3_Err3010 return templ_7745c5c3_Err
3010 }3011 }
3011- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 281, "</div>")3012+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "</div>")
3012 if templ_7745c5c3_Err != nil {3013 if templ_7745c5c3_Err != nil {
3013 return templ_7745c5c3_Err3014 return templ_7745c5c3_Err
3014 }3015 }
@@ -3033,9 +3034,9 @@ func MRMergeabilityFragment(v MergeabilityView) templ.Component {
3033 }()3034 }()
3034 }3035 }
3035 ctx = templ.InitializeContext(ctx)3036 ctx = templ.InitializeContext(ctx)
3036- templ_7745c5c3_Var146 := templ.GetChildren(ctx)3037+ templ_7745c5c3_Var145 := templ.GetChildren(ctx)
3037- if templ_7745c5c3_Var146 == nil {3038+ if templ_7745c5c3_Var145 == nil {
3038- templ_7745c5c3_Var146 = templ.NopComponent3039+ templ_7745c5c3_Var145 = templ.NopComponent
3039 }3040 }
3040 ctx = templ.ClearChildren(ctx)3041 ctx = templ.ClearChildren(ctx)
3041 templ_7745c5c3_Err = mrMergeabilitySlot(v).Render(ctx, templ_7745c5c3_Buffer)3042 templ_7745c5c3_Err = mrMergeabilitySlot(v).Render(ctx, templ_7745c5c3_Buffer)
@@ -3064,66 +3065,66 @@ func moreMenu(p MRPage) templ.Component {
3064 }()3065 }()
3065 }3066 }
3066 ctx = templ.InitializeContext(ctx)3067 ctx = templ.InitializeContext(ctx)
3067- templ_7745c5c3_Var147 := templ.GetChildren(ctx)3068+ templ_7745c5c3_Var146 := templ.GetChildren(ctx)
3068- if templ_7745c5c3_Var147 == nil {3069+ if templ_7745c5c3_Var146 == nil {
3069- templ_7745c5c3_Var147 = templ.NopComponent3070+ templ_7745c5c3_Var146 = templ.NopComponent
3070 }3071 }
3071 ctx = templ.ClearChildren(ctx)3072 ctx = templ.ClearChildren(ctx)
3072- 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\">")3073+ 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\">")
3073 if templ_7745c5c3_Err != nil {3074 if templ_7745c5c3_Err != nil {
3074 return templ_7745c5c3_Err3075 return templ_7745c5c3_Err
3075 }3076 }
3076 if p.Box.CanMarkRead {3077 if p.Box.CanMarkRead {
3077- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 283, "<form method=\"post\" action=\"")3078+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 285, "<form method=\"post\" action=\"")
3078 if templ_7745c5c3_Err != nil {3079 if templ_7745c5c3_Err != nil {
3079 return templ_7745c5c3_Err3080 return templ_7745c5c3_Err
3080 }3081 }
3081- var templ_7745c5c3_Var148 templ.SafeURL3082+ var templ_7745c5c3_Var147 templ.SafeURL
3082- templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))3083+ templ_7745c5c3_Var147, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.ReadAction))
3083 if templ_7745c5c3_Err != nil {3084 if templ_7745c5c3_Err != nil {
3084- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 596, Col: 64}3085+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 599, Col: 64}
3085 }3086 }
3086- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var148))3087+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var147))
3087 if templ_7745c5c3_Err != nil {3088 if templ_7745c5c3_Err != nil {
3088 return templ_7745c5c3_Err3089 return templ_7745c5c3_Err
3089 }3090 }
3090- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 284, "\"><input type=\"hidden\" name=\"head_id\" value=\"")3091+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "\"><input type=\"hidden\" name=\"head_id\" value=\"")
3091 if templ_7745c5c3_Err != nil {3092 if templ_7745c5c3_Err != nil {
3092 return templ_7745c5c3_Err3093 return templ_7745c5c3_Err
3093 }3094 }
3094- var templ_7745c5c3_Var149 string3095+ var templ_7745c5c3_Var148 string
3095- templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)3096+ templ_7745c5c3_Var148, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Box.Head)
3096 if templ_7745c5c3_Err != nil {3097 if templ_7745c5c3_Err != nil {
3097- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 597, Col: 59}3098+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 600, Col: 59}
3098 }3099 }
3099- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var149)3100+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var148)
3100 if templ_7745c5c3_Err != nil {3101 if templ_7745c5c3_Err != nil {
3101 return templ_7745c5c3_Err3102 return templ_7745c5c3_Err
3102 }3103 }
3103- 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>")3104+ 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>")
3104 if templ_7745c5c3_Err != nil {3105 if templ_7745c5c3_Err != nil {
3105 return templ_7745c5c3_Err3106 return templ_7745c5c3_Err
3106 }3107 }
3107 }3108 }
3108- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 286, "<form method=\"post\" action=\"")3109+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<form method=\"post\" action=\"")
3109 if templ_7745c5c3_Err != nil {3110 if templ_7745c5c3_Err != nil {
3110 return templ_7745c5c3_Err3111 return templ_7745c5c3_Err
3111 }3112 }
3112- var templ_7745c5c3_Var150 templ.SafeURL3113+ var templ_7745c5c3_Var149 templ.SafeURL
3113- templ_7745c5c3_Var150, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))3114+ templ_7745c5c3_Var149, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Box.CloseAction))
3114 if templ_7745c5c3_Err != nil {3115 if templ_7745c5c3_Err != nil {
3115- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 601, Col: 64}3116+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 604, Col: 64}
3116 }3117 }
3117- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var150))3118+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var149))
3118 if templ_7745c5c3_Err != nil {3119 if templ_7745c5c3_Err != nil {
3119 return templ_7745c5c3_Err3120 return templ_7745c5c3_Err
3120 }3121 }
3121- 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>")3122+ 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>")
3122 if templ_7745c5c3_Err != nil {3123 if templ_7745c5c3_Err != nil {
3123 return templ_7745c5c3_Err3124 return templ_7745c5c3_Err
3124 }3125 }
3125 if !p.Box.HeadGone && p.Box.ReadyAction == "" {3126 if !p.Box.HeadGone && p.Box.ReadyAction == "" {
3126- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 288, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")3127+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "<details class=\"d-or\"><summary class=\"mute\">or from a terminal</summary>")
3127 if templ_7745c5c3_Err != nil {3128 if templ_7745c5c3_Err != nil {
3128 return templ_7745c5c3_Err3129 return templ_7745c5c3_Err
3129 }3130 }
@@ -3131,12 +3132,12 @@ func moreMenu(p MRPage) templ.Component {
3131 if templ_7745c5c3_Err != nil {3132 if templ_7745c5c3_Err != nil {
3132 return templ_7745c5c3_Err3133 return templ_7745c5c3_Err
3133 }3134 }
3134- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 289, "</details>")3135+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "</details>")
3135 if templ_7745c5c3_Err != nil {3136 if templ_7745c5c3_Err != nil {
3136 return templ_7745c5c3_Err3137 return templ_7745c5c3_Err
3137 }3138 }
3138 }3139 }
3139- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 290, "</div></details>")3140+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, "</div></details>")
3140 if templ_7745c5c3_Err != nil {3141 if templ_7745c5c3_Err != nil {
3141 return templ_7745c5c3_Err3142 return templ_7745c5c3_Err
3142 }3143 }
@@ -3160,12 +3161,12 @@ func Compare(l Layout, p ComparePage) templ.Component {
3160 }()3161 }()
3161 }3162 }
3162 ctx = templ.InitializeContext(ctx)3163 ctx = templ.InitializeContext(ctx)
3163- templ_7745c5c3_Var151 := templ.GetChildren(ctx)3164+ templ_7745c5c3_Var150 := templ.GetChildren(ctx)
3164- if templ_7745c5c3_Var151 == nil {3165+ if templ_7745c5c3_Var150 == nil {
3165- templ_7745c5c3_Var151 = templ.NopComponent3166+ templ_7745c5c3_Var150 = templ.NopComponent
3166 }3167 }
3167 ctx = templ.ClearChildren(ctx)3168 ctx = templ.ClearChildren(ctx)
3168- templ_7745c5c3_Var152 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {3169+ templ_7745c5c3_Var151 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
3169 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context3170 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
3170 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)3171 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
3171 if !templ_7745c5c3_IsBuffer {3172 if !templ_7745c5c3_IsBuffer {
@@ -3177,263 +3178,263 @@ func Compare(l Layout, p ComparePage) templ.Component {
3177 }()3178 }()
3178 }3179 }
3179 ctx = templ.InitializeContext(ctx)3180 ctx = templ.InitializeContext(ctx)
3180- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 291, "<header class=\"show mr-h\"><h1>")3181+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "<header class=\"show mr-h\"><h1>")
3181 if templ_7745c5c3_Err != nil {3182 if templ_7745c5c3_Err != nil {
3182 return templ_7745c5c3_Err3183 return templ_7745c5c3_Err
3183 }3184 }
3184- var templ_7745c5c3_Var153 string3185+ var templ_7745c5c3_Var152 string
3185- templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)3186+ templ_7745c5c3_Var152, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3186 if templ_7745c5c3_Err != nil {3187 if templ_7745c5c3_Err != nil {
3187- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 17}3188+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 17}
3188 }3189 }
3189- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))3190+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var152))
3190 if templ_7745c5c3_Err != nil {3191 if templ_7745c5c3_Err != nil {
3191 return templ_7745c5c3_Err3192 return templ_7745c5c3_Err
3192 }3193 }
3193- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 292, " → ")3194+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, " → ")
3194 if templ_7745c5c3_Err != nil {3195 if templ_7745c5c3_Err != nil {
3195 return templ_7745c5c3_Err3196 return templ_7745c5c3_Err
3196 }3197 }
3197- var templ_7745c5c3_Var154 string3198+ var templ_7745c5c3_Var153 string
3198- templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)3199+ templ_7745c5c3_Var153, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3199 if templ_7745c5c3_Err != nil {3200 if templ_7745c5c3_Err != nil {
3200- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 617, Col: 34}3201+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 34}
3201 }3202 }
3202- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))3203+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var153))
3203 if templ_7745c5c3_Err != nil {3204 if templ_7745c5c3_Err != nil {
3204 return templ_7745c5c3_Err3205 return templ_7745c5c3_Err
3205 }3206 }
3206- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 293, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")3207+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</h1><dl class=\"kv show-kv\"><dt>branch</dt><dd><a href=\"")
3207 if templ_7745c5c3_Err != nil {3208 if templ_7745c5c3_Err != nil {
3208 return templ_7745c5c3_Err3209 return templ_7745c5c3_Err
3209 }3210 }
3210- var templ_7745c5c3_Var155 templ.SafeURL3211+ var templ_7745c5c3_Var154 templ.SafeURL
3211- templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))3212+ templ_7745c5c3_Var154, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.SourceHref))
3212 if templ_7745c5c3_Err != nil {3213 if templ_7745c5c3_Err != nil {
3213- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 45}3214+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 45}
3214 }3215 }
3215- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))3216+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var154))
3216 if templ_7745c5c3_Err != nil {3217 if templ_7745c5c3_Err != nil {
3217 return templ_7745c5c3_Err3218 return templ_7745c5c3_Err
3218 }3219 }
3219- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 294, "\">")3220+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")
3220 if templ_7745c5c3_Err != nil {3221 if templ_7745c5c3_Err != nil {
3221 return templ_7745c5c3_Err3222 return templ_7745c5c3_Err
3222 }3223 }
3223- var templ_7745c5c3_Var156 string3224+ var templ_7745c5c3_Var155 string
3224- templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)3225+ templ_7745c5c3_Var155, templ_7745c5c3_Err = templ.JoinStringErrs(p.Source)
3225 if templ_7745c5c3_Err != nil {3226 if templ_7745c5c3_Err != nil {
3226- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 620, Col: 58}3227+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 623, Col: 58}
3227 }3228 }
3228- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))3229+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var155))
3229 if templ_7745c5c3_Err != nil {3230 if templ_7745c5c3_Err != nil {
3230 return templ_7745c5c3_Err3231 return templ_7745c5c3_Err
3231 }3232 }
3232- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 295, "</a></dd><dt>target</dt><dd><a href=\"")3233+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>target</dt><dd><a href=\"")
3233 if templ_7745c5c3_Err != nil {3234 if templ_7745c5c3_Err != nil {
3234 return templ_7745c5c3_Err3235 return templ_7745c5c3_Err
3235 }3236 }
3236- var templ_7745c5c3_Var157 templ.SafeURL3237+ var templ_7745c5c3_Var156 templ.SafeURL
3237- templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))3238+ templ_7745c5c3_Var156, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.TargetHref))
3238 if templ_7745c5c3_Err != nil {3239 if templ_7745c5c3_Err != nil {
3239- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 45}3240+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 45}
3240 }3241 }
3241- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))3242+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var156))
3242 if templ_7745c5c3_Err != nil {3243 if templ_7745c5c3_Err != nil {
3243 return templ_7745c5c3_Err3244 return templ_7745c5c3_Err
3244 }3245 }
3245- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 296, "\">")3246+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "\">")
3246 if templ_7745c5c3_Err != nil {3247 if templ_7745c5c3_Err != nil {
3247 return templ_7745c5c3_Err3248 return templ_7745c5c3_Err
3248 }3249 }
3249- var templ_7745c5c3_Var158 string3250+ var templ_7745c5c3_Var157 string
3250- templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)3251+ templ_7745c5c3_Var157, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3251 if templ_7745c5c3_Err != nil {3252 if templ_7745c5c3_Err != nil {
3252- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 622, Col: 58}3253+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 625, Col: 58}
3253 }3254 }
3254- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))3255+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var157))
3255 if templ_7745c5c3_Err != nil {3256 if templ_7745c5c3_Err != nil {
3256 return templ_7745c5c3_Err3257 return templ_7745c5c3_Err
3257 }3258 }
3258- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 297, "</a></dd><dt>ahead</dt><dd>")3259+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "</a></dd><dt>ahead</dt><dd>")
3259 if templ_7745c5c3_Err != nil {3260 if templ_7745c5c3_Err != nil {
3260 return templ_7745c5c3_Err3261 return templ_7745c5c3_Err
3261 }3262 }
3262- var templ_7745c5c3_Var159 string3263+ var templ_7745c5c3_Var158 string
3263- templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)3264+ templ_7745c5c3_Var158, templ_7745c5c3_Err = templ.JoinStringErrs(p.AheadText)
3264 if templ_7745c5c3_Err != nil {3265 if templ_7745c5c3_Err != nil {
3265- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 624, Col: 21}3266+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 627, Col: 21}
3266 }3267 }
3267- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))3268+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var158))
3268 if templ_7745c5c3_Err != nil {3269 if templ_7745c5c3_Err != nil {
3269 return templ_7745c5c3_Err3270 return templ_7745c5c3_Err
3270 }3271 }
3271- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 298, "</dd></dl></header>")3272+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</dd></dl></header>")
3272 if templ_7745c5c3_Err != nil {3273 if templ_7745c5c3_Err != nil {
3273 return templ_7745c5c3_Err3274 return templ_7745c5c3_Err
3274 }3275 }
3275 if p.Note != "" {3276 if p.Note != "" {
3276- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 299, "<p class=\"notice\">")3277+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, "<p class=\"notice\">")
3277 if templ_7745c5c3_Err != nil {3278 if templ_7745c5c3_Err != nil {
3278 return templ_7745c5c3_Err3279 return templ_7745c5c3_Err
3279 }3280 }
3280- var templ_7745c5c3_Var160 string3281+ var templ_7745c5c3_Var159 string
3281- templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)3282+ templ_7745c5c3_Var159, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
3282 if templ_7745c5c3_Err != nil {3283 if templ_7745c5c3_Err != nil {
3283- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 628, Col: 29}3284+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 29}
3284 }3285 }
3285- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))3286+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var159))
3286 if templ_7745c5c3_Err != nil {3287 if templ_7745c5c3_Err != nil {
3287 return templ_7745c5c3_Err3288 return templ_7745c5c3_Err
3288 }3289 }
3289- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 300, "</p>")3290+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "</p>")
3290 if templ_7745c5c3_Err != nil {3291 if templ_7745c5c3_Err != nil {
3291 return templ_7745c5c3_Err3292 return templ_7745c5c3_Err
3292 }3293 }
3293 }3294 }
3294- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 301, " ")3295+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, " ")
3295 if templ_7745c5c3_Err != nil {3296 if templ_7745c5c3_Err != nil {
3296 return templ_7745c5c3_Err3297 return templ_7745c5c3_Err
3297 }3298 }
3298 if p.Existing != nil {3299 if p.Existing != nil {
3299- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 302, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")3300+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "<p class=\"notice\">an open merge request already covers these branches: <a href=\"")
3300 if templ_7745c5c3_Err != nil {3301 if templ_7745c5c3_Err != nil {
3301 return templ_7745c5c3_Err3302 return templ_7745c5c3_Err
3302 }3303 }
3303- var templ_7745c5c3_Var161 templ.SafeURL3304+ var templ_7745c5c3_Var160 templ.SafeURL
3304- templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))3305+ templ_7745c5c3_Var160, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Existing.Href))
3305 if templ_7745c5c3_Err != nil {3306 if templ_7745c5c3_Err != nil {
3306- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 114}3307+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 114}
3307 }3308 }
3308- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))3309+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var160))
3309 if templ_7745c5c3_Err != nil {3310 if templ_7745c5c3_Err != nil {
3310 return templ_7745c5c3_Err3311 return templ_7745c5c3_Err
3311 }3312 }
3312- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 303, "\">")3313+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, "\">")
3313 if templ_7745c5c3_Err != nil {3314 if templ_7745c5c3_Err != nil {
3314 return templ_7745c5c3_Err3315 return templ_7745c5c3_Err
3315 }3316 }
3316- var templ_7745c5c3_Var162 string3317+ var templ_7745c5c3_Var161 string
3317- templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)3318+ templ_7745c5c3_Var161, templ_7745c5c3_Err = templ.JoinStringErrs(p.Existing.Label)
3318 if templ_7745c5c3_Err != nil {3319 if templ_7745c5c3_Err != nil {
3319- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 631, Col: 135}3320+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 135}
3320 }3321 }
3321- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))3322+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var161))
3322 if templ_7745c5c3_Err != nil {3323 if templ_7745c5c3_Err != nil {
3323 return templ_7745c5c3_Err3324 return templ_7745c5c3_Err
3324 }3325 }
3325- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 304, "</a></p>")3326+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "</a></p>")
3326 if templ_7745c5c3_Err != nil {3327 if templ_7745c5c3_Err != nil {
3327 return templ_7745c5c3_Err3328 return templ_7745c5c3_Err
3328 }3329 }
3329 }3330 }
3330- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 305, " ")3331+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, " ")
3331 if templ_7745c5c3_Err != nil {3332 if templ_7745c5c3_Err != nil {
3332 return templ_7745c5c3_Err3333 return templ_7745c5c3_Err
3333 }3334 }
3334 if p.Create != nil {3335 if p.Create != nil {
3335- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 306, "<form class=\"cform create\" method=\"post\" action=\"")3336+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "<form class=\"cform create\" method=\"post\" action=\"")
3336 if templ_7745c5c3_Err != nil {3337 if templ_7745c5c3_Err != nil {
3337 return templ_7745c5c3_Err3338 return templ_7745c5c3_Err
3338 }3339 }
3339- var templ_7745c5c3_Var163 templ.SafeURL3340+ var templ_7745c5c3_Var162 templ.SafeURL
3340- templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))3341+ templ_7745c5c3_Var162, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Create.Action))
3341 if templ_7745c5c3_Err != nil {3342 if templ_7745c5c3_Err != nil {
3342- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 634, Col: 83}3343+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 637, Col: 83}
3343 }3344 }
3344- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var163))3345+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var162))
3345 if templ_7745c5c3_Err != nil {3346 if templ_7745c5c3_Err != nil {
3346 return templ_7745c5c3_Err3347 return templ_7745c5c3_Err
3347 }3348 }
3348- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 307, "\"><input type=\"hidden\" name=\"source\" value=\"")3349+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 309, "\"><input type=\"hidden\" name=\"source\" value=\"")
3349 if templ_7745c5c3_Err != nil {3350 if templ_7745c5c3_Err != nil {
3350 return templ_7745c5c3_Err3351 return templ_7745c5c3_Err
3351 }3352 }
3352- var templ_7745c5c3_Var164 string3353+ var templ_7745c5c3_Var163 string
3353- templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)3354+ templ_7745c5c3_Var163, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Source)
3354 if templ_7745c5c3_Err != nil {3355 if templ_7745c5c3_Err != nil {
3355- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 635, Col: 62}3356+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 62}
3356 }3357 }
3357- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)3358+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var163)
3358 if templ_7745c5c3_Err != nil {3359 if templ_7745c5c3_Err != nil {
3359 return templ_7745c5c3_Err3360 return templ_7745c5c3_Err
3360 }3361 }
3361- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 308, "\"> <input type=\"hidden\" name=\"target\" value=\"")3362+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 310, "\"> <input type=\"hidden\" name=\"target\" value=\"")
3362 if templ_7745c5c3_Err != nil {3363 if templ_7745c5c3_Err != nil {
3363 return templ_7745c5c3_Err3364 return templ_7745c5c3_Err
3364 }3365 }
3365- var templ_7745c5c3_Var165 string3366+ var templ_7745c5c3_Var164 string
3366- templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)3367+ templ_7745c5c3_Var164, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Target)
3367 if templ_7745c5c3_Err != nil {3368 if templ_7745c5c3_Err != nil {
3368- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 636, Col: 62}3369+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 639, Col: 62}
3369 }3370 }
3370- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)3371+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var164)
3371 if templ_7745c5c3_Err != nil {3372 if templ_7745c5c3_Err != nil {
3372 return templ_7745c5c3_Err3373 return templ_7745c5c3_Err
3373 }3374 }
3374- 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=\"")3375+ 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=\"")
3375 if templ_7745c5c3_Err != nil {3376 if templ_7745c5c3_Err != nil {
3376 return templ_7745c5c3_Err3377 return templ_7745c5c3_Err
3377 }3378 }
3378- var templ_7745c5c3_Var166 string3379+ var templ_7745c5c3_Var165 string
3379- templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)3380+ templ_7745c5c3_Var165, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Create.Title)
3380 if templ_7745c5c3_Err != nil {3381 if templ_7745c5c3_Err != nil {
3381- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 638, Col: 97}3382+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 641, Col: 97}
3382 }3383 }
3383- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var166)3384+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var165)
3384 if templ_7745c5c3_Err != nil {3385 if templ_7745c5c3_Err != nil {
3385 return templ_7745c5c3_Err3386 return templ_7745c5c3_Err
3386 }3387 }
3387- 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>")3388+ 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>")
3388 if templ_7745c5c3_Err != nil {3389 if templ_7745c5c3_Err != nil {
3389 return templ_7745c5c3_Err3390 return templ_7745c5c3_Err
3390 }3391 }
3391 }3392 }
3392- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 311, " ")3393+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " ")
3393 if templ_7745c5c3_Err != nil {3394 if templ_7745c5c3_Err != nil {
3394 return templ_7745c5c3_Err3395 return templ_7745c5c3_Err
3395 }3396 }
3396 if p.HasDiff {3397 if p.HasDiff {
3397- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 312, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")3398+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "<div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")
3398 if templ_7745c5c3_Err != nil {3399 if templ_7745c5c3_Err != nil {
3399 return templ_7745c5c3_Err3400 return templ_7745c5c3_Err
3400 }3401 }
3401- var templ_7745c5c3_Var167 string3402+ var templ_7745c5c3_Var166 string
3402- templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))3403+ templ_7745c5c3_Var166, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
3403 if templ_7745c5c3_Err != nil {3404 if templ_7745c5c3_Err != nil {
3404- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 57}3405+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 57}
3405 }3406 }
3406- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))3407+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var166))
3407 if templ_7745c5c3_Err != nil {3408 if templ_7745c5c3_Err != nil {
3408 return templ_7745c5c3_Err3409 return templ_7745c5c3_Err
3409 }3410 }
3410- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 313, " · <span class=\"plus\">+")3411+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, " · <span class=\"plus\">+")
3411 if templ_7745c5c3_Err != nil {3412 if templ_7745c5c3_Err != nil {
3412 return templ_7745c5c3_Err3413 return templ_7745c5c3_Err
3413 }3414 }
3414- var templ_7745c5c3_Var168 string3415+ var templ_7745c5c3_Var167 string
3415- templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))3416+ templ_7745c5c3_Var167, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
3416 if templ_7745c5c3_Err != nil {3417 if templ_7745c5c3_Err != nil {
3417- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 97}3418+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 97}
3418 }3419 }
3419- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))3420+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var167))
3420 if templ_7745c5c3_Err != nil {3421 if templ_7745c5c3_Err != nil {
3421 return templ_7745c5c3_Err3422 return templ_7745c5c3_Err
3422 }3423 }
3423- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 314, "</span> <span class=\"minus\">-")3424+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 316, "</span> <span class=\"minus\">-")
3424 if templ_7745c5c3_Err != nil {3425 if templ_7745c5c3_Err != nil {
3425 return templ_7745c5c3_Err3426 return templ_7745c5c3_Err
3426 }3427 }
3427- var templ_7745c5c3_Var169 string3428+ var templ_7745c5c3_Var168 string
3428- templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))3429+ templ_7745c5c3_Var168, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
3429 if templ_7745c5c3_Err != nil {3430 if templ_7745c5c3_Err != nil {
3430- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 648, Col: 142}3431+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 651, Col: 142}
3431 }3432 }
3432- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var169))3433+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var168))
3433 if templ_7745c5c3_Err != nil {3434 if templ_7745c5c3_Err != nil {
3434 return templ_7745c5c3_Err3435 return templ_7745c5c3_Err
3435 }3436 }
3436- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 315, "</span></span> <span class=\"grow\"></span>")3437+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 317, "</span></span> <span class=\"grow\"></span>")
3437 if templ_7745c5c3_Err != nil {3438 if templ_7745c5c3_Err != nil {
3438 return templ_7745c5c3_Err3439 return templ_7745c5c3_Err
3439 }3440 }
@@ -3441,64 +3442,64 @@ func Compare(l Layout, p ComparePage) templ.Component {
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, 316, "</div>")3445+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, "</div>")
3445 if templ_7745c5c3_Err != nil {3446 if templ_7745c5c3_Err != nil {
3446 return templ_7745c5c3_Err3447 return templ_7745c5c3_Err
3447 }3448 }
3448 if p.Invisible {3449 if p.Invisible {
3449- 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>")3450+ 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>")
3450 if templ_7745c5c3_Err != nil {3451 if templ_7745c5c3_Err != nil {
3451 return templ_7745c5c3_Err3452 return templ_7745c5c3_Err
3452 }3453 }
3453 }3454 }
3454- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 318, " <div id=\"diffs\"")3455+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, " <div id=\"diffs\"")
3455 if templ_7745c5c3_Err != nil {3456 if templ_7745c5c3_Err != nil {
3456 return templ_7745c5c3_Err3457 return templ_7745c5c3_Err
3457 }3458 }
3458 if p.Both {3459 if p.Both {
3459- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 319, " data-diff=\"")3460+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-diff=\"")
3460 if templ_7745c5c3_Err != nil {3461 if templ_7745c5c3_Err != nil {
3461 return templ_7745c5c3_Err3462 return templ_7745c5c3_Err
3462 }3463 }
3463- var templ_7745c5c3_Var170 string3464+ var templ_7745c5c3_Var169 string
3464- templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)3465+ templ_7745c5c3_Var169, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3465 if templ_7745c5c3_Err != nil {3466 if templ_7745c5c3_Err != nil {
3466- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 661, Col: 23}3467+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 664, Col: 23}
3467 }3468 }
3468- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)3469+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var169)
3469 if templ_7745c5c3_Err != nil {3470 if templ_7745c5c3_Err != nil {
3470 return templ_7745c5c3_Err3471 return templ_7745c5c3_Err
3471 }3472 }
3472- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 320, "\"")3473+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")
3473 if templ_7745c5c3_Err != nil {3474 if templ_7745c5c3_Err != nil {
3474 return templ_7745c5c3_Err3475 return templ_7745c5c3_Err
3475 }3476 }
3476 } else {3477 } else {
3477- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 321, " data-view=\"")3478+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " data-view=\"")
3478 if templ_7745c5c3_Err != nil {3479 if templ_7745c5c3_Err != nil {
3479 return templ_7745c5c3_Err3480 return templ_7745c5c3_Err
3480 }3481 }
3481- var templ_7745c5c3_Var171 string3482+ var templ_7745c5c3_Var170 string
3482- templ_7745c5c3_Var171, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)3483+ templ_7745c5c3_Var170, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
3483 if templ_7745c5c3_Err != nil {3484 if templ_7745c5c3_Err != nil {
3484- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 663, Col: 23}3485+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 666, Col: 23}
3485 }3486 }
3486- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var171)3487+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var170)
3487 if templ_7745c5c3_Err != nil {3488 if templ_7745c5c3_Err != nil {
3488 return templ_7745c5c3_Err3489 return templ_7745c5c3_Err
3489 }3490 }
3490- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 322, "\"")3491+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, "\"")
3491 if templ_7745c5c3_Err != nil {3492 if templ_7745c5c3_Err != nil {
3492 return templ_7745c5c3_Err3493 return templ_7745c5c3_Err
3493 }3494 }
3494 }3495 }
3495 if p.Both && !p.Pinned {3496 if p.Both && !p.Pinned {
3496- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 323, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")3497+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
3497 if templ_7745c5c3_Err != nil {3498 if templ_7745c5c3_Err != nil {
3498 return templ_7745c5c3_Err3499 return templ_7745c5c3_Err
3499 }3500 }
3500 }3501 }
3501- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 324, ">")3502+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, ">")
3502 if templ_7745c5c3_Err != nil {3503 if templ_7745c5c3_Err != nil {
3503 return templ_7745c5c3_Err3504 return templ_7745c5c3_Err
3504 }3505 }
@@ -3508,14 +3509,14 @@ func Compare(l Layout, p ComparePage) templ.Component {
3508 return templ_7745c5c3_Err3509 return templ_7745c5c3_Err
3509 }3510 }
3510 }3511 }
3511- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 325, "</div>")3512+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</div>")
3512 if templ_7745c5c3_Err != nil {3513 if templ_7745c5c3_Err != nil {
3513 return templ_7745c5c3_Err3514 return templ_7745c5c3_Err
3514 }3515 }
3515 }3516 }
3516 return nil3517 return nil
3517 })3518 })
3518- templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var152), templ_7745c5c3_Buffer)3519+ templ_7745c5c3_Err = Shell(l, compareRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var151), templ_7745c5c3_Buffer)
3519 if templ_7745c5c3_Err != nil {3520 if templ_7745c5c3_Err != nil {
3520 return templ_7745c5c3_Err3521 return templ_7745c5c3_Err
3521 }3522 }
@@ -3539,173 +3540,173 @@ func compareRail(p ComparePage) templ.Component {
3539 }()3540 }()
3540 }3541 }
3541 ctx = templ.InitializeContext(ctx)3542 ctx = templ.InitializeContext(ctx)
3542- templ_7745c5c3_Var172 := templ.GetChildren(ctx)3543+ templ_7745c5c3_Var171 := templ.GetChildren(ctx)
3543- if templ_7745c5c3_Var172 == nil {3544+ if templ_7745c5c3_Var171 == nil {
3544- templ_7745c5c3_Var172 = templ.NopComponent3545+ templ_7745c5c3_Var171 = templ.NopComponent
3545 }3546 }
3546 ctx = templ.ClearChildren(ctx)3547 ctx = templ.ClearChildren(ctx)
3547- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 326, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")3548+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<section aria-labelledby=\"r-ahead\"><h2 id=\"r-ahead\">Commits <span class=\"count\">")
3548 if templ_7745c5c3_Err != nil {3549 if templ_7745c5c3_Err != nil {
3549 return templ_7745c5c3_Err3550 return templ_7745c5c3_Err
3550 }3551 }
3551- var templ_7745c5c3_Var173 string3552+ var templ_7745c5c3_Var172 string
3552- templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))3553+ templ_7745c5c3_Var172, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Ahead)))
3553 if templ_7745c5c3_Err != nil {3554 if templ_7745c5c3_Err != nil {
3554- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 679, Col: 67}3555+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 682, Col: 67}
3555 }3556 }
3556- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))3557+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var172))
3557 if templ_7745c5c3_Err != nil {3558 if templ_7745c5c3_Err != nil {
3558 return templ_7745c5c3_Err3559 return templ_7745c5c3_Err
3559 }3560 }
3560- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 327, "</span></h2><ul class=\"pcommits\">")3561+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "</span></h2><ul class=\"pcommits\">")
3561 if templ_7745c5c3_Err != nil {3562 if templ_7745c5c3_Err != nil {
3562 return templ_7745c5c3_Err3563 return templ_7745c5c3_Err
3563 }3564 }
3564 for _, c := range p.Ahead {3565 for _, c := range p.Ahead {
3565- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 328, "<li><a href=\"")3566+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "<li><a href=\"")
3566 if templ_7745c5c3_Err != nil {3567 if templ_7745c5c3_Err != nil {
3567 return templ_7745c5c3_Err3568 return templ_7745c5c3_Err
3568 }3569 }
3569- var templ_7745c5c3_Var174 templ.SafeURL3570+ var templ_7745c5c3_Var173 templ.SafeURL
3570- templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))3571+ templ_7745c5c3_Var173, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(c.CHref))
3571 if templ_7745c5c3_Err != nil {3572 if templ_7745c5c3_Err != nil {
3572- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 37}3573+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 37}
3573 }3574 }
3574- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))3575+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var173))
3575 if templ_7745c5c3_Err != nil {3576 if templ_7745c5c3_Err != nil {
3576 return templ_7745c5c3_Err3577 return templ_7745c5c3_Err
3577 }3578 }
3578- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 329, "\">")3579+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "\">")
3579 if templ_7745c5c3_Err != nil {3580 if templ_7745c5c3_Err != nil {
3580 return templ_7745c5c3_Err3581 return templ_7745c5c3_Err
3581 }3582 }
3582- var templ_7745c5c3_Var175 string3583+ var templ_7745c5c3_Var174 string
3583- templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)3584+ templ_7745c5c3_Var174, templ_7745c5c3_Err = templ.JoinStringErrs(c.Short)
3584 if templ_7745c5c3_Err != nil {3585 if templ_7745c5c3_Err != nil {
3585- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 683, Col: 49}3586+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 49}
3586 }3587 }
3587- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))3588+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var174))
3588 if templ_7745c5c3_Err != nil {3589 if templ_7745c5c3_Err != nil {
3589 return templ_7745c5c3_Err3590 return templ_7745c5c3_Err
3590 }3591 }
3591- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 330, "</a> <span class=\"s\">")3592+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, "</a> <span class=\"s\">")
3592 if templ_7745c5c3_Err != nil {3593 if templ_7745c5c3_Err != nil {
3593 return templ_7745c5c3_Err3594 return templ_7745c5c3_Err
3594 }3595 }
3595- var templ_7745c5c3_Var176 string3596+ var templ_7745c5c3_Var175 string
3596- templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)3597+ templ_7745c5c3_Var175, templ_7745c5c3_Err = templ.JoinStringErrs(c.Subject)
3597 if templ_7745c5c3_Err != nil {3598 if templ_7745c5c3_Err != nil {
3598- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 684, Col: 32}3599+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 687, Col: 32}
3599 }3600 }
3600- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))3601+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var175))
3601 if templ_7745c5c3_Err != nil {3602 if templ_7745c5c3_Err != nil {
3602 return templ_7745c5c3_Err3603 return templ_7745c5c3_Err
3603 }3604 }
3604- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 331, "</span> <span class=\"mute\">")3605+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "</span> <span class=\"mute\">")
3605 if templ_7745c5c3_Err != nil {3606 if templ_7745c5c3_Err != nil {
3606 return templ_7745c5c3_Err3607 return templ_7745c5c3_Err
3607 }3608 }
3608- var templ_7745c5c3_Var177 string3609+ var templ_7745c5c3_Var176 string
3609- templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)3610+ templ_7745c5c3_Var176, templ_7745c5c3_Err = templ.JoinStringErrs(c.Author)
3610 if templ_7745c5c3_Err != nil {3611 if templ_7745c5c3_Err != nil {
3611- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 686, Col: 16}3612+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 689, Col: 16}
3612 }3613 }
3613- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))3614+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var176))
3614 if templ_7745c5c3_Err != nil {3615 if templ_7745c5c3_Err != nil {
3615 return templ_7745c5c3_Err3616 return templ_7745c5c3_Err
3616 }3617 }
3617- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 332, " ")3618+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, " ")
3618 if templ_7745c5c3_Err != nil {3619 if templ_7745c5c3_Err != nil {
3619 return templ_7745c5c3_Err3620 return templ_7745c5c3_Err
3620 }3621 }
3621 if c.WhenAt != "" {3622 if c.WhenAt != "" {
3622- var templ_7745c5c3_Var178 string3623+ var templ_7745c5c3_Var177 string
3623- templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")3624+ templ_7745c5c3_Var177, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
3624 if templ_7745c5c3_Err != nil {3625 if templ_7745c5c3_Err != nil {
3625- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 15}3626+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 15}
3626 }3627 }
3627- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var178))3628+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var177))
3628 if templ_7745c5c3_Err != nil {3629 if templ_7745c5c3_Err != nil {
3629 return templ_7745c5c3_Err3630 return templ_7745c5c3_Err
3630 }3631 }
3631- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 333, "<time datetime=\"")3632+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "<time datetime=\"")
3632 if templ_7745c5c3_Err != nil {3633 if templ_7745c5c3_Err != nil {
3633 return templ_7745c5c3_Err3634 return templ_7745c5c3_Err
3634 }3635 }
3635- var templ_7745c5c3_Var179 string3636+ var templ_7745c5c3_Var178 string
3636- templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)3637+ templ_7745c5c3_Var178, templ_7745c5c3_Err = templ.ResolveAttributeValue(c.WhenAt)
3637 if templ_7745c5c3_Err != nil {3638 if templ_7745c5c3_Err != nil {
3638- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 42}3639+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 42}
3639 }3640 }
3640- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var179)3641+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var178)
3641 if templ_7745c5c3_Err != nil {3642 if templ_7745c5c3_Err != nil {
3642 return templ_7745c5c3_Err3643 return templ_7745c5c3_Err
3643 }3644 }
3644- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 334, "\">")3645+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "\">")
3645 if templ_7745c5c3_Err != nil {3646 if templ_7745c5c3_Err != nil {
3646 return templ_7745c5c3_Err3647 return templ_7745c5c3_Err
3647 }3648 }
3648- var templ_7745c5c3_Var180 string3649+ var templ_7745c5c3_Var179 string
3649- templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)3650+ templ_7745c5c3_Var179, templ_7745c5c3_Err = templ.JoinStringErrs(c.When)
3650 if templ_7745c5c3_Err != nil {3651 if templ_7745c5c3_Err != nil {
3651- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 688, Col: 53}3652+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 691, Col: 53}
3652 }3653 }
3653- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))3654+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var179))
3654 if templ_7745c5c3_Err != nil {3655 if templ_7745c5c3_Err != nil {
3655 return templ_7745c5c3_Err3656 return templ_7745c5c3_Err
3656 }3657 }
3657- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 335, "</time>")3658+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</time>")
3658 if templ_7745c5c3_Err != nil {3659 if templ_7745c5c3_Err != nil {
3659 return templ_7745c5c3_Err3660 return templ_7745c5c3_Err
3660 }3661 }
3661 }3662 }
3662- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 336, "</span></li>")3663+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "</span></li>")
3663 if templ_7745c5c3_Err != nil {3664 if templ_7745c5c3_Err != nil {
3664 return templ_7745c5c3_Err3665 return templ_7745c5c3_Err
3665 }3666 }
3666 }3667 }
3667- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 337, "</ul>")3668+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, "</ul>")
3668 if templ_7745c5c3_Err != nil {3669 if templ_7745c5c3_Err != nil {
3669 return templ_7745c5c3_Err3670 return templ_7745c5c3_Err
3670 }3671 }
3671 if len(p.Ahead) == 0 {3672 if len(p.Ahead) == 0 {
3672- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 338, "<p class=\"dim\">no commit ahead of ")3673+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "<p class=\"dim\">no commit ahead of ")
3673 if templ_7745c5c3_Err != nil {3674 if templ_7745c5c3_Err != nil {
3674 return templ_7745c5c3_Err3675 return templ_7745c5c3_Err
3675 }3676 }
3676- var templ_7745c5c3_Var181 string3677+ var templ_7745c5c3_Var180 string
3677- templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)3678+ templ_7745c5c3_Var180, templ_7745c5c3_Err = templ.JoinStringErrs(p.Target)
3678 if templ_7745c5c3_Err != nil {3679 if templ_7745c5c3_Err != nil {
3679- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 695, Col: 47}3680+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 698, Col: 47}
3680 }3681 }
3681- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))3682+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var180))
3682 if templ_7745c5c3_Err != nil {3683 if templ_7745c5c3_Err != nil {
3683 return templ_7745c5c3_Err3684 return templ_7745c5c3_Err
3684 }3685 }
3685- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 339, ".</p>")3686+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, ".</p>")
3686 if templ_7745c5c3_Err != nil {3687 if templ_7745c5c3_Err != nil {
3687 return templ_7745c5c3_Err3688 return templ_7745c5c3_Err
3688 }3689 }
3689 }3690 }
3690- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 340, "</section>")3691+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</section>")
3691 if templ_7745c5c3_Err != nil {3692 if templ_7745c5c3_Err != nil {
3692 return templ_7745c5c3_Err3693 return templ_7745c5c3_Err
3693 }3694 }
3694 if p.HasDiff {3695 if p.HasDiff {
3695- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 341, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")3696+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
3696 if templ_7745c5c3_Err != nil {3697 if templ_7745c5c3_Err != nil {
3697 return templ_7745c5c3_Err3698 return templ_7745c5c3_Err
3698 }3699 }
3699- var templ_7745c5c3_Var182 string3700+ var templ_7745c5c3_Var181 string
3700- templ_7745c5c3_Var182, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))3701+ templ_7745c5c3_Var181, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
3701 if templ_7745c5c3_Err != nil {3702 if templ_7745c5c3_Err != nil {
3702- return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 700, Col: 66}3703+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/mr.templ`, Line: 703, Col: 66}
3703 }3704 }
3704- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var182))3705+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var181))
3705 if templ_7745c5c3_Err != nil {3706 if templ_7745c5c3_Err != nil {
3706 return templ_7745c5c3_Err3707 return templ_7745c5c3_Err
3707 }3708 }
3708- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 342, "</span></h2>")3709+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "</span></h2>")
3709 if templ_7745c5c3_Err != nil {3710 if templ_7745c5c3_Err != nil {
3710 return templ_7745c5c3_Err3711 return templ_7745c5c3_Err
3711 }3712 }
@@ -3713,12 +3714,12 @@ func compareRail(p ComparePage) templ.Component {
3713 if templ_7745c5c3_Err != nil {3714 if templ_7745c5c3_Err != nil {
3714 return templ_7745c5c3_Err3715 return templ_7745c5c3_Err
3715 }3716 }
3716- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 343, "</section>")3717+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")
3717 if templ_7745c5c3_Err != nil {3718 if templ_7745c5c3_Err != nil {
3718 return templ_7745c5c3_Err3719 return templ_7745c5c3_Err
3719 }3720 }
3720 }3721 }
3721- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 344, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")3722+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 346, "<section aria-labelledby=\"r-cli\"><h2 id=\"r-cli\">From a terminal</h2>")
3722 if templ_7745c5c3_Err != nil {3723 if templ_7745c5c3_Err != nil {
3723 return templ_7745c5c3_Err3724 return templ_7745c5c3_Err
3724 }3725 }
@@ -3726,7 +3727,7 @@ func compareRail(p ComparePage) templ.Component {
3726 if templ_7745c5c3_Err != nil {3727 if templ_7745c5c3_Err != nil {
3727 return templ_7745c5c3_Err3728 return templ_7745c5c3_Err
3728 }3729 }
3729- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 345, "</section>")3730+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 347, "</section>")
3730 if templ_7745c5c3_Err != nil {3731 if templ_7745c5c3_Err != nil {
3731 return templ_7745c5c3_Err3732 return templ_7745c5c3_Err
3732 }3733 }
M internal/adapters/web/static/css/60-mr.css +6 -0
@@ -65,6 +65,12 @@
6565 & .menu-pop .btn kbd { margin-left: auto; }
6666 }
6767 .mmenu {
68+ & .menu-pop { box-sizing: border-box; min-width: 0; overflow-wrap: anywhere; }
69+ & .menu-pop > *, & form, & .d-modes, & .d-btns { min-width: 0; max-width: 100%; box-sizing: border-box; }
70+ & .d-acts { display: grid; gap: var(--s3); }
71+ & .d-modes label, & .d-check { min-width: 0; }
72+ & code { overflow-wrap: anywhere; }
73+ & .d-btns .btn { min-width: 0; max-width: 100%; white-space: normal; }
6874 & .d-modes { display: grid; gap: var(--s1); border: 0; padding: 0; margin: 0; }
6975 & .d-modes label, & .d-check {
7076 display: flex; gap: var(--s2); align-items: center; padding: 4px var(--s2); margin: 0 calc(-1 * var(--s2));
@@ -65,6 +65,12 @@
65 & .menu-pop .btn kbd { margin-left: auto; }65 & .menu-pop .btn kbd { margin-left: auto; }
66 }66 }
67 .mmenu {67 .mmenu {
68+ & .menu-pop { box-sizing: border-box; min-width: 0; overflow-wrap: anywhere; }
69+ & .menu-pop > *, & form, & .d-modes, & .d-btns { min-width: 0; max-width: 100%; box-sizing: border-box; }
70+ & .d-acts { display: grid; gap: var(--s3); }
71+ & .d-modes label, & .d-check { min-width: 0; }
72+ & code { overflow-wrap: anywhere; }
73+ & .d-btns .btn { min-width: 0; max-width: 100%; white-space: normal; }
68 & .d-modes { display: grid; gap: var(--s1); border: 0; padding: 0; margin: 0; }74 & .d-modes { display: grid; gap: var(--s1); border: 0; padding: 0; margin: 0; }
69 & .d-modes label, & .d-check {75 & .d-modes label, & .d-check {
70 display: flex; gap: var(--s2); align-items: center; padding: 4px var(--s2); margin: 0 calc(-1 * var(--s2));76 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
@@ -285,6 +285,10 @@ window.ermiteMR = (() => {
285285 let folded = false;
286286 try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ }
287287 if (folded) foldFiles(true);
288+ // The page answers a refused action from the address of the action: show
289+ // the address of the request, so that a reload does not post again.
290+ const canonical = $('#diffs[data-canonical]')?.dataset.canonical;
291+ if (canonical && location.pathname !== canonical) history.replaceState(history.state, '', canonical + location.hash);
288292 watch();
289293 // A link to a file or a comment that is not loaded yet.
290294 const hash = () => {
@@ -285,6 +285,10 @@ window.ermiteMR = (() => {
285 let folded = false;285 let folded = false;
286 try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ }286 try { folded = localStorage.getItem('mr-files-folded') === '1'; } catch { /* no storage: open */ }
287 if (folded) foldFiles(true);287 if (folded) foldFiles(true);
288+ // The page answers a refused action from the address of the action: show
289+ // the address of the request, so that a reload does not post again.
290+ const canonical = $('#diffs[data-canonical]')?.dataset.canonical;
291+ if (canonical && location.pathname !== canonical) history.replaceState(history.state, '', canonical + location.hash);
288 watch();292 watch();
289 // A link to a file or a comment that is not loaded yet.293 // A link to a file or a comment that is not loaded yet.
290 const hash = () => {294 const hash = () => {
M internal/app/web_mr_test.go +4 -1
@@ -468,6 +468,9 @@ func TestWebMergeRequestDraft(t *testing.T) {
468468
469469 res := b.form("/proj/merge-requests/1/merge", token, url.Values{"mode": {"fast-forward"}, "head_id": {head}})
470470 assert.Equal(t, http.StatusConflict, res.status, "a draft is not merged")
471+ assert.Contains(t, res.body, `data-canonical="/proj/merge-requests/1"`, "the refused page names its own address")
472+ assert.Contains(t, res.body, `class="d-err"`, "the reason stays inline")
473+ assert.NotContains(t, b.get("/proj/merge-requests/1", as(token)).body, "data-canonical", "the plain page has no marker")
471474
472475 res = b.form("/proj/merge-requests/1/ready", token, nil)
473476 require.Equal(t, http.StatusSeeOther, res.status, res.body)
@@ -777,7 +780,7 @@ func TestWebMergeRequestMergeabilityBadge(t *testing.T) {
777780 assert.Contains(t, body, `name="mode" value="fast-forward" checked`)
778781 assert.NotContains(t, body, `value="fast-forward" checked disabled`)
779782 assert.Contains(t, body, `id="mr-signing"`, "squash and merge commits say who signs them")
780- assert.Contains(t, body, "signed with ermite's own key, generated automatically on first start")
783+ assert.Contains(t, body, "signed with ermite's own key (generated on first start)")
781784 assert.Contains(t, body, "<code>ermite signing-key show</code>")
782785 assert.Contains(t, body, "SHA256:", "the fingerprint of the signing key")
783786 assert.Contains(t, body, `:disabled="`, "the controls follow the badge")
@@ -468,6 +468,9 @@ func TestWebMergeRequestDraft(t *testing.T) {
468 468
469 res := b.form("/proj/merge-requests/1/merge", token, url.Values{"mode": {"fast-forward"}, "head_id": {head}})469 res := b.form("/proj/merge-requests/1/merge", token, url.Values{"mode": {"fast-forward"}, "head_id": {head}})
470 assert.Equal(t, http.StatusConflict, res.status, "a draft is not merged")470 assert.Equal(t, http.StatusConflict, res.status, "a draft is not merged")
471+ assert.Contains(t, res.body, `data-canonical="/proj/merge-requests/1"`, "the refused page names its own address")
472+ assert.Contains(t, res.body, `class="d-err"`, "the reason stays inline")
473+ assert.NotContains(t, b.get("/proj/merge-requests/1", as(token)).body, "data-canonical", "the plain page has no marker")
471 474
472 res = b.form("/proj/merge-requests/1/ready", token, nil)475 res = b.form("/proj/merge-requests/1/ready", token, nil)
473 require.Equal(t, http.StatusSeeOther, res.status, res.body)476 require.Equal(t, http.StatusSeeOther, res.status, res.body)
@@ -777,7 +780,7 @@ func TestWebMergeRequestMergeabilityBadge(t *testing.T) {
777 assert.Contains(t, body, `name="mode" value="fast-forward" checked`)780 assert.Contains(t, body, `name="mode" value="fast-forward" checked`)
778 assert.NotContains(t, body, `value="fast-forward" checked disabled`)781 assert.NotContains(t, body, `value="fast-forward" checked disabled`)
779 assert.Contains(t, body, `id="mr-signing"`, "squash and merge commits say who signs them")782 assert.Contains(t, body, `id="mr-signing"`, "squash and merge commits say who signs them")
780- assert.Contains(t, body, "signed with ermite's own key, generated automatically on first start")783+ assert.Contains(t, body, "signed with ermite's own key (generated on first start)")
781 assert.Contains(t, body, "<code>ermite signing-key show</code>")784 assert.Contains(t, body, "<code>ermite signing-key show</code>")
782 assert.Contains(t, body, "SHA256:", "the fingerprint of the signing key")785 assert.Contains(t, body, "SHA256:", "the fingerprint of the signing key")
783 assert.Contains(t, body, `:disabled="`, "the controls follow the badge")786 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 43

↑↓ moveenter openesc close