@nomideusz/svelte-calendar 0.1.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 +168 -0
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.js +2 -0
- package/dist/adapters/memory.d.ts +14 -0
- package/dist/adapters/memory.js +33 -0
- package/dist/adapters/rest.d.ts +20 -0
- package/dist/adapters/rest.js +48 -0
- package/dist/adapters/types.d.ts +23 -0
- package/dist/adapters/types.js +1 -0
- package/dist/assets/favicon.svg +1 -0
- package/dist/calendar/Calendar.svelte +213 -0
- package/dist/calendar/Calendar.svelte.d.ts +45 -0
- package/dist/calendar/Toolbar.svelte +241 -0
- package/dist/calendar/Toolbar.svelte.d.ts +19 -0
- package/dist/calendar/index.d.ts +3 -0
- package/dist/calendar/index.js +3 -0
- package/dist/core/clock.svelte.d.ts +21 -0
- package/dist/core/clock.svelte.js +53 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.js +8 -0
- package/dist/core/locale.d.ts +38 -0
- package/dist/core/locale.js +96 -0
- package/dist/core/time.d.ts +37 -0
- package/dist/core/time.js +68 -0
- package/dist/core/types.d.ts +91 -0
- package/dist/core/types.js +11 -0
- package/dist/engine/drag.svelte.d.ts +31 -0
- package/dist/engine/drag.svelte.js +58 -0
- package/dist/engine/event-store.svelte.d.ts +47 -0
- package/dist/engine/event-store.svelte.js +120 -0
- package/dist/engine/index.d.ts +8 -0
- package/dist/engine/index.js +5 -0
- package/dist/engine/selection.svelte.d.ts +24 -0
- package/dist/engine/selection.svelte.js +58 -0
- package/dist/engine/view-state.svelte.d.ts +24 -0
- package/dist/engine/view-state.svelte.js +74 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +14 -0
- package/dist/primitives/DayHeader.svelte +103 -0
- package/dist/primitives/DayHeader.svelte.d.ts +15 -0
- package/dist/primitives/EmptySlot.svelte +101 -0
- package/dist/primitives/EmptySlot.svelte.d.ts +16 -0
- package/dist/primitives/EventBlock.svelte +241 -0
- package/dist/primitives/EventBlock.svelte.d.ts +24 -0
- package/dist/primitives/NowIndicator.svelte +175 -0
- package/dist/primitives/NowIndicator.svelte.d.ts +22 -0
- package/dist/primitives/TimeGutter.svelte +105 -0
- package/dist/primitives/TimeGutter.svelte.d.ts +14 -0
- package/dist/primitives/index.d.ts +5 -0
- package/dist/primitives/index.js +6 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.js +2 -0
- package/dist/theme/presets.d.ts +24 -0
- package/dist/theme/presets.js +89 -0
- package/dist/views/agenda/Agenda.svelte +1404 -0
- package/dist/views/agenda/Agenda.svelte.d.ts +20 -0
- package/dist/views/agenda/index.d.ts +1 -0
- package/dist/views/agenda/index.js +1 -0
- package/dist/views/day/DayGrid.svelte +1063 -0
- package/dist/views/day/DayGrid.svelte.d.ts +33 -0
- package/dist/views/day/DayTimeline.svelte +505 -0
- package/dist/views/day/DayTimeline.svelte.d.ts +4 -0
- package/dist/views/day/index.d.ts +2 -0
- package/dist/views/day/index.js +2 -0
- package/dist/views/index.d.ts +5 -0
- package/dist/views/index.js +5 -0
- package/dist/views/settings/Settings.svelte +303 -0
- package/dist/views/settings/Settings.svelte.d.ts +23 -0
- package/dist/views/settings/index.d.ts +2 -0
- package/dist/views/settings/index.js +1 -0
- package/dist/views/week/WeekGrid.svelte +594 -0
- package/dist/views/week/WeekGrid.svelte.d.ts +21 -0
- package/dist/views/week/WeekHeatmap.svelte +453 -0
- package/dist/views/week/WeekHeatmap.svelte.d.ts +4 -0
- package/dist/views/week/index.d.ts +2 -0
- package/dist/views/week/index.js +2 -0
- package/package.json +62 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
TimeGutter — shared hour labels / tick marks.
|
|
3
|
+
|
|
4
|
+
Two orientations:
|
|
5
|
+
"horizontal" — ticks along a horizontal track (for DayTimeline style)
|
|
6
|
+
"vertical" — label column along a vertical grid (for WeekTimeline style)
|
|
7
|
+
-->
|
|
8
|
+
<script lang="ts">
|
|
9
|
+
import { HOURS } from '../core/time.js';
|
|
10
|
+
import { fmtH } from '../core/locale.js';
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
orientation?: 'horizontal' | 'vertical';
|
|
14
|
+
/** Pixel size per hour (width for horizontal, height for vertical) */
|
|
15
|
+
hourSize?: number;
|
|
16
|
+
/** Show half-hour ticks (horizontal only) */
|
|
17
|
+
halfHour?: boolean;
|
|
18
|
+
/** Hours to display (default 0-23) */
|
|
19
|
+
hours?: readonly number[];
|
|
20
|
+
/** Custom hour formatter */
|
|
21
|
+
formatHour?: (h: number) => string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let {
|
|
25
|
+
orientation = 'horizontal',
|
|
26
|
+
hourSize = 120,
|
|
27
|
+
halfHour = true,
|
|
28
|
+
hours = HOURS,
|
|
29
|
+
formatHour = fmtH,
|
|
30
|
+
}: Props = $props();
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
{#if orientation === 'horizontal'}
|
|
34
|
+
<div class="tg tg-h" style="--tg-hour: {hourSize}px">
|
|
35
|
+
{#each hours as h}
|
|
36
|
+
<div class="tg-tick" style="left: {h * hourSize}px">
|
|
37
|
+
<span class="tg-label">{formatHour(h)}</span>
|
|
38
|
+
</div>
|
|
39
|
+
{#if halfHour}
|
|
40
|
+
<div class="tg-tick tg-tick-half" style="left: {(h + 0.5) * hourSize}px"></div>
|
|
41
|
+
{/if}
|
|
42
|
+
{/each}
|
|
43
|
+
</div>
|
|
44
|
+
{:else}
|
|
45
|
+
<div class="tg tg-v" style="--tg-hour: {hourSize}px">
|
|
46
|
+
{#each hours as h}
|
|
47
|
+
<div class="tg-row" style="top: {h * hourSize}px; height: {hourSize}px">
|
|
48
|
+
<span class="tg-label">{formatHour(h)}</span>
|
|
49
|
+
</div>
|
|
50
|
+
{/each}
|
|
51
|
+
</div>
|
|
52
|
+
{/if}
|
|
53
|
+
|
|
54
|
+
<style>
|
|
55
|
+
.tg {
|
|
56
|
+
position: relative;
|
|
57
|
+
pointer-events: none;
|
|
58
|
+
user-select: none;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* ── Horizontal ── */
|
|
62
|
+
.tg-h {
|
|
63
|
+
height: 100%;
|
|
64
|
+
width: calc(24 * var(--tg-hour));
|
|
65
|
+
}
|
|
66
|
+
.tg-tick {
|
|
67
|
+
position: absolute;
|
|
68
|
+
top: 0;
|
|
69
|
+
bottom: 0;
|
|
70
|
+
width: 0;
|
|
71
|
+
border-left: 1px solid var(--dt-border, rgba(148, 163, 184, 0.07));
|
|
72
|
+
}
|
|
73
|
+
.tg-tick-half {
|
|
74
|
+
border-left-style: dashed;
|
|
75
|
+
opacity: 0.4;
|
|
76
|
+
}
|
|
77
|
+
.tg-h .tg-label {
|
|
78
|
+
position: absolute;
|
|
79
|
+
top: 4px;
|
|
80
|
+
left: 6px;
|
|
81
|
+
font: 400 9px / 1 var(--dt-mono, 'SF Mono', 'Fira Code', monospace);
|
|
82
|
+
color: var(--dt-text-3, rgba(100, 116, 139, 0.55));
|
|
83
|
+
white-space: nowrap;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* ── Vertical ── */
|
|
87
|
+
.tg-v {
|
|
88
|
+
width: 48px;
|
|
89
|
+
flex-shrink: 0;
|
|
90
|
+
}
|
|
91
|
+
.tg-row {
|
|
92
|
+
position: absolute;
|
|
93
|
+
left: 0;
|
|
94
|
+
right: 0;
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: flex-start;
|
|
97
|
+
justify-content: flex-end;
|
|
98
|
+
padding: 2px 8px 0 0;
|
|
99
|
+
border-top: 1px solid var(--dt-border, rgba(148, 163, 184, 0.07));
|
|
100
|
+
}
|
|
101
|
+
.tg-v .tg-label {
|
|
102
|
+
font: 400 9px / 1 var(--dt-mono, 'SF Mono', 'Fira Code', monospace);
|
|
103
|
+
color: var(--dt-text-3, rgba(100, 116, 139, 0.55));
|
|
104
|
+
}
|
|
105
|
+
</style>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
orientation?: 'horizontal' | 'vertical';
|
|
3
|
+
/** Pixel size per hour (width for horizontal, height for vertical) */
|
|
4
|
+
hourSize?: number;
|
|
5
|
+
/** Show half-hour ticks (horizontal only) */
|
|
6
|
+
halfHour?: boolean;
|
|
7
|
+
/** Hours to display (default 0-23) */
|
|
8
|
+
hours?: readonly number[];
|
|
9
|
+
/** Custom hour formatter */
|
|
10
|
+
formatHour?: (h: number) => string;
|
|
11
|
+
}
|
|
12
|
+
declare const TimeGutter: import("svelte").Component<Props, {}, "">;
|
|
13
|
+
type TimeGutter = ReturnType<typeof TimeGutter>;
|
|
14
|
+
export default TimeGutter;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as NowIndicator } from './NowIndicator.svelte';
|
|
2
|
+
export { default as EventBlock } from './EventBlock.svelte';
|
|
3
|
+
export { default as TimeGutter } from './TimeGutter.svelte';
|
|
4
|
+
export { default as DayHeader } from './DayHeader.svelte';
|
|
5
|
+
export { default as EmptySlot } from './EmptySlot.svelte';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// ─── Primitives barrel export ───────────────────────────
|
|
2
|
+
export { default as NowIndicator } from './NowIndicator.svelte';
|
|
3
|
+
export { default as EventBlock } from './EventBlock.svelte';
|
|
4
|
+
export { default as TimeGutter } from './TimeGutter.svelte';
|
|
5
|
+
export { default as DayHeader } from './DayHeader.svelte';
|
|
6
|
+
export { default as EmptySlot } from './EmptySlot.svelte';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme presets for timeline components.
|
|
3
|
+
*
|
|
4
|
+
* Each preset is a CSS inline-style string of --dt-* custom properties.
|
|
5
|
+
* Pass to the `style` prop of any timeline component.
|
|
6
|
+
*/
|
|
7
|
+
/** Midnight Industrial — dark charcoal + red accent, tech monitoring */
|
|
8
|
+
export declare const midnight = "\n\t--dt-bg: #0b0e14;\n\t--dt-surface: #10141c;\n\t--dt-border: rgba(148, 163, 184, 0.07);\n\t--dt-border-day: rgba(148, 163, 184, 0.14);\n\t--dt-text: rgba(226, 232, 240, 0.85);\n\t--dt-text-2: rgba(148, 163, 184, 0.55);\n\t--dt-text-3: rgba(100, 116, 139, 0.55);\n\t--dt-accent: #ef4444;\n\t--dt-accent-dim: rgba(239, 68, 68, 0.18);\n\t--dt-glow: rgba(239, 68, 68, 0.35);\n\t--dt-today-bg: rgba(239, 68, 68, 0.02);\n\t--dt-btn-text: #fff;\n\t--dt-scrollbar: rgba(148, 163, 184, 0.12);\n\t--dt-success: rgba(74, 222, 128, 0.7);\n\t--dt-serif: Georgia, 'Times New Roman', serif;\n\t--dt-hm-empty: rgba(80, 80, 120, 0.06);\n\t--dt-hm-low: rgba(239, 68, 68, 0.15);\n\t--dt-hm-mid: rgba(239, 68, 68, 0.3);\n\t--dt-hm-high: rgba(239, 68, 68, 0.5);\n\t--dt-hm-max: rgba(239, 68, 68, 0.72);\n";
|
|
9
|
+
/** Desert Parchment — warm analog planner, burnt sienna on aged paper */
|
|
10
|
+
export declare const parchment = "\n\t--dt-bg: #f0e9dd;\n\t--dt-surface: #e8dfd0;\n\t--dt-border: rgba(139, 110, 70, 0.12);\n\t--dt-border-day: rgba(139, 110, 70, 0.22);\n\t--dt-text: rgba(55, 40, 22, 0.88);\n\t--dt-text-2: rgba(110, 85, 52, 0.62);\n\t--dt-text-3: rgba(139, 110, 70, 0.42);\n\t--dt-accent: #b85c2f;\n\t--dt-accent-dim: rgba(184, 92, 47, 0.14);\n\t--dt-glow: rgba(184, 92, 47, 0.25);\n\t--dt-today-bg: rgba(184, 92, 47, 0.04);\n\t--dt-btn-text: #fdf6ee;\n\t--dt-scrollbar: rgba(139, 110, 70, 0.15);\n\t--dt-success: rgba(76, 153, 76, 0.7);\n\t--dt-serif: Georgia, 'Times New Roman', serif;\n\t--dt-mono: 'Courier New', 'Courier', monospace;\n\t--dt-sans: 'Outfit', Georgia, serif;\n\t--dt-hm-empty: rgba(139, 110, 70, 0.06);\n\t--dt-hm-low: rgba(184, 92, 47, 0.15);\n\t--dt-hm-mid: rgba(184, 92, 47, 0.3);\n\t--dt-hm-high: rgba(184, 92, 47, 0.5);\n\t--dt-hm-max: rgba(184, 92, 47, 0.72);\n";
|
|
11
|
+
/** Soft Indigo — calm productivity, muted lavender with indigo markers */
|
|
12
|
+
export declare const indigo = "\n\t--dt-bg: #f7f6fc;\n\t--dt-surface: #eeedf8;\n\t--dt-border: rgba(99, 102, 241, 0.08);\n\t--dt-border-day: rgba(99, 102, 241, 0.14);\n\t--dt-text: rgba(30, 27, 55, 0.82);\n\t--dt-text-2: rgba(75, 70, 120, 0.55);\n\t--dt-text-3: rgba(99, 102, 241, 0.3);\n\t--dt-accent: #6366f1;\n\t--dt-accent-dim: rgba(99, 102, 241, 0.12);\n\t--dt-glow: rgba(99, 102, 241, 0.25);\n\t--dt-today-bg: rgba(99, 102, 241, 0.03);\n\t--dt-btn-text: #fff;\n\t--dt-scrollbar: rgba(99, 102, 241, 0.1);\n\t--dt-success: rgba(34, 197, 94, 0.7);\n\t--dt-serif: Georgia, 'Times New Roman', serif;\n\t--dt-sans: 'Outfit', system-ui, sans-serif;\n\t--dt-hm-empty: rgba(99, 102, 241, 0.04);\n\t--dt-hm-low: rgba(99, 102, 241, 0.12);\n\t--dt-hm-mid: rgba(99, 102, 241, 0.28);\n\t--dt-hm-high: rgba(99, 102, 241, 0.48);\n\t--dt-hm-max: rgba(99, 102, 241, 0.7);\n";
|
|
13
|
+
/** All available presets keyed by name */
|
|
14
|
+
export declare const presets: {
|
|
15
|
+
readonly midnight: "\n\t--dt-bg: #0b0e14;\n\t--dt-surface: #10141c;\n\t--dt-border: rgba(148, 163, 184, 0.07);\n\t--dt-border-day: rgba(148, 163, 184, 0.14);\n\t--dt-text: rgba(226, 232, 240, 0.85);\n\t--dt-text-2: rgba(148, 163, 184, 0.55);\n\t--dt-text-3: rgba(100, 116, 139, 0.55);\n\t--dt-accent: #ef4444;\n\t--dt-accent-dim: rgba(239, 68, 68, 0.18);\n\t--dt-glow: rgba(239, 68, 68, 0.35);\n\t--dt-today-bg: rgba(239, 68, 68, 0.02);\n\t--dt-btn-text: #fff;\n\t--dt-scrollbar: rgba(148, 163, 184, 0.12);\n\t--dt-success: rgba(74, 222, 128, 0.7);\n\t--dt-serif: Georgia, 'Times New Roman', serif;\n\t--dt-hm-empty: rgba(80, 80, 120, 0.06);\n\t--dt-hm-low: rgba(239, 68, 68, 0.15);\n\t--dt-hm-mid: rgba(239, 68, 68, 0.3);\n\t--dt-hm-high: rgba(239, 68, 68, 0.5);\n\t--dt-hm-max: rgba(239, 68, 68, 0.72);\n";
|
|
16
|
+
readonly parchment: "\n\t--dt-bg: #f0e9dd;\n\t--dt-surface: #e8dfd0;\n\t--dt-border: rgba(139, 110, 70, 0.12);\n\t--dt-border-day: rgba(139, 110, 70, 0.22);\n\t--dt-text: rgba(55, 40, 22, 0.88);\n\t--dt-text-2: rgba(110, 85, 52, 0.62);\n\t--dt-text-3: rgba(139, 110, 70, 0.42);\n\t--dt-accent: #b85c2f;\n\t--dt-accent-dim: rgba(184, 92, 47, 0.14);\n\t--dt-glow: rgba(184, 92, 47, 0.25);\n\t--dt-today-bg: rgba(184, 92, 47, 0.04);\n\t--dt-btn-text: #fdf6ee;\n\t--dt-scrollbar: rgba(139, 110, 70, 0.15);\n\t--dt-success: rgba(76, 153, 76, 0.7);\n\t--dt-serif: Georgia, 'Times New Roman', serif;\n\t--dt-mono: 'Courier New', 'Courier', monospace;\n\t--dt-sans: 'Outfit', Georgia, serif;\n\t--dt-hm-empty: rgba(139, 110, 70, 0.06);\n\t--dt-hm-low: rgba(184, 92, 47, 0.15);\n\t--dt-hm-mid: rgba(184, 92, 47, 0.3);\n\t--dt-hm-high: rgba(184, 92, 47, 0.5);\n\t--dt-hm-max: rgba(184, 92, 47, 0.72);\n";
|
|
17
|
+
readonly indigo: "\n\t--dt-bg: #f7f6fc;\n\t--dt-surface: #eeedf8;\n\t--dt-border: rgba(99, 102, 241, 0.08);\n\t--dt-border-day: rgba(99, 102, 241, 0.14);\n\t--dt-text: rgba(30, 27, 55, 0.82);\n\t--dt-text-2: rgba(75, 70, 120, 0.55);\n\t--dt-text-3: rgba(99, 102, 241, 0.3);\n\t--dt-accent: #6366f1;\n\t--dt-accent-dim: rgba(99, 102, 241, 0.12);\n\t--dt-glow: rgba(99, 102, 241, 0.25);\n\t--dt-today-bg: rgba(99, 102, 241, 0.03);\n\t--dt-btn-text: #fff;\n\t--dt-scrollbar: rgba(99, 102, 241, 0.1);\n\t--dt-success: rgba(34, 197, 94, 0.7);\n\t--dt-serif: Georgia, 'Times New Roman', serif;\n\t--dt-sans: 'Outfit', system-ui, sans-serif;\n\t--dt-hm-empty: rgba(99, 102, 241, 0.04);\n\t--dt-hm-low: rgba(99, 102, 241, 0.12);\n\t--dt-hm-mid: rgba(99, 102, 241, 0.28);\n\t--dt-hm-high: rgba(99, 102, 241, 0.48);\n\t--dt-hm-max: rgba(99, 102, 241, 0.7);\n";
|
|
18
|
+
};
|
|
19
|
+
export type PresetName = keyof typeof presets;
|
|
20
|
+
/**
|
|
21
|
+
* Stage background color matching each theme.
|
|
22
|
+
* Useful for the container behind the timeline component.
|
|
23
|
+
*/
|
|
24
|
+
export declare const stageBg: Record<PresetName, string>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme presets for timeline components.
|
|
3
|
+
*
|
|
4
|
+
* Each preset is a CSS inline-style string of --dt-* custom properties.
|
|
5
|
+
* Pass to the `style` prop of any timeline component.
|
|
6
|
+
*/
|
|
7
|
+
/** Midnight Industrial — dark charcoal + red accent, tech monitoring */
|
|
8
|
+
export const midnight = `
|
|
9
|
+
--dt-bg: #0b0e14;
|
|
10
|
+
--dt-surface: #10141c;
|
|
11
|
+
--dt-border: rgba(148, 163, 184, 0.07);
|
|
12
|
+
--dt-border-day: rgba(148, 163, 184, 0.14);
|
|
13
|
+
--dt-text: rgba(226, 232, 240, 0.85);
|
|
14
|
+
--dt-text-2: rgba(148, 163, 184, 0.55);
|
|
15
|
+
--dt-text-3: rgba(100, 116, 139, 0.55);
|
|
16
|
+
--dt-accent: #ef4444;
|
|
17
|
+
--dt-accent-dim: rgba(239, 68, 68, 0.18);
|
|
18
|
+
--dt-glow: rgba(239, 68, 68, 0.35);
|
|
19
|
+
--dt-today-bg: rgba(239, 68, 68, 0.02);
|
|
20
|
+
--dt-btn-text: #fff;
|
|
21
|
+
--dt-scrollbar: rgba(148, 163, 184, 0.12);
|
|
22
|
+
--dt-success: rgba(74, 222, 128, 0.7);
|
|
23
|
+
--dt-serif: Georgia, 'Times New Roman', serif;
|
|
24
|
+
--dt-hm-empty: rgba(80, 80, 120, 0.06);
|
|
25
|
+
--dt-hm-low: rgba(239, 68, 68, 0.15);
|
|
26
|
+
--dt-hm-mid: rgba(239, 68, 68, 0.3);
|
|
27
|
+
--dt-hm-high: rgba(239, 68, 68, 0.5);
|
|
28
|
+
--dt-hm-max: rgba(239, 68, 68, 0.72);
|
|
29
|
+
`;
|
|
30
|
+
/** Desert Parchment — warm analog planner, burnt sienna on aged paper */
|
|
31
|
+
export const parchment = `
|
|
32
|
+
--dt-bg: #f0e9dd;
|
|
33
|
+
--dt-surface: #e8dfd0;
|
|
34
|
+
--dt-border: rgba(139, 110, 70, 0.12);
|
|
35
|
+
--dt-border-day: rgba(139, 110, 70, 0.22);
|
|
36
|
+
--dt-text: rgba(55, 40, 22, 0.88);
|
|
37
|
+
--dt-text-2: rgba(110, 85, 52, 0.62);
|
|
38
|
+
--dt-text-3: rgba(139, 110, 70, 0.42);
|
|
39
|
+
--dt-accent: #b85c2f;
|
|
40
|
+
--dt-accent-dim: rgba(184, 92, 47, 0.14);
|
|
41
|
+
--dt-glow: rgba(184, 92, 47, 0.25);
|
|
42
|
+
--dt-today-bg: rgba(184, 92, 47, 0.04);
|
|
43
|
+
--dt-btn-text: #fdf6ee;
|
|
44
|
+
--dt-scrollbar: rgba(139, 110, 70, 0.15);
|
|
45
|
+
--dt-success: rgba(76, 153, 76, 0.7);
|
|
46
|
+
--dt-serif: Georgia, 'Times New Roman', serif;
|
|
47
|
+
--dt-mono: 'Courier New', 'Courier', monospace;
|
|
48
|
+
--dt-sans: 'Outfit', Georgia, serif;
|
|
49
|
+
--dt-hm-empty: rgba(139, 110, 70, 0.06);
|
|
50
|
+
--dt-hm-low: rgba(184, 92, 47, 0.15);
|
|
51
|
+
--dt-hm-mid: rgba(184, 92, 47, 0.3);
|
|
52
|
+
--dt-hm-high: rgba(184, 92, 47, 0.5);
|
|
53
|
+
--dt-hm-max: rgba(184, 92, 47, 0.72);
|
|
54
|
+
`;
|
|
55
|
+
/** Soft Indigo — calm productivity, muted lavender with indigo markers */
|
|
56
|
+
export const indigo = `
|
|
57
|
+
--dt-bg: #f7f6fc;
|
|
58
|
+
--dt-surface: #eeedf8;
|
|
59
|
+
--dt-border: rgba(99, 102, 241, 0.08);
|
|
60
|
+
--dt-border-day: rgba(99, 102, 241, 0.14);
|
|
61
|
+
--dt-text: rgba(30, 27, 55, 0.82);
|
|
62
|
+
--dt-text-2: rgba(75, 70, 120, 0.55);
|
|
63
|
+
--dt-text-3: rgba(99, 102, 241, 0.3);
|
|
64
|
+
--dt-accent: #6366f1;
|
|
65
|
+
--dt-accent-dim: rgba(99, 102, 241, 0.12);
|
|
66
|
+
--dt-glow: rgba(99, 102, 241, 0.25);
|
|
67
|
+
--dt-today-bg: rgba(99, 102, 241, 0.03);
|
|
68
|
+
--dt-btn-text: #fff;
|
|
69
|
+
--dt-scrollbar: rgba(99, 102, 241, 0.1);
|
|
70
|
+
--dt-success: rgba(34, 197, 94, 0.7);
|
|
71
|
+
--dt-serif: Georgia, 'Times New Roman', serif;
|
|
72
|
+
--dt-sans: 'Outfit', system-ui, sans-serif;
|
|
73
|
+
--dt-hm-empty: rgba(99, 102, 241, 0.04);
|
|
74
|
+
--dt-hm-low: rgba(99, 102, 241, 0.12);
|
|
75
|
+
--dt-hm-mid: rgba(99, 102, 241, 0.28);
|
|
76
|
+
--dt-hm-high: rgba(99, 102, 241, 0.48);
|
|
77
|
+
--dt-hm-max: rgba(99, 102, 241, 0.7);
|
|
78
|
+
`;
|
|
79
|
+
/** All available presets keyed by name */
|
|
80
|
+
export const presets = { midnight, parchment, indigo };
|
|
81
|
+
/**
|
|
82
|
+
* Stage background color matching each theme.
|
|
83
|
+
* Useful for the container behind the timeline component.
|
|
84
|
+
*/
|
|
85
|
+
export const stageBg = {
|
|
86
|
+
midnight: '#080a0f',
|
|
87
|
+
parchment: '#e4dace',
|
|
88
|
+
indigo: '#efedf8',
|
|
89
|
+
};
|