Add rules edition setting for condition tooltips (5e/5.5e)
All checks were successful
CI / check (push) Successful in 1m8s
CI / build-image (push) Successful in 16s

Introduce a settings modal (opened from the kebab menu) with a rules
edition selector for condition tooltip descriptions and a theme picker
replacing the inline cycle button. About half the conditions have
meaningful mechanical differences between editions.

- Add description5e field to ConditionDefinition with 5e (2014) text
- Add RulesEditionProvider context with localStorage persistence
- Create SettingsModal with Conditions and Theme sections
- Wire condition tooltips to edition-aware descriptions
- Fix 6 inaccurate 5.5e condition descriptions
- Update spec 003 with stories CC-3, CC-8 and FR-095–FR-102

Closes #12

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lukas
2026-03-24 17:08:41 +01:00
parent cfd4aef724
commit 4043612ccf
18 changed files with 663 additions and 82 deletions

View File

@@ -0,0 +1,24 @@
import { createContext, type ReactNode, useContext } from "react";
import { useRulesEdition } from "../hooks/use-rules-edition.js";
type RulesEditionContextValue = ReturnType<typeof useRulesEdition>;
const RulesEditionContext = createContext<RulesEditionContextValue | null>(
null,
);
export function RulesEditionProvider({ children }: { children: ReactNode }) {
const value = useRulesEdition();
return (
<RulesEditionContext.Provider value={value}>
{children}
</RulesEditionContext.Provider>
);
}
export function useRulesEditionContext(): RulesEditionContextValue {
const ctx = useContext(RulesEditionContext);
if (!ctx)
throw new Error("useRulesEditionContext requires RulesEditionProvider");
return ctx;
}