Migrating from LessonKit 1.2.x to 1.3.0¶
Summary¶
Area |
1.2.x |
1.3.0 |
|---|---|---|
Compound containers |
|
+ |
Slide navigation |
— |
Keyboard: Arrow keys, Home, End |
Telemetry |
v3 ( |
+ |
Block catalog v3 |
24 entries |
+ |
Additive API¶
import { Slide, SlideDeck } from "@lessonkit/react";
import type { CompoundHandle } from "@lessonkit/react";
Example:
<SlideDeck blockId="onboarding-deck" title="New hire onboarding" showDeckScore>
<Slide blockId="slide-intro" title="Welcome">
<Text>Welcome aboard.</Text>
</Slide>
<Slide blockId="slide-quiz" title="Check">
<TrueFalse checkId="ppe-tf" question="PPE required?" answer={true} />
</Slide>
</SlideDeck>
SlideDeck implements CompoundHandle (score aggregation, resume, session persistence) using the same machinery as InteractiveBook.
Slide allowlist¶
Slide children mirror Page minus ProgressTracker. Nested compounds (Page, InteractiveBook, SlideDeck, AssessmentSequence) are excluded. Planned expansions: Video, Summary (see H5P capability map).
Telemetry¶
SlideDeckemitsslide_viewedwith{ blockId, slideIndex, slideTitle }.Each visible
Slideemitscompound_page_viewedwithparentType: "SlideDeck".
lessonkit.json¶
Compound
blockIdvalues onSlideDeckare not LMSlessonIds.Scored children still use
assessments[]withcheckId(unchanged from 1.2.x).
Golden example¶
The examples/slide-deck app demonstrates a four-slide deck with TrueFalse scoring and lessonkit.json parity.