Support\VatNumber and Support\FiscalCode: the European VAT check digit and the Italian
fiscal code check letter, computed offline. They moved here from the Pro package so the
Filament theme can use them without a second licence — the arithmetic is free, the fields that
use it are not. The Pro classes still work and delegate here.button-group, combobox, menubar and qr-code. The combobox carries the ARIA pattern in
full: aria-activedescendant, and options that are options rather than buttons, so arrowing
through the list is announced and Tab does not walk into the popup.currency-input, phone-input, iban-field and signature-pad — the fields a European form
needs. Each posts a machine value rather than its own formatting, which is how 1.234,56
becomes 1.234 on the server and a thousand euro leave an invoice. The IBAN carries the
ISO 13616 checksum and a matching Rules\Iban validation rule.autocomplete rendered its label without a for and its input without an id: the field's
only accessible name was its placeholder, which disappears on the first keystroke. Its options
were <button role="option">, which Tab walked into, and nothing announced the highlight.date-picker, time-picker and autocomplete rendered as bare text: no border, no
background, 20 pixels tall. They reused the .aura-input class name, which carries no CSS —
every visible property of a field came from utilities written inside the input component.
Support\InputStyle is now the one place that knows what a field looks like.tags, multiselect) were 20 pixels tall, and clicking the
padding around them did nothing.image, price, usage-meter,
toggle-button, activity-row, action-bar, ticker, reveal, status-tiles and the rest
of the fourth breadth batch.price and ticker wrote numbers in Italian format for every reader. Both now follow the
locale, so an American sees 1,234.50 and not 1.234,50.The form-control contrast work. Released across 3.16.0-3.16.5; the entries below describe it as one change because that is how it is used.
input, select, textarea, checkbox, radio, multiselect, tags,
otp, floating-input, file-upload's dropzone, pagination's per-page <select>,
date-picker's hour/minute fields, and editor's outer boundary used surface-200 or
surface-300 (1.48:1 or worse against a white page -- editor was the worst at 1.23:1).
Moved to surface-500, the first shade that clears 3:1 in both light (4.76:1) and dark mode
(6.96:1) without a dark: variant. User-visible effect: every form field's outline is now
noticeably darker/greyer at rest, not just on hover or focus. Hover-only borders and
non-form-control borders (cards, tabs, kbd) were left unchanged.surface-500) left several hover: borders unchanged and lighter than the
new rest -- backwards. input, select, textarea, and button's outline secondary
variant now hover to surface-600 (single class, self-inverts in dark mode, no dark:
needed). The outline success/warning buttons and the checkbox/radio hover ring needed a
theme-aware split instead: accent colours get less visible against a dark page as they get
darker (the opposite of the surface scale), so a naive "one step darker" would have fixed
light mode and broken dark mode. Both now hover to a darker shade in light and keep their
original, already-correct brighter shade in dark via an explicit dark:hover: override.
User-visible effect: hovering any of these controls now visibly darkens the border, as
before this task started, in both themes.button's outline variants had the same problem. An outline button has no fill, so its
border is its entire boundary -- all five resting borders failed 3:1 (-300 shades, 1.44:1
to 1.90:1 against a white page). primary, secondary, and danger now use their -500
shade (4.47:1 / 4.76:1 / 3.76:1); success and warning needed -600 instead, since their
-500 still fails (2.54:1 / 3.53:1) -- success-600 and warning-600 clear at 3.77:1 and
3.19:1. All five also clear in dark mode without a dark: variant. User-visible effect:
outline button borders are now visibly darker/more saturated at rest.surface-300 fill only, 1.48:1
against a white page — its extent wasn't perceivable). Added a surface-500 border to the
track and compensated the knob's inset (top-0.5/left-0.5 → top-px/left-px) so the new
1px border doesn't shift the knob off-centre at any size (sm/md/lg). Geometry (outer
track dimensions, knob travel distance) is unchanged; only a thin ring is now visible around
the track.toasts progress bar and the progress component's solid
and gradient fills to shade 700 (leaving danger at 500) so they would clear 3:1 contrast
against their track in light mode. It did not account for how dark mode works in this
library: dark-mode.css redefines the surface tokens inside .dark, so the same tracks also
darken there (toast track surface-100 -> #334155, progress track surface-200 ->
#475569), and the fixed -700/-500 fill collapsed into the darkened track (e.g. toast
success fell from 4.08:1 to 1.89:1, progress warning from 3.53:1 to 1.51:1). Fixed by
giving every bar fill a dark:bg-aura-<hue>-300 (and, for the gradient arm, dark:from-/
dark:to-aura-<hue>-300) variant, verified at 3.99:1–7.18:1 against both dark tracks. The
light-mode shade 700/500 fix from the previous release is unchanged; only a dark variant was
added.primary moves
from shade 500 to 600, success to 700 and danger to 600 (at 500 they rendered white text
at 4.47:1, 2.54:1 and 3.76:1 against the required 4.5:1). This affects the button solid
variants, all six indicator colour variants (primary, success, warning, info,
secondary, and the default danger), the badge secondary variant's light-mode text
colour, the calendar today marker, the date-picker selected-day state and the active
pagination page. The palette itself is unchanged; warning on button stays at 500
because it uses dark text, and outline/ghost/link variants and dark: classes are
unaffected.alert's light-mode text colour was not applied at all. The info/success/warning/
danger variants referenced text-aura-{variant}-800, a shade that does not exist in the
palette (those hues stop at 700); Tailwind 4 silently emits no utility for an undefined
token, so the text rendered in whatever colour it inherited instead. Changed to the existing
-700 shade, which also clears WCAG 2.1 AA (4.84:1–5.91:1 against each variant's -50
background). Dark-mode classes were already correct and untouched.command-palette's footer and kbd hint text, input's prefix/suffix affix
text, the outline button's success/warning text, the success fab, the success/
warning/info bars in toasts, the secondary/success/warning solid and gradient
bars in progress, and the icon tint in empty-state — all moved from shade 400/500/600 to
600/700 as appropriate. danger variants that already passed were left alone.avatar gradient colour variants (residual.css) and the button gradient prop
variant were shifted two steps darker (e.g. 500→700/600→800) so their lightest stop clears
4.5:1 against white, while staying gradients rather than flattening to a solid fill..dark's overrides (which invert the surface scale and brighten the -500 accents, but
leave every other accent shade at its light value). Fixed with either a dark: variant or,
where the target shade is unredefined by .dark, a single base-rule change that fixes both
themes at once: button's solid warning and outline primary/success/warning/danger
text; calendar's default event-pill colour (also a marginal pre-existing light-mode fail,
4.47:1, missed by the original census); fab's default/primary and danger icon fills;
the checked checkbox/radio fill and the primary/danger toggle knobs (residual.css);
and the success/secondary toggle knobs (base-rule fix, both themes). Also fixed, per a
controller decision covering two cases a shade swap cannot solve: indicator's secondary
badge and fab's secondary button both pair invariant white text/icon with a surface-*
background, which inverts under .dark by design; rather than pin a literal colour, the
foreground now inverts with it via dark:text-aura-surface-0.calendar/avatar arbitrary colours, dock's undefined RGB
fallbacks) remain unverified; the library is not claimed fully WCAG AA compliant.aura-ui:: translation namespace — English and Italian ship out of the box. Publish/customise with php artisan vendor:publish --tag=aura-ui-lang. (Calendar month/day names keep the existing locale prop.)aria-label was hardcoded in Italian ("Navigazione pagine"); it now follows the application locale (English by default, Italian when the locale is it).aura:add installs components from a remote registry URL (php artisan aura:add https://host/r/<name>.json) with HTTPS-only fetch, host allowlist + confirmation, schema validation and path sanitisation. aura-ui.com serves the installable shape at /r/{name}.json.Js::from / casts) across components.wire:model entangle (Js::from) and slider numeric props across components.<x-aura::multiselect>, <x-aura::tags>, <x-aura::otp> and <x-aura::slider> (slider relocated from Pro to Free).<x-aura::button> prefixIcon / suffixIcon (preferred over the deprecated icon / iconRight aliases).type field in aura-registry.json) — full-page sections installable via aura:add.fromHex) powering Theme Studio, coherent with the Aura Filament palette.aura:add / aura:init own-the-code CLI — copy a component's Blade source into your project (resolves dependencies, rewrites the namespace).wire:model works out of the box on the modal.illuminate/* ^12 || ^13).<main> content areaaura-ui-assets tag^3.6 || ^4.0)[@theme](https://github.com/theme) tokens and [@custom-variant](https://github.com/custom-variant))[@custom-variant](https://github.com/custom-variant) dark for class-based dark mode support in Tailwind CSS 4[@theme](https://github.com/theme) tokens instead of legacy CSS custom propertiesbluestarsystem/aura-ui-pro package.dark class/aura/playgroundphp artisan aura:install commandHow can I help you explore Laravel packages today?