Releases: AsmitNepali/fila-calendar
Releases · AsmitNepali/fila-calendar
Release list
v0.5.0
Added
--fi-fila-calendar-range-pending-ringCSS variable for theming the ring on a range's pending start day.
Changed
- The fallback palette, used only when the calendar renders outside a Filament panel and has no
--primary-*to read, is amber instead of teal, matching Filament's default primary color.
Fixed
- Selected days, ranges, and the today ring were drawn in the package's own teal regardless of the host panel, so a calendar in an amber or rose panel showed a blue-green ring around the day it was told to select. Every colored state now resolves through the panel's
--primary-*palette. Themes that already set the--fi-fila-calendar-*variables are unaffected, and those overrides no longer have to exist just to undo the teal. - The ring on the day awaiting a range's second click was a fixed teal on top of the range fill, which read as a stray blue border on any other palette. It now uses the day's own text color.
Full changelog: v0.4.1...v0.5.0
v0.4.1
Changed
reservedDates()is UI-only again. Server-side reserved-day validation was removed fromCalendarInput; host apps that need to reject reserved days on save should enforce that themselves.
Fixed
- A blocked day that starts or ends a range now keeps the range color instead of falling back to the blocked background, so a range ending on an unavailable or weekend day still reads as selected.
Full changelog: v0.4.0...v0.4.1
v0.4.0
Changed
- A range drawn across reserved days now splits around them instead of covering them. Dragging from the 11th to the 19th over bookings on the 12th, 13th and 17th yields three ranges — 11th, 14th–16th and 18th–19th — so an already-booked day is never selected again, and the hover preview shows the same gaps while dragging.
- In
rangemode, where a single range cannot hold a gap, the selection stops at the booking and keeps the run of free days touching the day it started from. unavailableDates()andweekEndDays()are still spanned: those describe rules about the calendar rather than days someone else already holds.
The server-side guard added in 0.3.0 stays as a backstop, so a crafted payload still cannot double-book, and rows saved before this rule are still caught at submit.
Full changelog: v0.3.1...v0.4.0
v0.3.1
Fixed
- Past days inside a range rendered at full range color instead of the faded version added in 0.2.0. Two later rules in the stylesheet re-declared
--disabled.--in-rangeand--disabled.--range-endwithout the fade, so only a range's start day read as past — a range ending beforeminDatelooked live. Start, end and middle now each fade their own color variable, and the duplicate rules are gone.
Full changelog: v0.3.0...v0.3.1
v0.3.0
Added
reservedDates()marks days that are already taken rather than closed. They block selection like unavailable dates, but keep the day's own background and carry a corner icon, a hairline ring in the primary color, and aReservedtooltip — so "booked by someone else" no longer looks identical to "closed by a rule".reservedIcon()sets the marker icon. Accepts a FilamentScalableIcon— everyHeroiconenum case is one — or a plain icon name. Defaults toHeroicon::Bookmark.reservedTooltip()overrides the tooltip text on reserved days, which also feeds the icon'saria-label. Pass an empty string to drop the tooltip and keep the icon.calendarColumns()accepts a column count per breakpoint, e.g.['sm' => 2, 'lg' => 3, 'xl' => 4]. Keys aredefault,sm,md,lg,xland2xl(xxlandxswork as aliases), matching Tailwind's widths. Each value holds until a wider breakpoint overrides it, and counts are still clamped tomonths().--fi-fila-calendar-reserved-colorCSS variable for theming the reserved ring and marker.- Server-side validation on
CalendarInputrejecting a submission that lands on a reserved day, including one covered by a range, so a crafted Livewire payload cannot double-book.unavailableDates()andweekEndDays()stay UI-only, so records already sitting on those dates keep saving.
Fixed
disabledDates()andunavailableDates()silently produced no blocked days when givenCarboninstances or datetime strings, such as a date column plucked off a model. Values are now normalized toY-m-don both the PHP and JavaScript sides, and unparseable entries are dropped instead of reaching the browser asNaN.
Changed
- The
titletooltip removed in 0.2.0 returns for reserved days only.
Full changelog: v0.2.0...v0.3.0
v0.2.0
Changed
- Ranges span blocked days instead of splitting around them. A blocked day still cannot start or end a range, but a range drawn across unavailable, weekend, or out-of-bounds days stays one range.
- Blocked days inside a range keep the range highlight, with their strike-through, instead of dropping to the blocked style.
- Blocked days render as disabled buttons, so they take no hover, focus, or click styling.
- Shift-clicking a range keeps the blocked days inside it selected instead of clearing them with the rest.
- Today is marked with a dot instead of a recolored number, so it stays readable on top of any range color.
- Past days inside a range keep a faded version of the range color.
Removed
- Title tooltip on calendar days.
Full changelog: v0.1.0...v0.2.0
v0.1.0
Added
- Shift-click a day of a range in
multi-rangemode to clear the whole range. - CSS variables for range start, end, and middle day colors.
Fixed
- Deselecting a day in
multi-rangemode took two clicks when ranges overlapped. Ranges are now merged whenever state is read and written.
Changed
- Clicking the start or end day of a range now shrinks it by that day instead of clearing the range.
Full changelog: v0.0.2...v0.1.0
v0.0.2
Dependency constraints
Loosens the framework constraints so the package installs cleanly on newer Laravel releases, and fixes a Carbon constraint that could resolve to a broken install.
Fixed
- Carbon now requires
^3.0. The package uses theCarbon\MonthandCarbon\WeekDayenums, which do not exist in Carbon 2. The previous^2.72|^3.0constraint allowed Composer to resolve Carbon 2, which fataled on load.
Changed
- Removed the explicit
illuminate/supportrequirement. The supported Laravel range now follows whatever the installed Filament release allows, so the package no longer needs a new tag for every Laravel major. Verified:filament/formsv5 resolves Laravel 13, which the old^11.0|^12.0cap blocked.
Requirements
- PHP 8.2+
- Laravel 11+ (whichever versions your Filament release supports)
- Filament 4 or 5
Install
composer require asmit/fila-calendar
php artisan filament:assetsFull changelog: v0.0.1...v0.0.2
v0.0.0
Initial release
A polished inline calendar field for Filament forms and infolists.
Highlights
- Single, multiple, range, and multi-range selection modes
CalendarInputform field andCalendarEntryinfolist component- Multi-month grid with responsive columns and date constraints
- Range hover preview and smart range editing
- Locale support via
->locale() - Self-contained Alpine.js UI — no external calendar library required
Requirements
- PHP 8.2+
- Laravel 11 or 12
- Filament 4 or 5
Install
composer require asmit/fila-calendar
php artisan filament:assets