Simpl-Resultat/docs
le king fu cb7f8479e4
All checks were successful
PR Check — Frontend / frontend (pull_request) Successful in 2m16s
feat(gating): reserve transaction splits for the Base edition
The Répartition (split) button of the Transactions page now belongs to
the `adjustments` feature, as the unlock screen already promised
(upsell.features.adjustments). On the Free edition the button keeps its
place and its icon, carries a lock and opens the locked screen in a
dialog instead of the split window, for every row, split or not. While
the license is not ready it shows no lock and does nothing. Existing
splits stay in the data, counted by the reports and flagged by the
orange icon.

- splitGate.ts: pure splitAccessFor(gate) -> open | locked | pending,
  stricter than profileGate: `allowed` does not short-circuit `ready`.
- SplitButton: stateless button that decides what a click opens.
- UpsellDialog: UpsellGate in a named modal dialog, closed by its X and
  by "I already have a key".
- TransactionTable: required splitAccess prop. The split window is not
  rendered once the edition resolves to Free, and stays mounted through
  a license refresh; the upsell is not rendered once it resolves to Base.
- TransactionsPage reads useEntitlement("adjustments").
- ADR 0017 amendment and matrix, user guide, in-app docs (FR, EN),
  architecture, entitlements header comment, both changelogs.

Tests: the predicate, the button's markup and click, the dialog, the
table's wiring through the shared hook harness (#409), the page under
the three gate states, and the new key in both locales.

Fixes #369

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:02:47 -04:00
..
adr feat(gating): reserve transaction splits for the Base edition 2026-10-16 20:02:47 -04:00
archive docs: organize technical documentation into docs/ folder 2026-02-19 07:34:01 -05:00
analyse-onboarding-2026-09.md docs: add the onboarding analysis behind spec-onboarding-phase1 2026-09-30 21:21:14 -04:00
api-contract-prices.md feat(license): online revocation check — a revoked key falls back to Free (#365) 2026-10-02 14:45:34 -04:00
architecture.md feat(gating): reserve transaction splits for the Base edition 2026-10-16 20:02:47 -04:00
audit-bilan-2026-05.md feat(balance): audit quick wins — terminology, optional symbol, movable snapshot date (#201) 2026-05-31 21:05:13 +00:00
guide-utilisateur.md feat(gating): reserve transaction splits for the Base edition 2026-10-16 20:02:47 -04:00
qa-onboarding.html docs(onboarding): cards of the Categories and Reports pages 2026-10-13 21:48:47 -04:00
qa-refonte-seed-categories-ipc.md test(categories): complete test coverage for migration flow (#123) 2026-04-21 19:25:13 -04:00
qa-update-cycle.md fix(release): drop the generic linux-x86_64 key from latest.json 2026-10-11 19:30:34 -04:00