diff --git a/CHANGELOG.md b/CHANGELOG.md index 613c198..3b0633a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## [0.26.0] - 2026-09-28 + +### Added +- `Modules\Core\Store\` — a "Store Details" Filament settings page (under Settings) for a + shop's own contact/legal details: store name, address (both translatable), phone, tax + identifier (ΑΦΜ), company registration number (ΓΕΜΗ), and rich-text bank transfer + instructions (IBANs, formatted as a table if needed — `TranslatedText::optionRichtext()`, + which ships table insert/edit in its default toolbar). Backed by a single-row + `StoreDetails` model, read via `StoreDetailsService::current()` (forever-cached, + invalidated by the new `StoreDetailsUpdated` event whenever `StoreDetailsService::update()` + is the one write path used — never write to the model directly). + +### Fixed +- `StoreDetailsService`'s singleton row was created with every translatable column + (`name`/`address`/`bank_transfer_instructions`) left `NULL`. Lunar's own `TranslatedText` + Filament component silently discards every keystroke on re-render when the field it edits + starts out `NULL` rather than an empty per-locale array — invisible for `PaymentMethod`'s + own translatable `name` (always created already-filled, through the same form), but exactly + the gap this brand-new singleton hits, since it's created blank and opened for editing in + the same visit. The row is now seeded with an empty string per configured language from + creation, so every translatable field is editable from the very first save. + ## [0.25.2] - 2026-09-28 ### Fixed diff --git a/composer.json b/composer.json index df7e54c..d860e44 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "boboko/core", "description": "Core module — authentication and shared panel behaviour", "type": "library", - "version": "0.25.2", + "version": "0.26.0", "autoload": { "psr-4": { "Modules\\Core\\": "src/" diff --git a/package.json b/package.json index fe7f547..cb011ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@boboko/core", - "version": "0.25.2", + "version": "0.26.0", "private": true, "type": "module", "description": "Portable Stimulus controllers and styles for boboko-core's cart + checkout module. Installed as a real npm dependency (file:../boboko-core in dev, a tagged git install in prod) so a consuming app's `npm install` resolves this package's own dependencies (leaflet, @hotwired/stimulus) transitively, the same way `composer update boboko/*` does for PHP. See CONTRIBUTE.md's \"JS/CSS: a real npm package\" section.",