John O'Keefe
09545ca5e1
fix(web): complete the CSP-build migration across remaining surfaces
...
- audio reader: scrub/volume/speed/genre-tick bindings converted to
component methods (onScrubInput, setVolumeFromEvent,
applyDefaultSpeedFromSelect, volumeLabel, railTickStyle,
isSkipActive/isSpeedActive) — these used Number/Math/String globals
that the CSP evaluator cannot resolve
- fmtTime restored to the audioReader component: the unexport pass
had ripped it from the Alpine.data object (time displays were dead)
- book detail: cover-upload click and banner edit validation moved to
component methods (triggerCoverUpload, bannerEditHasText)
- admin/docs/index components: init() hooks for their x-init chains
- CSP header: 'unsafe-eval' dropped — the CSP build needs no eval
- e2e spec: replace test.info().annotate (unavailable in this
Playwright version) with console logging
2026-10-25 17:22:40 -04:00
..
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-13 12:24:12 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 16:38:03 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 17:22:40 -04:00
2026-10-15 19:33:18 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 12:50:37 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 11:06:08 -04:00
2026-10-23 12:30:12 -04:00
2026-05-24 21:20:24 -04:00
2026-03-27 15:52:02 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 15:43:59 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 15:43:59 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:42:50 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 16:45:48 -04:00
2026-10-25 11:06:08 -04:00
2026-10-25 11:06:08 -04:00
2026-10-24 14:31:36 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-25 11:06:08 -04:00
2026-08-10 13:43:13 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 18:59:36 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:07 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 13:16:35 -04:00
2026-10-25 11:06:08 -04:00
2026-10-24 19:44:34 -04:00
2026-10-18 16:45:48 -04:00
2026-10-25 11:06:08 -04:00
2026-10-22 15:01:41 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 17:22:40 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 12:39:20 -04:00
2026-10-03 23:54:07 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-25 11:06:08 -04:00
2026-05-10 16:13:21 -04:00
2026-10-24 14:31:36 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 16:00:04 -04:00
2026-10-19 18:59:36 -04:00
2026-10-25 11:06:08 -04:00