summaryrefslogtreecommitdiffhomepage
path: root/.rules/plan/calendar-phase-5.md
blob: d4caf53ccfba6226408f345818dbaeb9156131bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Phase 5: Settings Integration (`src/calendar/calendar-settings.ts` + `src/settings.ts`)

**Status:** Not started
**Depends on:** Nothing (can be implemented independently, but wired in Phase 6)
**Output files:** `src/calendar/calendar-settings.ts`, modifications to `src/settings.ts`

---

## Overview

Add calendar-specific settings to the plugin's settings interface and settings UI.

---

## New Settings Fields

Add to `AIPulseSettings` interface in `src/settings.ts`:

```
- calendarRootFolder: string (default: "Calendar")
- calendarConfirmBeforeCreate: boolean (default: true)
- calendarWeekStart: "locale" | "sunday" | "monday" | ... (default: "locale")
- calendarShowWeekNumbers: boolean (default: false)
- calendarShowWeekNumbersRight: boolean (default: false) — from fork: option to display week numbers on the right side
- calendarShowQuarter: boolean (default: false) — from fork: toggle quarter display (Q1–Q4)
- calendarCtrlClickOpensInNewTab: boolean (default: false) — from fork: Ctrl+Click opens in new tab instead of new split
- calendarShowWordCountDots: boolean (default: true)
- calendarWordsPerDot: number (default: 250)
- calendarDailyNoteTemplate: string (default: "")
```

---

## Settings UI (`CalendarSettingsSection`)

In `src/calendar/calendar-settings.ts`, create a function or class that adds a "Calendar" section to the settings modal:

- Root folder picker (text field)
- Week start dropdown
- Confirm before create toggle
- Ctrl+Click behavior dropdown ("Open in new tab" vs "Open in new split") — from fork
- Show week numbers toggle
- Show week numbers on right side toggle — from fork
- Show quarter toggle — from fork
- Word count dots toggle + words per dot number
- Daily note template path (text field)

---

## Notes

- Settings must be added to the default settings object so existing users get sane defaults on upgrade.
- The settings UI section should be visually grouped under a "Calendar" heading in the settings tab.
- The template path field should accept a vault-relative path to a markdown file.