@Title
-
@@ -29,8 +29,8 @@
protected override void BuildCss()
{
- foregroundStatusColor = PureTheme.Indicator.Foreground[Accent];
- backgroundStatusColor = PureTheme.Indicator.Background[Accent];
+ foregroundStatusColor = Css.InnerContainer?.Accent(Accent) ?? "";
+ backgroundStatusColor = Css?.InnerContainer?.OuterContainer?.Accent(Accent) ?? "";
}
}
diff --git a/src/Pure.Blazor.Components/Feedback/PureToastProvider.razor b/src/Pure.Blazor.Components/Feedback/PureToastProvider.razor
index 4fa09ac..656252b 100644
--- a/src/Pure.Blazor.Components/Feedback/PureToastProvider.razor
+++ b/src/Pure.Blazor.Components/Feedback/PureToastProvider.razor
@@ -6,7 +6,7 @@
@foreach (var msg in Service.Messages)
{
-
@msg.Message
+
@msg.Message
}
@@ -22,4 +22,8 @@
StateHasChanged();
}
+ private async Task DismissAsync(Alert alert)
+ {
+ await Service.RemoveImmediately(alert);
+ }
}
diff --git a/src/Pure.Blazor.Components/Forms/InputAutoComplete.cs b/src/Pure.Blazor.Components/Forms/InputAutoComplete.cs
new file mode 100644
index 0000000..d70b4b3
--- /dev/null
+++ b/src/Pure.Blazor.Components/Forms/InputAutoComplete.cs
@@ -0,0 +1,53 @@
+namespace Pure.Blazor.Components.Forms;
+
+///
+/// Input autofill values
+/// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofilling-form-controls:-the-autocomplete-attribute
+///
+[Flags]
+public enum InputAutoComplete
+{
+ None,
+ Off,
+ On,
+ Name,
+ HonorificPrefix,
+ GivenName,
+ AdditionalName,
+ FamilyName,
+ HonorificSuffix,
+ Nickname,
+ Email,
+ Username,
+ NewPassword,
+ CurrentPassword,
+ OrganizationTitle,
+ Organization,
+ StreetAddress,
+ AddressLine1,
+ AddressLine2,
+ AddressLine3,
+ AddressLevel4,
+ AddressLevel3,
+ AddressLevel2,
+ AddressLevel1,
+ Country,
+ CountryName,
+ PostalCode,
+ CCName,
+ CCCSC,
+ CCExp,
+ CCExpMonth,
+ CCExpYear,
+ CCToken,
+ TransactionCurrency,
+ TransactionAmount,
+ Language,
+ Bday,
+ BdayDay,
+ BdayMonth,
+ BdayYear,
+ Sex,
+ URL,
+ Photo
+}
diff --git a/src/Pure.Blazor.Components/Forms/InputAutoFillMap.cs b/src/Pure.Blazor.Components/Forms/InputAutoFillMap.cs
new file mode 100644
index 0000000..892ee3f
--- /dev/null
+++ b/src/Pure.Blazor.Components/Forms/InputAutoFillMap.cs
@@ -0,0 +1,51 @@
+namespace Pure.Blazor.Components.Forms;
+
+public static class InputAutoFillMap
+{
+ public static Dictionary
Map = new ()
+ {
+ { InputAutoComplete.None, "none" },
+ { InputAutoComplete.Off, "off" },
+ { InputAutoComplete.On, "on" },
+ { InputAutoComplete.Name, "name" },
+ { InputAutoComplete.HonorificPrefix, "honorific-prefix" },
+ { InputAutoComplete.GivenName, "given-name" },
+ { InputAutoComplete.AdditionalName, "additional-name" },
+ { InputAutoComplete.FamilyName, "family-name" },
+ { InputAutoComplete.HonorificSuffix, "honorific-suffix" },
+ { InputAutoComplete.Nickname, "nickname" },
+ { InputAutoComplete.Email, "email" },
+ { InputAutoComplete.Username, "username" },
+ { InputAutoComplete.NewPassword, "new-password" },
+ { InputAutoComplete.CurrentPassword, "current-password" },
+ { InputAutoComplete.OrganizationTitle, "organization-title" },
+ { InputAutoComplete.Organization, "organization" },
+ { InputAutoComplete.StreetAddress, "street-address" },
+ { InputAutoComplete.AddressLine1, "address-line1" },
+ { InputAutoComplete.AddressLine2, "address-line2" },
+ { InputAutoComplete.AddressLine3, "address-line3" },
+ { InputAutoComplete.AddressLevel4, "address-level4" },
+ { InputAutoComplete.AddressLevel3, "address-level3" },
+ { InputAutoComplete.AddressLevel2, "address-level2" },
+ { InputAutoComplete.AddressLevel1, "address-level1" },
+ { InputAutoComplete.Country, "country" },
+ { InputAutoComplete.CountryName, "country-name" },
+ { InputAutoComplete.PostalCode, "postal-code" },
+ { InputAutoComplete.CCName, "cc-name" },
+ { InputAutoComplete.CCCSC, "cc-csc" },
+ { InputAutoComplete.CCExp, "cc-exp" },
+ { InputAutoComplete.CCExpMonth, "cc-exp-month" },
+ { InputAutoComplete.CCExpYear, "cc-exp-year" },
+ { InputAutoComplete.CCToken, "cc-token" },
+ { InputAutoComplete.TransactionCurrency, "transaction-currency" },
+ { InputAutoComplete.TransactionAmount, "transaction-amount" },
+ { InputAutoComplete.Language, "language" },
+ { InputAutoComplete.Bday, "bday" },
+ { InputAutoComplete.BdayDay, "bday-day" },
+ { InputAutoComplete.BdayMonth, "bday-month" },
+ { InputAutoComplete.BdayYear, "bday-year" },
+ { InputAutoComplete.Sex, "sex" },
+ { InputAutoComplete.URL, "url" },
+ { InputAutoComplete.Photo, "photo" }
+ };
+}
diff --git a/src/Pure.Blazor.Components/Forms/InputTypeMap.cs b/src/Pure.Blazor.Components/Forms/InputTypeMap.cs
new file mode 100644
index 0000000..7f6818a
--- /dev/null
+++ b/src/Pure.Blazor.Components/Forms/InputTypeMap.cs
@@ -0,0 +1,30 @@
+namespace Pure.Blazor.Components.Forms;
+
+public static class InputTypeMap
+{
+ public static Dictionary Map = new()
+ {
+ { InputType.Text, "text" },
+ { InputType.Button, "button" },
+ { InputType.Checkbox, "checkbox" },
+ { InputType.Color, "color" },
+ { InputType.Date, "date" },
+ { InputType.DateTimeLocal, "datetime-local" },
+ { InputType.Email, "email" },
+ { InputType.File, "file" },
+ { InputType.Hidden, "hidden" },
+ { InputType.Image, "image" },
+ { InputType.Month, "month" },
+ { InputType.Number, "number" },
+ { InputType.Password, "password" },
+ { InputType.Radio, "radio" },
+ { InputType.Range, "range" },
+ { InputType.Reset, "reset" },
+ { InputType.Search, "search" },
+ { InputType.Submit, "submit" },
+ { InputType.Tel, "tel" },
+ { InputType.Time, "time" },
+ { InputType.Url, "url" },
+ { InputType.Week, "week" }
+ };
+}
diff --git a/src/Pure.Blazor.Components/Forms/PureInput.razor.cs b/src/Pure.Blazor.Components/Forms/PureInput.razor.cs
index d3f22a6..05d142d 100644
--- a/src/Pure.Blazor.Components/Forms/PureInput.razor.cs
+++ b/src/Pure.Blazor.Components/Forms/PureInput.razor.cs
@@ -2,142 +2,11 @@
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.AspNetCore.Components.Web;
-using Pure.Blazor.Components.Common;
using Pure.Blazor.Components.Forms.Validators;
+using Pure.Blazor.Components.Primitives;
namespace Pure.Blazor.Components.Forms;
-public static class InputTypeMap
-{
- public static Dictionary Map = new()
- {
- { InputType.Text, "text" },
- { InputType.Button, "button" },
- { InputType.Checkbox, "checkbox" },
- { InputType.Color, "color" },
- { InputType.Date, "date" },
- { InputType.DateTimeLocal, "datetime-local" },
- { InputType.Email, "email" },
- { InputType.File, "file" },
- { InputType.Hidden, "hidden" },
- { InputType.Image, "image" },
- { InputType.Month, "month" },
- { InputType.Number, "number" },
- { InputType.Password, "password" },
- { InputType.Radio, "radio" },
- { InputType.Range, "range" },
- { InputType.Reset, "reset" },
- { InputType.Search, "search" },
- { InputType.Submit, "submit" },
- { InputType.Tel, "tel" },
- { InputType.Time, "time" },
- { InputType.Url, "url" },
- { InputType.Week, "week" }
- };
-}
-
-public static class InputAutoFillMap
-{
- public static Dictionary Map = new Dictionary
- {
- { InputAutoFill.None, "none" },
- { InputAutoFill.Off, "off" },
- { InputAutoFill.On, "on" },
- { InputAutoFill.Name, "name" },
- { InputAutoFill.HonorificPrefix, "honorific-prefix" },
- { InputAutoFill.GivenName, "given-name" },
- { InputAutoFill.AdditionalName, "additional-name" },
- { InputAutoFill.FamilyName, "family-name" },
- { InputAutoFill.HonorificSuffix, "honorific-suffix" },
- { InputAutoFill.Nickname, "nickname" },
- { InputAutoFill.Email, "email" },
- { InputAutoFill.Username, "username" },
- { InputAutoFill.NewPassword, "new-password" },
- { InputAutoFill.CurrentPassword, "current-password" },
- { InputAutoFill.OrganizationTitle, "organization-title" },
- { InputAutoFill.Organization, "organization" },
- { InputAutoFill.StreetAddress, "street-address" },
- { InputAutoFill.AddressLine1, "address-line1" },
- { InputAutoFill.AddressLine2, "address-line2" },
- { InputAutoFill.AddressLine3, "address-line3" },
- { InputAutoFill.AddressLevel4, "address-level4" },
- { InputAutoFill.AddressLevel3, "address-level3" },
- { InputAutoFill.AddressLevel2, "address-level2" },
- { InputAutoFill.AddressLevel1, "address-level1" },
- { InputAutoFill.Country, "country" },
- { InputAutoFill.CountryName, "country-name" },
- { InputAutoFill.PostalCode, "postal-code" },
- { InputAutoFill.CCName, "cc-name" },
- { InputAutoFill.CCCSC, "cc-csc" },
- { InputAutoFill.CCExp, "cc-exp" },
- { InputAutoFill.CCExpMonth, "cc-exp-month" },
- { InputAutoFill.CCExpYear, "cc-exp-year" },
- { InputAutoFill.CCToken, "cc-token" },
- { InputAutoFill.TransactionCurrency, "transaction-currency" },
- { InputAutoFill.TransactionAmount, "transaction-amount" },
- { InputAutoFill.Language, "language" },
- { InputAutoFill.Bday, "bday" },
- { InputAutoFill.BdayDay, "bday-day" },
- { InputAutoFill.BdayMonth, "bday-month" },
- { InputAutoFill.BdayYear, "bday-year" },
- { InputAutoFill.Sex, "sex" },
- { InputAutoFill.URL, "url" },
- { InputAutoFill.Photo, "photo" }
- };
-}
-
-///
-/// Input autofill values
-/// https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofilling-form-controls:-the-autocomplete-attribute
-///
-[Flags]
-public enum InputAutoFill
-{
- None,
- Off,
- On,
- Name,
- HonorificPrefix,
- GivenName,
- AdditionalName,
- FamilyName,
- HonorificSuffix,
- Nickname,
- Email,
- Username,
- NewPassword,
- CurrentPassword,
- OrganizationTitle,
- Organization,
- StreetAddress,
- AddressLine1,
- AddressLine2,
- AddressLine3,
- AddressLevel4,
- AddressLevel3,
- AddressLevel2,
- AddressLevel1,
- Country,
- CountryName,
- PostalCode,
- CCName,
- CCCSC,
- CCExp,
- CCExpMonth,
- CCExpYear,
- CCToken,
- TransactionCurrency,
- TransactionAmount,
- Language,
- Bday,
- BdayDay,
- BdayMonth,
- BdayYear,
- Sex,
- URL,
- Photo
-}
-
public partial class PureInput
{
private InputText? InputRef { get; set; } = null!;
@@ -162,7 +31,7 @@ public partial class PureInput
[CascadingParameter] public PureForm? FormControl { get; set; }
- [Parameter] public InputAutoFill AutoComplete { get; set; }
+ [Parameter] public InputAutoComplete AutoComplete { get; set; }
[Parameter] public InputType InputType { get; set; } = InputType.Text;
///
@@ -336,7 +205,7 @@ private string GetInputType()
private string GetAutoComplete()
{
- return AutoComplete == InputAutoFill.None ? "" : InputAutoFillMap.Map[AutoComplete];
+ return AutoComplete == InputAutoComplete.None ? "" : InputAutoFillMap.Map[AutoComplete];
}
private string GetSuffixCss()
diff --git a/src/Pure.Blazor.Components/Layout/PureContainer.cs b/src/Pure.Blazor.Components/Layout/PureContainer.cs
index 1370b8f..2522bbd 100644
--- a/src/Pure.Blazor.Components/Layout/PureContainer.cs
+++ b/src/Pure.Blazor.Components/Layout/PureContainer.cs
@@ -1,6 +1,5 @@
-using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Rendering;
-using Pure.Blazor.Components.Common;
+using Pure.Blazor.Components.Primitives;
namespace Pure.Blazor.Components.Layout;
diff --git a/src/Pure.Blazor.Components/Navigation/LeftNavStyles.cs b/src/Pure.Blazor.Components/Navigation/LeftNavStyles.cs
index 6b1cf6d..3a59b31 100644
--- a/src/Pure.Blazor.Components/Navigation/LeftNavStyles.cs
+++ b/src/Pure.Blazor.Components/Navigation/LeftNavStyles.cs
@@ -1,8 +1,8 @@
-namespace Pure.Blazor.Components.Layout;
+namespace Pure.Blazor.Components.Navigation;
public class LeftNavStyles
{
- public string Container => "";
+ public string Container => "flex flex-col py-4 w-full gap-0.5";
public string Header => "px-2 py-0.5 inline-block text-slate-700 hover:text-brand-900 antialiased font-medium font-sans leading-6 rounded-md bg-transparent";
public string HeaderActive => "px-2 py-0.5 inline-block text-brand-700 hover:text-brand-900 antialiased font-bold font-sans leading-6 rounded-md bg-transparent";
public string MenuItemContainer => "pl-4";
diff --git a/src/Pure.Blazor.Components/Navigation/PurePaginationItem.razor b/src/Pure.Blazor.Components/Navigation/PurePaginationItem.razor
index daaae50..fd0d8ac 100644
--- a/src/Pure.Blazor.Components/Navigation/PurePaginationItem.razor
+++ b/src/Pure.Blazor.Components/Navigation/PurePaginationItem.razor
@@ -1,3 +1,3 @@
@inherits PureComponent
-@ChildContent
+@ChildContent
diff --git a/src/Pure.Blazor.Components/Navigation/PureVertNav.razor b/src/Pure.Blazor.Components/Navigation/PureVertNav.razor
index 62d87ca..54f0700 100644
--- a/src/Pure.Blazor.Components/Navigation/PureVertNav.razor
+++ b/src/Pure.Blazor.Components/Navigation/PureVertNav.razor
@@ -2,46 +2,47 @@
@inherits PureComponent
@namespace Pure.Blazor.Components
-
+
@RenderTopLevel(("Alerts", "/components/alerts"))
@RenderTopLevel(("Badges", "/components/badges"))
@RenderTopLevel(("Banners", "/components/banners"))
- -
+
-
+ ActiveClass="px-2 py-0.5 inline-block text-brand-700 hover:text-brand-900 antialiased font-bold font-sans leading-6 rounded-md bg-transparent"
+ InactiveClass="px-2 py-0.5 inline-block text-slate-700 hover:text-brand-900 antialiased font-medium font-sans leading-6 rounded-md bg-transparent">
Buttons
-
@RenderTopLevel(("Cards", "/components/cards"))
@RenderTopLevel(("Dialog", "/components/dialog"))
@RenderTopLevel(("Dropdown", "/components/dropdowns"))
@RenderTopLevel(("Inputs", "/components/inputs"))
+ @RenderTopLevel(("Icons", "/components/icons"))
@RenderTopLevel(("Radio Buttons", "/components/radio"))
@RenderTopLevel(("Tabs", "/components/tabs"))
@code {
private RenderFragment RenderListItem => title =>
- @;
+ @- @title
;
private RenderFragment<(string title, string href)> RenderTopLevel => (data)
- => @-
+ => @
-
+ ActiveClass="@ApplyStyle("px-2 py-0.5 inline-block text-brand-700 hover:text-brand-900 antialiased font-bold font-sans leading-6 rounded-md bg-transparent")"
+ InactiveClass="@ApplyStyle("px-2 py-0.5 inline-block text-slate-700 hover:text-brand-900 antialiased font-medium font-sans leading-6 rounded-md bg-transparent")">
@data.title
;
diff --git a/src/Pure.Blazor.Components/Pure.Blazor.Components.csproj b/src/Pure.Blazor.Components/Pure.Blazor.Components.csproj
index b5beda5..73748e5 100644
--- a/src/Pure.Blazor.Components/Pure.Blazor.Components.csproj
+++ b/src/Pure.Blazor.Components/Pure.Blazor.Components.csproj
@@ -6,8 +6,9 @@
enable
preview
True
+ Nullable
PureBlazor Components
- 0.19.0
+ 0.22.0
PureBlazor.Components
Blazor UI components for .NET Blazor with an optional headless mode.
https://pureblazor.com
@@ -46,9 +47,6 @@
-
- PreserveNewest
-
Always
@@ -67,5 +65,15 @@
Always
+
+ true
+ PreserveNewest
+ PreserveNewest
+
+
+
+
+
+
diff --git a/src/Pure.Blazor.Components/WebAssemblyHostBuilderExtensions.cs b/src/Pure.Blazor.Components/WebAssemblyHostBuilderExtensions.cs
index eb3b156..09c1093 100644
--- a/src/Pure.Blazor.Components/WebAssemblyHostBuilderExtensions.cs
+++ b/src/Pure.Blazor.Components/WebAssemblyHostBuilderExtensions.cs
@@ -1,14 +1,18 @@
-using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
+using Microsoft.AspNetCore.Components;
+using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
+using Pure.Blazor.Components.Buttons;
using Pure.Blazor.Components.Common;
using Pure.Blazor.Components.Dialogs;
using Pure.Blazor.Components.Feedback;
+using Pure.Blazor.Components.Primitives;
namespace Pure.Blazor.Components;
public static class WebAssemblyHostBuilderExtensions
{
- public static WebAssemblyHostBuilder AddPureBlazorComponents(this WebAssemblyHostBuilder builder)
+ public static WebAssemblyHostBuilder AddPureBlazorComponents(this WebAssemblyHostBuilder builder,
+ IPureTheme? theme = null)
{
// javascript
builder.Services.AddSingleton();
@@ -16,7 +20,12 @@ public static WebAssemblyHostBuilder AddPureBlazorComponents(this WebAssemblyHos
// services
builder.Services.AddScoped();
builder.Services.AddScoped();
-
+ builder.Services.AddCascadingValue(sp =>
+ {
+ theme ??= new DefaultTheme();
+ var source = new CascadingValueSource(theme, isFixed: true);
+ return source;
+ });
return builder;
}
}
diff --git a/src/Pure.Blazor.Components/_Imports.razor b/src/Pure.Blazor.Components/_Imports.razor
index ed89f98..f758d00 100644
--- a/src/Pure.Blazor.Components/_Imports.razor
+++ b/src/Pure.Blazor.Components/_Imports.razor
@@ -1,5 +1,4 @@
@using static Pure.Blazor.Components.Icons.PureIcons
-@using static Pure.Blazor.Components.Common.Accent
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.Extensions.Logging
@@ -9,3 +8,4 @@
@using Pure.Blazor.Components
@using Pure.Blazor.Components.Buttons
@using Pure.Blazor.Components.Essentials
+@using Pure.Blazor.Components.Primitives
diff --git a/src/Pure.Blazor.Components/wwwroot/app.css b/src/Pure.Blazor.Components/tailwind.css
similarity index 100%
rename from src/Pure.Blazor.Components/wwwroot/app.css
rename to src/Pure.Blazor.Components/tailwind.css
diff --git a/src/Pure.Blazor.Components/wwwroot/pureblazor.css b/src/Pure.Blazor.Components/wwwroot/pureblazor.css
index a99aef4..190a23e 100644
--- a/src/Pure.Blazor.Components/wwwroot/pureblazor.css
+++ b/src/Pure.Blazor.Components/wwwroot/pureblazor.css
@@ -1,4 +1,4 @@
-/*! tailwindcss v4.0.0-alpha.13 | MIT License | https://tailwindcss.com */
+/*! tailwindcss v4.0.0-alpha.14 | MIT License | https://tailwindcss.com */
@layer theme, base, components, utilities;
@layer theme {
:root {
@@ -560,9 +560,6 @@
.pointer-events-none {
pointer-events: none;
}
- .collapse {
- visibility: collapse;
- }
.invisible {
visibility: hidden;
}
@@ -580,6 +577,16 @@
white-space: nowrap;
border-width: 0;
}
+ .not-sr-only {
+ position: static;
+ width: auto;
+ height: auto;
+ padding: 0;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ white-space: normal;
+ }
.absolute {
position: absolute;
}
@@ -595,9 +602,6 @@
.sticky {
position: sticky;
}
- .-inset-2 {
- inset: calc(var(--spacing-2, 0.5rem) * -1);
- }
.-inset-2\.5 {
inset: calc(var(--spacing-2_5, 0.625rem) * -1);
}
@@ -632,6 +636,15 @@
.z-20 {
z-index: 20;
}
+ .col-auto {
+ grid-column: auto;
+ }
+ .col-span-2 {
+ grid-column: span 2 / span 2;
+ }
+ .float-right {
+ float: right;
+ }
.-mx-6 {
margin-left: calc(var(--spacing-6, 1.5rem) * -1);
margin-right: calc(var(--spacing-6, 1.5rem) * -1);
@@ -747,14 +760,14 @@
.h-0 {
height: var(--spacing-0, 0px);
}
- .h-1 {
- height: var(--spacing-1, 0.25rem);
- }
.h-1\.5 {
height: var(--spacing-1_5, 0.375rem);
}
- .h-3 {
- height: var(--spacing-3, 0.75rem);
+ .h-1\/2 {
+ height: calc(1/2 * 100%);
+ }
+ .h-16 {
+ height: var(--spacing-16, 4rem);
}
.h-4 {
height: var(--spacing-4, 1rem);
@@ -768,6 +781,12 @@
.h-7 {
height: var(--spacing-7, 1.75rem);
}
+ .h-8 {
+ height: var(--spacing-8, 2rem);
+ }
+ .h-auto {
+ height: auto;
+ }
.h-fit {
height: fit-content;
}
@@ -777,32 +796,23 @@
.h-screen {
height: 100vh;
}
- .w-1 {
- width: var(--spacing-1, 0.25rem);
- }
.w-1\.5 {
width: var(--spacing-1_5, 0.375rem);
}
.w-1\/2 {
width: calc(1/2 * 100%);
}
- .w-3 {
- width: var(--spacing-3, 0.75rem);
- }
.w-4 {
width: var(--spacing-4, 1rem);
}
.w-5 {
width: var(--spacing-5, 1.25rem);
}
- .w-56 {
- width: var(--spacing-56, 14rem);
- }
.w-6 {
width: var(--spacing-6, 1.5rem);
}
- .w-7 {
- width: var(--spacing-7, 1.75rem);
+ .w-8 {
+ width: var(--spacing-8, 2rem);
}
.w-96 {
width: var(--spacing-96, 24rem);
@@ -822,6 +832,9 @@
.max-w-md {
max-width: var(--width-md, 28rem);
}
+ .min-w-full {
+ min-width: 100%;
+ }
.flex-1 {
flex: 1;
}
@@ -831,8 +844,11 @@
.grow {
flex-grow: 1;
}
- .border-collapse {
- border-collapse: collapse;
+ .grow-0 {
+ flex-grow: 0;
+ }
+ .origin-center {
+ transform-origin: center;
}
.origin-top-right {
transform-origin: top right;
@@ -841,13 +857,38 @@
--tw-translate-x: var(--spacing-0, 0px);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
+ .translate-x-2\/3 {
+ --tw-translate-x: calc(2/3 * 100%);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
.translate-x-full {
--tw-translate-x: 100%;
translate: var(--tw-translate-x) var(--tw-translate-y);
}
+ .translate-y-0 {
+ --tw-translate-y: var(--spacing-0, 0px);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .translate-y-px {
+ --tw-translate-y: 1px;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .rotate-45 {
+ rotate: 45deg;
+ }
+ .skew-x-0 {
+ --tw-skew-x: skewX(0deg);
+ transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
+ }
.transform {
transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
}
+ .animate-ping {
+ animation: var(--animate-ping, ping 1s cubic-bezier(0, 0, 0.2, 1) infinite);
+ }
+ .animate-pulse {
+ animation: var(--animate-pulse, pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite);
+ }
.animate-spin {
animation: var(--animate-spin, spin 1s linear infinite);
}
@@ -860,15 +901,30 @@
.cursor-text {
cursor: text;
}
+ .resize-x {
+ resize: horizontal;
+ }
+ .break-after-auto {
+ break-after: auto;
+ }
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
+ .grid-cols-10 {
+ grid-template-columns: repeat(10, minmax(0, 1fr));
+ }
.flex-col {
flex-direction: column;
}
+ .flex-row {
+ flex-direction: row;
+ }
.flex-wrap {
flex-wrap: wrap;
}
+ .place-content-start {
+ place-content: start;
+ }
.items-center {
align-items: center;
}
@@ -887,6 +943,12 @@
.justify-start {
justify-content: flex-start;
}
+ .justify-items-start {
+ justify-items: start;
+ }
+ .gap-0\.5 {
+ gap: var(--spacing-0_5, 0.125rem);
+ }
.gap-1 {
gap: var(--spacing-1, 0.25rem);
}
@@ -902,43 +964,50 @@
.gap-8 {
gap: var(--spacing-8, 2rem);
}
- .gap-x-1 {
- column-gap: var(--spacing-1, 0.25rem);
- }
.gap-x-1\.5 {
column-gap: var(--spacing-1_5, 0.375rem);
}
.space-y-4 {
- :where(& > :not([hidden]) ~ :not([hidden])) {
- margin-bottom: calc(var(--spacing-4, 1rem) * var(--tw-space-y-reverse));
- margin-top: calc(var(--spacing-4, 1rem) * calc(1 - var(--tw-space-y-reverse)));
+ :where(& > :not(:last-child)) {
+ margin-top: calc(var(--spacing-4, 1rem) * var(--tw-space-y-reverse));
+ margin-bottom: calc(var(--spacing-4, 1rem) * calc(1 - var(--tw-space-y-reverse)));
}
}
.-space-x-px {
- :where(& > :not([hidden]) ~ :not([hidden])) {
- margin-inline-end: calc(calc(var(--spacing-px, 1px) * -1) * var(--tw-space-x-reverse));
- margin-inline-start: calc(calc(var(--spacing-px, 1px) * -1) * calc(1 - var(--tw-space-x-reverse)));
+ :where(& > :not(:last-child)) {
+ margin-inline-start: calc(calc(var(--spacing-px, 1px) * -1) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(calc(var(--spacing-px, 1px) * -1) * calc(1 - var(--tw-space-x-reverse)));
}
}
.space-x-1 {
- :where(& > :not([hidden]) ~ :not([hidden])) {
- margin-inline-end: calc(var(--spacing-1, 0.25rem) * var(--tw-space-x-reverse));
- margin-inline-start: calc(var(--spacing-1, 0.25rem) * calc(1 - var(--tw-space-x-reverse)));
+ :where(& > :not(:last-child)) {
+ margin-inline-start: calc(var(--spacing-1, 0.25rem) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(var(--spacing-1, 0.25rem) * calc(1 - var(--tw-space-x-reverse)));
}
}
.divide-y {
- :where(& > :not([hidden]) ~ :not([hidden])) {
- border-top-style: var(--tw-border-style);
+ :where(& > :not(:last-child)) {
border-bottom-style: var(--tw-border-style);
- border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
- border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
+ border-top-style: var(--tw-border-style);
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
}
}
.divide-gray-200 {
- :where(& > :not([hidden]) ~ :not([hidden])) {
+ :where(& > :not(:last-child)) {
border-color: var(--color-gray-200, #e5e7eb);
}
}
+ .divide-gray-300 {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-gray-300, #d1d5db);
+ }
+ }
+ .divide-green-300 {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-green-300, #86efac);
+ }
+ }
.self-center {
align-self: center;
}
@@ -950,6 +1019,9 @@
text-overflow: ellipsis;
white-space: nowrap;
}
+ .overflow-auto {
+ overflow: auto;
+ }
.overflow-hidden {
overflow: hidden;
}
@@ -959,6 +1031,16 @@
.overflow-y-auto {
overflow-y: auto;
}
+ .text-clip {
+ text-overflow: clip;
+ }
+ .text-ellipsis {
+ text-overflow: ellipsis;
+ }
+ .hyphens-auto {
+ -webkit-hyphens: auto;
+ hyphens: auto;
+ }
.break-normal {
overflow-wrap: normal;
word-break: normal;
@@ -989,10 +1071,6 @@
border-bottom-right-radius: var(--radius-lg, 0.5rem);
border-bottom-left-radius: var(--radius-lg, 0.5rem);
}
- .rounded-b-sm {
- border-bottom-right-radius: var(--radius-sm, 0.125rem);
- border-bottom-left-radius: var(--radius-sm, 0.125rem);
- }
.border {
border-style: var(--tw-border-style);
border-width: 1px;
@@ -1005,10 +1083,22 @@
border-style: var(--tw-border-style);
border-width: 1px;
}
+ .border-t {
+ border-top-style: var(--tw-border-style);
+ border-top-width: 1px;
+ }
.border-t-1 {
border-top-style: var(--tw-border-style);
border-top-width: 1px;
}
+ .border-r {
+ border-right-style: var(--tw-border-style);
+ border-right-width: 1px;
+ }
+ .border-b {
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 1px;
+ }
.border-b-1 {
border-bottom-style: var(--tw-border-style);
border-bottom-width: 1px;
@@ -1017,20 +1107,34 @@
border-bottom-style: var(--tw-border-style);
border-bottom-width: 2px;
}
+ .border-l {
+ border-left-style: var(--tw-border-style);
+ border-left-width: 1px;
+ }
.border-l-8 {
border-left-style: var(--tw-border-style);
border-left-width: 8px;
}
+ .border-dashed {
+ --tw-border-style: dashed;
+ border-style: dashed;
+ }
.border-solid {
--tw-border-style: solid;
border-style: solid;
}
+ .border-blue-950 {
+ border-color: var(--color-blue-950, #172554);
+ }
.border-brand-600 {
border-color: var(--color-brand-600, #0081d0);
}
.border-brand-700 {
border-color: var(--color-brand-700, #0067a8);
}
+ .border-brand-900 {
+ border-color: var(--color-brand-900, #074873);
+ }
.border-brand-950 {
border-color: var(--color-brand-950, #052e4c);
}
@@ -1049,6 +1153,9 @@
.border-gray-700 {
border-color: var(--color-gray-700, #374151);
}
+ .border-gray-950 {
+ border-color: var(--color-gray-950, #030712);
+ }
.border-green-400 {
border-color: var(--color-green-400, #4ade80);
}
@@ -1058,6 +1165,9 @@
.border-neutral-200 {
border-color: var(--color-neutral-200, #e5e5e5);
}
+ .border-red-200 {
+ border-color: var(--color-red-200, #fecaca);
+ }
.border-red-400 {
border-color: var(--color-red-400, #f87171);
}
@@ -1067,9 +1177,15 @@
.border-red-800 {
border-color: var(--color-red-800, #991b1b);
}
+ .border-red-800\/95 {
+ border-color: color-mix(in srgb, var(--color-red-800, #991b1b) 95%, transparent);
+ }
.border-red-950 {
border-color: var(--color-red-950, #450a0a);
}
+ .border-sky-700 {
+ border-color: var(--color-sky-700, #0369a1);
+ }
.border-slate-600 {
border-color: var(--color-slate-600, #475569);
}
@@ -1086,11 +1202,20 @@
border-top-color: var(--color-gray-200, #e5e7eb);
border-bottom-color: var(--color-gray-200, #e5e7eb);
}
+ .border-t-green-400 {
+ border-top-color: var(--color-green-400, #4ade80);
+ }
.border-r-gray-200 {
border-right-color: var(--color-gray-200, #e5e7eb);
}
- .border-b-red-500 {
- border-bottom-color: var(--color-red-500, #ef4444);
+ .border-r-green-400 {
+ border-right-color: var(--color-green-400, #4ade80);
+ }
+ .border-r-yellow-400 {
+ border-right-color: var(--color-yellow-400, #facc15);
+ }
+ .border-b-green-400 {
+ border-bottom-color: var(--color-green-400, #4ade80);
}
.border-b-white {
border-bottom-color: var(--color-white, #fff);
@@ -1098,6 +1223,12 @@
.border-l-brand-500 {
border-left-color: var(--color-brand-500, #04a3f3);
}
+ .border-l-gray-500 {
+ border-left-color: var(--color-gray-500, #6b7280);
+ }
+ .border-l-green-400 {
+ border-left-color: var(--color-green-400, #4ade80);
+ }
.border-l-green-500 {
border-left-color: var(--color-green-500, #22c55e);
}
@@ -1107,8 +1238,8 @@
.border-l-yellow-500 {
border-left-color: var(--color-yellow-500, #eab308);
}
- .bg-brand-200 {
- background-color: var(--color-brand-200, #b7e5ff);
+ .border-l-yellow-900 {
+ border-left-color: var(--color-yellow-900, #713f12);
}
.bg-brand-400 {
background-color: var(--color-brand-400, #2fbbff);
@@ -1122,6 +1253,9 @@
.bg-brand-900 {
background-color: var(--color-brand-900, #074873);
}
+ .bg-gray-100 {
+ background-color: var(--color-gray-100, #f3f4f6);
+ }
.bg-gray-200 {
background-color: var(--color-gray-200, #e5e7eb);
}
@@ -1140,18 +1274,12 @@
.bg-gray-600 {
background-color: var(--color-gray-600, #4b5563);
}
- .bg-gray-700 {
- background-color: var(--color-gray-700, #374151);
- }
.bg-gray-800 {
background-color: var(--color-gray-800, #1f2937);
}
.bg-gray-900 {
background-color: var(--color-gray-900, #111827);
}
- .bg-gray-950 {
- background-color: var(--color-gray-950, #030712);
- }
.bg-green-400 {
background-color: var(--color-green-400, #4ade80);
}
@@ -1161,6 +1289,9 @@
.bg-green-500\/20 {
background-color: color-mix(in srgb, var(--color-green-500, #22c55e) 20%, transparent);
}
+ .bg-red-200 {
+ background-color: var(--color-red-200, #fecaca);
+ }
.bg-red-400 {
background-color: var(--color-red-400, #f87171);
}
@@ -1170,18 +1301,21 @@
.bg-red-500\/20 {
background-color: color-mix(in srgb, var(--color-red-500, #ef4444) 20%, transparent);
}
+ .bg-red-600 {
+ background-color: var(--color-red-600, #dc2626);
+ }
.bg-red-800 {
background-color: var(--color-red-800, #991b1b);
}
.bg-red-800\/95 {
background-color: color-mix(in srgb, var(--color-red-800, #991b1b) 95%, transparent);
}
+ .bg-red-900 {
+ background-color: var(--color-red-900, #7f1d1d);
+ }
.bg-slate-100 {
background-color: var(--color-slate-100, #f1f5f9);
}
- .bg-slate-200 {
- background-color: var(--color-slate-200, #e2e8f0);
- }
.bg-transparent {
background-color: transparent;
}
@@ -1197,6 +1331,9 @@
.bg-yellow-500\/20 {
background-color: color-mix(in srgb, var(--color-yellow-500, #eab308) 20%, transparent);
}
+ .bg-none {
+ background-image: none;
+ }
.p-1 {
padding: var(--spacing-1, 0.25rem);
}
@@ -1212,6 +1349,10 @@
.p-6 {
padding: var(--spacing-6, 1.5rem);
}
+ .py-0\.5 {
+ padding-top: var(--spacing-0_5, 0.125rem);
+ padding-bottom: var(--spacing-0_5, 0.125rem);
+ }
.py-1 {
padding-top: var(--spacing-1, 0.25rem);
padding-bottom: var(--spacing-1, 0.25rem);
@@ -1244,20 +1385,17 @@
padding-top: var(--spacing-6, 1.5rem);
padding-bottom: var(--spacing-6, 1.5rem);
}
- .pt-2 {
- padding-top: var(--spacing-2, 0.5rem);
- }
.pt-4 {
padding-top: var(--spacing-4, 1rem);
}
+ .px-1 {
+ padding-left: var(--spacing-1, 0.25rem);
+ padding-right: var(--spacing-1, 0.25rem);
+ }
.px-2 {
padding-left: var(--spacing-2, 0.5rem);
padding-right: var(--spacing-2, 0.5rem);
}
- .px-2\.5 {
- padding-left: var(--spacing-2_5, 0.625rem);
- padding-right: var(--spacing-2_5, 0.625rem);
- }
.px-3 {
padding-left: var(--spacing-3, 0.75rem);
padding-right: var(--spacing-3, 0.75rem);
@@ -1298,6 +1436,9 @@
.text-left {
text-align: left;
}
+ .indent-4 {
+ text-indent: var(--spacing-4, 1rem);
+ }
.font-mono {
font-family: var(--font-family-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace);
@@ -1352,15 +1493,12 @@
.lowercase {
text-transform: lowercase;
}
+ .normal-case {
+ text-transform: none;
+ }
.uppercase {
text-transform: uppercase;
}
- .italic {
- font-style: italic;
- }
- .leading-10 {
- line-height: var(--line-height-10, 2.5rem);
- }
.leading-5 {
line-height: var(--line-height-5, 1.25rem);
}
@@ -1370,18 +1508,12 @@
.leading-7 {
line-height: var(--line-height-7, 1.75rem);
}
- .leading-8 {
- line-height: var(--line-height-8, 2rem);
- }
.tracking-wide {
letter-spacing: var(--letter-spacing-wide, 0.025em);
}
.text-black {
color: var(--color-black, #000);
}
- .text-blue-400 {
- color: var(--color-blue-400, #60a5fa);
- }
.text-brand-100 {
color: var(--color-brand-100, #dff1ff);
}
@@ -1391,12 +1523,18 @@
.text-brand-800 {
color: var(--color-brand-800, #015486);
}
+ .text-brand-900 {
+ color: var(--color-brand-900, #074873);
+ }
.text-gray-100 {
color: var(--color-gray-100, #f3f4f6);
}
.text-gray-200 {
color: var(--color-gray-200, #e5e7eb);
}
+ .text-gray-300 {
+ color: var(--color-gray-300, #d1d5db);
+ }
.text-gray-400 {
color: var(--color-gray-400, #9ca3af);
}
@@ -1430,12 +1568,18 @@
.text-green-800 {
color: var(--color-green-800, #166534);
}
+ .text-red-200 {
+ color: var(--color-red-200, #fecaca);
+ }
.text-red-700 {
color: var(--color-red-700, #b91c1c);
}
.text-red-800 {
color: var(--color-red-800, #991b1b);
}
+ .text-red-800\/95 {
+ color: color-mix(in srgb, var(--color-red-800, #991b1b) 95%, transparent);
+ }
.text-slate-700 {
color: var(--color-slate-700, #334155);
}
@@ -1448,13 +1592,14 @@
.text-yellow-900 {
color: var(--color-yellow-900, #713f12);
}
- .underline {
- text-decoration-line: underline;
- }
.antialiased {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
+ .antialiased\/subpixel-antialiased {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
.subpixel-antialiased {
-webkit-font-smoothing: auto;
-moz-osx-font-smoothing: auto;
@@ -1462,9 +1607,15 @@
.opacity-0 {
opacity: 0%;
}
+ .opacity-1 {
+ opacity: 1%;
+ }
.opacity-100 {
opacity: 100%;
}
+ .mix-blend-normal {
+ mix-blend-mode: normal;
+ }
.ring-1 {
--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);
@@ -1490,23 +1641,26 @@
0 8px 10px -6px var(--tw-shadow-color);
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
- .ring-black {
- --tw-ring-color: var(--color-black, #000);
- }
- .ring-black\/50 {
- --tw-ring-color: color-mix(in srgb, var(--color-black, #000) 50%, transparent);
+ .ring-black\/20 {
+ --tw-ring-color: color-mix(in srgb, var(--color-black, #000) 20%, transparent);
}
.ring-gray-300 {
--tw-ring-color: var(--color-gray-300, #d1d5db);
}
- .outline {
- outline-style: var(--tw-outline-style);
- outline-width: 1px;
+ .ring-offset-blue-50 {
+ --tw-ring-offset-color: var(--color-blue-50, #eff6ff);
+ }
+ .outline-brand-700 {
+ outline-color: var(--color-brand-700, #0067a8);
}
.blur {
--tw-blur: blur(8px);
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,);
}
+ .brightness-50 {
+ --tw-brightness: brightness(50%);
+ 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,);
+ }
.grayscale {
--tw-grayscale: grayscale(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,);
@@ -1515,15 +1669,48 @@
--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,);
}
- .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-brightness-5 {
+ --tw-backdrop-brightness: brightness(5%);
+ -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-contrast-5 {
+ --tw-backdrop-contrast: contrast(5%);
+ -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-grayscale {
+ --tw-backdrop-grayscale: grayscale(100%);
+ -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-grayscale-5 {
+ --tw-backdrop-grayscale: grayscale(5%);
+ -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-hue-rotate-0 {
+ --tw-backdrop-hue-rotate: hue-rotate(0deg);
+ -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-invert {
--tw-backdrop-invert: invert(100%);
-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 {
+ .backdrop-invert-5 {
+ --tw-backdrop-invert: invert(5%);
+ -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-opacity-5 {
+ --tw-backdrop-opacity: opacity(5%);
+ -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-saturate-5 {
+ --tw-backdrop-saturate: saturate(5%);
-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,);
}
@@ -1537,6 +1724,11 @@
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
+ .transition-colors {
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+ }
.transition-opacity {
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -1554,6 +1746,9 @@
.ease-in-out {
transition-timing-function: var(--transition-timing-function-in-out, cubic-bezier(0.4, 0, 0.2, 1));
}
+ .ease-linear {
+ transition-timing-function: var(--transition-timing-function-linear, linear);
+ }
.ring-inset {
--tw-ring-inset: inset;
}
@@ -1561,6 +1756,10 @@
-webkit-user-select: all;
user-select: all;
}
+ .select-none {
+ -webkit-user-select: none;
+ user-select: none;
+ }
.group-focus-within\/dropdown\:visible {
&:is(:where(.group\/dropdown):focus-within *) {
visibility: visible;
@@ -1608,14 +1807,45 @@
line-height: var(--font-size-sm--line-height, 1.25rem);
}
}
+ .hover\:translate-y-px {
+ &:hover {
+ --tw-translate-y: 1px;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .hover\:animate-ping {
+ &:hover {
+ animation: var(--animate-ping, ping 1s cubic-bezier(0, 0, 0.2, 1) infinite);
+ }
+ }
+ .hover\:animate-pulse {
+ &:hover {
+ animation: var(--animate-pulse, pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite);
+ }
+ }
+ .hover\:border-emerald-950 {
+ &:hover {
+ border-color: var(--color-emerald-950, #022c22);
+ }
+ }
+ .hover\:border-gray-300 {
+ &:hover {
+ border-color: var(--color-gray-300, #d1d5db);
+ }
+ }
.hover\:border-gray-400 {
&:hover {
border-color: var(--color-gray-400, #9ca3af);
}
}
- .hover\:bg-brand-300 {
+ .hover\:border-purple-900 {
+ &:hover {
+ border-color: var(--color-purple-900, #581c87);
+ }
+ }
+ .hover\:bg-blue-300 {
&:hover {
- background-color: var(--color-brand-300, #77d1ff);
+ background-color: var(--color-blue-300, #93c5fd);
}
}
.hover\:bg-brand-700\/10 {
@@ -1638,6 +1868,11 @@
background-color: var(--color-gray-200, #e5e7eb);
}
}
+ .hover\:bg-gray-400 {
+ &:hover {
+ background-color: var(--color-gray-400, #9ca3af);
+ }
+ }
.hover\:bg-gray-50 {
&:hover {
background-color: var(--color-gray-50, #f9fafb);
@@ -1663,6 +1898,11 @@
background-color: var(--color-red-100, #fee2e2);
}
}
+ .hover\:bg-red-300 {
+ &:hover {
+ background-color: var(--color-red-300, #fca5a5);
+ }
+ }
.hover\:bg-red-400\/10 {
&:hover {
background-color: color-mix(in srgb, var(--color-red-400, #f87171) 10%, transparent);
@@ -1688,6 +1928,11 @@
background-color: var(--color-yellow-500, #eab308);
}
}
+ .hover\:text-blue-300 {
+ &:hover {
+ color: var(--color-blue-300, #93c5fd);
+ }
+ }
.hover\:text-brand-800 {
&:hover {
color: var(--color-brand-800, #015486);
@@ -1698,6 +1943,11 @@
color: var(--color-brand-900, #074873);
}
}
+ .hover\:text-gray-400 {
+ &:hover {
+ color: var(--color-gray-400, #9ca3af);
+ }
+ }
.hover\:text-gray-500 {
&:hover {
color: var(--color-gray-500, #6b7280);
@@ -1708,9 +1958,19 @@
color: var(--color-gray-900, #111827);
}
}
- .hover\:text-slate-900 {
+ .hover\:text-green-300 {
+ &:hover {
+ color: var(--color-green-300, #86efac);
+ }
+ }
+ .hover\:text-red-100 {
+ &:hover {
+ color: var(--color-red-100, #fee2e2);
+ }
+ }
+ .hover\:text-red-300 {
&:hover {
- color: var(--color-slate-900, #0f172a);
+ color: var(--color-red-300, #fca5a5);
}
}
.hover\:text-white {
@@ -1718,11 +1978,21 @@
color: var(--color-white, #fff);
}
}
+ .hover\:text-yellow-800 {
+ &:hover {
+ color: var(--color-yellow-800, #854d0e);
+ }
+ }
.hover\:underline {
&:hover {
text-decoration-line: underline;
}
}
+ .hover\:opacity-0 {
+ &:hover {
+ opacity: 0%;
+ }
+ }
.focus\:not-sr-only {
&:focus {
position: static;
@@ -1811,11 +2081,21 @@
width: auto;
}
}
+ .sm\:flex-row {
+ @media (width >= 640px) {
+ flex-direction: row;
+ }
+ }
.sm\:justify-start {
@media (width >= 640px) {
justify-content: flex-start;
}
}
+ .sm\:gap-0 {
+ @media (width >= 640px) {
+ gap: var(--spacing-0, 0px);
+ }
+ }
.sm\:rounded-none {
@media (width >= 640px) {
border-radius: 0;
@@ -1887,9 +2167,9 @@
}
.md\:space-x-2 {
@media (width >= 768px) {
- :where(& > :not([hidden]) ~ :not([hidden])) {
- margin-inline-end: calc(var(--spacing-2, 0.5rem) * var(--tw-space-x-reverse));
- margin-inline-start: calc(var(--spacing-2, 0.5rem) * calc(1 - var(--tw-space-x-reverse)));
+ :where(& > :not(:last-child)) {
+ margin-inline-start: calc(var(--spacing-2, 0.5rem) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(var(--spacing-2, 0.5rem) * calc(1 - var(--tw-space-x-reverse)));
}
}
}
@@ -1916,7 +2196,7 @@
}
.rtl\:space-x-reverse {
&:where([dir="rtl"], [dir="rtl"] *) {
- :where(& > :not([hidden]) ~ :not([hidden])) {
+ :where(& > :not(:last-child)) {
--tw-space-x-reverse: 1;
}
}
@@ -2065,11 +2345,6 @@
inherits: false;
initial-value: 0 0 #0000;
}
-@property --tw-outline-style {
- syntax: "";
- inherits: false;
- initial-value: solid;
-}
@property --tw-blur {
syntax: "*";
inherits: false;
@@ -2142,3 +2417,8 @@
syntax: "*";
inherits: false;
}
+@property --tw-outline-style {
+ syntax: "";
+ inherits: false;
+ initial-value: solid;
+}
diff --git a/src/PureBlazor.Components.sln b/src/PureBlazor.Components.sln
index f485510..2bb7b45 100644
--- a/src/PureBlazor.Components.sln
+++ b/src/PureBlazor.Components.sln
@@ -9,6 +9,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "..\tests\UnitT
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pure.Blazor.Components.AspNetCore", "Pure.Blazor.Components.AspNetCore\Pure.Blazor.Components.AspNetCore.csproj", "{7C1E46DA-B78B-4A34-9BCE-3F46A761057E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pure.Blazor.Components.Icons", "Pure.Blazor.Components.Icons\Pure.Blazor.Components.Icons.csproj", "{C5A7A57E-740D-4A76-8791-A459D578E161}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pure.Blazor.Components.Primitives", "Pure.Blazor.Components.Primitives\Pure.Blazor.Components.Primitives.csproj", "{1BAEB487-2B41-4899-B37C-A3404FB57040}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -27,6 +31,14 @@ Global
{7C1E46DA-B78B-4A34-9BCE-3F46A761057E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C1E46DA-B78B-4A34-9BCE-3F46A761057E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C1E46DA-B78B-4A34-9BCE-3F46A761057E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C5A7A57E-740D-4A76-8791-A459D578E161}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C5A7A57E-740D-4A76-8791-A459D578E161}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C5A7A57E-740D-4A76-8791-A459D578E161}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C5A7A57E-740D-4A76-8791-A459D578E161}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1BAEB487-2B41-4899-B37C-A3404FB57040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1BAEB487-2B41-4899-B37C-A3404FB57040}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1BAEB487-2B41-4899-B37C-A3404FB57040}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1BAEB487-2B41-4899-B37C-A3404FB57040}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE