
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
react-motion-modal
Advanced tools
Typed, awaitable modal flows for React, with headless Motion presets and deterministic orchestration.
Typed, awaitable modal flows for React, with headless Motion presets and deterministic orchestration.
npm install react-motion-modal motion zustand
import 'react-motion-modal/style.css';
import {
createModalSystem,
defineModal,
ModalProvider,
type ModalRenderProps,
motionPresets,
} from 'react-motion-modal';
type ConfirmInput = { title: string };
function ConfirmModal({
input,
resolve,
cancel,
}: ModalRenderProps<ConfirmInput, boolean>) {
return (
<section>
<h2>{input.title}</h2>
<button onClick={() => cancel()}>Cancel</button>
<button onClick={() => resolve(true)}>Confirm</button>
</section>
);
}
const modals = createModalSystem({
confirm: defineModal({
component: ConfirmModal,
preset: motionPresets.dialog(),
policy: 'singleton',
}),
});
export function App() {
return <ModalProvider system={modals} />;
}
const outcome = await modals.open('confirm', {
title: 'Delete this item?',
});
if (outcome.status === 'resolved' && outcome.value) {
await deleteItem();
}
defineModal() binds a component to its input, result, preset, defaults, and
policy.createModalSystem() creates an isolated registry and stack.system.open() returns Promise<ModalOutcome<Result>>.system.cancel() cancels the active modal.system.cancelAll() cancels the full stack.ModalProvider handles portal rendering, focus, Escape, backdrop
cancellation, scroll lock, and provider cleanup.motionPresets.dialog(), .drawer(), and .sheet() provide headless motion.Policies are stack (default), replace, and singleton.
The stylesheet contains structural layout only. Applications own all visual styling.
Full documentation: https://sonnv1912.github.io/react-motion-modal/
FAQs
Typed, awaitable modal flows for React, with headless Motion presets and deterministic orchestration.
The npm package react-motion-modal receives a total of 64 weekly downloads. As such, react-motion-modal popularity was classified as not popular.
We found that react-motion-modal demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.