<feed xmlns='http://www.w3.org/2005/Atom'>
<title>home-sveltekit/src/routes/groceries/categories, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kagamino.dev/home-sveltekit/atom?h=main</id>
<link rel='self' href='https://git.kagamino.dev/home-sveltekit/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/'/>
<updated>2026-10-18T20:02:02Z</updated>
<entry>
<title>refactor: inject the database into services via a constructor</title>
<updated>2026-10-18T20:02:02Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-10-18T20:02:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=0685e9ece66fbcb09c9457027cf7bb2107cc0171'/>
<id>urn:sha1:0685e9ece66fbcb09c9457027cf7bb2107cc0171</id>
<content type='text'>
Pilot on the categories service: a CategoriesService class holds the Drizzle
handle, and services/index.ts wires the real instance once for the server while
tests build their own on an in-memory database. AppDatabase moves from
groceries.ts to db/types.ts.
</content>
</entry>
<entry>
<title>feat: promote a reference as the primary shown in lists</title>
<updated>2026-10-07T17:17:14Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-10-07T17:17:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=66939bab93cdcb9b7732c45d7bc3b99b6951fe15'/>
<id>urn:sha1:66939bab93cdcb9b7732c45d7bc3b99b6951fe15</id>
<content type='text'>
Add an is_primary flag to references; the promoted ref sorts first on the item page and is the one shown under the item in the list and catalog. Item page gets a star toggle per reference.
</content>
</entry>
<entry>
<title>Extract Row primitive, migrate all call sites</title>
<updated>2026-09-12T20:24:19Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-12T20:24:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=5f0a73920034741236034ed7a721c68eceb8ab82'/>
<id>urn:sha1:5f0a73920034741236034ed7a721c68eceb8ab82</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Extract Button primitive, migrate all call sites</title>
<updated>2026-09-12T20:22:33Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-12T20:22:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=1cef356be95a67f95d40f5b0b131f98d11f13c13'/>
<id>urn:sha1:1cef356be95a67f95d40f5b0b131f98d11f13c13</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Share grocery row component and list-page form actions</title>
<updated>2026-09-08T07:25:03Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-08T07:25:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=3148742b323ab71f1ef768a2f4dc353c00944034'/>
<id>urn:sha1:3148742b323ab71f1ef768a2f4dc353c00944034</id>
<content type='text'>
- GroceryRow.svelte renders the toggle row (checkbox, name, best ref,
  arrow link) for both the list and catalog pages
- grocery-actions.ts grows full form actions: addCategoryAction,
  addGroceryAction, addGroceryAndEditAction, deleteByIdAction; the
  categories/groceries route servers become thin wrappers
</content>
</entry>
<entry>
<title>Consolidate duplicated page CSS into app.css, share TestDb type</title>
<updated>2026-09-08T07:12:25Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-08T07:12:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=7d85a18867ca0fe2310218c63cfc696c0f916171'/>
<id>urn:sha1:7d85a18867ca0fe2310218c63cfc696c0f916171</id>
<content type='text'>
- 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 -&gt; 1.25rem (routine
  page), empty-state spacing 0.75/1.5rem -&gt; 1/2rem (grocery detail),
  save-status margin -0.25rem applied on both pages, back-link margin
  1.5rem -&gt; 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
</content>
</entry>
<entry>
<title>Extract duplicated styles into shared molecules and color atoms</title>
<updated>2026-09-07T17:55:08Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-07T17:55:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=5c1e0821e762c2dd098a01b2bb6231c7f8568736'/>
<id>urn:sha1:5c1e0821e762c2dd098a01b2bb6231c7f8568736</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Split groceries domain out of the app root</title>
<updated>2026-09-07T08:55:06Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-07T08:55:06Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=113415ce357a9cea1759d0452ebae6352f8fe36b'/>
<id>urn:sha1:113415ce357a9cea1759d0452ebae6352f8fe36b</id>
<content type='text'>
Move the grocery list, catalog, and categories routes under /groceries/
so the app home can host the projects/routines overview next. Update
nav to exact-path matching, login redirect default, and layout title.
</content>
</entry>
</feed>
