diff --git a/Controllers/SpjDriverController/DetailController.cs b/Controllers/SpjDriverController/DetailController.cs deleted file mode 100644 index baf6bf4..0000000 --- a/Controllers/SpjDriverController/DetailController.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace pesapakawan.Controllers.SpjDriverController -{ - [Route("detail-penjemputan")] - public class DetailPenjemputanController : Controller - { - - [HttpGet("")] - public IActionResult Index() - { - return View("~/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Index.cshtml"); - } - - [HttpGet("batal")] - public IActionResult Batal() - { - return View("~/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Batal.cshtml"); - } - - } -} diff --git a/Controllers/SpjDriverController/HistoryController.cs b/Controllers/SpjDriverController/HistoryController.cs deleted file mode 100644 index 45ed591..0000000 --- a/Controllers/SpjDriverController/HistoryController.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace pesapakawan.Controllers.SpjDriverController -{ - [Route("history")] - public class HistoryController : Controller - { - - [HttpGet("")] - public IActionResult Index() - { - return View("~/Views/Admin/Transport/SpjDriver/History/Index.cshtml"); - } - - [HttpGet("details/{id}")] - public IActionResult Details(int id) - { - ViewData["Id"] = id; - return View("~/Views/Admin/Transport/SpjDriver/History/Details.cshtml"); - } - } -} diff --git a/Controllers/SpjDriverController/LoginController.cs b/Controllers/SpjDriverController/LoginController.cs deleted file mode 100644 index e4942f2..0000000 --- a/Controllers/SpjDriverController/LoginController.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - - -namespace pesapakawan.Controllers.SpjDriverController -{ - [Route("login")] - public class LoginController : Controller - { - private readonly IConfiguration _configuration; - - public LoginController(IConfiguration configuration) - { - _configuration = configuration; - } - - [HttpGet("")] - public IActionResult Index() - { - ViewBag.SSOLoginUrl = _configuration["SSO:LoginUrl"]; - return View("~/Views/Admin/Transport/SpjDriver/Login/Index.cshtml"); - } - } -} diff --git a/Controllers/SpjDriverController/ProfilController.cs b/Controllers/SpjDriverController/ProfilController.cs deleted file mode 100644 index e5f8b94..0000000 --- a/Controllers/SpjDriverController/ProfilController.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace pesapakawan.Controllers.SpjDriverController -{ - [Route("profil")] - public class ProfilController : Controller - { - - [HttpGet("")] - public IActionResult Index() - { - return View("~/Views/Admin/Transport/SpjDriver/Profil/Index.cshtml"); - } - } -} diff --git a/Controllers/SpjDriverController/SpjDriverController.cs b/Controllers/SpjDriverController/SpjDriverController.cs index ba57474..f6275b3 100644 --- a/Controllers/SpjDriverController/SpjDriverController.cs +++ b/Controllers/SpjDriverController/SpjDriverController.cs @@ -30,4 +30,89 @@ public class SpjDriverController : Controller return View("~/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Batal.cshtml"); } + [HttpGet("history")] + public IActionResult History() + { + return View("~/Views/Admin/Transport/SpjDriver/History/Index.cshtml"); + } + + [HttpGet("history/details/{id}")] + public IActionResult HistoryDetails(int id) + { + ViewData["Id"] = id; + return View("~/Views/Admin/Transport/SpjDriver/History/Details.cshtml"); + } + + [HttpGet("submit")] + public IActionResult Submit() + { + return View("~/Views/Admin/Transport/SpjDriver/Submit/Index.cshtml"); + } + + + [HttpGet("/submit/struk")] + public IActionResult Struk() + { + return View("~/Views/Admin/Transport/SpjDriver/Submit/Struk.cshtml"); + } + + [HttpPost("struk")] + public IActionResult ProcessStruk(string NomorStruk, string NomorPolisi, string Penugasan, + string WaktuMasuk, string WaktuKeluar, int? BeratMasuk, int? BeratKeluar, int BeratNett) + { + try + { + if (string.IsNullOrEmpty(NomorStruk) || BeratNett <= 0) + { + TempData["Error"] = "Nomor struk dan berat nett harus diisi."; + return RedirectToAction("Struk"); + } + + if (!System.Text.RegularExpressions.Regex.IsMatch(NomorStruk, @"^\d{7,}$")) + { + TempData["Error"] = "Format nomor struk tidak valid. Harus berupa angka minimal 7 digit."; + return RedirectToAction("Struk"); + } + + if (BeratNett < 100 || BeratNett > 50000) + { + TempData["Error"] = "Berat nett harus antara 100 kg - 50,000 kg."; + return RedirectToAction("Struk"); + } + + if (BeratMasuk.HasValue && (BeratMasuk < 0 || BeratMasuk > 100000)) + { + TempData["Error"] = "Berat masuk tidak valid."; + return RedirectToAction("Struk"); + } + + if (BeratKeluar.HasValue && (BeratKeluar < 0 || BeratKeluar > 100000)) + { + TempData["Error"] = "Berat keluar tidak valid."; + return RedirectToAction("Struk"); + } + + var submitData = new + { + NomorStruk, + NomorPolisi = NomorPolisi ?? "N/A", + Penugasan = Penugasan ?? "N/A", + WaktuMasuk = WaktuMasuk ?? "N/A", + WaktuKeluar = WaktuKeluar ?? "N/A", + BeratMasuk = BeratMasuk?.ToString() ?? "N/A", + BeratKeluar = BeratKeluar?.ToString() ?? "N/A", + BeratNett + }; + + TempData["Success"] = $"Struk berhasil disubmit! No: {NomorStruk}, Nett: {BeratNett} kg"; + return RedirectToAction("Index", "Home"); + + } + catch (Exception) + { + TempData["Error"] = "Terjadi kesalahan saat memproses struk. Silakan coba lagi."; + return RedirectToAction("Struk"); + } + } + } diff --git a/Controllers/SpjDriverController/SubmitController.cs b/Controllers/SpjDriverController/SubmitController.cs deleted file mode 100644 index 62a82c1..0000000 --- a/Controllers/SpjDriverController/SubmitController.cs +++ /dev/null @@ -1,87 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace pesapakawan.Controllers.SpjDriverController -{ - [Route("submit")] - public class SubmitController : Controller - { - - [HttpGet("")] - public IActionResult Index() - { - return View("~/Views/Admin/Transport/SpjDriver/Submit/Index.cshtml"); - } - - - [HttpGet("struk")] - public IActionResult Struk() - { - return View("~/Views/Admin/Transport/SpjDriver/Submit/Struk.cshtml"); - } - - [HttpPost("struk")] - public IActionResult ProcessStruk(string NomorStruk, string NomorPolisi, string Penugasan, - string WaktuMasuk, string WaktuKeluar, int? BeratMasuk, int? BeratKeluar, int BeratNett) - { - try - { - // Validate required inputs - if (string.IsNullOrEmpty(NomorStruk) || BeratNett <= 0) - { - TempData["Error"] = "Nomor struk dan berat nett harus diisi."; - return RedirectToAction("Struk"); - } - - // Validate receipt number format (numbers only, 7+ digits) - if (!System.Text.RegularExpressions.Regex.IsMatch(NomorStruk, @"^\d{7,}$")) - { - TempData["Error"] = "Format nomor struk tidak valid. Harus berupa angka minimal 7 digit."; - return RedirectToAction("Struk"); - } - - // Validate weight range - if (BeratNett < 100 || BeratNett > 50000) - { - TempData["Error"] = "Berat nett harus antara 100 kg - 50,000 kg."; - return RedirectToAction("Struk"); - } - - // Validate optional weights - if (BeratMasuk.HasValue && (BeratMasuk < 0 || BeratMasuk > 100000)) - { - TempData["Error"] = "Berat masuk tidak valid."; - return RedirectToAction("Struk"); - } - - if (BeratKeluar.HasValue && (BeratKeluar < 0 || BeratKeluar > 100000)) - { - TempData["Error"] = "Berat keluar tidak valid."; - return RedirectToAction("Struk"); - } - - // Here you would normally save to database - // For now, just simulate success with all data - var submitData = new - { - NomorStruk, - NomorPolisi = NomorPolisi ?? "N/A", - Penugasan = Penugasan ?? "N/A", - WaktuMasuk = WaktuMasuk ?? "N/A", - WaktuKeluar = WaktuKeluar ?? "N/A", - BeratMasuk = BeratMasuk?.ToString() ?? "N/A", - BeratKeluar = BeratKeluar?.ToString() ?? "N/A", - BeratNett - }; - - TempData["Success"] = $"Struk berhasil disubmit! No: {NomorStruk}, Nett: {BeratNett} kg"; - return RedirectToAction("Index", "Home"); - - } - catch (Exception) - { - TempData["Error"] = "Terjadi kesalahan saat memproses struk. Silakan coba lagi."; - return RedirectToAction("Struk"); - } - } - } -} diff --git a/Views/Admin/Transport/SpjAdmin/History/Details.cshtml b/Views/Admin/Transport/SpjAdmin/History/Details.cshtml new file mode 100644 index 0000000..afae3a4 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/History/Details.cshtml @@ -0,0 +1,163 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml"; + ViewData["Title"] = "Detail Perjalanan - DLH"; +} + +
+ +
+
+ + + +

Detail Perjalanan

+
+
+
+ +
+ +
+
+
+ +
+
+

Muhammad Yusuf

+

Data SPJ

+
+
+ +
+
+ No. SPJ + SPJ/07-2025/PKM/000476 +
+
+ Plat Nomor + B 9632 TOR +
+
+ Nomer Pintu + JRC 005 +
+
+ Tujuan Pembuangan + Taman Barito +
+
+
+ + + +
+
+
+ +
+
+

Ringkasan

+

Informasi perjalanan

+
+
+ +
+
+
3
+
Total
+
+
+
1
+
Selesai
+
+
+
1
+
Proses
+
+
+
1
+
Batal
+
+
+
+ + +
+
+
+ +
+
+

Lokasi Pengangkutan

+

Daftar lokasi yang dikunjungi

+
+
+ +
+ +
+
+
+ +
+
+
+ Pengangkutan + Lokasi 1 +
+

CV Tri Mitra Utama

+

Shell Radio Dalam

+

Alamat:

+

+ Jl. Radio Dalam Raya No.6C Gandaria Utara, Kecamatan Kebayoran Baru, Kota Jakarta Selatan 12140 +

+
+
+
+ + +
+
+
+ +
+
+
+ Sudah Diangkut + Lokasi 2 +
+

CV Tri Berkah Sejahtera

+

Alamat:

+

+ Kp. Pertanian II Rt.004 Rw.001 Kel. Klender Kec, Duren Sawit, Kota Adm. Jakarta Timur 13470 +

+
+
+
+ + +
+
+
+ +
+
+
+ Batal Angkut + Lokasi 3 +
+

CV Tri Berkah Sejahtera

+

Alamat:

+

+ Kp. Pertanian II Rt.004 Rw.001 Kel. Klender Kec, Duren Sawit, Kota Adm. Jakarta Timur 13470 +

+
+
+
+
+
+ +
+ + +
\ No newline at end of file diff --git a/Views/Admin/Transport/SpjAdmin/History/Index.cshtml b/Views/Admin/Transport/SpjAdmin/History/Index.cshtml new file mode 100644 index 0000000..7e5bc52 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/History/Index.cshtml @@ -0,0 +1,159 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml"; + ViewData["Title"] = "History - DLH"; +} + +
+
+
+ + + +

Riwayat SPJ

+
+
+
+ + @{ + var spjList = new[] + { + new { + Id = 1, + Nama = "Yusuf", + NoSpj = "SPJ/07-2025/PKM/000478", + Plat = "B 5678 ABC", + Kode = "JRC 007", + Tujuan = "Bantar Gebang", + Status = "In Progress", + Tanggal = "28 Jul 2025", + Waktu = "16:45" + }, + new { + Id = 2, + Nama = "Ahmad Rizki", + NoSpj = "SPJ/07-2025/PKM/000476", + Plat = "B 9632 TOR", + Kode = "JRC 005", + Tujuan = "RDF Rorotan", + Status = "Completed", + Tanggal = "27 Jul 2025", + Waktu = "14:30" + }, + new { + Id = 3, + Nama = "Siti Aminah", + NoSpj = "SPJ/07-2025/PKM/000477", + Plat = "B 1234 XYZ", + Kode = "JRC 006", + Tujuan = "RDF Pesanggarahan", + Status = "Completed", + Tanggal = "26 Jul 2025", + Waktu = "09:15" + }, + new { + Id = 4, + Nama = "Budi Santoso", + NoSpj = "SPJ/07-2025/PKM/000479", + Plat = "B 9876 DEF", + Kode = "JRC 008", + Tujuan = "RDF Sunter", + Status = "Completed", + Tanggal = "25 Jul 2025", + Waktu = "11:20" + }, + new { + Id = 5, + Nama = "Dewi Lestari", + NoSpj = "SPJ/07-2025/PKM/000480", + Plat = "B 4321 GHI", + Kode = "JRC 009", + Tujuan = "Bantar Gebang", + Status = "Completed", + Tanggal = "24 Jul 2025", + Waktu = "08:45" + } + }; + } + +
+ @foreach (var spj in spjList) + { + +
+
+ +
+
+
+ + @spj.Nama +
+
@spj.NoSpj
+
+
+ @if (spj.Status == "Completed") + { + +
+ Selesai +
+ } + else + { + +
+ Berlangsung +
+ } +
+
+ +
+
+
+
+ +
+
+
@spj.Plat
+
@spj.Kode
+
+
+
+
@spj.Tanggal
+
@spj.Waktu
+
+
+
+ +
+
+ +
+
+
Tujuan
+
@spj.Tujuan
+
+
+ +
+
+
+
+ } +
+ + + + + + + @*
+
+ +
+

Belum Ada Riwayat

+

Riwayat perjalanan Anda akan muncul di sini setelah melakukan perjalanan pertama.

+
*@ + +
\ No newline at end of file diff --git a/Views/Admin/Transport/SpjAdmin/Home/Index.cshtml b/Views/Admin/Transport/SpjAdmin/Home/Index.cshtml new file mode 100644 index 0000000..e0cf642 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Home/Index.cshtml @@ -0,0 +1,183 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml"; + ViewData["Title"] = "Admin Dashboard"; +} + +
+
+
+ + +
+ +
+
+ +
+
+
+
+ +
+
+
+
+
+
+ + +
+

Yusuf

+
+ + Administrator + +
+
+
+ +
+ + + +
+
+
+ +
+

Selamat Datang!

+

Siap kelola sistem eSPJ dengan efisien

+
+
+
+ +
+
+
+
+
+

Total Driver

+

10

+
+
+ +
+
+
+ +
+
+
+

Total SPJ

+

15

+
+
+ +
+
+
+
+
+
+ + + +
+ + + + + + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjAdmin/Scan/Create.cshtml b/Views/Admin/Transport/SpjAdmin/Scan/Create.cshtml new file mode 100644 index 0000000..24befb0 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Scan/Create.cshtml @@ -0,0 +1,871 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml"; + ViewData["Title"] = "Buat Barcode SPJ"; +} + + + +
+ +
+
+ + + +

Buat Barcode SPJ

+
+
+
+ + +
+ + @if (TempData["Success"] != null) + { +
+
+ + @TempData["Success"] +
+
+ } + + @if (TempData["Error"] != null) + { +
+
+ + @TempData["Error"] +
+
+ } + + +
+

Data SPJ

+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+
+ + + + + +
+
+ +
+

Petunjuk Penggunaan:

+
    +
  • Masukkan nomor SPJ (wajib diisi)
  • +
  • Data tambahan seperti nomor kendaraan dan tujuan bersifat opsional
  • +
  • QR Code akan berisi kombinasi semua data yang diisi
  • +
  • Gunakan fitur Download untuk menyimpan atau Print untuk mencetak
  • +
  • QR Code dapat di-scan menggunakan menu Scan SPJ
  • +
+
+
+
+
+ + + +
+ + + + + + + + + + + + + diff --git a/Views/Admin/Transport/SpjAdmin/Scan/Detail.cshtml b/Views/Admin/Transport/SpjAdmin/Scan/Detail.cshtml new file mode 100644 index 0000000..b5c6ab6 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Scan/Detail.cshtml @@ -0,0 +1,118 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml"; + ViewData["Title"] = "Detail SPJ"; +} + +
+
+
+ + + +

Detail SPJ

+
+
+ +
+
+
+ +
+
+
+
+
+ Foto Driver +
+ +
+

Bonny Agung Putra

+

Driver

+ +
+
+ B 1234 XYZ +
+
+ JRC 005 +
+
+
+
+
+
+
+
+
+
+ +
+

Informasi SPJ

+
+ +
+
+
+ + Nomor SPJ +
+
SPJ/07-2025/PKM/000476
+
+ +
+
+ + Tujuan +
+
Taman Barito
+
+
+
+
+ +
+
+
+
+ +
+

Status Penjemputan

+
+ +
+
+
+
+ PENGANGKUTAN +
+

+ CV Tri Mitra Utama - Shell Radio Dalam +

+
+ +
+
+
+ SUDAH TIBA DI LOKASI +
+

+ CV Tri Berkah Sejahtera +

+
+ +
+
+
+ DIBATALKAN +
+

+ CV Tri Berkah Sejahtera +

+
+
+
+
+
+ + +
diff --git a/Views/Admin/Transport/SpjAdmin/Scan/Index.cshtml b/Views/Admin/Transport/SpjAdmin/Scan/Index.cshtml new file mode 100644 index 0000000..da52ca4 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Scan/Index.cshtml @@ -0,0 +1,1088 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml"; + ViewData["Title"] = "Scan SPJ"; +} + +@section Styles { + + + + +} + + +
+
+
+ + + +

Scan SPJ

+
+
+
+ +
+ @if (TempData["Success"] != null) + { +
+
+ + @TempData["Success"] +
+
+ } + + @if (TempData["Error"] != null) + { +
+
+ + @TempData["Error"] +
+
+ } + +
+
+ +
+
+
+

Memuat scanner...

+
+
+ + + +
+
+ +
+ + + + + + + + +
+ +
+

Atau input manual:

+
+ @Html.AntiForgeryToken() +
+
+ +
+ + +
+
+
+ + + + +
+ +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjAdmin/Shared/Components/_Navigation.cshtml b/Views/Admin/Transport/SpjAdmin/Shared/Components/_Navigation.cshtml new file mode 100644 index 0000000..5340fda --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Shared/Components/_Navigation.cshtml @@ -0,0 +1,48 @@ +
+
+
+
+
+
+
+
+ + + +
+ + +
+ + + +
+
+ +
+ + + + + diff --git a/Views/Admin/Transport/SpjAdmin/Shared/Error.cshtml b/Views/Admin/Transport/SpjAdmin/Shared/Error.cshtml new file mode 100644 index 0000000..a1e0478 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Shared/Error.cshtml @@ -0,0 +1,25 @@ +@model ErrorViewModel +@{ + ViewData["Title"] = "Error"; +} + +

Error.

+

An error occurred while processing your request.

+ +@if (Model.ShowRequestId) +{ +

+ Request ID: @Model.RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

diff --git a/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml b/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml new file mode 100644 index 0000000..2542ef6 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml @@ -0,0 +1,55 @@ + + + + + + @ViewData["Title"] - eSPJ + + + + + + + + + + + + + + + + + + + + + + + @* *@ + + + + + + + @await RenderSectionAsync("Styles", required: false) + + + + + @RenderBody() + + + + + + + @await RenderSectionAsync("Scripts", required: false) + + + diff --git a/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml.css b/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml.css new file mode 100644 index 0000000..c187c02 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Shared/_Layout.cshtml.css @@ -0,0 +1,48 @@ +/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification +for details on configuring this project to bundle and minify static web assets. */ + +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +a { + color: #0077cc; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.border-top { + border-top: 1px solid #e5e5e5; +} +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} + +button.accept-policy { + font-size: 1rem; + line-height: inherit; +} + +.footer { + position: absolute; + bottom: 0; + width: 100%; + white-space: nowrap; + line-height: 60px; +} diff --git a/Views/Admin/Transport/SpjAdmin/Shared/_ValidationScriptsPartial.cshtml b/Views/Admin/Transport/SpjAdmin/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..5d1f685 --- /dev/null +++ b/Views/Admin/Transport/SpjAdmin/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,2 @@ + + diff --git a/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Batal.cshtml b/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Batal.cshtml new file mode 100644 index 0000000..2b157b4 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Batal.cshtml @@ -0,0 +1,106 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Detail Batal Penjemputan"; +} + +
+
+
+ + + +

Pembatalan Penjemputan

+
+
+
+ +
+
+
+
+ +
+
+

CV Tri Berkah Sejahtera

+

Lokasi yang dibatalkan

+
+
+

+ Kp. Pertanian II Rt.004 Rw.001 Kel. Klender Kec, Duren Sawit, Kota Adm. Jakarta Timur 13470 +

+
+
+ +
+
+
+
+ +
+
+

Form Pembatalan

+

Berikan keterangan

+
+
+ +
+ +
+ + + +
+ +
+ + Batal + + +
+
+
+
+ + + +
+ + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Index.cshtml b/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Index.cshtml new file mode 100644 index 0000000..194780b --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/DetailPenjemputan/Index.cshtml @@ -0,0 +1,154 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Detail Penjemputan"; +} + +
+
+
+ + + +

Detail Lokasi

+
+
+ +
+
+ B 9632 TOR + (JRC 005) +
+
+ +
+
+ + PENGANGKUTAN + +
+ +
+

CV Tri Berkah Sejahtera

+

SPJ/07-2025/PKM/000476

+
+ +
+

Alamat

+

+ Kp. Pertanian II Rt.004 Rw.001 Kel. Klender Kec, Duren Sawit, Kota Adm. Jakarta Timur 13470 +

+
+ +
+
+

Masukkan Odometer

+
+
+ +
+ +
+
+
+ + + +
+ + Batal Angkut + + +
+
+
+ + +
+ + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/History/Details.cshtml b/Views/Admin/Transport/SpjDriver/History/Details.cshtml new file mode 100644 index 0000000..4e5b2bf --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/History/Details.cshtml @@ -0,0 +1,164 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Detail Perjalanan - DLH"; +} + +
+ +
+
+ + + +

Detail Perjalanan

+
+
+
+ +
+ +
+
+
+ +
+
+

Data SPJ

+

Surat Perintah Jalan

+
+
+ +
+
+ No. SPJ + SPJ/07-2025/PKM/000476 +
+
+ Plat Nomor + B 9632 TOR +
+
+ Nomer Pintu + JRC 005 +
+
+ Tujuan Pembuangan + Taman Barito +
+
+
+ + + +
+
+
+ +
+
+

Ringkasan

+

Informasi perjalanan

+
+
+ +
+
+
3
+
Total
+
+
+
1
+
Selesai
+
+
+
1
+
Proses
+
+
+
1
+
Batal
+
+
+
+ + +
+
+
+ +
+
+

Lokasi Pengangkutan

+

Daftar lokasi yang dikunjungi

+
+
+ +
+ +
+
+
+ +
+
+
+ Pengangkutan + Lokasi 1 +
+

CV Tri Mitra Utama

+

Shell Radio Dalam

+

Alamat:

+

+ Jl. Radio Dalam Raya No.6C Gandaria Utara, Kecamatan Kebayoran Baru, Kota Jakarta Selatan 12140 +

+
+
+
+ + +
+
+
+ +
+
+
+ Sudah Diangkut + Lokasi 2 +
+

CV Tri Berkah Sejahtera

+

Alamat:

+

+ Kp. Pertanian II Rt.004 Rw.001 Kel. Klender Kec, Duren Sawit, Kota Adm. Jakarta Timur 13470 +

+
+
+
+ + +
+
+
+ +
+
+
+ Batal Angkut + Lokasi 3 +
+

CV Tri Berkah Sejahtera

+

Alamat:

+

+ Kp. Pertanian II Rt.004 Rw.001 Kel. Klender Kec, Duren Sawit, Kota Adm. Jakarta Timur 13470 +

+
+
+
+
+
+ +
+ + + +
\ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/History/Index.cshtml b/Views/Admin/Transport/SpjDriver/History/Index.cshtml new file mode 100644 index 0000000..200f83f --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/History/Index.cshtml @@ -0,0 +1,155 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "History - DLH"; +} + +
+
+
+ + + +

Riwayat Perjalanan

+
+
+
+ + @{ + var spjList = new[] + { + new { + Id = 1, + NoSpj = "SPJ/07-2025/PKM/000478", + Plat = "B 5678 ABC", + Kode = "JRC 007", + Tujuan = "Bantar Gebang", + Status = "In Progress", + Tanggal = "28 Jul 2025", + Waktu = "16:45" + }, + new { + Id = 2, + NoSpj = "SPJ/07-2025/PKM/000476", + Plat = "B 9632 TOR", + Kode = "JRC 005", + Tujuan = "RDF Rorotan", + Status = "Completed", + Tanggal = "27 Jul 2025", + Waktu = "14:30" + }, + new { + Id = 3, + NoSpj = "SPJ/07-2025/PKM/000477", + Plat = "B 1234 XYZ", + Kode = "JRC 006", + Tujuan = "RDF Pesanggarahan", + Status = "Completed", + Tanggal = "26 Jul 2025", + Waktu = "09:15" + }, + new { + Id = 4, + NoSpj = "SPJ/07-2025/PKM/000479", + Plat = "B 9876 DEF", + Kode = "JRC 008", + Tujuan = "RDF Sunter", + Status = "Completed", + Tanggal = "25 Jul 2025", + Waktu = "11:20" + }, + new { + Id = 5, + NoSpj = "SPJ/07-2025/PKM/000480", + Plat = "B 4321 GHI", + Kode = "JRC 009", + Tujuan = "Bantar Gebang", + Status = "Completed", + Tanggal = "24 Jul 2025", + Waktu = "08:45" + } + }; + } + + + + + + + + + + @*
+
+ +
+

Belum Ada Riwayat

+

Riwayat perjalanan Anda akan muncul di sini setelah melakukan perjalanan pertama.

+
*@ + +
\ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/Home/Index.cshtml b/Views/Admin/Transport/SpjDriver/Home/Index.cshtml new file mode 100644 index 0000000..dcab756 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Home/Index.cshtml @@ -0,0 +1,325 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Home Page"; +} + +
+ + +
+
+

Bonny Agung Putra

+

Driver UPST

+ +
+ + Lokasi Anda: +
+

+ Mendeteksi lokasi... +

+
+
+
+
+ +
+ + +
+ +
+
+ + +
+
+ tree +
+
+
+

Data SPJ

+
+
+ B 9632 TOR +
+
(JRC 005)
+
+
+
+

No. SPJ

+

SPJ/07-2025/PKM/000476

+

Tujuan Pembuangan

+

Taman Barito

+
+ +
+
+ DLH Logo +
+
+
+
+ + + + + + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/Home/Kosong.cshtml b/Views/Admin/Transport/SpjDriver/Home/Kosong.cshtml new file mode 100644 index 0000000..fcf432c --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Home/Kosong.cshtml @@ -0,0 +1,221 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Home Page"; +} + +
+ +
+
+

Bonny Agung Putra

+

Driver UPST

+
+ + Lokasi Anda: +
+

+ Mendeteksi lokasi... +

+
+
+
+
+ +
+ +
+ +
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+

+ Belum Ada SPJ +

+

+ Anda belum memiliki Surat Perintah Jalan yang aktif saat ini. +

+
+ +
+
+
+
+

SPJ akan diterbitkan oleh admin sesuai jadwal kerja

+
+
+
+

Periksa koneksi internet dan aktifkan lokasi GPS

+
+
+
+ + +
+
+ + + +
+ + + + + + + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/Home/Privacy.cshtml b/Views/Admin/Transport/SpjDriver/Home/Privacy.cshtml new file mode 100644 index 0000000..af4fb19 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Home/Privacy.cshtml @@ -0,0 +1,6 @@ +@{ + ViewData["Title"] = "Privacy Policy"; +} +

@ViewData["Title"]

+ +

Use this page to detail your site's privacy policy.

diff --git a/Views/Admin/Transport/SpjDriver/Login/Index.cshtml b/Views/Admin/Transport/SpjDriver/Login/Index.cshtml new file mode 100644 index 0000000..6590c66 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Login/Index.cshtml @@ -0,0 +1,880 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Login eSPJ"; +} + +
+
+ + +
+ + +
+
+ @*
+ + + +
*@ + +

Selamat Datang di eSPJ

+

Aplikasi modern untuk pengelolaan Surat Perintah Jalan Driver yang efisien dan terintegrasi.

+
+
+ + +
+
+
+ +
+

Monitoring Real-Time

+

Pantau status SPJ driver, kondisi kendaraan, dan muatan di setiap lokasi secara langsung.

+
+
+ + +
+
+
+ + + +
+

Integrasi Lengkap

+

Sistem terhubung antara admin, driver, dan manajemen untuk pengelolaan SPJ yang efisien.

+
+
+ + +
+
+ +
+
+
+ + + + + +
+
+
+
Single Sign-On
+ +
+
+
+ +
+
+
+ + + +
+
+ + @* Display any server-side validation errors *@ + @if (ViewData.ModelState.ErrorCount > 0) + { +
+
+ @foreach (var error in ViewData.ModelState.Values.SelectMany(v => v.Errors)) + { +

@error.ErrorMessage

+ } +
+
+ } + + +@section Styles { + +} + +@section Scripts { + +} \ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/Profil/Index.cshtml b/Views/Admin/Transport/SpjDriver/Profil/Index.cshtml new file mode 100644 index 0000000..2651dec --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Profil/Index.cshtml @@ -0,0 +1,107 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Profil Page"; +} + +
+ +
+
+ + + +

Profil

+
+
+
+ + +
+
+ +
+ Profile Picture +
+ + + +
+
+ + +
+ +
+

Info Akun

+ +
+ + +
+ +
+
+ +
+
+

Nama

+

Bonny Agung Putra

+
+
+ + +
+
+ +
+
+

E-mail

+

bonny@gmail.com

+
+
+ + +
+
+ +
+
+

No. HP

+

+6285777777777

+
+
+ + +
+
+ +
+
+

Alamat

+

+ Kp. Pertanian II Rt 004 Rw 001 Kel. Klender Kec, Duren Swakit, Kota Adm. Jakarta Timur 13470 +

+
+
+
+ + +
+ +
+ +
+ + + + + +
\ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/Shared/Components/_Navigation.cshtml b/Views/Admin/Transport/SpjDriver/Shared/Components/_Navigation.cshtml new file mode 100644 index 0000000..d70e17a --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Shared/Components/_Navigation.cshtml @@ -0,0 +1,53 @@ +
+
+
+
+
+
+
+
+ + + +
+ + +
+ + + + + @* + + + *@ +
+
+ +
+ + + + + diff --git a/Views/Admin/Transport/SpjDriver/Shared/Components/_NavigationAdmin.cshtml b/Views/Admin/Transport/SpjDriver/Shared/Components/_NavigationAdmin.cshtml new file mode 100644 index 0000000..4a6a66c --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Shared/Components/_NavigationAdmin.cshtml @@ -0,0 +1,48 @@ +
+
+
+
+
+
+
+
+ + + +
+ + +
+ + + +
+
+ +
+ + + + + diff --git a/Views/Admin/Transport/SpjDriver/Shared/Error.cshtml b/Views/Admin/Transport/SpjDriver/Shared/Error.cshtml new file mode 100644 index 0000000..a1e0478 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Shared/Error.cshtml @@ -0,0 +1,25 @@ +@model ErrorViewModel +@{ + ViewData["Title"] = "Error"; +} + +

Error.

+

An error occurred while processing your request.

+ +@if (Model.ShowRequestId) +{ +

+ Request ID: @Model.RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

diff --git a/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml b/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml new file mode 100644 index 0000000..2542ef6 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml @@ -0,0 +1,55 @@ + + + + + + @ViewData["Title"] - eSPJ + + + + + + + + + + + + + + + + + + + + + + + @* *@ + + + + + + + @await RenderSectionAsync("Styles", required: false) + + + + + @RenderBody() + + + + + + + @await RenderSectionAsync("Scripts", required: false) + + + diff --git a/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml.css b/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml.css new file mode 100644 index 0000000..c187c02 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml.css @@ -0,0 +1,48 @@ +/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification +for details on configuring this project to bundle and minify static web assets. */ + +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +a { + color: #0077cc; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.border-top { + border-top: 1px solid #e5e5e5; +} +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} + +button.accept-policy { + font-size: 1rem; + line-height: inherit; +} + +.footer { + position: absolute; + bottom: 0; + width: 100%; + white-space: nowrap; + line-height: 60px; +} diff --git a/Views/Admin/Transport/SpjDriver/Shared/_ValidationScriptsPartial.cshtml b/Views/Admin/Transport/SpjDriver/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..5d1f685 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,2 @@ + + diff --git a/Views/Admin/Transport/SpjDriver/Submit/Index.cshtml b/Views/Admin/Transport/SpjDriver/Submit/Index.cshtml new file mode 100644 index 0000000..5d5b6be --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Submit/Index.cshtml @@ -0,0 +1,509 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Submit Foto Muatan"; +} + +
+
+
+ + + +

Unggah Foto Muatan

+
+
+
+ +
+
+
+
+ +
+
+

Foto Muatan Kendaraan

+

+ + Optional +

+
+
+ +
+ + +
+ +
+
+
+
+ + +
+ Lokasi Anda: + +
+

+ Mendeteksi lokasi... +

+

Klik lokasi di atas untuk update posisi Anda

+
+
+ +
+
+ + + +
+ +
+
+
+
+
+ + +
+ + + + + + + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/Submit/Struk.cshtml b/Views/Admin/Transport/SpjDriver/Submit/Struk.cshtml new file mode 100644 index 0000000..1b9e41c --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Submit/Struk.cshtml @@ -0,0 +1,1571 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Submit Struk"; +} + +@section Styles { + +} + +
+
+
+ + + +

Unggah Struk

+
+
+
+ +
+
+
+
+ +
+

Scan Struk Otomatis

+

Arahkan kamera ke struk atau upload foto struk untuk membaca data secara otomatis.

+
+ + + + + + + +
+
+
+
+
+

Memuat scanner...

+
+
+
+
+ +
+ @* *@ + + + + + @*
+
+ atau +
+
*@ + + +

+ Pilih foto struk dari galeri atau ambil foto baru +

+ + + + + + + +
+
+ +
+
+ Hasil Scan +
+
+
+ +
+
+
+ +
+

Data Struk

+

Periksa dan lengkapi data struk sebelum submit.

+
+ +
+ +
+ + +

Nomor tanpa prefix (contoh: 8001441)

+
+ + +
+ + +
+ + +
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +

Berat Nett wajib diisi

+
+
+ + +
+ + + +
+ + + + + \ No newline at end of file diff --git a/Views/Admin/Transport/SpjDriver/Submit/Struk_copy.cshtml b/Views/Admin/Transport/SpjDriver/Submit/Struk_copy.cshtml new file mode 100644 index 0000000..e300f44 --- /dev/null +++ b/Views/Admin/Transport/SpjDriver/Submit/Struk_copy.cshtml @@ -0,0 +1,1504 @@ +@{ + Layout = "~/Views/Admin/Transport/SpjDriver/Shared/_Layout.cshtml"; + ViewData["Title"] = "Submit Struk"; +} + +@section Styles { + +} + +
+
+
+ + + +

Unggah Struk

+
+
+
+ +
+
+
+
+ +
+

Scan Struk Otomatis

+

Arahkan kamera ke struk atau upload foto struk untuk membaca data secara otomatis.

+ +
+ + + +
+
+
+
+
+

Memuat scanner...

+
+
+
+
+ +
+ + + + + +
+
+ atau +
+
+ + +

+ Pilih foto struk dari galeri atau ambil foto baru +

+ + + + + + + + + + + +
+
+ +
+
+ Hasil Scan +
+
+
+ +
+
+
+ +
+

Data Struk

+

Periksa dan lengkapi data struk sebelum submit.

+
+ +
+ +
+ + +

Nomor tanpa prefix (contoh: 8001441)

+
+ + +
+ + +
+ + +
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +

Berat Nett wajib diisi

+
+
+ + +
+ + + +
+ + + + + \ No newline at end of file diff --git a/Views/Website/Jasa/PengangkutanSampah.cshtml b/Views/Website/Jasa/PengangkutanSampah.cshtml index a36c82d..aaaf994 100644 --- a/Views/Website/Jasa/PengangkutanSampah.cshtml +++ b/Views/Website/Jasa/PengangkutanSampah.cshtml @@ -22,7 +22,7 @@
diff --git a/Views/Website/Jasa/PengolahanSampah.cshtml b/Views/Website/Jasa/PengolahanSampah.cshtml index cc811bf..0a36856 100644 --- a/Views/Website/Jasa/PengolahanSampah.cshtml +++ b/Views/Website/Jasa/PengolahanSampah.cshtml @@ -22,7 +22,7 @@
diff --git a/Views/Website/Kontak/Index.cshtml b/Views/Website/Kontak/Index.cshtml index fec5059..361ac9e 100644 --- a/Views/Website/Kontak/Index.cshtml +++ b/Views/Website/Kontak/Index.cshtml @@ -22,7 +22,7 @@
diff --git a/Views/Website/Shared/Components/Frontend/_Faq.cshtml b/Views/Website/Shared/Components/Frontend/_Faq.cshtml index d9d5235..b09f575 100644 --- a/Views/Website/Shared/Components/Frontend/_Faq.cshtml +++ b/Views/Website/Shared/Components/Frontend/_Faq.cshtml @@ -6,19 +6,13 @@

Kenapa Harus Melakukan

-

PESAPA KAWAN ?

+

PesapaKawan?

- @*
-

- Frequently Asked Questions -

-

Pertanyaan yang sering diajukan tentang PESAPA KAWAN

-
*@ -
+
- @@ -59,15 +59,30 @@
diff --git a/wwwroot/website/css/watch.css b/wwwroot/website/css/watch.css index 51c4fb4..a69e0e2 100644 --- a/wwwroot/website/css/watch.css +++ b/wwwroot/website/css/watch.css @@ -21,6 +21,7 @@ --color-orange-100: oklch(95.4% 0.038 75.164); --color-orange-200: oklch(90.1% 0.076 70.697); --color-orange-300: oklch(83.7% 0.128 66.29); + --color-orange-400: oklch(75% 0.183 55.934); --color-orange-500: oklch(70.5% 0.213 47.604); --color-orange-600: oklch(64.6% 0.222 41.116); --color-orange-700: oklch(55.3% 0.195 38.402); @@ -28,14 +29,20 @@ --color-orange-900: oklch(40.8% 0.123 38.172); --color-amber-50: oklch(98.7% 0.022 95.277); --color-amber-100: oklch(96.2% 0.059 95.617); + --color-amber-200: oklch(92.4% 0.12 95.746); --color-amber-300: oklch(87.9% 0.169 91.605); --color-amber-400: oklch(82.8% 0.189 84.429); + --color-amber-500: oklch(76.9% 0.188 70.08); --color-amber-600: oklch(66.6% 0.179 58.318); + --color-amber-700: oklch(55.5% 0.163 48.998); --color-yellow-50: oklch(98.7% 0.026 102.212); --color-yellow-100: oklch(97.3% 0.071 103.193); --color-yellow-200: oklch(94.5% 0.129 101.54); --color-yellow-300: oklch(90.5% 0.182 98.111); + --color-yellow-400: oklch(85.2% 0.199 91.936); + --color-yellow-500: oklch(79.5% 0.184 86.047); --color-yellow-600: oklch(68.1% 0.162 75.834); + --color-yellow-700: oklch(55.4% 0.135 66.442); --color-yellow-800: oklch(47.6% 0.114 61.907); --color-green-50: oklch(98.2% 0.018 155.826); --color-green-100: oklch(96.2% 0.044 156.743); @@ -48,7 +55,10 @@ --color-green-800: oklch(44.8% 0.119 151.328); --color-green-900: oklch(39.3% 0.095 152.535); --color-emerald-50: oklch(97.9% 0.021 166.113); + --color-emerald-400: oklch(76.5% 0.177 163.223); + --color-emerald-500: oklch(69.6% 0.17 162.48); --color-emerald-600: oklch(59.6% 0.145 163.225); + --color-emerald-700: oklch(50.8% 0.118 165.612); --color-teal-50: oklch(98.4% 0.014 180.72); --color-teal-100: oklch(95.3% 0.051 180.801); --color-teal-400: oklch(77.7% 0.152 181.912); @@ -76,6 +86,7 @@ --color-blue-900: oklch(37.9% 0.146 265.522); --color-indigo-50: oklch(96.2% 0.018 272.314); --color-indigo-100: oklch(93% 0.034 272.788); + --color-indigo-300: oklch(78.5% 0.115 274.713); --color-indigo-700: oklch(45.7% 0.24 277.023); --color-indigo-800: oklch(39.8% 0.195 277.366); --color-purple-50: oklch(97.7% 0.014 308.299); @@ -87,7 +98,17 @@ --color-purple-800: oklch(43.8% 0.218 303.724); --color-purple-900: oklch(38.1% 0.176 304.987); --color-pink-50: oklch(97.1% 0.014 343.198); + --color-rose-50: oklch(96.9% 0.015 12.422); + --color-rose-500: oklch(64.5% 0.246 16.439); + --color-rose-600: oklch(58.6% 0.253 17.585); --color-slate-50: oklch(98.4% 0.003 247.858); + --color-slate-100: oklch(96.8% 0.007 247.896); + --color-slate-200: oklch(92.9% 0.013 255.508); + --color-slate-400: oklch(70.4% 0.04 256.788); + --color-slate-600: oklch(44.6% 0.043 257.281); + --color-slate-700: oklch(37.2% 0.044 257.287); + --color-slate-800: oklch(27.9% 0.041 260.031); + --color-slate-900: oklch(20.8% 0.042 265.755); --color-gray-50: oklch(98.5% 0.002 247.839); --color-gray-100: oklch(96.7% 0.003 264.542); --color-gray-200: oklch(92.8% 0.006 264.531); @@ -137,6 +158,10 @@ --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; + --font-weight-extrabold: 800; + --tracking-wide: 0.025em; + --tracking-wider: 0.05em; + --tracking-widest: 0.1em; --leading-tight: 1.25; --leading-relaxed: 1.625; --radius-md: 0.375rem; @@ -146,9 +171,16 @@ --radius-3xl: 1.5rem; --radius-4xl: 2rem; --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15); + --ease-in: cubic-bezier(0.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, 0.2, 1); --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --animate-spin: spin 1s linear infinite; + --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; + --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; + --animate-bounce: bounce 1s infinite; + --blur-sm: 8px; --blur-md: 12px; + --blur-lg: 16px; --blur-2xl: 40px; --blur-3xl: 64px; --default-transition-duration: 150ms; @@ -360,6 +392,21 @@ .end-100 { inset-inline-end: calc(var(--spacing) * 100); } + .-top-0 { + top: calc(var(--spacing) * -0); + } + .-top-4 { + top: calc(var(--spacing) * -4); + } + .-top-14 { + top: calc(var(--spacing) * -14); + } + .-top-15 { + top: calc(var(--spacing) * -15); + } + .-top-16 { + top: calc(var(--spacing) * -16); + } .-top-17 { top: calc(var(--spacing) * -17); } @@ -369,6 +416,18 @@ .-top-20 { top: calc(var(--spacing) * -20); } + .-top-22 { + top: calc(var(--spacing) * -22); + } + .-top-23 { + top: calc(var(--spacing) * -23); + } + .-top-23\.5 { + top: calc(var(--spacing) * -23.5); + } + .-top-24 { + top: calc(var(--spacing) * -24); + } .top-0 { top: calc(var(--spacing) * 0); } @@ -378,9 +437,24 @@ .top-1\/2 { top: calc(1/2 * 100%); } + .top-2 { + top: calc(var(--spacing) * 2); + } + .top-3 { + top: calc(var(--spacing) * 3); + } + .top-4 { + top: calc(var(--spacing) * 4); + } .top-10 { top: calc(var(--spacing) * 10); } + .top-12 { + top: calc(var(--spacing) * 12); + } + .top-14 { + top: calc(var(--spacing) * 14); + } .top-20 { top: calc(var(--spacing) * 20); } @@ -390,24 +464,66 @@ .top-100 { top: calc(var(--spacing) * 100); } + .-right-1 { + right: calc(var(--spacing) * -1); + } .right-0 { right: calc(var(--spacing) * 0); } + .right-1 { + right: calc(var(--spacing) * 1); + } + .right-3 { + right: calc(var(--spacing) * 3); + } + .right-4 { + right: calc(var(--spacing) * 4); + } + .right-8 { + right: calc(var(--spacing) * 8); + } .right-10 { right: calc(var(--spacing) * 10); } + .right-16 { + right: calc(var(--spacing) * 16); + } .right-20 { right: calc(var(--spacing) * 20); } + .right-full { + right: 100%; + } + .-bottom-0 { + bottom: calc(var(--spacing) * -0); + } + .-bottom-0\.5 { + bottom: calc(var(--spacing) * -0.5); + } .-bottom-1 { bottom: calc(var(--spacing) * -1); } .bottom-0 { bottom: calc(var(--spacing) * 0); } + .bottom-1 { + bottom: calc(var(--spacing) * 1); + } + .bottom-2 { + bottom: calc(var(--spacing) * 2); + } + .bottom-4 { + bottom: calc(var(--spacing) * 4); + } + .bottom-8 { + bottom: calc(var(--spacing) * 8); + } .bottom-10 { bottom: calc(var(--spacing) * 10); } + .bottom-16 { + bottom: calc(var(--spacing) * 16); + } .bottom-20 { bottom: calc(var(--spacing) * 20); } @@ -432,9 +548,18 @@ .left-1\/7 { left: calc(1/7 * 100%); } + .left-2 { + left: calc(var(--spacing) * 2); + } + .left-8 { + left: calc(var(--spacing) * 8); + } .left-10 { left: calc(var(--spacing) * 10); } + .left-12 { + left: calc(var(--spacing) * 12); + } .z-0 { z-index: 0; } @@ -453,9 +578,21 @@ .z-20 { z-index: 20; } + .z-21 { + z-index: 21; + } + .z-30 { + z-index: 30; + } .z-50 { z-index: 50; } + .z-99 { + z-index: 99; + } + .z-\[100\] { + z-index: 100; + } .order-0 { order: 0; } @@ -609,6 +746,9 @@ .my-5 { margin-block: calc(var(--spacing) * 5); } + .my-6 { + margin-block: calc(var(--spacing) * 6); + } .my-8 { margin-block: calc(var(--spacing) * 8); } @@ -660,15 +800,33 @@ .me-auto { margin-inline-end: auto; } + .-mt-4 { + margin-top: calc(var(--spacing) * -4); + } + .-mt-6 { + margin-top: calc(var(--spacing) * -6); + } + .-mt-10 { + margin-top: calc(var(--spacing) * -10); + } + .-mt-12 { + margin-top: calc(var(--spacing) * -12); + } .-mt-16 { margin-top: calc(var(--spacing) * -16); } .mt-0 { margin-top: calc(var(--spacing) * 0); } + .mt-0\.5 { + margin-top: calc(var(--spacing) * 0.5); + } .mt-1 { margin-top: calc(var(--spacing) * 1); } + .mt-1\.5 { + margin-top: calc(var(--spacing) * 1.5); + } .mt-2 { margin-top: calc(var(--spacing) * 2); } @@ -687,6 +845,9 @@ .mt-8 { margin-top: calc(var(--spacing) * 8); } + .mt-40 { + margin-top: calc(var(--spacing) * 40); + } .mt-auto { margin-top: auto; } @@ -699,6 +860,9 @@ .mb-0 { margin-bottom: calc(var(--spacing) * 0); } + .mb-0\.5 { + margin-bottom: calc(var(--spacing) * 0.5); + } .mb-1 { margin-bottom: calc(var(--spacing) * 1); } @@ -735,9 +899,15 @@ .ml-3 { margin-left: calc(var(--spacing) * 3); } + .ml-4 { + margin-left: calc(var(--spacing) * 4); + } .ml-6 { margin-left: calc(var(--spacing) * 6); } + .ml-auto { + margin-left: auto; + } .\!hidden { display: none !important; } @@ -792,6 +962,9 @@ .h-2 { height: calc(var(--spacing) * 2); } + .h-3 { + height: calc(var(--spacing) * 3); + } .h-4 { height: calc(var(--spacing) * 4); } @@ -801,12 +974,21 @@ .h-6 { height: calc(var(--spacing) * 6); } + .h-7 { + height: calc(var(--spacing) * 7); + } .h-8 { height: calc(var(--spacing) * 8); } + .h-10 { + height: calc(var(--spacing) * 10); + } .h-12 { height: calc(var(--spacing) * 12); } + .h-14 { + height: calc(var(--spacing) * 14); + } .h-16 { height: calc(var(--spacing) * 16); } @@ -822,6 +1004,9 @@ .h-28 { height: calc(var(--spacing) * 28); } + .h-30 { + height: calc(var(--spacing) * 30); + } .h-32 { height: calc(var(--spacing) * 32); } @@ -837,6 +1022,12 @@ .h-50 { height: calc(var(--spacing) * 50); } + .h-60 { + height: calc(var(--spacing) * 60); + } + .h-64 { + height: calc(var(--spacing) * 64); + } .h-75 { height: calc(var(--spacing) * 75); } @@ -846,6 +1037,9 @@ .h-100 { height: calc(var(--spacing) * 100); } + .h-\[250px\] { + height: 250px; + } .h-auto { height: auto; } @@ -876,6 +1070,9 @@ .w-2\/3 { width: calc(2/3 * 100%); } + .w-3 { + width: calc(var(--spacing) * 3); + } .w-4 { width: calc(var(--spacing) * 4); } @@ -888,15 +1085,24 @@ .w-6 { width: calc(var(--spacing) * 6); } + .w-7 { + width: calc(var(--spacing) * 7); + } .w-8 { width: calc(var(--spacing) * 8); } + .w-9 { + width: calc(var(--spacing) * 9); + } .w-10 { width: calc(var(--spacing) * 10); } .w-12 { width: calc(var(--spacing) * 12); } + .w-14 { + width: calc(var(--spacing) * 14); + } .w-16 { width: calc(var(--spacing) * 16); } @@ -912,6 +1118,9 @@ .w-28 { width: calc(var(--spacing) * 28); } + .w-30 { + width: calc(var(--spacing) * 30); + } .w-32 { width: calc(var(--spacing) * 32); } @@ -924,6 +1133,9 @@ .w-40 { width: calc(var(--spacing) * 40); } + .w-48 { + width: calc(var(--spacing) * 48); + } .w-50 { width: calc(var(--spacing) * 50); } @@ -945,6 +1157,9 @@ .w-full { width: 100%; } + .w-max { + width: max-content; + } .max-w-2xl { max-width: var(--container-2xl); } @@ -975,6 +1190,9 @@ .max-w-xs { max-width: var(--container-xs); } + .min-w-0 { + min-width: calc(var(--spacing) * 0); + } .min-w-\[240px\] { min-width: 240px; } @@ -1014,6 +1232,9 @@ .border-collapse { border-collapse: collapse; } + .origin-top { + transform-origin: top; + } .-translate-x-1 { --tw-translate-x: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); @@ -1030,6 +1251,14 @@ --tw-translate-x: calc(var(--spacing) * 16); translate: var(--tw-translate-x) var(--tw-translate-y); } + .-translate-y-1 { + --tw-translate-y: calc(var(--spacing) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .-translate-y-1\/2 { + --tw-translate-y: calc(calc(1/2 * 100%) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } .-translate-y-16 { --tw-translate-y: calc(var(--spacing) * -16); translate: var(--tw-translate-x) var(--tw-translate-y); @@ -1038,18 +1267,57 @@ --tw-translate-y: calc(var(--spacing) * 12); translate: var(--tw-translate-x) var(--tw-translate-y); } + .scale-95 { + --tw-scale-x: 95%; + --tw-scale-y: 95%; + --tw-scale-z: 95%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + .scale-100 { + --tw-scale-x: 100%; + --tw-scale-y: 100%; + --tw-scale-z: 100%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + .scale-110 { + --tw-scale-x: 110%; + --tw-scale-y: 110%; + --tw-scale-z: 110%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } .rotate-180 { rotate: 180deg; } .transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); } + .animate-bounce { + animation: var(--animate-bounce); + } + .animate-ping { + animation: var(--animate-ping); + } + .animate-pulse { + animation: var(--animate-pulse); + } + .animate-spin { + animation: var(--animate-spin); + } + .cursor-not-allowed { + cursor: not-allowed; + } .cursor-pointer { cursor: pointer; } .resize { resize: both; } + .resize-none { + resize: none; + } + .list-inside { + list-style-position: inside; + } .list-decimal { list-style-type: decimal; } @@ -1062,6 +1330,9 @@ .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } .flex-col { flex-direction: column; } @@ -1083,6 +1354,9 @@ .items-center { align-items: center; } + .items-end { + align-items: flex-end; + } .items-start { align-items: flex-start; } @@ -1261,6 +1535,9 @@ .rounded-2xl { border-radius: var(--radius-2xl); } + .rounded-3xl { + border-radius: var(--radius-3xl); + } .rounded-4xl { border-radius: var(--radius-4xl); } @@ -1280,6 +1557,10 @@ border-top-left-radius: var(--radius-2xl); border-top-right-radius: var(--radius-2xl); } + .rounded-t-3xl { + border-top-left-radius: var(--radius-3xl); + border-top-right-radius: var(--radius-3xl); + } .rounded-r-lg { border-top-right-radius: var(--radius-lg); border-bottom-right-radius: var(--radius-lg); @@ -1317,12 +1598,25 @@ border-bottom-right-radius: var(--radius-3xl); border-bottom-left-radius: var(--radius-3xl); } + .rounded-b-\[2rem\] { + border-bottom-right-radius: 2rem; + border-bottom-left-radius: 2rem; + } .rounded-br-4xl { border-bottom-right-radius: var(--radius-4xl); } + .rounded-br-\[125px\] { + border-bottom-right-radius: 125px; + } + .rounded-br-full { + border-bottom-right-radius: calc(infinity * 1px); + } .rounded-bl-4xl { border-bottom-left-radius: var(--radius-4xl); } + .rounded-bl-full { + border-bottom-left-radius: calc(infinity * 1px); + } .border { border-style: var(--tw-border-style); border-width: 1px; @@ -1359,16 +1653,30 @@ border-top-style: var(--tw-border-style); border-top-width: 0px; } + .border-b { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } .border-l-4 { border-left-style: var(--tw-border-style); border-left-width: 4px; } + .border-dashed { + --tw-border-style: dashed; + border-style: dashed; + } .border-amber-50 { border-color: var(--color-amber-50); } .border-amber-100 { border-color: var(--color-amber-100); } + .border-amber-200 { + border-color: var(--color-amber-200); + } + .border-amber-400 { + border-color: var(--color-amber-400); + } .border-black { border-color: var(--color-black); } @@ -1381,39 +1689,84 @@ .border-blue-600 { border-color: var(--color-blue-600); } + .border-emerald-400 { + border-color: var(--color-emerald-400); + } + .border-gray-50 { + border-color: var(--color-gray-50); + } .border-gray-100 { border-color: var(--color-gray-100); } .border-gray-200 { border-color: var(--color-gray-200); } + .border-gray-200\/50 { + border-color: color-mix(in srgb, oklch(92.8% 0.006 264.531) 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-gray-200) 50%, transparent); + } + } .border-gray-300 { border-color: var(--color-gray-300); } .border-gray-700 { border-color: var(--color-gray-700); } + .border-green-100 { + border-color: var(--color-green-100); + } .border-green-200 { border-color: var(--color-green-200); } .border-green-300 { border-color: var(--color-green-300); } + .border-green-400 { + border-color: var(--color-green-400); + } .border-orange-200 { border-color: var(--color-orange-200); } + .border-orange-300 { + border-color: var(--color-orange-300); + } + .border-orange-400 { + border-color: var(--color-orange-400); + } + .border-orange-400\/20 { + border-color: color-mix(in srgb, oklch(75% 0.183 55.934) 20%, transparent); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-orange-400) 20%, transparent); + } + } .border-purple-200 { border-color: var(--color-purple-200); } + .border-red-100 { + border-color: var(--color-red-100); + } .border-red-200 { border-color: var(--color-red-200); } .border-red-300 { border-color: var(--color-red-300); } + .border-red-400 { + border-color: var(--color-red-400); + } .border-red-500 { border-color: var(--color-red-500); } + .border-slate-200 { + border-color: var(--color-slate-200); + } + .border-slate-200\/50 { + border-color: color-mix(in srgb, oklch(92.9% 0.013 255.508) 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-slate-200) 50%, transparent); + } + } .border-white { border-color: var(--color-white); } @@ -1429,12 +1782,24 @@ border-color: color-mix(in oklab, var(--color-white) 20%, transparent); } } + .border-white\/30 { + border-color: color-mix(in srgb, #fff 30%, transparent); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-white) 30%, transparent); + } + } + .border-yellow-100 { + border-color: var(--color-yellow-100); + } .border-yellow-200 { border-color: var(--color-yellow-200); } .border-yellow-300 { border-color: var(--color-yellow-300); } + .border-t-transparent { + border-top-color: transparent; + } .bg-\[\#20D3D3\] { background-color: #20D3D3; } @@ -1444,9 +1809,39 @@ .bg-amber-300 { background-color: var(--color-amber-300); } + .bg-amber-400 { + background-color: var(--color-amber-400); + } .bg-black { background-color: var(--color-black); } + .bg-black\/10 { + background-color: color-mix(in srgb, #000 10%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-black) 10%, transparent); + } + } + .bg-black\/20 { + background-color: color-mix(in srgb, #000 20%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-black) 20%, transparent); + } + } + .bg-black\/50 { + background-color: color-mix(in srgb, #000 50%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-black) 50%, transparent); + } + } + .bg-black\/75 { + background-color: color-mix(in srgb, #000 75%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-black) 75%, transparent); + } + } + .bg-black\/100 { + background-color: var(--color-black); + } .bg-blue-50 { background-color: var(--color-blue-50); } @@ -1459,6 +1854,9 @@ .bg-blue-300 { background-color: var(--color-blue-300); } + .bg-blue-400 { + background-color: var(--color-blue-400); + } .bg-blue-500 { background-color: var(--color-blue-500); } @@ -1480,6 +1878,9 @@ .bg-cyan-800 { background-color: var(--color-cyan-800); } + .bg-emerald-400 { + background-color: var(--color-emerald-400); + } .bg-gray-50 { background-color: var(--color-gray-50); } @@ -1489,6 +1890,18 @@ .bg-gray-200 { background-color: var(--color-gray-200); } + .bg-gray-400 { + background-color: var(--color-gray-400); + } + .bg-gray-500 { + background-color: var(--color-gray-500); + } + .bg-gray-800 { + background-color: var(--color-gray-800); + } + .bg-gray-900 { + background-color: var(--color-gray-900); + } .bg-green-50 { background-color: var(--color-green-50); } @@ -1498,18 +1911,45 @@ .bg-green-200 { background-color: var(--color-green-200); } + .bg-green-400 { + background-color: var(--color-green-400); + } .bg-green-500 { background-color: var(--color-green-500); } + .bg-green-600 { + background-color: var(--color-green-600); + } .bg-indigo-50 { background-color: var(--color-indigo-50); } + .bg-indigo-300 { + background-color: var(--color-indigo-300); + } .bg-orange-50 { background-color: var(--color-orange-50); } + .bg-orange-100 { + background-color: var(--color-orange-100); + } + .bg-orange-300 { + background-color: var(--color-orange-300); + } + .bg-orange-400 { + background-color: var(--color-orange-400); + } .bg-orange-500 { background-color: var(--color-orange-500); } + .bg-orange-700 { + background-color: var(--color-orange-700); + } + .bg-orange-700\/30 { + background-color: color-mix(in srgb, oklch(55.3% 0.195 38.402) 30%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-orange-700) 30%, transparent); + } + } .bg-purple-50 { background-color: var(--color-purple-50); } @@ -1528,9 +1968,18 @@ .bg-red-200 { background-color: var(--color-red-200); } + .bg-red-400 { + background-color: var(--color-red-400); + } .bg-red-500 { background-color: var(--color-red-500); } + .bg-slate-100 { + background-color: var(--color-slate-100); + } + .bg-slate-400 { + background-color: var(--color-slate-400); + } .bg-teal-50 { background-color: var(--color-teal-50); } @@ -1543,6 +1992,12 @@ .bg-white { background-color: var(--color-white); } + .bg-white\/5 { + background-color: color-mix(in srgb, #fff 5%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-white) 5%, transparent); + } + } .bg-white\/10 { background-color: color-mix(in srgb, #fff 10%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -1555,6 +2010,12 @@ background-color: color-mix(in oklab, var(--color-white) 20%, transparent); } } + .bg-white\/70 { + background-color: color-mix(in srgb, #fff 70%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-white) 70%, transparent); + } + } .bg-white\/95 { background-color: color-mix(in srgb, #fff 95%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -1570,6 +2031,12 @@ .bg-yellow-200 { background-color: var(--color-yellow-200); } + .bg-yellow-400 { + background-color: var(--color-yellow-400); + } + .bg-yellow-500 { + background-color: var(--color-yellow-500); + } .bg-gradient-to-br { --tw-gradient-position: to bottom right in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); @@ -1582,10 +2049,18 @@ --tw-gradient-from: #20D3D3; --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-amber-50 { + --tw-gradient-from: var(--color-amber-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-blue-50 { --tw-gradient-from: var(--color-blue-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-blue-100 { + --tw-gradient-from: var(--color-blue-100); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-blue-400 { --tw-gradient-from: var(--color-blue-400); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1610,6 +2085,10 @@ --tw-gradient-from: var(--color-cyan-500); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-emerald-50 { + --tw-gradient-from: var(--color-emerald-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-gray-50 { --tw-gradient-from: var(--color-gray-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1622,6 +2101,10 @@ --tw-gradient-from: var(--color-green-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-green-400 { + --tw-gradient-from: var(--color-green-400); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-green-500 { --tw-gradient-from: var(--color-green-500); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1630,10 +2113,22 @@ --tw-gradient-from: var(--color-green-600); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-indigo-50 { + --tw-gradient-from: var(--color-indigo-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-orange-50 { --tw-gradient-from: var(--color-orange-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-orange-100 { + --tw-gradient-from: var(--color-orange-100); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-orange-400 { + --tw-gradient-from: var(--color-orange-400); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-orange-500 { --tw-gradient-from: var(--color-orange-500); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1646,23 +2141,106 @@ --tw-gradient-from: var(--color-red-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-red-400 { + --tw-gradient-from: var(--color-red-400); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-red-500 { + --tw-gradient-from: var(--color-red-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-red-600 { + --tw-gradient-from: var(--color-red-600); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-slate-50 { + --tw-gradient-from: var(--color-slate-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-slate-700 { + --tw-gradient-from: var(--color-slate-700); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-teal-400 { --tw-gradient-from: var(--color-teal-400); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-white { + --tw-gradient-from: var(--color-white); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .from-yellow-50 { --tw-gradient-from: var(--color-yellow-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .from-yellow-400 { + --tw-gradient-from: var(--color-yellow-400); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-yellow-500 { + --tw-gradient-from: var(--color-yellow-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .from-yellow-600 { + --tw-gradient-from: var(--color-yellow-600); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .via-amber-50 { + --tw-gradient-via: var(--color-amber-50); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .via-blue-50 { + --tw-gradient-via: var(--color-blue-50); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .via-emerald-50 { + --tw-gradient-via: var(--color-emerald-50); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } .via-gray-800 { --tw-gradient-via: var(--color-gray-800); --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-via-stops); } + .via-orange-400 { + --tw-gradient-via: var(--color-orange-400); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .via-orange-600 { + --tw-gradient-via: var(--color-orange-600); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .via-rose-50 { + --tw-gradient-via: var(--color-rose-50); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } + .via-white { + --tw-gradient-via: var(--color-white); + --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-via-stops); + } .to-\[\#20D3D3\] { --tw-gradient-to: #20D3D3; --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-amber-500 { + --tw-gradient-to: var(--color-amber-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-amber-600 { + --tw-gradient-to: var(--color-amber-600); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-blue-200 { + --tw-gradient-to: var(--color-blue-200); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-blue-500 { --tw-gradient-to: var(--color-blue-500); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1699,14 +2277,26 @@ --tw-gradient-to: var(--color-emerald-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-emerald-500 { + --tw-gradient-to: var(--color-emerald-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-emerald-600 { --tw-gradient-to: var(--color-emerald-600); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-gray-100 { + --tw-gradient-to: var(--color-gray-100); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-gray-900 { --tw-gradient-to: var(--color-gray-900); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-green-50 { + --tw-gradient-to: var(--color-green-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-green-400 { --tw-gradient-to: var(--color-green-400); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1719,10 +2309,30 @@ --tw-gradient-to: var(--color-indigo-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-indigo-100 { + --tw-gradient-to: var(--color-indigo-100); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-orange-50 { --tw-gradient-to: var(--color-orange-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-orange-100 { + --tw-gradient-to: var(--color-orange-100); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-orange-200 { + --tw-gradient-to: var(--color-orange-200); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-orange-400 { + --tw-gradient-to: var(--color-orange-400); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-orange-500 { + --tw-gradient-to: var(--color-orange-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-orange-600 { --tw-gradient-to: var(--color-orange-600); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1731,6 +2341,10 @@ --tw-gradient-to: var(--color-pink-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-purple-50 { + --tw-gradient-to: var(--color-purple-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-purple-600 { --tw-gradient-to: var(--color-purple-600); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1739,18 +2353,50 @@ --tw-gradient-to: var(--color-red-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-red-100 { + --tw-gradient-to: var(--color-red-100); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-red-500 { + --tw-gradient-to: var(--color-red-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-red-600 { --tw-gradient-to: var(--color-red-600); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-rose-50 { + --tw-gradient-to: var(--color-rose-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-rose-500 { + --tw-gradient-to: var(--color-rose-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-rose-600 { + --tw-gradient-to: var(--color-rose-600); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-slate-50 { --tw-gradient-to: var(--color-slate-50); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-slate-900 { + --tw-gradient-to: var(--color-slate-900); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-teal-50 { + --tw-gradient-to: var(--color-teal-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .to-white { --tw-gradient-to: var(--color-white); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } + .to-yellow-50 { + --tw-gradient-to: var(--color-yellow-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .bg-cover { background-size: cover; } @@ -1766,6 +2412,9 @@ .object-contain { object-fit: contain; } + .object-cover { + object-fit: cover; + } .p-0 { padding: calc(var(--spacing) * 0); } @@ -1835,6 +2484,9 @@ .py-5 { padding-block: calc(var(--spacing) * 5); } + .py-6 { + padding-block: calc(var(--spacing) * 6); + } .py-8 { padding-block: calc(var(--spacing) * 8); } @@ -1844,6 +2496,9 @@ .py-12 { padding-block: calc(var(--spacing) * 12); } + .py-16 { + padding-block: calc(var(--spacing) * 16); + } .py-20 { padding-block: calc(var(--spacing) * 20); } @@ -1901,6 +2556,9 @@ .pt-5 { padding-top: calc(var(--spacing) * 5); } + .pt-6 { + padding-top: calc(var(--spacing) * 6); + } .pt-8 { padding-top: calc(var(--spacing) * 8); } @@ -1937,15 +2595,24 @@ .pb-5 { padding-bottom: calc(var(--spacing) * 5); } + .pb-6 { + padding-bottom: calc(var(--spacing) * 6); + } .pb-8 { padding-bottom: calc(var(--spacing) * 8); } .pb-10 { padding-bottom: calc(var(--spacing) * 10); } + .pb-12 { + padding-bottom: calc(var(--spacing) * 12); + } .pl-3 { padding-left: calc(var(--spacing) * 3); } + .pl-4 { + padding-left: calc(var(--spacing) * 4); + } .pl-5 { padding-left: calc(var(--spacing) * 5); } @@ -1961,6 +2628,9 @@ .text-left { text-align: left; } + .text-right { + text-align: right; + } .text-start { text-align: start; } @@ -1982,6 +2652,9 @@ .align-top { vertical-align: top; } + .font-mono { + font-family: var(--font-mono); + } .font-sans { font-family: var(--font-sans); } @@ -1993,6 +2666,10 @@ font-size: var(--text-3xl); line-height: var(--tw-leading, var(--text-3xl--line-height)); } + .text-4xl { + font-size: var(--text-4xl); + line-height: var(--tw-leading, var(--text-4xl--line-height)); + } .text-5xl { font-size: var(--text-5xl); line-height: var(--tw-leading, var(--text-5xl--line-height)); @@ -2033,6 +2710,10 @@ --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); } + .font-extrabold { + --tw-font-weight: var(--font-weight-extrabold); + font-weight: var(--font-weight-extrabold); + } .font-light { --tw-font-weight: var(--font-weight-light); font-weight: var(--font-weight-light); @@ -2045,15 +2726,36 @@ --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); } + .tracking-wide { + --tw-tracking: var(--tracking-wide); + letter-spacing: var(--tracking-wide); + } + .tracking-wider { + --tw-tracking: var(--tracking-wider); + letter-spacing: var(--tracking-wider); + } + .tracking-widest { + --tw-tracking: var(--tracking-widest); + letter-spacing: var(--tracking-widest); + } .text-nowrap { text-wrap: nowrap; } .text-wrap { text-wrap: wrap; } + .break-all { + word-break: break-all; + } .text-amber-400 { color: var(--color-amber-400); } + .text-amber-600 { + color: var(--color-amber-600); + } + .text-amber-700 { + color: var(--color-amber-700); + } .text-black { color: var(--color-black); } @@ -2084,6 +2786,9 @@ .text-cyan-600 { color: var(--color-cyan-600); } + .text-emerald-700 { + color: var(--color-emerald-700); + } .text-gray-200 { color: var(--color-gray-200); } @@ -2108,6 +2813,9 @@ .text-gray-900 { color: var(--color-gray-900); } + .text-green-400 { + color: var(--color-green-400); + } .text-green-500 { color: var(--color-green-500); } @@ -2129,9 +2837,21 @@ .text-indigo-800 { color: var(--color-indigo-800); } + .text-orange-100 { + color: var(--color-orange-100); + } + .text-orange-100\/70 { + color: color-mix(in srgb, oklch(95.4% 0.038 75.164) 70%, transparent); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-orange-100) 70%, transparent); + } + } .text-orange-500 { color: var(--color-orange-500); } + .text-orange-600 { + color: var(--color-orange-600); + } .text-orange-700 { color: var(--color-orange-700); } @@ -2153,6 +2873,9 @@ .text-purple-900 { color: var(--color-purple-900); } + .text-red-500 { + color: var(--color-red-500); + } .text-red-600 { color: var(--color-red-600); } @@ -2162,6 +2885,18 @@ .text-red-800 { color: var(--color-red-800); } + .text-slate-400 { + color: var(--color-slate-400); + } + .text-slate-600 { + color: var(--color-slate-600); + } + .text-slate-700 { + color: var(--color-slate-700); + } + .text-slate-800 { + color: var(--color-slate-800); + } .text-teal-400 { color: var(--color-teal-400); } @@ -2177,9 +2912,18 @@ .text-white { color: var(--color-white); } + .text-white\/90 { + color: color-mix(in srgb, #fff 90%, transparent); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-white) 90%, transparent); + } + } .text-yellow-600 { color: var(--color-yellow-600); } + .text-yellow-700 { + color: var(--color-yellow-700); + } .text-yellow-800 { color: var(--color-yellow-800); } @@ -2216,9 +2960,18 @@ .opacity-25 { opacity: 25%; } + .opacity-30 { + opacity: 30%; + } + .opacity-40 { + opacity: 40%; + } .opacity-50 { opacity: 50%; } + .opacity-60 { + opacity: 60%; + } .opacity-75 { opacity: 75%; } @@ -2239,6 +2992,10 @@ --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .shadow-inner { + --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } .shadow-lg { --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); @@ -2263,6 +3020,16 @@ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .ring-2 { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .ring-orange-200 { + --tw-ring-color: var(--color-orange-200); + } + .ring-white { + --tw-ring-color: var(--color-white); + } .outline { outline-style: var(--tw-outline-style); outline-width: 1px; @@ -2279,6 +3046,16 @@ --tw-blur: blur(var(--blur-3xl)); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } + .drop-shadow { + --tw-drop-shadow-size: drop-shadow(0 1px 2px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.1))) drop-shadow(0 1px 1px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.06))); + --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow( 0 1px 1px rgb(0 0 0 / 0.06)); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .drop-shadow-lg { + --tw-drop-shadow-size: drop-shadow(0 4px 4px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.15))); + --tw-drop-shadow: drop-shadow(var(--drop-shadow-lg)); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } .invert { --tw-invert: invert(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); @@ -2289,11 +3066,21 @@ .filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } + .backdrop-blur-lg { + --tw-backdrop-blur: blur(var(--blur-lg)); + -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + } .backdrop-blur-md { --tw-backdrop-blur: blur(var(--blur-md)); -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); } + .backdrop-blur-sm { + --tw-backdrop-blur: blur(var(--blur-sm)); + -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + } .backdrop-filter { -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); @@ -2313,6 +3100,11 @@ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } + .transition-opacity { + transition-property: opacity; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } .transition-shadow { transition-property: box-shadow; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); @@ -2323,6 +3115,10 @@ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } + .duration-150 { + --tw-duration: 150ms; + transition-duration: 150ms; + } .duration-200 { --tw-duration: 200ms; transition-duration: 200ms; @@ -2331,6 +3127,10 @@ --tw-duration: 300ms; transition-duration: 300ms; } + .ease-in { + --tw-ease: var(--ease-in); + transition-timing-function: var(--ease-in); + } .ease-in-out { --tw-ease: var(--ease-in-out); transition-timing-function: var(--ease-in-out); @@ -2343,6 +3143,10 @@ --tw-outline-style: none; outline-style: none; } + .select-none { + -webkit-user-select: none; + user-select: none; + } .group-hover\:pointer-events-auto { &:is(:where(.group):hover *) { @media (hover: hover) { @@ -2357,6 +3161,16 @@ } } } + .group-hover\:scale-100 { + &:is(:where(.group):hover *) { + @media (hover: hover) { + --tw-scale-x: 100%; + --tw-scale-y: 100%; + --tw-scale-z: 100%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + } + } .group-hover\:scale-110 { &:is(:where(.group):hover *) { @media (hover: hover) { @@ -2388,6 +3202,14 @@ } } } + .hover\:-translate-y-0\.5 { + &:hover { + @media (hover: hover) { + --tw-translate-y: calc(var(--spacing) * -0.5); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + } .hover\:scale-105 { &:hover { @media (hover: hover) { @@ -2398,6 +3220,30 @@ } } } + .hover\:scale-110 { + &:hover { + @media (hover: hover) { + --tw-scale-x: 110%; + --tw-scale-y: 110%; + --tw-scale-z: 110%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + } + } + .hover\:rotate-6 { + &:hover { + @media (hover: hover) { + rotate: 6deg; + } + } + } + .hover\:cursor-pointer { + &:hover { + @media (hover: hover) { + cursor: pointer; + } + } + } .hover\:border-amber-300\/50 { &:hover { @media (hover: hover) { @@ -2429,6 +3275,13 @@ } } } + .hover\:border-orange-200 { + &:hover { + @media (hover: hover) { + border-color: var(--color-orange-200); + } + } + } .hover\:border-orange-300 { &:hover { @media (hover: hover) { @@ -2436,6 +3289,13 @@ } } } + .hover\:border-orange-400 { + &:hover { + @media (hover: hover) { + border-color: var(--color-orange-400); + } + } + } .hover\:bg-amber-50 { &:hover { @media (hover: hover) { @@ -2457,6 +3317,13 @@ } } } + .hover\:bg-blue-600 { + &:hover { + @media (hover: hover) { + background-color: var(--color-blue-600); + } + } + } .hover\:bg-blue-700 { &:hover { @media (hover: hover) { @@ -2478,6 +3345,69 @@ } } } + .hover\:bg-gray-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-50); + } + } + } + .hover\:bg-gray-100 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-100); + } + } + } + .hover\:bg-gray-300 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-300); + } + } + } + .hover\:bg-gray-600 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-600); + } + } + } + .hover\:bg-green-600 { + &:hover { + @media (hover: hover) { + background-color: var(--color-green-600); + } + } + } + .hover\:bg-green-700 { + &:hover { + @media (hover: hover) { + background-color: var(--color-green-700); + } + } + } + .hover\:bg-orange-600 { + &:hover { + @media (hover: hover) { + background-color: var(--color-orange-600); + } + } + } + .hover\:bg-red-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-red-50); + } + } + } + .hover\:bg-red-600 { + &:hover { + @media (hover: hover) { + background-color: var(--color-red-600); + } + } + } .hover\:bg-teal-50 { &:hover { @media (hover: hover) { @@ -2495,6 +3425,34 @@ } } } + .hover\:bg-white\/20 { + &:hover { + @media (hover: hover) { + background-color: color-mix(in srgb, #fff 20%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-white) 20%, transparent); + } + } + } + } + .hover\:bg-white\/30 { + &:hover { + @media (hover: hover) { + background-color: color-mix(in srgb, #fff 30%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-white) 30%, transparent); + } + } + } + } + .hover\:from-orange-600 { + &:hover { + @media (hover: hover) { + --tw-gradient-from: var(--color-orange-600); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + } + } .hover\:from-teal-500 { &:hover { @media (hover: hover) { @@ -2511,6 +3469,22 @@ } } } + .hover\:to-orange-500 { + &:hover { + @media (hover: hover) { + --tw-gradient-to: var(--color-orange-500); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + } + } + .hover\:to-orange-700 { + &:hover { + @media (hover: hover) { + --tw-gradient-to: var(--color-orange-700); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + } + } .hover\:text-amber-300 { &:hover { @media (hover: hover) { @@ -2553,6 +3527,27 @@ } } } + .hover\:text-orange-200 { + &:hover { + @media (hover: hover) { + color: var(--color-orange-200); + } + } + } + .hover\:text-orange-600 { + &:hover { + @media (hover: hover) { + color: var(--color-orange-600); + } + } + } + .hover\:text-orange-800 { + &:hover { + @media (hover: hover) { + color: var(--color-orange-800); + } + } + } .hover\:text-red-400 { &:hover { @media (hover: hover) { @@ -2615,6 +3610,21 @@ border-color: var(--color-cyan-500); } } + .focus\:border-orange-500 { + &:focus { + border-color: var(--color-orange-500); + } + } + .focus\:border-red-500 { + &:focus { + border-color: var(--color-red-500); + } + } + .focus\:border-transparent { + &:focus { + border-color: transparent; + } + } .focus\:ring-2 { &:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); @@ -2647,6 +3657,26 @@ --tw-ring-color: var(--color-cyan-500); } } + .focus\:ring-orange-200 { + &:focus { + --tw-ring-color: var(--color-orange-200); + } + } + .focus\:ring-orange-400 { + &:focus { + --tw-ring-color: var(--color-orange-400); + } + } + .focus\:ring-orange-500 { + &:focus { + --tw-ring-color: var(--color-orange-500); + } + } + .focus\:ring-red-200 { + &:focus { + --tw-ring-color: var(--color-red-200); + } + } .focus\:ring-offset-2 { &:focus { --tw-ring-offset-width: 2px; @@ -2819,6 +3849,11 @@ margin-top: calc(var(--spacing) * 8); } } + .md\:mt-12 { + @media (width >= 48rem) { + margin-top: calc(var(--spacing) * 12); + } + } .md\:mt-20 { @media (width >= 48rem) { margin-top: calc(var(--spacing) * 20); @@ -2906,6 +3941,11 @@ } } } + .md\:rounded-tr-\[200px\] { + @media (width >= 48rem) { + border-top-right-radius: 200px; + } + } .md\:px-0 { @media (width >= 48rem) { padding-inline: calc(var(--spacing) * 0); @@ -2916,6 +3956,11 @@ padding-inline: calc(var(--spacing) * 4); } } + .md\:px-6 { + @media (width >= 48rem) { + padding-inline: calc(var(--spacing) * 6); + } + } .md\:py-12 { @media (width >= 48rem) { padding-block: calc(var(--spacing) * 12); @@ -3009,6 +4054,11 @@ max-width: var(--container-4xl); } } + .lg\:max-w-sm { + @media (width >= 64rem) { + max-width: var(--container-sm); + } + } .lg\:grid-cols-2 { @media (width >= 64rem) { grid-template-columns: repeat(2, minmax(0, 1fr)); @@ -3061,6 +4111,21 @@ inherits: false; initial-value: 0; } +@property --tw-scale-x { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-y { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-z { + syntax: "*"; + inherits: false; + initial-value: 1; +} @property --tw-rotate-x { syntax: "*"; inherits: false; @@ -3151,6 +4216,10 @@ syntax: "*"; inherits: false; } +@property --tw-tracking { + syntax: "*"; + inherits: false; +} @property --tw-shadow { syntax: "*"; inherits: false; @@ -3318,20 +4387,31 @@ syntax: "*"; inherits: false; } -@property --tw-scale-x { - syntax: "*"; - inherits: false; - initial-value: 1; +@keyframes spin { + to { + transform: rotate(360deg); + } } -@property --tw-scale-y { - syntax: "*"; - inherits: false; - initial-value: 1; +@keyframes ping { + 75%, 100% { + transform: scale(2); + opacity: 0; + } } -@property --tw-scale-z { - syntax: "*"; - inherits: false; - initial-value: 1; +@keyframes pulse { + 50% { + opacity: 0.5; + } +} +@keyframes bounce { + 0%, 100% { + transform: translateY(-25%); + animation-timing-function: cubic-bezier(0.8, 0, 1, 1); + } + 50% { + transform: none; + animation-timing-function: cubic-bezier(0, 0, 0.2, 1); + } } @layer properties { @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { @@ -3339,6 +4419,9 @@ --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-scale-z: 1; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; @@ -3359,6 +4442,7 @@ --tw-gradient-to-position: 100%; --tw-leading: initial; --tw-font-weight: initial; + --tw-tracking: initial; --tw-shadow: 0 0 #0000; --tw-shadow-color: initial; --tw-shadow-alpha: 100%; @@ -3398,9 +4482,6 @@ --tw-backdrop-sepia: initial; --tw-duration: initial; --tw-ease: initial; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-scale-z: 1; } } } diff --git a/wwwroot/website/images/bg-faq.svg b/wwwroot/website/images/bg-faq.svg index 786a41a..9154948 100644 --- a/wwwroot/website/images/bg-faq.svg +++ b/wwwroot/website/images/bg-faq.svg @@ -3,8 +3,8 @@ - + - + diff --git a/wwwroot/website/images/bg-header.png b/wwwroot/website/images/bg-header.png new file mode 100644 index 0000000..155c88f Binary files /dev/null and b/wwwroot/website/images/bg-header.png differ diff --git a/wwwroot/website/images/bg-hero.jpg b/wwwroot/website/images/bg-hero.jpg index 9c4af3e..81af8dc 100644 Binary files a/wwwroot/website/images/bg-hero.jpg and b/wwwroot/website/images/bg-hero.jpg differ diff --git a/wwwroot/website/images/bg-tentang-2.png b/wwwroot/website/images/bg-tentang-2.png index ea7a3c6..ccdac8b 100644 Binary files a/wwwroot/website/images/bg-tentang-2.png and b/wwwroot/website/images/bg-tentang-2.png differ diff --git a/wwwroot/website/images/laksanakan.png b/wwwroot/website/images/laksanakan.png new file mode 100644 index 0000000..bf8acd9 Binary files /dev/null and b/wwwroot/website/images/laksanakan.png differ diff --git a/wwwroot/website/images/pengelolaan.png b/wwwroot/website/images/pengelolaan.png new file mode 100644 index 0000000..0d58f8a Binary files /dev/null and b/wwwroot/website/images/pengelolaan.png differ diff --git a/wwwroot/website/images/pengelolaan_bagan.png b/wwwroot/website/images/pengelolaan_bagan.png index 3e1704f..53a95cd 100644 Binary files a/wwwroot/website/images/pengelolaan_bagan.png and b/wwwroot/website/images/pengelolaan_bagan.png differ diff --git a/wwwroot/website/images/peran.png b/wwwroot/website/images/peran.png new file mode 100644 index 0000000..dac9334 Binary files /dev/null and b/wwwroot/website/images/peran.png differ diff --git a/wwwroot/website/images/pesapakawan.mp4 b/wwwroot/website/images/pesapakawan.mp4 new file mode 100644 index 0000000..a700f09 Binary files /dev/null and b/wwwroot/website/images/pesapakawan.mp4 differ