logaritmisk
79a6567530
fix(web): dark-mode tokens for popup primitives + theme-color/color-scheme sync ( #68 )
...
Tooltip, toast, and combobox popups still hardcoded light colors
(bg-white, neutral-*, indigo-50) and rendered as white boxes in dark
mode; the objects-table page-size select did the same in app code.
Swap all of them to theme tokens (popover/accent/muted/destructive/
success) and replace the toast's literal "×" with the lucide X icon.
Wire browser chrome into the theme: color-scheme via CSS on
:root/.dark (follows the in-app toggle, not just the OS), a
theme-color meta kept in sync by the preload script and applyTheme(),
plus a unit test for the meta sync.
Extend check-no-raw-colors to also flag shadeless white/black
utilities outside components/ui/ so the objects-table case can't
recur.
Closes #68
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 09:42:57 +02:00
logaritmisk
fe448034ac
merge: instance-timezone timestamp formatter ( #42 )
...
CI / web (push) Successful in 5m29s
Add shared formatTimestamp(value, timeZone, locale) helper — date + short
time in the instance tz/locale, with a UTC fallback on an invalid IANA zone.
Route the objects-table 'Updated' column through it (was inline, date-only,
unguarded). Display-only; storage stays UTC.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 21:14:45 +02:00
logaritmisk
67c5da57bf
feat(web): render objects 'Updated' as a tz-aware timestamp via formatTimestamp ( #42 )
2026-06-09 21:11:11 +02:00
logaritmisk
53405d7831
feat(web): formatTimestamp helper (instance tz + locale, UTC fallback) ( #42 )
2026-06-09 21:07:13 +02:00
logaritmisk
e615260422
docs(plans): instance-timezone timestamp formatter — 2-task plan ( #42 )
2026-06-09 20:58:34 +02:00
logaritmisk
3b6441688f
docs(specs): instance-timezone timestamp formatter ( #42 )
2026-06-09 15:34:02 +02:00
logaritmisk
a0b7dcdc2d
merge: responsive master/detail for vocabularies, search, fields ( #58 )
CI / web (push) Successful in 5m3s
2026-06-09 15:22:46 +02:00
logaritmisk
7f9cf9fe60
feat(web): responsive Fields page (stacks on narrow) ( #58 )
2026-06-09 15:18:39 +02:00
logaritmisk
b83149e0bb
feat(web): responsive Search master/detail (drawer on narrow) ( #58 )
2026-06-09 15:15:44 +02:00
logaritmisk
80c2aad298
feat(web): responsive Vocabularies master/detail (drawer on narrow) ( #58 )
2026-06-09 15:12:45 +02:00
logaritmisk
b5756e16b5
refactor(web): shared DetailDrawer; objects-page uses it ( #58 )
2026-06-09 15:09:37 +02:00
logaritmisk
b3f061ced7
docs(plans): responsive master/detail — 4-task plan ( #58 )
2026-06-09 15:06:42 +02:00
logaritmisk
eec3a261b4
docs(specs): responsive master/detail for vocab/search/fields ( #58 )
2026-06-09 14:11:14 +02:00
logaritmisk
390f6897a8
merge: bundle vendor-split + test-gap fills ( #67 )
CI / web (push) Successful in 5m13s
2026-06-09 13:48:46 +02:00
logaritmisk
8b881f369b
test(web): add a Storybook story for the combobox primitive ( #67 )
2026-06-09 12:32:06 +02:00
logaritmisk
aef5000543
test(web): cover prune-fields, labels, format-date, delete-in-use dialog ( #67 )
2026-06-09 12:28:48 +02:00
logaritmisk
878db9a37b
build(web): split framework deps into cache-stable vendor chunks ( #67 )
2026-06-09 12:24:47 +02:00
logaritmisk
0b44bc0855
docs(plans): bundle vendor-split + test gaps — 3-task plan ( #67 )
2026-06-09 12:16:23 +02:00
logaritmisk
79ee402b33
docs(specs): bundle vendor-split + test-gap fills ( #67 )
2026-06-09 12:09:02 +02:00
logaritmisk
64f35e5a57
merge: fix CI — Node 22, Playwright install, deterministic pending-state tests, testTimeout ( #25 )
CI / web (push) Successful in 7m32s
2026-06-09 11:57:32 +02:00
logaritmisk
3aff10557c
ci: make the logout pending-state test deterministic (gate, not delay)
...
CI / web (push) Successful in 4m35s
Same timing-window race as object-new-page: the 50ms delay let the logout
resolve (menu unmounts on me=null) before findByText caught 'Signing out…'
on the slow CI runner. Hold the logout open with a promise released only
after the pending state is asserted.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 11:51:35 +02:00
logaritmisk
e8fe24f755
ci: raise vitest testTimeout to 20s for the resource-constrained runner
...
CI / web (push) Failing after 3m50s
The 'narrow: detail renders inside a portaled drawer' test lazy-loads the
drawer chunk and exceeded the 5s default on the slow CI container (setup
alone took ~486s). Bump testTimeout on both vitest projects.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 11:44:30 +02:00
logaritmisk
fc170ccf10
ci: install Playwright chromium for the storybook vitest project; deterministic in-flight test
...
CI / web (push) Failing after 4m5s
- CI runs the @vitest/browser-playwright (storybook) project, which needs the
chromium browser downloaded — add 'playwright install --with-deps chromium'.
- object-new-page in-flight test held the create mutation open with a 50ms
delay and raced the pending-state assertion (failed under CI timing); gate it
on a promise released only after asserting 'saving…', so it's deterministic.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 11:37:20 +02:00
logaritmisk
3ae9d87e6e
ci: bump Node 20 → 22 so pnpm 11 (needs Node ≥22.13) runs
...
CI / web (push) Failing after 2m25s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 11:29:58 +02:00
logaritmisk
3dbede6bc2
and use correct container image
CI / web (push) Failing after 55s
2026-06-09 11:25:18 +02:00
logaritmisk
ba238ca962
run ci on correct runner
CI / web (push) Failing after 4s
2026-06-09 11:24:08 +02:00
logaritmisk
7cabebc338
merge: design-kit consistency — useLang, class recipes, kit adoption ( #66 )
CI / web (push) Has been cancelled
2026-06-09 00:02:33 +02:00
logaritmisk
74cde67a54
refactor(web): kit consistency — focusRing, PageTitle, Badge, size-4, icon buttons ( #66 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 23:49:35 +02:00
logaritmisk
900f85f8ac
refactor(web): adopt useLang + segmentClass/rowStateClass across sites ( #66 )
2026-06-08 23:45:24 +02:00
logaritmisk
00a7ce772e
feat(web): useLang + segmentClass/rowStateClass helpers; delete dead Card ( #66 )
2026-06-08 23:41:08 +02:00
logaritmisk
71dee23028
docs(plans): design-kit consistency — 3-task plan ( #66 )
2026-06-08 23:31:35 +02:00
logaritmisk
91716e628a
docs(specs): design-kit consistency — useLang, class recipes, kit adoption ( #66 )
2026-06-08 22:32:34 +02:00
logaritmisk
002af9d1f8
merge: split queries.ts — errors + key factory + domain modules; invalidate search on object writes ( #65 )
CI / web (push) Has been cancelled
2026-06-08 22:26:41 +02:00
logaritmisk
d8d8035850
refactor(web): split queries.ts into api/queries/ domain modules behind a barrel ( #65 )
2026-06-08 21:35:02 +02:00
logaritmisk
704b159d48
refactor(web): central query-key factory + invalidate search on object writes ( #65 )
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 21:30:57 +02:00
logaritmisk
c1bddb47c4
refactor(web): extract API error classes to api/errors.ts ( #65 )
2026-06-08 21:27:21 +02:00
logaritmisk
a21ab85576
docs(plans): split queries.ts — 3-task plan ( #65 )
2026-06-08 20:46:29 +02:00
logaritmisk
7ddf6967ce
docs(specs): split queries.ts — errors + key factory + domain modules ( #65 )
2026-06-08 20:37:11 +02:00
logaritmisk
404cf67f35
merge: unify vocabulary + authority CRUD into shared components ( #64 )
CI / web (push) Has been cancelled
2026-06-08 20:22:36 +02:00
logaritmisk
50d2512123
refactor(web): term/authority rows + pages adopt shared CRUD components ( #64 )
2026-06-08 20:16:17 +02:00
logaritmisk
c689b8c0e9
feat(web): shared FilteredRecordList component ( #64 )
2026-06-08 20:11:29 +02:00
logaritmisk
acdaf8d07f
feat(web): shared LabelledRecordCreateForm component ( #64 )
2026-06-08 20:08:10 +02:00
logaritmisk
77c56f7a9d
feat(web): shared LabelledRecordRow component ( #64 )
2026-06-08 20:05:05 +02:00
logaritmisk
030472c2da
docs(plans): unify vocab + authority CRUD — 4-task plan ( #64 )
2026-06-08 19:56:42 +02:00
logaritmisk
f1eb6a9ba5
docs(specs): unify vocabulary + authority CRUD ( #64 )
2026-06-08 19:52:35 +02:00
logaritmisk
285a1323ad
merge: accessibility defect bundle — label-id, table rows, drawer/breadcrumb names, announced states ( #62 )
CI / web (push) Has been cancelled
2026-06-08 19:47:58 +02:00
logaritmisk
da3e078fbc
fix(web): objects-table a11y — real-link rows, pill focus ring, announced load/error ( #62 )
2026-06-08 19:07:00 +02:00
logaritmisk
0def81ab42
fix(web): a11y labelling — useId, named drawer/breadcrumb, translated combobox ( #62 )
2026-06-08 19:00:28 +02:00
logaritmisk
546680017d
docs(plans): a11y defect bundle — 2-task plan ( #62 )
2026-06-08 18:52:21 +02:00
logaritmisk
3efb7e175d
docs(specs): accessibility defect bundle ( #62 )
2026-06-08 18:49:27 +02:00