| Commit message (Collapse) | Author | Age |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
ScoreBadge/StatusBadge carry their own color scales, no
bg-*/text-* globals. SectionTitle unifies category-name and
section-title dupes (h2/h3 via level prop). Grocery add-bar
buttons use Button, new outline variant for the secondary
action. save-status moves into its only page. Delete dead
globals and page overrides.
|
| |
|
|
|
|
|
|
| |
Variants card/ref/plain with scoped skin. Padding and wrap
one-offs via style prop; draggable and handlers via rest
spread. GroceryRow absorbs item-btn/ref-link globals with
local names; BestRef scopes best-ref. Delete item-* globals
and dead page overrides.
|
| |
|
|
|
|
|
| |
Variants primary/accent/ghost/done with scoped styles.
Disabled handling unified; block/size/style props cover
login stretch, done-lg, save-check positioning.
Delete btn-* globals and dead page overrides.
|
| | |
|
| |
|
|
|
|
|
|
| |
Routine scheduling, health series, service stamps, session expiry, and
date formatting move to native Temporal (Instant / ZonedDateTime in
UTC), with ISO strings kept at DB and chart boundaries. Ambient types
in src/temporal-ambient.d.ts cover the native runtime; no polyfill.
Observable behavior and stored formats are unchanged.
|
| |
|
|
|
|
|
| |
Project page gets a Sante chart: daily mean of per-routine health
via computeProjectHealthSeries, ending at the current health score.
Both charts share a HealthChart component built on LayerChart's
AreaChart (time x-axis, fixed 0-100 y-axis, completion dots).
|
| |
|
|
|
|
| |
Status becomes a 1.5rem rounded-square chip (ok=check, due=clock,
late=!, veryLate=double !) keeping the green-to-red colors, moved to
the start of each routine row; label and overdue stay in title.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Move .page-header/.back-link/.input-invalid/.save-status/.btn-done
(plus hover/variant rules) into app.css as shared route scaffolding;
delete per-page scoped copies
- Unify drifted values: page-header padding 1rem -> 1.25rem (routine
page), empty-state spacing 0.75/1.5rem -> 1/2rem (grocery detail),
save-status margin -0.25rem applied on both pages, back-link margin
1.5rem -> 1rem (grocery detail); routine page's large Fait button is
kept via a .btn-done-lg modifier
- Export TestDb from test-helper and use it in the five db/service
test files to shrink duplicated fixture scaffolding
|
| |
|
|
|
|
|
|
|
| |
- Share edit/complete/archive form actions in routine-actions.ts; route
servers become thin wrappers (strictest guard semantics in one place)
- Move parseFrequencyDays into validation.ts
- Extract ScoreBadge/StatusBadge components; use on project pages and
the home page instead of duplicated scoreClass/statusClass helpers
- Fix archiveProject calling the routine archive with the project id
|
| |
|
|
|
|
| |
- Stamp archived_at on the archived snapshot; copy it on edit
- loadArchived(projectId) + collapsible fuzzy-searched "Archivées" section on the project page
- Archived routine pages open read-only with the health chart ending at the archive date; edit/complete actions reject archived routines
|
| |
|
|
|
|
|
|
|
| |
Move .score, .status, .add-bar and .btn-accent molecules into app.css
and replace BEM color modifiers with bare atoms (bg-success, bg-accent,
bg-danger, bg-accent-soft, text-accent, text-white). Rename the
category-specific cat-add-bar to add-bar and the groceries page's
sticky autocomplete bar to grocery-add-bar to avoid the collision.
Cuts dcd duplicate lines from 1288 to 780.
|
| | |
|
|
|
Projects group recurring routines (chores included) with an append-only
snapshot table (id, version) so edits never rewrite history; completions
reference the exact snapshot. Pure metrics compute due dates, urgency
buckets (ok/due/late/veryLate) and 0-100 health scores per routine,
project, and globally. Home page lists projects; project dashboard sorts
routines most-urgent first with one-tap completion and interval parser
inputs (1d/2w/3m/1y).
|