Skip to content

Releases: edadma/riposte

v0.2.0

04 Jun 01:12

Choose a tag to compare

Riposte 0.2.0 — a React-shaped virtual-DOM stack for Scala.js.

This release adds two new library artifacts and broadens the component and docs coverage. All six modules publish to Maven Central under io.github.edadma for Scala.js 1 / Scala 3.

New artifacts

  • riposte-query — a TanStack-Query-style async data layer built on riposte-atoms: keyed query cache with SWR, in-flight dedup, prefix invalidation, retry/backoff, focus/reconnect refetch, useMutation with optimistic updates + rollback, useInfiniteQuery (bidirectional), and request cancellation via AbortSignal.
  • riposte-forms — a react-hook-form-style form layer over the core public API: uncontrolled ref-based fields (typing never re-renders), useForm/register/handleSubmit/formState, Controller for controlled components, useWatch, useFieldArray (dynamic keyed rows), and async resolver/validation.

Highlights since 0.1.0

  • riposte (core): hand-expanded builder DSL (sectioning/forms/tables/media tags, ARIA/data helpers, full pointer/keyboard/drag/touch events), SVG namespacing, portals, error boundaries, unsafeHtml, EnumAttrKey, defaultValue/defaultChecked, and new DOM hooks (useClickOutside, useIntersectionObserver, useMediaQuery, useEventListener, useResizeObserver, useFocusTrap).
  • riposte-router: nested routes + Outlet/index, NavLink, useSearchParams, lazyView code-split routes, Route.catchErrors, ScrollRestoration, and useQueryState.
  • riposte-salle: many new components — Tabs, Tooltip, Toast, Pagination, Menu/Dropdown, Modal, Drawer, Carousel/Hero, Lightbox, Layout/Navbar/Footer, Segmented, Breadcrumb, Descriptions, Empty, Skeleton, Badge/Tag, and more — with a Skin abstraction (native + DaisyUI) and a Playwright e2e harness.
  • riposte-atoms: writable/derived/action atoms, Provider-scoped stores, selectAtom/atomFamily/onMount/atomWithStorage, and loadable async atoms.