✨ Enhance page management and dialog functionality
- `PageActionDialogBox.razor`: Add form fields and data grid Added fields for section title, button title, address, description, type, and query. Added button and data grid for sections. - `PageActionDialogBox.razor.cs`: Add `InitializeAsync` method Added using directives, `InitializeAsync` method, `IsEditing` flag, and `PageId` property. - `PagesManagementPage.razor`: Add edit button for pages Added edit button to trigger `EditPageAsync` method for each page. - `PagesManagementPage.razor.cs`: Refactor for constructor injection Refactored to use constructor injection. Added `EditPageAsync` method and updated `RemovePageAsync` method. - `IPageRestApi.cs`: Change return type of `ReadById` method Updated return type from `BasePageSDto` to `BasePageLDto`. Changes made by Amir.H Khademimaster
parent
85a41417ba
commit
477c941b34
|
@ -9,26 +9,95 @@
|
|||
<MudStack>
|
||||
<MudDivider class="-mt-3" />
|
||||
<MudStack Spacing="0">
|
||||
|
||||
<MudText Typo="Typo.h6"><b>اطلاعات کلی</b></MudText>
|
||||
<MudText Typo="Typo.caption">اطلاعات کلی روش ارسال را به دقت وارد کنید</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudGrid>
|
||||
<MudItem sm="12" md="6">
|
||||
<MudTextField T="string" Label="نام" @bind-Value="@ViewModel.PageDto.Title" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
<MudItem sm="12" md="6">
|
||||
<MudTextField T="string" Label="نام انبار" @bind-Value="@ViewModel.PageDto.Slug" Variant="Variant.Outlined"></MudTextField>
|
||||
<MudTextField T="string" Label="آدرس صفحه" @bind-Value="@ViewModel.PageDto.Slug" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem sm="12" md="6">
|
||||
<MudSelect T="bool" @bind-Value="@ViewModel.PageDto.Indexing" Label="ایا ارسال سریع میباشد ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelect T="bool" @bind-Value="@ViewModel.PageDto.Indexing" Label="ایا صفحه ایندکس شور ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="bool" Value="false" />
|
||||
<MudSelectItem T="bool" Value="true" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
|
||||
</MudGrid>
|
||||
|
||||
<MudGrid>
|
||||
<MudItem sm="12" md="6" lg="4">
|
||||
<MudTextField T="string" Label="عنوان سکشن" @bind-Value="@ViewModel.Section.Title" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
<MudItem sm="12" md="6" lg="4">
|
||||
<MudTextField T="string" Label="عنوان دکمه" @bind-Value="@ViewModel.Section.CTAText" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
<MudItem sm="12" md="6" lg="4">
|
||||
<MudTextField T="string" Label="آدرس دکمه" @bind-Value="@ViewModel.Section.CTARoute" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
<MudItem sm="12">
|
||||
<MudTextField T="string" Label="توضیحاتــ" @bind-Value="@ViewModel.Section.Description" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
<MudItem sm="12" md="4">
|
||||
|
||||
<MudSelect Variant="Variant.Outlined" T="BasePageSectionType"
|
||||
ToStringFunc="type => type.ToDisplay()"
|
||||
Label="نوع سکشن"
|
||||
@bind-Value="@ViewModel.Section.Type">
|
||||
@foreach (var state in Enum.GetValues(typeof(BasePageSectionType)).Cast<BasePageSectionType>())
|
||||
{
|
||||
<MudSelectItem T="BasePageSectionType" Value="state"></MudSelectItem>
|
||||
}
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
<MudItem sm="12" md="6">
|
||||
<MudTextField T="string" Label="کوئری" @bind-Value="@ViewModel.Section.Query" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
<MudItem sm="12" md="2">
|
||||
<BaseButtonUi class="w-64 rounded-md mt-3" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Check"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="افزودن" OnClickCallback="@ViewModel.AddSection" />
|
||||
</MudItem>
|
||||
|
||||
<MudItem sm="12">
|
||||
|
||||
<MudDataGrid Items="@ViewModel.PageDto.Sections"
|
||||
T="BasePageSection"
|
||||
Elevation="0"
|
||||
Outlined="true"
|
||||
Bordered="true"
|
||||
Striped="true"
|
||||
Filterable="false"
|
||||
SortMode="@SortMode.None"
|
||||
Groupable="false">
|
||||
<Columns>
|
||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.Title" Title="عنوان" />
|
||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.CTAText" Title="عنوان دکمه" />
|
||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.CTARoute" Title="ادرس دکمه" />
|
||||
<PropertyColumn T="BasePageSection" TProperty="BasePageSectionType" Property="x => x.Type" Title="نوع سکشن" />
|
||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.Query" Title="کوئری" />
|
||||
<TemplateColumn T="BasePageSection" CellClass="d-flex justify-end">
|
||||
<CellTemplate>
|
||||
<MudStack Row>
|
||||
<MudButton DisableElevation="true"
|
||||
Size="@Size.Small"
|
||||
Variant="@Variant.Filled"
|
||||
OnClick="()=>ViewModel.PageDto.Sections.Remove(context.Item)"
|
||||
Color="@Color.Error"
|
||||
StartIcon="@Icons.Material.Outlined.Delete">حذف</MudButton>
|
||||
</MudStack>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
</Columns>
|
||||
</MudDataGrid>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudStack>
|
||||
</MudContainer>
|
||||
</DialogContent>
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
using Netina.Domain.Entities.Warehouses;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using MudBlazor;
|
||||
using Netina.AdminPanel.PWA.Services.RestServices;
|
||||
using Netina.Domain.Entities.Warehouses;
|
||||
|
||||
namespace Netina.AdminPanel.PWA.Dialogs;
|
||||
|
||||
|
@ -39,6 +42,34 @@ public class PageActionDialogBoxViewModel : BaseViewModel<BasePageLDto>
|
|||
IsEditing = true;
|
||||
PageId = page.Id;
|
||||
}
|
||||
public override async Task InitializeAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
IsProcessing = true;
|
||||
var token = await _userUtility.GetBearerTokenAsync();
|
||||
if (token == null)
|
||||
throw new Exception("Token is null");
|
||||
var pages = await _restWrapper.PageRestApi.ReadById(PageId,token);
|
||||
PageDto = pages;
|
||||
}
|
||||
catch (ApiException e)
|
||||
{
|
||||
var exe = await e.GetContentAsAsync<ApiResult>();
|
||||
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_snackbar.Add(ex.Message, Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
IsProcessing = false;
|
||||
}
|
||||
|
||||
await base.InitializeAsync();
|
||||
}
|
||||
|
||||
|
||||
public bool IsEditing = false;
|
||||
public Guid PageId { get; set; }
|
||||
|
|
|
@ -46,6 +46,10 @@
|
|||
<MudStack Row="true">
|
||||
<MudText class="my-auto">@navMenuItem.Title</MudText>
|
||||
<MudSpacer />
|
||||
<MudIconButton Icon="@Icons.Material.Filled.Edit"
|
||||
OnClick="async ()=>{await ViewModel.EditPageAsync(navMenuItem);}"
|
||||
Color="Color.Info"></MudIconButton>
|
||||
|
||||
<MudIconButton Icon="@Icons.Material.Filled.Delete" OnClick="async ()=>{await ViewModel.RemovePageAsync(navMenuItem.Id);}" Color="Color.Error"></MudIconButton>
|
||||
</MudStack>
|
||||
</TitleContent>
|
||||
|
|
|
@ -2,27 +2,16 @@
|
|||
|
||||
namespace Netina.AdminPanel.PWA.Pages;
|
||||
|
||||
public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<BasePageSDto>>
|
||||
public class PagesManagementPageViewModel(
|
||||
NavigationManager navigationManager,
|
||||
ISnackbar snackbar,
|
||||
IUserUtility userUtility,
|
||||
IRestWrapper restWrapper,
|
||||
IDialogService dialogService)
|
||||
: BaseViewModel<ObservableCollection<BasePageSDto>>(userUtility)
|
||||
{
|
||||
private readonly NavigationManager _navigationManager;
|
||||
private readonly ISnackbar _snackbar;
|
||||
private readonly IUserUtility _userUtility;
|
||||
private readonly IDialogService _dialogService;
|
||||
private readonly IRestWrapper _restWrapper;
|
||||
|
||||
public PagesManagementPageViewModel(
|
||||
NavigationManager navigationManager,
|
||||
ISnackbar snackbar,
|
||||
IUserUtility userUtility,
|
||||
IRestWrapper restWrapper,
|
||||
IDialogService dialogService) : base(userUtility)
|
||||
{
|
||||
_navigationManager = navigationManager;
|
||||
_snackbar = snackbar;
|
||||
_userUtility = userUtility;
|
||||
_restWrapper = restWrapper;
|
||||
_dialogService = dialogService;
|
||||
}
|
||||
private readonly IUserUtility _userUtility = userUtility;
|
||||
private readonly IDialogService _dialogService = dialogService;
|
||||
|
||||
public override async Task InitializeAsync()
|
||||
{
|
||||
|
@ -32,7 +21,7 @@ public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<B
|
|||
var token = await _userUtility.GetBearerTokenAsync();
|
||||
if (token == null)
|
||||
throw new Exception("Token is null");
|
||||
var pages = await _restWrapper.PageRestApi.ReadAll(token);
|
||||
var pages = await restWrapper.PageRestApi.ReadAll(token);
|
||||
PageDto.Clear();
|
||||
pages.ForEach(p=>PageDto.Add(p));
|
||||
}
|
||||
|
@ -42,13 +31,13 @@ public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<B
|
|||
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
await _userUtility.LogoutAsync();
|
||||
_navigationManager.NavigateTo("login", true, true);
|
||||
navigationManager.NavigateTo("login", true, true);
|
||||
}
|
||||
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||
snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_snackbar.Add(ex.Message, Severity.Error);
|
||||
snackbar.Add(ex.Message, Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
@ -74,9 +63,9 @@ public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<B
|
|||
if (NewPageDto.Slug.IsNullOrEmpty())
|
||||
throw new AppException("اسلاگ صفحه را وارد کنید");
|
||||
|
||||
await _restWrapper.PageRestApi.CreatePage(NewPageDto.DeepClone(), token);
|
||||
await restWrapper.PageRestApi.CreatePage(NewPageDto.DeepClone(), token);
|
||||
NewPageDto = new PageActionRequestDto();
|
||||
_snackbar.Add("برگه مورد نظر با موفقیت افزوده شد", Severity.Success);
|
||||
snackbar.Add("برگه مورد نظر با موفقیت افزوده شد", Severity.Success);
|
||||
await InitializeAsync();
|
||||
|
||||
}
|
||||
|
@ -86,13 +75,13 @@ public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<B
|
|||
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
await _userUtility.LogoutAsync();
|
||||
_navigationManager.NavigateTo("login", true, true);
|
||||
navigationManager.NavigateTo("login", true, true);
|
||||
}
|
||||
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||
snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_snackbar.Add(ex.Message, Severity.Error);
|
||||
snackbar.Add(ex.Message, Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
@ -100,6 +89,19 @@ public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<B
|
|||
}
|
||||
}
|
||||
|
||||
public async Task EditPageAsync(BasePageSDto page)
|
||||
{
|
||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true };
|
||||
var parameters = new DialogParameters<PageActionDialogBox>();
|
||||
parameters.Add(x => x.Page, page);
|
||||
var dialogResult = await dialogService.ShowAsync<PageActionDialogBox>($"ویرایش صفحه {page.Title}", parameters, maxWidth);
|
||||
var result = await dialogResult.Result;
|
||||
if (!result.Canceled && result.Data is bool and true)
|
||||
{
|
||||
await InitializeAsync();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task RemovePageAsync(Guid pageId)
|
||||
{
|
||||
try
|
||||
|
@ -109,8 +111,8 @@ public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<B
|
|||
if (token == null)
|
||||
throw new Exception("Token is null");
|
||||
|
||||
await _restWrapper.PageRestApi.DeletePage(pageId, token);
|
||||
_snackbar.Add("برگه مورد نظر با موفقیت حذف شد", Severity.Success);
|
||||
await restWrapper.PageRestApi.DeletePage(pageId, token);
|
||||
snackbar.Add("برگه مورد نظر با موفقیت حذف شد", Severity.Success);
|
||||
await InitializeAsync();
|
||||
|
||||
|
||||
|
@ -121,13 +123,13 @@ public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<B
|
|||
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
await _userUtility.LogoutAsync();
|
||||
_navigationManager.NavigateTo("login", true, true);
|
||||
navigationManager.NavigateTo("login", true, true);
|
||||
}
|
||||
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||
snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_snackbar.Add(ex.Message, Severity.Error);
|
||||
snackbar.Add(ex.Message, Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
|
@ -10,7 +10,7 @@ public interface IPageRestApi
|
|||
Task<BasePageSDto> ReadByType([Query] string type, [Header("Authorization")] string authorization);
|
||||
|
||||
[Get("/{id}")]
|
||||
Task<BasePageSDto> ReadById(Guid id, [Header("Authorization")] string authorization);
|
||||
Task<BasePageLDto> ReadById(Guid id, [Header("Authorization")] string authorization);
|
||||
|
||||
[Post("")]
|
||||
Task CreatePage([Body] PageActionRequestDto request, [Header("Authorization")] string authorization);
|
||||
|
|
|
@ -105,7 +105,7 @@
|
|||
--tw-contain-paint: ;
|
||||
--tw-contain-style: ;
|
||||
}/*
|
||||
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
|
||||
! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com
|
||||
*//*
|
||||
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
||||
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
|
||||
|
@ -496,7 +496,7 @@ video {
|
|||
}
|
||||
|
||||
/* Make elements with the HTML hidden attribute stay hidden by default */
|
||||
[hidden]:where(:not([hidden="until-found"])) {
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -1546,47 +1546,47 @@ input:checked + .toggle-bg {
|
|||
}
|
||||
.border-blue-400 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(118 169 250 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(118 169 250 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-blue-500 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(63 131 248 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(63 131 248 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-blue-600 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(28 100 242 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(28 100 242 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-blue-700 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(26 86 219 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(26 86 219 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-gray-100 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(243 244 246 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-gray-200 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(229 231 235 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-gray-300 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(209 213 219 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-indigo-500 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(104 117 245 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(104 117 245 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-violet-400 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(167 139 250 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(167 139 250 / var(--tw-border-opacity));
|
||||
}
|
||||
.bg-\[\#000000\] {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(0 0 0 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-\[\#EEEEEE\] {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(238 238 238 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(238 238 238 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-\[--mud-palette-background-grey\] {
|
||||
background-color: var(--mud-palette-background-grey);
|
||||
|
@ -1596,41 +1596,41 @@ input:checked + .toggle-bg {
|
|||
}
|
||||
.bg-amber-500 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(245 158 11 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-blue-500 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(63 131 248 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(63 131 248 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-blue-700 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(26 86 219 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(26 86 219 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-gray-100 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-gray-200 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(229 231 235 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-gray-800 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(31 41 55 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-gray-900\/50 {
|
||||
background-color: rgb(17 24 39 / 0.5);
|
||||
}
|
||||
.bg-pink-500 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(231 70 148 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(231 70 148 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-transparent {
|
||||
background-color: transparent;
|
||||
}
|
||||
.bg-white {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-white\/50 {
|
||||
background-color: rgb(255 255 255 / 0.5);
|
||||
|
@ -1774,51 +1774,51 @@ input:checked + .toggle-bg {
|
|||
}
|
||||
.\!text-black {
|
||||
--tw-text-opacity: 1 !important;
|
||||
color: rgb(0 0 0 / var(--tw-text-opacity, 1)) !important;
|
||||
color: rgb(0 0 0 / var(--tw-text-opacity)) !important;
|
||||
}
|
||||
.text-amber-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(217 119 6 / var(--tw-text-opacity, 1));
|
||||
color: rgb(217 119 6 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-blue-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(28 100 242 / var(--tw-text-opacity, 1));
|
||||
color: rgb(28 100 242 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-gray-500 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(107 114 128 / var(--tw-text-opacity, 1));
|
||||
color: rgb(107 114 128 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-gray-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(75 85 99 / var(--tw-text-opacity, 1));
|
||||
color: rgb(75 85 99 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-gray-800 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(31 41 55 / var(--tw-text-opacity, 1));
|
||||
color: rgb(31 41 55 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-gray-900 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(17 24 39 / var(--tw-text-opacity, 1));
|
||||
color: rgb(17 24 39 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-lime-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(101 163 13 / var(--tw-text-opacity, 1));
|
||||
color: rgb(101 163 13 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-purple-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(126 58 242 / var(--tw-text-opacity, 1));
|
||||
color: rgb(126 58 242 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-rose-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(225 29 72 / var(--tw-text-opacity, 1));
|
||||
color: rgb(225 29 72 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-violet-500 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(139 92 246 / var(--tw-text-opacity, 1));
|
||||
color: rgb(139 92 246 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-white {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||
}
|
||||
.opacity-0 {
|
||||
opacity: 0;
|
||||
|
@ -2087,42 +2087,42 @@ code {
|
|||
|
||||
.hover\:border-gray-300:hover {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(209 213 219 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.hover\:bg-blue-800:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(30 66 159 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(30 66 159 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.hover\:bg-gray-100:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.hover\:bg-white:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.hover\:text-blue-600:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(28 100 242 / var(--tw-text-opacity, 1));
|
||||
color: rgb(28 100 242 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.hover\:text-gray-600:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(75 85 99 / var(--tw-text-opacity, 1));
|
||||
color: rgb(75 85 99 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.hover\:text-gray-900:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(17 24 39 / var(--tw-text-opacity, 1));
|
||||
color: rgb(17 24 39 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.focus\:border-teal-500:focus {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(6 148 162 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(6 148 162 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.focus\:outline-none:focus {
|
||||
|
@ -2144,32 +2144,32 @@ code {
|
|||
|
||||
.focus\:ring-blue-300:focus {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity, 1));
|
||||
--tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity));
|
||||
}
|
||||
|
||||
.focus\:ring-gray-200:focus {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1));
|
||||
--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity));
|
||||
}
|
||||
|
||||
.focus\:ring-teal-500:focus {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(6 148 162 / var(--tw-ring-opacity, 1));
|
||||
--tw-ring-color: rgb(6 148 162 / var(--tw-ring-opacity));
|
||||
}
|
||||
|
||||
.dark\:border-blue-500:is(.dark *) {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(63 131 248 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(63 131 248 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.dark\:border-gray-600:is(.dark *) {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(75 85 99 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.dark\:border-gray-700:is(.dark *) {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
|
||||
border-color: rgb(55 65 81 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.dark\:border-transparent:is(.dark *) {
|
||||
|
@ -2178,22 +2178,22 @@ code {
|
|||
|
||||
.dark\:bg-blue-600:is(.dark *) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(28 100 242 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(28 100 242 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:bg-gray-600:is(.dark *) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(75 85 99 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:bg-gray-700:is(.dark *) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(55 65 81 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:bg-gray-800:is(.dark *) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(31 41 55 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:bg-gray-800\/50:is(.dark *) {
|
||||
|
@ -2206,47 +2206,47 @@ code {
|
|||
|
||||
.dark\:text-blue-500:is(.dark *) {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(63 131 248 / var(--tw-text-opacity, 1));
|
||||
color: rgb(63 131 248 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.dark\:text-gray-400:is(.dark *) {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(156 163 175 / var(--tw-text-opacity, 1));
|
||||
color: rgb(156 163 175 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.dark\:text-white:is(.dark *) {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.dark\:hover\:bg-blue-700:hover:is(.dark *) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(26 86 219 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(26 86 219 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:hover\:bg-gray-600:hover:is(.dark *) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(75 85 99 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:hover\:bg-gray-800:hover:is(.dark *) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
|
||||
background-color: rgb(31 41 55 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:hover\:text-blue-500:hover:is(.dark *) {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(63 131 248 / var(--tw-text-opacity, 1));
|
||||
color: rgb(63 131 248 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.dark\:hover\:text-gray-300:hover:is(.dark *) {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(209 213 219 / var(--tw-text-opacity, 1));
|
||||
color: rgb(209 213 219 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.dark\:hover\:text-white:hover:is(.dark *) {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
|
|
Loading…
Reference in New Issue