Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Character Counter Laravel Package

schmeits/filament-character-counter

View on GitHub
Deep Wiki
Context7
v5.0.1
v5.0.0

What's New

✨ Added

  • Filament v5 Support: Full compatibility with Filament v5 (Livewire v4) alongside v4
  • Comprehensive Tests: Unit tests for all component types (TextInput, Textarea, RichEditor)
  • Better Spacing: Proper spacing for RichEditor character counter

🐛 Fixed

RichEditor Character Counting - Complete refactor:

  • Fixed JavaScript initialization errors
  • Added all required Filament v4/v5 parameters with safe defaults
  • Switched to direct DOM text content reading for accuracy
  • Implemented Livewire.hook('commit') for reactive updates
  • Character counter now updates in real-time while typing

HasCharacterLimit Trait:

  • Automatically enforces HTML maxlength attribute
  • Prevents paste overflow beyond character limit
  • Ensures consistency between visual counter and enforcement

🔧 Technical Details

  • RichEditor uses $el.querySelector() for DOM-based character counting
  • Added .fi-fo-rich-editor-wrapper CSS class for proper spacing
  • Textarea maxLength enforcement with Alpine.js watcher
  • Views compatible with both Filament 4 and 5

CI/CD Improvements:

  • GitHub Actions test matrix supports both Laravel 11 and 12
  • Conditional dev dependency installation via matrix parameters
  • Laravel 11: installs larastan ^2.9 and pest-plugin-laravel ^3.0
  • Laravel 12: skips incompatible packages (not yet supported by these tools)
  • Updated testbench constraint to support both versions (^9.0 || ^10.0)
  • PHPStan workflow updated to PHP 8.2 minimum requirement

Testing

Tested and working in:

  • ✅ Filament v4 (Livewire v3)
  • ✅ Filament v5 (Livewire v4)

All components (TextInput, Textarea, RichEditor) working correctly in both versions.

5.0.0

Added Filament v5 support (Livewire v4 compatible)

  • Added: Support for Filament v5 alongside Filament v4
  • Updated: Composer dependencies to accept both ^4.0 and ^5.0 versions
  • Fixed: Updated test fixtures for Filament v5 API changes (Filament\Forms\FormFilament\Schemas\Schema)
  • Fixed: Textarea maxLength now properly enforces limit even when pasting or programmatic updates (Alpine.js watcher added)
  • Added: Comprehensive unit tests for all component types (TextInput, Textarea, RichEditor)
  • Note: Views are compatible with both Filament 4 and 5 - no changes required to views
  • Note: Character counter functionality remains identical across both versions
4.0.0-beta2

Updated readme

4.0.0-beta1

First beta release for Filament 4

1.3.4

New : Added French translation (thanks to @tgeorgel)

1.3.3

Fix: The showInsideControl was missing from the Textarea (Thanks @CharlieEtienne for the PR)

1.3.2

Updated:

  • updated rich-editor.blade.php

    • Fixing async alpine not loading in spa
    • Add disableGrammarly Method
    • Use Heroicons for rich editor and Markdown editor
    • Add CSS class to rich editor editor
  • updated textarea.blade.php

    • Fixing async alpine not loading in spa
1.3.1

Changed: Updated README with new RichEditor support

1.3.0

New: Added Arabic language (thanks to Omar @devOMAR-2) New: Added RichEditor support

1.2.4

New: Added German translation (thanks to @dissto) Fix: Fixed a translation key (thanks to @dissto)

1.2.3

Fix: Respect maxLength in combination with characterLimit

1.2.2

fix: typo in translation for the dutch variant of characters

1.2.1

Fixed a bug if you use ->live() on the Fields, the counter would stutter and the character count was not correct.

1.2.0

Added the option to show the counter in the component (default is outside the component)

1.1.0

Fix: Placed helper in correct section

1.0.0
  • initial release
Fixed
  • characterLimit() is now a soft limit again (#36): characterLimit() no longer enforces HTML maxlength or validation. Use maxLength() for hard enforcement, or combine both.

  • Fixed test suite (removed obsolete BladeCaptureDirective dependency)

  • Fixed PHPStan config (removed deprecated options)

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope