# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.0] - 2025-01-18

### 🎉 New Features

- 📱 **MobileBottomNav Component** - Complete mobile bottom navigation system
- 🎨 **3 Visual Variants** - Glassmorphism, Solid, and Headless variants
- 📏 **3 Size Presets** - SMALL (56px), MEDIUM (72px), LARGE (88px)
- ⚡ **Motion Animations** - Spring and tween animations with Framer Motion
- 🎯 **Badge Support** - Number badges and dot indicators
- 🏷️ **Flexible Label Positions** - BELOW, BESIDE, or HIDDEN labels
- 🔧 **Complete Slot Architecture** - Root, NavList, NavItem, Spacer components

### 🛠️ Technical Features

- 🍎 **iOS 26 Safari Compatibility** - Fixes viewport bugs with floating address bar
- 📱 **Safe Area Support** - Automatic handling for notched devices
- ♿ **Full WAI-ARIA Support** - Complete accessibility implementation
- 🎭 **Advanced Glassmorphism** - Configurable blur, saturation, opacity
- 🎪 **Mobile-First CSS** - 571 lines of mobile-optimized styles
- 🔄 **Animation Configuration** - Spring physics and tween timing
- 🎨 **Custom Borders & Corners** - Flexible radius and spacing options

### 🧩 Components Added

#### MobileBottomNav System
- `MobileBottomNav.Root` - Main container with variant and size options
- `MobileBottomNav.NavList` - Flex container with justify options
- `MobileBottomNav.NavItem` - Interactive navigation items
- `MobileBottomNav.Spacer` - Content spacer to prevent overlap

#### Utilities & Hooks
- `useIOSSafariFix` - iOS Safari viewport detection and fixes
- `useIOSFixedReset` - Fixed positioning reset after keyboard dismissal
- `detectIOSVersion` - iOS version detection utility

### 📚 Documentation

- ✅ **Complete README Section** - MobileBottomNav documentation
- 🎪 **Interactive Playground Demo** - Real-time configuration testing
- 📖 **Comprehensive Examples** - All variants and features demonstrated
- 🔍 **API Documentation** - Full TypeScript interfaces and enums

### 🎨 Styling & CSS

- **571 lines of mobile optimizations** - Touch targets, viewport units, safe areas
- **iOS 26 specific workarounds** - Fixed positioning, keyboard dismissal
- **Responsive design** - Landscape orientation, foldable support
- **Accessibility features** - High contrast mode, reduced motion
- **Print styles** - Proper hiding on print media

### 📦 Package Updates

- **Updated description** - Added mobile bottom navigation
- **Extended keywords** - mobile, bottom-nav, navigation, ios
- **Enhanced exports** - All MobileBottomNav components and types
- **Motion dependency** - Framer Motion for animations

### 🔧 Developer Experience

- **Full TypeScript Support** - Complete type definitions
- **Extensive Configuration** - Highly customizable via props
- **Error Handling** - Proper React error boundaries
- **Performance Optimized** - Tree-shakeable and minimal bundle impact

## [0.1.0] - 2025-01-18

### Added

- 🎉 Initial release of `@mks2508/sidebar-headless`
- 🎨 Headless architecture with primitive components
- ⌨️ Full keyboard navigation support (arrows, Home, End)
- ♿ WAI-ARIA accessibility compliant
- 🎭 Advanced animations:
  - Fluid hover indicators with spring physics
  - Glassmorphism effects (optional)
  - 3D tooltip title animations
  - Chromatic aberration effects (experimental)
- 🔧 Highly configurable:
  - Collapse modes (collapse/hide)
  - Layout behaviours (floating/inline)
  - Custom dimensions and animations
  - Visual style presets
- 🎨 Dark/light mode support via CSS tokens
- 📦 Minimal dependencies (clsx + tailwind-merge)
- 🎯 Full TypeScript support with comprehensive type definitions
- 📚 Complete JSDoc documentation

### Components

- `Sidebar` - Root provider component
- `SidebarNav` - Navigation container
- `SidebarToggle` - Toggle button
- `SidebarContent` - Items container
- `SidebarItem` - Navigation item
- `SidebarIndicator` - Visual hover indicator
- `SidebarFluidIndicator` - Advanced glassmorphism indicator
- `SidebarSafeArea` - Top/bottom safe areas
- `SidebarSubContent` - Tooltip sub-content container
- `SidebarSubLink` - Tooltip navigation link
- `SidebarTooltip` - Generic tooltip component

### Hooks

- `useSidebarContext` - Access sidebar context
- `useSidebarKeyboard` - Keyboard navigation
- `useSidebarIndicator` - Visual indicator management
- `useSubContent` - Sub-content registration

### Features

- Controlled and uncontrolled mode support
- Render props for state access
- Polymorphic components (customizable element types)
- CSS-first approach with `:has()` selector
- Tree-shakeable exports
- Source maps for debugging

[0.2.0]: https://github.com/mks2508/sidebar-headless/releases/tag/v0.2.0
[0.1.0]: https://github.com/mks2508/sidebar-headless/releases/tag/v0.1.0
