Changelog

What's new

New features, improvements, and fixes for Neura Kit.

v1.1.13 Latest
Improved
  • Design tokens: Coherent semantic color system
  • Divider: Uses `bg-edge` instead of `bg-surface-inset` for horizontal/vertical lines so divider color matches navlist timeline
  • Timeline: Vertical and horizontal variants use `bg-edge` instead of `bg-surface-inset` for consistent line color with navlist and divider
  • Editor (Tiptap toolbar): Vertical separators between icon groups use `bg-edge` instead of `bg-surface-inset` for visual consistency
v1.1.12
Improved
  • Layout: Header, main, and layout variants now use array-based class binding with `$attributes->class()`
v1.1.11
Improved
  • Blade components: All neura view components now use `$attributes->merge(['class' => '...'])` instead of `$attributes->class([...])`
v1.1.10
Added
  • Kanban: Card click handler via `onCardClick` prop
v1.1.9
Added
  • Layout: Theme variants via `theme` prop
  • Layout: Accent color customization via `accentColor` prop
Improved
  • Design tokens: Dark mode darker and opaque
  • Table: Variant pack uses semantic design tokens
  • Layout: Main content area uses `bg-surface` for consistent theming
  • Layout: Header adapts to all themes (contrast, muted, accent)
  • Layout: Simplified accent color system
Fixed
  • Layout: CSS cascade issue with theme token overrides
  • Layout: Muted theme dark mode text colors
v1.1.8
Fixed
  • Table: Dark mode backgrounds now opaque
Added
  • Table: Full-height mode via `fullHeight()` method
v1.1.7
Fixed
  • Table: Column visibility and bulk action dropdowns no longer clipped by table container
  • Dropdown: `handleFocusInOut` guarded with `!this.open` and null checks on `$refs` to prevent Alpine errors
Added
  • Table: Borderless mode via `bordered()` method
v1.1.6
Improved
  • Chart: Modern UI aligned with neura-kit design system
  • Flow: Node drag-to-move and edge recalculation
v1.1.5
Added
  • Table Style Packs: Composable design tokens for table appearance
  • Table Enums: Type-safe style configuration via `Neura\Kit\Enum\Table\*`
Improved
  • Table Structure: Modular sub-components in `table/parts/`
v1.1.4
Improved
  • Translations API: Efficient cache lifetimes and ETag support
  • Build: Vendor chunk splitting for better browser caching
v1.1.3
Improved
  • Dropdown: Panel and items aligned with neura-kit design system
  • Dropdown submenu: Same styling as main dropdown; trigger and chevron use design tokens
  • Context menu: Matching panel borders/shadows, item text size and colors, separator styling
v1.1.2
Fixed
  • Table: Columns no longer overflow the container when there are many columns
v1.1.1
Improved
  • Card: Border and shadow refinements
  • Sidebar Toggle: Twenty CRM–style and behavior
Removed
  • Card: `bordered` variant removed to simplify API; use `default` or `outline` instead. Existing `variant="bordered"` falls back to default styling.
v1.1.0
Added
  • Table Inline Editing: Editable columns for inline data modification (inspired by Twenty CRM)
  • Flow Connectable Nodes: Interactive edge creation via click-to-connect handles
  • Navlist: New `label` and `separator` subcomponents
  • Sideover: Header, footer, body, and close subcomponents
Improved
  • Theme: Fixed flash of dark mode (FOUC) on page refresh in light mode
  • Sideover: Multiple improvements
  • Flow Component: Visual overhaul for light and dark modes
  • Spotlight / Command Priority: Keyboard shortcut conflict resolution
  • Component Styling: Broad UI refinements across 100+ component views
Fixed
  • Theme: Browser `color-scheme` now set immediately, preventing native dark scrollbars/backgrounds flash
  • Sideover: Enter transition now works reliably (DOM renders before animation starts)
  • Spotlight + Command: Both no longer open simultaneously on `Ctrl+K` when a command palette is present
  • Table: Fixed `@js()` parse error in Blade (replaced with `Js::from()`)
v1.0.48
Added
  • Sideover: Full sideover (drawer) panel system
  • Flow: Alpine Flow integration for workflow/flowchart UI
Fixed
  • SideoverManager: Width override now properly recalculates `widthClass` when `width` attribute is passed at open time
  • ActivateCommand: Added error logging on unexpected activation failures
Improved
  • EditorJS theme: Refactored inline color overrides to Tailwind `@apply` directives
v1.0.47
Improved
  • Table: Notion/Twenty-style UI overhaul
  • Table Columns: Enhanced default column with dash placeholder, alignment, truncate, and hover-copyable support
  • Table Actions: Color variants now properly applied (primary, danger, success, warning, info, ghost, secondary)
  • Popover: Improved hover behavior and UI
  • Popup: Enhanced visual styling
v1.0.46
Improved
  • Spotlight: Modes are now dynamic — only modes with registered providers/commands are shown
  • Clipboard: Enhanced module with better reliability and feedback
v1.0.45
Added
  • Spotlight: AI providers system for streaming AI responses
  • Spotlight: Search providers system for custom search sources
  • Spotlight: `make:spotlight` artisan command to generate commands, search providers and AI providers
  • Spotlight: `SpotlightConfig` configuration class with full panel customization
  • Spotlight: `SpotlightResult` factory methods — `url()`, `action()`, `event()`, `livewire()`, `command()`, `copy()`, `modal()`, `javascript()`
  • Spotlight: Enums for `SpotlightActionType`, `SpotlightGroup`, `SpotlightMode`
  • Spotlight: `SpotlightCommand` enhanced with `matches()`, `getMatchScore()`, `toResult()`, group/icon/shortcut support
  • Spotlight: `SpotlightCall` fluent API — `search()`, `command()`, `ai()`, `placeholder()`, `query()`, `open()`, `toggle()`, `close()`
Improved
  • Spotlight: TypeScript rewrite with typed interfaces and icon SVG map
  • Spotlight: Grouped results with `groupedResults` computed property
  • Updated translations (en/fr) with all spotlight-related strings
v1.0.44
Fixed
  • Spotlight: Fixed mode not switching when using `open({ mode: 'command' })` or `open({ mode: 'ai' })`
v1.0.43
Added
  • Spotlight: New command palette and search component with multiple modes
Fixed
  • Spotlight: Mode no longer resets when toggling with keyboard shortcuts
v1.0.42
Improved
  • Clipboard: Enhanced Alpine integration and reliability
v1.0.41
Improved
  • Dropdown Submenu: Complete redesign for better UX
  • Dropdown Menu: Custom class merging now works properly
v1.0.40
Fixed
  • Clipboard: Fixed copy not working on Mac/Safari
v1.0.39
Fixed
  • Badge Component: Fixed Tailwind colors not working (red, orange, amber, yellow, lime, green, etc.)
v1.0.38
Fixed
  • Separator Component: Fixed class merging not working properly
v1.0.37
Fixed
  • Phone Input: Enhanced fix for dial code duplication during typing
v1.0.36
Fixed
  • Phone Input: Complete fix for dial code duplication bug
v1.0.35
Fixed
  • License Service: Fixed excessive "Token refresh failed" log spam
v1.0.34
Fixed
  • Phone Input: Fixed dial code duplication bug causing infinite sync loop with Livewire
v1.0.33
Fixed
  • Tree Component: Fixed `window is not defined` error during Vite build
v1.0.32
Fixed
  • Tree Component: Fixed `neuraTree is not defined` error when using tree component in modals
Changed
  • Tree Component: Improved TypeScript types for tree component
v1.0.31
Fixed
  • ModalManager: Fixed `closeModal()` not properly going back to previous modal in stack
Added
  • ModalComponent: Added `goBack()` method for clearer semantics when navigating modal stack
  • JavaScript: Added `NeuraKitModal.goBack()` method
v1.0.30
Changed
  • Structure: Improved organization of dropzone-related classes
v1.0.29
Changed
  • Structure: Moved `WithDropzone` trait from `src/Traits/` to `src/Concerns/` to follow project conventions
Added
  • WithDropzone Trait: New trait for Livewire components to simplify dropzone file handling
  • DropzoneFiles Collection: New collection class extending Laravel Collection
  • ChunkedTemporaryFile: Improved helper methods
v1.0.28
Fixed
  • Dropzone Component: Fixed Livewire validation error state not displaying correctly
Changed
  • Dropzone Component: Improved error state styling architecture
Added
  • Translations: Added French translations for dropzone component
Technical
  • Refactored dropzone template to use `@class` Blade directive for conditional classes
  • Added `$isInvalid` computed variable in Blade for cleaner error detection
  • Simplified JavaScript validation sync logic
  • Removed debug logging from production code
v1.0.27
Fixed
  • Dropzone Component: Fixed validation error state not updating reactively
Changed
  • Dropzone Component: Internationalization improvements
Technical
  • Refactored `invalid` property to use getter pattern for reactivity
  • Added `_invalid` private property to store initial validation state
  • Improved error message extraction with translation support
  • Fixed operator precedence issue with `||` and `??` operators
v1.0.26
Changed
  • Dropzone Component: Complete UI modernization with improved validation error display
Fixed
  • Dropzone Component: Complete fix for validation error display
v1.0.25
Added
  • Tree View Component: Modern, minimalist hierarchical tree component inspired by Notion and shadcn/ui
Fixed
  • Alpine.js initialization issues with proper event listener registration
  • Dropzone Component: Error state styling now properly displays when validation fails
v1.0.24
Added
  • Spinner Component: New loading spinner component with multiple variants and styles
  • Progress Component: New progress bar component for showing completion status
v1.0.23
Fixed
  • Select Component: Fixed default value not being detected when passed as HTML attribute
v1.0.22
Fixed
  • Select Component: Fixed bug when adding custom classes
v1.0.21
Added
  • Select Component: Added `value` prop for default option selection
v1.0.20
Added
  • Card Component: Enhanced with multiple variants and styling options
v1.0.19
Changed
  • Modal: Refactored Modal classes for better maintainability
v1.0.18
Fixed
  • Modal Manager: Fixed attribute priority logic for `maxWidth` and `maxWidthClass`
Changed
  • ModalCall: Auto-sync `maxWidthClass` when using `maxWidth()` method
v1.0.17
Fixed
  • Modal Component: Replaced responsive maxWidth classes with simple fixed classes
  • Modal: Fixed `maxWidth` prop handling for custom values
v1.0.16
Fixed
  • Modal Manager: Fixed `maxWidth` handling to support both predefined sizes and custom values
Added
  • Phone Input: National prefix handling for phone validation
v1.0.15
Added
  • Phone Input: New comprehensive phone number input component
v1.0.14
Added
  • Wizard Steps: Added `size` prop for default variant
  • Wizard Steps: Added `color` prop for customizable step colors
Changed
  • Wizard Steps: Improved default variant UI
v1.0.13
Added
  • Wizard Navigation: Added complete step button support
v1.0.12
Fixed
  • Color Picker: Fixed Livewire `wire:model` binding not working
v1.0.11
Added
  • Modal Manager: Added nested modals support with stack navigation
Changed
  • Modal Manager: Improved transition animations
v1.0.10
Fixed
  • Color Picker: Fixed Alpine.js error "$disabled is not defined"
v1.0.9
Fixed
  • Select Component: Fixed click-away behavior not closing the dropdown
  • Color Picker: Fixed click-away behavior not closing the popup
v1.0.8
Added
  • Empty State Component: New component for displaying helpful messages when there's no content
v1.0.7
Fixed
  • Context Menu: Complete refactoring with Singleton Manager pattern
  • Color Picker: Improved menu behavior
Changed
  • Context Menu Architecture: Refactored to use ContextMenuManager singleton
v1.0.6
Changed
  • Editor.js now clears content before rendering to prevent block index conflicts
  • Image uploader validates files before sending to server
  • Error handling improved with more descriptive messages and proper error classification
  • Upload process now includes automatic retries for transient failures
  • File storage includes directory creation and permission checks
Added
  • EditorJS Notion-style Theme: Complete redesign of EditorJS with Notion-inspired styling
  • Dark Mode Support: Full dark mode support for EditorJS
  • Enhanced Editor Container: Improved editor wrapper styling
Fixed
  • Inline Toolbar Dot Issue: Fixed unwanted dot/bullet appearing in ce-inline-toolbar by default
  • Editor.js Synchronization: Fixed "There is no block at index" error by clearing editor before rendering new content
  • Image Upload Reliability: Major improvements to handle intermittent failures
  • Upload Logging: Comprehensive logging in `EditorImageController` and `ImageStorageService`
  • HTTP Headers: Added `Accept: application/json` header to ensure JSON responses
  • Editor Initialization: Added `onReady` callback for better initialization tracking
v1.0.5
Added
  • Editor Multi-Variant System: Modular architecture to support multiple editor types
  • Editor.js Variant: Block-styled editor with structured JSON output
  • Tiptap Variant: WYSIWYG editor with HTML output
  • Editor.js dependencies added to `InstallDependenciesCommand.php`
  • Complete editor documentation with examples of both variants
Changed
  • Editor Component: Complete refactoring to support variants
  • ChunkController: Renamed from `ChunkUploadController` for simplification
  • Services Architecture: Clear separation of responsibilities
  • Tests refactored to use controllers instead of Laravel Actions
  • `ToastServiceTest` and `LicenseValidatorTest` fixed and all tests passing
Removed
  • Obsolete files: `button.blade.php` and `toolbar.blade.php` at `editor/` root
  • Old controllers renamed for consistency
Fixed
  • TypeScript errors in `editorjs.ts`: Replaced `EditorJS` (namespace) with `EditorJSInstance` (type)
  • Editor.js toolbox now visible with appropriate CSS styles
  • Signing secret configuration in license tests
  • `add()` method replaced with `flash()` in ToastService
  • All unit and feature tests passing (50 tests, 178 assertions)
Security
  • Strict MIME type validation for images (jpeg, png, gif, webp, svg)
  • Configurable maximum size for image uploads
  • URL sanitization for metadata fetching
  • Storage disk existence verification before upload
v1.0.4
Added
  • Chunk Upload System: Integrated and secure chunk upload system
  • Enhanced Alert component with 13 color variants (blue, green, yellow, orange, red, purple, pink, teal, neutral)
  • New Color Variants section in Alert documentation with visual examples
  • Advanced Color Usage examples in Alert documentation
  • Comprehensive Color & Type Reference table in Alert documentation
  • New `merge` utility for Tailwind class merging
  • Color Picker documentation completely rewritten (Tailwind palette, token/hex/rgb input, Livewire/Alpine examples, hex normalization)
Changed
  • Dropzone: Automatic integration with chunk upload system
  • TestCase: Improved test configuration (encryption key, automatic route loading)
  • Alert component now supports both `type` (legacy) and `color` props for better flexibility
  • Improved Alert documentation with expanded property descriptions
  • Updated autocomplete component to use attribute merging instead of class binding
  • Enhanced autocomplete options UI with better visual feedback and spacing
  • Improved empty state design in autocomplete with proper icon component
  • Popup component UI updated to match Notion/shadcn style (rounded-xl, shadow-xl, modern padding, smooth transitions)
  • Popup now uses `merge` utility instead of `class` for class merging
Input
  • Improved input component structure and slot support
  • Added extra-slot support for advanced customization
  • Refactored input options (button, clearable, copyable, revealable) for better composability
  • Unified border, focus, and invalid state styles for all input-like components
Checkbox, Radio & Switch
  • Unified border, background, and focus ring colors to match Input component style
  • Improved focus and checked states for better accessibility and visual consistency
  • Refactored Radio and Checkbox components to use PackResolver for dynamic theming
  • Switch component now uses the same color pack logic as Input, Checkbox, and Radio for track and thumb
  • Improved Switch accessibility and keyboard support
  • Updated Switch, Checkbox, and Radio to have consistent active, hover, and disabled states in both light and dark mode
OTP (One-Time Password)
  • OTP input fields now use the same border, focus, and invalid styles as main input fields
  • Improved error display and accessibility for OTP input
  • Unified transition and background for OTP fields in all themes
Avatar & Badge
  • Avatar badge now uses PackResolver::badgeColor and badgeSize for unified color and sizing logic
  • Fixed avatar badge to always be small and fully rounded for consistent appearance
  • Avatar badge rendering now matches badge component logic for color, variant, and size
  • Fixed TypeErrors for badgeColor and badgeSize argument types in avatar component
  • Improved badge positioning and appearance for avatar
Fixed
  • Documentation inconsistencies in Alert component examples
  • Minor styling issues in autocomplete dropdown options
  • Fixed border/focus inconsistencies between input, checkbox, radio, switch, and OTP fields
  • Improved error and invalid state handling for all form components
  • Fixed parse errors and TypeErrors in avatar component after refactor
  • Ensured all badge and avatar logic uses correct argument types and defaults
  • Color Picker refactor: logic extracted to global TypeScript, UI aligned with Input/Popup, dynamic placeholder, systematic hex normalization (token/hex/rgb), `wire:model`/`x-model` support
Security
  • Protection against directory traversal in filenames
  • Automatic filename sanitization (special characters, max length 255)
  • Strict file size validation
  • Secure storage in Livewire temporary folder
v1.0.0
Added
  • Initial release of Neura Kit component library
  • All atoms components migrated from main project
  • Service provider for automatic component registration
  • Configuration file for customization
  • Publishing support for views and config
  • 60+ UI components including forms, layout, feedback, navigation, data, and display components
  • Modal system with ModalComponent base class
  • Toast notification system
  • Dialog confirmation system
  • Theme management with dark mode support
  • Vite plugin integration
  • JavaScript API for modals, toasts, and dialogs
  • Artisan commands for modal creation and dependency installation