Skip to content

v3.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 14:38
· 39 commits to main since this release
Immutable release. Only release title and notes can be modified.
fa313f7

3.2.0 (2026-10-10)

Bug Fixes

  • blocks: Make the stat card variants announce and focus their figures (4b78c3e)
  • blocks: Keep stat card figures, shares and legends consistent at the edges (3848ec6)
  • overlays: Portal menu submenus out of the clipping parent content (d3ecde1)
  • theme: Give the nosferry preset its chart palette (b685d9a)
  • locales: Move the European Portuguese locale to the current spelling (698b590)
  • shells: Light only the most specific nav item and keep rail groups open (c549725)
  • scripts: Build the export detector program without the default lib (b6ca728)
  • charts: Round only the outer ends of a stacked bar (a26e2c7)
  • charts: Format tooltips and time axes with the chart locale (aa12226)
  • charts: Clip each side of a stacked bar and keep thin ends whole (f9637dd)
  • charts: Keep a hidden value axis numeric (e32b6c1)
  • charts: Skip value labels on empty and cramped segments (e507fea)
  • charts: Keep value labels compact, apart and inside the chart (1d8948d)
  • charts: Draw each stacked bar as one shape divided by color (59d4110)
  • blocks: Draw the composition track as one shape divided by color (81d1c50)
  • charts: Follow the animated segment and key stack clips by position (bad0c31)
  • blocks: Keep the composition track one element with a measured radius (d34b2a2)
  • blocks: Centre the two-factor code field and recovery actions (674c39c)
  • blocks: Describe recovery codes and drop stale errors when the challenge switches mode (dd9e81c)
  • locales: Stop telling readers recovery codes are shown only once (103c168)
  • blocks: Hide only the errors on screen when the two-factor mode switched (7d5aea6)
  • blocks: Show a repeated two-factor error once the next attempt finishes (a114778)
  • shells: Make collapsible group labels real buttons (12c9b6c)
  • shells: Keep the sidebar logo whole on the icon rail (a8bdadc)
  • blocks: Name the tour close control from the locale (ccffcbc)
  • locales: Announce loading in the locale (b1b7aee)
  • charts: List legend entries in the order of the series (2c316ac)
  • charts: Order the legend by the index of each series (4da7c46)
  • blocks: Skip tour steps whose target is missing and record the outcome (7fccc73)
  • blocks: Wait briefly for a later tour target and ignore clicks meanwhile (6f73f34)
  • blocks: Ignore going back when no earlier tour step is on the page (f6660b9)
  • blocks: Record a running tour before another one replaces it (8527db7)
  • blocks: Let a tour started from onProgress take over cleanly (d0c319e)
  • shells: Hydrate collapsed nav groups from defaultOpen (3a44324)
  • shells: Keep nav groups toggling when storage is unavailable (a935374)
  • shells: Draw unlabelled subgroups and subgroup item badges (ebc0f64)
  • shells: Keep subgroup badges beside the link and key siblings apart (e73e89e)
  • shells: Shrink the header search button to its icon below sm (a727d62)
  • shells: Keep the header breadcrumbs on one line on narrow screens (a565602)
  • shells: Leave standalone breadcrumbs as they were (84044e4)
  • time-picker: Keep the field, the columns and the stored value in step (dcbc277)
  • time-picker: Keep the selected option visible and the columns aligned (63abcbc)
  • date-time-picker: Bound the full date and time (a0a3cb7)
  • blocks: Wait for tour targets once and drop the missing steps (12c9a35)
  • blocks: Render the tour progress label as text (cc5790b)
  • blocks: Settle a waiting tour start against the running tour (023a3cf)
  • blocks: Keep a shared tour start and count the steps still shown (7ad6905)
  • blocks: Format default percentages in the provider locale (bde8259)
  • locales: Agree the data table total with its count (3d95117)
  • blocks: Fall back to en-US for a malformed number locale (36d88d3)

Code Refactoring

  • shells: Serve the cookie reader only from the server entry (67d9f18)
  • date-picker: Share the day boundaries (55367df)
  • ui: Share the picker trigger, clear control and value state (32cb0a9)

Features

  • command: Let CommandDialog forward props to the inner Command (7147166)
  • combobox: Let Combobox take a filter function for the inner Command (3dde235)
  • blocks: Give the stat card an inline layout and an exact value line (d5b907a)
  • blocks: Let a stat card show its share as a bar with a tooltip (1f81407)
  • blocks: Add a stat breakdown card for a total split into parts (2d91d27)
  • blocks: Add a brand logo that takes its colors from the brand preset (05c6668)
  • charts: Let a bar chart color its bars by category (e3d8d71)
  • blocks: Let a danger zone action require the current password (b931537)
  • two-factor: Add an enable button and the fetch error labels (bb228d6)
  • inertia: Add a Fortify two-factor hook (526cbbc)
  • shells: Let apps add their own entries to the user menu (7984617)
  • shells: Read the settings layout heading from the locale (e387f8e)
  • blocks: Add a notification bell with an unread badge and popover (01c2d47)
  • inertia: Add an Inertia notification bell that polls while active (b44f16f)
  • charts: Add value domains, log scales and reference lines (e066e85)
  • charts: Add value labels, lollipop bars and gradient areas (cec7821)
  • blocks: Add a CompositionBar for a total split into parts (f6bb38e)
  • charts: Add a symmetric value domain with rounded ticks (5d3c513)
  • charts: Show exact values in tooltips by default (8411c23)
  • shells: Read the sidebar_state cookie from a server-safe entry (2e86a57)
  • shells: Let AppSidebar render without a user and take a footer (d2976a7)
  • shells: Let AppSidebar choose how it collapses (63ea33e)
  • shells: Restore the remembered sidebar state on load (1d1a00a)
  • types: Let nav groups nest and declare their default state (9bcd7d0)
  • shells: Render nested nav groups in NavMain and AppSidebar (1a25a93)
  • time-picker: Add the time value helpers (2fb99bf)
  • locales: Add the time picker sections (acc7cce)
  • time-picker: Add the hour and minute columns (ef3a185)
  • field: Give the field label an id controls can reference (8188f73)
  • time-picker: Add the TimePicker (1d85a28)
  • date-time-picker: Add the DateTimePicker (8f03eed)

3.1.0 (2026-10-02)

Bug Fixes

  • locales: Spell the Portuguese locale in European Portuguese (a0a980d)
  • locales: Reach EmptyState, DangerZone, form overlays and Editor (c1535b8)
  • locales: Let the locale provider name the shadcn primitives (cd9e448)
  • theme: Paint the root background overscroll reveals (be94677)
  • inertia: Omit only from table filter visits when undefined (c703164)
  • theme: Keep the nested-surface reset when a surface is renamed (092bf2e)
  • theme: Mark the floating sheet panel as a surface (9fbfa94)

Features

  • shells: Add actions slot to AppSidebarHeader (42beca7)
  • editor: Style task lists and ship taskListExtensions (5014eb1)
  • Export the props types consumers wrap (31d4b6d)
  • locales: Add spanish labels (30d5496)
  • data-table: Pin the actions column to the inline end (87d2e30)
  • shells: Let a sidebar nav item carry a badge (04197c1)
  • blocks: Move the info field copy control to the label row (0140559)
  • shells: Let the app name the sidebar user menu entries (11c6dd6)

3.0.0 (2026-09-19)

Breaking Changes

  • build: Ship charts, data table and form from their own entry points (eb93de9)

Bug Fixes

  • tests: Stop charging a cold barrel import to the test timeout (0ccc9df)
  • date-filter: Follow the provider date locale instead of pinning Portuguese (9e11f56)
  • locales: Export the date locale hook from the blocks entry (20fcb0b)
  • chart: Keep series colors apart when two keys sanitize to the same name (6db2f92)
  • passkeys: Keep the removal confirmation open when it fails (2e05578)
  • passkeys: Draw the passkey blocks from the design language (afc8285)
  • passkeys: Seat the passkey list on Card like the settings entries (d0a76d7)
  • two-factor: Hold the qr at a fixed size and read the setup key as a field (fd997f7)
  • two-factor: Scroll the setup dialog body and keep the heading and action in view (c477ee9)
  • two-factor: Wrap the revealed setup key and cap image qr codes to the frame (e78792e)

Features

  • calendar: Follow the date locale of the locale provider (583e058)
  • two-factor: Read labels from the locale provider (b93ba56)
  • passkeys: Add composable passkey blocks (bd26822)
  • inertia: Bind the passkey blocks to @laravel/passkeys (bfd3f2e)

2.6.0 (2026-09-17)

Bug Fixes

  • chart: Keep the series variable spellable as a custom property (99ad302)
  • chart: Declare the donut colors above its legend (23dbac0)
  • chart: Give the donut ring a width under a bottom legend (e66783a)
  • chart: Stop a series key or color from reaching the stylesheet raw (73e6da7)
  • button: Keep the internal variant out of the copy button API (2644f76)
  • table: Drop the inner surface a bleeding table still painted (bea854f)
  • toast: Let an action handler return a value (4f521a1)
  • toast: Hold the toast open when an action fails, and vet its link (15e67d1)
  • toast: Report a failed action instead of letting it escape (285e1e2)
  • field: Let an application translate the required-field label (703f47b)
  • toast: Strip the control characters a URL parser removes from an action link (4ebe315)
  • editor: Refuse a link whose scheme the URL parser reassembles (0ad93a4)

Features

  • chart: Add a series palette and high-level chart components (e4bfd1f)
  • chart: Paint the charts on the first render (43baec5)
  • button: Let every variant carry a tone (f686186)
  • table: Let a table bleed to the edges of its card (0d9e395)
  • toast: Style the actions, the cancel and the close button (ae4a835)
  • build: Publish a built dist branch for git installs (5bafce2)

2.5.0 (2026-09-04)

Bug Fixes

  • release: Point generated changelog links at the real repository (0fd195a)
  • docs-site: Correct preview-link regex, editor/code specifiers, and PR clobbering (cae9eb6)
  • docs-site: Stop code-block from ever getting its own scaffolded folder (7765b92)
  • progress: Report the value to assistive technology (3a18f10)

Features

  • dropzone: Take a file without the browser control (c9ec42f)
  • dropzone: Stop inviting a file the full zone would not take (8584d91)

2.4.0 (2026-09-02)

Features

  • data-table: Add a flat prop for tables inside an elevated surface (f501058)
  • tabs: Let a tab panel give up its padding (fede28c)

2.3.0 (2026-09-01)

Bug Fixes

  • combobox: Make the list scrollable inside a dialog (68af886)
  • shells: Match the active nav item by path, not by the whole url (0d22807)
  • release: Keep latest on the highest published major (5f5e59a)
  • inertia: Check the login Form binding against the peer's own types (ed86606)
  • tests: Follow bare, dynamic and parent-relative imports in the dist graph (ca4f6d4)

Code Refactoring

  • shells: Keep the path rule in one place (2b1ed50)
  • blocks: Replace the login-form wildcard with an explicit export list (ee5c158)

Features

  • login-form: Export fieldError for consumers writing custom parts (a76290b)

2.2.0 (2026-08-28)

Bug Fixes

  • floating-sheet: Let the page show through the scrim (7cbed86)
  • floating-sheet: Open overlays inside the sheet panel (a71c0c5)
  • floating-sheet: Portal the remaining overlays into the sheet panel (d25d60a)

Features

  • data-table: Let a row action decide whether it applies (67b3f14)
  • blocks: Accept a node as a field label (e2a59d7)

2.1.0 (2026-08-09)

Bug Fixes

  • floating-sheet: Draw the scroll shadows with the elevated surface tokens (46c0fbc)

Features

  • floating-sheet: Add scroll-driven header and footer shadows (ee3b246)
  • locales: Add French locale to @akira-io/ui (56e4dbe)

2.0.0 (2026-08-09)

Breaking Changes

  • inertia: Narrow the peer range to the Inertia version that exports Form (f5af2ee)
  • inertia: Raise the peer floor to the first version with resetOnSuccess (0847fca)
  • login-form: Scope the public export surface (5646057)

Bug Fixes

  • shells: Accept slotName on AuthShell parts (a72e203)
  • build: Make the Inertia peer optional so Next and Astro apps skip it (a4deb1d)
  • build: Cover code/editor entries with client directive, drop metafile, self-heal missing dist in tests (acf0308)
  • build: Always rebuild before verifying the client directive (7a94ba6)
  • login-form: Skip blank messages when resolving fieldError (0e9e5fe)
  • blocks: Associate login form errors with their fields, mark submit busy (0690c59)
  • blocks: Render a resting submit button flat, cover password field aria wiring (46dd172)
  • login-form: Let the forgot-password link wrap instead of splitting words (c040f72)
  • login-form: Place the forgot-password link under the input (a11e0d2)
  • login-form: Resolve part labels through the locale provider without a Root (9393dda)
  • login-form: Treat a nullish array entry as no error in fieldError (3b60c64)
  • login-form: Let a consumer relax autoFocus and required on the email field (dbfe174)
  • login-form: Stop the submit button announcing its pending label twice (bd2c1cd)
  • login-form: Give LoginFormPassword the autoFocus/required parity LoginFormEmail got (1fd2df0)
  • login-form: Accept slotName on LoginFormPreset (c5cdda4)
  • login-form: Stop hardcoding a positive tab order in LoginFormPreset (70074a6)
  • login-form: Fix idle submit markup, mark required fields, guard autoComplete (a15d6ed)
  • inertia: Compile against Inertia 2.x and forward InertiaLoginForm's slot (742a0d2)
  • shells: Let AuthShellPanel take an explicit arrangement, guard AuthShell's slot (abc7dff)
  • release: Gate release tags on the version git-cliff computes (aeb4384)

Features

  • shells: Split AuthShell into composable parts (5085953)
  • build: Preserve the client directive so Next server components can consume the library (5f85a01)
  • blocks: Add the login form labels and context (f2b88bf)
  • blocks: Add the composable login form parts (ddf2f9b)
  • blocks: Add the login form preset composed from the parts (1507a44)
  • inertia: Bind the login form to the Inertia form (17a55e6)
  • akira-mark: Ship the brand mark and use it in the auth shell docs (dbff2d0)
  • login-form: Resolve labels through the shared locale mechanism (2d9d1c1)

1.3.1 (2026-08-08)

Bug Fixes

  • data-table: Space the faceted filter evenly (#80) (99c8536)
  • theme: Bring the nosferry dark red back to the brand (#82) (f57b068)
  • button: Match the icon gap to the padding (5b3fda8)
  • button: Tell a leading icon from a trailing one (7ec6a6a)
  • tabs: Stop the active tab reading as a hole in dark mode (b02fe9b)
  • language: Start field text at 16px so iOS Safari stops zooming (0fb0209)

1.3.0 (2026-08-07)

Bug Fixes

  • card: Make the card opaque and add an outlined variant (#74) (6bbe7ae)
  • theme: Give light mode a surface hierarchy (#75) (93519b3)
  • nav-user: Give the user row a resting fill and a softer hover (#76) (eb8abe8)
  • date-filter: Put the filter rows back in the menu language (#77) (a940b07)
  • overlays: Make the sheet and the sidebar behave on a phone (#78) (25773c0)

1.2.0 (2026-08-07)

Breaking Changes

  • ui: Stop making consumers undo the design language (b178117)

Bug Fixes

  • password-input: Let the locale provider name the reveal control (1210949)

1.1.1 (2026-08-07)

Breaking Changes

  • button: Let a component composing Button name its own element (047df7a)

Bug Fixes

  • field: Forward the props Field hands its controls (56913e2)
  • data-table: Let the search field read its focus as depth (143c348)

Code Refactoring

  • ui: Give the whole catalog one rule for naming a slot (4e85c25)

1.1.0 (2026-08-07)

Bug Fixes

  • ui: Preserve Button asChild props (#3) (b967bf5)
  • button: Support loading for slotted controls (#3) (1ae85bf)
  • button: Preserve slotted loading footprint (#3) (90a8d98)
  • button: Stabilize slotted loading states (#3) (8dbdba7)
  • button: Preserve controlled caller props (17ce73b)
  • ci: Keep docs sync on site next (f6892f8)
  • language: Let a recessed surface read as a well, not a second panel (febe5bf)
  • floating-sheet: Name the stack after its top panel and hold the stack order (e49fd1d)
  • collapsible: Let the primitive open and close without painting a card (c6fa49f)

Features

  • ui: Add accessible spinner primitive (#3) (a1cf359)
  • ui: Add Button loading state (#3) (a4649c2)
  • theme: Distinguish Nos Ferry destructive actions (af91c90)
  • types: Export the table types the DataTable API already exposes (c13be88)
  • blocks: Add the settings family a grouped index and its pages compose from (7035960)
  • floating-sheet: Stack panels like pages of a book (684f92e)
  • shells: Let sidebar groups remember whether they are collapsed (726c7b3)
  • settings: Autosave a settings form, show its state and pair its fields (1535aea)
  • inertia: Drive table filters from one hook (8c02d2d)
  • date-picker: Pick a single day from the shared calendar (7b1c7d9)
  • copy: Add a copy button and let InfoField use it (7187773)
  • two-factor: Add a headless setup and verification family (65d32b6)
  • code: Show code inline, in a block, and as JSON (33f9bf1)
  • ui: Add an appearance toggle, a text link and a status badge (e2af9d1)
  • locales: Read component labels from a locale provider (7df364b)
  • blocks: Put a form in an overlay with a save footer (7139638)
  • field: Pair a label, description and error with any control (15bc4e8)
  • shells: Add an auth shell and a danger zone (f86215f)
  • empty-state: Show one design for anything with nothing to show (f5714d1)
  • editor: Add a composable rich text editor on Tiptap (745f8cc)

1.0.0 (2026-08-03)

Breaking Changes

  • tour: Rename the popover class to akira-tour (8b2de22)
  • package: Share recharts with the app and stop shipping Portuguese (23071c5)
  • i18n: Default every user-facing string to english (1c5aac5)
  • theme: One design language across every component (abe17a0)

Bug Fixes

  • inertia: Record tour progress without a page visit (7cdfb9d)
  • package: Declare the animate plugin and mark inertia optional (feb7ca9)
  • theme: Make components read the brand tokens (e0e1a3c)
  • theme: Stop painting destructive text in the on-destructive color (ad81c8b)
  • components: Close the three gaps the demos found (c20acfe)
  • components: Draw the placeholder pattern and put the popover on tokens (9a90180)
  • theme: Make the toaster follow the dark class, not next-themes (92489c9)
  • blocks: Stop painting every stat card icon green (ec55109)
  • data-table: Put the active page on the brand, not near black (a4e5b60)
  • accordion: Give the accordion its own surface (d37cb25)
  • theme: Make elevated surfaces read as lifted, not outlined (b191091)
  • theme: Draw a surface edge once, in glass (bb85d95)
  • theme: Separate stacked surfaces by tone, not by outline (2cb46eb)
  • language: Flatten the ring when a surface nests inside another (1dcf130)
  • table: Drop the corner radius when a table nests in a panel (8be7d4d)
  • data-table: Show the search icon and the active page size (5be6a65)

Code Refactoring

  • language: Compose every floating surface from one source (5382a74)

Features

  • theme: Add the akira color ramp (35ebe31)
  • theme: Drive semantic tokens from the akira ramp (705d93f)
  • theme: Add data-brand presets with the nosferry palette (07f0435)
  • i18n: Ship the portuguese data table labels as a locale export (2b3c3f5)
  • theme: Give every container component its own surface (70bfa49)
  • language: Give controls a glass surface and modals a solid edge (f477921)
  • language: Unify surface, radius and control colour across the set (c140692)
  • package: Ship the documentation with the package (d8aea54)