@nomideusz/svelte-calendar 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -90
- package/dist/adapters/mapped.d.ts +7 -7
- package/dist/adapters/mapped.js +5 -2
- package/dist/adapters/memory.d.ts +7 -6
- package/dist/adapters/memory.js +3 -4
- package/dist/adapters/recurring.d.ts +6 -6
- package/dist/adapters/recurring.js +12 -14
- package/dist/calendar/Calendar.svelte +32 -16
- package/dist/calendar/Calendar.svelte.d.ts +1 -1
- package/dist/primitives/DayHeader.svelte +7 -7
- package/dist/primitives/EmptySlot.svelte +6 -6
- package/dist/primitives/EventBlock.svelte +19 -19
- package/dist/primitives/FloatingPanel.svelte +4 -4
- package/dist/primitives/NowIndicator.svelte +5 -5
- package/dist/primitives/TimeGutter.svelte +4 -4
- package/dist/theme/auto.d.ts +5 -0
- package/dist/theme/auto.js +16 -3
- package/dist/views/agenda/AgendaDay.svelte +71 -71
- package/dist/views/agenda/AgendaWeek.svelte +48 -47
- package/dist/views/mobile/MobileDay.svelte +34 -34
- package/dist/views/mobile/MobileWeek.svelte +32 -29
- package/dist/views/month/MonthGrid.svelte +44 -19
- package/dist/views/planner/PlannerScroll.svelte +45 -45
- package/dist/views/planner/PlannerWeek.svelte +100 -72
- package/dist/views/shared/context.svelte.d.ts +2 -0
- package/dist/views/shared/context.svelte.js +1 -0
- package/package.json +1 -1
- package/widget/widget.js +239 -166
package/dist/theme/auto.js
CHANGED
|
@@ -39,6 +39,21 @@ function luminance([r, g, b]) {
|
|
|
39
39
|
};
|
|
40
40
|
return 0.2126 * lin(r) + 0.7152 * lin(g) + 0.0722 * lin(b);
|
|
41
41
|
}
|
|
42
|
+
const DARK_TEXT = [15, 15, 15]; // #0f0f0f, the ink
|
|
43
|
+
function contrast(a, b) {
|
|
44
|
+
const [hi, lo] = [luminance(a), luminance(b)].sort((x, y) => y - x);
|
|
45
|
+
return (hi + 0.05) / (lo + 0.05);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Text colour for an accent fill (all-day band, now plate): white when it
|
|
49
|
+
* reaches 4.5:1 on the accent, else whichever of white / dark ink contrasts more.
|
|
50
|
+
*/
|
|
51
|
+
export function accentTextFor(accent) {
|
|
52
|
+
const white = contrast(accent, [255, 255, 255]);
|
|
53
|
+
if (white >= 4.5)
|
|
54
|
+
return '#ffffff';
|
|
55
|
+
return contrast(accent, DARK_TEXT) > white ? '#0f0f0f' : '#ffffff';
|
|
56
|
+
}
|
|
42
57
|
function rgbToHsl(r, g, b) {
|
|
43
58
|
r /= 255;
|
|
44
59
|
g /= 255;
|
|
@@ -497,9 +512,7 @@ export function probeHostTheme(el, options = {}) {
|
|
|
497
512
|
? Math.max(aL, 0.45) // bright enough on dark
|
|
498
513
|
: Math.min(aL, 0.48); // dark enough on light
|
|
499
514
|
const accentAdj = hslToRgb(aH, Math.max(aS, 0.5), accentL);
|
|
500
|
-
|
|
501
|
-
const accentLum = luminance(accentAdj);
|
|
502
|
-
const btnText = accentLum < 0.4 ? '#ffffff' : '#1a1a2e';
|
|
515
|
+
const btnText = accentTextFor(accentAdj);
|
|
503
516
|
// ── Scrollbar ──
|
|
504
517
|
const scrollAlpha = isDark ? 0.12 : 0.10;
|
|
505
518
|
// ── Success (green, theme-adapted) ──
|
|
@@ -184,7 +184,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
184
184
|
class:ag-compact-row--selected={selectedEventId === ev.id}
|
|
185
185
|
class:ag-compact-row--cancelled={ev.status === 'cancelled'}
|
|
186
186
|
class:ag-compact-row--tentative={ev.status === 'tentative'}
|
|
187
|
-
style:--ev-color={ev.color || 'var(--dt-accent)'}
|
|
187
|
+
style:--ev-color={ev.color || 'var(--dt-event, var(--dt-accent))'}
|
|
188
188
|
aria-label="{ev.title}{statusText(ev)}, {fmt(ev.start)}, {duration(ev)}"
|
|
189
189
|
onclick={() => handleClick(ev)}
|
|
190
190
|
onpointerenter={() => oneventhover?.(ev)}
|
|
@@ -221,7 +221,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
221
221
|
type="button"
|
|
222
222
|
class="ag-q-now"
|
|
223
223
|
class:ag-q-now--selected={selectedEventId === ev.id}
|
|
224
|
-
style:--ev-color={ev.color || 'var(--dt-accent)'}
|
|
224
|
+
style:--ev-color={ev.color || 'var(--dt-event, var(--dt-accent))'}
|
|
225
225
|
aria-label="{ev.title}, {L.happeningNow}, {L.percentComplete(Math.round(prog(ev) * 100))}"
|
|
226
226
|
onclick={() => handleClick(ev)}
|
|
227
227
|
onpointerenter={() => oneventhover?.(ev)}
|
|
@@ -252,7 +252,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
252
252
|
aria-label="{ev.title}, {L.completed}, {fmt(ev.start)}"
|
|
253
253
|
onclick={() => handleClick(ev)}
|
|
254
254
|
>
|
|
255
|
-
<span class="ag-q-done-check">✓</span>
|
|
255
|
+
<span class="ag-q-done-check" aria-hidden="true">✓</span>
|
|
256
256
|
<span class="ag-q-done-title">{ev.title}</span>
|
|
257
257
|
</button>
|
|
258
258
|
{/each}
|
|
@@ -279,7 +279,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
279
279
|
type="button"
|
|
280
280
|
class="ag-compact-row ag-compact-row--queue"
|
|
281
281
|
class:ag-compact-row--selected={selectedEventId === ev.id}
|
|
282
|
-
style:--ev-color={ev.color || 'var(--dt-accent)'}
|
|
282
|
+
style:--ev-color={ev.color || 'var(--dt-event, var(--dt-accent))'}
|
|
283
283
|
aria-label="{ev.title}{statusText(ev)}, {fmt(ev.start)}, {duration(ev)}"
|
|
284
284
|
onclick={() => handleClick(ev)}
|
|
285
285
|
onpointerenter={() => oneventhover?.(ev)}
|
|
@@ -300,7 +300,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
300
300
|
class="ag-card ag-card--q"
|
|
301
301
|
class:ag-card--hero={i === 0}
|
|
302
302
|
class:ag-card--selected={selectedEventId === ev.id}
|
|
303
|
-
style:--ev-color={ev.color || 'var(--dt-accent)'}
|
|
303
|
+
style:--ev-color={ev.color || 'var(--dt-event, var(--dt-accent))'}
|
|
304
304
|
aria-label="{ev.title}{statusText(ev)}, {fmt(ev.start)}, {duration(ev)}"
|
|
305
305
|
onclick={() => handleClick(ev)}
|
|
306
306
|
onpointerenter={() => oneventhover?.(ev)}
|
|
@@ -348,14 +348,14 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
348
348
|
class="ag-log-row"
|
|
349
349
|
class:ag-log-row--selected={selectedEventId === ev.id}
|
|
350
350
|
class:ag-log-row--cancelled={ev.status === 'cancelled'}
|
|
351
|
-
style:--ev-color={ev.color || 'var(--dt-accent)'}
|
|
351
|
+
style:--ev-color={ev.color || 'var(--dt-event, var(--dt-accent))'}
|
|
352
352
|
aria-label="{ev.title}{statusText(ev)}, {fmt(ev.start)} – {fmt(ev.end)}"
|
|
353
353
|
onclick={() => handleClick(ev)}
|
|
354
354
|
onpointerenter={() => oneventhover?.(ev)}
|
|
355
355
|
>
|
|
356
|
-
<span class="ag-log-check">✓</span>
|
|
356
|
+
<span class="ag-log-check" aria-hidden="true">✓</span>
|
|
357
357
|
<span class="ag-log-time">{fmt(ev.start)}</span>
|
|
358
|
-
<span class="ag-log-dot" style:background={ev.color || 'var(--dt-accent)'}></span>
|
|
358
|
+
<span class="ag-log-dot" style:background={ev.color || 'var(--dt-event, var(--dt-accent))'}></span>
|
|
359
359
|
<span class="ag-log-title">{ev.title}</span>
|
|
360
360
|
<span class="ag-log-dur">{duration(ev)}</span>
|
|
361
361
|
</button>
|
|
@@ -381,7 +381,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
381
381
|
class:ag-card--tentative={ev.status === 'tentative'}
|
|
382
382
|
class:ag-card--full={ev.status === 'full'}
|
|
383
383
|
class:ag-card--limited={ev.status === 'limited'}
|
|
384
|
-
style:--ev-color={ev.color || 'var(--dt-accent)'}
|
|
384
|
+
style:--ev-color={ev.color || 'var(--dt-event, var(--dt-accent))'}
|
|
385
385
|
aria-label="{ev.title}{statusText(ev)}, {fmt(ev.start)} – {fmt(ev.end)}, {duration(ev)}"
|
|
386
386
|
onclick={() => handleClick(ev)}
|
|
387
387
|
onpointerenter={() => oneventhover?.(ev)}
|
|
@@ -431,7 +431,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
431
431
|
width: 100%;
|
|
432
432
|
min-width: 0;
|
|
433
433
|
box-sizing: border-box;
|
|
434
|
-
color: var(--dt-text, rgba(
|
|
434
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
435
435
|
font-family: var(--dt-sans, system-ui, sans-serif);
|
|
436
436
|
}
|
|
437
437
|
|
|
@@ -463,8 +463,8 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
463
463
|
135deg,
|
|
464
464
|
transparent,
|
|
465
465
|
transparent 6px,
|
|
466
|
-
color-mix(in srgb, var(--dt-text, rgba(
|
|
467
|
-
color-mix(in srgb, var(--dt-text, rgba(
|
|
466
|
+
color-mix(in srgb, var(--dt-text, rgba(15, 15, 15, 0.87)) 4%, transparent) 6px,
|
|
467
|
+
color-mix(in srgb, var(--dt-text, rgba(15, 15, 15, 0.87)) 4%, transparent) 12px
|
|
468
468
|
);
|
|
469
469
|
}
|
|
470
470
|
|
|
@@ -498,7 +498,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
498
498
|
font-stretch: 90%;
|
|
499
499
|
letter-spacing: -0.02em;
|
|
500
500
|
font-variant-numeric: tabular-nums;
|
|
501
|
-
color: var(--dt-text, rgba(
|
|
501
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
502
502
|
margin-inline-end: 4px;
|
|
503
503
|
}
|
|
504
504
|
.ag-day-head-badge,
|
|
@@ -506,19 +506,19 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
506
506
|
font: 500 12px/1 var(--dt-sans, system-ui, sans-serif);
|
|
507
507
|
letter-spacing: 0.08em;
|
|
508
508
|
text-transform: uppercase;
|
|
509
|
-
color: var(--dt-text-2, rgba(
|
|
509
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
510
510
|
}
|
|
511
511
|
.ag-day-head--today .ag-day-head-num,
|
|
512
512
|
.ag-day-head--today .ag-day-head-name,
|
|
513
513
|
.ag-day-head-badge {
|
|
514
|
-
color: var(--dt-accent, #
|
|
514
|
+
color: var(--dt-accent, #1d4fd7);
|
|
515
515
|
}
|
|
516
516
|
.ag-day-head .ag-day-head-badge--muted {
|
|
517
|
-
color: var(--dt-text-2, rgba(
|
|
517
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
518
518
|
}
|
|
519
519
|
.ag-day-head-date {
|
|
520
520
|
font: 400 12.5px/1 var(--dt-sans, system-ui, sans-serif);
|
|
521
|
-
color: var(--dt-text-2, rgba(
|
|
521
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
522
522
|
}
|
|
523
523
|
.ag--auto .ag-body { overflow-y: visible; min-height: auto; }
|
|
524
524
|
.ag-body::-webkit-scrollbar {
|
|
@@ -535,13 +535,13 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
535
535
|
align-items: center;
|
|
536
536
|
gap: 8px;
|
|
537
537
|
padding: 6px 16px;
|
|
538
|
-
border-bottom: 1px solid var(--dt-border, rgba(
|
|
538
|
+
border-bottom: 1px solid var(--dt-border, rgba(15, 15, 15, 0.08));
|
|
539
539
|
}
|
|
540
540
|
.ag-allday-label {
|
|
541
541
|
font: 500 12px/1 var(--dt-sans, system-ui, sans-serif);
|
|
542
542
|
text-transform: uppercase;
|
|
543
543
|
letter-spacing: 0.08em;
|
|
544
|
-
color: var(--dt-text-2, rgba(
|
|
544
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
545
545
|
white-space: nowrap;
|
|
546
546
|
flex-shrink: 0;
|
|
547
547
|
}
|
|
@@ -568,7 +568,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
568
568
|
}
|
|
569
569
|
.ag-allday-chip:focus-visible {
|
|
570
570
|
outline: none;
|
|
571
|
-
box-shadow: inset 0 0 0 2px var(--dt-btn-text, #fff), 0 0 0 2px var(--dt-accent, #
|
|
571
|
+
box-shadow: inset 0 0 0 2px var(--dt-btn-text, #fff), 0 0 0 2px var(--dt-accent, #1d4fd7);
|
|
572
572
|
}
|
|
573
573
|
.ag-allday-chip--selected {
|
|
574
574
|
box-shadow: inset 0 0 0 2px var(--dt-btn-text, #fff);
|
|
@@ -592,7 +592,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
592
592
|
border-radius: 0;
|
|
593
593
|
background: transparent;
|
|
594
594
|
border: none;
|
|
595
|
-
border-bottom: 1px solid var(--dt-border, rgba(
|
|
595
|
+
border-bottom: 1px solid var(--dt-border, rgba(15, 15, 15, 0.3));
|
|
596
596
|
overflow: hidden;
|
|
597
597
|
cursor: pointer;
|
|
598
598
|
transition: background 150ms, box-shadow 150ms;
|
|
@@ -608,18 +608,18 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
608
608
|
}
|
|
609
609
|
.ag-card:hover,
|
|
610
610
|
.ag-card:active {
|
|
611
|
-
background: var(--dt-hover, rgba(
|
|
611
|
+
background: var(--dt-hover, rgba(15, 15, 15, 0.04));
|
|
612
612
|
}
|
|
613
613
|
.ag-card:focus-visible {
|
|
614
614
|
outline: none;
|
|
615
|
-
box-shadow: 0 0 0 2px var(--dt-accent, #
|
|
615
|
+
box-shadow: 0 0 0 2px var(--dt-accent, #1d4fd7);
|
|
616
616
|
}
|
|
617
617
|
.ag-card--selected {
|
|
618
618
|
box-shadow: inset 0 0 0 1px var(--ev-color);
|
|
619
619
|
}
|
|
620
620
|
.ag-card--cancelled .ag-card-title {
|
|
621
621
|
text-decoration: line-through;
|
|
622
|
-
color: var(--dt-text-2, rgba(
|
|
622
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
|
|
623
623
|
}
|
|
624
624
|
.ag-card--cancelled::before,
|
|
625
625
|
.ag-card--full::before {
|
|
@@ -628,7 +628,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
628
628
|
.ag-card--tentative .ag-card-title,
|
|
629
629
|
.ag-card--limited .ag-card-title,
|
|
630
630
|
.ag-card--full .ag-card-title {
|
|
631
|
-
color: var(--dt-text-2, rgba(
|
|
631
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
|
|
632
632
|
}
|
|
633
633
|
.ag-card--tentative::before,
|
|
634
634
|
.ag-card--limited::before {
|
|
@@ -653,14 +653,14 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
653
653
|
}
|
|
654
654
|
.ag-card-title {
|
|
655
655
|
font: 500 15px/1.25 var(--dt-sans, system-ui, sans-serif);
|
|
656
|
-
color: var(--dt-text, rgba(
|
|
656
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
657
657
|
word-break: break-word;
|
|
658
658
|
min-width: 0;
|
|
659
659
|
}
|
|
660
660
|
.ag-card-meta {
|
|
661
661
|
font: 400 14px/1.2 var(--dt-sans, system-ui, sans-serif);
|
|
662
662
|
font-variant-numeric: tabular-nums;
|
|
663
|
-
color: var(--dt-text, rgba(
|
|
663
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
664
664
|
}
|
|
665
665
|
.ag-card-dur,
|
|
666
666
|
.ag-card-eta,
|
|
@@ -668,7 +668,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
668
668
|
.ag-card-loc,
|
|
669
669
|
.ag-card-tag {
|
|
670
670
|
font: 400 12.5px/1.2 var(--dt-sans, system-ui, sans-serif);
|
|
671
|
-
color: var(--dt-text-2, rgba(
|
|
671
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
672
672
|
}
|
|
673
673
|
.ag-card-dur {
|
|
674
674
|
margin-left: 8px;
|
|
@@ -698,7 +698,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
698
698
|
/* The next one up: its countdown in ink. Size stays on the scale — the
|
|
699
699
|
happening-now item is the largest thing in the queue. */
|
|
700
700
|
.ag-card--hero .ag-card-eta {
|
|
701
|
-
color: var(--dt-text, rgba(
|
|
701
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
702
702
|
}
|
|
703
703
|
|
|
704
704
|
/* ── Plan card variant ── */
|
|
@@ -709,7 +709,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
709
709
|
.ag-card-order {
|
|
710
710
|
font: 400 14px/1.25 var(--dt-sans, system-ui, sans-serif);
|
|
711
711
|
font-variant-numeric: tabular-nums;
|
|
712
|
-
color: var(--dt-text-2, rgba(
|
|
712
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
713
713
|
min-width: 18px;
|
|
714
714
|
flex-shrink: 0;
|
|
715
715
|
}
|
|
@@ -775,7 +775,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
775
775
|
font: 500 12px/1.2 var(--dt-sans, system-ui, sans-serif);
|
|
776
776
|
letter-spacing: 0.08em;
|
|
777
777
|
text-transform: uppercase;
|
|
778
|
-
color: var(--dt-text-2, rgba(
|
|
778
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
779
779
|
margin-bottom: 8px;
|
|
780
780
|
padding: 0 12px;
|
|
781
781
|
}
|
|
@@ -785,13 +785,13 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
785
785
|
justify-content: center;
|
|
786
786
|
flex: 1;
|
|
787
787
|
font-size: 14px;
|
|
788
|
-
color: var(--dt-text-2, rgba(
|
|
788
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
789
789
|
}
|
|
790
790
|
|
|
791
791
|
/* ── NOW column (includes Done above) ── */
|
|
792
792
|
.ag-q-status {
|
|
793
793
|
padding: 0 10px 0 14px;
|
|
794
|
-
border-right: 1px solid var(--dt-border, rgba(
|
|
794
|
+
border-right: 1px solid var(--dt-border, rgba(15, 15, 15, 0.08));
|
|
795
795
|
display: flex;
|
|
796
796
|
flex-direction: column;
|
|
797
797
|
overflow-y: auto;
|
|
@@ -810,33 +810,33 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
810
810
|
font-family: var(--dt-sans, system-ui, sans-serif);
|
|
811
811
|
font-variant-numeric: tabular-nums;
|
|
812
812
|
font-size: 12.5px;
|
|
813
|
-
color: var(--dt-text-2, rgba(
|
|
813
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
814
814
|
cursor: pointer;
|
|
815
815
|
}
|
|
816
816
|
.ag-q-done-toggle:hover,
|
|
817
817
|
.ag-q-done-toggle:active {
|
|
818
|
-
color: var(--dt-text, rgba(
|
|
819
|
-
border-color: var(--dt-border-day, rgba(
|
|
818
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
819
|
+
border-color: var(--dt-border-day, rgba(15, 15, 15, 0.6));
|
|
820
820
|
}
|
|
821
821
|
.ag-q-done-toggle:focus-visible {
|
|
822
822
|
outline: none;
|
|
823
|
-
box-shadow: 0 0 0 2px var(--dt-accent, #
|
|
823
|
+
box-shadow: 0 0 0 2px var(--dt-accent, #1d4fd7);
|
|
824
824
|
}
|
|
825
825
|
.ag-q-now-sub {
|
|
826
826
|
font: 400 12.5px/1.2 var(--dt-sans, system-ui, sans-serif);
|
|
827
|
-
color: var(--dt-text-2, rgba(
|
|
827
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
828
828
|
margin-bottom: 4px;
|
|
829
829
|
}
|
|
830
830
|
.ag-q-done-section {
|
|
831
831
|
margin-top: 12px;
|
|
832
832
|
padding-top: 10px;
|
|
833
|
-
border-top: 1px solid var(--dt-border, rgba(
|
|
833
|
+
border-top: 1px solid var(--dt-border, rgba(15, 15, 15, 0.08));
|
|
834
834
|
}
|
|
835
835
|
.ag-q-clock {
|
|
836
836
|
font: 500 12px/1.2 var(--dt-sans, system-ui, sans-serif);
|
|
837
837
|
letter-spacing: 0;
|
|
838
838
|
font-variant-numeric: tabular-nums;
|
|
839
|
-
color: var(--dt-accent, #
|
|
839
|
+
color: var(--dt-accent, #1d4fd7);
|
|
840
840
|
margin-left: 4px;
|
|
841
841
|
}
|
|
842
842
|
/* The one happening now is the most prominent thing on the day: the
|
|
@@ -849,9 +849,9 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
849
849
|
padding: 12px 12px 12px 15px;
|
|
850
850
|
margin-bottom: 8px;
|
|
851
851
|
border-radius: 0;
|
|
852
|
-
background: var(--dt-accent-dim, color-mix(in srgb, var(--dt-accent, #
|
|
852
|
+
background: var(--dt-accent-dim, color-mix(in srgb, var(--dt-accent, #1d4fd7) 12%, transparent));
|
|
853
853
|
border: none;
|
|
854
|
-
border-bottom: 1px solid var(--dt-border, rgba(
|
|
854
|
+
border-bottom: 1px solid var(--dt-border, rgba(15, 15, 15, 0.3));
|
|
855
855
|
cursor: pointer;
|
|
856
856
|
transition: background 150ms, box-shadow 150ms;
|
|
857
857
|
}
|
|
@@ -867,12 +867,12 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
867
867
|
.ag-q-now:hover,
|
|
868
868
|
.ag-q-now:active {
|
|
869
869
|
background:
|
|
870
|
-
linear-gradient(var(--dt-hover, rgba(
|
|
871
|
-
var(--dt-accent-dim, color-mix(in srgb, var(--dt-accent, #
|
|
870
|
+
linear-gradient(var(--dt-hover, rgba(15, 15, 15, 0.04)), var(--dt-hover, rgba(15, 15, 15, 0.04))),
|
|
871
|
+
var(--dt-accent-dim, color-mix(in srgb, var(--dt-accent, #1d4fd7) 12%, transparent));
|
|
872
872
|
}
|
|
873
873
|
.ag-q-now:focus-visible {
|
|
874
874
|
outline: none;
|
|
875
|
-
box-shadow: 0 0 0 2px var(--dt-accent, #
|
|
875
|
+
box-shadow: 0 0 0 2px var(--dt-accent, #1d4fd7);
|
|
876
876
|
}
|
|
877
877
|
.ag-q-now--selected {
|
|
878
878
|
box-shadow: inset 0 0 0 1px var(--ev-color, var(--dt-accent));
|
|
@@ -881,7 +881,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
881
881
|
width: 8px;
|
|
882
882
|
height: 8px;
|
|
883
883
|
border-radius: 50%;
|
|
884
|
-
background: var(--ev-color, var(--dt-accent, #
|
|
884
|
+
background: var(--ev-color, var(--dt-accent, #1d4fd7));
|
|
885
885
|
margin-bottom: 8px;
|
|
886
886
|
animation: ag-pulse 2.5s ease-in-out infinite;
|
|
887
887
|
}
|
|
@@ -899,7 +899,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
899
899
|
}
|
|
900
900
|
.ag-q-now-title {
|
|
901
901
|
font: 500 20px/1.2 var(--dt-sans, system-ui, sans-serif);
|
|
902
|
-
color: var(--dt-text, rgba(
|
|
902
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
903
903
|
display: -webkit-box;
|
|
904
904
|
-webkit-box-orient: vertical;
|
|
905
905
|
-webkit-line-clamp: 2;
|
|
@@ -911,19 +911,19 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
911
911
|
.ag-q-now-time {
|
|
912
912
|
font: 400 14px/1.2 var(--dt-sans, system-ui, sans-serif);
|
|
913
913
|
font-variant-numeric: tabular-nums;
|
|
914
|
-
color: var(--dt-text, rgba(
|
|
914
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
915
915
|
margin-bottom: 10px;
|
|
916
916
|
}
|
|
917
917
|
.ag-q-now-track {
|
|
918
918
|
height: 2px;
|
|
919
|
-
background: var(--dt-border, rgba(
|
|
919
|
+
background: var(--dt-border, rgba(15, 15, 15, 0.08));
|
|
920
920
|
border-radius: 0;
|
|
921
921
|
overflow: hidden;
|
|
922
922
|
}
|
|
923
923
|
.ag-q-now-fill {
|
|
924
924
|
height: 100%;
|
|
925
925
|
width: 100%;
|
|
926
|
-
background: var(--ev-color, var(--dt-accent, #
|
|
926
|
+
background: var(--ev-color, var(--dt-accent, #1d4fd7));
|
|
927
927
|
border-radius: 0;
|
|
928
928
|
transform-origin: left;
|
|
929
929
|
transition: transform 1s linear;
|
|
@@ -934,7 +934,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
934
934
|
}
|
|
935
935
|
.ag-q-free-label {
|
|
936
936
|
font: 400 15px/1.25 var(--dt-sans, system-ui, sans-serif);
|
|
937
|
-
color: var(--dt-text-2, rgba(
|
|
937
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
938
938
|
margin-bottom: 2px;
|
|
939
939
|
}
|
|
940
940
|
|
|
@@ -963,22 +963,22 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
963
963
|
.ag-q-done-item:hover .ag-q-done-title,
|
|
964
964
|
.ag-q-done-item:active .ag-q-done-title,
|
|
965
965
|
.ag-q-done-item--selected .ag-q-done-title {
|
|
966
|
-
color: var(--dt-text, rgba(
|
|
966
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
967
967
|
}
|
|
968
968
|
.ag-q-done-item:focus-visible {
|
|
969
969
|
outline: none;
|
|
970
|
-
box-shadow: 0 0 0 2px var(--dt-accent, #
|
|
970
|
+
box-shadow: 0 0 0 2px var(--dt-accent, #1d4fd7);
|
|
971
971
|
border-radius: 0;
|
|
972
972
|
}
|
|
973
973
|
.ag-q-done-check {
|
|
974
974
|
font-size: 12.5px;
|
|
975
|
-
color: var(--dt-
|
|
975
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
976
976
|
flex-shrink: 0;
|
|
977
977
|
}
|
|
978
978
|
/* Finished: quieter ink, no strike (strikethrough means cancelled). */
|
|
979
979
|
.ag-q-done-title {
|
|
980
980
|
font: 500 15px/1.25 var(--dt-sans, system-ui, sans-serif);
|
|
981
|
-
color: var(--dt-text-2, rgba(
|
|
981
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
982
982
|
white-space: nowrap;
|
|
983
983
|
overflow: hidden;
|
|
984
984
|
text-overflow: ellipsis;
|
|
@@ -1002,7 +1002,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1002
1002
|
gap: 10px;
|
|
1003
1003
|
padding: 8px 0;
|
|
1004
1004
|
width: 100%;
|
|
1005
|
-
border-bottom: 1px solid var(--dt-border, rgba(
|
|
1005
|
+
border-bottom: 1px solid var(--dt-border, rgba(15, 15, 15, 0.08));
|
|
1006
1006
|
cursor: pointer;
|
|
1007
1007
|
}
|
|
1008
1008
|
.ag-log-row:last-child {
|
|
@@ -1011,15 +1011,15 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1011
1011
|
.ag-log-row:hover .ag-log-title,
|
|
1012
1012
|
.ag-log-row:active .ag-log-title,
|
|
1013
1013
|
.ag-log-row--selected .ag-log-title {
|
|
1014
|
-
color: var(--dt-text, rgba(
|
|
1014
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
1015
1015
|
}
|
|
1016
1016
|
.ag-log-row:hover,
|
|
1017
1017
|
.ag-log-row:active {
|
|
1018
|
-
background: var(--dt-hover, rgba(
|
|
1018
|
+
background: var(--dt-hover, rgba(15, 15, 15, 0.04));
|
|
1019
1019
|
}
|
|
1020
1020
|
.ag-log-row:focus-visible {
|
|
1021
1021
|
outline: none;
|
|
1022
|
-
box-shadow: 0 0 0 2px var(--dt-accent, #
|
|
1022
|
+
box-shadow: 0 0 0 2px var(--dt-accent, #1d4fd7);
|
|
1023
1023
|
border-radius: 0;
|
|
1024
1024
|
}
|
|
1025
1025
|
.ag-log-row--selected {
|
|
@@ -1028,13 +1028,13 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1028
1028
|
}
|
|
1029
1029
|
.ag-log-check {
|
|
1030
1030
|
font-size: 12.5px;
|
|
1031
|
-
color: var(--dt-
|
|
1031
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
1032
1032
|
flex-shrink: 0;
|
|
1033
1033
|
}
|
|
1034
1034
|
.ag-log-time {
|
|
1035
1035
|
font: 400 14px/1.25 var(--dt-sans, system-ui, sans-serif);
|
|
1036
1036
|
font-variant-numeric: tabular-nums;
|
|
1037
|
-
color: var(--dt-text-2, rgba(
|
|
1037
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
1038
1038
|
min-width: 4.6em;
|
|
1039
1039
|
flex-shrink: 0;
|
|
1040
1040
|
}
|
|
@@ -1050,7 +1050,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1050
1050
|
Strikethrough is kept for cancelled events only. */
|
|
1051
1051
|
.ag-log-title {
|
|
1052
1052
|
font: 500 15px/1.25 var(--dt-sans, system-ui, sans-serif);
|
|
1053
|
-
color: var(--dt-text-2, rgba(
|
|
1053
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
1054
1054
|
flex: 0 1 auto;
|
|
1055
1055
|
min-width: 0;
|
|
1056
1056
|
white-space: nowrap;
|
|
@@ -1065,7 +1065,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1065
1065
|
.ag-log-dur {
|
|
1066
1066
|
font: 400 12.5px/1.25 var(--dt-sans, system-ui, sans-serif);
|
|
1067
1067
|
font-variant-numeric: tabular-nums;
|
|
1068
|
-
color: var(--dt-text-2, rgba(
|
|
1068
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
1069
1069
|
flex-shrink: 0;
|
|
1070
1070
|
}
|
|
1071
1071
|
|
|
@@ -1084,7 +1084,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1084
1084
|
align-items: baseline;
|
|
1085
1085
|
gap: 10px;
|
|
1086
1086
|
padding: 5px 0 5px 11px;
|
|
1087
|
-
border-bottom: 1px solid var(--dt-border, rgba(
|
|
1087
|
+
border-bottom: 1px solid var(--dt-border, rgba(15, 15, 15, 0.3));
|
|
1088
1088
|
cursor: pointer;
|
|
1089
1089
|
min-width: 0;
|
|
1090
1090
|
width: 100%;
|
|
@@ -1105,16 +1105,16 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1105
1105
|
.ag-compact-row:active .ag-compact-row-title { color: var(--dt-text); }
|
|
1106
1106
|
.ag-compact-row:hover,
|
|
1107
1107
|
.ag-compact-row:active {
|
|
1108
|
-
background: var(--dt-hover, rgba(
|
|
1108
|
+
background: var(--dt-hover, rgba(15, 15, 15, 0.04));
|
|
1109
1109
|
}
|
|
1110
1110
|
.ag-compact-row:focus-visible {
|
|
1111
1111
|
outline: none;
|
|
1112
|
-
box-shadow: 0 0 0 2px var(--dt-accent, #
|
|
1112
|
+
box-shadow: 0 0 0 2px var(--dt-accent, #1d4fd7);
|
|
1113
1113
|
}
|
|
1114
1114
|
.ag-compact-row-time {
|
|
1115
1115
|
font: 400 14px/1.3 var(--dt-sans, system-ui, sans-serif);
|
|
1116
1116
|
font-variant-numeric: tabular-nums;
|
|
1117
|
-
color: var(--dt-text, rgba(
|
|
1117
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
1118
1118
|
min-width: 4.6em;
|
|
1119
1119
|
flex-shrink: 0;
|
|
1120
1120
|
white-space: nowrap;
|
|
@@ -1147,7 +1147,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1147
1147
|
}
|
|
1148
1148
|
.ag-compact-row-title {
|
|
1149
1149
|
font: 500 15px/1.3 var(--dt-sans, system-ui, sans-serif);
|
|
1150
|
-
color: var(--dt-text, rgba(
|
|
1150
|
+
color: var(--dt-text, rgba(15, 15, 15, 0.87));
|
|
1151
1151
|
flex: 0 1 auto;
|
|
1152
1152
|
/* The title is the row's identity — never let subtitle/tags/duration
|
|
1153
1153
|
squeeze it out on narrow screens (min-width: 0 resolves to 0px). */
|
|
@@ -1162,7 +1162,7 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1162
1162
|
.ag-compact-row-sub,
|
|
1163
1163
|
.ag-compact-row-tag {
|
|
1164
1164
|
font: 400 12.5px/1.3 var(--dt-sans, system-ui, sans-serif);
|
|
1165
|
-
color: var(--dt-text-2, rgba(
|
|
1165
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.66));
|
|
1166
1166
|
white-space: nowrap;
|
|
1167
1167
|
}
|
|
1168
1168
|
.ag-compact-row-dur {
|
|
@@ -1184,10 +1184,10 @@ const hiddenDoneCount = $derived(showAllDone ? 0 : Math.max(0, dayCat.past.lengt
|
|
|
1184
1184
|
}
|
|
1185
1185
|
.ag-compact-row--cancelled .ag-compact-row-title {
|
|
1186
1186
|
text-decoration: line-through;
|
|
1187
|
-
color: var(--dt-text-2, rgba(
|
|
1187
|
+
color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
|
|
1188
1188
|
}
|
|
1189
1189
|
.ag-compact-row--cancelled::before { opacity: 0.45; }
|
|
1190
|
-
.ag-compact-row--tentative .ag-compact-row-title { color: var(--dt-text-2, rgba(
|
|
1190
|
+
.ag-compact-row--tentative .ag-compact-row-title { color: var(--dt-text-2, rgba(15, 15, 15, 0.54)); }
|
|
1191
1191
|
.ag-compact-row--tentative::before {
|
|
1192
1192
|
background: repeating-linear-gradient(180deg, var(--ev-color) 0 4px, transparent 4px 7px);
|
|
1193
1193
|
}
|