@arolariu/components
Version:
๐จ 70+ beautiful, accessible React components built on Base UI. TypeScript-first, CSS Modules styling, tree-shakeable, SSR-ready. Perfect for modern web apps, design systems & rapid prototyping. Zero config, maximum flexibility! โก
315 lines (224 loc) โข 20.1 kB
Markdown
# ๐ Release History
> **Stay updated with the latest improvements, features, and fixes!**
All notable changes to **@arolariu/components** are documented here following [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format and [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## ๐ Latest Releases
### [2.2.0](https://www.npmjs.com/package/@arolariu/components/v/2.2.0) - 2026-05-19
**๐งน Internal โ Code quality**
- ๐ฏ **0 ESLint errors / 0 warnings**: resolved all 95 findings (92 errors + 3 warnings) across 25 files in `packages/components` without adding any new in-source `eslint-disable` comments.
**๐ช Hooks hardening**
- ๐งท **`useClipboard`**: fixed a race condition between concurrent `copy()` calls by extracting timeout scheduling into a synchronous helper. Removed `console.error` noise (errors are already exposed via the returned `error` state).
- ๐ **`useLocalStorage`**: removed `console.error` calls from non-fatal fallback paths (JSON parse failures already return the initial value). Modernized type-narrowing (`instanceof Function` โ `typeof === "function"`).
- ๐๏ธ **`useIntersectionObserver`**: destructured `threshold`/`root`/`rootMargin` into stable locals so React's exhaustive-deps lint passes cleanly.
- ๐ท๏ธ **`useInterval` & `useTimeout`**: renamed internal `savedCallback` ref to `savedCallbackRef` to match the project's ref-naming convention.
- ๐ **`useMergedRefs`**: replaced React-19-deprecated `MutableRefObject` with `RefObject` (whose `.current` is now writable). Restructured loop to avoid `continue`.
- ๐ **`useControllableState`**: inverted negated condition for clarity.
**๐งฉ Components**
- ๐น **forwardRef refactor**: converted 33 `React.forwardRef(function Name(...))` patterns to arrow-callback form across 13 components (`alert-dialog`, `avatar`, `calendar`, `checkbox-group`, `dropdrawer`, `meter`, `navigation-menu`, `progress`, `scratcher`, `separator`, `toast`, `toggle-group`, `toolbar`). Display names preserved.
- ๐ **`combobox`**: migrated internal `<PopoverTrigger asChild>` usage to the modern `render` prop, matching the established pattern in `alert-dialog`, `drawer`, `dropdown-menu`.
- ๐
**`calendar`**: consolidated `react-day-picker` import.
**โ๏ธ Tooling**
- ๐ ๏ธ **ESLint config**: scoped `unicorn/prefer-export-from` and `n/no-unsupported-features/node-builtins` to `off` for `packages/components/**` (the package is browser-only; the import-then-export pattern is required for RSLib dist generation per v2.0.0).
**๐ Migration Guide**
No public API changes. Drop-in replacement for 2.1.x.
---
### [2.1.0](https://www.npmjs.com/package/@arolariu/components/v/2.1.0) - 2026-04-17
**โฌ๏ธ Dependency Updates**
- ๐ฏ **Base UI upgraded to v1.4**: Bumped `@base-ui/react` peer dependency from `^1.3` to `^1.4` ([v1.4.0 release notes](https://github.com/mui/base-ui/releases/tag/v1.4.0)).
**๐ง Base UI 1.4 Highlights** (no breaking changes for consumers of `@arolariu/components`)
- ๐ ๏ธ **General**: More accurate `render` prop warnings; fix for circular JSON `TypeError`; `form` prop exposed on hidden inputs; `suppressHydrationWarning` added to hidden inputs; improved outside-press dismissal in shared shadow roots; `Positioner` now correctly repositions to a different trigger when reopened with `keepMounted`; full-width anchored `modal` popups now lock scroll on touch input.
- ๐ช **Alert Dialog / Dialog**: Fixed detached trigger HMR with recreated handles.
- ๐ **Autocomplete / Combobox**: Initial live region announcements fixed; iOS viewport settling fix; scroll-lock no longer triggered by controlled value re-renders; browser autofill works with object values when autofill uses the label; item taps no longer blur the input; rendered chips respected for keyboard navigation; clicks in `Chips` / `InputGroup` areas now focus the input or open the popup.
- ๐ผ๏ธ **Avatar**: No more flash when the image is cached.
- โ๏ธ **Checkbox**: Uncontrolled default initialization fixed; input state changes prevented in `readOnly` mode.
- ๐ **Collapsible**: Open state fixed when `keepMounted` has no transitions.
- ๐งพ **Drawer**: Touch scroll fixed in portaled popups; nested swipe cancel state fixed; interrupted swipe dismiss cleanup fixed; warning added when a popup is missing `Viewport`; dialogs no longer affect nested drawer stack.
- ๐ท๏ธ **Field**: Form error matching in `<Field.Error>` fixed.
- ๐ **Menu**: `SubmenuTrigger` now respects disabled state from `render`; dialog focus preserved on pointer leave.
- ๐งญ **Navigation Menu**: Invalid `aria-orientation` removed; generic `Value` typing added; initial trigger switch size fix.
---
### [2.0.0](https://www.npmjs.com/package/@arolariu/components/v/2.0.0) - 2026-04-06
**๐ฅ Breaking Changes**
- ๐ **Resizable panels upgraded to v4**: Upgraded `react-resizable-panels` from v3 to v4.
- `direction` prop renamed to `orientation` (e.g., `<ResizablePanelGroup orientation='horizontal'>`)
- Size props now use string percentages instead of numbers (`defaultSize="50%"` instead of `defaultSize={50}`)
- `minSize`, `maxSize`, `collapsedSize` also accept string values (`"20%"`, `"0%"`, etc.)
- Type `ImperativePanelGroupHandle` renamed to `GroupImperativeHandle`
- Type `ImperativePanelHandle` renamed to `PanelImperativeHandle`
- `ResizablePanelGroup` is now a function component (was `ForwardRefExoticComponent`); use the new `useGroupRef()` hook from `react-resizable-panels` for imperative access
- ๐ **Toast module renamed**: Internal module file renamed from `sonner` to `toast` to reflect the Base UI Toast implementation adopted in v1.0.0. Exported names (`Toaster`, `toast`, `Toast`) are unchanged.
**๐ง Improvements**
- ๐ **Fixed rslib bundler compatibility**: Converted all direct re-export statements (`export ... from "external-package"`) to import-then-export pattern across 6 component files (calendar, chart, form, input-otp, resizable, toast). This ensures types and values are properly included in the `/dist/` output.
- ๐ **Storybook stories and tests**: Added comprehensive test suites and story variants for all components (1300+ tests, 439+ story variants)
**๐ Migration Guide**
```diff
- import type {ImperativePanelGroupHandle} from "@arolariu/components";
+ import type {GroupImperativeHandle} from "@arolariu/components";
- <ResizablePanelGroup direction='horizontal'>
- <ResizablePanel defaultSize={50}>
+ <ResizablePanelGroup orientation='horizontal'>
+ <ResizablePanel defaultSize='50%'>
```
---
### [1.1.0](https://www.npmjs.com/package/@arolariu/components/v/1.1.0) - 2026-03-24
**โจ New Features**
- ๐ช **13 new utility hooks**: `useControllableState`, `useEventCallback`, `useMergedRefs`, `useId`, `useOnClickOutside`, `usePrevious`, `useTimeout`, `useDebounce`, `useThrottle`, `useLocalStorage`, `useClipboard`, `useIntersectionObserver`, `useInterval`
- ๐ **Combobox compound component**: searchable dropdown composing Command + Popover + Button with single/multi select, keyboard navigation, and async loading support
- ๐ฌ **Storybook 10 with RSBuild**: full design system documentation with `storybook-react-rsbuild` + `storybook-addon-rslib` integration
- ๐ **439 story variants** across 84 components with component-specific states (disabled, error, loading, sizes, custom content)
- ๐ **MDX documentation pages**: Welcome, Getting Started, and Design Principles
- ๐จ **Design token showcase**: interactive Foundations stories for Colors, Spacing, Border Radius, Typography, Motion, and Component Sizes
- ๐ **Dual light/dark theme** toggle in Storybook toolbar with matching preview backgrounds
- ๐ท๏ธ **Brand identity**: arolariu.ro logo in Storybook sidebar, custom dark + light themes
- ๐ **Sidebar organization**: Introduction โ Foundations โ Components (11 subcategories)
- ๐
**Component status badges**: Stable, New in v1.0 tags on key components
**๐ง Improvements**
- ๐ **forwardRef on 35 additional components** (82 of 84 now support ref forwarding)
- ๐ **Recharts v3.8** โ 48+ chart primitives, 11 hooks, all re-exported
- ๐ **React Hook Form** โ full API surface with `useFormContext`, `useFormState`, `Controller`, 17 types
- โฟ **A11y platform layer**: `VisuallyHidden`, `FocusScope`, `useFocusManager`, `useAnnounce`
- ๐ญ **Motion system**: tokens, presets (fadeIn, slideUp, scaleIn), `Presence`, `Collapse`
- ๐ **Loading patterns**: `CardSkeleton`, `TableSkeleton`, `FormSkeleton`, `ListSkeleton`, `LoadingOverlay`
- ๐ก๏ธ **Error boundaries**: `ErrorBoundary` (class component with retry), `AsyncBoundary` (Suspense + ErrorBoundary)
- ๐ **New components**: `CopyButton`, `Stepper`, `Timeline`
- ๐๏ธ **RSC compatibility**: removed unnecessary `"use client"` from 9 presentational components
- ๐ฆ **Dependency audit**: calendar migrated from deprecated `table` to `month_grid`, carousel axis/orientation fix, all third-party wrapper types exported
**๐ Bug Fixes**
- ๐ Fixed stale closure in `useLocalStorage` setValue (functional state updater)
- ๐ Fixed stale closure in `useControllableState` uncontrolled mode
- ๐ Fixed `useThrottle` callback ref to prevent timer reset on re-render
- ๐ฏ Fixed tooltip z-index stacking context (Positioner needs z-index, not Popup)
- ๐ฏ Fixed Commander layout (removed separators, flex list, scroll support)
- ๐ฏ Fixed tooltip contrast (force child color inheritance)
- ๐ฏ Fixed button.module.css `:disabled` alongside `[data-disabled]`
- ๐ฆ Removed 84 erroneous `.stories` subpath exports from package.json
- ๐ฆ Fixed `sideEffects` glob from `*.css` to `**/*.css` for nested CSS modules
- ๐ฆ Changed all storybook devDependencies from pinned versions to `*` (monorepo pattern)
**๐ Documentation**
- ๐ `MIGRATION.md` โ comprehensive v0.x โ v1.0 migration guide
- ๐ `EXAMPLES.md` โ 10 production-ready pattern recipes
- ๐ `RFC 1006` โ updated to reflect Base UI + CSS Modules architecture
- ๐ Storybook Welcome, Getting Started, Design Principles MDX pages
**๐งช Testing**
- 95%+ line/function/statement coverage, 80%+ branch coverage
- 1300+ tests across 102 test files
- All ESLint errors resolved (0 errors, 0 warnings)
- Storybook build verified clean
---
### [1.0.0](https://www.npmjs.com/package/@arolariu/components/v/1.0.0) - 2026-03-13
**๐ฅ Breaking Changes**
- ๐ **Migrated component primitives from Radix UI to Base UI** using the consolidated `@base-ui/react` package instead of 25+ `@radix-ui/react-*` packages.
- ๐จ **Migrated styling from Tailwind CSS to CSS Modules**. The component library no longer depends on Tailwind utility classes for internal styling.
- ๐งฉ **Variant helper functions remain available**: `badgeVariants`, `buttonVariants`, and `buttonGroupVariants` still exist in the public API, but now use CSS Module class-name maps instead of CVA.
- ๐ **Renamed design tokens to the `--ac-*` namespace**. CSS custom properties are now prefixed consistently, for example `--ac-primary` and `--ac-radius-md`.
- ๐ **Shifted composition toward Base UI's `render` prop**. `asChild` still works as a backward-compatibility shim, but `render` is now the preferred API for new code.
- ๐ **Migrated the toast system from `sonner` to a Base UI Toast-backed implementation** while preserving the existing `Toaster` and `toast` exports.
- โจ๏ธ **Migrated the command palette away from `cmdk`** to a package-native implementation aligned with the new Base UI architecture.
- ๐๏ธ **Migrated `DropDrawer` away from `vaul`** to the Base UI Drawer foundation.
- ๐งน **Removed legacy dependencies**: `@radix-ui/*`, `tailwind-merge`, `class-variance-authority`, `tailwindcss-animate`, `vaul`, `sonner`, and `cmdk`.
**โจ New Features & Improvements**
- ๐ **New components introduced in the 1.0.0 architecture**: `NumberField`, `Meter`, `Toolbar`, and `CheckboxGroup`.
- ๐ง **Simplified class merging**: `cn()` now uses `clsx` only.
- ๐ **Documented dark mode activation** with either a `.dark` class or a `[data-theme="dark"]` attribute.
- ๐๏ธ **Retained the RSLib build pipeline** for ESM output, typings, and source maps.
- ๐ง **All 32 Base UI wrappers use `useRender` + `mergeProps`** โ canonical Base UI composition pattern for proper event handler merging and ref forwarding.
- ๐ท๏ธ **TypeScript namespace types** โ 31 components export `Component.Props` / `Component.State` namespaces for enterprise-grade type consumption.
- ๐ฆ **Re-exported Base UI utilities**: `CSPProvider`, `DirectionProvider`, `mergeProps`, `useRender` for consumer convenience.
- ๐ **Enterprise-grade JSDoc** on all 71 components โ every exported function has `@remarks`, `@example`, `@see`; every prop has `/** description @default */`.
- ๐ชช **`displayName`** set on all exported components for React DevTools and error stack traces.
- ๐งช **53 Vitest test files** covering all 71 components with smoke, ref, className, interaction, and accessibility tests.
- ๐ฆ **Test files excluded from npm publish** โ `*.test.*`, `*.spec.*`, `*.stories.*` stripped from published package.
### [0.5.0](https://www.npmjs.com/package/@arolariu/components/v/0.5.0) - 2026-01-16
**โจ New Features & Improvements**
- ๐ **Renamed `gradient-utils` to `color-conversion-utilities`** with more descriptive function names:
- `hexToHsl` โ `convertHexToHslString`
- `hslToHex` โ `convertHslToHexString`
- `isValidHexColor` โ `validateHexColorFormat`
- `getComplementaryColor` โ `calculateComplementaryHexColor`
- `adjustLightness` โ `adjustHexColorLightness`
- `parseHslString` โ `parseHslStringToComponents`
- ๐ **Legacy aliases maintained** for backwards compatibility (deprecated)
### [0.4.2](https://www.npmjs.com/package/@arolariu/components/v/0.4.2) - 2025-12-18
**โจ New Features & Improvements**
- ๐ **New Component: `CardAction`** - A component for adding actions to cards.
### [0.4.1](https://www.npmjs.com/package/@arolariu/components/v/0.4.1) - 2025-12-08
**๐ง Bug Fixes & Maintenance**
- โฌ๏ธ **Recharts V3** Upgraded chart.tsx to use Rechars v3.5
### [0.4.0](https://www.npmjs.com/package/@arolariu/components/v/0.4.0) - 2025-12-05
**โจ New Features & Improvements**
- ๐ Switched to Trusted Publishing workflow for attestation of package.
- Removed storybook stories for now, will re-introduce at a later date.
### [0.3.1](https://www.npmjs.com/package/@arolariu/components/v/0.3.1) - 2025-11-11
**๐ง Bug Fixes & Maintenance**
- ๐ **Linting** Migrated from deprecated ElementRef to ComponentRef.
### [0.3.0](https://www.npmjs.com/package/@arolariu/components/v/0.3.0) - 2025-11-10
**โจ New Features & Improvements**
- ๐ **New Component: `ButtonGroup`** - A group of buttons that behave as a single unit.
- ๐ **New Component: `EmptyState`** - A component to display an empty state with a message and illustration.
- ๐ **New Component: `Field`** - A component for form fields.
- ๐ **New Component: `InputGroup`** - A component for grouping input elements.
- ๐ **New Component: `Item`** - A component for displaying a single item in a list.
- ๐ **New Component: `Kbd`** - A component for displaying keyboard shortcuts.
- ๐ **New Component: `Spinner`** - A component for displaying a loading spinner.
### [0.2.0](https://www.npmjs.com/package/@arolariu/components/v/0.2.0) - 2025-10-01
**โจ New Features & Improvements**
- โ๏ธ **Migrated tooling to monorepo-based NPM+NX** for better package management and development experience.
- โฌ๏ธ **Updated rslib/rsbuild** core packages to latest versions.
### [0.1.2](https://www.npmjs.com/package/@arolariu/components/v/0.1.2) - 2025-09-08
**๐ง Dependencies & Infrastructure**
- โฌ๏ธ **Updated rslib/rsbuild** core packages to latest versions.
- ๐ **useWindowSize Hook** Added new hook to get window dimensions.
### [0.1.1](https://www.npmjs.com/package/@arolariu/components/v/0.1.1) - 2025-08-25
**๐ง Dependencies & Infrastructure**
- โฌ๏ธ **Upgraded Radix UI** packages to latest versions for better performance.
- โฌ๏ธ **Updated rslib/rsbuild** core packages to latest versions.
- ๐ **Typewriter Component** Added new component from Aceternity UI.
- โฌ๏ธ **Recharts V3** Upgraded chart.tsx to use Rechars v3.
### [0.1.0](https://www.npmjs.com/package/@arolariu/components/v/0.1.0) - 2025-08-12
**๐ง Dependencies & Infrastructure**
- ๐ฅ **Breaking Change: Only export ESM format** starting from this version.
- โฌ๏ธ **Upgraded Radix UI** packages to latest versions for better performance.
- โฌ๏ธ **Updated rslib/rsbuild** core packages to latest versions.
### [0.0.40](https://www.npmjs.com/package/@arolariu/components/v/0.0.40) - 2025-07-25
**๐ง Dependencies & Infrastructure**
- โฌ๏ธ **Upgraded Radix UI** packages to latest versions for better performance.
- โฌ๏ธ **Updated rslib/rsbuild** core packages to latest versions.
### [0.0.39](https://www.npmjs.com/package/@arolariu/components/v/0.0.39) - 2025-06-25
**๐ง Dependencies & Infrastructure**
- โฌ๏ธ **Upgraded Radix UI** packages to latest versions for better performance.
- โฌ๏ธ **Updated rslib/rsbuild** core packages to latest versions.
- โฌ๏ธ **Bumped Storybook** to v8 with enhanced documentation features.
- ๐ **Fixed broken anchor links** in readme.md file.
### [0.0.38](https://www.npmjs.com/package/@arolariu/components/v/0.0.38) - 2025-05-16
**โจ Features & Documentation**
- โฌ๏ธ **Radix UI updates** - Latest component primitives.
- โฌ๏ธ **Build tool updates** - Enhanced rslib/rsbuild packages.
- ๐ **Complete Storybook coverage** - Interactive stories for all major components.
- ๐ **New Component**: `DropDrawer` - Advanced drawer with drop zones.
- Thanks to [Jia Wei Ng](https://github.com/jiaweing/DropDrawer) for the contribution! ๐
### [0.0.37](https://www.npmjs.com/package/@arolariu/components/v/0.0.37) - 2025-04-20
**๐จ Component Library Expansion**
- โฌ๏ธ **Radix UI updates** - Latest component primitives.
- ๐ **Enhanced README** - Better documentation for new components.
- โจ **9 new Animate-UI components** - Beautiful animations out of the box.
- ๐ช **2 new Magic-UI components** - Enhanced utility components.
- ๐ญ **1 new Aceternity-UI component** - Creative design patterns.
### [0.0.36](https://www.npmjs.com/package/@arolariu/components/v/0.0.36) - 2025-04-17
**๐ Package Manager Migration**
- ๐ฆ **Migrated from npm to Yarn** - Better dependency management and performance.
- โฌ๏ธ **Updated ShadCN packages** - Latest component definitions and patterns.
### [0.0.35](https://www.npmjs.com/package/@arolariu/components/v/0.0.35) - 2025-04-08
**๐ ๏ธ Build System Overhaul**
- ๐ง **Vite โ Rslib migration** - Faster builds and better tree-shaking.
- ๐
**Calendar component upgrade** - Updated from v8 to v9 with new features.
### [0.0.34](https://www.npmjs.com/package/@arolariu/components/v/0.0.34) - 2025-03-27
**๐งน Dependency Cleanup**
- โฌ๏ธ **Package version updates** - Latest stable versions.
- โ **Removed daisyUI dependency** - Cleaner build without unused CSS framework.
- ๐งฝ **De-duplicated yarn.lock** - Optimized dependency tree.
### [0.0.33](https://www.npmjs.com/package/@arolariu/components/v/0.0.33) - 2025-03-13
**๐ฏ Developer Experience**
- โจ **Added `toast` function** - Programmatic toast notifications with the `Toast` components.
### [0.0.32](https://www.npmjs.com/package/@arolariu/components/v/0.0.32) - 2025-03-05
---
**[๐ฆ View on npm](https://www.npmjs.com/package/@arolariu/components)** โข **[โญ Star on GitHub](https://github.com/arolariu/arolariu.ro)**