## 1.0.0-rc.28

### Minor Changes

- Add `selectedOption` readonly property to `odx-spin-box`
- Remove internal type `TitleHeadingLevel` by inlining it into the property type of `odx-title`
- `odx-accordion-item` now handles `click` events on itself rather than handling them up the tree

### Patch Changes

- Fix event handling for several components only calling `event.preventDefault()` when necessary to allow nested interactive elements to work correctly 

## 1.0.0-rc.27

### Major Changes

- Reset `odx-table` to its initial much simpler implementation, more complex table features will be added in future releases

### Minor Changes

- Add `variant` property to `odx-spin-box`
- Add `readonly` styles to `odx-spin-box`

### Patch Changes

- Fix `odx-option` label not inheriting font weight from host element
- Fix mouse/keyboard interaction for `odx-spin-box` when disabled or readonly

## 1.0.0-rc.26

### Major Changes

- Rename `odx-banner` to `odx-page-banner` to better reflect its intended usage
- Rename `OdxBanner`, `BannerSize` and `BannerVariant` to `OdxPageBanner`, `PageBannerSize` and `PageBannerVariant` respectively to align with the component rename
- Include `odx-page-banner` into the `odx-page` entry point
- Align `variant` property of `odx-page-banner` with design spec
- Align `variant` property of `odx-inline-message` with design spec
- Remove `strong` property from `odx-inline-message` to align with design spec
- Remove `iconActive` property from `odx-icon-button` as it was not used anywhere and is not part of the design spec
- Change default variant of `odx-page-banner` to `primary-subtle` to align with design spec

### Minor Changes

- Add `actions` slot to `odx-page-banner`
- Add `icon-disabled` property to `odx-inline-message`
- Add `size` property to `odx-loading-spinner`

### Patch Changes

- Fix `odx-blue-bar` width when placed inside a container
- Fix `odx-logo-caption` sizing when used inside `odx-logo`
- Use smaller vertical spacing in `odx-progress-bar`
- Reset `box-sizing` property to `border-box` for all elements inside a components shadow DOM to prevent unexpected layout issues
- Only apply scroll lock if dialog backdrop is enabled and the target layer is not `container`
- Prevent `prefix` and `suffix` slots of `odx-input` from being focusable when disabled

## 1.0.0-rc.25

### Patch Changes

- Fix click listener of `odx-chip` and `odx-tile` always stopping propagation

## 1.0.0-rc.24

### Patch Changes

- Fix types for styles entry point in `package.json` exports

## 1.0.0-rc.23

### Major Changes

- Remove `disabled` property from `odx-page-header-title`, use `interactive` property instead
- Rename `HeaderSize` enum to `PageHeaderSize`
- Remove `neutral` variant from `odx-inline-message`
- Rename `accent-ghost` variant of `odx-badge` to `accent-subtle` to align with design spec
- Rename `danger-ghost` variant of `odx-badge` to `danger-subtle` to align with design spec

### Minor Changes

- Add `odx-page-footer` component for displaying footer content at the bottom of a page
- Add `success-subtle` variant to `odx-badge`
- Add CSS parts for `odx-pagination` to allow access to the internal button elements:
  - `first-page-button`
  - `previous-page-button`
  - `next-page-button`
  - `last-page-button`
- Move `BreakpointController` from `odx-page-header` to `odx-page` to allow responsive behavior in the page footer as well
- Remove unused `disabled` property from `odx-avatar`
- Remove unused `alignment` property from `odx-empty-state`

### Patch Changes

- Add `CHANGELOG.md` to package exports
- Fix exports field in `package.json` to resolve `type` imports first
- Fix `href` property of proxy anchors not updating correctly when the `href` attribute of the host component changes
- Improve documentation for `odx-avatar`, `odx-badge`, `odx-empty-state` and `odx-page-header-title`
- Remove internal dependency on `WidgetElement` from `odx-avatar`, `odx-chip`, `odx-page-header-title` and `odx-tile`

## 1.0.0-rc.22

### Patch Changes

- Disable keyboard interaction for `odx-list-item` when `muted` and not expandable to allow nested interactive elements to be accessible
- Remove `tabindex` attribute from `odx-list-item` when `muted` and not expandable to prevent unwanted focus
- Pierce shadow DOM boundaries when looking for the root element in `getRootElement` utility function to ensure correct behavior of features that rely on the root element such as popover positioning and scroll locking in dialogs even when the components are used inside nested shadow DOMs without an `.odx-root` element.

## 1.0.0-rc.21

### Major Changes

- Remove `subtle` variant from `odx-toggle-button` as it is not part of the design spec anymore

### Minor Changes

- Add `odx-chip-group` component

### Patch Changes

- Fixed missing styles due to `odx-tooltip` always getting injected into the document `body` even if `.odx-root` is not applied to the `html` element.

## 1.0.0-rc.20

### Patch Changes

- Fix broken input behavior for whitespace and enter key for `odx-input` and `odx-textarea`
- Fix focus disabled behavior of `odx-tile` preventing nested focusable elements from being focused
- Fix focus outline of `odx-scroll-container`

## 1.0.0-rc.19

### Patch Changes

- Apply scroll lock only for dialog based components not in layer `container`
- Remove `pointerup` listener when dialog based components disconnect
- Performance: Optimized `odx-page` offset top calculation by caching the current frame id and performing the calculation only once per frame

## 1.0.0-rc.18

### Major Changes

- Rename `color` attribute of `odx-logo` to `variant` in order to avoid conflicts with the HTML `color` attribute
- Replace old `variant` attribute of `odx-logo` with new `type` attribute and `compact` boolean attribute
- Rename and inverted `dismissible` attribute of `dialog` elements to `blocking` due to conflicts with how boolean attributes are treated in HTML. Affected components:
  - `odx-modal`
  - `odx-drawer`
  - `odx-bottom-sheet`
  - `odx-side-sheet`

### Minor Changes

- Add `odx-blue-bar` component
- Add `type` property to `odx-logo` which determines the position of the logo caption if present
- Add `variant` value `ghost` to `odx-drawer`, which hides the box-shadow
- Add `compact` property to `odx-logo`
- Add `odx-logo-caption` component for displaying the logo caption, supports all brand languages
- Dialog elements now apply a scroll lock on the document when they are open to prevent background scrolling if necessary, affected components:
  - `odx-modal`
  - `odx-drawer`
  - `odx-bottom-sheet`
  - `odx-side-sheet`
- Make `open`/`close`/`toggle` methods of dialog components async, returning a promise that resolves when the show/hide transition is finished to allow better coordination of actions that should happen after the dialog is shown/hidden
- Support overriding icons per index in `odx-rating`
- Improve `odx-skeleton` loading animation

### Patch Changes

- Fix initial focus index calculation for `odx-toggle-button-group`, `odx-radio-group` and `odx-checkbox-group`
- Fix `odx-modal` spacing top for layers `page` and `container`
- Fix `odx-tooltip` mistakenly applying `ActiveDirective` to the reference element
- Fix `odx-banner` exit transition not working
- Fix `odx-page` and `odx-page-layout` layout calculation introducing flickering when resizing header content

## 1.0.0-rc.17

### Patch Changes

- Prevent `input` focus in `odx-input` and `odx-input-number` when clicking on nested interactive elements
- Blur `input` in `odx-input` and `odx-input-number` when clicking on nested interactive elements that are not part of the shadow DOM
- Remove `console.log` debug output from `FocusableController`

## 1.0.0-rc.16

### Patch Changes

- Fix focus trap preventing outside click behavior in `odx-modal`, `odx-drawer`, `odx-bottom-sheet` and `odx-side-sheet` components
- Fix only animate `odx-toggle-button-group` and `odx-tab-bar` indicator position update when the component is visible
- Fix prevent `odx-button-group` menu from closing if a toggle button is targeted
- Fix roving tabindex behavior for `odx-radio-group`, `odx-checkbox-group` and `odx-toggle-button-group`
- Various small bug fixes and improvements throughout the library

## 1.0.0-rc.15

### Patch Changes

- Fix focus trap behavior, it now finds deeply nested tabbable elements

## 1.0.0-rc.14

### Minor Changes

- Add focus trap behavior to `odx-modal`, `odx-drawer`, `odx-bottom-sheet` and `odx-side-sheet` components
- Support `odx-autofocus` attribute inside dialog elements to automatically focus the first matching element when a dialog is shown


### Patch Changes

- Fix default foreground color not applied for popover and dialog elements

## 1.0.0-rc.13

### Patch Changes

- Fix focus handling for `odx-button-group`, `odx-input`, `odx-select`, `odx-list-box` and `odx-menu`

## 1.0.0-rc.12

### Major Changes

- Remove `focus-disabled` attribute, use `tabindex="-1"` or the `focusDisabled` property instead
- Remove `primary` variant from `odx-status`

### Minor Changes

- Add `subtle` and `accent` variants to `odx-status`
- Add `icon` property to `odx-status` to display an icon next to the status badge
- Add `loading` property to `odx-status` to show a loading spinner instead of the status badge and icon
- Add `size` property to `odx-status`
- Add `hint-loading` attribute to `odx-button`, `odx-tab-bar-item` and `odx-toggle-button`
- Improve doc comments for several components:
  - `odx-accordion`
  - `odx-accordion-item`
  - `odx-avatar`
  - `odx-badge`
  - `odx-banner`
  - `odx-inline-message`
- Improve `odx-inline-message` UI for better distinction between different sizes
- Improve `odx-status` UI
- Re-export `PopoverPlacementOptions` from `odx-popover` to better encapsulate the internal implementation
- Remove internal utility functions `flattenObject` and `isPlainObject` from public API surface as they are not used by any components and can be easily implemented by consumers if needed

### Patch Changes

- Fix initial focus index calculation, affected components:
  - `odx-checkbox-group`
  - `odx-list-box`
  - `odx-menu`
  - `odx-radio-group`
  - `odx-tab-bar`
  - `odx-toggle-button-group`
- Align `odx-badge` background color for variant `neutral` with specification
- Align `odx-badge` outer spacing with specification
- Fix show/hide transition of `odx-banner`
- Fix content height collapse during transition in `odx-toggle-content` component
- Remove unecessary CSS from custom element base styles
- Remove dead code from `odx-menu` component
- Remove debug info from rolldown build output

## 1.0.0-rc.11

- Fix indicator positioning for `vertical` layout of `odx-toggle-button-group`
- Fix selection item management not working for dynamically added/removed items, affected components:
  - `odx-checkbox-group`
  - `odx-radio-group`
  - `odx-toggle-button-group`
  - `odx-list-box`

## 1.0.0-rc.10

### Patch Changes

- Add missing `size` property to `odx-chip` and adjust icon placement
- Fix `odx-tile` interactive state was applied inversely
- Fix `odx-media-player` volume button variant

## 1.0.0-rc.9

### Major Changes

- Replace `autoResize` property of `odx-textarea` with `resize` property with default state `false`
- Remove `--size` CSS property from `odx-loading-spinner`, use `font-size` instead
- Remove `show()` and `hide()` methods from `odx-inline-message`, use `hidden` attribute instead
- Rename `start` slot of `odx-page` to `navigation` for better semantics and to allow for more flexible layouts in the future
- Remove `alignment` property from `odx-page` component

### Minor Changes

- Add `odx-banner` component for displaying important messages and announcements on top of a page or section
- Add `odx-rating` component for displaying and selecting ratings
- Add `action-start` and `action-end` slots to `odx-textarea` for adding interactive elements inside the textarea container
- Add `inline` property to `odx-loading-spinner`
- Add `offset` property to `odx-tooltip` to control the distance between the tooltip and its reference element
- Add `banner` slot to `odx-page`
- Export `odx-page` slot containers via CSSParts API for better styling capabilities
- Show `odx-tooltip` when hovering over a `odx-progress-bar` that is `condensed` to provide access to the full label and value information
- Add default slot to `odx-progress-bar` to allow adding custom content as progress hint
- Add variant `subtle` to `odx-toggle-button`
- Improve `ghost` variant of `odx-toggle-button`
- Remove internal `IsLocalized` mixin 
- Improve design of `odx-toggle-button-group` to improve UX
- Enable roving tabindex behavior for `odx-accordion`
- Add `start` parameter to `RelativeTimeFormatOptions` to allow setting the reference time for relative time calculations

### Patch Changes

- Add `listbox` role to `odx-list-box` if no role attribute is provided
- Fix outside click detection for dialog elements in layer `page`
- Fix page offset top calculation in `odx-page` component
- Fix various keyboard navigation issues, affected components:
  - `odx-accordion`
  - `odx-tab-bar`
  - `odx-checkbox-group`
  - `odx-radio-group`
  - `odx-toggle-button-group`
  - `odx-list-box`
  - `odx-menu`

## 1.0.0-rc.8

### Major Changes

- Remove `setTabIndex` method from `CustomElement` base class, use `tabindex` attribute directly instead
- Remove `emit` method from `CustomElement` base class, use `dispatchEvent` method directly instead
- Remove `elementInternals` property from `CustomElement` public API
- Remove `isExpandable` method from `OdxNavigationItemGroup` component, use `getItems().length` instead
- Rename `SearchEvent` to `InputSearchEvent`
- Rename `expanded` property to `open` to align with the HTML spec, affected components:
  - `odx-accordion-item`
  - `odx-list-item`
  - `odx-navigation-item-group`
- Rename `collapsed` property of `odx-rail-navigation` to `open` to to align with the HTML spec and other components
  - Note: The default state is now `closed` (previously `open`)
- Replace `expand` and `collapse` events by `toggle` event to reduce complexity, affected components:
  - `odx-accordion`
  - `odx-accordion-item`
  - `odx-list-item`
  - `odx-navigation-item-group`
  - `odx-rail-navigation`

### Minor Changes

- Add `odx-media-player` component
- Add `odx-spin-box` component
- Add `icon` property to components as a shorthand for adding a prefix icon:
  - `odx-button`
  - `odx-toggle-button`
  - `odx-navigation-item-group`
  - `odx-navigation-item`
  - `odx-tab-bar-item`
  - `odx-menu-item`
- Add support for icon only `odx-button`
- Add size `full` to `odx-modal` for a full screen modal layout
- Aligned `odx-toggle-button-group` with design spec
- Add `multiple` property to `odx-toggle-button-group` to allow multiple selection
- Remove `stringAttributeDirective` utility
- Remove custom event classes `CollapseEvent` and `ExpandEvent` in favor of native events
- Remove `ExpandableItemManger` controller in favor of handling expand/collapse state directly in the components to reduce complexity
- Remove `toggleExpandableItem` utility function
- Remove `forwardEvent` utility function
- Remove `interactionResponse` utility function
- Remove `getKeyInfo` utility function, use `event.key` directly instead
- Remove `attributeDirective` utility function
- Rename internal export `activeDirective` to `ActiveDirective`
- Rename internal export `buttonDirective` to `ButtonDirective`
- Rename internal export `checkboxGroupControlDirective` to `CheckboxGroupControlDirective`
- Rename internal export `dialogDirective` to `DialogDirective`
- Rename internal export `dragActiveDirective` to `DragActiveDirective`
- Rename internal export `scrollContainerNext` to `ScrollContainerNextDirective`
- Rename internal export `scrollContainerPrevious` to `ScrollContainerPreviousDirective`
- Replace all occurrences of `MouseEvent` with `PointerEvent` because it is a more modern and versatile API that also supports touch and pen input

### Patch Changes

- Fix wrong changelog entries for `1.0.0-rc.7`
- Fix focus handling for `odx-input` and `odx-input-number` to prevent unwanted focus when interacting with nested interactive elements
- Fix no events dispatched by `odx-slider-handle`
- Fix form integration for `odx-toggle-button-group`
- Fix keyboard behavior for interactive components
- Fix `tabindex` handling for interactive components on initial render
- Fix event handling for `odx-accordion` and `odx-accordion-item` to allow for cancellation of expand/collapse actions and prevent unwanted event propagation in nested accordions
- Fix pseudo link element in button like components to span the entire content of the button for better accessibility and usability
- Fix empty slot detection for nested slots in `SlotContentObserver` controller
- Fix popover positioning for `*-start|end` placements to use the correct alignment
- Fix `odx-badge` loading spinner not showing
- Disable motion if loading state of `odx-loading-overlay` is inactive to reduce rendering overhead
- Prevent `odx-bottom-sheet` handle from collapsing if content is bigger than the available space

## 1.0.0-rc.7

### Patch Changes

- Fix keyboard enter/space interaction for `odx-accordion-item`, `odx-avatar`, `odx-chip` and `odx-tile`

## 1.0.0-rc.6

### Patch Changes

- Fix keyboard enter/space interaction for `odx-button`, `odx-icon-button`, `odx-link`, `odx-toggle-button`, `odx-list-item`, `odx-menu-item`, `odx-navigation-item`, `odx-tab-bar-item` and `odx-page-header-title` by using the new `InteractiveController` to handle keyboard interactions and disabled state in a more consistent and reliable way across all components.

## 1.0.0-rc.5

### Minor Changes

- Add "swipe-to-dismiss" behavior to `odx-bottom-sheet`, allowing users to swipe down to dismiss.
- Increase drag handle size of `odx-bottom-sheet` for better usability on touch devices.

### Patch Changes

- Fix `odx-bottom-sheet` spacing and width on small screens
- Fix `odx-menu` touch fallback positioning and spacing
- Remove `tabindex` from increment button of `odx-input-number`
- Prevent scroll when opening a menu via keyboard
- Fix `odx-tab-bar` auto selection mode
- Fix `odx-tab-bar-item` not focusable via keyboard
- Use `requestAnimationFrame` instead of `setTimeout` to wait for style updates
- Add `package.json` package exports for better tooling support

## 1.0.0-rc.4

### Minor Changes

- Improve text wrapping behavior of several components
- Add documentation to several components
- Add `behavior` property to `odx-button-group` with options `overflow` (default) and `fixed` to control the overflow behavior of the button group.
- Add `layout` property to `odx-button-group`
- Remove global keyboard focus detection in favor of using a local controller to track keyboard focus state for better performance and reliability.

### Patch Changes

- Fix `odx-avatar` size when used inside a `odx-list-item`, `odx-menu-item` or `odx-option`
- Fix `odx-breadcrumbs` max visible items calculation
- Fix dynamically adding/removing `odx-checkbox`, `odx-radio` and `odx-switch` to selections
- Remove unused code

## 1.0.0-rc.3

### Patch Changes

- Add missing type exports for `load/*` entry points


## 1.0.0-rc.2

### Major Changes

- Remove `odx-main-menu-button` component, use `odx-icon-button` with `preset="main-menu"` instead

### Patch Changes

- Fix type declarations by moving the global html tag map declaration into the component files


## 1.0.0-rc.1

### Patch Changes

- Output keep pure imports in `.d.ts` files to ensure component types are available to the typescript compiler when consumed
- Fix `odx-tile` outline offset


## 1.0.0-rc.0

### Major Changes

> The release candidate release includes serval breaking changes coming from `@odx/foundation` as a result of the ongoing effort to align the component APIs and behavior with the design spec and to improve overall consistency and usability of the components. Please refer to the setup guides to ensure a smooth transition to the new version.

- Disable bundling in favor of component entry points to allow better tree shaking and faster build times, please update your imports to use the new entry points as described in the setup guide
- Remove internal absolute imports in favor of relative imports to prepare for future ESM only releases
- Refactor internal inheritance architecture to reduce complexity and coupling between components to improve maintainability. 
- Reworked the layout of several components to better align with the design spec and improve responsiveness
- New `/load` and `/load/<component-name>` entry points to import all components at once or individual components as needed
- Remove `odx-action-button` use `odx-toggle-button` with `mode="action"` instead
- Rename `odx-action-group` to `odx-button-group`
- Rename `odx-button-group` to `odx-split-button`
- Remove `label` property from `odx-icon-button` and `odx-toggle-button` (use `hint` property instead)
- Remove `labelPlacement` from `odx-icon-button` and `odx-toggle-button` (use `hintPlacement` property instead)
- Remove `labelVariant` from `odx-icon-button` and `odx-toggle-button` (use `hintVariant` property instead)
- Rename `labelPressed` from `odx-toggle-button` (use `hintPressed` property instead)
- Rename `odx-header` to `odx-page-header`
- Rename `odx-radio-button` to `odx-radio`
- Remove `alignment` property from `odx-tab-bar`
- Rename `odx-sheet` component to `odx-side-sheet`
- Remove `placement="top|bottom|start"` option from `odx-side-sheet` component
- Refactor `odx-side-sheet[placement="bottom"]` to a new `odx-bottom-sheet` component for better semantics and separation of concerns
- Only allow one line in `odx-button`, `odx-action-button` and `odx-toggle-button` components to align with design spec, please try to use shorter labels or `odx-icon-button` for icon-only buttons
- Replace `compact` with variant `compact` and `default` in `odx-logo` component to allow better extensibility in the future
- Replace `vertical: boolean` property of several components with `layout: 'horizontal' | 'vertical'` to allow better extensibility in the future. Affected components:
  - `odx-tab-bar`
  - `odx-anchor-navigation`
  - `odx-key-value`
  - `odx-split-button`
  - `odx-toggle-button-group`

### Minor Changes

- Add `odx-tab-bar-item` component
- Add `odx-page-header-title` component
- Add `hint`, `hintPlacement` and `hintVariant` properties to `odx-button`, `odx-icon-button` and `odx-toggle-button`
- Add `hintPressed` property to `odx-toggle-button`
- Add `name` property to `odx-avatar` component to display user initials when no content is provided
- Add `value` and `max` properties to `odx-badge` to display numeric values and truncate them with a `+` when they exceed the maximum value
- Listen for keyboard `enter` and `space` keys on `odx-avatar interactive=true` to improve accessibility
- Introduce minimum width values for several components to ensure proper layout on small screens.
- Add `confirmation` variant to `odx-button`, `odx-icon-button` and `odx-badge`
- Add `color` property to `odx-logo` component to select between different logo color variants
- Use correct font-family for `odx-avatar` sizes `xl` and `xxl`
- Fix disabled state behavior of control-group components
- Add missing spacings to `odx-toolbar` component

### Patch Changes

- Use filled slot when loading spinner is shown in `odx-button` to prevent layout shift if possible
- Fix keyboard focus on visibility change in `odx-button-group` overflow menu
- Fix keyboard focus outline for several components to use correct offset and inner ring styles
- Fix `odx-accordion-item` and `odx-list-item` expand/collapse event handling for nested controls
- Fix `odx-button` width can shrink below minimum control width
- Fix `odx-button`, `odx-toggle-button` and `odx-icon-button` shrink behavior in `odx-button-group`
- Fix layout flow of `odx-area-footer`, should now use reversed flow as intended
- Fix `odx-avatar` transition duration
- Fix `odx-badge` width can shrink below minimum content width
- Fix `odx-input` border visibility when focused
- Use correct font weight for `odx-option`
- Add `:active` state implementation for several form components in order to provide better feedback on touch devices. Affected components:
  - `odx-checkbox`
  - `odx-radio`
  - `odx-switch`
  - `odx-toggle-button`
  - `odx-select`
