- Remove prop drilling, components get notes from NoteService context
- NoteCard gets note by ID from service, uses {#key} for Markdown reactivity
- NotesGrid handles filtering internally via service methods
- NoteEditor gets service from context instead of prop
- Add PageState type for shallow routing selectedNoteId
- Add +layout.server.ts to pass user data to client
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Prevent visual glitch where habit cells would shrink and borders would
morph during NumberFlow animations when interacting via keyboard (shift
key). Added focus-visible:outline-none to suppress global outline style
that was causing layout shifts in Chrome's rendering engine.
\
- Add HabitGrid component with a responsive calendar-style layout\\
- Support variable habit durations with period-based cell rendering\
- Add skeleton loading states for better UX during data fetching
- Add CounterHabitButton component for cells with increment/decrement
interactions\
- Create HabitCellContextMenu for period-based actions (reset, set values, fail)
- Add HabitCreationForm for creating new habits\
- Add HabitActionMenu component for additional operations on habits
(archive, delete, edit)\
- Add SetValueDialog component for editing the value of a cell