Skip to content

Commit d9c81ca

Browse files
Place Dance after Performance (#89)
1 parent 05bc786 commit d9c81ca

4 files changed

Lines changed: 58 additions & 45 deletions

File tree

playground/public/moves/index.html

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,44 @@ <h2>Performance</h2>
186186
</div>
187187
</div>
188188

189+
<div class="domain-group">
190+
<h2>Dance</h2>
191+
<div class="move-grid">
192+
<a class="move-card" href="/moves/demi-plie.html">
193+
<span class="mc-name">Demi-plié</span>
194+
<span class="mc-meta">Quadriceps · Body weight · Beginner</span>
195+
</a>
196+
<a class="move-card" href="/moves/releve.html">
197+
<span class="mc-name">Relevé</span>
198+
<span class="mc-meta">Calves · Body weight · Beginner</span>
199+
</a>
200+
<a class="move-card" href="/moves/tendu.html">
201+
<span class="mc-name">Tendu</span>
202+
<span class="mc-meta">Hip flexors · Body weight · Intermediate</span>
203+
</a>
204+
<a class="move-card" href="/moves/pirouette.html">
205+
<span class="mc-name">Pirouette (full turn)</span>
206+
<span class="mc-meta">Full body · Body weight · Intermediate</span>
207+
</a>
208+
<a class="move-card" href="/moves/box-step.html">
209+
<span class="mc-name">Box step (travels)</span>
210+
<span class="mc-meta">Full body · Body weight · Beginner</span>
211+
</a>
212+
<a class="move-card" href="/moves/grapevine.html">
213+
<span class="mc-name">Grapevine (travels)</span>
214+
<span class="mc-meta">Full body · Body weight · Beginner</span>
215+
</a>
216+
<a class="move-card" href="/moves/waltz-box.html">
217+
<span class="mc-name">Waltz box step</span>
218+
<span class="mc-meta">Full body · Body weight · Beginner</span>
219+
</a>
220+
<a class="move-card" href="/moves/chasse.html">
221+
<span class="mc-name">Chassé (travels)</span>
222+
<span class="mc-meta">Full body · Body weight · Intermediate</span>
223+
</a>
224+
</div>
225+
</div>
226+
189227
<div class="domain-group">
190228
<h2>Martial arts</h2>
191229
<div class="move-grid">
@@ -320,44 +358,6 @@ <h2>Education</h2>
320358
</div>
321359
</div>
322360

323-
<div class="domain-group">
324-
<h2>Dance</h2>
325-
<div class="move-grid">
326-
<a class="move-card" href="/moves/demi-plie.html">
327-
<span class="mc-name">Demi-plié</span>
328-
<span class="mc-meta">Quadriceps · Body weight · Beginner</span>
329-
</a>
330-
<a class="move-card" href="/moves/releve.html">
331-
<span class="mc-name">Relevé</span>
332-
<span class="mc-meta">Calves · Body weight · Beginner</span>
333-
</a>
334-
<a class="move-card" href="/moves/tendu.html">
335-
<span class="mc-name">Tendu</span>
336-
<span class="mc-meta">Hip flexors · Body weight · Intermediate</span>
337-
</a>
338-
<a class="move-card" href="/moves/pirouette.html">
339-
<span class="mc-name">Pirouette (full turn)</span>
340-
<span class="mc-meta">Full body · Body weight · Intermediate</span>
341-
</a>
342-
<a class="move-card" href="/moves/box-step.html">
343-
<span class="mc-name">Box step (travels)</span>
344-
<span class="mc-meta">Full body · Body weight · Beginner</span>
345-
</a>
346-
<a class="move-card" href="/moves/grapevine.html">
347-
<span class="mc-name">Grapevine (travels)</span>
348-
<span class="mc-meta">Full body · Body weight · Beginner</span>
349-
</a>
350-
<a class="move-card" href="/moves/waltz-box.html">
351-
<span class="mc-name">Waltz box step</span>
352-
<span class="mc-meta">Full body · Body weight · Beginner</span>
353-
</a>
354-
<a class="move-card" href="/moves/chasse.html">
355-
<span class="mc-name">Chassé (travels)</span>
356-
<span class="mc-meta">Full body · Body weight · Intermediate</span>
357-
</a>
358-
</div>
359-
</div>
360-
361361
<div class="domain-group">
362362
<h2>Yoga</h2>
363363
<div class="move-grid">

playground/public/sitemap.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
<changefreq>weekly</changefreq>
4343
<priority>0.5</priority>
4444
</url>
45+
<url>
46+
<loc>https://www.posecode.org/moves/demi-plie.html</loc>
47+
<lastmod>2026-07-17</lastmod>
48+
<changefreq>weekly</changefreq>
49+
<priority>0.5</priority>
50+
</url>
4551
<url>
4652
<loc>https://www.posecode.org/moves/deadlift.html</loc>
4753
<lastmod>2026-07-17</lastmod>
@@ -198,12 +204,6 @@
198204
<changefreq>weekly</changefreq>
199205
<priority>0.5</priority>
200206
</url>
201-
<url>
202-
<loc>https://www.posecode.org/moves/demi-plie.html</loc>
203-
<lastmod>2026-07-17</lastmod>
204-
<changefreq>weekly</changefreq>
205-
<priority>0.5</priority>
206-
</url>
207207
<url>
208208
<loc>https://www.posecode.org/moves/releve.html</loc>
209209
<lastmod>2026-07-17</lastmod>

playground/src/presets.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ export const PRESETS: Preset[] = [
129129
{ id: "squat", label: "Body-weight squat", domain: "Fitness", bodyPart: "Upper legs", target: "Quadriceps", equipment: "Body weight", difficulty: "Beginner", status: "ready", source: squat },
130130
{ id: "superhero-landing", label: "Superhero three-point landing", domain: "Performance", bodyPart: "Full body", target: "Full body", equipment: "Body weight", difficulty: "Advanced", status: "ready", source: superheroLanding },
131131
{ id: "dance-phrase", label: "Dance phrase (8-count)", domain: "Dance", bodyPart: "Full body", target: "Full body", equipment: "Body weight", difficulty: "Intermediate", status: "experimental", source: dancePhrase },
132+
// Keep one ready Dance entry here so first-seen domain grouping places Dance
133+
// immediately after Performance even when experimental previews are hidden.
134+
{ id: "demi-plie", label: "Demi-plié", domain: "Dance", bodyPart: "Upper legs", target: "Quadriceps", equipment: "Body weight", difficulty: "Beginner", status: "ready", source: demiPlie },
132135
{ id: "deadlift", label: "Deadlift (hip hinge)", domain: "Fitness", bodyPart: "Back", target: "Hamstrings & glutes", equipment: "Body weight", difficulty: "Intermediate", status: "ready", source: deadlift },
133136
{ id: "shoulder-abduction", label: "Shoulder abduction (ROM)", domain: "Education", bodyPart: "Shoulders", target: "Deltoids", equipment: "Body weight", difficulty: "Beginner", status: "experimental", source: shoulderAbduction },
134137
{ id: "front-kick", label: "Front kick", domain: "Martial arts", bodyPart: "Upper legs", target: "Hip flexors", equipment: "Body weight", difficulty: "Intermediate", status: "ready", source: frontKick },
@@ -179,7 +182,6 @@ export const PRESETS: Preset[] = [
179182
{ id: "high-knee-march", label: "High-knee march", domain: "Warm-up", bodyPart: "Full body", target: "Hip flexors", equipment: "Body weight", difficulty: "Beginner", status: "ready", source: highKneeMarch },
180183

181184
// --- Dance / choreography (flagship) ---
182-
{ id: "demi-plie", label: "Demi-plié", domain: "Dance", bodyPart: "Upper legs", target: "Quadriceps", equipment: "Body weight", difficulty: "Beginner", status: "ready", source: demiPlie },
183185
{ id: "releve", label: "Relevé", domain: "Dance", bodyPart: "Lower legs", target: "Calves", equipment: "Body weight", difficulty: "Beginner", status: "ready", source: releve },
184186
{ id: "tendu", label: "Tendu", domain: "Dance", bodyPart: "Upper legs", target: "Hip flexors", equipment: "Body weight", difficulty: "Intermediate", status: "ready", source: tendu },
185187
{ id: "port-de-bras", label: "Port de bras", domain: "Dance", bodyPart: "Shoulders", target: "Deltoids", equipment: "Body weight", difficulty: "Beginner", status: "experimental", source: portDeBras },

playground/test/library-order.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
FEATURED_LIBRARY_MOVEMENT_ID,
44
prioritizeFeaturedMovement,
55
} from "../src/library-order.js";
6+
import { PRESETS } from "../src/presets.js";
67

78
describe("movement library ordering", () => {
89
it("promotes Jumping jacks ahead of otherwise stable results", () => {
@@ -29,4 +30,14 @@ describe("movement library ordering", () => {
2930

3031
expect(prioritizeFeaturedMovement(movements)).toEqual(movements);
3132
});
33+
34+
it("places the ready Dance category immediately after Performance", () => {
35+
const readyDomains = [
36+
...new Set(PRESETS.filter((preset) => preset.status === "ready").map((preset) => preset.domain)),
37+
];
38+
const performanceIndex = readyDomains.indexOf("Performance");
39+
40+
expect(performanceIndex).toBeGreaterThanOrEqual(0);
41+
expect(readyDomains[performanceIndex + 1]).toBe("Dance");
42+
});
3243
});

0 commit comments

Comments
 (0)