Tous les exports
Chaque nom qu’exportent les 11 paquets, lu dans leurs points d’entrée. Tapez un nom, ou filtrez par nature.
96 exports11 paquetsDernière version 2026-10-04
/
Rien en attente
Rien de fusionné depuis la dernière version. Un changement fusionné dans main s’affiche ici, dans les mots de son auteur, jusqu’à sa publication.
Tous les exports, groupés par paquet, la version la plus récente d’abord
@adrienlcp/i18n
Version la plus récenteA typed i18n library in five files, with no dependencies, built on Intl0.3.02026-10-0424 exportsDictionaryLoaderA dictionary the bundler is told to split out —() => import('./fr').@adrienlcp/Typei18n I18n@adrienlcp/Typei18n createI18nBinds every locale to its dictionary once, so that afterwards a locale is all anyone passes.@adrienlcp/Fonctioni18n PluralFormsA placeholder written{name}is text and takes a string.@adrienlcp/Typei18n RelativeTimeIntl.RelativeTimeFormatformats a number of something, and the message cannot say which — so the unit is declared here, per placeholder, and the caller passes the count alone.@adrienlcp/Typei18n TranslationOptions@adrienlcp/Typei18n OptionsFor@adrienlcp/Typei18n DefinedTranslation@adrienlcp/Typei18n defineTranslationPairs a message with what its placeholders need beyond the value itself.@adrienlcp/Fonctioni18n DictionaryA tree of messages for one locale: every leaf is a sentence, every branch a namespace.@adrienlcp/Typei18n WellFormedA bare string is enough until a placeholder needs alternatives to choose between — and{n:plural}or{n:enum}written as one resolves toneverhere rather than putting the raw key on screen at runtime.@adrienlcp/Typei18n defineDictionaryThe reference dictionary — the one every key and every value is typed from.@adrienlcp/Fonctioni18n DictionaryForWhat a second locale owes the reference one: the same tree down to the same leaves, and for a leaf whose placeholders carry alternatives, its own alternatives in the same shape.@adrienlcp/Typei18n MatchingDictionaryWhat a second locale owes the reference beyond its shape: the same placeholders, in the same message.@adrienlcp/Typei18n DotPathEvery leaf, as the dotted path that reaches it.@adrienlcp/Typei18n LeafAt@adrienlcp/Typei18n FormattableDateWhat a{x:date}placeholder takes: aDate, or aTemporal.Instant,Temporal.PlainDate,Temporal.PlainDateTime,Temporal.PlainTimeorTemporal.ZonedDateTime, handed toIntl.DateTimeFormatas they are.@adrienlcp/Typei18n ValuesFor@adrienlcp/Typei18n RichValuesForWhat a rich rendering asks for: the message's values, plus one function per marked span.@adrienlcp/Typei18n PlainKeyA key whose message carries no placeholder, so it renders from nothing but itself.@adrienlcp/Typei18n ParameterizedKey@adrienlcp/Typei18n negotiateLocaleThe locale to open on, out of what the caller asked for.@adrienlcp/Fonctioni18n Translator@adrienlcp/Typei18n createTranslatorThe reference dictionary is the contract and every locale is an implementation of it, so the keys and their values are typed from the reference even when the strings being read are another language's.@adrienlcp/Fonctioni18n
@adrienlcp/react
Generic React helpers: a context that names its missing provider, and an element that finishes its exit transition before unmounting0.3.02026-10-035 exportsAnimateProps@adrienlcp/Typereact AnimateMounts and unmounts an element without cutting its exit short.@adrienlcp/Composantreact createSafeContext[Context, useSafeContext, useOptionalContext]for one value.@adrienlcp/Fonctionreact StaggerStyle@adrienlcp/Typereact staggerStyleHands an item its place in a list to its stylesheet, which turns it into a delay:calc(var(--stagger-index) * var(--transition-fast))on the way in,calc((var(--stagger-count) - 1 - var(--stagger-index)) * var(--transition-fast))to leave in reverse.@adrienlcp/Fonctionreact
@adrienlcp/react-router
react-aria links that navigate through react-router: a RouterProvider wired to useNavigate, external URLs left alone, NavigateOptions typed on every link0.1.12026-10-034 exportsAriaRouterProviderProps@adrienlcp/Typereact-router AriaRouterProviderreact-aria'sRouterProviderwired to react-router: anhrefon any react-ariaLink,MenuItemorListBoxItembelow it becomes a client-side navigation instead of a page load, itsrouterOptionsare forwarded tonavigate, and an external URL is left as it is.@adrienlcp/Composantreact-router ignoreSupersededNavigationA navigation superseded by the next one rejects withAbortError, more often with view transitions on: expected control flow, not a failure.@adrienlcp/Fonctionreact-router useRouterHrefreact-router'suseHref, except for an absolute URL, which comes back untouched:useHrefresolves every href against the current route, sohttps://example.comwould come out as/current/route/https:/example.com.@adrienlcp/Hookreact-router
@adrienlcp/styles
A reset, a reduced-motion switch, Sass mixins for self-hosted fonts, container queries and a breakpoint, and a WCAG contrast check for colour tokens0.5.02026-10-0315 exports$wide-screenWhere a screen stops being a phone's.@adrienlcp/Sassstyles/ breakpoints widewideandnarroware exact complements: every width is one or the other.@adrienlcp/Sassstyles/ breakpoints narrow@adrienlcp/Sassstyles/ breakpoints containerMakes the element a container its descendants query by inline size.@adrienlcp/Sassstyles/ containers container-wideMatches when the nearest container — or the one named — is at least$widthwide.@adrienlcp/Sassstyles/ containers container-narrowThe exact complement ofcontainer-widefor the same$widthand$name.@adrienlcp/Sassstyles/ containers WCAG_AAWCAG 2.2 level AA minimum contrast ratios.@adrienlcp/Constantestyles/ contrast ContrastPairTwo tokens that meet on screen, named as declared:{ foreground: '--ink', background: '--ground', minimum: WCAG_AA.text }.@adrienlcp/Typestyles/ contrast ContrastFailure@adrienlcp/Typestyles/ contrast findContrastFailuresEvery pair below its minimum, in either scheme, read straight from the stylesheet that declares the tokens.@adrienlcp/Fonctionstyles/ contrast $latinThe two subsets Google Fonts cuts a Latin face into: a page in English or French downloads the first file only.@adrienlcp/Sassstyles/ fonts $latin-ext@adrienlcp/Sassstyles/ fonts font-faceOne self-hostedwoff2file.@adrienlcp/Sassstyles/ fonts @adrienlcp/styles/ reduced-motion.css @adrienlcp/Fichierstyles/ reduced-motion.css @adrienlcp/styles/ reset.css @adrienlcp/Fichierstyles/ reset.css
@adrienlcp/biome-config
Biome lint and format settings: single quotes, no semicolons, sorted keys and imports, no floating promises0.1.02026-09-292 exports@adrienlcp/browser
Browser calls that hide a trap: a clipboard copy that works over plain HTTP, a wake lock that survives the tab going away, the reduced-motion preference0.1.12026-09-299 exportscopyTextCopiestextto the clipboard.@adrienlcp/Fonctionbrowser StopKeepingScreenAwakeStops holding the screen awake and releases the lock if it is held.@adrienlcp/Typebrowser keepScreenAwakeHolds the screen awake until the returned function is called, taking the lock again every time the document comes back into view: a browser releases it when the tab is hidden and never gives it back on its own.@adrienlcp/Fonctionbrowser REDUCED_MOTION_QUERY@adrienlcp/Constantebrowser prefersReducedMotionWhether the reader asked the system for less motion.@adrienlcp/Fonctionbrowser subscribeToReducedMotionCallslistenerwhenever the preference changes; returns the unsubscribe.@adrienlcp/Fonctionbrowser selectContentsSelects everything insidenode, so a reader can finish a refused copy with a keystroke.@adrienlcp/Fonctionbrowser usePrefersReducedMotionThe reduced-motion preference, re-rendering when the reader changes it.@adrienlcp/Hookbrowser/ react useScreenAwakeHolds the screen awake whileisWantedis true and the component is mounted.@adrienlcp/Hookbrowser/ react
@adrienlcp/react-aria
What every react-aria app of mine repeats: a className merge that follows the render state, and a Sass focus ring on data-focus-visible0.1.02026-09-297 exportsClassNameRenderPropsThe render state react-aria hands aclassNamefunction.@adrienlcp/Typereact-aria composeClassNameMerges a component's own class names with theclassNameits caller passed.@adrienlcp/Fonctionreact-aria $ring-widthConfigure once, in the app's own_focus.sass:@forward '@adrienlcp/react-aria/focus' with ($ring-color: var(--focus)).@adrienlcp/Sassreact-aria/ focus $ring-color@adrienlcp/Sassreact-aria/ focus $ring-offset@adrienlcp/Sassreact-aria/ focus ringreact-aria stampsdata-focus-visibleon keyboard focus only, and on the element it styles: a control built over a hidden input rings through it alone.@adrienlcp/Sassreact-aria/ focus ring-insetThe ring drawn inside the box, for an element a clipping ancestor would cut.@adrienlcp/Sassreact-aria/ focus
@adrienlcp/theme-preference
Light, dark or system theme with no flash on load, and a browser toolbar that follows the choice0.3.02026-09-2915 exportsTHEME_COLOR_SELECTOREach tag names the scheme it colours:<meta name="theme-color" data-scheme="dark">.@adrienlcp/Constantetheme-preference themeColorMediaForThemediaatheme-colortag of the given scheme must carry.@adrienlcp/Fonctiontheme-preference applyThemePreferenceStampsdata-themeon<html>for an explicit scheme, removes it for'system'so the stylesheet'sprefers-color-schemerules answer, and points everytheme-colortag at the same palette.@adrienlcp/Fonctiontheme-preference prePaintScriptForThe inline script that applies a stored explicit scheme before the first paint, so the page never flashes the system palette first.@adrienlcp/Fonctiontheme-preference COLOR_SCHEMES@adrienlcp/Constantetheme-preference ColorSchemeA palette the page can be painted in.@adrienlcp/Typetheme-preference THEME_PREFERENCES@adrienlcp/Constantetheme-preference ThemePreferenceWhat the visitor chose.@adrienlcp/Typetheme-preference isColorScheme@adrienlcp/Fonctiontheme-preference isThemePreference@adrienlcp/Fonctiontheme-preference ThemePreferenceStore@adrienlcp/Typetheme-preference createThemePreferenceStoreOne store per page, so every switch showing the theme reads the same choice.@adrienlcp/Fonctiontheme-preference @adrienlcp/theme-preference/ color-scheme.css @adrienlcp/Fichiertheme-preference/ color-scheme.css useThemePreferenceThe store's preference, re-rendering every component that shows it when it changes.@adrienlcp/Hooktheme-preference/ react themePreferencePluginAppends the pre-paint script to the<head>of every page Vite serves or builds, after thetheme-colortags.@adrienlcp/Fonctiontheme-preference/ vite
@adrienlcp/tsconfig
The strictest TypeScript settings, for a type-check-only project bundled by something else0.1.02026-09-292 exports@adrienlcp/result
A success-or-failure value with no exceptions and no nulls0.1.02 exports@adrienlcp/safe-storage
localStorage that never throws: every read, write and removal returns a Result, and typed reads check what they find0.1.011 exportsreadRecognizedTextThe text stored underkey, narrowed byisRecognized— a locale, a theme, any closed set of strings.@adrienlcp/Fonctionsafe-storage readStoredJsonThe JSON stored underkey, parsed and narrowed byisValue.@adrienlcp/Fonctionsafe-storage readStoredTextThe text stored underkey, ornullwhen nothing is: an absence, never a failure.@adrienlcp/Fonctionsafe-storage removeStoredRemoves whatever is stored underkey; a missing key is not a failure.@adrienlcp/Fonctionsafe-storage StorageUnavailablelocalStoragethrew on access: a Safari private window, storage blocked by the user or a policy, or nolocalStorageat all, as on a server.@adrienlcp/Typesafe-storage StoredValueUnrecognizedSomething is stored under the key, but not a value the caller recognizes.@adrienlcp/Typesafe-storage StorageQuotaExceededThe browser refused the write because the origin's storage is full.@adrienlcp/Typesafe-storage StorageReadError@adrienlcp/Typesafe-storage StorageWriteError@adrienlcp/Typesafe-storage writeStoredJsonStoresvalueas JSON underkey, refused likewriteStoredText.@adrienlcp/Fonctionsafe-storage writeStoredTextStorestextunderkey.@adrienlcp/Fonctionsafe-storage