dorfteich/packages/shared/i18n/en
Claude Fable 5 e32f961047
All checks were successful
CI / Lint, typecheck, test (push) Successful in 2m54s
CI / Build container images (push) Has been skipped
CD / Build and push images (push) Successful in 3m9s
CD / Deploy to Test (push) Successful in 11s
CD / Smoke tests against Test (push) Successful in 1m9s
CD / Promote to Int (push) Successful in 10s
CI / Auth e2e pack (push) Successful in 3m57s
CI / Import/export fidelity gate (push) Successful in 43s
Complete section-style plugins: CSS gate, injection, picker, export (#75)
Second half of #75 on top of the section node (2e96173/784f21d):

- Install gate for section_style CSS (plugin-css.ts): every rule must be
  scoped under one of the plugin's own .dt-style-<pluginId>-<styleId>
  classes (enforced, not rewritten — grouping at-rules checked inside,
  @font-face/@keyframes exempt, statement at-rules rejected); positioning
  out of the content flow (anything but static/relative) is rejected as an
  overlay vector; "</style" is rejected as a breakout vector for inlined
  embedding. Hostile fixtures from the acceptance list are pinned in
  plugin-css.test.ts.
- Web: usePondPlugins loads the pond's active plugins once per visit;
  SectionStyleSheets links each active style plugin's immutable
  styles.css; SectionStyleMenu (toolbar) wraps/restyles/unwraps with a
  picker fed from the plugins' i18n titles. Sections show a faint dashed
  hint while editing so unstyled (plugin-disabled) sections stay findable.
- PDF export: PluginsService.sectionStyleCssForPond inlines the pond's
  active section-style CSS into the Gotenberg HTML, so styled sections
  survive the network-isolated render; covered in export.service.db.test.
- Reference plugin packages/plugins/section-styles-basic (callout, info,
  warning, colored-box; theme-neutral semi-transparent backgrounds), a
  workspace package whose tests validate it against the SDK schema and
  whose real files run through the api install gate.
- e2e section-styles.spec.ts: install → wrap → computed background in edit
  and read mode → unwrap → neutral fallback after disabling the plugin.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EwZ4jR4KFAPvpjWevfUGX1
2026-07-11 11:43:36 +02:00
..
access.json Add effective-permissions inspector (#57) 2026-07-10 00:00:27 +02:00
auth.json Add auth, settings, and admin UI to the SPA 2026-07-05 05:35:56 +02:00
common.json Add manual page ordering with drag-and-drop (#45) 2026-07-09 12:18:44 +02:00
editor.json Complete section-style plugins: CSS gate, injection, picker, export (#75) 2026-07-11 11:43:36 +02:00
errors.json Add plugin administration UI: instance modes and pond activation (#72) 2026-07-11 09:32:16 +02:00
export.json Add PDF export via Gotenberg (#67) 2026-07-10 12:11:12 +02:00
files.json Add non-image attachments with allowlist, SVG policy, and file managers (#61) 2026-07-10 02:52:40 +02:00
font.json Add per-pond fonts: catalog, build, application, and admin UI (#66) 2026-07-10 11:16:29 +02:00
import.json Add document import UI in the sidebar (#64) 2026-07-10 09:38:31 +02:00
labels.json Add label UI: tree management, page assignment, and sidebar filter (#44) 2026-07-09 11:41:42 +02:00
links.json Add backlinks panel and phantom-pages view (#48) 2026-07-09 13:05:32 +02:00
mails.json Add mail outbox with SMTP delivery worker and templates 2026-07-05 00:46:12 +02:00
members.json Add pond member management UI (#54) 2026-07-09 20:22:52 +02:00
plugins.json Add plugin administration UI: instance modes and pond activation (#72) 2026-07-11 09:32:16 +02:00
public.json Add public read access and server-rendered page HTML (#56) 2026-07-09 23:46:25 +02:00
quotas.json Add Site-Admin quota override management UI (#58) 2026-07-10 00:14:28 +02:00
search.json Add search UI with scoping and snippets (#50) 2026-07-09 13:36:06 +02:00
settings.json Add self-service GDPR data export (#68) 2026-07-10 13:01:51 +02:00
users.json Add Site-Admin user management (#59) 2026-07-10 00:31:41 +02:00