Repository navigation
v1.0.0
The first stable release, published to npm as latest (npm install @cloudlet/toast). The API is the
one of 1.0.0-rc.3 plus one diagnostic code; it follows semantic versioning from here. After the release the
remaining manual checks passed on this version: VoiceOver on iOS, NVDA, TalkBack, physical phones,
Windows High Contrast and the minimum browser versions (the documentation's Accessibility page).
Performance
Toasterloads its renderer (host, motion, cards, gestures, announcer) as a separate chunk through
import(), once per page, on the client after mount. The JavaScript an app pays for at start drops
from 27953 to 8602 B min+gzip; the renderer chunk follows right after. Notifications shown meanwhile
wait in the controller. NoReact.lazyorSuspenseis needed in the app, and server rendering is
unchanged: Toaster renders nothing on the server.
API
- New diagnostic
renderer-load-error: the renderer chunk failed to load (offline, for example). The
notifications wait in the controller, and the next Toaster mount loads the chunk again.
Fixes
- The Island's background no longer counts as layout shift while it morphs at the bottom edge: it is
placed with a transform instead ofbottom: 0. Pixels are unchanged. - On a slow first frame, the queue aggregate ("2 notifications queued") was spoken alone before the
newest record's title. The announcer now waits until the pill is readable and speaks the title first
and the queue after it, as on fast devices.
shadcn item
- The wrapper takes a controller that may still be
null(ReactCloudletController | null), so an app
can render it before its client owner has created the controller.