Responsive updates
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m36s

This commit is contained in:
2026-01-17 01:01:53 -07:00
parent 7026435cd3
commit bebc4b2743
7 changed files with 28 additions and 20 deletions

View File

@@ -21,8 +21,8 @@ const { title } = Astro.props;
<title>{title}</title> <title>{title}</title>
<ClientRouter /> <ClientRouter />
</head> </head>
<body class="h-screen bg-base-100 text-base-content flex flex-col overflow-auto"> <body class="min-h-screen bg-base-100 text-base-content flex flex-col">
<div class="flex-1 overflow-auto"> <div class="flex-1 flex flex-col">
<slot /> <slot />
</div> </div>
<Footer /> <Footer />

View File

@@ -205,7 +205,8 @@ const isDraft = invoice.status === 'draft';
<!-- Items Table --> <!-- Items Table -->
<div class="mb-8"> <div class="mb-8">
<table class="w-full"> <div class="overflow-x-auto">
<table class="w-full min-w-[600px]">
<thead> <thead>
<tr class="border-b-2 border-base-200 text-left text-xs font-bold uppercase tracking-wider text-base-content/40"> <tr class="border-b-2 border-base-200 text-left text-xs font-bold uppercase tracking-wider text-base-content/40">
<th class="py-3">Description</th> <th class="py-3">Description</th>
@@ -244,6 +245,7 @@ const isDraft = invoice.status === 'draft';
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
<!-- Add Item Form (Only if Draft) --> <!-- Add Item Form (Only if Draft) -->
{isDraft && ( {isDraft && (

View File

@@ -109,6 +109,7 @@ const getStatusColor = (status: string) => {
<div class="card bg-base-100 shadow-xl border border-base-200"> <div class="card bg-base-100 shadow-xl border border-base-200">
<div class="card-body p-0"> <div class="card-body p-0">
<div class="overflow-x-auto">
<table class="table table-zebra"> <table class="table table-zebra">
<thead> <thead>
<tr class="bg-base-200/50"> <tr class="bg-base-200/50">
@@ -212,4 +213,5 @@ const getStatusColor = (status: string) => {
</table> </table>
</div> </div>
</div> </div>
</div>
</DashboardLayout> </DashboardLayout>

View File

@@ -164,14 +164,16 @@ const paginationPages = getPaginationPages(page, totalPages);
<input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Timer" checked /> <input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Timer" checked />
<div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6"> <div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6">
{allClients.length === 0 ? ( {allClients.length === 0 ? (
<div class="alert alert-warning"> <div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
<span>You need to create a client before tracking time.</span> <svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary">Add Client</a> <span class="flex-1 text-center sm:text-left">You need to create a client before tracking time.</span>
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary whitespace-nowrap">Add Client</a>
</div> </div>
) : allCategories.length === 0 ? ( ) : allCategories.length === 0 ? (
<div class="alert alert-warning"> <div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
<span>You need to create a category before tracking time.</span> <svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary">Team Settings</a> <span class="flex-1 text-center sm:text-left">You need to create a category before tracking time.</span>
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary whitespace-nowrap">Team Settings</a>
</div> </div>
) : ( ) : (
<Timer <Timer
@@ -192,14 +194,16 @@ const paginationPages = getPaginationPages(page, totalPages);
<input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Manual Entry" /> <input type="radio" name="tracker_tabs" role="tab" class="tab text-base font-medium gap-2" aria-label="Manual Entry" />
<div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6"> <div role="tabpanel" class="tab-content bg-base-100 border-base-300 rounded-box p-6">
{allClients.length === 0 ? ( {allClients.length === 0 ? (
<div class="alert alert-warning"> <div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
<span>You need to create a client before adding time entries.</span> <svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary">Add Client</a> <span class="flex-1 text-center sm:text-left">You need to create a client before adding time entries.</span>
<a href="/dashboard/clients/new" class="btn btn-sm btn-primary whitespace-nowrap">Add Client</a>
</div> </div>
) : allCategories.length === 0 ? ( ) : allCategories.length === 0 ? (
<div class="alert alert-warning"> <div class="alert alert-warning flex flex-col sm:flex-row items-center gap-4">
<span>You need to create a category before adding time entries.</span> <svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-6 w-6" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary">Team Settings</a> <span class="flex-1 text-center sm:text-left">You need to create a category before adding time entries.</span>
<a href="/dashboard/team/settings" class="btn btn-sm btn-primary whitespace-nowrap">Team Settings</a>
</div> </div>
) : ( ) : (
<ManualEntry <ManualEntry

View File

@@ -7,7 +7,7 @@ if (Astro.locals.user) {
--- ---
<Layout title="Chronus - Time Tracking"> <Layout title="Chronus - Time Tracking">
<div class="hero h-full bg-linear-to-br from-base-100 via-base-200 to-base-300 flex items-center justify-center py-12"> <div class="hero flex-1 bg-linear-to-br from-base-100 via-base-200 to-base-300 flex items-center justify-center py-12">
<div class="hero-content text-center"> <div class="hero-content text-center">
<div class="max-w-4xl"> <div class="max-w-4xl">
<img src="/logo.webp" alt="Chronus Logo" class="h-24 w-24 mx-auto mb-6" /> <img src="/logo.webp" alt="Chronus Logo" class="h-24 w-24 mx-auto mb-6" />

View File

@@ -7,7 +7,7 @@ if (Astro.locals.user) {
--- ---
<Layout title="Login - Chronus"> <Layout title="Login - Chronus">
<div class="flex justify-center items-center min-h-screen bg-base-100"> <div class="flex justify-center items-center flex-1 bg-base-100">
<div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4"> <div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4">
<div class="card-body"> <div class="card-body">
<img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" /> <img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" />

View File

@@ -23,7 +23,7 @@ if (!isFirstUser) {
--- ---
<Layout title="Sign Up - Chronus"> <Layout title="Sign Up - Chronus">
<div class="flex justify-center items-center min-h-screen bg-base-100"> <div class="flex justify-center items-center flex-1 bg-base-100">
<div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4"> <div class="card bg-base-100 shadow-2xl w-full max-w-md mx-4">
<div class="card-body"> <div class="card-body">
<img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" /> <img src="/logo.webp" alt="Chronus" class="h-16 w-16 mx-auto mb-4" />