# What changed in @scalar/api-client

> 71 changes in @scalar/api-client 3 from its official release notes, upgrade guides and advisories: 2 breaking, 2 deprecations, 1 security, 7 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/npm/@scalar/api-client/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @scalar/api-client 3

### Breaking changes

- The #backdrop slot is removed from ScalarDropdown, ScalarPopover, ScalarListbox, and ScalarCombobox; style the floating element with class instead. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)
- ScalarFloatingBackdrop is deprecated in favor of bg-b-1 dark:bg-b-1.5; it uses the same surface styles and no longer clips its slot or draws a real border. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)

### Security

- OAuth authorization and desktop external links are restricted to HTTPS or HTTP for local development URLs before opening. (3.23.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3231)

### Deprecations

- The brightness-lifted utility is deprecated in favor of bg-b-1 dark:bg-b-1.5. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)
- This CSS custom property is deprecated in favor of bg-b-1 dark:bg-b-1.5. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)

### New APIs and options

- Built-in Traditional Chinese (Taiwan) translations are available across API Reference, API Client, and schema blocks, including case and underscore variants. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- A new utility draws a hairline border that can stack with shadow-* without taking up layout space. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)
- Users can inspect all writable fields alongside custom examples without changing their request payload. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)
- Mock response headers expose XML generation failures through X-Scalar-XML-Error, containing the first error diagnostic code. (3.21.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3211)
- SDK code samples can link to named request body examples using optional example and contentType fields; API client snippets use the selected request example. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- OpenAPI 3.2 querystring parameters support content-based serialization, whole-query editing, schema rendering, and generated request URLs. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- Traversed operation and webhook methods use the exported open OperationMethod type, which accepts custom strings while retaining known-method editor completion. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)

### Performance

- Avoids allocating unused character match ranges during document search. (3.21.3) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3213)

### Behavior and default changes

- The searchable picker now shows empty optional fields of expanded object query parameters. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- The action appears on authentication fields only when a default differs from the current value; cleared OAuth2 access tokens retain it to return to the Authorize form. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- Floating surfaces paint their own background, border, and shadow instead of using an absolutely positioned backdrop layer. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)
- Tailwind's default inset-shadow sizes are reset, matching the other theme namespaces. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)
- Explicit field clears stay separate from configured defaults; fields gain local reset actions, and fixed-choice OAuth settings cannot be cleared. (3.21.5) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3215)
- Floating surfaces use the design system border, shadow, and extra-large radius; backdrops inherit the element radius, and lifted brightness no longer brightens the border. (3.21.5) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3215)
- The code block scroller is exposed as a named group for screen readers, with its label localizable via operation.codeSample. (3.21.4) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3214)
- Hides the dropdown in the API Reference when only one required option is active, while retaining authentication and deletion controls in the API Client. (3.21.3) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3213)
- The Authentication card title is plain text and the card is exposed as a named group, keeping it findable without adding it to the document heading outline. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- At narrow widths, the method label and copy button stay inside the address bar, the send button spans the width when it wraps, and the sidebar toggle moves onto the backdrop below the lg breakpoint. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Response status tabs announce what each code means. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- OpenAPI 3.2 additionalOperations are supported in operation storage, navigation, documentation, callbacks, and the API client, preserving custom method spelling. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- Optional parameters with dataValue or serializedValue examples are enabled by default; explicitly disabled examples remain disabled. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)

### Fixes and other changes

- The shared Example/Examples popup displays authored server-variable examples, including examples from referenced variables, with copy support. (3.23.3) — [release notes](https://github.com/scalar/scalar/blob/74361961e3156ef7211395f01c20db733f87ad45/packages/api-client/CHANGELOG.md#3233)
- Popups align with their labels to avoid overlapping the sidebar. (3.23.3) — [release notes](https://github.com/scalar/scalar/blob/74361961e3156ef7211395f01c20db733f87ad45/packages/api-client/CHANGELOG.md#3233)
- The label remains clickable when hovered. (3.23.3) — [release notes](https://github.com/scalar/scalar/blob/74361961e3156ef7211395f01c20db733f87ad45/packages/api-client/CHANGELOG.md#3233)
- The authorization form appears again after OAuth access and refresh tokens are cleared. (3.23.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3232)
- Document-backed API key name edits are preserved for export, configured names can be cleared, and configured overrides are released when the default name is restored. (3.23.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3231)
- Shared component styles no longer override host page body backgrounds and margins, including with CSS layers; standalone bundles retain full-page body styling. (3.23.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3231)
- The action stays rightmost in the bearer token's Get a token row, with the settings gear to its left and Refresh between them. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- Disabled field values are preserved in the interface but excluded from requests. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- Checkboxes for expanded query parameters now operate independently. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- Cookie persistence now gives Max-Age precedence over Expires. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- The toggle appears only when a field has a value, and an emptied field becomes masked again. (3.23.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3230)
- Form body fields resolve structural allOf objects, annotation-only wrappers, and selected oneOf/anyOf variants while preserving descriptions, nested inputs, and multipart value types when switching variants. (3.22.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3220)
- Labels no longer target a non-labelable editor wrapper, and clicking a masked password’s label continues to focus its input. (3.21.5) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3215)
- The “Get a token” row’s label, settings icon, and authorize button styling are polished for visual consistency. (3.21.5) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3215)
- Large request bodies no longer render blank gaps in the code editor. (3.21.5) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3215)
- Long unbroken lines scroll inside the editor instead of stretching the client beyond the viewport. (3.21.5) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3215)
- The copy button has a stable accessible name in every state, including while its visible label is hidden. (3.21.4) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3214)
- When the search query is empty, Space toggles the active option instead of hiding the whole list. (3.21.4) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3214)
- Keeps failed requests visible in the response panel and explains possible CORS or network causes for browser fetch failures. (3.21.3) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3213)
- Preserves enum array selections with their original enum value types as JSON arrays and contains long selection labels. (3.21.3) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3213)
- Request and response filter tabs no longer carry aria-controls, preventing screen readers from announcing each tab twice while arrowing through them. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- The current sidebar item now reports aria-current. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- The password toggle reports its state through aria-pressed. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Bearer Token, Username, API key, and OAuth inputs expose their visible labels as accessible names in both masked and unmasked states. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Selecting scopes no longer creates duplicate available OAuth2 entries. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- The client picker and its search field get accessible names. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Collapsible sections no longer announce their title twice. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- The single content type readout leaves the tab order. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- The two document download buttons get distinct accessible names. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Opening the modal from a Test Request button moves focus to the close button first. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Configured default scopes are applied when selecting an available scheme. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Configured OAuth redirect URLs are preserved when credentials change or tokens are cleared; users affected by the earlier bug must re-enter the intended URL. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Refresh controls are hidden when no refresh token is available. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- A nameless wrapper around property lists is presentational, so assistive technology announces the real list rather than a wrapper with one item. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- The public OAuth secrets type exposes x-scalar-secret-redirect-uri as optional (string | undefined), so consumers must distinguish an absent override from an explicit empty string. (3.21.2) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3212)
- Optional form fields are included when selecting files or editing values, while explicitly unchecked fields remain unchecked. (3.21.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3211)
- Long response bodies remain scrollable inside the body panel in narrow API client layouts. (3.21.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3211)
- XML generation failures are explained in response example panels and reported to other consumers through a callback or the developer console. (3.21.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3211)
- XML examples are generated from schema metadata, preserving attributes, namespaces, array wrappers, repeated elements, and OpenAPI 3.2 text and CDATA nodes across request bodies, code snippets, response examples, mock responses, and Markdown documentation. (3.21.1) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3211)
- OpenAPI 3.2 dataValue and serializedValue examples are used for named parameters in the editor, outgoing requests, and code samples, without encoding already serialized values twice. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- The browser client preserves request bodies for extension methods such as QUERY and PROPFIND. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- Requests using CONNECT, TRACE, or TRACK, including methods changed by pre-request scripts, show a clear error instead of throwing while building the request. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- Media-level cookie examples are percent-encoded when sent, matching generated snippets, and snippet generation no longer modifies input cookies. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- Parameter-level serializedValue examples remain editable as raw wire text, including parameter names and percent encoding. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
- Data table rows render inside a tbody so server-rendered tables hydrate without the client discarding and rebuilding the table. (3.21.0) — [release notes](https://github.com/scalar/scalar/blob/efb009aff3e0dd32bce9399bf71fa99bb8818ac9/packages/api-client/CHANGELOG.md#3210)
