Two new layout options in this release: an icon-only square button for compact toolbars and action bars, and vertical orientation for Steps — ideal for wizard flows and multi-step forms where step labels are long.
Features ⚡️
- Button: new icon-only variant with a square 1:1 aspect-ratio (#1570).
- Steps / Step Item: added
orientationproperty with support for a vertical layout (#1566).
Bug Fixes 🐞
- Datepicker: resolved a race condition in the Cally library loading path (#1604).
- Select: prevented tag removal on Backspace in multi-select when the text input is non-empty (#1597).
Refactor 🛠️
- Datepicker: extracted utilities for better performance and scalability; updated Cally library (#1603).
Chore ⚙️
- Major dependency bumps: Angular → v21, Node.js → v24, Vite → v7, NX → v22, Storybook → v10, Commitlint → v20.
❤️ Thank You
Features ⚡️
- Datepicker: added support for dot-separated date formats
DD.MM.YYYY/MM.DD.YYYY(#1558). - Option: added
displayValueprop tobq-optionfor custom label rendering in multi-select (#1531).
Bug Fixes 🐞
- Accordion: corrected medium-size corner radius to match the Figma design spec (#1537).
- Alert / Drawer: fixed a regression where
hide()was not called correctly on close-button click (c38282b). - Date Picker: clamped out-of-range input values to the nearest
min/maxboundary (#1546). - Datepicker: now fires the change event for invalid date format inputs as well (#1544).
- Select: the search filter now matches against both the label and the value, case-insensitively (#1538).
- Side Menu: restored visibility of slotted button icons in the footer on hover for
brandandinversevariants (#1547). - Spinner: corrected a typo in a label-position type value (#1543).
Chore ⚙️
Features ⚡️
- BEEQ Tailwind CSS: added a custom
flattenColorPaletteimplementation for Tailwind CSS v4 compatibility (#1533).
Bug Fixes 🐞
- Assets Path:
data-beeqpath is now used as-is when provided (#1532). - Radio Group:
bqFocusandbqBlurevents are now emitted exactly once (#1511). - Select: improved value initialisation and guarded against missing input elements (#1510).
❤️ Thank You
Three quality-of-life wins in this release: overlay panels now lock body scroll (no more content shifting behind an open Dropdown or Select), BEEQ design tokens apply directly to native
<table> elements with no wrapper component needed, and the Icon’s SVG fetcher now deduplicates concurrent requests to reduce network overhead.Features ⚡️
- Dropdown / Select: the document body scroll is now locked while an overlay panel is open (#1483).
- Table: added base styles for native HTML table elements (#1493).
- Tooltip: the tooltip now auto-hides on scroll unless
alwaysVisibleis set (#1482). - Tooltip: added
preventDefaultsupport forclick,focus, andhovertrigger events (#1507).
Bug Fixes 🐞
- BEEQ Tailwind CSS: improved specificity and default behavior for light and dark mode tokens (#1486).
- Date Picker: ensured consistent date selection across time zones (#1506).
- Radio Group: a radio group can now receive focus when no item is checked (#1503).
- Side Menu Item: fixed active selection not triggering on Enter or Space key press (#1501).
- Slider: fixed progress-track rendering when
minis a negative value (#1487). - Steps / Step Item: improved accessibility and interaction behavior (#1502).
Refactor 🛠️
- BEEQ Tailwind CSS: replaced the external
tailwindcss-theme-swapperplugin with a first-party implementation (#1481). - Icon: improved SVG fetching with request deduplication, caching, and security validation (#1485).
❤️ Thank You
The workspace migrates from NPM to pnpm in this release, significantly reducing disk usage and install times across the monorepo. On the component side, Select gains a real-time
bqInput event for filtering feedback and a reset() method to restore a previous value.Features ⚡️
- Select: added
bqInputevent for real-time input value changes during filtering (#1476). - Select: added a
reset()method to restore the component to a previous value (#1477).
Bug Fixes 🐞
- Dialog: changed positioning from
absolutetofixedfor correct stacking context (#1464). - Select: value clearing now uses an empty string instead of
undefined(#1475).
Chore ⚙️
- Workspace migrated from NPM to pnpm (#1442).
❤️ Thank You
Chore ⚙️
- Dependency bumps: Stencil vue-output-target → v0.9.4, NX → v20.4.0, React → v19 (major).
Chore ⚙️
- Fixed CI publish workflow; dependency bumps: Puppeteer → v23.10.4, Vite → v5.4.11.
The biggest release of 2024. All BEEQ form controls are now natively form-associated — their values appear in
FormData, participate in browser validation, and submit with the parent <form> with no extra JavaScript wiring. @beeq/react also gains full SSR support, making it compatible with Next.js App Router and Remix server components.Features ⚡️
- Checkbox / Date Picker / Input / Radio / Select / Slider / Switch / Textarea: enabled native form-association support across all form controls (#1213, #1362, #1211, #1353, #1212, #1369, #1368, #1370).
- BEEQ Angular: enabled
inlinePropertiesconfiguration (#1330). - React: added Server Side Rendering (SSR) support (#1216).
- Tab: added
horizontalandverticalorientation support (#1091).
Bug Fixes 🐞
- Alert: made the close icon customizable via a dedicated slot (#1230).
- Assets: SVG base path is now persisted on the window object across navigation (#1218).
- Button: removed extraneous
roleandtitleattributes from the loading icon (#1351). - Date Picker: improved hover and cursor styles for date ranges, disabled, and today states (#1356).
- Drawer: switched to
x-boldicon and moved the close button slot inside<bq-button>(#1210). - Icon: deduplicated concurrent icon requests (#1209).
- Input: improved
requiredvalidation handling on form submit when the value is empty (#1371). - Select: fixed
displayValuenot shown when an initial value is set programmatically (#1217).
Refactor 🛠️
- BEEQ Tailwind: moved declarative tokens to their corresponding Tailwind core plugin (#1315).
- Notification / Toast: portal elements are now mounted from
connectedCallback()lifecycle (#1236, #1237).
Chore ⚙️
- Added Custom Elements Manifest JSON files (#1352).
- Migrated ESLint to v9 with a flat config format (#1297).
- Configured
nx releasefor versioning and publishing (#1382).
❤️ Thank You
Features ⚡️
- Drawer: deprecated
placementprop in favour of the newpositionproperty (#1110). - Icon: added
--bq-icon--directionCSS custom property to automatically flip icons in RTL contexts (#1156). - Page Title: introduced the new
bq-page-titlecomponent (#1085). - Select: added support for custom tag display in the multiple-selection variant (#1093).
Bug Fixes 🐞
Features ⚡️
- Tokens: added new
--bq-stroke-*design tokens for border-width values (#1062).
Bug Fixes 🐞
- Beeq Core: resolved Vite failure to resolve
@beeq/core/dist/*paths (#1077). - Date Picker: fixed missing value accessor and model config for Angular (#1066).
- Slider: lower value not updated when equal to the upper value (#1078).
- Slider: range thumbs no longer get stuck when min/max values overlap (#1075).
Chore ⚙️
- Dependency bumps: Angular → v18 (major), NX → v19, Storybook → v8.1.5, Stencil → v4.18.3, Cally → v0.6.1.
This release introduces the
bq-date-picker component — supporting single and date-range selection, keyboard navigation, and locale-aware formatting — alongside a new secondary ghost button variant.Features ⚡️
- Button: added secondary ghost variant (#1058).
- Date Picker: introduced the new
bq-date-pickercomponent (#1029). - Drawer: added support for a custom footer divider (#1060).
Refactor 🛠️
- Select: removed redundant CSS rules (#1057).
Chore ⚙️
- Improved ESM exports and type exports; dependency bumps: Stencil → v4.18.2.
A major Select upgrade: multi-select (selected values render as removable tag chips) and real-time search/filter are now available. Typing in the Select filters the options list instantly, making long lists much easier to navigate. The Slider also gains an optional tooltip over each thumb.
Features ⚡️
- Select: added support for multiple selection (#1025).
- Select: added support to search and filter the options list (#1024).
- Slider: optional tooltip display over slider thumb(s) (#999).
Bug Fixes 🐞
- Select: initial value not displayed on component load (#1017).
- Side Menu: item tooltips not showing correctly when the menu is collapsed (#1014).
- Slider: range type not rendering correctly when the max value is greater than 10 (#1004).
- Slider: unable to drag the slider down to
0(#996).
Chore ⚙️
- Dependency bumps: Storybook → v8, Angular → v17.3.5, NX → v18.3.3, Stencil → v4.16.0, Vite → v5.2.10.
Features ⚡️
- Drawer: introduced the new
bq-drawercomponent (#918). - Progress: introduced the new
bq-progresscomponent with indeterminate support (#946, #967). - Tooltip: added
always-visiblemode to keep the tooltip permanently shown (#959).
Bug Fixes 🐞
- Accordion: improved open/close animations and
bqAfterOpen/bqAfterCloseevent handling (#951). - Dialog: dialog was closing on Esc when
disable-close-esc-keydownwas enabled (#979). - Dialog: corrected wrong entry/leave transition position (#929).
Chore ⚙️
- Dependency bumps: Storybook → v8.0.5, Angular → v17.3.2, NX → v18.2.1, Stencil → v4.13.0.
Features ⚡️
- Accordion: added
appearanceandsizeproperties tobq-accordion-group(#901). - Angular: added standalone component exports to the
@beeq/angularoutput target (#870).
Bug Fixes 🐞
- Accordion: incorrect
not-allowedcursor for the disabled state (#877). - Card: removed unintended
display: flexandposition: relativefrom the wrapper (#864). - Dropdown: trigger element is now disabled when the dropdown has
disabled="true"(#878). - Icon: replaced
titleattribute withlabelfor accessibility (#880). - Slider: added
not-allowedcursor for the disabled state (#879). - Theme: updated the Endava theme font family to reflect the new brand (#893).
- Vue: fixed camelCase events not being listened to on wrapped components (#921).
Documentation 📚
- Updated package names in README files (8256de3).
Chore ⚙️
Features ⚡️
- Alert: added
borderproperty to support dynamic border-radius changes (#817). - Card: introduced the new
bq-cardcomponent (#806). - Dialog: added
borderproperty to support dynamic border-radius changes (#818). - Notification: added
borderproperty to support dynamic border-radius changes (#819). - Toast: added
borderproperty to support dynamic border-radius changes (#820).
Documentation 📚
- Updated missing SCSS variable descriptions (#829).
Chore ⚙️
- Dependency bumps: NX → v18 (major), Puppeteer → v22, Storybook → v7.6.14, Angular → v17.1.3, Stencil → v4.10.0.
Features ⚡️
- Icon: added support for a custom
srcattribute and custom assets path (#742). - Select: added a
clear()method to programmatically remove the selected value (#770). - Tag: allowed setting a custom tag color (#724).
Bug Fixes 🐞
- Accordion: focus is now skipped when
disabled="true"(#741). - Alert: improved open/close animation (#769).
- Dialog: fixed
footerAppearancetypo and improved open/close animations (#767). - Notification: improved open/close animations (#768).
Documentation 📚
- Accordion: added CSS variable descriptions (#788).
- Search Input: added Storybook examples for the search input pattern (#766).
- Storybook: enabled visual tests addon with Chromatic (#755).
Chore ⚙️
- Dependency bumps: NX → v17.3.0, Storybook → v7.6.12, Angular → v17.1.2, Tailwind → v3.4.1, Vite → v5.0.12.
A landmark release with four new components — Accordion, Alert, Empty State, and Tag — plus the introduction of
@beeq/beeq-tailwindcss: a drop-in Tailwind CSS preset that maps all BEEQ design tokens to utility classes, enabling the design system to be applied directly in markup.Features ⚡️
- Accordion: introduced
bq-accordionandbq-accordion-groupcomponents (#697). - Alert: introduced the
bq-alertcomponent (#675). - BEEQ TailwindCSS: added the
@beeq/beeq-tailwindcssopinionated Tailwind CSS preset package (#628). - Button: added
borderproperty to support border-radius changes (#709). - Empty State: introduced the
bq-empty-statecomponent (#694). - Tag: introduced the
bq-tagcomponent (#695).
Bug Fixes 🐞
Documentation 📚
- Prevented Storybook docs pages from being indexed by crawlers (61bbe38).
Chore ⚙️
- Added GitHub Pages deploy workflow for Storybook (#715).
- Dependency bumps: Angular → v17, NX → v17.2.8, Storybook → v7.6.6, Tailwind → v3.4.0, Vite → v5, Stylelint → v16.
This release ships the Steps component and the Endava theme — the first non-default theme in BEEQ, demonstrating how the design token layer enables full white-labelling of the component library.
Features ⚡️
- Colors: added new
altandalt-disabledcolor tokens (#505). - Steps: introduced
bq-stepsandbq-step-itemcomponents (#532). - Theme: added the Endava theme (#567).
Bug Fixes 🐞
- Form Inputs: label containers are now hidden when no slot content is provided (#569).
- Tooltip: added
z-indexto the tooltip panel to prevent layering issues (#570).
Chore ⚙️
- Dependency bumps: NX → v16.9.1, Storybook → v7.4.6, Stencil → v4.3.0, Node.js → v18.18.2.
A landmark release: BEEQ gains dark mode (set
data-bq-mode="dark" on any container to switch all color tokens instantly), two major new components (Select and Textarea), and global typography CSS styles.Features ⚡️
- Select: introduced the new
bq-selectcomponent (#449). - Textarea: introduced the new
bq-textareacomponent (#393). - Theme: added dark mode support (#435).
- Typography: added global typography CSS styles (#388).
Bug Fixes 🐞
- Avatar: trims initials text only when present (#428).
- Side Menu Item: fixed icon misalignment when the menu is collapsed (#453).
- Tab: active tab now updates when value is changed externally (#402).
Documentation 📚
- Renamed all README files and packages folder to use
BEEQbranding (#454).
Chore ⚙️
- Dependency bumps: NX → v16.7.0, Storybook → v7.3.1, Stencil → v4.0.3, Puppeteer → v21, Tailwind → v3.3.3.
Patch release with no user-facing changes.
Bug Fixes 🐞
- Checkbox: fixed label misalignment when a parent container had different alignment (#35).
- Font Family: switched from
@importto@font-facefor better performance (#32). - Icon: fixed base container alignment for custom size values (#33).
- Slider: fixed layout styles breaking when the parent had alignment set (#34).
Features ⚡️
- Spinner: introduced the
bq-spinnercomponent (#75). - Switch: introduced the
bq-switchcomponent (#84). - Utils: added
setProperties()utility method (#80).
Bug Fixes 🐞
- Badge: fixed misspelled
disconnectedCallbacklifecycle method (#90). - Slider: fixed missing Angular value accessor and host
displayCSS rule (#91). - Spinner: fixed misspelled
disconnectedCallbacklifecycle method (#89).
Documentation 📚
- Updated README usage section and spinner shadow parts documentation (c975cc1).
This release marks the first stable version of BEEQ and includes all features and bug fixes from prior pre-releases, plus the following changes:
Features ⚡️
- Utils: removed unnecessary
propertyValueparameter fromvalidatePropValue(#53).