Skip to content

Commit 97d273d

Browse files
Diversify Help page examples across all page types (#164)
## Summary - Rebalance Help page examples from 4/3/3 (fusion/fission/twotwo only) to cover all 6 page types: - **Fusion** (2): H+Li classic, Ni+H Rossi/Parkhomov - **Fission** (2): Uranium, Palladium (Fleischmann-Pons) - **Two-to-Two** (2): H+B aneutronic, D+Ni - **Element Data** (2): U-238 decay chain, Fe-56 binding energy peak - **Muller Resonance** (1): Palladium NAE analysis with filter - **Cascades** (1): Parkhomov Ni-LiAlH4 preset - Extended `ExampleQuery` type to support `element-data`, `cascades`, and `muller-resonance` query types - Updated Help.tsx routing to navigate to all page types with correct URL params - Updated badge labels for new query types Depends on #163 for Cascades/Muller URL param support. ## Test plan - [x] Build passes - [x] All example query tests pass (9/9) - [ ] Click each example card on Help page — verify navigation to correct page with correct state - [ ] Verify U-238 example opens element data with decay chain visible - [ ] Verify Parkhomov cascade example loads the material preset - [ ] Verify Pd NAE example opens Muller Resonance with NAE tab filtered 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude (staging merge) <noreply@anthropic.com>
1 parent b4711d5 commit 97d273d

12 files changed

Lines changed: 279 additions & 163 deletions

File tree

e2e/tests/help-page.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ test.describe('Help Page', () => {
1919

2020
test('should display example query cards with names and descriptions', async ({ page }) => {
2121
await expect(page.getByText('Hydrogen-Lithium Fusion')).toBeVisible();
22-
await expect(page.getByText('Deuterium-Deuterium Fusion')).toBeVisible();
22+
await expect(page.getByText('Nickel-Hydrogen Fusion')).toBeVisible();
2323
await expect(page.getByText('Uranium Fission Pathways')).toBeVisible();
2424
});
2525

src/data/exampleQueries.test.ts

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ describe('exampleQueries', () => {
1010
EXAMPLE_QUERIES.forEach(query => {
1111
expect(query.name).toBeTruthy();
1212
expect(query.description).toBeTruthy();
13-
expect(['fusion', 'fission', 'twotwo']).toContain(query.queryType);
13+
expect(['fusion', 'fission', 'twotwo', 'element-data', 'cascades', 'muller-resonance']).toContain(query.queryType);
1414
expect(query.filter).toBeDefined();
1515
});
1616
});
@@ -30,16 +30,35 @@ describe('exampleQueries', () => {
3030
expect(twotwo.length).toBeGreaterThan(0);
3131
});
3232

33+
it('includes element-data examples', () => {
34+
const elementData = EXAMPLE_QUERIES.filter(q => q.queryType === 'element-data');
35+
expect(elementData.length).toBeGreaterThan(0);
36+
elementData.forEach(q => {
37+
expect(q.elementZ).toBeDefined();
38+
});
39+
});
40+
41+
it('includes cascades example', () => {
42+
const cascades = EXAMPLE_QUERIES.filter(q => q.queryType === 'cascades');
43+
expect(cascades.length).toBeGreaterThan(0);
44+
cascades.forEach(q => {
45+
expect(q.materialId).toBeTruthy();
46+
});
47+
});
48+
49+
it('includes muller-resonance example', () => {
50+
const muller = EXAMPLE_QUERIES.filter(q => q.queryType === 'muller-resonance');
51+
expect(muller.length).toBeGreaterThan(0);
52+
muller.forEach(q => {
53+
expect(q.mullerParams).toBeDefined();
54+
});
55+
});
56+
3357
it('includes H-Li fusion example', () => {
3458
const hli = EXAMPLE_QUERIES.find(q =>
3559
q.element1List?.includes('H') && q.element2List?.includes('Li')
3660
);
3761
expect(hli).toBeDefined();
3862
expect(hli!.queryType).toBe('fusion');
3963
});
40-
41-
it('includes high-energy fusion example', () => {
42-
const highE = EXAMPLE_QUERIES.find(q => q.filter.minMeV && q.filter.minMeV >= 10);
43-
expect(highE).toBeDefined();
44-
});
4564
});

src/data/exampleQueries.ts

Lines changed: 50 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,22 @@ import { QueryFilter } from '../types';
33
export interface ExampleQuery {
44
name: string;
55
description: string;
6-
queryType: 'fusion' | 'fission' | 'twotwo';
6+
queryType: 'fusion' | 'fission' | 'twotwo' | 'element-data' | 'cascades' | 'muller-resonance';
77
filter: QueryFilter;
88
element1List?: string[];
99
element2List?: string[];
1010
outputElementList?: string[];
11+
/** For element-data links: Z and optional A */
12+
elementZ?: number;
13+
elementA?: number;
14+
/** For cascades links: material preset ID or fuel list */
15+
materialId?: string;
16+
/** For muller-resonance links: URL params */
17+
mullerParams?: Record<string, string>;
1118
}
1219

1320
export const EXAMPLE_QUERIES: ExampleQuery[] = [
14-
// Fusion examples
21+
// Fusion examples (2)
1522
{
1623
name: 'Hydrogen-Lithium Fusion',
1724
description: 'Classic LENR reaction pathway. H + Li fusion produces beryllium and helium isotopes with significant energy release.',
@@ -20,14 +27,6 @@ export const EXAMPLE_QUERIES: ExampleQuery[] = [
2027
element2List: ['Li'],
2128
filter: {},
2229
},
23-
{
24-
name: 'Deuterium-Deuterium Fusion',
25-
description: 'D + D reactions are central to fusion research. Produces He-3 or tritium depending on the pathway.',
26-
queryType: 'fusion',
27-
element1List: ['D'],
28-
element2List: ['D'],
29-
filter: {},
30-
},
3130
{
3231
name: 'Nickel-Hydrogen Fusion',
3332
description: 'Investigated in Rossi E-Cat and Parkhomov replication experiments. Ni + H reactions produce copper isotopes.',
@@ -36,56 +35,72 @@ export const EXAMPLE_QUERIES: ExampleQuery[] = [
3635
element2List: ['Ni'],
3736
filter: {},
3837
},
39-
{
40-
name: 'High-Energy Fusion (>10 MeV)',
41-
description: 'Find fusion reactions releasing more than 10 MeV of energy. Shows the most energetic transmutation pathways.',
42-
queryType: 'fusion',
43-
filter: { minMeV: 10 },
44-
},
4538

46-
// Fission examples
39+
// Fission examples (2)
4740
{
4841
name: 'Uranium Fission Pathways',
4942
description: 'All fission pathways from uranium isotopes. Shows the diverse product spectrum of uranium splitting.',
5043
queryType: 'fission',
5144
filter: { elements: ['U'] },
5245
},
53-
{
54-
name: 'Iron Fission',
55-
description: 'Exothermic fission pathways from iron isotopes. Iron-56 has near-peak binding energy per nucleon, so fewer exothermic fission pathways exist compared to heavier elements.',
56-
queryType: 'fission',
57-
filter: { elements: ['Fe'] },
58-
},
5946
{
6047
name: 'Palladium Fission',
6148
description: 'Pd fission pathways relevant to Fleischmann-Pons cold fusion experiments using palladium electrodes.',
6249
queryType: 'fission',
6350
filter: { elements: ['Pd'] },
6451
},
6552

66-
// Two-to-Two examples
53+
// Two-to-Two examples (2)
54+
{
55+
name: 'Proton-Boron Reactions',
56+
description: 'H + B-11 produces three alpha particles in the aneutronic fusion reaction (p + B-11 → 3α), considered ideal for clean energy.',
57+
queryType: 'twotwo',
58+
element1List: ['H'],
59+
element2List: ['B'],
60+
filter: {},
61+
},
6762
{
6863
name: 'Deuterium-Nickel Reactions',
69-
description: 'D + Ni two-to-two reactions. The default query showing deuterium-based transmutations with nickel, lithium, aluminum, boron, and nitrogen.',
64+
description: 'D + Ni two-to-two reactions showing deuterium-based transmutations with nickel, lithium, aluminum, boron, and nitrogen.',
7065
queryType: 'twotwo',
7166
element1List: ['D'],
7267
element2List: ['Ni', 'Li', 'Al', 'B', 'N'],
7368
filter: {},
7469
},
70+
71+
// Element Data examples (2)
7572
{
76-
name: 'Proton-Boron Reactions',
77-
description: 'H + B-11 produces three alpha particles in the aneutronic fusion reaction (p + B-11 → 3α), considered ideal for clean energy.',
78-
queryType: 'twotwo',
79-
element1List: ['H'],
80-
element2List: ['B'],
73+
name: 'Uranium-238 Decay Chain',
74+
description: 'The most famous natural decay series (4n+2). Trace 14 steps from U-238 through radium and radon down to stable Pb-206.',
75+
queryType: 'element-data',
76+
elementZ: 92,
77+
elementA: 238,
8178
filter: {},
8279
},
8380
{
84-
name: 'Lithium-Lithium Reactions',
85-
description: 'Li + Li two-to-two reactions. Lithium is a key element in LENR research due to its low atomic number and high reactivity.',
86-
queryType: 'twotwo',
87-
element1List: ['Li'],
88-
element2List: ['Li'],
81+
name: 'Iron-56 — Peak Binding Energy',
82+
description: 'Fe-56 has the highest binding energy per nucleon of any nuclide, making it the endpoint of stellar nucleosynthesis.',
83+
queryType: 'element-data',
84+
elementZ: 26,
85+
elementA: 56,
86+
filter: {},
87+
},
88+
89+
// Muller Resonance example (1)
90+
{
91+
name: 'Palladium NAE Analysis',
92+
description: 'Explore palladium\'s nuclear active environment predictions — central to Fleischmann-Pons deuterium loading experiments.',
93+
queryType: 'muller-resonance',
94+
mullerParams: { tab: 'nae', element: 'Pd', naeFilter: 'true' },
95+
filter: {},
96+
},
97+
98+
// Cascades example (1)
99+
{
100+
name: 'Parkhomov Ni-LiAlH₄ Cascade',
101+
description: 'Simulate the 2014 Parkhomov replication of the Rossi reactor using natural nickel with lithium aluminum hydride fuel.',
102+
queryType: 'cascades',
103+
materialId: 'parkhomov-2014',
89104
filter: {},
90105
},
91106
];

src/i18n/locales/de.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,7 @@
10571057
"knownLENR": "Bekannte LENR",
10581058
"parkhomovReactions": "Parkhomov-Rxn.",
10591059
"showNAEOnly": "Nur Elemente mit Resonanz im NAE-Bereich anzeigen",
1060+
"searchPlaceholder": "Nach Element filtern (kommagetrennt)...",
10601061
"elementsInRange": "Elemente im NAE-Bereich (0,5–2,0 nm)",
10611062
"withDOverlap": "Mit D-Überlappung (<30%)",
10621063
"confirmedLENR": "Bekannte LENR-aktive",

src/i18n/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,7 @@
10571057
"knownLENR": "Known LENR",
10581058
"parkhomovReactions": "Parkhomov Rxns",
10591059
"showNAEOnly": "Show only elements with resonance in NAE range",
1060+
"searchPlaceholder": "Filter by element (comma delimited)...",
10601061
"elementsInRange": "Elements in NAE range (0.5–2.0 nm)",
10611062
"withDOverlap": "With D overlap (<30%)",
10621063
"confirmedLENR": "Known LENR-active",

src/i18n/locales/es.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,7 @@
10571057
"knownLENR": "LENR conocida",
10581058
"parkhomovReactions": "Rxns Parkhomov",
10591059
"showNAEOnly": "Mostrar solo elementos con resonancia en rango NAE",
1060+
"searchPlaceholder": "Filtrar por elemento (separado por comas)...",
10601061
"elementsInRange": "Elementos en rango NAE (0,5–2,0 nm)",
10611062
"withDOverlap": "Con superposición D (<30%)",
10621063
"confirmedLENR": "LENR activa conocida",

src/i18n/locales/fr.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,7 @@
10571057
"knownLENR": "LENR connue",
10581058
"parkhomovReactions": "Rxns Parkhomov",
10591059
"showNAEOnly": "Afficher uniquement les éléments avec résonance dans la plage NAE",
1060+
"searchPlaceholder": "Filtrer par élément (séparé par virgules)...",
10601061
"elementsInRange": "Éléments dans la plage NAE (0,5–2,0 nm)",
10611062
"withDOverlap": "Avec chevauchement D (<30%)",
10621063
"confirmedLENR": "LENR active connue",

src/i18n/locales/ja.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,7 @@
10571057
"knownLENR": "既知のLENR",
10581058
"parkhomovReactions": "パルホモフ反応",
10591059
"showNAEOnly": "NAE範囲に共鳴を持つ元素のみ表示",
1060+
"searchPlaceholder": "元素で絞り込み(カンマ区切り)...",
10601061
"elementsInRange": "NAE範囲内の元素 (0.5–2.0 nm)",
10611062
"withDOverlap": "D重複あり (<30%)",
10621063
"confirmedLENR": "既知のLENR活性",

src/i18n/locales/ru.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,7 @@
10571057
"knownLENR": "Известный LENR",
10581058
"parkhomovReactions": "Реакции Пархомова",
10591059
"showNAEOnly": "Показать только элементы с резонансом в диапазоне NAE",
1060+
"searchPlaceholder": "Фильтр по элементу (через запятую)...",
10601061
"elementsInRange": "Элементы в диапазоне NAE (0,5–2,0 нм)",
10611062
"withDOverlap": "С перекрытием D (<30%)",
10621063
"confirmedLENR": "Известные LENR-активные",

src/i18n/locales/zh.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,7 @@
10571057
"knownLENR": "已知LENR",
10581058
"parkhomovReactions": "帕尔霍莫夫反应",
10591059
"showNAEOnly": "仅显示NAE范围内有共振的元素",
1060+
"searchPlaceholder": "按元素筛选(逗号分隔)...",
10601061
"elementsInRange": "NAE范围内元素(0.5–2.0 nm)",
10611062
"withDOverlap": "有D重叠(<30%)",
10621063
"confirmedLENR": "已知LENR活性",

0 commit comments

Comments
 (0)