fix: add dark mode variants to light-only views
Forms, upvote button, modal, notifications and several pages had no dark: classes and rendered as white blocks in dark mode. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
06ac14c5e6
commit
2a37695d78
@@ -34,7 +34,7 @@
|
||||
<button @click="toggleBookmark()"
|
||||
:disabled="loading"
|
||||
:title="bookmarked ? 'Remove bookmark' : 'Bookmark this product'"
|
||||
class="text-gray-400 hover:text-primary-600 transition-colors disabled:opacity-50">
|
||||
class="text-gray-400 dark:text-gray-500 hover:text-primary-600 transition-colors disabled:opacity-50">
|
||||
<svg class="h-5 w-5"
|
||||
:class="{ 'animate-pulse': loading }"
|
||||
:fill="bookmarked ? 'currentColor' : 'none'"
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
'period' => $p['period'] ?? 'monthly',
|
||||
'description' => $p['description'] ?? '',
|
||||
])->values()->all();
|
||||
$input = 'block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-primary-500 focus:border-primary-500 sm:text-sm';
|
||||
$input = 'block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-md shadow-sm focus:outline-none focus:ring-primary-500 focus:border-primary-500 sm:text-sm';
|
||||
@endphp
|
||||
|
||||
<!-- Pricing plans -->
|
||||
<div x-data="{ plans: @js($initial) }">
|
||||
<input type="hidden" name="plans_present" value="1">
|
||||
<label class="block text-sm font-medium text-gray-700">Pricing plans</label>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Pricing plans</label>
|
||||
<div class="mt-2 space-y-3">
|
||||
<template x-for="(plan, i) in plans" :key="i">
|
||||
<div class="grid grid-cols-1 sm:grid-cols-12 gap-2 p-3 border border-gray-200 rounded-md">
|
||||
<div class="grid grid-cols-1 sm:grid-cols-12 gap-2 p-3 border border-gray-200 dark:border-gray-700 rounded-md">
|
||||
<input type="text" :name="`plans[${i}][name]`" x-model="plan.name" placeholder="Name" maxlength="100" class="{{ $input }} sm:col-span-3">
|
||||
<input type="number" :name="`plans[${i}][price]`" x-model="plan.price" placeholder="Price (EUR)" min="0" max="99999" step="0.01" class="{{ $input }} sm:col-span-2">
|
||||
<select :name="`plans[${i}][period]`" x-model="plan.period" class="{{ $input }} sm:col-span-2">
|
||||
@@ -25,17 +25,17 @@
|
||||
@endforeach
|
||||
</select>
|
||||
<input type="text" :name="`plans[${i}][description]`" x-model="plan.description" placeholder="Description (optional)" maxlength="255" class="{{ $input }} sm:col-span-4">
|
||||
<button type="button" @click="plans.splice(i, 1)" class="sm:col-span-1 text-sm text-red-600 hover:text-red-800">Remove</button>
|
||||
<button type="button" @click="plans.splice(i, 1)" class="sm:col-span-1 text-sm text-red-600 dark:text-red-400 hover:text-red-800">Remove</button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@foreach($errors->get('plans.*') as $messages)
|
||||
<p class="mt-2 text-sm text-red-600">{{ $messages[0] }}</p>
|
||||
<p class="mt-2 text-sm text-red-600 dark:text-red-400">{{ $messages[0] }}</p>
|
||||
@endforeach
|
||||
@error('plans')
|
||||
<p class="mt-2 text-sm text-red-600">{{ $message }}</p>
|
||||
<p class="mt-2 text-sm text-red-600 dark:text-red-400">{{ $message }}</p>
|
||||
@enderror
|
||||
<button type="button" @click="plans.push({ name: '', price: '', period: 'monthly', description: '' })"
|
||||
class="mt-3 inline-flex items-center px-3 py-1.5 border border-gray-300 rounded-md text-sm text-gray-700 hover:bg-gray-50">Add plan</button>
|
||||
class="mt-3 inline-flex items-center px-3 py-1.5 border border-gray-300 dark:border-gray-600 rounded-md text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700">Add plan</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -10,19 +10,19 @@
|
||||
'name' => $m['name'] ?? ('User #' . ($m['user_id'] ?? '')),
|
||||
'role' => $m['role'] ?? '',
|
||||
])->values()->all();
|
||||
$input = 'block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-primary-500 focus:border-primary-500 sm:text-sm';
|
||||
$input = 'block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-md shadow-sm focus:outline-none focus:ring-primary-500 focus:border-primary-500 sm:text-sm';
|
||||
@endphp
|
||||
|
||||
<!-- Team members -->
|
||||
@if($readonly)
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-700">Team members</label>
|
||||
<p class="mt-1 text-sm text-gray-500">Only the submitter or an admin can change the team.</p>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Team members</label>
|
||||
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">Only the submitter or an admin can change the team.</p>
|
||||
<ul class="mt-2 space-y-1">
|
||||
@forelse($initial as $m)
|
||||
<li class="text-sm text-gray-900">{{ $m['name'] }} <span class="text-gray-500">- {{ $m['role'] }}</span></li>
|
||||
<li class="text-sm text-gray-900 dark:text-white">{{ $m['name'] }} <span class="text-gray-500 dark:text-gray-400">- {{ $m['role'] }}</span></li>
|
||||
@empty
|
||||
<li class="text-sm text-gray-500">No team members.</li>
|
||||
<li class="text-sm text-gray-500 dark:text-gray-400">No team members.</li>
|
||||
@endforelse
|
||||
</ul>
|
||||
</div>
|
||||
@@ -46,31 +46,31 @@
|
||||
}
|
||||
}">
|
||||
<input type="hidden" name="members_present" value="1">
|
||||
<label class="block text-sm font-medium text-gray-700">Team members</label>
|
||||
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Team members</label>
|
||||
<div class="relative mt-2">
|
||||
<input type="text" x-model="q" @input="search()" placeholder="Search users by name" autocomplete="off" class="{{ $input }}">
|
||||
<ul x-show="results.length" x-cloak class="absolute z-10 mt-1 w-full bg-white border border-gray-200 rounded-md shadow-lg">
|
||||
<ul x-show="results.length" x-cloak class="absolute z-10 mt-1 w-full bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md shadow-lg">
|
||||
<template x-for="u in results" :key="u.id">
|
||||
<li><button type="button" @click="add(u)" class="w-full text-left px-3 py-2 text-sm hover:bg-gray-50" x-text="u.name"></button></li>
|
||||
<li><button type="button" @click="add(u)" class="w-full text-left px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700" x-text="u.name"></button></li>
|
||||
</template>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mt-3 space-y-3">
|
||||
<template x-for="(member, i) in members" :key="member.user_id">
|
||||
<div class="grid grid-cols-1 sm:grid-cols-12 gap-2 p-3 border border-gray-200 rounded-md items-center">
|
||||
<div class="grid grid-cols-1 sm:grid-cols-12 gap-2 p-3 border border-gray-200 dark:border-gray-700 rounded-md items-center">
|
||||
<input type="hidden" :name="`members[${i}][user_id]`" :value="member.user_id">
|
||||
<input type="hidden" :name="`members[${i}][name]`" :value="member.name">
|
||||
<span class="sm:col-span-4 text-sm text-gray-900" x-text="member.name"></span>
|
||||
<span class="sm:col-span-4 text-sm text-gray-900 dark:text-white" x-text="member.name"></span>
|
||||
<input type="text" :name="`members[${i}][role]`" x-model="member.role" placeholder="Role (e.g. Designer)" maxlength="100" class="{{ $input }} sm:col-span-7">
|
||||
<button type="button" @click="members.splice(i, 1)" class="sm:col-span-1 text-sm text-red-600 hover:text-red-800">Remove</button>
|
||||
<button type="button" @click="members.splice(i, 1)" class="sm:col-span-1 text-sm text-red-600 dark:text-red-400 hover:text-red-800">Remove</button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@foreach($errors->get('members.*') as $messages)
|
||||
<p class="mt-2 text-sm text-red-600">{{ $messages[0] }}</p>
|
||||
<p class="mt-2 text-sm text-red-600 dark:text-red-400">{{ $messages[0] }}</p>
|
||||
@endforeach
|
||||
@error('members')
|
||||
<p class="mt-2 text-sm text-red-600">{{ $message }}</p>
|
||||
<p class="mt-2 text-sm text-red-600 dark:text-red-400">{{ $message }}</p>
|
||||
@enderror
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
<button @click="toggleUpvote()"
|
||||
:disabled="loading"
|
||||
:class="{
|
||||
'bg-primary-100 border-primary-500 text-primary-700': upvoted,
|
||||
'bg-white border-gray-300 text-gray-700 hover:border-gray-400': !upvoted
|
||||
'bg-primary-100 dark:bg-primary-900 border-primary-500 text-primary-700 dark:text-primary-200': upvoted,
|
||||
'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:border-gray-400': !upvoted
|
||||
}"
|
||||
class="{{ $sizeClasses }} flex flex-col items-center justify-center border-2 rounded-lg transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed">
|
||||
<svg :class="{ 'animate-bounce': loading }"
|
||||
|
||||
Reference in New Issue
Block a user