UNPKG

flowlight

Version:

A lightweight command interface library with floating button, search functionality, and React integration

151 lines (105 loc) 3.33 kB
# FlowLight A lightweight command interface library with floating button, search functionality, and React integration. ## Features - 🚀 **Lightweight** - Minimal bundle size with zero dependencies - 🎯 **Floating Button** - Always accessible command interface - 🔍 **Search Interface** - Powerful search with keyboard shortcuts -**React Integration** - Hooks and providers for React apps - 🎨 **Customizable** - Easy to style and configure - 📱 **Responsive** - Works on desktop and mobile ## Installation ```bash npm install flowlight ``` ## Quick Start ### Vanilla JavaScript ```javascript import FlowLight from 'flowlight'; // Initialize FlowLight const flowlight = new FlowLight({ debug: true, position: 'bottom-right' }); // Show the search interface flowlight.showSearch(); ``` ### React ```jsx import { FlowLightProvider, useFlowLight } from 'flowlight/react'; function App() { return ( <FlowLightProvider options={{ debug: true }}> <YourApp /> </FlowLightProvider> ); } function SearchComponent() { const { showSearch, isSearchVisible } = useFlowLight(); return ( <button onClick={showSearch}> Open Search </button> ); } ``` ## API Reference ### FlowLight Constructor ```javascript new FlowLight(options) ``` **Options:** - `debug` (boolean) - Enable debug mode - `position` (string) - Button position: 'top-left', 'top-right', 'bottom-left', 'bottom-right' - `theme` (string) - Theme: 'light', 'dark', 'auto' ### Methods - `showSearch()` - Show the search interface - `hideSearch()` - Hide the search interface - `toggleSearch()` - Toggle search visibility - `updateOptions(options)` - Update configuration - `destroy()` - Clean up and remove from DOM ### React Hooks - `useFlowLight()` - Access FlowLight functionality - `useFlowvana()` - Legacy hook (deprecated) ### React Components - `FlowLightProvider` - Provider component for React apps - `withFlowLight(Component)` - HOC for class components ## Keyboard Shortcuts - `Ctrl/Cmd + K` - Toggle search interface - `Escape` - Close search interface - `Tab` - Navigate search results ## Environment Configuration FlowLight supports different API endpoints for development and production environments. ### Build-time Configuration The library automatically uses the correct API endpoints based on the build environment: - **Development**: `http://localhost:8000` - **Production**: `https://api.flowvana.tech` ```bash # Development build (default) npm run build # Production build npm run build:prod ``` ### Runtime Configuration You can also configure the API base URL at runtime by setting a global configuration: ```javascript // Set before initializing FlowLight window.__FLOWLIGHT_CONFIG__ = { apiBaseUrl: 'https://your-custom-api.com' }; // Then initialize FlowLight const flowlight = new FlowLight(); ``` ### Environment Variables For advanced configuration, you can set environment variables: ```bash # Set API base URL export API_BASE_URL=https://your-custom-api.com # Build with custom configuration NODE_ENV=production API_BASE_URL=https://your-custom-api.com npm run build ``` ## Examples See the `react/` directory for complete examples: - `FlowvanaExample.js` - Full-featured React example - `README.md` - Detailed React integration guide ## License MIT