···
{{ define "title" }}new repo{{ end }}
5
-
<p class="text-xl font-bold dark:text-white">Create a new repository</p>
4
+
<div class="px-6 py-2 mb-4">
5
+
<h1 class="text-xl font-bold dark:text-white mb-1">Create a new repository</h1>
6
+
<p class="text-gray-600 dark:text-gray-400 mb-1">
7
+
Repositories contain a project's files and version history.
7
-
<div class="p-6 bg-white dark:bg-gray-800 drop-shadow-sm rounded">
8
-
<form hx-post="/repo/new" class="space-y-12" hx-swap="none" hx-indicator="#spinner">
9
-
<div class="space-y-2">
10
-
<label for="name" class="-mb-1 dark:text-white">Repository name</label>
16
-
class="w-full max-w-md dark:bg-gray-700 dark:text-white dark:border-gray-600"
18
-
<p class="text-sm text-gray-500 dark:text-gray-400">All repositories are publicly visible.</p>
20
-
<label for="branch" class="dark:text-white">Default branch</label>
27
-
class="w-full max-w-md dark:bg-gray-700 dark:text-white dark:border-gray-600"
11
+
<div class="bg-white dark:bg-gray-800 drop-shadow-sm rounded">
12
+
<form hx-post="/repo/new" hx-swap="none" hx-indicator="#spinner">
30
-
<label for="description" class="dark:text-white">Description</label>
35
-
class="w-full max-w-md dark:bg-gray-700 dark:text-white dark:border-gray-600"
15
+
<!-- Step 1: General -->
16
+
<div class="flex gap-4">
17
+
<div class="flex flex-col items-center w-10 flex-shrink-0">
18
+
<div class="w-6 h-6 bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-900 rounded-full flex items-center justify-center text-sm font-medium mt-1">
21
+
<div class="w-px bg-gray-300 dark:bg-gray-600 h-80 mt-1"></div>
23
+
<div class="flex-1">
25
+
<div class="text-lg font-semibold dark:text-white mb-1">General</div>
26
+
<div class="text-sm text-gray-500 dark:text-gray-400">Basic repository information.</div>
39
-
<fieldset class="space-y-3">
40
-
<legend class="dark:text-white">Select a knot</legend>
41
-
<div class="space-y-2">
42
-
<div class="flex flex-col">
44
-
<div class="flex items-center">
29
+
<div class="space-y-2">
30
+
<!-- Repository Name with Owner -->
32
+
<label class="block text-sm font-bold uppercase dark:text-white mb-1">
35
+
<div class="flex flex-col md:flex-row md:items-center gap-2 md:gap-0">
36
+
{{ if .LoggedInUser.Handle }}
37
+
<div class="flex items-center px-2 py-2 gap-1 text-sm text-gray-700 dark:text-gray-300 md:border md:border-r-0 md:border-gray-300 md:dark:border-gray-600 md:rounded-l md:bg-gray-50 md:dark:bg-gray-700">
38
+
{{ template "user/fragments/picHandle" .LoggedInUser.Handle }}
39
+
<span class="md:hidden pr-2 py-2 text-gray-500 dark:text-gray-400">/</span>
41
+
<span class="hidden md:inline pr-2 py-2 text-gray-500 dark:text-gray-400 border-t border-b border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700">/</span>
48
+
class="w-full max-w-md dark:bg-gray-700 dark:text-white dark:border-gray-600 border border-gray-300 rounded md:rounded-r md:rounded-l-none px-3 py-2"
49
+
placeholder="repository-name"
52
-
<label for="domain-{{ . }}" class="dark:text-white">{{ . }}</label>
52
+
<p class="text-sm text-gray-500 dark:text-gray-400 mt-1">
53
+
Choose a unique, descriptive name for your repository. Use letters, numbers, and hyphens.
57
+
<!-- Description -->
59
+
<label for="description" class="block text-sm font-bold uppercase dark:text-white mb-1">
66
+
class="w-full max-w-md dark:bg-gray-700 dark:text-white dark:border-gray-600 border border-gray-300 rounded px-3 py-2"
67
+
placeholder="A brief description of your project..."
69
+
<p class="text-sm text-gray-500 dark:text-gray-400 mt-1">
70
+
Optional. A short description to help others understand what your project does.
55
-
<p class="dark:text-white">No knots available.</p>
77
+
<!-- Step 2: Configuration -->
78
+
<div class="flex gap-4">
79
+
<div class="flex flex-col items-center w-10 flex-shrink-0">
80
+
<div class="w-6 h-6 bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-900 rounded-full flex items-center justify-center text-sm font-medium mt-1">
84
+
<div class="flex-1">
86
+
<div class="text-lg font-semibold dark:text-white mb-1">Configuration</div>
87
+
<div class="text-sm text-gray-500 dark:text-gray-400">Repository settings and hosting.</div>
90
+
<div class="space-y-2">
91
+
<!-- Default Branch -->
93
+
<label for="branch" class="block text-sm font-bold uppercase dark:text-white mb-1">
102
+
class="w-full max-w-md dark:bg-gray-700 dark:text-white dark:border-gray-600 border border-gray-300 rounded px-3 py-2"
104
+
<p class="text-sm text-gray-500 dark:text-gray-400 mt-1">
105
+
The primary branch where development happens. Common choices are "main" or "master".
109
+
<!-- Knot Selection -->
111
+
<label class="block text-sm font-bold uppercase dark:text-white mb-1">
114
+
<div class="w-full max-w-md dark:bg-gray-700 dark:text-white dark:border-gray-600 border border-gray-300 rounded p-3 space-y-2">
116
+
<div class="flex items-center">
122
+
id="domain-{{ . }}"
125
+
<label for="domain-{{ . }}" class="dark:text-white lowercase">{{ . }}</label>
128
+
<p class="dark:text-white">no knots available.</p>
131
+
<p class="text-sm text-gray-500 dark:text-gray-400 mt-1">
132
+
A knot hosts repository data and handles Git operations.
133
+
You can also <a href="/knots" class="underline">register your own knot</a>.
59
-
<p class="text-sm text-gray-500 dark:text-gray-400">A knot hosts repository data. <a href="/knots" class="underline">Learn how to register your own knot.</a></p>
62
-
<div class="space-y-2">
141
+
<!-- Create Repository Button -->
142
+
<div class="p-6 border-t border-gray-200 dark:border-gray-700">
143
+
<div class="flex items-center justify-between">
144
+
<div class="text-sm text-gray-500 dark:text-gray-400">
145
+
All repositories are publicly accessible.
<button type="submit" class="btn-create flex items-center gap-2">
64
-
{{ i "book-plus" "w-4 h-4" }}
66
-
<span id="spinner" class="group">
67
-
{{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
148
+
{{ i "book-plus" "w-4 h-4" }}
150
+
<span id="spinner" class="group">
151
+
{{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
70
-
<div id="repo" class="error"></div>
155
+
<div id="repo" class="error mt-2"></div>