Commit Graph

129 Commits

Author SHA1 Message Date
6ccf61f09a feat: AnyDay tab edit via double-click; remove pencil icons; fix active tab style
CSS:
- Active tab no longer shows accent underline; instead border-bottom matches
  the someday area bg (#f9f9f9 / #1a1a1b dark), creating a raised browser-tab
  look where the active tab visually merges with the content below
- margin-bottom: -1px to cover the tab bar border-bottom on active tab

JSX:
- Double-click on any tab now opens TabVisualsPopover (edit tab)
- Pencil icon and dissolve-X button removed from tab wrappers
- TabVisualsPopover extended with: rename input, dissolve button
  (dissolve removes the tab grouping; lists are kept)
- onRename and onDissolve props added to TabVisualsPopover

v1.107.3
2026-05-11 10:49:43 +02:00
85912beb4b style: AnyDay tabs — white background on all tabs, rounded-top browser-tab style
Inactive: white bg, subtle border, rounded top corners (6px 6px 0 0)
Active: same white bg + 3px accent-colored bottom border
Tab bar: align-items flex-end + 1px border-bottom so tabs sit flush

v1.107.2
2026-05-11 10:26:10 +02:00
50aa310a2d feat(design): AnyDay area polish — tabs, cards, flyout menu
CSS:
- .weekly-someday padding: 0 (no left/right border bleed)
- .someday-tabs-bar: removed border-bottom + bg, padding 0 12px
- Tabs: underline-style (border-bottom: 3px accent on active), transparent
  bg — active tab visually merges with someday area
- Active count badge: accent-tinted instead of white-on-blue
- .weekly-someday-list: 300px wide (restored from 240px)
- .task-list-slot: min-height instead of fixed height + top/bottom padding
  so two-line tasks expand properly instead of being clipped

JSX:
- Combined provider icon + tab-assign + edit-style + delete into a single
  flyout menu per card header (trigger = provider icon if synced, else pencil)
- Flyout: "Open in Google/Apple/…", "Assign to tab", "Edit style", "Delete"
- Added menuOpenListId state to track open flyout

v1.107.1
2026-05-11 10:16:21 +02:00
f0df18c853 feat(design): redesign AnyDay/Someday area — pill tabs + card layout
Tabs:
- Pill-shaped tabs (border-radius: 20px) with proper background on inactive
- Inactive tabs now use readable dark text (--weekly-text) instead of
  barely-visible --weekly-text-light
- Active tab: accent color + white text + glow shadow (box-shadow)
- Count badges: larger, higher contrast, 700 font-weight
- Tab bar: taller padding (8px), thicker bottom border (2px)

Cards:
- Rounded corners (10px), border + subtle drop shadow
- Cards now 240px wide (was 300px) for better density
- Grid padding changed from padding-bottom only to full 12px padding
- List header has subtle tinted background + reduced height (48px)
- Title font tweaked to 0.85rem/700 (was 1.15rem/800) to match card size
- Add-task button padding aligned to card edges (12px horizontal)
- Removed p-2 Tailwind class that was double-padding the card

v1.107.0
2026-05-11 09:45:16 +02:00
6f610ac669 feat(design): app shell + header + corner buttons
Trim desktop header height (py-2 → py-1.5) and switch border to --line
token. Update .weekly-header CSS class to use --line. Add baseline
letter-spacing: -0.005em to body. No logic, structure, or API changes.

v1.105.1
2026-05-10 14:08:26 +02:00
f54dde3689 feat(design): add v2 design tokens
Add --ink-*, --accent, --line, --bg, --paper, --tasks-bg, calendar-source
event palette, and all-day chip palette as CSS custom properties. Tokens
alias existing --weekly-* vars where a match exists so no existing styles
are affected. Also adds docs/design/ to .gitignore.

v1.105.0
2026-05-10 14:06:15 +02:00
8ffb6a0690 feat: accessibility follow-up — heading hierarchy, keyboard resize, contrast fix
- Fix heading hierarchy: modal titles h3→h2 (RecurrenceModal, two WeeklyView dialogs),
  SettingsSidebar h4→h3 for Localisation, Data Export, Backup & Restore sections
- Add keyboard resize handle: role=slider, tabIndex, aria-valuemin/max/now/text,
  ArrowUp/Down keys to adjust task duration in 15-min increments
- Add aria-label to CalendarEventModal notes textarea fallback
- Color contrast: raise --weekly-text-light from #a6a6a7 (~2.4:1) to #767676 (~4.5:1)
  on white background to meet WCAG AA

v1.86.0
2026-04-06 00:25:08 +02:00
076211720f fix: hide redundant weekday header when selected-day header + single column
When the active header display is 'current_day' (selected day) AND
viewDays === 1, the in-column weekday header duplicates the information
already shown in the top header bar. Added 'header-current-day-single'
class to the container under that condition, then CSS display:none on
.weekly-day-header. With multiple columns visible the header is shown
normally so each day column is still identifiable.

v1.81.9
2026-04-02 10:31:47 +02:00
676c5612ed fix: 4 mobile issues — slot indicator, view days, list header, scroll sync
1. cellDuration indicator: compare against local `cellDuration` state
   (not effectiveCellDuration which reads stale profile.cellDuration
   since saveSetting bails early for DEVICE_SETTINGS_KEYS)

2. viewDays on mobile now uses orientation instead of fixed width:
   portrait (h > w) → 1 day, landscape → 3 days, for ≤768px.
   Applied consistently in useEffect, early profile load, and cookie
   override blocks so the responsive value is never overridden by
   the saved DB preference on mobile.

3. list-view day header on mobile: changed from sticky to
   position:relative so it flows with content and never covers tasks

4. time/day column scroll sync: weekly-days-grid was overflow-y:auto
   on mobile, creating an independent scroll container that drifted
   from the time column. Changed to overflow-y:visible so only
   time-grid-wrapper scrolls. Added touch-action:pan-y to day columns
   so iOS handles pan immediately without waiting for JS.

v1.81.7
2026-04-02 09:29:48 +02:00
5ee99d6d2f fix: list-view day header overlapping tasks on mobile
- Added solid background to .list-view .weekly-day-header so tasks
  don't bleed through the transparent sticky header while scrolling
- On mobile, offset sticky top by 48px + safe-area-inset to sit
  below the mobile header bar instead of overlapping it

v1.81.6
2026-04-01 20:31:20 +02:00
6b292f8d07 fix: remove sticky weekday header inside scroll area on mobile
The .time-grid-wrapper .weekly-day-header was set to position:sticky, causing
the day name (MITTWOCH 1. APR.) to appear as a ghost header while scrolling.
The correct sticky element on mobile is the existing day-bar overlay (DO 2.4.)
at the top. Reverted .weekly-day-header to position:relative.

v1.77.6
2026-03-29 16:40:16 +02:00
4c1ef5019e fix: iOS scroll blocked by enforcement interval + missing touch-action on slots
Three root causes fixed:

1. Scroll enforcement interval (every 50ms for 2s) was the main blocker:
   The setInterval forced gridRef.scrollTop on every frame, making iOS think
   the page was always scrolling programmatically. User touches during those
   2 seconds were overridden. The header appeared 'stuck' because the view
   was frozen. Replaced with a single setTimeout scroll (300ms on first load,
   50ms on subsequent). Added history.scrollRestoration='manual' so Safari
   doesn't fight us with scroll position restoration.

2. touch-action: pan-y was only on .time-grid-wrapper — NOT inherited by CSS.
   Slot child elements had touch-action: auto (default), so iOS still waited
   for JS before committing scroll on day column touches. Added touch-action:
   pan-y directly to .time-slots-container (the actual touched element area).
   Time column labels have no JS handlers so iOS scrolled them freely — this
   explains why time column worked but day columns didn't.

3. align-items: start on .weekly-days-grid was wrong (added in last commit).
   Removed — CSS grid default stretch is correct.

v1.77.4
2026-03-29 16:14:53 +02:00
aef7c291b4 fix: iOS scroll + sticky day headers — remove React onTouchStart from slots
Root cause: React registers onTouchStart props as non-passive listeners at the
app root. iOS Safari sees any non-passive touchstart on an ancestor and blocks
the scroll gesture on those elements, waiting for JS to finish. This is why
the time column (no handlers) scrolled freely but day columns (slots had
onTouchStart) were frozen.

Changes:
- Removed onTouchStart prop from all time-slot divs — no more React touch
  handlers in the time grid, so iOS never blocks scroll
- Added data-slot-blocked attribute to occupied/protected slots
- Moved slot long-press logic into the permanent native touchstart listener
  on document (passive: true), reading slot/date from data attributes
- Added touch-action: pan-y on .time-grid-wrapper — explicitly tells iOS
  that vertical pan = scroll even if child content has touch handlers
- CSS: align-items: start on .weekly-days-grid so sticky headers in each
  day column have a proper scroll context
- Reinforced position:sticky on .time-grid-wrapper .weekly-day-header

v1.77.3
2026-03-29 15:58:18 +02:00
a3a55c9575 fix: day columns were blocking scroll on iOS — remove overflow-y from time-slots-container
.time-slots-container and .time-column-slots had overflow-y: auto which created
independent scroll contexts inside each day column, eating touch events and
preventing the parent time-grid-wrapper from scrolling.

v1.77.1
2026-03-29 15:25:21 +02:00
bf61733317 fix: eliminate iOS scroll bounce by using single scroll container for time grid
The time grid previously had two separate overflow-y:auto scroll containers
(the time-column labels + the day columns grid), synced via JS scrollTop
assignment. On iOS Safari, this caused severe desync and bounce effects:
momentum scroll continued after touch-end, and the programmatic scrollTop
correction fought against native momentum, making the grid stutter/bounce.

Changes:
- time-grid-wrapper is now the SINGLE overflow-y:auto scroll container
  (ref=gridRef, onScroll handler moved here from weekly-days-grid)
- time-column and weekly-days-grid have overflow:visible — they scroll
  with their parent wrapper without fighting each other
- Removed handleTimeColumnScroll, timeColumnRef, timeGridWrapperRef
  (all sync logic now redundant)
- jumpToHour and initial scroll position now set only gridRef.scrollTop
- CSS: weekly-days-grid overflow changed to visible
- CSS: re-enabled position:sticky on .weekly-day-header for mobile —
  sticky now works correctly since scroll container is an overflow-y parent
- CSS: hid time-column-header on mobile (saves vertical space)

v1.76.2
2026-03-29 11:32:47 +02:00
d8c30cdb1f fix: double event on recurring create + mobile sticky day bar
- Skip optimistic UI update for new recurring events (causes duplicate
  when force-sync fetches expanded instances with different IDs)
- Mobile sticky day bar: listen on gridRef scroll instead of window
  (time-grid scrolls inside weekly-days-grid, not window)
- Remove broken position:sticky from mobile day headers (CSS sticky
  doesn't work inside CSS grid scroll containers); use fixed overlay only
- Also propagate isRecurring flag in create response for Google/Outlook

v1.75.8

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 09:34:09 +02:00
de3b4a103e fix: show midnight hour label without shifting task positions
Remove translateY on first time-slot-label only (via :first-child) instead
of adding padding-top which broke task alignment. Reverts padding approach.

v1.75.6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 11:16:08 +01:00
b126328536 fix: show midnight "0" hour label - was clipped above scroll area
The first time-slot label's translateY(-50%) pushed it above the container
top edge. Added padding-top to time-column-slots and time-slots-container,
and disabled the translate on the first label. Reverted 00→0.

v1.75.5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 11:06:03 +01:00
245fed5f81 fix: match event font to task font (family, size, weight)
Calendar events now use --weekly-task-font, --weekly-task-size,
and --weekly-task-weight instead of separate event font variables,
so events and tasks always look consistent.

v1.74.5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 12:57:34 +01:00
8926fe27c2 fix: restore sticky day headers on mobile in simple view
overflow-x: hidden on .simple-view .weekly-day-column was creating a
scrolling context that broke position: sticky on the day header.
Changed to overflow-x: clip which clips content without affecting sticky.

v1.73.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 02:57:11 +01:00
08959c6ddb feat: drag-to-create calendar events, fix rolling tasks, fix Outlook recurring
- Drag on empty time slots to create calendar events with pre-filled time range
- Rolling tasks now work per-task without requiring global autoRolling setting
- Add firstDayOfWeek to Outlook weekly recurrence patterns
- Add debug logging for Outlook recurrence creation

v1.72.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 01:56:16 +01:00
da2ebbedb5 feat: show location in events, fix HTML in notes, fix CalDAV TZID, reduce collapsed all-day space
- Strip HTML tags from descriptions before sending to CalDAV providers (Apple/Synology)
- Show event location underneath time in calendar event blocks (like Google Calendar)
- Fix German umlaut rendering by adding latin-ext font subset
- Fix CalDAV event updates losing TZID on DTSTART/DTEND (Apple Calendar recurring edit fix)
- Add error logging for CalDAV PUT responses
- Reduce wasted space when all-day events section is collapsed (24px max)
- Fix quotes with missing umlauts (ä, ö, ü, ß)

v1.71.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:14:21 +01:00
1e789d93ae feat: cross-day drag, note icon, Google recurring fix, no popup on drag
- Fix Google recurring events missing isRecurring flag (recurringEventId
  was not mapped from Google API response)
- Add note icon (FileText) on events with descriptions, tooltip on hover
- Cross-day drag-and-drop: detect day column under cursor and shift date
- Fix event detail popup opening after drag/resize by setting ref before
  async operations
- Add data-date attribute to day columns for drag target detection
- Use CSS class for icon row layout to prevent overlap

v1.67.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 12:03:33 +01:00
13de53fe0a feat: drag-to-move and resize handles for calendar events
Add resize handles (top/bottom) on hover to change event duration, and
drag-to-move support with live preview and 5-minute snapping. Includes
3px dead zone to distinguish clicks from drags, optimistic UI updates
with server rollback on failure, and recurring/provider icons on
time-grid events. Also fixes Google delete 410 Gone and Outlook delete
404/encodeURIComponent issues.

v1.66.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 11:35:01 +01:00
c040dd982d fix: remove CSS left/right overrides preventing side-by-side events
The base .time-slot-event and .simple-view .time-slot-event CSS had
left: 0 and right: 0 (with !important) which overrode the inline
overlap layout positioning. Removed so events can be placed side by
side when they overlap.

v1.65.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 11:16:46 +01:00
fb7484c357 fix: CalDAV TZID parsing + recurring event icon on all providers
- Add icalTimeToUtcDate() helper to Apple/Synology parsers that
  correctly converts ICAL.Time with unresolved TZIDs to UTC dates
  (fixes +1h shift on Synology/Apple recurring events across DST)
- Add recurring icon (Repeat) to bottom-right of all calendar event
  blocks when event.isRecurring is true

v1.63.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 10:24:38 +01:00
3da2acadf1 fix: project picker dropdown stays visible and above other tasks
Add picker-open class when project picker is shown to keep task-actions
visible even when mouse leaves the task hover area. Elevate z-index on
picker-open tasks so the dropdown isn't obscured by adjacent tasks.

v1.57.15
2026-03-23 10:28:17 +01:00
f4451bf011 style: compact day header spacing
Reduce day header padding and tighten line-height on date/weekday elements.

v1.57.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 22:13:16 +01:00
ee4b540558 feat: add Notion provider integration + Apple Reminders deprecation note
- Notion OAuth integration: start/callback routes, calendar-events dispatch,
  CRUD operations (create/update/delete via Notion API)
- New notion-calendar.ts provider library with database discovery
- Onboarding wizard: expanded to 6 steps (header/tasks/display design),
  improved preview fidelity, universal dummy content, Notion in connect step
- Apple Calendar: label changed to "events only", added warning that
  Reminders are unsupported since iOS 13 (no CalDAV/API from Apple)
- Fixed 12h time format on now-line, wizard settings apply on completion

v1.57.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 21:02:25 +01:00
4ac73d3e03 feat: onboarding wizard for first-time users + UI fixes
- 6-step onboarding wizard (welcome, language, connect providers,
  view style, work hours, styling) for new signups
- Added hasCompletedOnboarding field to User schema
- Fixed subtask progress bar in GridTaskBlock (simple/calendar views)
- Fixed kanban drag-and-drop to someday area
- Fixed weather/provider icon overlap in time grid tasks
- Provider icon positioning: inline when weather on, top-right when off

v1.56.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 13:52:29 +01:00
1f90526b5b fix: improved subtask expand/collapse in calendar and kanban views
Kanban cards now have inline subtask expand/collapse with progress bar,
chevron toggle, and checkbox list. Calendar view subtask badge updated
to match with ChevronDown icon, highlight when expanded, and wider
progress bar. Consistent UX across both views.

v1.55.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 08:34:43 +01:00
22a193180b fix: kanban detail modal footer layout - delete left, OK/Cancel right
Move trash icon to lower-left corner, add OK and Cancel buttons
in the lower-right corner.

v1.55.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 08:29:25 +01:00
ca7911c7ef feat: kanban card detail modal with full task editing
Click any kanban card to open a Trello-style detail modal with:
- Title editing
- Project assignment with dropdown
- Kanban stage selector
- Due date picker
- Someday list assignment
- Markdown notes editor
- Subtask management (add, toggle, edit, delete)
- Task deletion
Responsive design: slides up as bottom sheet on mobile.

v1.55.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 22:31:10 +01:00
265eac6f89 feat: inline kanban stage editing, remove from settings sidebar
- Column headers are now editable: click the name to rename, click
  the color dot to change color, hover to reveal delete button
- "+" column at the end to add new stages
- Removed kanban stages section from settings sidebar

v1.48.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:44:56 +01:00
2ca9503944 fix: restore hour/sub-hour label styling in calendar view
The calendar-view time-slot-label override was clobbering the
hour-start font-weight and sub-hour font-size. Now properly
differentiates hour labels (bolder) from sub-hour labels (smaller,
lighter).

v1.47.5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:41:01 +01:00
a51f085ee5 style: adjust calendar and simple view spacing per user tweaks
- Calendar: 4px column margin, margin-top:0 on hour-start slots
- Simple: restore hour-start border, add 10px horizontal column margins

v1.47.4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:35:29 +01:00
1a9a2dd585 fix: restore time column in simple view and refine TeuxDeux styling
- Remove display:none on time column so it shows again
- Remove all time-slot grid lines for a cleaner look
- Remove vertical column borders (no right borders)
- Bold uppercase headers with subtle bottom border
- Cleaner task items with more padding

v1.47.3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:20:48 +01:00
959efc725b fix: remove half-hour lines in calendar view for cleaner Google Calendar look
Only show horizontal grid lines at full hour boundaries, matching
the clean Google Calendar aesthetic from the reference screenshot.

v1.47.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:19:30 +01:00
43f05160c5 fix: merge kanban filter bar and project chips into single row
Put + icon (create project) on far left, followed by project drop
chips, then a spacer, then search/filters on the right — all in
one unified toolbar row.

v1.47.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:16:02 +01:00
855760e39c feat: kanban drag fix, project targets, calendar/simple view polish
- Fix kanban drag: remove confusing card tilt, ensure dragOver always
  calls preventDefault so drops work reliably across all browsers
- Add project drop targets bar in kanban: drag tasks onto project chips
  to assign/unassign projects
- Add "Create Project" button to kanban filter bar
- Right-align kanban filter bar
- Use ProjectIcon (FontAwesome) in kanban cards instead of raw emoji
- Calendar view: Google Calendar-inspired styling (subtle grid lines,
  smaller time labels, cleaner borders)
- Simple view: TeuxDeux-inspired styling (uppercase headers, thick
  bottom border, flat borderless task items, minimal aesthetic)

v1.47.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:10:38 +01:00
c84fd4c60e feat: mobile UX polish — FA icons, weather fix, header swap, sticky fix
- Replace emoji project icons with FontAwesome solid icons (46 icons)
  with proper icon picker grid and legacy emoji fallback
- Fix weather temperature unreadable on mobile (white on white) by
  adding explicit dark/light color
- Fix weekday sticky header on mobile: correct top offset for
  time-grid scroll container, use overflow-x: clip to not break sticky
- Swap mobile header: quick settings (PanelLeftOpen) on left,
  burger menu (settings) on right, remove search icon (available
  in left sidebar)

v1.46.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 23:57:55 +01:00
183fd6ea48 feat: reorganize mobile UX — projects sidebar, left quick actions, sticky fix
- Create dedicated Projects sidebar (separate from settings) with full
  CRUD, emoji picker, and dark mode support
- Move all quick actions (nav, search, jump to date, calendar event,
  recurring tasks, goal, focus, dark mode, view/days/slot/hours,
  undo/redo/refresh) from right settings sidebar to left quick settings
- Remove projects tab from settings — all project management via sidebar
- Fix iPhone sticky headers: time-column-header no longer sticky on
  mobile, weekly-day-header remains sticky

v1.45.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 22:57:00 +01:00
0248cfbb6c feat: add responsive header with overflow menu for tablet
Desktop shows all action buttons inline. On tablet (≤1024px), secondary
actions collapse into a dropdown overflow menu with proper touch targets,
dark mode support, and fade-in animation.

v1.42.0
2026-03-17 10:55:52 +01:00
18da568b9f feat: transform mobile FAB into quick action menu
FAB now opens a fan menu with 4 options instead of directly adding tasks:
- Task: opens the existing bottom sheet for quick task entry
- Event: opens the calendar event modal
- Focus: enters focus mode
- Search: opens search modal

FAB rotates to X when menu is open, backdrop dismisses on tap.
Each menu item has a colored icon bubble with label.

v1.41.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:50:12 +01:00
2d386362ca style: redesign subtask and notes inline UI
- Subtasks: slide-in animation, left border accent, hover highlights,
  mini progress bar in indicator badge, scale effect on checkbox hover
- Notes: slide-in animation, cleaner toolbar with SVG icons instead of
  emoji, proper dark mode support, focus ring on editor, max-height cap
- Both use CSS variables for consistent theming

v1.40.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:47:55 +01:00
85982f06a5 feat: fix iPhone Today button, add all settings to sidebar, fix layout
- Fix goToToday landing on yesterday in single-day view (skip startDayOffset)
- Add quick actions panel to settings sidebar for all screen sizes (not just mobile)
- Add view style switcher, visible hours, search, and new project to sidebar
- Change weekly-container to height:100vh for proper flex layout
- Someday/all-day sections use flex-shrink:0 for stable resize behavior
- Collapse uses height:30px!important to override inline styles

v1.40.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:41:12 +01:00
afa2695e0c fix: thin resize handles and fix resizing for both areas
- Use 1px border style instead of thick background bar
- Switch from maxHeight to height for proper resize control
- Fix overflow conflict in expanded someday CSS
- Both all-day and someday areas now properly resizable

v1.39.4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 03:19:11 +01:00
806061bf47 fix: move someday resize handle to top border and improve visibility
Handle now appears above the someday section as a visible bar with
background color. Dragging up increases height (inverted for top handle).
Handle styling improved with hover/active states for better discoverability.

v1.39.3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 02:49:27 +01:00
eebc8eb9b6 feat: drag-to-provider sync, recurring task editing, resizable areas, search improvements
- Sync tasks to external provider when dragged to a synced Someday list (Google/Outlook/Synology)
- Add Synology support to POST /api/tasks/sync endpoint
- Edit recurring task series (title, interval, unit, time) all at once via new API
- Make Someday and all-day areas vertically resizable with drag handles (height persisted in cookies)
- Include Someday tasks in search results with list name display
- Instant calendar event appearance after creation (improved optimistic update + immediate cache refresh)
- Fix project color not updating on tasks when project color changes
- Add database backup script for Supabase LXC

v1.39.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 00:50:42 +01:00
2ad55fe1bd fix: restore sticky weekday headers on mobile
The global overflow-y:visible rule for time-grid-on was overriding
the mobile overflow-y:auto on .weekly-days-grid, which broke
position:sticky on day headers. Wrap desktop overflow rules in a
min-width media query and keep mobile scroll container intact.

v1.37.4
2026-03-16 22:35:37 +01:00