Skip to the content
BooleanPress UI

Changelog

What changed in each version, and what to do when you update.

Versions

Before 1.0.0, a minor version can change behaviour, and says how to update; a patch version only fixes. The package's own copy of this page is CHANGELOG.md.

0.1.0 — 2026-10-04

The first public release.

  • 43 components, each imported from its own entry (@booleanpress/ui/<component>) and typed for TypeScript, with a .d.ts for every entry: Alert, Alert dialog, Avatar, Badge, Breadcrumb, Button, Button group, Calendar, Card, Chart, Checkbox, Collapsible, Command, Dialog, Dropdown menu, Empty, Field, Input, Input group, Item, Kbd, Label, Native select, Pagination, Password input, Popover, Progress, Radio group, Scroll area, Select, Separator, Sheet, Sidebar, Skeleton, Spinner, Switch, Table, Tabs, Textarea, Toast (@booleanpress/ui/sonner), Toggle, Toggle group and Tooltip. They come from the shadcn/ui CLI 4.21.1 (new-york) on Radix; every change from stock is in PATCHES.md.
  • Server rendering. The built files keep "use client" on every module that needs the browser, so a Next.js App Router app renders them on the server and hydrates them.
  • Optional peers. Chart needs recharts 3, Calendar react-day-picker 10 and Toast sonner 2. They are optional peer dependencies: an app that does not import those entries installs and builds without them. Command brings cmdk as a dependency.
  • BooleanUIProvider: 19 translatable strings with English defaults, the text direction, the tooltip timing and the sidebar's storage key. No component writes English of its own.
  • theme.css: shadcn/ui's token names with neutral defaults, plus --control for the edge of a form control; the motion tokens; overlays that fade out over 100 ms, opacity only (<html data-bui-exits="off"> closes them at once); reduced motion; and resets that keep WordPress's admin styles off portalled overlays.
  • Right-to-left. Every component uses logical classes (ms-*, ps-*, start-*, text-start), so layouts mirror in an RTL page; sheets slide in from the edge they sit on, chevrons turn round, the calendar's arrow keys follow the provider's direction, and a shortcut in Kbd keeps its written order.
  • bui-contrast: a command for a product's lint that fails when a text colour the components draw drops below 4.5:1 on its surface, or a form control's edge below 3:1, in the light or the dark theme.
  • Documentation: https://ui.booleanpress.com, with a page for every component and 12 guides, and the same pages as Markdown inside the package (dist/docs/, indexed by dist/docs/llms.txt), matched to the installed version.
  • AI assistant plugin for Claude Code, Codex, GitHub Copilot, Cursor and Gemini CLI, installed from this repository's marketplace. Its seven skills read the Markdown documentation in the installed package.
  • MIT licence. NOTICE keeps shadcn/ui's MIT notice.

Beyond stock shadcn/ui:

  • Dialog, Alert dialog and Sheet: the panel uses the floating-surface tokens; dialogs fit below the WordPress admin bar, with a scrolling DialogBody; Dialog has size (sm, md, lg); the × is named from the provider; and focus never falls to <body> on close: it returns to the element that opened the overlay, or to returnFocusTo when that element is gone.
  • Form controls you can see: the edge of Checkbox, Radio group, Input, Textarea, Select, Native select, Input group and Calendar's menus, and Switch's off track, is --control, at least 3:1 against every surface it sits on, WordPress's admin grey included (WCAG 1.4.11). Stock draws them with --input, about 1.3:1.
  • Select opens below its field; Tooltip waits 500 ms; Tabs' inactive labels pass AA in every palette; Checkbox's mixed state shows a dash on a filled box.
  • Accessibility: Command's hidden title sits inside its dialog and names its search field, and its separator no longer breaks the list; Item's group drops an invalid role="list"; a Scroll area or a wide Table that scrolls content with nothing focusable is reachable by keyboard; Password input's button keeps one name and reports its state with aria-pressed.
  • Sidebar keeps its state in local storage under the provider's sidebarStorageKey, not in a cookie, and a menu button's tooltip stays closed unless the sidebar is collapsed to its icons.
  • Chart draws after hydration, so a server-rendered page logs no hydration error. Toast takes its status colours from the status tokens and its theme as a prop.

Moving from a pre-release build

BooleanSMTP and BooleanDesk used pre-release builds of this package from packed tarballs, never published to npm. To move to this release:

  • install @booleanpress/ui@0.1.0 from npm, pinned exactly, in place of the tarball;
  • replace each local copy in components/ui/ with its package entry (@/components/ui/sidebar → @booleanpress/ui/sidebar), and install recharts, react-day-picker or sonner if you use Chart, Calendar or Toast;
  • Sidebar: pass sidebarStorageKey to the provider (one per product) and, to keep starting collapsed, defaultOpen={false}. The old sidebar_state cookie is no longer read;
  • Toast: pass your theme, <Toaster theme={dark ? "dark" : "light"} />, instead of a local theme-provider import;
  • Translations: add the provider's newer keys to your strings map (pagination, breadcrumb, more, suggestions, showPassword, notifications and closeNotification); until then they read in English;
  • Brand palettes: run bui-contrast on your brand.css. If your palette changes --background, --card, --popover, --muted or --sidebar, set --control in :root and .dark so it stays at 3:1 on each of them; the default is oklch(0.6 0 0) light and oklch(0.58 0 0) dark;
  • TypeScript now checks props: an invalid value, such as size="xl" on DialogContent, is an error;
  • remove disableAnimation from any PopoverContent.