Monorepo for Tangled
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

appview/repo/pulls/new: 1st drafts for the new pr page

frontend-only code for the moment.
needs htmx & backend implementations.

- `new-patch.html`: for patch-based pr creation
- `new-branch.html`: for branch-based pr creation
- `new-fork.html`: for fork-based pr creation

Signed-off-by: eti <eti@eti.tf>

eti e17f2edc 3518f473

+1032
+345
appview/pages/templates/repo/pulls/new-branch.html
··· 1 + {{ define "title" }}new pull &middot; {{ .RepoInfo.FullName }}{{ end }} {{define "repoContent" }} 2 + 3 + <div class="flex flex-row gap-4"> 4 + <div class="flex flex-col items-center relative w-6"> 5 + <div class="absolute top-0 bottom-0 w-px bg-gray-200"></div> 6 + </div> 7 + <div class="flex flex-col gap-10"> 8 + <div id="step-1" class="flex flex-col gap-4"> 9 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 10 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">1</span> 11 + </div> 12 + <div class="flex flex-col gap-1"> 13 + <span class="font-bold text-sm uppercase dark:text-white">method</span> 14 + <p class="text-gray-700 text-sm"> 15 + choose your preferred pull strategy. 16 + <a href="#">more information here</a> 17 + </p> 18 + </div> 19 + <div class="flex gap-4 w-full"> 20 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5"> 21 + <span class="text-base">patch</span> 22 + <span class="text-gray-700">paste a `git diff` or a `git format-patch`</span> 23 + </button> 24 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5 before:shadow-[inset_0_-2px_0_0_rgba(0,0,0,0.15),0_2px_1px_0_rgba(0,0,0,0.06)] before:bg-gray-50 dark:before:bg-gray-700"> 25 + <span class="text-base">compare branches</span> 26 + <span class="text-gray-700">select a source branch</span> 27 + </button> 28 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5"> 29 + <span class="text-base">compare forks</span> 30 + <span class="text-gray-700">select a fork and branch as the source</span> 31 + </button> 32 + </div> 33 + </div> 34 + <div id="step-2" class="flex flex-col gap-4"> 35 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 36 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">2</span> 37 + </div> 38 + <div class="header flex flex-col gap-1"> 39 + <span class="font-bold text-sm uppercase dark:text-white">compare</span> 40 + </div> 41 + <div class="flex gap-4 w-full"> 42 + <div class="flex flex-col gap-1.5"> 43 + <label for="target-branch" class="uppercase p-0">merge into</label> 44 + <div class="relative inline-flex border border-gray-200 divide-x divide-gray-200 rounded overflow-hidden"> 45 + <span class="rounded-l bg-gray-50 py-1 px-2 text-gray-600">tangled.org</span> 46 + <select name="target-branch" id="target-branch" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 47 + <option value="master">master</option> 48 + <option value="master">master</option> 49 + <option value="master">master</option> 50 + </select> 51 + <div class="self-center absolute right-2 color-red-600 border-none">{{ i "chevron-down" "size-4" }}</div> 52 + </div> 53 + </div> 54 + <div class="flex flex-col gap-1.5"> 55 + <label for="pull-from" class="uppercase p-0">pull from</label> 56 + <div class="relative inline-flex"> 57 + <select name="pull-from" id="pull-from" class="rounded border border-gray-200 min-w-80 py-1 px-2 pr-10 appearance-none"> 58 + <option value="master">ci-thing</option> 59 + <option value="master">ci-other</option> 60 + <option value="master">ci-statuses</option> 61 + </select> 62 + <div class="self-center absolute right-2 color-red-600">{{ i "chevron-down" "size-4" }}</div> 63 + </div> 64 + </div> 65 + </div> 66 + <fieldset class="flex flex-row gap-2"> 67 + <input type="checkbox" id="stacked" name="stacked" /> 68 + <label for="stacked" class="flex flex-row gap-2 text-base"> 69 + submit as stacked PRs. 70 + <a href="#">more information</a> 71 + </label> 72 + </fieldset> 73 + <p class="text-gray-700">Title and description are optional; if left out, they will be extracted from the first commit.</p> 74 + </div> 75 + <div id="step-3" class="flex flex-col gap-4"> 76 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 77 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">3</span> 78 + </div> 79 + <div class="header flex flex-col gap-1"> 80 + <span class="font-bold text-sm uppercase dark:text-white">review</span> 81 + </div> 82 + <div class="flex flex-col gap-4 w-full"> 83 + <div class="flex w-full flex-row justify-between"> 84 + <span>4 commits</span> 85 + <span class="text-gray-700">master <-> ci-statuses</span> 86 + </div> 87 + <div class="flex flex-col gap-2"> 88 + <div class="flex flex-row justify-between p-2 border border-gray-200 rounded"> 89 + <div class="flex flex-row gap-4"> 90 + <div class="flex flex-row gap-2 items-center"> 91 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 92 + <span>user.tld</span> 93 + </div> 94 + <span class="text-gray-700">knotmirror: add missing returns</span> 95 + </div> 96 + <div class="flex flex-row gap-2"> 97 + <span class="text-gray-500">2 hours ago</span> 98 + <span>233111b3</span> 99 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 100 + </div> 101 + </div> 102 + <div class="flex flex-row justify-between p-2 border border-gray-200 rounded"> 103 + <div class="flex flex-row gap-4"> 104 + <div class="flex flex-row gap-2 items-center"> 105 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 106 + <span>user.tld</span> 107 + </div> 108 + <span class="text-gray-700">knotmirror: add missing returns</span> 109 + </div> 110 + <div class="flex flex-row gap-2"> 111 + <span class="text-gray-500">2 hours ago</span> 112 + <span>233111b3</span> 113 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 114 + </div> 115 + </div> 116 + <div class="flex flex-row justify-between p-2 border border-gray-200 rounded"> 117 + <div class="flex flex-row gap-4"> 118 + <div class="flex flex-row gap-2 items-center"> 119 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 120 + <span>user.tld</span> 121 + </div> 122 + <span class="text-gray-700">knotmirror: add missing returns</span> 123 + </div> 124 + <div class="flex flex-row gap-2"> 125 + <span class="text-gray-500">2 hours ago</span> 126 + <span>233111b3</span> 127 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 128 + </div> 129 + </div> 130 + <div class="flex flex-row justify-between p-2 border border-gray-200 rounded"> 131 + <div class="flex flex-row gap-4"> 132 + <div class="flex flex-row gap-2 items-center"> 133 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 134 + <span>user.tld</span> 135 + </div> 136 + <span class="text-gray-700">knotmirror: add missing returns</span> 137 + </div> 138 + <div class="flex flex-row gap-2"> 139 + <span class="text-gray-500">2 hours ago</span> 140 + <span>233111b3</span> 141 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 142 + </div> 143 + </div> 144 + </div> 145 + <div class="flex flex-row justify-between items-center"> 146 + <p>showing 2 changed files with 5 additions and 1 deletion</p> 147 + <div class="flex gap-2"> 148 + <button class="btn gap-2">{{ i "fold-vertical" "size-4" }} collapse all</button> 149 + <div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden"> 150 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center unified">{{ i "square-split-vertical" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} unified</button> 151 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center split">{{ i "square-split-horizontal" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} split</button> 152 + </div> 153 + </div> 154 + </div> 155 + <details open id="file-cmd/knotmirror/main.go" class="group border border-gray-200 dark:border-gray-700 w-full mx-auto rounded bg-white dark:bg-gray-800 drop-shadow-sm" tabindex="1"> 156 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 157 + <div id="diff-file-header" class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 158 + <div id="left-side-items" class="p-2 flex gap-2 items-center overflow-x-auto"> 159 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 160 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 161 + <div class="flex items-center font-mono text-sm"> 162 + <span class="rounded-l p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+3</span> 163 + <span class="rounded-r p-1 select-none bg-red-100 text-red-700 dark:bg-red-800/50 dark:text-red-400">-1</span> 164 + </div> 165 + <div class="flex gap-2 items-center overflow-x-auto">cmd/knotmirror/main.go</div> 166 + </div> 167 + </div> 168 + </summary> 169 + <div class="transition-all duration-700 ease-in-out"> 170 + <div class="overflow-x-auto font-mono leading-normal"> 171 + <div class="overflow-x-auto"> 172 + <div class="inline-flex flex-col min-w-full"> 173 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 174 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 175 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">14</a></span> 176 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">14</a></span> 177 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 178 + <span class="px-2 whitespace-pre">func main() {</span> 179 + </span> 180 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 181 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">15</a></span> 182 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">15</a></span> 183 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 184 + <span class="px-2 whitespace-pre">args := os.Args[1:]</span> 185 + </span> 186 + <span class="bg-red-100 dark:bg-red-800/30 text-red-700 dark:text-red-400 inline-flex w-full items-center scroll-mt-48"> 187 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">16</a></span> 188 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><span aria-hidden="true" class="invisible">16</span></span> 189 + <span class="w-5 flex-shrink-0 select-none text-center">-</span> 190 + <span class="px-2 whitespace-pre">if err := run(args); err != nil {</span> 191 + </span> 192 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 193 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">16</span></span> 194 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">16</a></span> 195 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 196 + <span class="px-2 whitespace-pre">cfg := config.Load()</span> 197 + </span> 198 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 199 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">17</span></span> 200 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">17</a></span> 201 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 202 + <span class="px-2 whitespace-pre">if err := run(args, cfg); err != nil {</span> 203 + </span> 204 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 205 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">18</span></span> 206 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">18</a></span> 207 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 208 + <span class="px-2 whitespace-pre">log.Fatal(err)</span> 209 + </span> 210 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 211 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">17</a></span> 212 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">19</a></span> 213 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 214 + <span class="px-2 whitespace-pre">}</span> 215 + </span> 216 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 217 + </div> 218 + </div> 219 + </div> 220 + </div> 221 + </details> 222 + <details id="file-README.md" class="group border border-gray-200 dark:border-gray-700 w-full mx-auto rounded bg-white dark:bg-gray-800 drop-shadow-sm" tabindex="2"> 223 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 224 + <div id="diff-file-header" class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 225 + <div id="left-side-items" class="p-2 flex gap-2 items-center overflow-x-auto"> 226 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 227 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 228 + <div class="flex items-center font-mono text-sm"> 229 + <span class="rounded p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+2</span> 230 + </div> 231 + <div class="flex gap-2 items-center overflow-x-auto">README.md</div> 232 + </div> 233 + </div> 234 + </summary> 235 + <div class="transition-all duration-700 ease-in-out"> 236 + <div class="overflow-x-auto font-mono leading-normal"> 237 + <div class="overflow-x-auto"> 238 + <div class="inline-flex flex-col min-w-full"> 239 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 240 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 241 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">5</a></span> 242 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">5</a></span> 243 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 244 + <span class="px-2 whitespace-pre">## Installation</span> 245 + </span> 246 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 247 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">6</span></span> 248 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">6</a></span> 249 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 250 + <span class="px-2 whitespace-pre">go install ./cmd/knotmirror@latest</span> 251 + </span> 252 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 253 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">7</span></span> 254 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">7</a></span> 255 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 256 + <span class="px-2 whitespace-pre"></span> 257 + </span> 258 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 259 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">6</a></span> 260 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">8</a></span> 261 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 262 + <span class="px-2 whitespace-pre">## Usage</span> 263 + </span> 264 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 265 + </div> 266 + </div> 267 + </div> 268 + </div> 269 + </details> 270 + </div> 271 + </div> 272 + <div id="step-4" class="flex flex-col gap-4"> 273 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 274 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">4</span> 275 + </div> 276 + <div class="header flex flex-col gap-1"> 277 + <span class="font-bold text-sm uppercase dark:text-white">details</span> 278 + </div> 279 + <div class="flex gap-4 w-full"> 280 + <div class="flex flex-col gap-4 w-2/3"> 281 + <div class="flex flex-col gap-1.5 w-full"> 282 + <label for="title" class="text-sm uppercase p-0">title</label> 283 + <input type="text" id="title" name="title" value="knotmirror: add missing returns" class="rounded bg-white border border-gray-200 min-w-80 py-1 px-2" /> 284 + </div> 285 + <div class="flex flex-col gap-2"> 286 + <div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden self-start"> 287 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center unified">{{ i "pencil" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} write</button> 288 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center split">{{ i "eye" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} preview</button> 289 + </div> 290 + <textarea name="description" id="description" class="rounded bg-white border border-gray-200 min-w-80 min-h-48" rows="4"> 291 + Update the visual styling for pull request rounds to provide better visual distinction between active and inactive rounds. Changes include: 292 + - Better background colors for active rounds (blue tint) 293 + - Improved text contrast in both light and dark modes 294 + - Consistent border handling and overflow clipping 295 + 296 + Signed-off-by: eti &lt;eti@eti.tf&gt;</textarea 297 + > 298 + </div> 299 + <div class="flex flex-row gap-4 justify-end items-center"> 300 + <span class="text-red-600">× can’t automatically merge</span> 301 + <span class="text-gray-600">you can still create the pull request</span> 302 + <button class="btn-create gap-2">{{ i "git-pull-request-create" "size-4" }} create pull request</button> 303 + </div> 304 + </div> 305 + <div class="flex flex-col gap-4 w-1/3"> 306 + <div class="flex flex-col gap-1.5"> 307 + <label for="labels" class="uppercase p-0">labels</label> 308 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 309 + <select name="labels" id="labels" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 310 + <option value="" hidden class="hidden">select a label</option> 311 + <option value="good-first-issue">good-first-issue</option> 312 + <option value="wontfix">wontfix</option> 313 + <option value="tngl">tngl</option> 314 + </select> 315 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 316 + </div> 317 + </div> 318 + <div class="flex flex-col gap-1.5"> 319 + <label for="assignees" class="uppercase p-0">assignees</label> 320 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 321 + <select name="assignees" id="assignees" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 322 + <option value="" hidden>select an assignee</option> 323 + <option value="akshay">akshay</option> 324 + <option value="anirudh">anirudh</option> 325 + <option value="boltless">boltless</option> 326 + <option value="lewis">lewis</option> 327 + <option value="eti">eti</option> 328 + </select> 329 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 330 + </div> 331 + <div class="flex justify-end"> 332 + <a href="#">assign to me</a> 333 + </div> 334 + </div> 335 + <fieldset class="flex flex-row gap-2 items-baseline"> 336 + <input type="checkbox" id="squash" name="squash" class="pt-1" /> 337 + <label for="squash" class="flex flex-row gap-2 text-base p-0">squash commits when merge request is accepted</label> 338 + </fieldset> 339 + </div> 340 + </div> 341 + </div> 342 + </div> 343 + </div> 344 + 345 + {{ end }}
+416
appview/pages/templates/repo/pulls/new-fork.html
··· 1 + {{ define "title" }}new pull &middot; {{ .RepoInfo.FullName }}{{ end }} {{define "repoContent" }} 2 + 3 + <div class="flex flex-row gap-4"> 4 + <div class="flex flex-col items-center relative w-6"> 5 + <div class="absolute top-0 bottom-0 w-px bg-gray-200"></div> 6 + </div> 7 + <div class="flex flex-col gap-10 w-full"> 8 + <div id="step-1" class="flex flex-col gap-4"> 9 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 10 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">1</span> 11 + </div> 12 + <div class="flex flex-col gap-1"> 13 + <span class="font-bold text-sm uppercase dark:text-white">method</span> 14 + <p class="text-gray-700 text-sm"> 15 + choose your preferred pull strategy. 16 + <a href="#">more information here</a> 17 + </p> 18 + </div> 19 + <div class="flex gap-4 w-full"> 20 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5"> 21 + <span class="text-base">patch</span> 22 + <span class="text-gray-700">paste a `git diff` or a `git format-patch`</span> 23 + </button> 24 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5"> 25 + <span class="text-base">compare branches</span> 26 + <span class="text-gray-700">select a source branch</span> 27 + </button> 28 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5 before:shadow-[inset_0_-2px_0_0_rgba(0,0,0,0.15),0_2px_1px_0_rgba(0,0,0,0.06)] before:bg-gray-50 dark:before:bg-gray-700"> 29 + <span class="text-base">compare forks</span> 30 + <span class="text-gray-700">select a fork and branch as the source</span> 31 + </button> 32 + </div> 33 + </div> 34 + <div id="step-2" class="flex flex-col gap-4"> 35 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 36 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">2</span> 37 + </div> 38 + <div class="header flex flex-col gap-1"> 39 + <span class="font-bold text-sm uppercase dark:text-white">compare</span> 40 + </div> 41 + <div class="flex gap-4 w-full"> 42 + <div class="flex flex-col gap-1.5"> 43 + <label for="target-branch" class="uppercase p-0">merge into</label> 44 + <div class="relative inline-flex border border-gray-200 divide-x divide-gray-200 rounded overflow-hidden"> 45 + <span class="rounded-l bg-gray-50 py-1 px-2 text-gray-600">tangled.org</span> 46 + <select name="target-branch" id="target-branch" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 47 + <option value="master">master</option> 48 + <option value="master">master</option> 49 + <option value="master">master</option> 50 + </select> 51 + <div class="self-center absolute right-2 color-red-600 border-none">{{ i "chevron-down" "size-4" }}</div> 52 + </div> 53 + </div> 54 + <div class="flex flex-col gap-1.5"> 55 + <label for="pull-from" class="uppercase p-0">pull from</label> 56 + <div class="relative inline-flex"> 57 + <select name="pull-from" id="pull-from" class="rounded border border-gray-200 min-w-80 py-1 px-2 pr-10 appearance-none"> 58 + <option value="master">ci-thing</option> 59 + <option value="master">ci-other</option> 60 + <option value="master">ci-statuses</option> 61 + </select> 62 + <div class="self-center absolute right-2 color-red-600">{{ i "chevron-down" "size-4" }}</div> 63 + </div> 64 + </div> 65 + </div> 66 + <fieldset class="flex flex-row gap-2"> 67 + <input type="checkbox" id="stacked" name="stacked" /> 68 + <label for="stacked" class="flex flex-row gap-2 text-base"> 69 + submit as stacked PRs. 70 + <a href="#">more information</a> 71 + </label> 72 + </fieldset> 73 + <p class="text-gray-700">Title and description are optional; if left out, they will be extracted from the first commit.</p> 74 + </div> 75 + <div id="step-3" class="flex flex-col gap-4"> 76 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 77 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">3</span> 78 + </div> 79 + <div class="header flex flex-col gap-1"> 80 + <span class="font-bold text-sm uppercase dark:text-white">review</span> 81 + </div> 82 + <div class="flex flex-col gap-4 w-full"> 83 + <div class="flex w-full flex-row justify-between"> 84 + <div class="flex flex-row gap-2 items-center"> 85 + {{ i "chevrons-down-up" "size-4 mt-px" }} 86 + <span>stack</span> 87 + <span class="text-gray-700">6 pull requests</span> 88 + </div> 89 + <span class="text-gray-700">master <-> ci-statuses</span> 90 + </div> 91 + <div class="flex flex-col rounded border border-gray-200"> 92 + <div class="flex flex-row justify-between border-b border-gray-200"> 93 + <div class="flex flex-row gap-2 items-center px-3"> 94 + {{ i "git-pull-request" "size-4 text-gray-700" }} 95 + <span>Fix: Prevent buffer overflows</span> 96 + </div> 97 + <div class="flex flex-row divide-x divide-gray-200"> 98 + <div class="flex flex-row gap-2 items-center px-3"> 99 + <span class="text-gray-700">2 hours ago</span> 100 + <span>233111b3</span> 101 + </div> 102 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 103 + <div class="flex items-center p-3">{{ i "chevron-down" "size-4" }}</div> 104 + </div> 105 + </div> 106 + <div class="flex flex-col gap-8 p-4"> 107 + <div class="flex gap-4 w-full"> 108 + <div class="flex flex-col gap-4 w-2/3"> 109 + <div class="flex flex-col gap-1.5 w-full"> 110 + <label for="title" class="text-sm uppercase p-0">title</label> 111 + <input type="text" id="title" name="title" value="knotmirror: add missing returns" class="rounded bg-white border border-gray-200 min-w-80 py-1 px-2" /> 112 + </div> 113 + <div class="flex flex-col gap-2"> 114 + <div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden self-start"> 115 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center unified">{{ i "pencil" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} write</button> 116 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center split">{{ i "eye" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} preview</button> 117 + </div> 118 + <textarea name="description" id="description" class="rounded bg-white border border-gray-200 min-w-80 min-h-48" rows="4"></textarea> 119 + </div> 120 + </div> 121 + <div class="flex flex-col gap-4 w-1/3"> 122 + <div class="flex flex-col gap-1.5"> 123 + <label for="labels" class="uppercase p-0">labels</label> 124 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 125 + <select name="labels" id="labels" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 126 + <option value="" hidden class="hidden">select a label</option> 127 + <option value="good-first-issue">good-first-issue</option> 128 + <option value="wontfix">wontfix</option> 129 + <option value="tngl">tngl</option> 130 + </select> 131 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 132 + </div> 133 + </div> 134 + <div class="flex flex-col gap-1.5"> 135 + <label for="assignees" class="uppercase p-0">assignees</label> 136 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 137 + <select name="assignees" id="assignees" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 138 + <option value="" hidden>select an assignee</option> 139 + <option value="akshay">akshay</option> 140 + <option value="anirudh">anirudh</option> 141 + <option value="boltless">boltless</option> 142 + <option value="lewis">lewis</option> 143 + <option value="eti">eti</option> 144 + </select> 145 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 146 + </div> 147 + <div class="flex justify-end"> 148 + <a href="#">assign to me</a> 149 + </div> 150 + </div> 151 + </div> 152 + </div> 153 + <hr /> 154 + <div class="flex flex-col gap-4"> 155 + <div class="flex flex-row justify-between items-center"> 156 + <p>showing 2 changed files with 5 additions and 1 deletion</p> 157 + <div class="flex gap-2"> 158 + <button class="btn gap-2">{{ i "fold-vertical" "size-4" }} collapse all</button> 159 + <div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden"> 160 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center unified">{{ i "square-split-vertical" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} unified</button> 161 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center split">{{ i "square-split-horizontal" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} split</button> 162 + </div> 163 + </div> 164 + </div> 165 + <details open id="file-cmd/knotmirror/main.go" class="group border border-gray-200 dark:border-gray-700 w-full mx-auto rounded bg-white dark:bg-gray-800 drop-shadow-sm" tabindex="1"> 166 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 167 + <div id="diff-file-header" class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 168 + <div id="left-side-items" class="p-2 flex gap-2 items-center overflow-x-auto"> 169 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 170 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 171 + <div class="flex items-center font-mono text-sm"> 172 + <span class="rounded-l p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+3</span> 173 + <span class="rounded-r p-1 select-none bg-red-100 text-red-700 dark:bg-red-800/50 dark:text-red-400">-1</span> 174 + </div> 175 + <div class="flex gap-2 items-center overflow-x-auto">cmd/knotmirror/main.go</div> 176 + </div> 177 + </div> 178 + </summary> 179 + <div class="transition-all duration-700 ease-in-out"> 180 + <div class="overflow-x-auto font-mono leading-normal"> 181 + <div class="overflow-x-auto"> 182 + <div class="inline-flex flex-col min-w-full"> 183 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 184 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 185 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">14</a></span> 186 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">14</a></span> 187 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 188 + <span class="px-2 whitespace-pre">func main() {</span> 189 + </span> 190 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 191 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">15</a></span> 192 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">15</a></span> 193 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 194 + <span class="px-2 whitespace-pre">args := os.Args[1:]</span> 195 + </span> 196 + <span class="bg-red-100 dark:bg-red-800/30 text-red-700 dark:text-red-400 inline-flex w-full items-center scroll-mt-48"> 197 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">16</a></span> 198 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><span aria-hidden="true" class="invisible">16</span></span> 199 + <span class="w-5 flex-shrink-0 select-none text-center">-</span> 200 + <span class="px-2 whitespace-pre">if err := run(args); err != nil {</span> 201 + </span> 202 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 203 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">16</span></span> 204 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">16</a></span> 205 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 206 + <span class="px-2 whitespace-pre">cfg := config.Load()</span> 207 + </span> 208 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 209 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">17</span></span> 210 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">17</a></span> 211 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 212 + <span class="px-2 whitespace-pre">if err := run(args, cfg); err != nil {</span> 213 + </span> 214 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 215 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">18</span></span> 216 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">18</a></span> 217 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 218 + <span class="px-2 whitespace-pre">log.Fatal(err)</span> 219 + </span> 220 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 221 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">17</a></span> 222 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">19</a></span> 223 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 224 + <span class="px-2 whitespace-pre">}</span> 225 + </span> 226 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 227 + </div> 228 + </div> 229 + </div> 230 + </div> 231 + </details> 232 + <details id="file-README.md" class="group border border-gray-200 dark:border-gray-700 w-full mx-auto rounded bg-white dark:bg-gray-800 drop-shadow-sm" tabindex="2"> 233 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 234 + <div id="diff-file-header" class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 235 + <div id="left-side-items" class="p-2 flex gap-2 items-center overflow-x-auto"> 236 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 237 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 238 + <div class="flex items-center font-mono text-sm"> 239 + <span class="rounded p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+2</span> 240 + </div> 241 + <div class="flex gap-2 items-center overflow-x-auto">README.md</div> 242 + </div> 243 + </div> 244 + </summary> 245 + <div class="transition-all duration-700 ease-in-out"> 246 + <div class="overflow-x-auto font-mono leading-normal"> 247 + <div class="overflow-x-auto"> 248 + <div class="inline-flex flex-col min-w-full"> 249 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 250 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 251 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">5</a></span> 252 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">5</a></span> 253 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 254 + <span class="px-2 whitespace-pre">## Installation</span> 255 + </span> 256 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 257 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">6</span></span> 258 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">6</a></span> 259 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 260 + <span class="px-2 whitespace-pre">go install ./cmd/knotmirror@latest</span> 261 + </span> 262 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 263 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">7</span></span> 264 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">7</a></span> 265 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 266 + <span class="px-2 whitespace-pre"></span> 267 + </span> 268 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 269 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">6</a></span> 270 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">8</a></span> 271 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 272 + <span class="px-2 whitespace-pre">## Usage</span> 273 + </span> 274 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 275 + </div> 276 + </div> 277 + </div> 278 + </div> 279 + </details> 280 + </div> 281 + </div> 282 + </div> 283 + <div class="flex flex-col gap-2"> 284 + <div class="flex flex-row justify-between rounded border border-gray-200"> 285 + <div class="flex flex-row gap-2 items-center px-3"> 286 + {{ i "git-pull-request" "size-4 text-gray-700" }} 287 + <span>Fix: Prevent buffer overflows</span> 288 + </div> 289 + <div class="flex flex-row divide-x divide-gray-200"> 290 + <div class="flex flex-row gap-2 items-center px-3"> 291 + <span class="text-gray-700">2 hours ago</span> 292 + <span>233111b3</span> 293 + </div> 294 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 295 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 296 + </div> 297 + </div> 298 + <div class="flex flex-row justify-between rounded border border-gray-200"> 299 + <div class="flex flex-row gap-2 items-center px-3"> 300 + {{ i "git-pull-request" "size-4 text-gray-700" }} 301 + <span>Fix: Prevent buffer overflows</span> 302 + </div> 303 + <div class="flex flex-row divide-x divide-gray-200"> 304 + <div class="flex flex-row gap-2 items-center px-3"> 305 + <span class="text-gray-700">2 hours ago</span> 306 + <span>233111b3</span> 307 + </div> 308 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 309 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 310 + </div> 311 + </div> 312 + <div class="flex flex-row justify-between rounded border border-gray-200"> 313 + <div class="flex flex-row gap-2 items-center px-3"> 314 + {{ i "git-pull-request" "size-4 text-gray-700" }} 315 + <span>Fix: Prevent buffer overflows</span> 316 + </div> 317 + <div class="flex flex-row divide-x divide-gray-200"> 318 + <div class="flex flex-row gap-2 items-center px-3"> 319 + <span class="text-gray-700">2 hours ago</span> 320 + <span>233111b3</span> 321 + </div> 322 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 323 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 324 + </div> 325 + </div> 326 + <div class="flex flex-row justify-between rounded border border-gray-200"> 327 + <div class="flex flex-row gap-2 items-center px-3"> 328 + {{ i "git-pull-request" "size-4 text-gray-700" }} 329 + <span>Fix: Prevent buffer overflows</span> 330 + </div> 331 + <div class="flex flex-row divide-x divide-gray-200"> 332 + <div class="flex flex-row gap-2 items-center px-3"> 333 + <span class="text-gray-700">2 hours ago</span> 334 + <span>233111b3</span> 335 + </div> 336 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 337 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 338 + </div> 339 + </div> 340 + </div> 341 + </div> 342 + </div> 343 + <div id="step-4" class="flex flex-col gap-4"> 344 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 345 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">4</span> 346 + </div> 347 + <div class="header flex flex-col gap-1"> 348 + <span class="font-bold text-sm uppercase dark:text-white">details</span> 349 + </div> 350 + <div class="flex gap-4 w-full"> 351 + <div class="flex flex-col gap-4 w-2/3"> 352 + <div class="flex flex-col gap-1.5 w-full"> 353 + <label for="title" class="text-sm uppercase p-0">title</label> 354 + <input type="text" id="title" name="title" value="knotmirror: add missing returns" class="rounded bg-white border border-gray-200 min-w-80 py-1 px-2" /> 355 + </div> 356 + <div class="flex flex-col gap-2"> 357 + <div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden self-start"> 358 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center unified">{{ i "pencil" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} write</button> 359 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center split">{{ i "eye" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} preview</button> 360 + </div> 361 + <textarea name="description" id="description" class="rounded bg-white border border-gray-200 min-w-80 min-h-48" rows="4"> 362 + Update the visual styling for pull request rounds to provide better visual distinction between active and inactive rounds. Changes include: 363 + - Better background colors for active rounds (blue tint) 364 + - Improved text contrast in both light and dark modes 365 + - Consistent border handling and overflow clipping 366 + 367 + Signed-off-by: eti &lt;eti@eti.tf&gt;</textarea 368 + > 369 + </div> 370 + <div class="flex flex-row gap-4 justify-end items-center"> 371 + <span class="text-red-600">× can’t automatically merge</span> 372 + <span class="text-gray-600">you can still create the pull request</span> 373 + <button class="btn-create gap-2">{{ i "git-pull-request-create" "size-4" }} create pull request</button> 374 + </div> 375 + </div> 376 + <div class="flex flex-col gap-4 w-1/3"> 377 + <div class="flex flex-col gap-1.5"> 378 + <label for="labels" class="uppercase p-0">labels</label> 379 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 380 + <select name="labels" id="labels" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 381 + <option value="" hidden class="hidden">select a label</option> 382 + <option value="good-first-issue">good-first-issue</option> 383 + <option value="wontfix">wontfix</option> 384 + <option value="tngl">tngl</option> 385 + </select> 386 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 387 + </div> 388 + </div> 389 + <div class="flex flex-col gap-1.5"> 390 + <label for="assignees" class="uppercase p-0">assignees</label> 391 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 392 + <select name="assignees" id="assignees" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 393 + <option value="" hidden>select an assignee</option> 394 + <option value="akshay">akshay</option> 395 + <option value="anirudh">anirudh</option> 396 + <option value="boltless">boltless</option> 397 + <option value="lewis">lewis</option> 398 + <option value="eti">eti</option> 399 + </select> 400 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 401 + </div> 402 + <div class="flex justify-end"> 403 + <a href="#">assign to me</a> 404 + </div> 405 + </div> 406 + <fieldset class="flex flex-row gap-2 items-baseline"> 407 + <input type="checkbox" id="squash" name="squash" class="pt-1" /> 408 + <label for="squash" class="flex flex-row gap-2 text-base p-0">squash commits when merge request is accepted</label> 409 + </fieldset> 410 + </div> 411 + </div> 412 + </div> 413 + </div> 414 + </div> 415 + 416 + {{ end }}
+271
appview/pages/templates/repo/pulls/new-patch.html
··· 1 + {{ define "title" }}new pull &middot; {{ .RepoInfo.FullName }}{{ end }} {{define "repoContent" }} 2 + 3 + <div class="flex flex-row gap-4"> 4 + <div class="flex flex-col items-center relative w-6"> 5 + <div class="absolute top-0 bottom-0 w-px bg-gray-200"></div> 6 + </div> 7 + <div class="flex flex-col gap-10 w-full"> 8 + <div id="step-1" class="flex flex-col gap-4"> 9 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 10 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">1</span> 11 + </div> 12 + <div class="flex flex-col gap-1"> 13 + <span class="font-bold text-sm uppercase dark:text-white">method</span> 14 + <p class="text-gray-700 text-sm"> 15 + choose your preferred pull strategy. 16 + <a href="#">more information here</a> 17 + </p> 18 + </div> 19 + <div class="flex gap-4 w-full"> 20 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5 before:shadow-[inset_0_-2px_0_0_rgba(0,0,0,0.15),0_2px_1px_0_rgba(0,0,0,0.06)] before:bg-gray-50 dark:before:bg-gray-700"> 21 + <span class="text-base">patch</span> 22 + <span class="text-gray-700">paste a `git diff` or a `git format-patch`</span> 23 + </button> 24 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5"> 25 + <span class="text-base">compare branches</span> 26 + <span class="text-gray-700">select a source branch</span> 27 + </button> 28 + <button class="btn w-full min-w-48 min-h-40 px-4 py-3 bg-white inline-flex flex-col justify-start items-start gap-1.5"> 29 + <span class="text-base">compare forks</span> 30 + <span class="text-gray-700">select a fork and branch as the source</span> 31 + </button> 32 + </div> 33 + </div> 34 + <div id="step-2" class="flex flex-col gap-4"> 35 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 36 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">2</span> 37 + </div> 38 + <div class="header flex flex-col gap-1"> 39 + <span class="font-bold text-sm uppercase dark:text-white">compare</span> 40 + </div> 41 + <div class="flex flex-col gap-4 w-full"> 42 + <div class="flex flex-col gap-1.5"> 43 + <label for="target-branch" class="uppercase p-0">merge into</label> 44 + <div class="relative inline-flex border border-gray-200 divide-x divide-gray-200 rounded overflow-hidden w-fit"> 45 + <span class="rounded-l bg-gray-50 py-1 px-2 text-gray-600">tangled.org</span> 46 + <select name="target-branch" id="target-branch" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 47 + <option value="master">master</option> 48 + <option value="master">master</option> 49 + <option value="master">master</option> 50 + </select> 51 + <div class="self-center absolute right-2 color-red-600 border-none">{{ i "chevron-down" "size-4" }}</div> 52 + </div> 53 + </div> 54 + <textarea name="patch" id="patch" class="rounded bg-white border border-gray-200 min-w-80 min-h-48 w-full" rows="4" placeholder="`git diff` or `git format-patch`"></textarea> 55 + <div class="w-fit self-end"> 56 + <button class="btn"> 57 + {{ i "pencil" "size-4" }} 58 + <span>edit patch</span> 59 + </button> 60 + </div> 61 + </div> 62 + </div> 63 + <div id="step-3" class="flex flex-col gap-4"> 64 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 65 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">3</span> 66 + </div> 67 + <div class="header flex flex-col gap-1"> 68 + <span class="font-bold text-sm uppercase dark:text-white">review</span> 69 + </div> 70 + <div class="flex flex-col gap-4 w-full"> 71 + <div class="flex flex-row justify-between items-center"> 72 + <p>showing 2 changed files with 5 additions and 1 deletion</p> 73 + <div class="flex gap-2"> 74 + <button class="btn gap-2">{{ i "fold-vertical" "size-4" }} collapse all</button> 75 + <div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden"> 76 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center unified">{{ i "square-split-vertical" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} unified</button> 77 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center split">{{ i "square-split-horizontal" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} split</button> 78 + </div> 79 + </div> 80 + </div> 81 + <details open id="file-cmd/knotmirror/main.go" class="group border border-gray-200 dark:border-gray-700 w-full mx-auto rounded bg-white dark:bg-gray-800 drop-shadow-sm" tabindex="1"> 82 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 83 + <div id="diff-file-header" class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 84 + <div id="left-side-items" class="p-2 flex gap-2 items-center overflow-x-auto"> 85 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 86 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 87 + <div class="flex items-center font-mono text-sm"> 88 + <span class="rounded-l p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+3</span> 89 + <span class="rounded-r p-1 select-none bg-red-100 text-red-700 dark:bg-red-800/50 dark:text-red-400">-1</span> 90 + </div> 91 + <div class="flex gap-2 items-center overflow-x-auto">cmd/knotmirror/main.go</div> 92 + </div> 93 + </div> 94 + </summary> 95 + <div class="transition-all duration-700 ease-in-out"> 96 + <div class="overflow-x-auto font-mono leading-normal"> 97 + <div class="overflow-x-auto"> 98 + <div class="inline-flex flex-col min-w-full"> 99 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 100 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 101 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">14</a></span> 102 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">14</a></span> 103 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 104 + <span class="px-2 whitespace-pre">func main() {</span> 105 + </span> 106 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 107 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">15</a></span> 108 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">15</a></span> 109 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 110 + <span class="px-2 whitespace-pre">args := os.Args[1:]</span> 111 + </span> 112 + <span class="bg-red-100 dark:bg-red-800/30 text-red-700 dark:text-red-400 inline-flex w-full items-center scroll-mt-48"> 113 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">16</a></span> 114 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><span aria-hidden="true" class="invisible">16</span></span> 115 + <span class="w-5 flex-shrink-0 select-none text-center">-</span> 116 + <span class="px-2 whitespace-pre">if err := run(args); err != nil {</span> 117 + </span> 118 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 119 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">16</span></span> 120 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">16</a></span> 121 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 122 + <span class="px-2 whitespace-pre">cfg := config.Load()</span> 123 + </span> 124 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 125 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">17</span></span> 126 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">17</a></span> 127 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 128 + <span class="px-2 whitespace-pre">if err := run(args, cfg); err != nil {</span> 129 + </span> 130 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 131 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">18</span></span> 132 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">18</a></span> 133 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 134 + <span class="px-2 whitespace-pre">log.Fatal(err)</span> 135 + </span> 136 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 137 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">17</a></span> 138 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">19</a></span> 139 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 140 + <span class="px-2 whitespace-pre">}</span> 141 + </span> 142 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 143 + </div> 144 + </div> 145 + </div> 146 + </div> 147 + </details> 148 + <details id="file-README.md" class="group border border-gray-200 dark:border-gray-700 w-full mx-auto rounded bg-white dark:bg-gray-800 drop-shadow-sm" tabindex="2"> 149 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 150 + <div id="diff-file-header" class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 151 + <div id="left-side-items" class="p-2 flex gap-2 items-center overflow-x-auto"> 152 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 153 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 154 + <div class="flex items-center font-mono text-sm"> 155 + <span class="rounded p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+2</span> 156 + </div> 157 + <div class="flex gap-2 items-center overflow-x-auto">README.md</div> 158 + </div> 159 + </div> 160 + </summary> 161 + <div class="transition-all duration-700 ease-in-out"> 162 + <div class="overflow-x-auto font-mono leading-normal"> 163 + <div class="overflow-x-auto"> 164 + <div class="inline-flex flex-col min-w-full"> 165 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 166 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 167 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">5</a></span> 168 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">5</a></span> 169 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 170 + <span class="px-2 whitespace-pre">## Installation</span> 171 + </span> 172 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 173 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">6</span></span> 174 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">6</a></span> 175 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 176 + <span class="px-2 whitespace-pre">go install ./cmd/knotmirror@latest</span> 177 + </span> 178 + <span class="bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 inline-flex w-full items-center scroll-mt-48"> 179 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><span aria-hidden="true" class="invisible">7</span></span> 180 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">7</a></span> 181 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 182 + <span class="px-2 whitespace-pre"></span> 183 + </span> 184 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 185 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">6</a></span> 186 + <span class="min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 pr-2 border-r border-gray-200 dark:border-gray-700"><a class="text-gray-400 dark:text-gray-500 hover:underline" href="#">8</a></span> 187 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 188 + <span class="px-2 whitespace-pre">## Usage</span> 189 + </span> 190 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 191 + </div> 192 + </div> 193 + </div> 194 + </div> 195 + </details> 196 + </div> 197 + </div> 198 + <div id="step-4" class="flex flex-col gap-4"> 199 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 200 + <span class="size-6 rounded-full bg-gray-200 flex items-center justify-center text-xs pt-0.5">4</span> 201 + </div> 202 + <div class="header flex flex-col gap-1"> 203 + <span class="font-bold text-sm uppercase dark:text-white">details</span> 204 + </div> 205 + <div class="flex gap-4 w-full"> 206 + <div class="flex flex-col gap-4 w-2/3"> 207 + <div class="flex flex-col gap-1.5 w-full"> 208 + <label for="title" class="text-sm uppercase p-0">title</label> 209 + <input type="text" id="title" name="title" value="knotmirror: add missing returns" class="rounded bg-white border border-gray-200 min-w-80 py-1 px-2" /> 210 + </div> 211 + <div class="flex flex-col gap-2"> 212 + <div class="flex justify-between divide-x divide-gray-200 dark:divide-gray-700 rounded border border-gray-200 dark:border-gray-700 overflow-hidden self-start"> 213 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center unified">{{ i "pencil" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} write</button> 214 + <button class="group p-2 whitespace-nowrap flex justify-center items-center gap-2 text-sm w-full hover:no-underline text-center split">{{ i "eye" "size-4 inline group-[.htmx-request]:hidden" }} {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }} preview</button> 215 + </div> 216 + <textarea name="description" id="description" class="rounded bg-white border border-gray-200 min-w-80 min-h-48" rows="4"> 217 + Update the visual styling for pull request rounds to provide better visual distinction between active and inactive rounds. Changes include: 218 + - Better background colors for active rounds (blue tint) 219 + - Improved text contrast in both light and dark modes 220 + - Consistent border handling and overflow clipping 221 + 222 + Signed-off-by: eti &lt;eti@eti.tf&gt;</textarea 223 + > 224 + </div> 225 + <div class="flex flex-row gap-4 justify-end items-center"> 226 + <span class="text-red-600">× can’t automatically merge</span> 227 + <span class="text-gray-600">you can still create the pull request</span> 228 + <button class="btn-create gap-2">{{ i "git-pull-request-create" "size-4" }} create pull request</button> 229 + </div> 230 + </div> 231 + <div class="flex flex-col gap-4 w-1/3"> 232 + <div class="flex flex-col gap-1.5"> 233 + <label for="labels" class="uppercase p-0">labels</label> 234 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 235 + <select name="labels" id="labels" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 236 + <option value="" hidden class="hidden">select a label</option> 237 + <option value="good-first-issue">good-first-issue</option> 238 + <option value="wontfix">wontfix</option> 239 + <option value="tngl">tngl</option> 240 + </select> 241 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 242 + </div> 243 + </div> 244 + <div class="flex flex-col gap-1.5"> 245 + <label for="assignees" class="uppercase p-0">assignees</label> 246 + <div class="relative inline-flex border border-gray-200 rounded overflow-hidden"> 247 + <select name="assignees" id="assignees" class="min-w-80 py-1 px-2 pr-10 appearance-none"> 248 + <option value="" hidden>select an assignee</option> 249 + <option value="akshay">akshay</option> 250 + <option value="anirudh">anirudh</option> 251 + <option value="boltless">boltless</option> 252 + <option value="lewis">lewis</option> 253 + <option value="eti">eti</option> 254 + </select> 255 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 256 + </div> 257 + <div class="flex justify-end"> 258 + <a href="#">assign to me</a> 259 + </div> 260 + </div> 261 + <fieldset class="flex flex-row gap-2 items-baseline"> 262 + <input type="checkbox" id="squash" name="squash" class="pt-1" /> 263 + <label for="squash" class="flex flex-row gap-2 text-base p-0">squash commits when merge request is accepted</label> 264 + </fieldset> 265 + </div> 266 + </div> 267 + </div> 268 + </div> 269 + </div> 270 + 271 + {{ end }}