Releases: TEDI-Design-System/react
react-16.2.0-rc.1
react-16.1.1-rc.1
16.1.1-rc.1 (2026-04-02)
Bug Fixes
react-16.1.0
16.1.0 (2026-03-26)
Bug Fixes
- file-dropzone: pass formlabel props to FormLabel #537 (#548) (0aaf2e6)
- list: fix mobile padding #552 (#553) (2e93804)
- sidenav-toggle: fix button size, add className prop #562 (#573) (5c961d3)
- status-badge: add missing forwardRef, update stories #546 (#572) (cb86a50)
- status-badge: inherit icon color from text, fix dark mode icon colors #545 (#547) (59ce1cc)
- textfield: Move tabIndex attribute to input element #564 (#565) (11dcb5b)
Features
- docs: added css-utilities documentation #570 (#571) (84bfbd7)
- dropdown: TEDI-Ready Dropdown component #94 (#549) (836039f)
- theme-provider: theme provider changes #499 (#550) (07fa36c)
- tooltip: Add shift altBoundary: true to tooltip-provider.tsx #566 (#567) (4ac0af6)
Infrastructure
- deps: bump react-toastify from 9.1.3 to 11.0.5 (#540) (0650049)
- deps-dev: bump @swc/helpers from 0.5.17 to 0.5.19 (#542) (5e34aaa)
- deps-dev: bump @faker-js/faker from 8.4.1 to 10.3.0 (#544) (baf070a)
- deps: bump @tedi-design-system/core from 3.2.0 to 3.3.0
- deps: bump semantic-release from 24 to 25, @semantic-release/npm from 12 to 13
Deprecations
The following are now deprecated and targeted for removal in September 2026.
| Deprecated | Replacement | Since | Migration guide |
|---|---|---|---|
Dropdown (community) |
Dropdown (TEDI) |
16.1.0-rc.3 | 16.1.0-rc.3 |
Notable Changes
ThemeProvider API changes (since 16.1.0-rc.1)
react-16.1.0-rc.7
react-16.1.0-rc.6
16.1.0-rc.6 (2026-03-23)
Bug Fixes
react-16.1.0-rc.5
16.1.0-rc.5 (2026-03-23)
Bug Fixes
react-16.1.0-rc.4
react-16.1.0-rc.3
16.1.0-rc.3 (2026-03-11)
Features
Migration guide
The community Dropdown has been replaced by a TEDI-Ready compound component with the same name. The new component offers more flexibility, better accessibility (menu/menuitem roles), and additional features like breakpoint support, controlled state, width options, tree variants, and custom content.
Import path change:
- import { Dropdown } from '@tedi-design-system/react/community';
+ import { Dropdown } from '@tedi-design-system/react/tedi';Before (community — data-driven):
<Dropdown
button={{ visualType: 'secondary', size: 'small', children: 'Actions' }}
items={[
{ children: 'Edit', onClick: handleEdit },
{ children: 'Delete', onClick: handleDelete, isDisabled: true },
{ children: 'Archive', onClick: handleArchive, isActive: true },
]}
closeMenuOnClick={true}
onItemClick={(item, index) => console.log(index)}
/>After (TEDI — compound component):
<Dropdown>
<Dropdown.Trigger>
<Button visualType="secondary" size="small">Actions</Button>
</Dropdown.Trigger>
<Dropdown.Content>
<Dropdown.Item onClick={handleEdit}>Edit</Dropdown.Item>
<Dropdown.Item onClick={handleDelete} disabled>Delete</Dropdown.Item>
<Dropdown.Item onClick={handleArchive} active>Archive</Dropdown.Item>
</Dropdown.Content>
</Dropdown>Key changes:
| Aspect | Community Dropdown |
TEDI Dropdown |
|---|---|---|
| Pattern | Monolithic, data-driven (items array) |
Compound component (Dropdown.Trigger, .Content, .Item, .Separator) |
| Trigger | button: ButtonProps — always renders a community Button |
<Dropdown.Trigger> — wraps any ReactElement |
| Items | items: DropdownItem[] array prop |
<Dropdown.Item> children inside <Dropdown.Content> |
| Disabled item | isDisabled |
disabled |
| Active item | isActive |
active |
| Close on click | closeMenuOnClick (global) |
closeOnSelect (per item, default true) |
| Global item callback | onItemClick |
Not available — use onClick on each <Dropdown.Item> |
| Focus manager | focusManager prop |
modal prop (boolean) |
| ARIA role | listbox / option |
menu / menuitem |
| Placement | Hardcoded bottom-start |
Configurable via placement prop |
| Width | Auto only | 'auto' | 'trigger' | 'full' | number | CSS string |
| Dividers | Not supported | divided prop or <Dropdown.Separator> |
| Tree variant | Not supported | variant="tree" with indent and isParent |
| Embedded controls | Not supported | asChild prop for Checkbox/Radio/custom content |
| Controlled state | Not supported | open / defaultOpen / onOpenChange |
| Breakpoint support | Not supported | Full BreakpointSupport |
| className | Not supported | Supported on Dropdown and Dropdown.Item |
react-16.1.0-rc.2
react-16.1.0-rc.1
16.1.0-rc.1 (2026-03-10)
Features
Migration guide
The ThemeProvider no longer validates themes against a fixed AVAILABLE_THEMES list. The exported Theme type is now TEDITheme | string, where TEDITheme = 'default' | 'dark'. Any string value is accepted as a valid theme.
Theme initialization priority has also changed. The provider now resolves the initial theme in this order:
localStorage(tedi-themekey)document.cookie(tedi-themecookie)themeprop- Falls back to
'default'
This means a previously-stored theme will take precedence over the theme prop. If your application relied on the prop always being authoritative, clear the stored value or adapt your initialization logic.