v3.18.0
Highlights
-
@byline/core—useAsPathnow acceptsintegerandcountersource fields, not just text.derivePathalready stringifies the source value before slugifying, so a numeric identity field (for example an allocator-assignedcounterserial number) yields a clean numeric slug, and a replacement installation slugifier can branch oncollectionPathto reshape it — such as zero-padding a serial to a fixed width.float/decimalremain excluded because their string form carries a., which does not belong in a path segment. -
@byline/core— addedClientConfig.slugifier, the client-side twin ofServerConfig.slugifier, and carried it through thegetClientConfig()SSR fallback so a server-rendered form derives the same path preview as the hydrated client. Additive and backward-compatible: installations that keep the default slugifier need not set it. -
@byline/admin— the path-widget's live preview now uses the installation slugifier resolved fromgetClientConfig()rather than always using the built-inslugify, so a custom slugifier's preview no longer disagrees with what the server persists (previously "Regenerate" could overwrite a correct path). The widget also suppresses the source-derived preview and the "Regenerate" affordance when theuseAsPathsource is a server-assignedcounteror a read-only field, whose value cannot be reproduced or changed through the form.
Chores
- monorepo — upgraded TypeScript to 7 (the native compiler).
All other @byline/* packages bumped to 3.18.0 in lockstep with no behavioural changes this cycle.