Monorepo for Tangled
0
fork

Configure Feed

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

appview/repo/pulls/new: consolidate method templates into single page

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

eti d553434b 5b351fc4

+922 -1167
-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 dark:bg-gray-700"></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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 dark:text-gray-300 text-sm"> 15 - choose your preferred pull strategy. 16 - <a href="#">more information here</a> 17 - </p> 18 - </div> 19 - <div class="flex flex-col md:flex-row gap-4 w-full"> 20 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">paste a `git diff` or a `git format-patch`</span> 23 - </button> 24 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">select a source branch</span> 27 - </button> 28 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 md:flex-row gap-4 w-full"> 42 - <div class="flex flex-col gap-1.5 w-full md:w-auto"> 43 - <label for="target-branch" class="uppercase p-0">merge into</label> 44 - <div class="relative inline-flex border border-gray-200 dark:border-gray-700 divide-x divide-gray-200 dark:divide-gray-700 rounded overflow-hidden w-full md:w-fit"> 45 - <span class="rounded-l bg-gray-50 dark:bg-gray-800 py-1 px-2 text-gray-600 dark:text-gray-400">tangled.org</span> 46 - <select name="target-branch" id="target-branch" class="min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 w-full md:w-auto"> 55 - <label for="pull-from" class="uppercase p-0">pull from</label> 56 - <div class="relative inline-flex w-full md:w-fit"> 57 - <select name="pull-from" id="pull-from" class="rounded border border-gray-200 dark:border-gray-700 min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white"> 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 dark:text-gray-300">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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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-col md:flex-row gap-1 md:justify-between"> 84 - <span>4 commits</span> 85 - <span class="text-gray-700 dark:text-gray-300">master <-> ci-statuses</span> 86 - </div> 87 - <div class="flex flex-col gap-2"> 88 - <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 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 dark:text-gray-300">knotmirror: add missing returns</span> 95 - </div> 96 - <div class="flex flex-row gap-2"> 97 - <span class="text-gray-500 dark:text-gray-400">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-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 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 dark:text-gray-300">knotmirror: add missing returns</span> 109 - </div> 110 - <div class="flex flex-row gap-2"> 111 - <span class="text-gray-500 dark:text-gray-400">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-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 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 dark:text-gray-300">knotmirror: add missing returns</span> 123 - </div> 124 - <div class="flex flex-row gap-2"> 125 - <span class="text-gray-500 dark:text-gray-400">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-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 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 dark:text-gray-300">knotmirror: add missing returns</span> 137 - </div> 138 - <div class="flex flex-row gap-2"> 139 - <span class="text-gray-500 dark:text-gray-400">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-col md:flex-row gap-2 md:justify-between md: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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 flex-col md:flex-row gap-4 w-full"> 280 - <div class="flex flex-col gap-4 w-full md: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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 w-full 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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" 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-col md:flex-row gap-2 md:gap-4 justify-end items-end md:items-center"> 300 - <span class="text-red-600 dark:text-red-400">× can't automatically merge</span> 301 - <span class="text-gray-600 dark:text-gray-400">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-full md: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 dark:border-gray-700 rounded overflow-hidden w-full"> 309 - <select name="labels" id="labels" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 dark:border-gray-700 rounded overflow-hidden w-full"> 321 - <select name="assignees" id="assignees" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 dark:bg-gray-700"></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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 dark:text-gray-300 text-sm"> 15 - choose your preferred pull strategy. 16 - <a href="#">more information here</a> 17 - </p> 18 - </div> 19 - <div class="flex flex-col md:flex-row gap-4 w-full"> 20 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">paste a `git diff` or a `git format-patch`</span> 23 - </button> 24 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">select a source branch</span> 27 - </button> 28 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 md:flex-row gap-4 w-full"> 42 - <div class="flex flex-col gap-1.5 w-full md:w-auto"> 43 - <label for="target-branch" class="uppercase p-0">merge into</label> 44 - <div class="relative inline-flex border border-gray-200 dark:border-gray-700 divide-x divide-gray-200 dark:divide-gray-700 rounded overflow-hidden w-full md:w-fit"> 45 - <span class="rounded-l bg-gray-50 dark:bg-gray-800 py-1 px-2 text-gray-600 dark:text-gray-400">tangled.org</span> 46 - <select name="target-branch" id="target-branch" class="min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 w-full md:w-auto"> 55 - <label for="pull-from" class="uppercase p-0">pull from</label> 56 - <div class="relative inline-flex w-full md:w-fit"> 57 - <select name="pull-from" id="pull-from" class="rounded border border-gray-200 dark:border-gray-700 min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white"> 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 dark:text-gray-300">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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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-col md:flex-row gap-1 md: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 dark:text-gray-300">6 pull requests</span> 88 - </div> 89 - <span class="text-gray-700 dark:text-gray-300">master <-> ci-statuses</span> 90 - </div> 91 - <div class="flex flex-col rounded border border-gray-200 dark:border-gray-700"> 92 - <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between border-b border-gray-200 dark:border-gray-700"> 93 - <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 94 - {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 95 - <span>Fix: Prevent buffer overflows</span> 96 - </div> 97 - <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 98 - <div class="flex flex-row gap-2 items-center px-3"> 99 - <span class="text-gray-700 dark:text-gray-300">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 flex-col md:flex-row gap-4 w-full"> 108 - <div class="flex flex-col gap-4 w-full md: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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 w-full 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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" rows="4"></textarea> 119 - </div> 120 - </div> 121 - <div class="flex flex-col gap-4 w-full md: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 dark:border-gray-700 rounded overflow-hidden w-full"> 125 - <select name="labels" id="labels" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 dark:border-gray-700 rounded overflow-hidden w-full"> 137 - <select name="assignees" id="assignees" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 class="dark:border-gray-700" /> 154 - <div class="flex flex-col gap-4"> 155 - <div class="flex flex-col md:flex-row gap-2 md:justify-between md: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-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 285 - <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 286 - {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 287 - <span>Fix: Prevent buffer overflows</span> 288 - </div> 289 - <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 290 - <div class="flex flex-row gap-2 items-center px-3"> 291 - <span class="text-gray-700 dark:text-gray-300">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-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 299 - <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 300 - {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 301 - <span>Fix: Prevent buffer overflows</span> 302 - </div> 303 - <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 304 - <div class="flex flex-row gap-2 items-center px-3"> 305 - <span class="text-gray-700 dark:text-gray-300">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-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 313 - <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 314 - {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 315 - <span>Fix: Prevent buffer overflows</span> 316 - </div> 317 - <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 318 - <div class="flex flex-row gap-2 items-center px-3"> 319 - <span class="text-gray-700 dark:text-gray-300">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-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 327 - <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 328 - {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 329 - <span>Fix: Prevent buffer overflows</span> 330 - </div> 331 - <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 332 - <div class="flex flex-row gap-2 items-center px-3"> 333 - <span class="text-gray-700 dark:text-gray-300">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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 flex-col md:flex-row gap-4 w-full"> 351 - <div class="flex flex-col gap-4 w-full md: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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 w-full 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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" 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-col md:flex-row gap-2 md:gap-4 justify-end items-end md:items-center"> 371 - <span class="text-red-600 dark:text-red-400">× can't automatically merge</span> 372 - <span class="text-gray-600 dark:text-gray-400">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-full md: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 dark:border-gray-700 rounded overflow-hidden w-full"> 380 - <select name="labels" id="labels" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 dark:border-gray-700 rounded overflow-hidden w-full"> 392 - <select name="assignees" id="assignees" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 dark:bg-gray-700"></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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 dark:text-gray-300 text-sm"> 15 - choose your preferred pull strategy. 16 - <a href="#">more information here</a> 17 - </p> 18 - </div> 19 - <div class="flex flex-col md:flex-row gap-4 w-full"> 20 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">paste a `git diff` or a `git format-patch`</span> 23 - </button> 24 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">select a source branch</span> 27 - </button> 28 - <button class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 dark:border-gray-700 divide-x divide-gray-200 dark:divide-gray-700 rounded overflow-hidden w-full md:w-fit"> 45 - <span class="rounded-l bg-gray-50 dark:bg-gray-800 py-1 px-2 text-gray-600 dark:text-gray-400">tangled.org</span> 46 - <select name="target-branch" id="target-branch" class="min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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-col md:flex-row gap-2 md:justify-between md: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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 flex-col md:flex-row gap-4 w-full"> 206 - <div class="flex flex-col gap-4 w-full md: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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 w-full 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 dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" 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-col md:flex-row gap-2 md:gap-4 justify-end items-end md:items-center"> 226 - <span class="text-red-600 dark:text-red-400">× can't automatically merge</span> 227 - <span class="text-gray-600 dark:text-gray-400">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-full md: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 dark:border-gray-700 rounded overflow-hidden w-full"> 235 - <select name="labels" id="labels" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 dark:border-gray-700 rounded overflow-hidden w-full"> 247 - <select name="assignees" id="assignees" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 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 }}
+922 -135
appview/pages/templates/repo/pulls/new.html
··· 1 - {{ define "title" }}new pull &middot; {{ .RepoInfo.FullName }}{{ end }} 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 dark:bg-gray-700"></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 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">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 dark:text-gray-300 text-sm"> 15 + choose your preferred pull strategy. 16 + <a href="#">more information here</a> 17 + </p> 18 + </div> 19 + <div class="flex flex-col md:flex-row gap-4 w-full"> 20 + <button onclick="switchMethod('patch')" id="btn-patch" class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">paste a `git diff` or a `git format-patch`</span> 23 + </button> 24 + <button onclick="switchMethod('branch')" id="btn-branch" class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">select a source branch</span> 27 + </button> 28 + <button onclick="switchMethod('fork')" id="btn-fork" class="btn w-full md:min-w-48 min-h-24 md: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 dark:text-gray-300">select a fork and branch as the source</span> 31 + </button> 32 + </div> 33 + </div> 2 34 3 - {{ define "repoContent" }} 4 - <h2 class="font-bold text-sm mb-4 uppercase dark:text-white"> 5 - Create new pull request 6 - </h2> 35 + <!-- ==================== PATCH: step 2 ==================== --> 36 + <div id="patch-step-2" class="flex flex-col gap-4"> 37 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 38 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">2</span> 39 + </div> 40 + <div class="header flex flex-col gap-1"> 41 + <span class="font-bold text-sm uppercase dark:text-white">compare</span> 42 + </div> 43 + <div class="flex flex-col gap-4 w-full"> 44 + <div class="flex flex-col gap-1.5"> 45 + <label for="target-branch-patch" class="uppercase p-0">merge into</label> 46 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 divide-x divide-gray-200 dark:divide-gray-700 rounded overflow-hidden w-full md:w-fit"> 47 + <span class="rounded-l bg-gray-50 dark:bg-gray-800 py-1 px-2 text-gray-600 dark:text-gray-400">tangled.org</span> 48 + <select name="target-branch" id="target-branch-patch" class="min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 49 + <option value="master">master</option> 50 + <option value="master">master</option> 51 + <option value="master">master</option> 52 + </select> 53 + <div class="self-center absolute right-2 color-red-600 border-none">{{ i "chevron-down" "size-4" }}</div> 54 + </div> 55 + </div> 56 + <textarea name="patch" id="patch" class="rounded bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" rows="4" placeholder="`git diff` or `git format-patch`"></textarea> 57 + <div class="w-fit self-end"> 58 + <button class="btn"> 59 + {{ i "pencil" "size-4" }} 60 + <span>edit patch</span> 61 + </button> 62 + </div> 63 + </div> 64 + </div> 7 65 8 - <form 9 - hx-post="/{{ .RepoInfo.FullName }}/pulls/new" 10 - hx-trigger="submit, keydown[(ctrlKey || metaKey) && key=='Enter'] from:(#patch,#title,#body)" 11 - hx-indicator="#create-pull-spinner" 12 - hx-swap="none" 13 - > 14 - <div class="flex flex-col gap-6"> 15 - <div class="flex gap-2 items-center"> 16 - <p>First, choose a target branch on {{ .RepoInfo.FullName }}:</p> 17 - <div> 18 - <select 19 - required 20 - name="targetBranch" 21 - class="p-1 border border-gray-200 bg-white dark:bg-gray-700 dark:text-white dark:border-gray-600" 22 - > 23 - <option disabled selected>target branch</option> 66 + <!-- ==================== PATCH: step 3 ==================== --> 67 + <div id="patch-step-3" class="flex flex-col gap-4"> 68 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 69 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">3</span> 70 + </div> 71 + <div class="header flex flex-col gap-1"> 72 + <span class="font-bold text-sm uppercase dark:text-white">review</span> 73 + </div> 74 + <div class="flex flex-col gap-4 w-full"> 75 + <div class="flex flex-col md:flex-row gap-2 md:justify-between md:items-center"> 76 + <p>showing 2 changed files with 5 additions and 1 deletion</p> 77 + <div class="flex gap-2"> 78 + <button class="btn gap-2">{{ i "fold-vertical" "size-4" }} collapse all</button> 79 + <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"> 80 + <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> 81 + <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> 82 + </div> 83 + </div> 84 + </div> 85 + <details open id="patch-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"> 86 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 87 + <div class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 88 + <div class="p-2 flex gap-2 items-center overflow-x-auto"> 89 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 90 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 91 + <div class="flex items-center font-mono text-sm"> 92 + <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> 93 + <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> 94 + </div> 95 + <div class="flex gap-2 items-center overflow-x-auto">cmd/knotmirror/main.go</div> 96 + </div> 97 + </div> 98 + </summary> 99 + <div class="transition-all duration-700 ease-in-out"> 100 + <div class="overflow-x-auto font-mono leading-normal"> 101 + <div class="overflow-x-auto"> 102 + <div class="inline-flex flex-col min-w-full"> 103 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 104 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 105 + <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> 106 + <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> 107 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 108 + <span class="px-2 whitespace-pre">func main() {</span> 109 + </span> 110 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 111 + <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> 112 + <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> 113 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 114 + <span class="px-2 whitespace-pre">args := os.Args[1:]</span> 115 + </span> 116 + <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"> 117 + <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> 118 + <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> 119 + <span class="w-5 flex-shrink-0 select-none text-center">-</span> 120 + <span class="px-2 whitespace-pre">if err := run(args); err != nil {</span> 121 + </span> 122 + <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"> 123 + <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> 124 + <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> 125 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 126 + <span class="px-2 whitespace-pre">cfg := config.Load()</span> 127 + </span> 128 + <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"> 129 + <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> 130 + <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> 131 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 132 + <span class="px-2 whitespace-pre">if err := run(args, cfg); err != nil {</span> 133 + </span> 134 + <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"> 135 + <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> 136 + <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> 137 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 138 + <span class="px-2 whitespace-pre">log.Fatal(err)</span> 139 + </span> 140 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 141 + <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> 142 + <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> 143 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 144 + <span class="px-2 whitespace-pre">}</span> 145 + </span> 146 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 147 + </div> 148 + </div> 149 + </div> 150 + </div> 151 + </details> 152 + <details id="patch-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"> 153 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 154 + <div class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 155 + <div class="p-2 flex gap-2 items-center overflow-x-auto"> 156 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 157 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 158 + <div class="flex items-center font-mono text-sm"> 159 + <span class="rounded p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+2</span> 160 + </div> 161 + <div class="flex gap-2 items-center overflow-x-auto">README.md</div> 162 + </div> 163 + </div> 164 + </summary> 165 + <div class="transition-all duration-700 ease-in-out"> 166 + <div class="overflow-x-auto font-mono leading-normal"> 167 + <div class="overflow-x-auto"> 168 + <div class="inline-flex flex-col min-w-full"> 169 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 170 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 171 + <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> 172 + <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> 173 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 174 + <span class="px-2 whitespace-pre">## Installation</span> 175 + </span> 176 + <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"> 177 + <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> 178 + <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> 179 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 180 + <span class="px-2 whitespace-pre">go install ./cmd/knotmirror@latest</span> 181 + </span> 182 + <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"> 183 + <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> 184 + <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> 185 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 186 + <span class="px-2 whitespace-pre"></span> 187 + </span> 188 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 189 + <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> 190 + <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> 191 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 192 + <span class="px-2 whitespace-pre">## Usage</span> 193 + </span> 194 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 195 + </div> 196 + </div> 197 + </div> 198 + </div> 199 + </details> 200 + </div> 201 + </div> 24 202 203 + <!-- ==================== BRANCH: step 2 ==================== --> 204 + <div id="branch-step-2" class="flex flex-col gap-4" style="display:none"> 205 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 206 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">2</span> 207 + </div> 208 + <div class="header flex flex-col gap-1"> 209 + <span class="font-bold text-sm uppercase dark:text-white">compare</span> 210 + </div> 211 + <div class="flex flex-col md:flex-row gap-4 w-full"> 212 + <div class="flex flex-col gap-1.5 w-full md:w-auto"> 213 + <label for="target-branch-branch" class="uppercase p-0">merge into</label> 214 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 divide-x divide-gray-200 dark:divide-gray-700 rounded overflow-hidden w-full md:w-fit"> 215 + <span class="rounded-l bg-gray-50 dark:bg-gray-800 py-1 px-2 text-gray-600 dark:text-gray-400">tangled.org</span> 216 + <select name="target-branch" id="target-branch-branch" class="min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 217 + <option value="master">master</option> 218 + <option value="master">master</option> 219 + <option value="master">master</option> 220 + </select> 221 + <div class="self-center absolute right-2 color-red-600 border-none">{{ i "chevron-down" "size-4" }}</div> 222 + </div> 223 + </div> 224 + <div class="flex flex-col gap-1.5 w-full md:w-auto"> 225 + <label for="pull-from-branch" class="uppercase p-0">pull from</label> 226 + <div class="relative inline-flex w-full md:w-fit"> 227 + <select name="pull-from" id="pull-from-branch" class="rounded border border-gray-200 dark:border-gray-700 min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white"> 228 + <option value="master">ci-thing</option> 229 + <option value="master">ci-other</option> 230 + <option value="master">ci-statuses</option> 231 + </select> 232 + <div class="self-center absolute right-2 color-red-600">{{ i "chevron-down" "size-4" }}</div> 233 + </div> 234 + </div> 235 + </div> 236 + <fieldset class="flex flex-row gap-2"> 237 + <input type="checkbox" id="stacked-branch" name="stacked" /> 238 + <label for="stacked-branch" class="flex flex-row gap-2 text-base"> 239 + submit as stacked PRs. 240 + <a href="#">more information</a> 241 + </label> 242 + </fieldset> 243 + <p class="text-gray-700 dark:text-gray-300">Title and description are optional; if left out, they will be extracted from the first commit.</p> 244 + </div> 25 245 26 - {{ range .Branches }} 246 + <!-- ==================== BRANCH: step 3 ==================== --> 247 + <div id="branch-step-3" class="flex flex-col gap-4" style="display:none"> 248 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 249 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">3</span> 250 + </div> 251 + <div class="header flex flex-col gap-1"> 252 + <span class="font-bold text-sm uppercase dark:text-white">review</span> 253 + </div> 254 + <div class="flex flex-col gap-4 w-full"> 255 + <div class="flex w-full flex-col md:flex-row gap-1 md:justify-between"> 256 + <span>4 commits</span> 257 + <span class="text-gray-700 dark:text-gray-300">master <-> ci-statuses</span> 258 + </div> 259 + <div class="flex flex-col gap-2"> 260 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 rounded"> 261 + <div class="flex flex-row gap-4"> 262 + <div class="flex flex-row gap-2 items-center"> 263 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 264 + <span>user.tld</span> 265 + </div> 266 + <span class="text-gray-700 dark:text-gray-300">knotmirror: add missing returns</span> 267 + </div> 268 + <div class="flex flex-row gap-2"> 269 + <span class="text-gray-500 dark:text-gray-400">2 hours ago</span> 270 + <span>233111b3</span> 271 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 272 + </div> 273 + </div> 274 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 rounded"> 275 + <div class="flex flex-row gap-4"> 276 + <div class="flex flex-row gap-2 items-center"> 277 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 278 + <span>user.tld</span> 279 + </div> 280 + <span class="text-gray-700 dark:text-gray-300">knotmirror: add missing returns</span> 281 + </div> 282 + <div class="flex flex-row gap-2"> 283 + <span class="text-gray-500 dark:text-gray-400">2 hours ago</span> 284 + <span>233111b3</span> 285 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 286 + </div> 287 + </div> 288 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 rounded"> 289 + <div class="flex flex-row gap-4"> 290 + <div class="flex flex-row gap-2 items-center"> 291 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 292 + <span>user.tld</span> 293 + </div> 294 + <span class="text-gray-700 dark:text-gray-300">knotmirror: add missing returns</span> 295 + </div> 296 + <div class="flex flex-row gap-2"> 297 + <span class="text-gray-500 dark:text-gray-400">2 hours ago</span> 298 + <span>233111b3</span> 299 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 300 + </div> 301 + </div> 302 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between p-2 border border-gray-200 dark:border-gray-700 rounded"> 303 + <div class="flex flex-row gap-4"> 304 + <div class="flex flex-row gap-2 items-center"> 305 + <img src="#" alt="" class="size-5 rounded-full bg-gray-400" /> 306 + <span>user.tld</span> 307 + </div> 308 + <span class="text-gray-700 dark:text-gray-300">knotmirror: add missing returns</span> 309 + </div> 310 + <div class="flex flex-row gap-2"> 311 + <span class="text-gray-500 dark:text-gray-400">2 hours ago</span> 312 + <span>233111b3</span> 313 + <div class="flex flex-row gap-2 items-center">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 314 + </div> 315 + </div> 316 + </div> 317 + <div class="flex flex-col md:flex-row gap-2 md:justify-between md:items-center"> 318 + <p>showing 2 changed files with 5 additions and 1 deletion</p> 319 + <div class="flex gap-2"> 320 + <button class="btn gap-2">{{ i "fold-vertical" "size-4" }} collapse all</button> 321 + <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"> 322 + <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> 323 + <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> 324 + </div> 325 + </div> 326 + </div> 327 + <details open id="branch-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"> 328 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 329 + <div class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 330 + <div class="p-2 flex gap-2 items-center overflow-x-auto"> 331 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 332 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 333 + <div class="flex items-center font-mono text-sm"> 334 + <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> 335 + <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> 336 + </div> 337 + <div class="flex gap-2 items-center overflow-x-auto">cmd/knotmirror/main.go</div> 338 + </div> 339 + </div> 340 + </summary> 341 + <div class="transition-all duration-700 ease-in-out"> 342 + <div class="overflow-x-auto font-mono leading-normal"> 343 + <div class="overflow-x-auto"> 344 + <div class="inline-flex flex-col min-w-full"> 345 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 346 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 347 + <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> 348 + <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> 349 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 350 + <span class="px-2 whitespace-pre">func main() {</span> 351 + </span> 352 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 353 + <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> 354 + <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> 355 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 356 + <span class="px-2 whitespace-pre">args := os.Args[1:]</span> 357 + </span> 358 + <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"> 359 + <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> 360 + <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> 361 + <span class="w-5 flex-shrink-0 select-none text-center">-</span> 362 + <span class="px-2 whitespace-pre">if err := run(args); err != nil {</span> 363 + </span> 364 + <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"> 365 + <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> 366 + <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> 367 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 368 + <span class="px-2 whitespace-pre">cfg := config.Load()</span> 369 + </span> 370 + <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"> 371 + <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> 372 + <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> 373 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 374 + <span class="px-2 whitespace-pre">if err := run(args, cfg); err != nil {</span> 375 + </span> 376 + <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"> 377 + <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> 378 + <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> 379 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 380 + <span class="px-2 whitespace-pre">log.Fatal(err)</span> 381 + </span> 382 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 383 + <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> 384 + <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> 385 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 386 + <span class="px-2 whitespace-pre">}</span> 387 + </span> 388 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 389 + </div> 390 + </div> 391 + </div> 392 + </div> 393 + </details> 394 + <details id="branch-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"> 395 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 396 + <div class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 397 + <div class="p-2 flex gap-2 items-center overflow-x-auto"> 398 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 399 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 400 + <div class="flex items-center font-mono text-sm"> 401 + <span class="rounded p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+2</span> 402 + </div> 403 + <div class="flex gap-2 items-center overflow-x-auto">README.md</div> 404 + </div> 405 + </div> 406 + </summary> 407 + <div class="transition-all duration-700 ease-in-out"> 408 + <div class="overflow-x-auto font-mono leading-normal"> 409 + <div class="overflow-x-auto"> 410 + <div class="inline-flex flex-col min-w-full"> 411 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 412 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 413 + <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> 414 + <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> 415 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 416 + <span class="px-2 whitespace-pre">## Installation</span> 417 + </span> 418 + <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"> 419 + <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> 420 + <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> 421 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 422 + <span class="px-2 whitespace-pre">go install ./cmd/knotmirror@latest</span> 423 + </span> 424 + <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"> 425 + <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> 426 + <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> 427 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 428 + <span class="px-2 whitespace-pre"></span> 429 + </span> 430 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 431 + <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> 432 + <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> 433 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 434 + <span class="px-2 whitespace-pre">## Usage</span> 435 + </span> 436 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 437 + </div> 438 + </div> 439 + </div> 440 + </div> 441 + </details> 442 + </div> 443 + </div> 27 444 28 - {{ $preset := false }} 29 - {{ if $.TargetBranch }} 30 - {{ $preset = eq .Reference.Name $.TargetBranch }} 31 - {{ else }} 32 - {{ $preset = .IsDefault }} 33 - {{ end }} 445 + <!-- ==================== FORK: step 2 ==================== --> 446 + <div id="fork-step-2" class="flex flex-col gap-4" style="display:none"> 447 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 448 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">2</span> 449 + </div> 450 + <div class="header flex flex-col gap-1"> 451 + <span class="font-bold text-sm uppercase dark:text-white">compare</span> 452 + </div> 453 + <div class="flex flex-col md:flex-row gap-4 w-full"> 454 + <div class="flex flex-col gap-1.5 w-full md:w-auto"> 455 + <label for="target-branch-fork" class="uppercase p-0">merge into</label> 456 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 divide-x divide-gray-200 dark:divide-gray-700 rounded overflow-hidden w-full md:w-fit"> 457 + <span class="rounded-l bg-gray-50 dark:bg-gray-800 py-1 px-2 text-gray-600 dark:text-gray-400">tangled.org</span> 458 + <select name="target-branch" id="target-branch-fork" class="min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 459 + <option value="master">master</option> 460 + <option value="master">master</option> 461 + <option value="master">master</option> 462 + </select> 463 + <div class="self-center absolute right-2 color-red-600 border-none">{{ i "chevron-down" "size-4" }}</div> 464 + </div> 465 + </div> 466 + <div class="flex flex-col gap-1.5 w-full md:w-auto"> 467 + <label for="pull-from-fork" class="uppercase p-0">pull from</label> 468 + <div class="relative inline-flex w-full md:w-fit"> 469 + <select name="pull-from" id="pull-from-fork" class="rounded border border-gray-200 dark:border-gray-700 min-w-0 w-full md:min-w-80 py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white"> 470 + <option value="master">ci-thing</option> 471 + <option value="master">ci-other</option> 472 + <option value="master">ci-statuses</option> 473 + </select> 474 + <div class="self-center absolute right-2 color-red-600">{{ i "chevron-down" "size-4" }}</div> 475 + </div> 476 + </div> 477 + </div> 478 + <fieldset class="flex flex-row gap-2"> 479 + <input type="checkbox" id="stacked-fork" name="stacked" /> 480 + <label for="stacked-fork" class="flex flex-row gap-2 text-base"> 481 + submit as stacked PRs. 482 + <a href="#">more information</a> 483 + </label> 484 + </fieldset> 485 + <p class="text-gray-700 dark:text-gray-300">Title and description are optional; if left out, they will be extracted from the first commit.</p> 486 + </div> 34 487 35 - <option value="{{ .Reference.Name }}" class="py-1" {{if $preset}}selected{{end}}> 36 - {{ .Reference.Name }} 37 - </option> 38 - {{ end }} 39 - </select> 488 + <!-- ==================== FORK: step 3 ==================== --> 489 + <div id="fork-step-3" class="flex flex-col gap-4" style="display:none"> 490 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 491 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">3</span> 492 + </div> 493 + <div class="header flex flex-col gap-1"> 494 + <span class="font-bold text-sm uppercase dark:text-white">review</span> 495 + </div> 496 + <div class="flex flex-col gap-4 w-full"> 497 + <div class="flex w-full flex-col md:flex-row gap-1 md:justify-between"> 498 + <div class="flex flex-row gap-2 items-center"> 499 + {{ i "chevrons-down-up" "size-4 mt-px" }} 500 + <span>stack</span> 501 + <span class="text-gray-700 dark:text-gray-300">6 pull requests</span> 502 + </div> 503 + <span class="text-gray-700 dark:text-gray-300">master <-> ci-statuses</span> 504 + </div> 505 + <div class="flex flex-col rounded border border-gray-200 dark:border-gray-700"> 506 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between border-b border-gray-200 dark:border-gray-700"> 507 + <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 508 + {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 509 + <span>Fix: Prevent buffer overflows</span> 510 + </div> 511 + <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 512 + <div class="flex flex-row gap-2 items-center px-3"> 513 + <span class="text-gray-700 dark:text-gray-300">2 hours ago</span> 514 + <span>233111b3</span> 40 515 </div> 516 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 517 + <div class="flex items-center p-3">{{ i "chevron-down" "size-4" }}</div> 41 518 </div> 519 + </div> 520 + <div class="flex flex-col gap-8 p-4"> 521 + <div class="flex flex-col md:flex-row gap-4 w-full"> 522 + <div class="flex flex-col gap-4 w-full md:w-2/3"> 523 + <div class="flex flex-col gap-1.5 w-full"> 524 + <label for="fork-inner-title" class="text-sm uppercase p-0">title</label> 525 + <input type="text" id="fork-inner-title" name="title" value="knotmirror: add missing returns" class="rounded bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 w-full py-1 px-2" /> 526 + </div> 527 + <div class="flex flex-col gap-2"> 528 + <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"> 529 + <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> 530 + <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> 531 + </div> 532 + <textarea name="description" id="fork-inner-description" class="rounded bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" rows="4"></textarea> 533 + </div> 534 + </div> 535 + <div class="flex flex-col gap-4 w-full md:w-1/3"> 536 + <div class="flex flex-col gap-1.5"> 537 + <label for="fork-inner-labels" class="uppercase p-0">labels</label> 538 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 rounded overflow-hidden w-full"> 539 + <select name="labels" id="fork-inner-labels" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 540 + <option value="" hidden class="hidden">select a label</option> 541 + <option value="good-first-issue">good-first-issue</option> 542 + <option value="wontfix">wontfix</option> 543 + <option value="tngl">tngl</option> 544 + </select> 545 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 546 + </div> 547 + </div> 548 + <div class="flex flex-col gap-1.5"> 549 + <label for="fork-inner-assignees" class="uppercase p-0">assignees</label> 550 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 rounded overflow-hidden w-full"> 551 + <select name="assignees" id="fork-inner-assignees" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 552 + <option value="" hidden>select an assignee</option> 553 + <option value="akshay">akshay</option> 554 + <option value="anirudh">anirudh</option> 555 + <option value="boltless">boltless</option> 556 + <option value="lewis">lewis</option> 557 + <option value="eti">eti</option> 558 + </select> 559 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 560 + </div> 561 + <div class="flex justify-end"> 562 + <a href="#">assign to me</a> 563 + </div> 564 + </div> 565 + </div> 566 + </div> 567 + <hr class="dark:border-gray-700" /> 568 + <div class="flex flex-col gap-4"> 569 + <div class="flex flex-col md:flex-row gap-2 md:justify-between md:items-center"> 570 + <p>showing 2 changed files with 5 additions and 1 deletion</p> 571 + <div class="flex gap-2"> 572 + <button class="btn gap-2">{{ i "fold-vertical" "size-4" }} collapse all</button> 573 + <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"> 574 + <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> 575 + <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> 576 + </div> 577 + </div> 578 + </div> 579 + <details open id="fork-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"> 580 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 581 + <div class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 582 + <div class="p-2 flex gap-2 items-center overflow-x-auto"> 583 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 584 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 585 + <div class="flex items-center font-mono text-sm"> 586 + <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> 587 + <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> 588 + </div> 589 + <div class="flex gap-2 items-center overflow-x-auto">cmd/knotmirror/main.go</div> 590 + </div> 591 + </div> 592 + </summary> 593 + <div class="transition-all duration-700 ease-in-out"> 594 + <div class="overflow-x-auto font-mono leading-normal"> 595 + <div class="overflow-x-auto"> 596 + <div class="inline-flex flex-col min-w-full"> 597 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 598 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 599 + <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> 600 + <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> 601 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 602 + <span class="px-2 whitespace-pre">func main() {</span> 603 + </span> 604 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 605 + <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> 606 + <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> 607 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 608 + <span class="px-2 whitespace-pre">args := os.Args[1:]</span> 609 + </span> 610 + <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"> 611 + <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> 612 + <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> 613 + <span class="w-5 flex-shrink-0 select-none text-center">-</span> 614 + <span class="px-2 whitespace-pre">if err := run(args); err != nil {</span> 615 + </span> 616 + <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"> 617 + <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> 618 + <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> 619 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 620 + <span class="px-2 whitespace-pre">cfg := config.Load()</span> 621 + </span> 622 + <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"> 623 + <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> 624 + <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> 625 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 626 + <span class="px-2 whitespace-pre">if err := run(args, cfg); err != nil {</span> 627 + </span> 628 + <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"> 629 + <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> 630 + <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> 631 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 632 + <span class="px-2 whitespace-pre">log.Fatal(err)</span> 633 + </span> 634 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 635 + <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> 636 + <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> 637 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 638 + <span class="px-2 whitespace-pre">}</span> 639 + </span> 640 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 641 + </div> 642 + </div> 643 + </div> 644 + </div> 645 + </details> 646 + <details id="fork-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"> 647 + <summary class="list-none cursor-pointer top-12 group-open:border-b border-gray-200 dark:border-gray-700"> 648 + <div class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between"> 649 + <div class="p-2 flex gap-2 items-center overflow-x-auto"> 650 + <span class="group-open:hidden inline">{{ i "chevron-right" "size-4" }}</span> 651 + <span class="hidden group-open:inline">{{ i "chevron-down" "size-4" }}</span> 652 + <div class="flex items-center font-mono text-sm"> 653 + <span class="rounded p-1 select-none bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400">+2</span> 654 + </div> 655 + <div class="flex gap-2 items-center overflow-x-auto">README.md</div> 656 + </div> 657 + </div> 658 + </summary> 659 + <div class="transition-all duration-700 ease-in-out"> 660 + <div class="overflow-x-auto font-mono leading-normal"> 661 + <div class="overflow-x-auto"> 662 + <div class="inline-flex flex-col min-w-full"> 663 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 664 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 665 + <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> 666 + <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> 667 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 668 + <span class="px-2 whitespace-pre">## Installation</span> 669 + </span> 670 + <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"> 671 + <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> 672 + <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> 673 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 674 + <span class="px-2 whitespace-pre">go install ./cmd/knotmirror@latest</span> 675 + </span> 676 + <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"> 677 + <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> 678 + <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> 679 + <span class="w-5 flex-shrink-0 select-none text-center">+</span> 680 + <span class="px-2 whitespace-pre"></span> 681 + </span> 682 + <span class="bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 inline-flex w-full items-center scroll-mt-48"> 683 + <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> 684 + <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> 685 + <span class="w-5 flex-shrink-0 select-none text-center"></span> 686 + <span class="px-2 whitespace-pre">## Usage</span> 687 + </span> 688 + <span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span> 689 + </div> 690 + </div> 691 + </div> 692 + </div> 693 + </details> 694 + </div> 695 + </div> 696 + </div> 697 + <div class="flex flex-col gap-2"> 698 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 699 + <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 700 + {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 701 + <span>Fix: Prevent buffer overflows</span> 702 + </div> 703 + <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 704 + <div class="flex flex-row gap-2 items-center px-3"> 705 + <span class="text-gray-700 dark:text-gray-300">2 hours ago</span> 706 + <span>233111b3</span> 707 + </div> 708 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 709 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 710 + </div> 711 + </div> 712 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 713 + <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 714 + {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 715 + <span>Fix: Prevent buffer overflows</span> 716 + </div> 717 + <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 718 + <div class="flex flex-row gap-2 items-center px-3"> 719 + <span class="text-gray-700 dark:text-gray-300">2 hours ago</span> 720 + <span>233111b3</span> 721 + </div> 722 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 723 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 724 + </div> 725 + </div> 726 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 727 + <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 728 + {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 729 + <span>Fix: Prevent buffer overflows</span> 730 + </div> 731 + <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 732 + <div class="flex flex-row gap-2 items-center px-3"> 733 + <span class="text-gray-700 dark:text-gray-300">2 hours ago</span> 734 + <span>233111b3</span> 735 + </div> 736 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 737 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 738 + </div> 739 + </div> 740 + <div class="flex flex-col md:flex-row gap-1 md:gap-0 md:justify-between rounded border border-gray-200 dark:border-gray-700"> 741 + <div class="flex flex-row gap-2 items-center px-3 py-2 md:py-0"> 742 + {{ i "git-pull-request" "size-4 text-gray-700 dark:text-gray-300" }} 743 + <span>Fix: Prevent buffer overflows</span> 744 + </div> 745 + <div class="flex flex-row divide-x divide-gray-200 dark:divide-gray-700"> 746 + <div class="flex flex-row gap-2 items-center px-3"> 747 + <span class="text-gray-700 dark:text-gray-300">2 hours ago</span> 748 + <span>233111b3</span> 749 + </div> 750 + <div class="flex flex-row gap-4 items-center p-3">{{ i "copy" "size-4" }} {{ i "folder-code" "size-4" }}</div> 751 + <div class="flex items-center p-3">{{ i "chevron-right" "size-4" }}</div> 752 + </div> 753 + </div> 754 + </div> 755 + </div> 756 + </div> 42 757 43 - <div class="flex flex-col gap-2"> 44 - <h2 class="font-bold text-sm mb-4 uppercase dark:text-white"> 45 - Choose pull strategy 46 - </h2> 47 - <nav class="flex space-x-4 items-center"> 48 - <button 49 - type="button" 50 - class="btn" 51 - hx-get="/{{ .RepoInfo.FullName }}/pulls/new/patch-upload" 52 - hx-target="#patch-strategy" 53 - hx-swap="innerHTML" 54 - > 55 - paste patch 56 - </button> 758 + <!-- ==================== SHARED: step 4 (patch & branch) ==================== --> 759 + <div id="shared-step-4" class="flex flex-col gap-4"> 760 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 761 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">4</span> 762 + </div> 763 + <div class="header flex flex-col gap-1"> 764 + <span class="font-bold text-sm uppercase dark:text-white">details</span> 765 + </div> 766 + <div class="flex flex-col md:flex-row gap-4 w-full"> 767 + <div class="flex flex-col gap-4 w-full md:w-2/3"> 768 + <div class="flex flex-col gap-1.5 w-full"> 769 + <label for="title" class="text-sm uppercase p-0">title</label> 770 + <input type="text" id="title" name="title" value="knotmirror: add missing returns" class="rounded bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 w-full py-1 px-2" /> 771 + </div> 772 + <div class="flex flex-col gap-2"> 773 + <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"> 774 + <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> 775 + <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> 776 + </div> 777 + <textarea name="description" id="description" class="rounded bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" rows="4"> 778 + Update the visual styling for pull request rounds to provide better visual distinction between active and inactive rounds. Changes include: 779 + - Better background colors for active rounds (blue tint) 780 + - Improved text contrast in both light and dark modes 781 + - Consistent border handling and overflow clipping 57 782 58 - {{ if .RepoInfo.Roles.IsPushAllowed }} 59 - <span class="text-sm text-gray-500 dark:text-gray-400"> 60 - or 61 - </span> 62 - <button 63 - type="button" 64 - class="btn" 65 - hx-get="/{{ .RepoInfo.FullName }}/pulls/new/compare-branches" 66 - hx-target="#patch-strategy" 67 - hx-swap="innerHTML" 68 - > 69 - compare branches 70 - </button> 71 - {{ end }} 783 + Signed-off-by: eti &lt;eti@eti.tf&gt;</textarea 784 + > 785 + </div> 786 + <div class="flex flex-col md:flex-row gap-2 md:gap-4 justify-end items-end md:items-center"> 787 + <span class="text-red-600 dark:text-red-400">× can't automatically merge</span> 788 + <span class="text-gray-600 dark:text-gray-400">you can still create the pull request</span> 789 + <button class="btn-create gap-2">{{ i "git-pull-request-create" "size-4" }} create pull request</button> 790 + </div> 791 + </div> 792 + <div class="flex flex-col gap-4 w-full md:w-1/3"> 793 + <div class="flex flex-col gap-1.5"> 794 + <label for="labels" class="uppercase p-0">labels</label> 795 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 rounded overflow-hidden w-full"> 796 + <select name="labels" id="labels" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 797 + <option value="" hidden class="hidden">select a label</option> 798 + <option value="good-first-issue">good-first-issue</option> 799 + <option value="wontfix">wontfix</option> 800 + <option value="tngl">tngl</option> 801 + </select> 802 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 803 + </div> 804 + </div> 805 + <div class="flex flex-col gap-1.5"> 806 + <label for="assignees" class="uppercase p-0">assignees</label> 807 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 rounded overflow-hidden w-full"> 808 + <select name="assignees" id="assignees" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 809 + <option value="" hidden>select an assignee</option> 810 + <option value="akshay">akshay</option> 811 + <option value="anirudh">anirudh</option> 812 + <option value="boltless">boltless</option> 813 + <option value="lewis">lewis</option> 814 + <option value="eti">eti</option> 815 + </select> 816 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 817 + </div> 818 + <div class="flex justify-end"> 819 + <a href="#">assign to me</a> 820 + </div> 821 + </div> 822 + <fieldset class="flex flex-row gap-2 items-baseline"> 823 + <input type="checkbox" id="squash" name="squash" class="pt-1" /> 824 + <label for="squash" class="flex flex-row gap-2 text-base p-0">squash commits when merge request is accepted</label> 825 + </fieldset> 826 + </div> 827 + </div> 828 + </div> 72 829 830 + <!-- ==================== FORK: step 4 ==================== --> 831 + <div id="fork-step-4" class="flex flex-col gap-4" style="display:none"> 832 + <div class="flex absolute left-6 -mt-0.5 items-start justify-center"> 833 + <span class="size-6 rounded-full bg-gray-200 dark:bg-gray-600 flex items-center justify-center text-xs pt-0.5 dark:text-white">4</span> 834 + </div> 835 + <div class="header flex flex-col gap-1"> 836 + <span class="font-bold text-sm uppercase dark:text-white">details</span> 837 + </div> 838 + <div class="flex flex-col md:flex-row gap-4 w-full"> 839 + <div class="flex flex-col gap-4 w-full md:w-2/3"> 840 + <div class="flex flex-col gap-1.5 w-full"> 841 + <label for="fork-title" class="text-sm uppercase p-0">title</label> 842 + <input type="text" id="fork-title" name="title" value="knotmirror: add missing returns" class="rounded bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 w-full py-1 px-2" /> 843 + </div> 844 + <div class="flex flex-col gap-2"> 845 + <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"> 846 + <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> 847 + <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> 848 + </div> 849 + <textarea name="description" id="fork-description" class="rounded bg-white dark:bg-gray-800 dark:text-white border border-gray-200 dark:border-gray-700 min-w-0 min-h-48 w-full" rows="4"> 850 + Update the visual styling for pull request rounds to provide better visual distinction between active and inactive rounds. Changes include: 851 + - Better background colors for active rounds (blue tint) 852 + - Improved text contrast in both light and dark modes 853 + - Consistent border handling and overflow clipping 73 854 74 - <span class="text-sm text-gray-500 dark:text-gray-400"> 75 - or 76 - </span> 77 - <script> 78 - function getQueryParams() { 79 - return Object.fromEntries(new URLSearchParams(window.location.search)); 80 - } 81 - </script> 82 - <!-- 83 - since compare-forks need the server to load forks, we 84 - hx-get this button; unlike simply loading the pullCompareForks template 85 - as we do for the rest of the gang below. the hx-vals thing just populates 86 - the query params so the forks page gets it. 87 - --> 88 - <button 89 - type="button" 90 - class="btn" 91 - hx-get="/{{ .RepoInfo.FullName }}/pulls/new/compare-forks" 92 - hx-target="#patch-strategy" 93 - hx-swap="innerHTML" 94 - {{ if eq .Strategy "fork" }} 95 - hx-trigger="click, load" 96 - hx-vals='js:{...getQueryParams()}' 97 - {{ end }} 98 - > 99 - compare forks 100 - </button> 855 + Signed-off-by: eti &lt;eti@eti.tf&gt;</textarea 856 + > 857 + </div> 858 + <div class="flex flex-col md:flex-row gap-2 md:gap-4 justify-end items-end md:items-center"> 859 + <span class="text-red-600 dark:text-red-400">× can't automatically merge</span> 860 + <span class="text-gray-600 dark:text-gray-400">you can still create the pull request</span> 861 + <button class="btn-create gap-2">{{ i "git-pull-request-create" "size-4" }} create pull request</button> 862 + </div> 863 + </div> 864 + <div class="flex flex-col gap-4 w-full md:w-1/3"> 865 + <div class="flex flex-col gap-1.5"> 866 + <label for="fork-labels" class="uppercase p-0">labels</label> 867 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 rounded overflow-hidden w-full"> 868 + <select name="labels" id="fork-labels" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 869 + <option value="" hidden class="hidden">select a label</option> 870 + <option value="good-first-issue">good-first-issue</option> 871 + <option value="wontfix">wontfix</option> 872 + <option value="tngl">tngl</option> 873 + </select> 874 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 875 + </div> 876 + </div> 877 + <div class="flex flex-col gap-1.5"> 878 + <label for="fork-assignees" class="uppercase p-0">assignees</label> 879 + <div class="relative inline-flex border border-gray-200 dark:border-gray-700 rounded overflow-hidden w-full"> 880 + <select name="assignees" id="fork-assignees" class="min-w-0 w-full py-1 px-2 pr-10 appearance-none bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"> 881 + <option value="" hidden>select an assignee</option> 882 + <option value="akshay">akshay</option> 883 + <option value="anirudh">anirudh</option> 884 + <option value="boltless">boltless</option> 885 + <option value="lewis">lewis</option> 886 + <option value="eti">eti</option> 887 + </select> 888 + <div class="self-center absolute right-2 color-red-600 border-none pointer-events-none">{{ i "chevron-down" "size-4" }}</div> 889 + </div> 890 + <div class="flex justify-end"> 891 + <a href="#">assign to me</a> 892 + </div> 893 + </div> 894 + <fieldset class="flex flex-row gap-2 items-baseline"> 895 + <input type="checkbox" id="fork-squash" name="squash" class="pt-1" /> 896 + <label for="fork-squash" class="flex flex-row gap-2 text-base p-0">squash commits when merge request is accepted</label> 897 + </fieldset> 898 + </div> 899 + </div> 900 + </div> 101 901 902 + </div> 903 + </div> 102 904 103 - </nav> 104 - <section id="patch-strategy" class="flex flex-col gap-2"> 105 - {{ if eq .Strategy "patch" }} 106 - {{ template "repo/pulls/fragments/pullPatchUpload" . }} 107 - {{ else if eq .Strategy "branch" }} 108 - {{ template "repo/pulls/fragments/pullCompareBranches" . }} 109 - {{ else }} 110 - {{ template "repo/pulls/fragments/pullPatchUpload" . }} 111 - {{ end }} 112 - </section> 905 + <script> 906 + var selectedClass = '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'; 907 + var selectedClasses = selectedClass.split(' '); 113 908 114 - <div id="patch-error" class="error dark:text-red-300"></div> 115 - </div> 909 + function switchMethod(method) { 910 + // hide all method-specific sections 911 + var sections = ['patch-step-2','patch-step-3','branch-step-2','branch-step-3','fork-step-2','fork-step-3','shared-step-4','fork-step-4']; 912 + for (var i = 0; i < sections.length; i++) { 913 + document.getElementById(sections[i]).style.display = 'none'; 914 + } 116 915 117 - <div> 118 - <label for="title" class="dark:text-white">write a title</label> 916 + // remove selected style from all buttons 917 + var btns = ['btn-patch','btn-branch','btn-fork']; 918 + for (var i = 0; i < btns.length; i++) { 919 + var el = document.getElementById(btns[i]); 920 + for (var j = 0; j < selectedClasses.length; j++) { 921 + el.classList.remove(selectedClasses[j]); 922 + } 923 + } 119 924 120 - <input 121 - type="text" 122 - name="title" 123 - id="title" 124 - value="{{ .Title }}" 125 - class="w-full dark:bg-gray-700 dark:text-white dark:border-gray-600" 126 - placeholder="One-line summary of your change." 127 - /> 128 - </div> 925 + // add selected style to clicked button 926 + var activeBtn = document.getElementById('btn-' + method); 927 + for (var j = 0; j < selectedClasses.length; j++) { 928 + activeBtn.classList.add(selectedClasses[j]); 929 + } 129 930 130 - <div> 131 - <label for="body" class="dark:text-white" 132 - >add a description</label 133 - > 931 + // show relevant sections 932 + document.getElementById(method + '-step-2').style.display = ''; 933 + document.getElementById(method + '-step-3').style.display = ''; 134 934 135 - <textarea 136 - name="body" 137 - id="body" 138 - rows="6" 139 - class="w-full resize-y dark:bg-gray-700 dark:text-white dark:border-gray-600" 140 - placeholder="Describe your change. Markdown is supported." 141 - >{{ .Body }}</textarea> 142 - </div> 935 + if (method === 'fork') { 936 + document.getElementById('fork-step-4').style.display = ''; 937 + } else { 938 + document.getElementById('shared-step-4').style.display = ''; 939 + } 940 + } 941 + </script> 143 942 144 - <div class="flex justify-start items-center gap-2 mt-4"> 145 - <button type="submit" class="btn-create flex items-center gap-2"> 146 - {{ i "git-pull-request-create" "w-4 h-4" }} 147 - create pull 148 - <span id="create-pull-spinner" class="group"> 149 - {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 150 - </span> 151 - </button> 152 - </div> 153 - </div> 154 - <div id="pull" class="error dark:text-red-300"></div> 155 - </form> 156 943 {{ end }}