# Changelog

## 10.5.0

### Minor Changes

- 8fac379: Add `StickyOnMobile` layout atom: a thin wrapper that pins its single child to the bottom of the viewport on mobile (`max-width: 768px`) using `position: fixed` and renders in document flow on desktop. Ships with a white background, soft top shadow, and `z-index: 999999` so the bar sits above floating widgets such as the Zendesk launcher. Honours `env(safe-area-inset-bottom)` for the iOS home indicator. Consumers can override any of these via `className`.

  Applies it to the post-quote Combined Payments Checkout button. `CancelAnytime` (when `us2602QcpCancelAnytime` is in treatment) is colocated inside the same wrapper so it sits directly above the CTA on both desktop and mobile.

## 10.4.4

### Patch Changes

- a0a980d: Optimise questions for iPhone performance
- 9231df9: Adopt the TypeScript 7 beta compiler (`@typescript/native-preview`, `tsgo`) for type-checking and declaration emission across the monorepo. `typescript` library bumped to 6.0.3 and `typescript-eslint` to 8.59.0 (both still used by type-aware lint until typescript-eslint supports TS 7). No public API changes.
- Updated dependencies [9231df9]
  - @simplybusiness/icons@5.1.1
  - @simplybusiness/mobius-hooks@0.2.1

## 10.4.3

### Patch Changes

- 3c9c9ba: Replace `@floating-ui/react` inside `Popover` with a local ~150-line positioning implementation (offset + shift + flip + arrow + autoUpdate + outside-press). Public API unchanged. The dependency is still declared for this release so the swap can be reverted in a single commit; removal follows in a subsequent patch.
- 3c9c9ba: Remove `@floating-ui/react` dependency. Popover's local implementation replaced it in the previous release; consumers saw the bundle benefit then via tree-shaking, and now the dep itself is gone from `package.json` and `yarn.lock`.

## 10.4.2

### Patch Changes

- Updated dependencies [14c08d7]
  - @simplybusiness/mobius-hooks@0.2.0

## 10.4.1

### Patch Changes

- b182860: Fix hydration error in TextOrHTML when block-level HTML tags (e.g. ul, div) appear after leading prose text with autoDetect enabled

## 10.4.0

### Minor Changes

- 34e967c: Prevent PhoneNumber Modal from closing when pressing Escape

## 10.3.4

### Patch Changes

- Updated dependencies [e5d2f2f]
- Updated dependencies [544a685]
- Updated dependencies [6e7154f]
  - @simplybusiness/icons@5.1.0

## 10.3.3

### Patch Changes

- 343a849: Remove barrel-import pollution
- 343a849: Swap barrel imports (`"../.."`) for sibling paths in ErrorMessage, ShowHideButton, and ExpandableText. Form atoms were bundled together via a barrel cycle; individual imports now drop ~96% gzipped (e.g. TextField 65 kB → 12.6 kB).

## 10.3.2

### Patch Changes

- d309c4f: Fix detection of entities outside of html tags in TextOrHtml

## 10.3.1

### Patch Changes

- 7dbeb1d: Fix TextOrHTML to render plain text directly in Text element without nested span, and tighten question secondary/tertiary text margin

## 10.3.0

### Minor Changes

- e1c6657: Fix component a11y and type issues: Text variant now sets semantic element, Table HeaderCell adds scope attribute, SVG/Logo accept ARIA props, Modal sets aria-labelledby via Header, Breadcrumbs and List ref types corrected

### Patch Changes

- b04ab48: Fix Grid and Grid.Item silently discarding forwarded refs, and add missing `mobius` base class to Grid.Item
- 5670ffc: Add ref forwarding support to Segment component
- 013c707: Box: undefined, null, and empty-string values in inline styles are ignored when merging with padding/size props.
- Updated dependencies [3bd9911]
  - @simplybusiness/icons@5.0.4
  - @simplybusiness/mobius-hooks@0.1.1

## 10.2.0

### Minor Changes

- 5e19535: Add backdrop blur to Modal and Drawer using new `--backdrop-blur` theme token. Replace `opacity` with `color-mix()` on backdrop background-color so `backdrop-filter: blur()` renders at full strength.

### Patch Changes

- 425cab4: Fix AddressLookup showing error when input is cleared and blurred

## 10.1.2

### Patch Changes

- daaa162: fix Alert header styling for HTML content by adding htmlClassName to TextOrHTML
- d28e175: fix alert and info markdown issues for amazon additional insured info

## 10.1.1

### Patch Changes

- ec0df64: Fix sticky hover state on mobile devices for Button component by scoping `:hover` styles behind `@media (hover: hover)` media query

## 10.1.0

### Minor Changes

- bce7398: Add autoDetect prop to TextOrHTML for automatic HTML vs plain text handling

## 10.0.0

### Major Changes

- fc4ed44: ### BREAKING CHANGE: All component CSS is now wrapped in `@layer` declarations

  All CSS across mobius, mobius-datepicker, mobius-journey, mobius-interventions, mobius-chat-ui, and mobius-chatbot is now wrapped in `@layer atoms` or `@layer organisms`. The layer order preamble is declared in theme-core.

  **What this means for consumers:**
  - **Good news:** You no longer need specificity hacks (e.g. `.Foo.Foo`) to override Mobius styles. Your unlayered CSS automatically wins the cascade, regardless of import order.
  - **Action required if you support older browsers:** `@layer` is supported in Chrome 99+, Firefox 97+, and Safari 15.4+ (all shipped early 2022). If you need to support browsers older than this, you must add your own `@layer` polyfill at the build level. Mobius intentionally does not ship a polyfill — doing so would cause polyfilled styles to become unlayered and override your app styles, defeating the purpose.
  - **Custom layer ordering:** If you need to insert your own layers between Mobius layers, declare your own `@layer` order before importing theme-core. Your declaration must include all Mobius layers: `@layer reset, base, atoms, your-layer, organisms, theme;`

  **What changed:**
  - 204 CSS files wrapped in `@layer` blocks
  - `@layer reset, base, atoms, organisms, theme;` preamble added to theme-core
  - New `@simplybusiness/stylelint-plugin` enforces layer wrapping in CI
  - `lint-css.js` now resolves stylelint config per-package instead of using a hardcoded central config

### Patch Changes

- @simplybusiness/icons@5.0.3
- @simplybusiness/mobius-hooks@0.1.1

## 9.3.4

### Patch Changes

- ff8c3ab: Add sensible autocomplete defaults to TextField and PasswordField for improved browser autofill support

## 9.3.3

### Patch Changes

- bcf3614: fix(combobox): remove aria-owns and only set aria-controls when expanded to resolve axe-core critical violation
  fix(trade-selection): add missing co-located CSS import for TradeSelection component
  - @simplybusiness/mobius-hooks@0.1.1

## 9.3.2

### Patch Changes

- 93620c4: prevent popover clicks from activating interactive ancestors

## 9.3.1

### Patch Changes

- 48558ae: Fix CSS cascade-order bugs in ErrorMessage, Popover, and Modal by bumping overriding selectors to specificity (0,2,0) using compound selectors, ensuring styles win regardless of CSS chunk load order

## 9.3.0

### Minor Changes

- be86128: **BREAKING (themes):** Theme packages no longer bundle component CSS. `theme-core` and `theme-simplybusiness` now contain only base styles (fonts, variables, icons, animations). Partner themes no longer re-import `theme-simplybusiness` — apps must import the base theme separately alongside partner themes.

  Component CSS imports have moved into individual component TSX files. Apps with a CSS-capable bundler (webpack, rspack, vite) will automatically include only the CSS for components they use.

## 9.2.0

### Minor Changes

- 84b1a01: Add new `<Text>` variant `title`; use for Section/Recommendations/Showcase in mobius-journey

### Patch Changes

- c85201e: Fix inifinite API requests from AddressSearch

## 9.1.2

### Patch Changes

- 53f86f6: Update dependenies
  - @simplybusiness/icons@5.0.3
  - @simplybusiness/mobius-hooks@0.1.1

## 9.1.1

### Patch Changes

- 3f86b05: Fix issue in address lookup with groups

## 9.1.0

### Minor Changes

- f645017: Add unique data-testid attributes to trade option elements for stable Playwright selectors

### Patch Changes

- 5a8e751: Lazy load react-imask when MaskedField is used
- 447645e: Declare CSS files as sideEffects to enable tree-shaking while preserving styles
- 8aa78a1: Add support for empty Combobox values and show an error when an invalid value is entered

## 9.0.2

### Patch Changes

- f8e2249: Fix broken insurer logo URLs in fixtures by removing asset digest hashes

## 9.0.1

### Patch Changes

- 21e2fb4: Chore: Bump dependencies
- Updated dependencies [21e2fb4]
  - @simplybusiness/mobius-hooks@0.1.1
  - @simplybusiness/icons@5.0.3

## 9.0.0

### Major Changes

- 905e55b: **BREAKING CHANGE:** 7 hooks have been removed from this package and moved to `@simplybusiness/mobius-hooks`.

  The following exports no longer exist in `@simplybusiness/mobius`:
  - `useBodyScrollLock`
  - `useDebouncedValue`
  - `useOnClickOutside`
  - `useOnUnmount`
  - `usePrefersReducedMotion`
  - `useRenderCount`
  - `useWindowEvent`

  ### How to fix
  1. Add the new package:

     ```
     yarn add @simplybusiness/mobius-hooks
     ```

  2. Update imports:

     ```diff
     - import { useOnClickOutside } from "@simplybusiness/mobius";
     + import { useOnClickOutside } from "@simplybusiness/mobius-hooks";
     ```

  All hooks have identical APIs — no code changes needed beyond the import path.

### Patch Changes

- 0593340: Replace lodash.debounce with useDebouncedValue in useBreakpoint, removing the lodash.debounce dependency
- Updated dependencies [905e55b]
  - @simplybusiness/mobius-hooks@0.1.0

## 8.0.2

### Patch Changes

- d98e605: Restore CJS builds (`dist/cjs/`) for downstream consumers using `require()`.
- Updated dependencies [d98e605]
  - @simplybusiness/icons@5.0.2

## 8.0.1

### Patch Changes

- 6621ab0: Rebuild packages to pick up latest build-scripts changes.
- Updated dependencies [6621ab0]
  - @simplybusiness/icons@5.0.1

## 8.0.0

### Major Changes

- 0374da1: Remove CommonJS builds and exports

### Patch Changes

- Updated dependencies [0374da1]
  - @simplybusiness/icons@5.0.0

## 7.1.3

### Patch Changes

- Updated dependencies [59a3fd7]
  - @simplybusiness/icons@4.41.0

## 7.1.2

### Patch Changes

- 8c0a764: Standardize classnames imports to use classnames/dedupe across all packages. Removes clsx dependency from mobius-chat-ui.

## 7.1.1

### Patch Changes

- d347c06: Update dependencies
  - @simplybusiness/mobius: @floating-ui/react 0.27.16 → 0.27.17
  - @simplybusiness/build-scripts: postcss-preset-env 10.4.0 → 11.1.2, webpack 5.104.1 → 5.105.0, stylelint 17.0.0 → 17.1.1, mini-css-extract-plugin 2.9.4 → 2.10.0, css-loader 7.1.2 → 7.1.3
  - @simplybusiness/icons@4.40.2

## 7.1.0

### Minor Changes

- 7ac6357: Add Toast component for non-blocking notification messages, built on Sonner library with Alert color token integration

### Patch Changes

- 45ddf19: set is changing to false when blurring away from combobox

## 7.0.0

### Major Changes

- ec27737: Remove deprecated useDeprecationWarning hook, Modal props (size, appElement, preventCloseOnEsc, shouldFocusAfterRender, parentSelector), Button variants (inverse, inverse-ghost), and validationState from form components. Use isInvalid instead of validationState.

## 6.10.5

### Patch Changes

- 3e7bebf: Migrate useWindowEvent, useOnClickOutside, and useOnUnmount to useEffectEvent. Fix cleanup bug in useOnClickOutside.

## 6.10.4

### Patch Changes

- ed30ae9: Update React peerDependencies from ^19.1.2 to ^19.2.0 to enable useEffectEvent hook
  - @simplybusiness/icons@4.40.2

## 6.10.3

### Patch Changes

- Updated dependencies [961b1f9]
  - @simplybusiness/icons@4.40.2

## 6.10.2

### Patch Changes

- daa463f: Extract embedded base64 images to separate PNG files
  - Replace ~92KB of base64-encoded images with actual PNG files
  - Add TypeScript declaration for PNG module imports
  - Add Jest mock configuration for image file imports
  - Results in ~22KB smaller bundle (base64 encoding has 33% overhead)
  - Images now cached independently from JavaScript bundle
  - @simplybusiness/icons@4.40.1

## 6.10.1

### Patch Changes

- 409219d: Remove css imports from component files and add linting rule to prevent this
  - @simplybusiness/icons@4.40.1

## 6.10.0

### Minor Changes

- 58a910a: Implement Accordion List molecule

### Patch Changes

- f0072cc: fix: use stable React keys for Combobox options to improve reconciliation efficiency when filtering
- c83707a: chore: upgrade prettier to 3.7.4 and apply formatting
- Updated dependencies [c83707a]
  - @simplybusiness/icons@4.40.1

## 6.9.10

### Patch Changes

- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [fc346a2]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
- Updated dependencies [51f1d36]
  - @simplybusiness/icons@4.40.0

## 6.9.9

### Patch Changes

- 369b335: use eye and eye slash icon in password field instead of show/hide text
- Updated dependencies [5da067a]
- Updated dependencies [5da067a]
  - @simplybusiness/icons@4.39.0

## 6.9.8

### Patch Changes

- Updated dependencies [5c5fa4f]
  - @simplybusiness/icons@4.38.0

## 6.9.7

### Patch Changes

- 12ff90a: Preserve cursor position in PasswordField when toggling view state

## 6.9.6

### Patch Changes

- 3f0ca52: Add lint:css and lint:css:fix scripts to enable CSS linting with stylelint
- 67419b3: Remove `as any` type assertions and improve type safety
  - Refactor type assertions to use safer alternatives (`as never`, `Reflect.set`, type guards)
  - Use typed objects and proper mock patterns in tests
  - Add `@ts-expect-error` comments where required due to TypeScript limitations (e.g., DatePicker onClick prop)
  - Improve AddressLookup and Combobox type safety

## 6.9.5

### Patch Changes

- 56c673f: Migrate CSS from SASS-style nesting to native CSS nesting syntax
  - Update 62 CSS source files to use native CSS nesting with `&` prefix
  - Switch PostCSS plugin from `postcss-nested` to `postcss-nesting`
  - No functional changes to compiled CSS output (still Safari 14 compatible)

- c54e331: Remove deprecated ForwardedRefComponent type and migrate to ref-as-prop pattern
  - @simplybusiness/icons@4.37.0

## 6.9.4

### Patch Changes

- Updated dependencies [0fac168]
  - @simplybusiness/icons@4.37.0

## 6.9.3

### Patch Changes

- 057d602: fix: Remove step validation from NumberField onChange to allow intermediate input

## 6.9.2

### Patch Changes

- 3ae0d01: Add MouseEvent parameter to Link onClick handler type

## 6.9.1

### Patch Changes

- 8631e38: Remove forwardRef for React 19 migration
  - Update ForwardedRefComponent type to use ref-as-prop pattern
  - Fix component function signatures to extract ref from props
  - Add RefAttributes to props types that were missing it
  - Update mergeRefs utility to accept undefined refs
  - Add ref support to Icon component

## 6.9.0

### Minor Changes

- 92d21f2: update react and react-dom versions to fix vulnerability

## 6.8.1

### Patch Changes

- 9239ba6: Fix radio buttons inheriting error styling from PersonalisedCoverSection wrapper by making css in radio more specific
- 431b626: Fix Radio button text wrapping when icon is present by changing word-break from break-all to break-word
- Updated dependencies [5bc4a5f]
- Updated dependencies [a264ca4]
- Updated dependencies [56c3034]
  - @simplybusiness/icons@4.36.0

## 6.8.0

### Minor Changes

- d1ad7db: Fetch trade image from chopin

### Patch Changes

- 1927a07: prevent duplicate onChange in Combobox after programmatic refocus
- 0e4099c: Remove test type checking infrastructure in favor of faster @swc/jest transforms.

  This removes the `JEST_CHECK_TYPES` environment variable and `ts-jest` dependency, simplifying Jest configuration across all packages. Type checking during tests is now handled separately by the `check-types` command.

## 6.7.2

### Patch Changes

- 1b71bb3: add text color to select component

## 6.7.1

### Patch Changes

- Updated dependencies [ee6ca5a]
  - @simplybusiness/icons@4.35.0

## 6.7.0

### Minor Changes

- 1a28ffc: Add support for auto-stacking in RadioGroup

## 6.6.0

### Minor Changes

- 9f8eaf1: Display hotel specific stop page when hotel trade customers complete their quote journey

## 6.5.5

### Patch Changes

- c488680: Upgrade dependencies to latest versions

## 6.5.4

### Patch Changes

- Updated dependencies [c0e8730]
  - @simplybusiness/icons@4.34.0

## 6.5.3

### Patch Changes

- af113aa: Fix accessibility issues with Combobox and US State Question
- e95d7af: Fix React 19 dangerouslySetInnerHTML regression in TextOrHTML

## 6.5.2

### Patch Changes

- c46c9f9: Make radio button focus shadow themeable and consolidate radio styling
- 83da228: Fix Compare the Market theme focus and secondary color scheme by making component focus shadows themeable

## 6.5.1

### Patch Changes

- f5af9d5: Add a tracking event for the USStateQuestion

## 6.5.0

### Minor Changes

- cd64da7: Add and use TextOrHTML atom

## 6.4.5

### Patch Changes

- f655230: Enforce step increment for typed values in NumebrField

## 6.4.4

### Patch Changes

- 3da43d9: Show "placeholder" option in paler colour for required select inputs

## 6.4.3

### Patch Changes

- 2a09422: Change colour of input text to be darker then placeholder

## 6.4.2

### Patch Changes

- 50471d9: Lighten border on unselected Radio inputs and labels

## 6.4.1

### Patch Changes

- db2acef: Increase font size and line height in Alert

## 6.4.0

### Minor Changes

- 8f5b73a: pass in filters record to LoqateAddressLookupService to support US state filtering

## 6.3.3

### Patch Changes

- 73eef9e: Fix: Update address field mapping for US street
- 5229bb9: Expandable test component dangerously sets inner html

## 6.3.2

### Patch Changes

- 0439088: Fix CTM style snags with ErrorMessage and Checkbox

## 6.3.1

### Patch Changes

- bc1bf40: Fix questionnaire styles for CTM

## 6.3.0

### Minor Changes

- 485a83d: Accordion specific CSS tokens with CTM overrides
- 5d01a2f: Added CTM theme variations for Radio, Checkbox and ErrorMessage

## 6.2.1

### Patch Changes

- Updated dependencies [99ed68f]
  - @simplybusiness/icons@4.33.1

## 6.2.0

### Minor Changes

- acc7a69: added MaskedField Atom

### Patch Changes

- Updated dependencies [db79891]
  - @simplybusiness/icons@4.33.0

## 6.1.2

### Patch Changes

- f40bcec: revert radio group focus
- dc2e49f: Prevent value change on scroll event within a Number field
- f994dea: Update Drawer component to improve accessibility
- Updated dependencies [4a99304]
  - @simplybusiness/icons@4.32.1

## 6.1.1

### Patch Changes

- dd0fdce: Fix RadioGroup onChange being called twice in controlled mode

  Fixed a bug where the onChange callback was being called twice when clicking a radio button in a controlled RadioGroup. This was caused by both onClick and onChange event handlers calling the onChange prop.

## 6.1.0

### Minor Changes

- f902a17: Remove aria-hidden = false on svg icons and give icons in mobius journey meaningful titles
- d3d22b2: Add Expandable atom

### Patch Changes

- 4e7ea0b: retain focus on a selected option in RadioGroup

## 6.0.0

### Major Changes

- 31ea8ae: **BREAKING CHANGE** React 19 is now required to use Mobius.

## 5.32.4

### Patch Changes

- b1e7459: text field prefix and suffix have color primary to fix color contrast accessibility bug
- d65deec: Change background-color to background on button
- 220f943: Add tokens for progress steps border

## 5.32.3

### Patch Changes

- 5b28c9f: Add Westhill Global Theme

## 5.32.2

### Patch Changes

- 07312b5: Suppress number input spin buttons via a prop
- Updated dependencies [23d5f93]
- Updated dependencies [e1038a9]
- Updated dependencies [4b2f6d0]
  - @simplybusiness/icons@4.32.0

## 5.32.1

### Patch Changes

- 20ac0fd: Add aria-label for the Accordion component

## 5.32.0

### Minor Changes

- 041546c: Add new Trustpilot variant

## 5.31.9

### Patch Changes

- 3964fcb: Allow alert atom to receive any variant string, using default info

## 5.31.8

### Patch Changes

- Updated dependencies [619f6b8]
  - @simplybusiness/icons@4.31.2

## 5.31.7

### Patch Changes

- 8dca1c9: Fix: Close address lookup after selection

## 5.31.6

### Patch Changes

- 0311105: Fix Combobox; in async mode, only show options list when there are options to display"

## 5.31.5

### Patch Changes

- Updated dependencies [412ee41]
  - @simplybusiness/icons@4.31.1

## 5.31.4

### Patch Changes

- 251db93: added token for radio icon color
- Updated dependencies [78bb813]
  - @simplybusiness/icons@4.31.0

## 5.31.3

### Patch Changes

- 60fd0cc: Fix release dependencies tracking
- Updated dependencies [60fd0cc]
  - @simplybusiness/icons@4.30.1

## 5.31.2

### Patch Changes

- Updated dependencies [12bcd1c]
- Updated dependencies [ff20fe2]
  - @simplybusiness/icons@4.30.0

## 5.31.1

### Patch Changes

- 45fc1a9: Fix CSS syntax error in Modal.css

## 5.31.0

### Minor Changes

- b1eda64: fire addressOptionsDiplayed when AddressLookupQuestion shows options

## 5.30.1

### Patch Changes

- d110d3c: Combobox fires onFocus events without blocking logic

## 5.30.0

### Minor Changes

- 6bbda62: default styling on radio when first child is an icon

### Patch Changes

- Updated dependencies [a5976ca]
  - @simplybusiness/icons@4.29.0

## 5.29.9

### Patch Changes

- cefed6b: added optional tokens for background sizing checkbox and progress steps tick

## 5.29.8

### Patch Changes

- 09eec26: Fix pre-population for MultiSelect question
- 09eec26: Fix controlled behaviour for RadioGroup

## 5.29.7

### Patch Changes

- e51bebd: improve Combobox ARIA props

## 5.29.6

### Patch Changes

- e9fc12c: chore(deps): Update dependencies
- Updated dependencies [e9fc12c]
  - @simplybusiness/icons@4.27.1

## 5.29.5

### Patch Changes

- 4ce860b: fix(useOnClickOutside): Allow null in RefObject type parameter

  Updated useOnClickOutside hook to accept RefObject<HTMLElement | null> instead of RefObject<HTMLElement>, improving type safety and compatibility with React refs that can be null.

- 845388a: fix: improve strong typing for React cloneElement usage

  Adds proper TypeScript typing for all React.cloneElement calls throughout the codebase to improve type safety and remove unsafe type assertions where possible.

- 39b6975: Updated all JSX type references to use React.JSX namespace instead of the global JSX namespace for better TypeScript compatibility with React 19.

## 5.29.4

### Patch Changes

- 7ad7646: fix: give combobox options type flat array or array of combobox option groups

## 5.29.3

### Patch Changes

- fc78088: chore: add missing dependencies
- c7a4ec3: chore: hoist custom css properties to variables files and remove colocated definitions
- Updated dependencies [fc78088]
- Updated dependencies [c62940a]
  - @simplybusiness/eslint-plugin@0.3.1
  - @simplybusiness/icons@4.27.0

## 5.29.2

### Patch Changes

- 27dd76d: chore: upgrade dependencies
- Updated dependencies [7220bf5]
  - @simplybusiness/eslint-plugin@0.3.0

## 5.29.1

### Patch Changes

- Updated dependencies [103d8be]
- Updated dependencies [abcd676]
  - @simplybusiness/eslint-plugin@0.2.0
  - @simplybusiness/icons@4.26.0

## 5.29.0

### Minor Changes

- 87f6d58: feat: add secondary variant to Link component

## 5.28.3

### Patch Changes

- Updated dependencies [cce2025]
  - @simplybusiness/icons@4.25.0

## 5.28.2

### Patch Changes

- 80bf5a9: Add support for custom Headline color

## 5.28.1

### Patch Changes

- dbd72a0: Add customisation for Checkbox UI
- 9b06f5a: Add CSS variables to style label colour and input border-radius

## 5.28.0

### Minor Changes

- 6962cbb: feat: Hoist all CSS variables into theme variable files

### Patch Changes

- 909dfe7: Add button variables to theme-core and ctm

## 5.27.5

### Patch Changes

- 29209dd: Prevent Select text from covering icon

## 5.27.4

### Patch Changes

- 55d7bac: Change Slider colours to remove alpha and add to theme variables

## 5.27.3

### Patch Changes

- Updated dependencies [0edd852]
  - @simplybusiness/icons@4.24.0

## 5.27.2

### Patch Changes

- 535409f: Add DateInputQuestion

## 5.27.1

### Patch Changes

- cf29324: Switch DatePicker component for DateField in PersonalisedCover

## 5.27.0

### Minor Changes

- 028ea38: Add DateField atom

## 5.26.3

### Patch Changes

- 25cd188: Don't set default NumberValue to zero

## 5.26.2

### Patch Changes

- Updated dependencies [a2b7fb2]
  - @simplybusiness/icons@4.23.2

## 5.26.1

### Patch Changes

- e32bd89: Update themes to produce unhashed filenames for assets

## 5.26.0

### Minor Changes

- 9058388: question level validation for Personalised cover page and linting fixes

## 5.25.4

### Patch Changes

- 4dd33c1: Fix dialog polyfill; wait for non-empty ref

## 5.25.3

### Patch Changes

- 30c903a: Switch from SWC to esbuild
- Updated dependencies [30c903a]
  - @simplybusiness/icons@4.23.1

## 5.25.2

### Patch Changes

- 36fcee4: Update background color on Combobox hover state. Currently, it isn't passable in terms of color contrast

## 5.25.1

### Patch Changes

- Updated dependencies [3ee33fc]
  - @simplybusiness/icons@4.23.0

## 5.25.0

### Minor Changes

- 00eb583: Improve visibility of loading icon in Trade Selector

## 5.24.3

### Patch Changes

- 9acf157: Upgrade dependencies
- a5c2fbd: Fix specificity of Button styling

## 5.24.2

### Patch Changes

- b892045: Change watch mode
- Updated dependencies [b892045]
  - @simplybusiness/icons@4.22.1

## 5.24.1

### Patch Changes

- d1b9571: Update styling for highlighted combobox options

## 5.24.0

### Minor Changes

- c487ba5: Adds Accordion to Upsells component

### Patch Changes

- Updated dependencies [3e6b616]
  - @simplybusiness/icons@4.22.0

## 5.23.0

### Minor Changes

- 8f5fbe0: Complete the migration of journey-components into mobius

## 5.22.0

### Minor Changes

- 0fd403d: Add CoverOption and CoverOptions components (Personalised Cover Page experiment)

## 5.21.0

### Minor Changes

- 712a195: Apply personal data identifier class name to FE components

## 5.20.1

### Patch Changes

- Updated dependencies [2bd5db6]
  - @simplybusiness/icons@4.21.0

## 5.20.0

### Minor Changes

- 80c483e: Add Switch atom

## 5.19.1

### Patch Changes

- f0b6a77: Improve focus ring style for Button Link

## 5.19.0

### Minor Changes

- d9efcc9: Add dynamic height for listbox based on it's content

### Patch Changes

- 80e40ef: Fix: removed auto scrolling from combobox on mobile
- d64d502: Consistent radio button styles across browsers and devices
- 691d321: Add a11y role to ErrorMessage for screen readers

## 5.18.0

### Minor Changes

- a54330c: Fix: Unable to view full content of Drawer on mobile
- 74b3c30: Move PersistentCartPaymentOptions from journey-components to mobius

### Patch Changes

- Updated dependencies [74b3c30]
  - @simplybusiness/icons@4.20.1

## 5.17.0

### Minor Changes

- a19a98d: Added `optionComponent` prop to `Combobox` component to allow customisation of how options are rendered. This allows for custom layouts, adding icons, or applying custom styling to individual options.

## 5.16.0

### Minor Changes

- 50a3417: Fix: added space between checkbox group and error message

## 5.15.7

### Patch Changes

- 271b4be: Fix `<Combobox>` types in the docs

## 5.15.6

### Patch Changes

- bc592a1: Add support for restricting address lookup to contries

## 5.15.5

### Patch Changes

- Updated dependencies [f9cd018]
  - @simplybusiness/icons@4.20.0

## 5.15.4

### Patch Changes

- 088cf5b: Display help drawer in Assumptions page

## 5.15.3

### Patch Changes

- Updated dependencies [5244c3e]
  - @simplybusiness/icons@4.19.0

## 5.15.2

### Patch Changes

- 95fb43b: Dependency updates
- a282aba: Update react peer dependencies to allow for React 19

## 5.15.1

### Patch Changes

- 734306e: Rename `minLength` property of `Combobox` to `minSearchLength` to avoid clashing with standard `minLength` DOM property
- 7e34f6f: Fix unknown `isReadOnly` prop on DOM in `TextField` component

## 5.15.0

### Minor Changes

- a10f46f: Add 'carousel' variant to `<Trust>`

### Patch Changes

- c130ef1: Fix async options types for `Combobox` component

## 5.14.1

### Patch Changes

- Updated dependencies [d7b97da]
  - @simplybusiness/icons@4.18.0

## 5.14.0

### Minor Changes

- bf49853: Add min/max/step props to `TextFieldProps`

### Patch Changes

- bf49853: Make `NumberField` inherit from `TextField` so we can use prefixes and suffixes

## 5.13.0

### Minor Changes

- 1e26027: Add event handlers and auto-select on blur

### Patch Changes

- 757a953: Improve `AddressLookup` types

## 5.12.1

### Patch Changes

- Updated dependencies [45acef6]
  - @simplybusiness/icons@4.17.0

## 5.12.0

### Minor Changes

- 9f9cbc5: Save Address selected into state (Questionnaire)

### Patch Changes

- 4984b57: Add error handling for `AddressLookup` component
- 1fa9b7e: Package upgrades
- b3b961b: Fix icon colour in TextField

## 5.11.1

### Patch Changes

- 902cee3: Combobox and AddressLookup behaviour improvements

## 5.11.0

### Minor Changes

- 03ed793: Add `AddressLookup` component

### Patch Changes

- 58ed811: Add AddressLookup to questionnaire

## 5.10.0

### Minor Changes

- a9ceb42: Add Answers state in Questionnaire

### Patch Changes

- cc5b228: Add id prop to Combobox

## 5.9.0

### Minor Changes

- 3a925d9: Add async support to Combobox

### Patch Changes

- e3a86f9: Display combobox label

## 5.8.1

### Patch Changes

- Updated dependencies [78d44a8]
  - @simplybusiness/icons@4.16.0

## 5.8.0

### Minor Changes

- 1c9175c: Updated footer for US journey

### Patch Changes

- 6d870aa: Add host vars to CSS

## 5.7.0

### Minor Changes

- 7c9a2d4: Update `Combobox` props to accept either `options` or `asyncOptions`, but never both or neither

## 5.6.1

### Patch Changes

- abe595e: Add animation to listbox

## 5.6.0

### Minor Changes

- 7352bc8: Support home/end key navigation in Combobox component
- b2d5b4b: Add support for group headings to `Combobox` component
- 3708724: Add props and docs to Combobox

### Patch Changes

- 3da7d02: Fix leaking React props

## 5.5.0

### Minor Changes

- af05836: Adds `role` attribute to `useTextfield` hook
- ec04e00: Fix `Checkbox` is not checked when clicked
- a0d927d: Add keyboard events to `useTextField` props
- cc9aad5: Add `Combobox` component
- d1b33b1: Add Rocket Lawyer theme

## 5.4.0

### Minor Changes

- b4eec50: Add support for `lastItemDisables` on `CheckboxGroup` component

### Patch Changes

- 2085451: Prevent calling `onChange` on `CheckboxGroup` on initial render
- 37bf8fa: Package updates
- Updated dependencies [5bc73ef]
  - @simplybusiness/icons@4.15.0

## 5.3.1

### Patch Changes

- aa5f60e: Add USA Partner Network theme
- 91880ec: Add Tier 1 theme for UENI

## 5.3.0

### Minor Changes

- 749961a: Adds `name` and `value` properties to `<Button />` to be used when submitting a form

### Patch Changes

- 982456d: Remove unnecessary type packages

## 5.2.0

### Minor Changes

- 2973f98: Support Accordion heading element type

### Patch Changes

- 3f02903: Upgrade dependencies
- 61d44d8: Add `text-wrap` of `balance` to headings and `pretty` to body text
- af09896: Update CSS imports to not import from outside their own package directory
- ffb1bbe: Change Segment subtle bg colour to pale grey
- Updated dependencies [3f02903]
  - @simplybusiness/icons@4.14.1

## 5.1.2

### Patch Changes

- 3af939c: Improve Modal formatting on mobile displays

## 5.1.1

### Patch Changes

- 744c317: Change popover background to neutral-700 by default
- 7ffa889: Remove autoprefixer and unnecessary property duplication from themes

## 5.1.0

### Minor Changes

- 4d948cc: Rename `@simplybusiness/theme-sb` to `@simplybusiness/theme-core`, `@simplybusiness/mobius-chopin` to `@simplybusiness/mobius-journey`; add `@simplybusiness/theme-simplybusiness` (split from `@simplybusiness/theme-sb`)

## 5.0.1

### Patch Changes

- 0c9b97d: Fix `SegmentGroup` styles

## 5.0.0

### Major Changes

- 93b9c39: ### Breaking Change

  External margins removed from the following components:
  - `Accordion`
  - `Alert`
  - `Checkbox`
  - `ErrorMessage`
  - `List`
  - `NumberField`
  - `Radio`
  - `Select`
  - `TextArea`
  - `TextField`

  ### Why

  Having external margins on a component can make it difficult to compose components together. By removing these margins, it allows for more flexibility when composing components together.

  ### How to Update

  Spacing can be added back by using a `<Box />` component with the appropriate padding props.

- 8525e04: Use BEM for CSS classes

### Minor Changes

- 7e166e1: Add `<Stack />` component

### Patch Changes

- 61126b3: Use Mobius icon in `<ErrorMessage>`; fix `<Button>` default to `isLoading` change affecting width
- 27ff678: Add Thumbtack theme
- 5cfd1e7: Add Contractorplus theme; DRY up CSS in partner themes
- Updated dependencies [4631011]
- Updated dependencies [6c2d415]
  - @simplybusiness/icons@4.14.0

## 4.16.1

### Patch Changes

- 2e7ab01: Colocate CSS files and component source

## 4.16.0

### Minor Changes

- 5979683: Added Trustpilot horizontal variant

### Patch Changes

- d1d1631: Allow `<Container>` `elementType` to be a range of HTML element tags; allow `style` prop
- 45e9667: Add `<EditLimits>` to `<HeadlineExperimentIteratedQCP>`
- Updated dependencies [5ab68d0]
- Updated dependencies [6f7a0ea]
  - @simplybusiness/icons@4.13.0

## 4.15.1

### Patch Changes

- de269a5: Fix direct access to browser APIs

## 4.15.0

### Minor Changes

- c2f1d0a: Add `usePrefersReducedMotion` hook

## 4.14.1

### Patch Changes

- 9280836: Enable drawer functionality in quote cards
- b1d8110: Add check for `window` object in `Accordion` component

## 4.14.0

### Minor Changes

- a03d10d: Add `name` attribute to `<Checkbox />` component

### Patch Changes

- 1f347dd: Dependency updates
- Updated dependencies [1f347dd]
  - @simplybusiness/icons@4.12.1

## 4.13.0

### Minor Changes

- e8b6adf: Remove `<RadioButton>`; align component styles with design guidelines
- b260279: Add `<ProgressSteps>`; add `size` prop to `<Container>`

## 4.12.0

### Minor Changes

- 98445a1: Bump dependencies

### Patch Changes

- Updated dependencies [98445a1]
  - @simplybusiness/icons@4.12.0

## 4.11.6

### Patch Changes

- d22f26a: Load `<Trust>` client-side only

## 4.11.5

### Patch Changes

- 075ed81: Fix `<Trust>` hydration error

## 4.11.4

### Patch Changes

- 060966b: Remove window ref

## 4.11.3

### Patch Changes

- Remove window ref

## 4.11.2

### Patch Changes

- fda9e3c: Remove ref to window

## 4.11.1

### Patch Changes

- Update react peer deps to drop support for React 16 and React 17

## 4.11.0

### Minor Changes

- e9a6c03: Align `<Checkbox>`, `<TextField>` and `<Button>` default styles with Figma

### Patch Changes

- Updated dependencies [e9a6c03]
  - @simplybusiness/icons@4.11.0

## 4.10.1

### Patch Changes

- b942106: Fix copy and upgrade turbo
- Updated dependencies [b942106]
  - @simplybusiness/icons@4.10.1

## 4.10.0

### Minor Changes

- 40ce46a: Add `<Trust>`, `<TrustSection>`, `<PreFooter>`; fix `circleTick` name prop; plop generator for Chopin components

### Patch Changes

- Updated dependencies [fc30887]
- Updated dependencies [40ce46a]
  - @simplybusiness/icons@4.10.0

## 4.9.2

### Patch Changes

- a0167b9: Added mock data contract

## 4.9.1

### Patch Changes

- Updated dependencies [7e6c030]
  - @simplybusiness/icons@4.9.0

## 4.9.0

### Minor Changes

- 13c6553: Bump dependencies (minor and patch)

### Patch Changes

- Updated dependencies [13c6553]
  - @simplybusiness/icons@4.8.0

## 4.8.8

### Patch Changes

- 2392b6b: Fix handling of `isInvalid` prop; remove internal use of `validationState`
- 09bc11f: Docs for theme ADR

## 4.8.7

### Patch Changes

- addd8fb: Adds yarn watch
- Updated dependencies [addd8fb]
  - @simplybusiness/icons@4.7.1

## 4.8.6

### Patch Changes

- Updated dependencies [34295d7]
  - @simplybusiness/icons@4.7.0

## 4.8.5

### Patch Changes

- 600dfd4: Fix `<Flex>` not honouring CSS `display` overwrite; fix Chopin `<Header>` styles
- 1439ba7: Fix `<Checkbox>` not passing additional props to `<input>` when provided; fix `<CheckboxGroup orientation="horizontal">` not working

## 4.8.4

### Patch Changes

- 278d29e: Fix QCP styles and unique ids

## 4.8.3

### Patch Changes

- Updated dependencies [3424b0a]
  - @simplybusiness/icons@4.6.0

## 4.8.2

### Patch Changes

- e712d41: Upgrade dependencies

## 4.8.1

### Patch Changes

- Updated dependencies [886bc6d]
  - @simplybusiness/icons@4.5.0

## 4.8.0

### Minor Changes

- 455d898: Add new icons to support account-fe Mobius upgrade; add `title` prop to `<Icon>`; default to `iconName` for a11y

### Patch Changes

- Updated dependencies [455d898]
  - @simplybusiness/icons@4.4.0

## 4.7.0

### Minor Changes

- 22360de: Allow DropdownMenu.Item to be a component that inherits default CSS

## 4.6.5

### Patch Changes

- cf617b8: Fix `<Button variant="secondary" isDisabled>` hover state; map `inverse`, `inverse-ghost` to alternatives

## 4.6.4

### Patch Changes

- d73f6f3: Replace 'Palette' with 'CSS Variables' docs page in Storybook; remove `colors.js` from theme packages

## 4.6.3

### Patch Changes

- f49a94b: Icons: rename 'question' to 'circleQuestion'; add 'question'; rename 'info' to 'circleInfo'
- Updated dependencies [f49a94b]
  - @simplybusiness/icons@4.3.1

## 4.6.2

### Patch Changes

- a06350a: Fix `<TradeSelector>` in Safari 14

## 4.6.1

### Patch Changes

- 0061f97: Add InsuranceBee partner theme

## 4.6.0

### Minor Changes

- b0d7505: Add new variant "link" to `<Button>`

## 4.5.1

### Patch Changes

- 8a50b45: Fix `<Drawer>`, `<Modal>` transition-in not working in Safari

## 4.5.0

### Minor Changes

- d1ba747: Refactor `onClose`, `closeLabel` child props in `<Drawer>` / `<Modal>`

## 4.4.6

### Patch Changes

- b9544c2: Fix an issue where `<Drawer>`, `<Modal>` may close unexpectedly

## 4.4.5

### Patch Changes

- f2616fd: - Fix `<Flex>` flex props being overwritten by style attribute
  - Fix `<Radio>` additional props not propagating
  - Fix `<Radio>` style when checked and with keyboard focus
  - Add testing docs for `<Modal>` and `<Drawer>`

## 4.4.4

### Patch Changes

- Updated dependencies [d1fb294]
  - @simplybusiness/icons@4.3.0

## 4.4.3

### Patch Changes

- 05951ef: Use 'name' attribute in `<RadioGroup>`, if provided

## 4.4.2

### Patch Changes

- 5d126f3: Move @swc/cli from dependencies to devDependencies

## 4.4.1

### Patch Changes

- 10a1de9: Fix `<Drawer>` closing transition occasionally not firing

## 4.4.0

### Minor Changes

- 9cff6ac: Add new props to `<Box>`: padding, min/max width/height to make the component more flexible when building layouts

## 4.3.6

### Patch Changes

- 66e0bda: Adds colSpan and rowSpan props to Table.HeaderCell component.

## 4.3.5

### Patch Changes

- cb5d19a: Adds colSpan and rowSpan props to Table.HeaderCell component.
- c16944d: Update table cell props and release documentation

## 4.3.4

### Patch Changes

- Updated dependencies [c310b67]
  - @simplybusiness/icons@4.2.9

## 4.3.3

### Patch Changes

- a572d54: Fix `<Icon>` server-side rendering

## 4.3.2

### Patch Changes

- 047db6d: Fix intermittent iOS <=15.2 issue when dialog-polyfill loads
- 424ba56: Fix exported types
- Updated dependencies [424ba56]
  - @simplybusiness/icons@4.2.8

## 4.3.1

### Patch Changes

- ee6a685: Fix an issue where `<Drawer>` positions incorrectly on iPhone/iPad rotation. This also fixes `<Modal>` positioning in iOS <= 15.2
- 7af10a5: Fix runtime errors for `<Modal>` and `<Drawer>` when using dialog-polyfill on iOS <= 15.2

## 4.3.0

### Minor Changes

- 1aed87a: Modal: add `onOpen` prop and wrap component with `forwardRef`. This is to bring parity between Modal and Drawer which share similar implementation details

### Patch Changes

- 66ac8be: Change Storybook url and upload folder

## 4.2.8

### Patch Changes

- fcc0e88: Fix `<Drawer>` close animation not firing when `isOpen` prop updates

## 4.2.7

### Patch Changes

- 8b6c5d6: Uplift outdated dependencies
- Updated dependencies [8b6c5d6]
  - @simplybusiness/icons@4.2.7

## 4.2.6

### Fixed

- Fix an issue where `<RadioGroup>` with `defaultValue` would incorrectly attach `checked` attribute to all children `<Radio>` elements
- Fix an issue where `<RadioGroup>` with `defaultValue` set to a non-existent value would error

### Changed

- Rename incorrect `<Radio>` prop `defaultValue` (string) to `defaultChecked` (boolean)

## 4.2.5

### Fixed

- Fix an issue where standalone `<Radio>` (without `<RadioGroup>`) renders with `checked` attribute

## 4.2.1

### Added

- Add and use `--size-xxs` variable for 4px value
- Add new icons `circleSterling`, `dollarSign`, `question`, `sterlingSign`, `tag`

### Fixed

- Fix `<Select>` icon background colour when hover/focus
- Fix `<Accordion />` to only toggle on Space and Enter keys

### Removed

- Remove duplicate icons `buttonArrowRight`, `buttonArrowRightActive`, `ctaArrow` in favour of `rightArrow` icon. Also remove `buttonArrowLeft`, `buttonArrowLeftActive` in favour of `leftArrow`.
- Remove unused icons `facebook`, `facebookF`, `linkedin`, `linkedinSquare`, `twitter`, `twitterSquare`, `youtube`, `youtubeSquare`

## 4.2.0

### Added

- Added `prefixInside`, `prefixOutside`, `suffixInside`, `suffixOutside` props to `<TextField>`. Use case examples: icon in search input field (prefix/suffix inside), button next to input field (prefix/suffix outside). `<DatePicker>` and `<PasswordField>` have been updated to take advantage of new props.
- Added `<Logo>` molecule
- Added `shift` behaviour to Popover so that it stays visible on screen when users scroll

### Changed

- `<Accordion>`: chevron icon has been moved from left to right as per Figma designs; `headerPosition` prop default has been changed from `bottom` to `top` to reflect default use cases; toggle now has default underline and consistent border radius

### Fixed

- Fix `--size-undefined` on `<Icon>`; set default `size` to `xs`

## 4.1.2

### Fixed

- Fix `<Popover>` trigger prop not passing `className`
- Fix `<Popover>` event bubbling when pressing Escape key to close

## 4.1.1

### Fixed

- Fix `<Popover>` content positioning in Shadow DOM by replacing underlying library from `react-tiny-popover` to `@floating-ui/react`

## 4.1.0

### Added

- Added `<Popover>` component

## 4.0.0

### Fixed

- Fixed body content jumping when Modal/Drawer shown

### Added

- `useBreakPoint` hook supports initialisation with custom breakpoints array.
- `Drawer` atom provides a modal panel that enters screen from left, top, right or bottom.
- To match refined design guidelines in Figma, SB theme colour palette has been updated with the following additions: `--color-azure-300`, `--color-azure-400`, `--color-azure-700`

### Changed

- Replace `<DatePicker>` with lighter alternative
- Use `--font-family` instead of `--font-family-body` and `--font-family-heading` as it's one font now
- Adjust font size variables to match Figma
- Rename `--line-height-loose` to `--line-height-normal` to match naming of other variables; reduce line-height from 1.7 to 1.5 as per Figma
- Increase `--line-height-tight` from 1.2 to 1.333 to match Figma
- Rename `caption` variant to `small` to reflect Figma
- Adjust default `<Link>` styles to match Figma
- Replace size-0 through to size-100 with size-xs through to size-xxl variables as per new design guidelines from the UX
- Change `<Icon>` size prop to only support Figma sizes - `xs`, `sm`, `md`, `lg`
- Change `<Button>` size prop from `small`, `medium`, `large` to `sm`, `md`, `lg`
- Modal and Drawer support nesting; only the topmost dialog is closed or cancelled.
- Load react-day-picker only on non-touch devices as for mobile `<input type="date">` is used instead. This is to optimise component performance and reduce unnecessary kilobytes when using touch devices

### Removed

- To match refined design guidelines in Figma, SB theme colour palette has been updated with the following removed: `--color-neutral-400`, `--color-bubblegum-600`, `--color-bubblegum-700`
- Remove `lead` variant from `<Text>` as it's no longer used
- Remove unused Museo Sans Rounded font as it's no longer used
- Remove unused Museo Sans weights 100, 300 and 900 as they're no longer used
- Remove `--font-weight-light` in favour of `--font-weight-normal` as they're both of the same weight - 500
- Remove `--line-height-single` in favour of `--line-height-normal` to match predefined line heights in Figma
- Remove default font size changes on breakpoints for h1, h2, h3
- Remove unused h5, h6 variants

## 4.0.0-beta.3

### Added

- Added optional `onOpen` and `onClose` props to `<Accordion>`, which triggers a callback. Replaces the previous `onClick` event.

### Changed

- Changed all `React.SyntheticEvent` callback types to `HTMLElementEvent`, which includes a type definition for `e.target.value` and prevents TypeScript complaints in consuming apps.

## 4.0.0-beta.1

### Added

- Add optional `onChange` prop to `<MaskedField>`, which provides the entire change event object

### Changed

- Removed invalid `aria-describedby` attribute on `Select`
- Removed `@react-aria/textfield` library from `TextArea`
- Removed `@react-aria/textfield` library from `TextField`
- Removed `@react-aria/breadcrumbs` library
- Removed `@react-aria/link` library
- Removed `@react-aria/separator` library
- Updated `Select` to use `useLabel` from Mobius
- Make `<Icon>` lighter: remove `name` prop. Use `icon` prop instead
- Make `<Accordion>` 18% lighter by replacing `react-animate-height` dependency with native animation. Other changes: 1) Prevent animation when `startOpen` value changes; 2) Attach `--is-open` class to icon and other components to make it easier to style; 3) Animate icon by default; 4) Remove `show` and `hide` classes in favour of `--is-open` when `<Accordion>` is expanded. This is to prevent accidental side-effects from generic CSS classes.
- Move `<MaskedField>` to `@simplybusiness/chopin` package since it is Chopin specific

## 4.0.0-alpha.0

### Changed

- Make `<Button>` lighter: 1) remove use of `useHover()` and `useFocusRing()` hooks to reduce component size; 2) remove `--is-hovered`, `--is-focus-visible`, `--has-icon`, `hide-children` classes. Replace `--is-hovered` and `--is-focus-visible` with `:hover` and `:focus-visible` selectors; 3) remove `<Icon>` component use inside `<Button>`; add `icon` and `iconPosition` prop deprecation warning in button
- Removed `useHover` and `useFocusFing` hooks from `TextField`
- Removed `useHover` and `useFocusFing` hooks from `TextArea`
- Make `<Select>` lighter: 1) remove use of `useHover()` and `useFocusRing()` hooks to reduce component size; 2) remove `--is-hovered`, `--is-focus-visible` classes. Replace with `:hover` and `:focus-visible` selectors. Replace `onChange` event value to return the entire default event, instead of `event.target.value`, which can be limiting in some use cases.
- Removed react-modal dependency to put Modal atom on a diet, using the new HTML Dialog element. Note that some props are deprecated: (`appElement`, `preventCloseOnEsc`, `shouldFocusAfterRender`, `parentSelector` and `mobius/ModalOverlay.--is-closing`)
- Make `<Radio>` and `<RadioButton>` lighter: 1) remove use of `useHover()` and `useFocusRing()` hooks to reduce component size; 2) remove `--is-hovered`, `--is-focus-visible` classes. Replace with `:hover` and `:focus-visible` selectors; 3) Replace `onChange` event value to return the entire default event, instead of `event.target.value`, which can be limiting in some use cases; 4) the following CSS variables have been removed in favour of native CSS `::after` element styling on `<Radio>` and `<RadioButton>`: `--bullet-width`, `--bullet-empty`, `--bullet-hover`, `--bullet-disabled`, `--bullet-disabled-selected`, `--bullet-valid`, `--bullet-valid-selected`, `--bullet-selected`, `--bullet-selected-hover`, `--bullet-invalid`, `--bullet-invalid-selected`; 5) remove `circular` prop and styles. Following design refresh in Chopin, this style is no longer used; 6) `<RadioButton>` now mostly uses `<Radio>` CSS classes due to underlying implementation being shared; 7) Controlled value support has been removed in order to only support existing use cases.
- Make `<Checkbox>` and `<CheckboxGroup>` lighter: 1) remove use of `useHover()`, `useFocusRing()`, `useCheckboxGroup()`, `useCheckboxGroupState()` hooks to reduce component size; 2) remove `--is-hovered`, `--is-focus-visible` classes. Replace with `:hover` and `:focus-visible` selectors; 3) Replace `onChange` event value to return the entire default event for `<Checkbox>`, instead of `event.target.value`, which can be limiting in some use cases; 4) the following CSS variables have been removed in favour of native CSS `::after` element styling on `<Checkbox>`: `--checkbox-empty`, `--checkbox-empty-hover`, `--checkbox-valid`, `--checkbox-invalid`, `--checkbox-indeterminate`, `--checkbox-indeterminate-valid`, `--checkbox-indeterminate-invalid`. To replace the icon use `--checkbox` and target background colour in order to amend styles based on state; 5) remove unused `indeterminate` prop and styles to reduce complexity that needs ongoing maintenance; 6) `<CheckboxItem>` and `<CheckboxGroupitem>` now use a single `<Checkbox>` instead; 7) `<CheckboxContext>` in favour of `<CheckboxGroup>` passing relevant props to children; 8) Controlled value support has been removed in order to only support existing use cases.
- `Progress` no longer relies on React-aria as a dependency.
- `Slider` no longer relies on React-aria as a dependency.
- `Fieldset` no longer relies on React-aria as a dependency.
- `NumberField` no longer relies on React-aria as a dependency. It no longer supports formatOptions, though we expect to add that back before release.
- Remove `icons` from `ThemeContext`; icons should be imported at application level, rather than set in Context. This is a breaking change, and Storybook no longer shows custom icons when changing theme.
- Chopin package no longer relies on React-aria as a dependency.
- Removed sb-legacy theme

## 3.12.2

### Added

- Add `onChange` to `<Accordion>` to inform user when component is expanded/collapsed (true/false)

## 3.12.1

### Fixed

- Fix `startOpen` prop in `<Accordion>`. Changing the prop doesn't update the internal state of the component. For example, if initial state is `true`, which then changes to `false`, the component remains in initial state.
- Fix `<Accordion>` toggle not rendering `aria-expanded` attribute

## 3.12.0

### Added

- Add `headerChildren` prop to `<Accordion>` in order to enable additional content to be added in the header part of the component.

## 3.11.0

### Removed

- Removed DataTable atom, which is unused in any application and adds heavy dependencies from `react-table` to the core library

### Changed

- Moved all Chopin components into their own package, now available under `@simplybusiness/mobius-chopin`. Previous Chopin component imports - `import { Chopin } from "@simplybusiness/mobius"`. For example `<Chopin.TradeSelector />` would have to be imported as `import { TradeSelector } from "@simplybusiness/mobius-chopin";`. The motivation behind this change is to reduce the weight of Mobius imports.
- Moved `<DatePicker>` component into its own package. Any `import { DatePicker } from "@simplybusiness/mobius"` would have to be changed to `import { DatePicker } from "@simplybusiness/mobius-datepicker";`. The motivation behind this change is to reduce the weight of Mobius imports.

## 3.10.0

### Changed

- Migrated all icons to [FontAwesome Sharp Regular](https://fontawesome.com/search?o=r&s=regular&f=sharp) equivalents. This was a design decision to make it easier to have uniform looking icons, and also so we have a larger pool of icons to choose from.
- Updated Icon component to better support FontAwesome icons

## 3.9.4

### Added

- Add docs for `<NumberField>` `formatOptions` prop with example
- Exclude tests and stories from ESM build

## 3.9.3

### Added

- Added explicit types export to mobius package.json

## 3.9.0

### Changed

- Upgrade Storybook from 6.5.13 to 7.2.1

### Fixed

- Add missing `<Checkbox>` `label` prop type. Storybook entry for the component contains JSX element as prop value. This fix adds the missing type

- Fix an issue where `gap` prop is ignored in `<Grid>`. This mostly affects examples where both `gap` and `rowGap` / `columnGap` values are provided. If `gap` has a value and `rowGap` / `columnGap` have `undefined`, the combined result will be `undefined` for `gap`. This is similar issue to `<Flex>` that's been recently fixed

## 3.8.0

### Added

- Added custom `useBodyScrollLock` hook to prevent scrolling of body when modal is open

## 3.7.0

### Added

- New simpler `useButton` hook implemenation, to work correctly with
  shadow DOM

## 3.6.2

### Fixed

- Fix missing `:focus-visible` state for `<Button variant="basic">`

## 3.6.1

### Fixed

- Add `:focus-visible` default styles alongisde programatically added `--is-focus-visible`, `--is-focused` CSS class names. This is to address an issue where no styles display when using keyboard navigation in ShadowDOM.
- Fix previewing `@simplybusiness/icons` in Storybook. When an icon isn't published, Storybook only displays icons from an installed package as opposed to locally available set of icons.

## 3.6.0

### Changed

- Remove Emotion in favour of plain CSS. Emotion isn't deeply integrated in Mobius and it presents issues when embedding Mobius containing apps in ShadowDOM.

### Fixed

- Fix `<Icon>` not adhering to provided styles in `<Alert>` and `<StepItem>`. Also, fix `<Icon>` 'Spinning' variant not spinning.

### Added

- Add `Modal` `size` prop docs. Currently only `fullscreen` is documented. A user may assume that default sizing is provided out of the box. However, only a CSS class name is applied and user has to add their own styles. Documenting for clarity.

## 3.5.1

### Fixed

- Fix an issue where `gap` prop is ignored in `<Flex>`

## 3.5.0

### Added

- `MaskedField` atom, to be used for formatting user input based on available input formatters - SSN (Social Security Number) or FEIN (Federal Employer Identification Number).
- `watch` script for running build task automatically when developing Mobius
- "use client" at the root level, for React server component compatibility

### Changed

- Removed Emotion jsx import source.

### Fixed

- Checkbox only shows a focus ring around the box icon, rather than the entire label.

## 3.4.4

### Added

- Allow `data-cy` as prop to `<TradeSelector>`. This is to allow for easier Cypress testing. Currently, component has to be wrapped with a div that has `data-cy` attribute. However, since `<Question>` expects direct children to handle `errorMessage` and `validationState`, spreading all props is not an option.

### Fixed

- Fix an issue where `<QuestionHelp>` `onChange` handler is called twice on render. It should only be invoked when help text button is pressed

## 3.4.3

### Changed

- Updated Turbo to 1.8.5
- Updated Storybook tasks to utilise Turbo cache

### Added

- Added missing secondary colour variable to On The Tools (ott) partner theme.

## 3.4.2

### Added

- Add onChange prop to `<Question>` for when help text is shown/hidden. This is to enable Snowplow analytics events to be attached

## 3.4.1

### Fixed

- Fix an issue where disabled button ghost variant would change colour on click
- Replace 301 Moved Permanently with 307 Temporary Redirect for homepage

## 3.4.0

### Added

- Add support for `vertical` and `searchScope` properties on `TradeSelector`.
- Add basic implementation of Trade Selector 2, which does not depend on heavy libraries
- Update README with suggestion for testing Mobius impact in project
- Add Trade Selector 2 CSS styles
- Enable selecting and editing a trade in Trade Selector 2
- Add missing features to Trade Selector 2: call real API, show loading/error/empty state, add aria labels, onTradeSelected prop
- Add unit tests for Trade Selector 2
- Trade Selector: on Enter, select first trade from the list

### Changed

- To improve code readability and maintainability in Trade Selector 2: split component state between parent component and Search Results component; extract trade fetching into its own hook; extract header into its own component; move labels into the config helper in order to colocate configuration related parameters
- Remove Trade Selector; rename Trade Selector 2 to Trade Selector

### Fixed

- Fixed an issue in Trade Selector 2 where 'View all trades' link may appear when minimum input threshold is met

## 3.3.2

### Fixed

- PasswordField did not reveal text after clicking 'show'

## 3.3.1

### Changed

- Change selected trade from TradeProps to string in Trade Selector. When loading Trade Selector where trade is already known, string value is sufficient to display the chosen trade. Example use case: Chopin API, which retains trade value as a string

## 3.3.0

### Added

- Add ability to have selected trade on initial render in Trade Selector

## 3.2.3

### Changed

- Change `<Chopin.Actions />` to render as buttons by default. Previously, in order to render actions as buttons we would have to provide `elementType` prop, but that still required for `href` to be present. Now, with `href` provided, a `<LinkButton>` will show, otherwise `<Button>` will show

### Fixed

- Fixed `<Button />` default transition during page load by specifying only the properties that we want transitioning. This fixes an issue where conditionally added padding scales button in size in an inelegant way.

## 3.2.2

### Fixed

- Fixed `onClick` type for `<LinkButton>`, so that it always expects default event

## 3.2.0

### Changed

- Allow providing a `ReactNode` as the `errorMessage` prop for `Question`

### Fixed

- Fixed typo in `<Chopin.Actions />` docs
- Fixed `<Chopin.Actions />` back button styles when disabled

## 3.1.3

### Fixed

- Prevent `isSelected` prop from being applied as DOM attribute on `<Checkbox>`

### Added

- Added docs for controlling state of individual and group `<Checkbox>`, `<Radio>`, `<RadioButton>` components

## 3.1.2

### Added

- Added default spacing between `<Question>` components
- Added `closeHelpOnOutsideClick` to `<Question>` to make closing of help text on outside click behaviour optional.

### Changed

- Changed default `<Question>` width to take up 100% of container width
- Changed default `<Question>` help text styles to always display inline. This is to match current behaviour in Chopin.

## 3.1.1

### Added

- Make `<DatePicker>` component available

### Changed

- Render `<Question>` label as `<span>` when no child components provided. This is to accommodate for `renderAs: "info"` in Chopin-next

## 3.1.0

### Changed

- Refactored props in `Chopin.Actions` molecule to only require back/next labels and respective `LinkButton` props; this allows users to assign any link or button attributes to buttons, e.g. disabled state.

## 3.0.0

### Breaking Changes

#### Imports

Mobius imports have changed to become clearer, shorter and more consistent. We recommend uninstalling old imports before importing V3 libraries (lock files will be cleaner):

```javascript
import { Container } from "@simplybusiness/mobius";
import "@simplybusiness/theme-sb";
```

- `mobius-core` is now simply `mobius`
- Themes are all named `theme-{partner}`
- Some themes expose extra components, e.g. breakpoint maps and custom icons. e.g.

```javascript
import { tick } from "@simplybusiness/theme-ott/icons";
```

Additionally, mobius and themes are available on the public NPM registry and can be used in code sandboxes withount needing an `.npmrc` file.

#### "is" prefix on Input props

- Change `<Button />` props: `disabled` -> `isDisabled`, `success` -> `isSuccess`, `loading` -> `isLoading`
- Change `<Checkbox />`, `<CheckboxGroupContext />`, `<CheckboxItem />`, `<CheckboxGroup />`, `<CheckboxGroupItem />` props: `disabled` -> `isDisabled`, `indeterminate` -> `isIndeterminate`, `selected` -> `isSelected`
- Change `<Link />`, `<LinkButton />` props: `disabled` -> `isDisabled`, `success` -> `isSuccess`, `loading` -> `isLoading`
- Change `<NumberField />` `disabled` prop to `isDisabled`
- Change `<NumberFieldButton />` `disabled` prop to `isDisabled`
- Change `<PasswordField />`, `<TextField />` `disabled` prop to `isDisabled`
- Change `<Radio />`, `<RadioButton />`, `<RadioGroup />`, `<RadioContext />` `disabled` prop to `isDisabled`
- Change `<Select />`, `<Option />` `disabled` prop to `isDisabled`
- Change `<Slider />` `disabled` prop to `isDisabled`
- Change `<TextArea />`, `disabled` prop to `isDisabled`
- Change `<Modal>` `open` prop to `isOpen`
- Change `<DataTable />` `sortable` prop to `isSortable`
- Change `<List />` props: `ordered` -> `isOrdered`, `reversed` -> `isReversed`

### Added

- Handle beta releases more elegantly. New `premajor` and `preminor` scripts adjust the version before appending `-beta.X`, do not update release docs and prompt for confirmation before committing and tagging. Tags are set as `beta` rather than
  `latest` and beta packages are only published to Nexus.
- Add 'All themes' documentation page to Storybook
- Add `icons` prop to `<ThemeProvider />` to optionally load partner icon customisations.
- `<Select />`: apply `aria-required` attribute when `isRequired` is set
- Add spacing beneath `<TradeSelector />` to make it consistent with other form fields
- Add `hideLabel` prop to `<TradeSelector />` to optionally hide label
- Add optional description, placeholder labels to `<TradeSelector />`

### Changed

- Update `<Select />` code examples to include first disabled option
- Remove setting partner styles in `<ThemeProvider />` via `styles` prop. Guide users to import partner styles at the root level
- `Question` and `QuestionGroup` handle responsive layout for mobile and desktop breakpoints (where 'desktop' is `md` or larger). They no longer use `size` props.
- Added percent format to `PercentageTotalsQuestion` inputs
- `DatePicker` styling in `sb2` theme
- Rename `@simplybusiness/mobius-theme-simplybusiness` theme to `@simplybusiness/theme-sb-legacy`. This is to make theme name consistent with other theme names. Also, the rename will clearly differentiate between the new `sb` theme
- Rename `@simplybusiness/theme-sb2` to `@simplybusiness/theme-sb` simplify theme naming across the board
- Use `sb` theme as base for `chopin`, `sb-legacy` and `ott` themes; remove duplicate code
- Consolidate CSS variables across all themes; remove redundant SCSS modules and CSS properties as a result
- Reduce unique `chopin` theme file count by extending from `sb-legacy` theme
- Update colour palettes for all themes by only retaining colours used
- Swap primary and secondary colours in `chopin` and `sb-legacy` themes in order to reflect real-life usage

### Fixed

- Fix `<Checkbox />` Storybook entry where user is unable to toggle. This is due to incorrectly set initial value.
- Fix `<NumberField />` standalone input styles; also when used inside `<PercentageTotalsQuestion />` in `sb2` theme
- Fix `<DatePicker />` input color to match other input fields in `sb2` theme
- Address color TODOs for `simplybusiness` and `chopin` themes
- Fix `<TextField />` `type` attribute by defining available options
- Fix number formatting on blur on `<NumberField />`
- Prevent `defaultSelected` prop from spilling onto `<Checkbox />` DOM attributes
- Fixed `<Label />` validation CSS. Now valid and invalid states apply across components
