Adding spinner

This commit is contained in:
Ronan Berder
2025-11-03 13:51:40 +08:00
parent 0c16664e4b
commit e5aed697c8
11 changed files with 365 additions and 348 deletions
+60 -263
View File
@@ -7,6 +7,7 @@
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
"Courier New", monospace;
--color-red-500: oklch(63.7% 0.237 25.331);
--color-amber-50: oklch(98.7% 0.022 95.277);
--color-amber-100: oklch(96.2% 0.059 95.617);
--color-amber-900: oklch(41.4% 0.112 45.904);
@@ -25,6 +26,7 @@
--color-blue-800: oklch(42.4% 0.199 265.638);
--color-blue-900: oklch(37.9% 0.146 265.522);
--color-blue-950: oklch(28.2% 0.091 267.935);
--color-purple-500: oklch(62.7% 0.265 303.9);
--color-neutral-300: oklch(87% 0 0);
--color-neutral-800: oklch(26.9% 0 0);
--color-black: #000;
@@ -257,9 +259,6 @@
.invisible {
visibility: hidden;
}
.visible {
visibility: visible;
}
.sr-only {
position: absolute;
width: 1px;
@@ -301,15 +300,9 @@
.top-22 {
top: calc(var(--spacing) * 22);
}
.right-1 {
right: calc(var(--spacing) * 1);
}
.right-1\.5 {
right: calc(var(--spacing) * 1.5);
}
.right-2 {
right: calc(var(--spacing) * 2);
}
.right-2\.5 {
right: calc(var(--spacing) * 2.5);
}
@@ -319,12 +312,6 @@
.bottom-0 {
bottom: calc(var(--spacing) * 0);
}
.bottom-2 {
bottom: calc(var(--spacing) * 2);
}
.bottom-3 {
bottom: calc(var(--spacing) * 3);
}
.left-1\.5 {
left: calc(var(--spacing) * 1.5);
}
@@ -439,6 +426,9 @@
.hidden {
display: none;
}
.inline {
display: inline;
}
.inline-block {
display: inline-block;
}
@@ -498,6 +488,12 @@
width: calc(var(--spacing) * 12);
height: calc(var(--spacing) * 12);
}
.h-1\.5 {
height: calc(var(--spacing) * 1.5);
}
.h-2 {
height: calc(var(--spacing) * 2);
}
.h-4 {
height: calc(var(--spacing) * 4);
}
@@ -516,8 +512,8 @@
.h-14 {
height: calc(var(--spacing) * 14);
}
.h-auto {
height: auto;
.h-full {
height: 100%;
}
.max-h-64 {
max-height: calc(var(--spacing) * 64);
@@ -534,33 +530,12 @@
.max-h-\[650px\] {
max-height: 650px;
}
.min-h-21 {
min-height: calc(var(--spacing) * 21);
}
.min-h-22 {
min-height: calc(var(--spacing) * 22);
}
.min-h-24 {
min-height: calc(var(--spacing) * 24);
}
.min-h-25 {
min-height: calc(var(--spacing) * 25);
}
.min-h-26 {
min-height: calc(var(--spacing) * 26);
}
.min-h-27 {
min-height: calc(var(--spacing) * 27);
}
.min-h-28 {
min-height: calc(var(--spacing) * 28);
}
.min-h-30 {
min-height: calc(var(--spacing) * 30);
}
.min-h-32 {
min-height: calc(var(--spacing) * 32);
}
.min-h-77 {
min-height: calc(var(--spacing) * 77);
}
@@ -582,6 +557,15 @@
.w-4 {
width: calc(var(--spacing) * 4);
}
.w-7 {
width: calc(var(--spacing) * 7);
}
.w-7\.5 {
width: calc(var(--spacing) * 7.5);
}
.w-8 {
width: calc(var(--spacing) * 8);
}
.w-10 {
width: calc(var(--spacing) * 10);
}
@@ -618,12 +602,6 @@
.w-max {
width: max-content;
}
.max-w-23 {
max-width: calc(var(--spacing) * 23);
}
.max-w-24 {
max-width: calc(var(--spacing) * 24);
}
.max-w-72 {
max-width: calc(var(--spacing) * 72);
}
@@ -657,6 +635,9 @@
.max-w-xl {
max-width: var(--container-xl);
}
.max-w-xs {
max-width: var(--container-xs);
}
.min-w-0 {
min-width: calc(var(--spacing) * 0);
}
@@ -855,14 +836,14 @@
.self-start {
align-self: flex-start;
}
.self-stretch {
align-self: stretch;
}
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.overflow-hidden {
overflow: hidden;
}
.overflow-x-auto {
overflow-x: auto;
}
@@ -875,9 +856,6 @@
.rounded-\[2px\] {
border-radius: 2px;
}
.rounded-\[calc\(var\(--radius\)-5px\)\] {
border-radius: calc(var(--radius) - 5px);
}
.rounded-full {
border-radius: calc(infinity * 1px);
}
@@ -948,18 +926,9 @@
border-color: color-mix(in oklab, var(--color-border) 50%, transparent);
}
}
.border-input {
border-color: var(--color-input);
}
.border-muted {
border-color: var(--color-muted);
}
.border-muted-foreground\/20 {
border-color: var(--color-muted-foreground);
@supports (color: color-mix(in lab, red, red)) {
border-color: color-mix(in oklab, var(--color-muted-foreground) 20%, transparent);
}
}
.border-transparent {
border-color: transparent;
}
@@ -999,6 +968,15 @@
.bg-primary {
background-color: var(--color-primary);
}
.bg-primary\/20 {
background-color: var(--color-primary);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
}
}
.bg-secondary {
background-color: var(--color-secondary);
}
.bg-sidebar-primary {
background-color: var(--color-sidebar-primary);
}
@@ -1026,6 +1004,9 @@
.p-4 {
padding: calc(var(--spacing) * 4);
}
.p-5 {
padding: calc(var(--spacing) * 5);
}
.p-6 {
padding: calc(var(--spacing) * 6);
}
@@ -1068,9 +1049,6 @@
.py-4 {
padding-block: calc(var(--spacing) * 4);
}
.py-15 {
padding-block: calc(var(--spacing) * 15);
}
.py-\[0\.2rem\] {
padding-block: 0.2rem;
}
@@ -1080,18 +1058,6 @@
.pt-2 {
padding-top: calc(var(--spacing) * 2);
}
.pt-3 {
padding-top: calc(var(--spacing) * 3);
}
.pt-10 {
padding-top: calc(var(--spacing) * 10);
}
.pt-12 {
padding-top: calc(var(--spacing) * 12);
}
.pt-14 {
padding-top: calc(var(--spacing) * 14);
}
.pt-15 {
padding-top: calc(var(--spacing) * 15);
}
@@ -1113,48 +1079,24 @@
.pr-20 {
padding-right: calc(var(--spacing) * 20);
}
.pr-22 {
padding-right: calc(var(--spacing) * 22);
}
.pr-24 {
padding-right: calc(var(--spacing) * 24);
}
.pr-26 {
padding-right: calc(var(--spacing) * 26);
}
.pr-28 {
padding-right: calc(var(--spacing) * 28);
}
.pr-30 {
padding-right: calc(var(--spacing) * 30);
}
.pr-32 {
padding-right: calc(var(--spacing) * 32);
}
.pr-129 {
padding-right: calc(var(--spacing) * 129);
}
.pb-3 {
padding-bottom: calc(var(--spacing) * 3);
}
.pb-4 {
padding-bottom: calc(var(--spacing) * 4);
}
.pb-10 {
padding-bottom: calc(var(--spacing) * 10);
}
.pb-10\.5 {
padding-bottom: calc(var(--spacing) * 10.5);
}
.pb-11 {
padding-bottom: calc(var(--spacing) * 11);
}
.pb-12 {
padding-bottom: calc(var(--spacing) * 12);
}
.pb-14 {
padding-bottom: calc(var(--spacing) * 14);
}
.pb-17 {
padding-bottom: calc(var(--spacing) * 17);
}
@@ -1173,27 +1115,9 @@
.pl-9 {
padding-left: calc(var(--spacing) * 9);
}
.pl-10 {
padding-left: calc(var(--spacing) * 10);
}
.pl-12 {
padding-left: calc(var(--spacing) * 12);
}
.pl-14 {
padding-left: calc(var(--spacing) * 14);
}
.pl-15 {
padding-left: calc(var(--spacing) * 15);
}
.pl-16 {
padding-left: calc(var(--spacing) * 16);
}
.pl-19 {
padding-left: calc(var(--spacing) * 19);
}
.pl-20 {
padding-left: calc(var(--spacing) * 20);
}
.pl-21 {
padding-left: calc(var(--spacing) * 21);
}
@@ -1295,6 +1219,9 @@
.text-amber-900 {
color: var(--color-amber-900);
}
.text-blue-500 {
color: var(--color-blue-500);
}
.text-destructive {
color: var(--color-destructive);
}
@@ -1313,9 +1240,18 @@
.text-primary-foreground {
color: var(--color-primary-foreground);
}
.text-purple-500 {
color: var(--color-purple-500);
}
.text-red-500 {
color: var(--color-red-500);
}
.text-sidebar-primary-foreground {
color: var(--color-sidebar-primary-foreground);
}
.text-yellow-500 {
color: var(--color-yellow-500);
}
.uppercase {
text-transform: uppercase;
}
@@ -1357,10 +1293,6 @@
--tw-shadow: 0 1px 2px 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);
}
.ring {
--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-offset-background {
--tw-ring-offset-color: var(--color-background);
}
@@ -1436,19 +1368,14 @@
visibility: visible;
}
}
.group-data-\[disabled\=true\]\:pointer-events-none {
&:is(:where(.group)[data-disabled="true"] *) {
pointer-events: none;
.group-data-\[copied\=true\]\:block {
&:is(:where(.group)[data-copied="true"] *) {
display: block;
}
}
.group-data-\[disabled\=true\]\:opacity-50 {
&:is(:where(.group)[data-disabled="true"] *) {
opacity: 50%;
}
}
.group-data-\[disabled\=true\]\/field\:opacity-50 {
&:is(:where(.group\/field)[data-disabled="true"] *) {
opacity: 50%;
.group-data-\[copied\=true\]\:hidden {
&:is(:where(.group)[data-copied="true"] *) {
display: none;
}
}
.group-\[\.copied\]\:block {
@@ -1466,16 +1393,6 @@
border-color: var(--color-primary);
}
}
.peer-disabled\:cursor-not-allowed {
&:is(:where(.peer):disabled ~ *) {
cursor: not-allowed;
}
}
.peer-disabled\:opacity-50 {
&:is(:where(.peer):disabled ~ *) {
opacity: 50%;
}
}
.last\:border-b-0 {
&:last-child {
border-bottom-style: var(--tw-border-style);
@@ -1534,13 +1451,6 @@
}
}
}
.hover\:bg-accent {
&:hover {
@media (hover: hover) {
background-color: var(--color-accent);
}
}
}
.hover\:bg-accent\/50 {
&:hover {
@media (hover: hover) {
@@ -1656,46 +1566,16 @@
pointer-events: none;
}
}
.disabled\:border {
&:disabled {
border-style: var(--tw-border-style);
border-width: 1px;
}
}
.disabled\:opacity-50 {
&:disabled {
opacity: 50%;
}
}
.has-data-\[state\=checked\]\:border-primary {
&:has(*[data-state="checked"]) {
border-color: var(--color-primary);
}
}
.has-data-\[state\=checked\]\:bg-primary\/5 {
&:has(*[data-state="checked"]) {
background-color: var(--color-primary);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-primary) 5%, transparent);
}
}
}
.has-\[\:checkd\]\:border {
&:has(*:is(:checkd)) {
border-style: var(--tw-border-style);
border-width: 1px;
}
}
.has-\[\:checked\]\:border-primary {
&:has(*:is(:checked)) {
border-color: var(--color-primary);
}
}
.has-\[\:checked\]\:bg-muted {
&:has(*:is(:checked)) {
background-color: var(--color-muted);
}
}
.has-\[\:checked\]\:bg-primary\/5 {
&:has(*:is(:checked)) {
background-color: var(--color-primary);
@@ -1704,12 +1584,6 @@
}
}
}
.has-\[input\:checkd\]\:border {
&:has(*:is(input:checkd)) {
border-style: var(--tw-border-style);
border-width: 1px;
}
}
.has-\[input\[type\=\'checkbox\'\]\:checked\]\:border-blue-600 {
&:has(*:is(input[type='checkbox']:checked)) {
border-color: var(--color-blue-600);
@@ -1730,32 +1604,6 @@
background-color: var(--color-green-50);
}
}
.has-\[\>\[data-slot\=field\]\]\:w-full {
&:has(>[data-slot=field]) {
width: 100%;
}
}
.has-\[\>\[data-slot\=field\]\]\:flex-col {
&:has(>[data-slot=field]) {
flex-direction: column;
}
}
.has-\[\>\[data-slot\=field\]\]\:rounded-md {
&:has(>[data-slot=field]) {
border-radius: var(--radius-md);
}
}
.has-\[\>\[data-slot\=field\]\]\:border {
&:has(>[data-slot=field]) {
border-style: var(--tw-border-style);
border-width: 1px;
}
}
.has-\[\>svg\]\:px-2 {
&:has(>svg) {
padding-inline: calc(var(--spacing) * 2);
}
}
.has-\[\>svg\]\:px-2\.5 {
&:has(>svg) {
padding-inline: calc(var(--spacing) * 2.5);
@@ -1779,21 +1627,11 @@
background-color: transparent;
}
}
.aria-pressed\:text-blue-500 {
&[aria-pressed="true"] {
color: var(--color-blue-500);
}
}
.aria-pressed\:text-blue-600 {
&[aria-pressed="true"] {
color: var(--color-blue-600);
}
}
.aria-pressed\:text-yellow-500 {
&[aria-pressed="true"] {
color: var(--color-yellow-500);
}
}
.aria-pressed\:hover\:bg-accent {
&[aria-pressed="true"] {
&:hover {
@@ -1985,18 +1823,6 @@
}
}
}
.dark\:hover\:bg-accent\/50 {
&:is(.dark *) {
&:hover {
@media (hover: hover) {
background-color: var(--color-accent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-accent) 50%, transparent);
}
}
}
}
}
.dark\:hover\:bg-destructive\/20 {
&:is(.dark *) {
&:hover {
@@ -2019,16 +1845,6 @@
}
}
}
.dark\:has-data-\[state\=checked\]\:bg-primary\/10 {
&:is(.dark *) {
&:has(*[data-state="checked"]) {
background-color: var(--color-primary);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-primary) 10%, transparent);
}
}
}
}
.dark\:has-\[\:checked\]\:bg-primary\/10 {
&:is(.dark *) {
&:has(*:is(:checked)) {
@@ -2330,19 +2146,6 @@
}
}
}
.\[disabled\]\:border {
&:is(disabled) {
border-style: var(--tw-border-style);
border-width: 1px;
}
}
.\[\&\>\*\]\:data-\[slot\=field\]\:p-4 {
&>* {
&[data-slot="field"] {
padding: calc(var(--spacing) * 4);
}
}
}
.\[\&\>a\]\:underline {
&>a {
text-decoration-line: underline;
@@ -2388,12 +2191,6 @@
}
}
}
.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 {
&>svg:not([class*='size-']) {
width: calc(var(--spacing) * 3.5);
height: calc(var(--spacing) * 3.5);
}
}
}
:root {
--radius: 0.625rem;
@@ -2597,7 +2394,7 @@
justify-content: center;
gap: calc(var(--spacing) * 1);
overflow: hidden;
border-radius: var(--radius-md);
border-radius: calc(infinity * 1px);
border-style: var(--tw-border-style);
border-width: 1px;
padding-inline: calc(var(--spacing) * 2);
@@ -3909,7 +3706,7 @@
}
}
@layer components {
kbd {
.kbd {
pointer-events: none;
display: inline-flex;
height: calc(var(--spacing) * 5);