logaritmisk
0d4026a968
feat(web): standardize loading on shared skeleton recipes; retire '…' + empty status divs ( #53 )
2026-06-08 06:50:57 +02:00
logaritmisk
d0da77a004
feat(web): shared loading skeleton recipes (List/Form/AppShell) + common.loading ( #53 )
2026-06-08 06:46:24 +02:00
logaritmisk
6bce1e6782
docs(plans): loading skeletons — 2-task plan ( #53 )
2026-06-08 06:27:38 +02:00
logaritmisk
506bfd63dd
docs(specs): standardize loading states on Skeleton recipes ( #53 )
2026-06-08 06:22:25 +02:00
logaritmisk
f45f1d8807
merge: token-styled ui/Select replacing raw selects ( #51 )
CI / web (push) Has been cancelled
2026-06-08 06:09:23 +02:00
logaritmisk
ede32551be
feat(web): field-form selects use ui/Select; rewrite select tests ( #51 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 06:03:54 +02:00
logaritmisk
71d899cbdc
feat(web): object-form visibility uses ui/Select ( #51 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 06:00:21 +02:00
logaritmisk
09e9b3f4d4
feat(web): ui/select Base UI Select wrapper matching Input + story ( #51 )
2026-06-08 05:54:46 +02:00
logaritmisk
e54ea89b1e
docs(plans): token-styled select — 3-task plan ( #51 )
2026-06-08 05:50:00 +02:00
logaritmisk
3782120b49
docs(specs): token-styled ui/Select replacing raw selects ( #51 )
2026-06-08 05:47:08 +02:00
logaritmisk
28e444c6c5
merge: object form robustness — data router, dirty guard, validation, batch entry ( #46 )
CI / web (push) Has been cancelled
2026-06-07 23:41:23 +02:00
logaritmisk
d3ee4365e0
feat(web): unify create/edit partial-failure recovery with 'created' banner ( #46 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 23:31:15 +02:00
logaritmisk
e18cad9c6a
feat(web): unsaved-changes guard (useBlocker + beforeunload) on the object form ( #46 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 23:26:15 +02:00
logaritmisk
537b847acb
feat(web): code-aware field errors + min count validation ( #46 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 23:20:30 +02:00
logaritmisk
3900bc362c
feat(web): disable submit while saving + Save & create another + Cmd/Ctrl+Enter ( #46 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 23:15:21 +02:00
logaritmisk
ed0c13907c
refactor(web): migrate to data router (createBrowserRouter) to enable useBlocker ( #46 )
...
Convert app.tsx route tree verbatim to a module-level data router via
createRoutesFromElements + RouterProvider, and the test harness to
createMemoryRouter + RouterProvider. The search NavLink-click test now mounts
its routes as real data-router routes so RouterProvider intercepts the link
(descendant <Routes> under a catch-all let it fall through to a jsdom navigation).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 23:07:03 +02:00
logaritmisk
f3881e8c7c
build(web): upgrade Vitest 3→4 (browser-playwright provider) ( #46 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 23:03:21 +02:00
logaritmisk
6ed137f49e
docs(plans): object form robustness — 5-task plan ( #46 )
2026-06-07 21:18:53 +02:00
logaritmisk
e005e76f5b
docs(specs): object form robustness — data router, dirty guard, partial-failure, validation ( #46 )
2026-06-07 21:14:01 +02:00
logaritmisk
b7242caf51
merge: app header wayfinding — breadcrumb, user menu, search, app_name brand ( #54 )
CI / web (push) Has been cancelled
2026-06-07 19:45:23 +02:00
logaritmisk
6efe09d40c
feat(web): assemble header — breadcrumb, search, user menu; remove standalone sign out ( #54 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 19:27:43 +02:00
logaritmisk
5c8fe3cd81
feat(web): UserMenu (email/role + sign out) + HeaderSearch components ( #54 )
2026-06-07 19:23:43 +02:00
logaritmisk
4b55218c69
feat(web): set breadcrumb trails on all AppShell routes ( #54 )
2026-06-07 19:18:43 +02:00
logaritmisk
af6004f731
refactor(web): remove eslint-disable from useBreadcrumb via ref ( #54 )
2026-06-07 19:15:03 +02:00
logaritmisk
18cb35beff
feat(web): page-driven breadcrumb context + header render + objects wiring ( #54 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 19:11:31 +02:00
logaritmisk
dbaf22500e
feat(web): ui/menu Base UI dropdown wrapper + story ( #54 )
2026-06-07 19:05:25 +02:00
logaritmisk
4fad3c43f0
feat(web): render configured app_name for brand + login; drop hardcoded app.name ( #54 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-07 19:01:15 +02:00
logaritmisk
e4badbdefc
docs(plans): app header wayfinding — 6-task plan ( #54 )
2026-06-07 18:58:04 +02:00
logaritmisk
285d35601b
docs(specs): app header wayfinding — breadcrumb, user menu, search, app_name ( #54 )
2026-06-07 18:18:03 +02:00
logaritmisk
9b3a587eab
merge: typography hierarchy + page <h1> + per-route document.title ( #57 )
CI / web (push) Has been cancelled
2026-06-07 17:44:53 +02:00
logaritmisk
8511aebb53
feat(web): object-detail tab title, caption element fix, login title ( #57 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:22:18 +02:00
logaritmisk
6e1f5ea50f
feat(web): page <h1> + document.title on list/form routes ( #57 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:17:01 +02:00
logaritmisk
70025e1e71
feat(web): useDocumentTitle hook (restores prior title on unmount) ( #57 )
2026-06-07 17:12:41 +02:00
logaritmisk
40384d91dd
style(web): match ui/ no-semicolon convention in PageTitle ( #57 )
2026-06-07 17:11:29 +02:00
logaritmisk
d3e88be70f
feat(web): PageTitle h1 component + story ( #57 )
2026-06-07 17:09:30 +02:00
logaritmisk
03f6e1d7ed
docs(plans): typography page titles — 4-task plan ( #57 )
2026-06-07 17:07:43 +02:00
logaritmisk
aab1bb37dc
docs(specs): typography hierarchy + page <h1> + per-route document.title ( #57 )
2026-06-07 16:59:37 +02:00
logaritmisk
9323c608ee
merge: dark-mode theme toggle — tri-state Light/Dark/System, FOUC-safe ( #59 )
CI / web (push) Has been cancelled
2026-06-07 16:45:55 +02:00
logaritmisk
eead013ccd
fix(web): raise dark --primary contrast to AA for button labels ( #59 )
2026-06-07 16:40:47 +02:00
logaritmisk
4f3db60ed2
feat(web): mount ThemeSwitch in header + pre-paint theme init ( #59 )
2026-06-07 16:37:04 +02:00
logaritmisk
6d17e5f84d
feat(web): ThemeSwitch icon segmented control + theme.* i18n ( #59 )
2026-06-07 16:33:16 +02:00
logaritmisk
d452dd9b35
feat(web): useTheme hook with live system tracking ( #59 )
2026-06-07 16:29:59 +02:00
logaritmisk
e5c03383fe
feat(web): theme core — resolve/read/apply tri-state theme ( #59 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-07 16:28:21 +02:00
logaritmisk
5e7a80e377
docs(plans): dark-mode theme toggle — 5-task plan ( #59 )
2026-06-07 15:25:42 +02:00
logaritmisk
5d63f06863
docs(specs): dark-mode theme toggle — tri-state, icon segmented, FOUC-safe ( #59 )
2026-06-07 15:19:29 +02:00
logaritmisk
d0e3772c34
merge: LabelEditor preserves other-language labels on edit ( #55 )
CI / web (push) Has been cancelled
2026-06-07 14:41:22 +02:00
logaritmisk
a9e6788b0b
fix(web): LabelEditor preserves other-language labels on edit ( #55 )
...
Editing a term/authority/field that already had labels in other languages
silently replaced the whole multilingual set with one default-language entry.
onChange now keeps non-default-language entries; the editor shows only the
default-language label (no longer falling back to an other-language one, which
made the clear/edit path write the wrong language) and surfaces a hint when
other-language labels exist on the record.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 14:37:25 +02:00
logaritmisk
48edb0391e
merge: design-token adoption — indigo brand accent, status tokens, check:colors guard ( #49 )
CI / web (push) Has been cancelled
2026-06-07 14:27:49 +02:00
logaritmisk
93234aae29
chore(web): add check:colors guard banning raw color utilities outside ui/ ( #49 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 14:22:15 +02:00
logaritmisk
cde7be9f2a
refactor(web): migrate feature screens to design tokens + radius token ( #49 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 14:15:54 +02:00