All notable changes to Panorama will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- TextFieldViewlet: Full-featured text input component with keyboard support
- Cross-platform text input (iOS UITextInputDelegate, macOS NSTextInputClient)
- Focus management with visual cursor
- Placeholder text support
- Customizable styling (colors, fonts, corner radius)
- Event callbacks for text changes and return key
- NoteCardViewlet: Draggable sticky note component
- Drag to reposition
- Delete button functionality
- Customizable colors and fonts
- Drop shadow effects
- FormExampleViewlet: Example implementation showing form layouts
- Comprehensive Getting Started Guide with architecture details
- API Reference documentation
- Migration Guide for upgrading from older versions
- Xcode Configuration Guide
- Modernized codebase to Swift 5.9+
- Replaced ZKit dependency with built-in XPlatform module
- Enhanced type safety throughout the framework
- Improved memory management with proper weak references
- Updated
findViewletmethod parameter frompointtoatfor clarity - Made ButtonViewlet properties public for external access
- Critical: Fixed infinite recursion in
findViewlet(at:)method- Added bounds checking before recursing through subviewlets
- Prevents stack overflow with circular viewlet references
- Critical: Fixed touch handling recursion for nested Panoramas
- Added type checking to prevent forwarding touches to Panorama instances
- Prevents infinite recursion in touch event handling
- Critical: Fixed touch location calculation stack overflow
- Modified
location(in:)to get coordinates directly from content view - Avoids circular calls between UITouch and Panorama
- Modified
- Critical: Fixed upside-down rendering on iOS platforms
- Removed unnecessary coordinate flipping in PanoramaBackView for iOS
- iOS UIView already provides a flipped context, no additional flipping needed
- Critical: Fixed inconsistent text rendering on macOS
- Updated Viewlet's drawText method to use NSAttributedString.draw() on macOS
- Ensures all text renders correctly without manual coordinate flipping
- Improved: iOS text rendering now uses UIKit's native string drawing
- Changed from Core Text with manual coordinate flipping to UIGraphicsPushContext/PopContext
- Fixes issues where some labels appeared upside down after TextFieldViewlet rendering
- Provides more consistent text rendering across all viewlet types
- ZKit dependency (functionality integrated or replaced)
- Deprecated support email from documentation
Initial release with basic Panorama functionality.