@uplink-protocol/calendar-controller
Version:
Flexible calendar API supporting both calendar and date-picker integrations for any JavaScript framework or library
94 lines (88 loc) • 4.55 kB
HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Date Picker Internationalization Example</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
.calendar-day {
width: 40px;
height: 40px;
}
.selected {
background-color: #4299e1;
color: white;
}
.today {
border: 2px solid #4299e1;
}
.disabled {
opacity: 0.3;
cursor: not-allowed;
}
.other-month {
opacity: 0.5;
}
</style>
</head>
<body class="bg-gray-100 p-6">
<div class="max-w-md mx-auto bg-white rounded-xl shadow-md overflow-hidden">
<div class="p-6">
<h1 class="text-2xl font-bold mb-4">Date Picker Internationalization</h1>
<div class="mb-4">
<label class="block text-gray-700 mb-2">Select Locale:</label>
<select title="locale" id="localeSelector" class="w-full p-2 border border-gray-300 rounded">
<option value="en-US">English (US)</option>
<option value="fr-FR">French (France)</option>
<option value="es-ES">Spanish (Spain)</option>
<option value="de-DE">German (Germany)</option>
<option value="ja-JP">Japanese (Japan)</option>
<option value="ar-EG">Arabic (Egypt)</option>
<option value="zh-CN">Chinese (China)</option>
<option value="ru-RU">Russian (Russia)</option>
</select>
</div>
<div class="calendar-container bg-white p-4 border rounded-lg shadow-sm">
<div class="flex justify-between items-center mb-4">
<div class="flex space-x-1">
<button title="prevYear" id="prevYear" class="w-10 h-10 flex items-center justify-center bg-gray-100 hover:bg-gray-200 rounded transition">
<i class="fa-solid fa-angles-left"></i>
</button>
<button title="prevMonth" id="prevMonth" class="w-10 h-10 flex items-center justify-center bg-gray-100 hover:bg-gray-200 rounded transition">
<i class="fa-solid fa-angle-left"></i>
</button>
</div>
<div id="currentMonthYear" class="text-xl font-semibold"></div>
<div class="flex space-x-1">
<button title="nextMonth" id="nextMonth" class="w-10 h-10 flex items-center justify-center bg-gray-100 hover:bg-gray-200 rounded transition">
<i class="fa-solid fa-angle-right"></i>
</button>
<button title="nextYear" id="nextYear" class="w-10 h-10 flex items-center justify-center bg-gray-100 hover:bg-gray-200 rounded transition">
<i class="fa-solid fa-angles-right"></i>
</button>
</div>
</div>
<div id="weekdays" class="grid grid-cols-7 mb-2"></div>
<div id="calendar" class="grid grid-cols-7 gap-1"></div>
</div>
<div class="mt-6">
<h2 class="font-semibold text-lg mb-2">Selected Date:</h2>
<div id="selectedDate" class="p-2 border rounded bg-gray-50"></div>
</div>
<div class="mt-4">
<button id="toggleMode" class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600 transition">
<i class="fa-solid fa-calendar-range mr-1"></i>
<span>Switch to Range Mode</span>
</button>
<button id="goToToday" class="px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 transition ml-2">
<i class="fa-solid fa-calendar-day mr-1"></i>
<span>Today</span>
</button>
</div>
</div> </div>
<script type="module" src="./js/main.js"></script>
</script>
</body>
</html>