logaritmisk
900f85f8ac
refactor(web): adopt useLang + segmentClass/rowStateClass across sites ( #66 )
2026-06-08 23:45:24 +02:00
logaritmisk
50d2512123
refactor(web): term/authority rows + pages adopt shared CRUD components ( #64 )
2026-06-08 20:16:17 +02:00
logaritmisk
aeb1b084d9
feat(web): adopt MutationError across create/object forms; distinguish edit-form fetch error ( #63 )
2026-06-08 17:32:36 +02:00
logaritmisk
6e02ac874f
feat(web): inline status-aware errors on term/authority edit rows + delete dialog ( #63 )
2026-06-08 17:27:02 +02:00
logaritmisk
57504c941d
feat(web): focus-visible rings on custom controls; honest authority links + lang group ( #52 )
2026-06-08 09:42:33 +02:00
logaritmisk
75e7cf9047
feat(web): authorities sort+filter, create external_uri, external_uri in rows, url input ( #50 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 09:02:13 +02:00
logaritmisk
0d4026a968
feat(web): standardize loading on shared skeleton recipes; retire '…' + empty status divs ( #53 )
2026-06-08 06:50:57 +02:00
logaritmisk
4b55218c69
feat(web): set breadcrumb trails on all AppShell routes ( #54 )
2026-06-07 19:18:43 +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
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
logaritmisk
c9120848f5
feat(web): edit/delete authorities in place ( #30 )
2026-06-05 20:35:26 +02:00
logaritmisk
9d0475e8ec
feat(web): single-language content authoring (LabelEditor + localized_text at default lang)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 15:05:20 +02:00
logaritmisk
914527edc6
fix(web): place aria-selected on the role=tab element ( #32 ) + assert it
...
Per WAI-ARIA, aria-selected must be on the same element carrying role="tab".
The previous impl placed it on an inner <span> via the render-prop, making it
invisible to assistive technology. Move both role="tab" and aria-selected to
the NavLink, compute currentKind once from useParams, drop the render-prop.
Add a Vitest assertion that the selected tab has aria-selected="true" and an
unselected tab has aria-selected="false".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 17:32:18 +02:00
logaritmisk
ff513e1712
fix(web): search 503 vs error ( #34 ); terms/authorities list error states ( #31 ); authority-tab a11y + dead keys ( #32 ); authority-kind test ( #37 )
2026-06-04 17:28:01 +02:00
logaritmisk
352d899fa5
fix(web): authorities unknown-kind redirect, extract labelText util, EN-required test
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 09:39:15 +02:00
logaritmisk
38673e52ba
feat(web): authorities kind-tabbed screen (list/create) + nav
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 09:32:57 +02:00