feat: displaying and managing active jobs

This commit is contained in:
Per Stark
2025-01-28 11:51:45 +01:00
parent c6bc0c44f3
commit 2460d430b2
13 changed files with 522 additions and 181 deletions

View File

@@ -828,6 +828,69 @@
}
}
}
.tab {
position: relative;
display: inline-flex;
cursor: pointer;
appearance: none;
flex-wrap: wrap;
align-items: center;
justify-content: center;
text-align: center;
webkit-user-select: none;
user-select: none;
&:hover {
@media (hover: hover) {
color: var(--color-base-content);
}
}
--tab-p: 1rem;
--tab-bg: var(--color-base-100);
--tab-border-color: var(--color-base-300);
--tab-radius-ss: 0;
--tab-radius-se: 0;
--tab-radius-es: 0;
--tab-radius-ee: 0;
--tab-order: 0;
--tab-radius-min: calc(0.75rem - var(--border));
border-color: transparent;
order: var(--tab-order);
height: calc(var(--size-field, 0.25rem) * 10);
font-size: 0.875rem;
padding-inline-start: var(--tab-p);
padding-inline-end: var(--tab-p);
&:is(input[type="radio"]) {
min-width: fit-content;
&:after {
content: attr(aria-label);
}
}
&:checked, &:is(.tab-active, [aria-selected="true"]) {
& + .tab-content {
display: block;
height: 100%;
}
}
&:not(:checked, :hover, .tab-active, [aria-selected="true"]) {
color: color-mix(in oklab, var(--color-base-content) 50%, transparent);
}
&:not(input):empty {
flex-grow: 1;
cursor: default;
}
&:focus {
outline: 2px solid transparent;
outline-offset: 2px;
}
&:focus-visible {
outline: 2px solid currentColor;
outline-offset: -5px;
}
&[disabled] {
pointer-events: none;
opacity: 40%;
}
}
.dropdown {
position: relative;
display: inline-block;
@@ -2343,6 +2406,25 @@
}
}
}
.tab-content {
order {
}
order: var(--tabcontent-order);
display: none;
border-color: transparent;
--tabcontent-radius-ss: 0;
--tabcontent-radius-se: 0;
--tabcontent-radius-es: 0;
--tabcontent-radius-ee: 0;
--tabcontent-order: 1;
width: 100%;
margin: var(--tabcontent-margin);
border-width: var(--border);
border-start-start-radius: var(--tabcontent-radius-ss);
border-start-end-radius: var(--tabcontent-radius-se);
border-end-start-radius: var(--tabcontent-radius-es);
border-end-end-radius: var(--tabcontent-radius-ee);
}
.modal-box {
grid-column-start: 1;
grid-row-start: 1;
@@ -2390,6 +2472,11 @@
font-size: 2rem;
font-weight: 800;
}
.drawer-content {
grid-column-start: 2;
grid-row-start: 1;
min-width: calc(0.25rem * 0);
}
.chat-image {
grid-row: span 2 / span 2;
align-self: flex-end;
@@ -2427,6 +2514,15 @@
max-width: 96rem;
}
}
.m-0 {
margin: calc(var(--spacing) * 0);
}
.m-6 {
margin: calc(var(--spacing) * 6);
}
.m-8 {
margin: calc(var(--spacing) * 8);
}
.filter {
display: flex;
flex-wrap: wrap;
@@ -3026,6 +3122,9 @@
.mt-8 {
margin-top: calc(var(--spacing) * 8);
}
.mt-10 {
margin-top: calc(var(--spacing) * 10);
}
.mr-1 {
margin-right: calc(var(--spacing) * 1);
}
@@ -3048,6 +3147,9 @@
.mb-8 {
margin-bottom: calc(var(--spacing) * 8);
}
.mb-10 {
margin-bottom: calc(var(--spacing) * 10);
}
.alert {
display: grid;
width: 100%;
@@ -3319,6 +3421,13 @@
column-gap: calc(0.25rem * 3);
padding-block: calc(0.25rem * 1);
}
.mask {
display: inline-block;
vertical-align: middle;
mask-size: contain;
mask-repeat: no-repeat;
mask-position: center;
}
.block {
display: block;
}
@@ -3352,6 +3461,27 @@
.table {
display: table;
}
.btn-square {
padding-inline: calc(0.25rem * 0);
width: var(--size);
height: var(--size);
}
.size-6 {
width: calc(var(--spacing) * 6);
height: calc(var(--spacing) * 6);
}
.size-8 {
width: calc(var(--spacing) * 8);
height: calc(var(--spacing) * 8);
}
.size-10 {
width: calc(var(--spacing) * 10);
height: calc(var(--spacing) * 10);
}
.size-\[1\.2em\] {
width: 1.2em;
height: 1.2em;
}
.h-5 {
height: calc(var(--spacing) * 5);
}
@@ -3367,12 +3497,6 @@
.w-5 {
width: calc(var(--spacing) * 5);
}
.w-12 {
width: calc(var(--spacing) * 12);
}
.w-24 {
width: calc(var(--spacing) * 24);
}
.w-32 {
width: calc(var(--spacing) * 32);
}
@@ -3388,6 +3512,9 @@
.flex-shrink {
flex-shrink: 1;
}
.shrink {
flex-shrink: 1;
}
.flex-grow {
flex-grow: 1;
}
@@ -3463,15 +3590,24 @@
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
.\!flex-col {
flex-direction: column !important;
}
.flex-col {
flex-direction: column;
}
.flex-row {
flex-direction: row;
}
.flex-wrap {
flex-wrap: wrap;
}
.items-center {
align-items: center;
}
.justify-between {
justify-content: space-between;
}
.justify-center {
justify-content: center;
}
@@ -3481,6 +3617,9 @@
.justify-start {
justify-content: flex-start;
}
.gap-1 {
gap: calc(var(--spacing) * 1);
}
.gap-4 {
gap: calc(var(--spacing) * 4);
}
@@ -3546,12 +3685,21 @@
.border-transparent {
border-color: transparent;
}
.bg-accent {
background-color: var(--color-accent);
}
.bg-base-100 {
background-color: var(--color-base-100);
}
.bg-base-200 {
background-color: var(--color-base-200);
}
.bg-primary {
background-color: var(--color-primary);
}
.bg-secondary {
background-color: var(--color-secondary);
}
.bg-linear-to-r {
--tw-gradient-position: to right in oklab,;
background-image: linear-gradient(var(--tw-gradient-stops));
@@ -3619,6 +3767,9 @@
.pt-10 {
padding-top: calc(var(--spacing) * 10);
}
.pb-2 {
padding-bottom: calc(var(--spacing) * 2);
}
.text-center {
text-align: center;
}
@@ -3672,6 +3823,10 @@
--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);
}
.text-nowrap {
text-wrap: nowrap;
}
@@ -3693,6 +3848,9 @@
.text-accent {
color: var(--color-accent);
}
.text-accent-content {
color: var(--color-accent-content);
}
.text-base-content {
color: var(--color-base-content);
}
@@ -3717,6 +3875,9 @@
.text-secondary {
color: var(--color-secondary);
}
.text-secondary-content {
color: var(--color-secondary-content);
}
.text-transparent {
color: transparent;
}
@@ -3729,6 +3890,10 @@
.italic {
font-style: italic;
}
.ordinal {
--tw-ordinal: ordinal;
font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
}
.btn-link {
text-decoration-line: underline;
outline-color: currentColor;
@@ -3746,6 +3911,9 @@
.underline {
text-decoration-line: underline;
}
.accent-accent-content {
accent-color: var(--color-accent-content);
}
.opacity-60 {
opacity: 60%;
}
@@ -3757,10 +3925,6 @@
opacity: 100%;
}
}
.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);
}
.shadow {
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px 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);
@@ -3866,6 +4030,11 @@
margin-top: calc(var(--spacing) * 4);
}
}
.sm\:w-fit {
@media (width >= 40rem) {
width: fit-content;
}
}
.sm\:max-w-md {
@media (width >= 40rem) {
max-width: var(--container-md);
@@ -3876,6 +4045,16 @@
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.sm\:flex-col {
@media (width >= 40rem) {
flex-direction: column;
}
}
.sm\:flex-row {
@media (width >= 40rem) {
flex-direction: row;
}
}
.sm\:px-0 {
@media (width >= 40rem) {
padding-inline: calc(var(--spacing) * 0);
@@ -3887,6 +4066,11 @@
line-height: var(--tw-leading, var(--text-6xl--line-height));
}
}
.md\:grid-cols-2 {
@media (width >= 48rem) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.md\:grid-cols-3 {
@media (width >= 48rem) {
grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -3907,6 +4091,50 @@
grid-template-columns: auto 1fr;
}
}
.\[\&\:before\]\:normal-case {
&:before {
text-transform: none;
}
}
.\[\&\:before\]\:uppercase {
&:before {
text-transform: uppercase;
}
}
.\[\&\:before\]\:opacity-60 {
&:before {
opacity: 60%;
}
}
.\[\&\:before\]\:opacity-100 {
&:before {
opacity: 100%;
}
}
.\[\&\:before\]\:content-\[\'Content\:_\'\] {
&:before {
--tw-content: 'Content: ';
content: var(--tw-content);
}
}
.\[\&\:before\]\:content-\[\'Instructions\:_\'\] {
&:before {
--tw-content: 'Instructions: ';
content: var(--tw-content);
}
}
.\[\&\:before\]\:content-\[\'Status\:_\'\] {
&:before {
--tw-content: 'Status: ';
content: var(--tw-content);
}
}
.\[\&\:before\]\:content-\[\'Text\:_\'\] {
&:before {
--tw-content: 'Text: ';
content: var(--tw-content);
}
}
}
@layer base {
*, ::after, ::before, ::backdrop, ::file-selector-button {
@@ -4262,6 +4490,12 @@ video {
--tw-gradient-via-position: 50%;
--tw-gradient-to-position: 100%;
--tw-font-weight: initial;
--tw-tracking: initial;
--tw-ordinal: initial;
--tw-slashed-zero: initial;
--tw-numeric-figure: initial;
--tw-numeric-spacing: initial;
--tw-numeric-fraction: initial;
--tw-shadow: 0 0 #0000;
--tw-shadow-color: initial;
--tw-inset-shadow: 0 0 #0000;
@@ -4294,6 +4528,7 @@ video {
--tw-backdrop-saturate: initial;
--tw-backdrop-sepia: initial;
--tw-ease: initial;
--tw-content: "";
}
}
}
@@ -4404,6 +4639,30 @@ video {
syntax: "*";
inherits: false;
}
@property --tw-tracking {
syntax: "*";
inherits: false;
}
@property --tw-ordinal {
syntax: "*";
inherits: false;
}
@property --tw-slashed-zero {
syntax: "*";
inherits: false;
}
@property --tw-numeric-figure {
syntax: "*";
inherits: false;
}
@property --tw-numeric-spacing {
syntax: "*";
inherits: false;
}
@property --tw-numeric-fraction {
syntax: "*";
inherits: false;
}
@property --tw-shadow {
syntax: "*";
inherits: false;
@@ -4540,3 +4799,8 @@ video {
syntax: "*";
inherits: false;
}
@property --tw-content {
syntax: "*";
inherits: false;
initial-value: "";
}