|
| 1 | +# @dschz/solid-uplot |
| 2 | + |
| 3 | +## 0.1.0 |
| 4 | + |
| 5 | +### Summary |
| 6 | + |
| 7 | +This is the initial release of **@dschz/solid-uplot** - A comprehensive SolidJS wrapper for uPlot with an ehanced plugin system that features a plugin bus architecture. |
| 8 | + |
| 9 | +### ✨ Core Features |
| 10 | + |
| 11 | +- **SolidUplot Component**: Fully reactive SolidJS wrapper around uPlot with fine-grained control over chart lifecycle |
| 12 | +- **Auto-resize Support**: Built-in responsive sizing with `autoResize` prop for automatic container adaptation |
| 13 | +- **TypeScript Support**: Complete TypeScript definitions with full type safety throughout the API |
| 14 | +- **Plugin Bus System**: Advanced inter-plugin communication system with reactive message passing |
| 15 | + |
| 16 | +### 🔌 Plugin System |
| 17 | + |
| 18 | +- **Type-safe Plugin Architecture**: Strongly typed plugin factory system with message bus integration |
| 19 | +- **Plugin Bus**: Reactive store for plugin-to-plugin and external component communication |
| 20 | +- **Extensible Design**: Open architecture for creating custom plugins that integrate seamlessly |
| 21 | + |
| 22 | +### 🎨 Built-in Plugins |
| 23 | + |
| 24 | +#### Cursor Plugin (`cursor`) |
| 25 | + |
| 26 | +- Tracks cursor position and interaction state across charts |
| 27 | +- Provides reactive cursor data through the plugin bus |
| 28 | +- Foundation for other interactive plugins |
| 29 | + |
| 30 | +#### Focus Series Plugin (`focusSeries`) |
| 31 | + |
| 32 | +- Highlights series based on cursor proximity with configurable pixel threshold |
| 33 | +- Automatic series alpha adjustment for visual emphasis |
| 34 | +- Integrates with cursor plugin for seamless interaction |
| 35 | + |
| 36 | +#### Tooltip Plugin (`tooltip`) |
| 37 | + |
| 38 | +- Custom SolidJS component rendering for tooltips |
| 39 | +- Automatic positioning with edge detection and overflow handling |
| 40 | +- Scroll-aware positioning that works with page scrolling |
| 41 | +- Configurable placement preferences (`top-left`, `top-right`, `bottom-left`, `bottom-right`) |
| 42 | +- Accessible tooltip with proper ARIA attributes |
| 43 | + |
| 44 | +#### Legend Plugin (`legend`) |
| 45 | + |
| 46 | +- Custom SolidJS component rendering for legends |
| 47 | +- Smart positioning (top-left, top-right) to avoid axis conflicts |
| 48 | +- Size-constrained to prevent overflow of chart drawing area |
| 49 | +- Configurable pixel offset from chart edges (`pxOffset`) |
| 50 | +- Plugin bus integration for interactive features (tooltip-aware dimming) |
| 51 | +- Non-interfering design that works harmoniously with chart interactions |
| 52 | + |
| 53 | +### 🛠️ Utility Functions |
| 54 | + |
| 55 | +- **getSeriesData**: Extract series metadata from uPlot instances |
| 56 | +- **getCursorData**: Process cursor position and data index information |
| 57 | +- **getColorString**: Convert series stroke/fill properties to color values |
| 58 | +- **getNewCalendarDayIndices**: Calendar-specific data processing utilities |
| 59 | + |
| 60 | +### 📁 Package Structure |
| 61 | + |
| 62 | +Three main export paths for organized functionality: |
| 63 | + |
| 64 | +- **`@dschz/solid-uplot`**: Core components and plugin system |
| 65 | +- **`@dschz/solid-uplot/plugins`**: Built-in plugins and their TypeScript types |
| 66 | +- **`@dschz/solid-uplot/utils`**: Utility functions for data processing |
| 67 | + |
| 68 | +### 🎮 Interactive Playground |
| 69 | + |
| 70 | +- Comprehensive playground application with live examples |
| 71 | +- Interactive demos for all plugins and features |
| 72 | +- Best practices and implementation patterns |
| 73 | +- Plugin development guides and examples |
| 74 | + |
| 75 | +### 📚 Documentation |
| 76 | + |
| 77 | +- Complete README with usage examples and API reference |
| 78 | +- TypeScript definitions for all components and plugins |
| 79 | +- Plugin development guide with established patterns |
| 80 | +- External component integration examples |
| 81 | + |
| 82 | +### 🔧 Developer Experience |
| 83 | + |
| 84 | +- Full TypeScript support with strict typing |
| 85 | +- Reactive updates with SolidJS fine-grained reactivity |
| 86 | +- Clean plugin architecture following established patterns |
| 87 | +- Comprehensive test suite with 42 passing tests |
| 88 | +- Modern build system with tsup and SolidJS presets |
0 commit comments