Select

Select allows users to make a single selection or multiple selections from a list of options.

Neutral selected states

When the platform-dst-tokens-finesse feature flag is enabled, this component uses the new neutral treatment for selected states.

Motion in Early Access

Motion updates for multi-value Select tags are in Early Access and available behind the platform-dst-motion-uplift-labels feature flag.

22.11.6

Patch Changes

  • Updated dependencies

22.11.5

Patch Changes

  • 5283d6fbd291d, (opens new window) - Removed the focused option indicator bar from checkbox and radio select options when the platform-dst-tokens-finesse feature gate is enabled.
  • Updated dependencies

22.11.4

Patch Changes

  • Updated dependencies

22.11.3

Patch Changes

  • a7ec100f7d560, (opens new window) - The top-layer code path now uses @atlaskit/top-layer's useAnchoredPopover, so these popovers are capped to the viewport and one too wide for the space beside its trigger moves to a roomier side rather than wrapping into it. No public API change. Behind the platform-dst-top-layer gate (platform-dst-top-layer-tooltip for @atlaskit/tooltip, platform-dst-top-layer-spotlight for @atlaskit/spotlight); legacy (flag-off) behaviour is unchanged.
  • Updated dependencies

22.11.2

Patch Changes

22.11.1

Patch Changes

22.11.0

Minor Changes

Patch Changes

  • Updated dependencies

22.10.0

Minor Changes

22.9.2

Patch Changes

  • Use @atlassian/testing-library exclusively in unit tests.
  • Updated dependencies

22.9.1

Patch Changes

  • fae4f6a53e4be, (opens new window) - Render label enter and exit animations through cssMap in Tag, React Select, Select, and User Picker. Motion now measures concurrent CSS animation lists correctly so the label scale and fade animations complete together.
  • Updated dependencies

22.9.0

Minor Changes

  • ef98af289c49b, (opens new window) - Add motion to Tag, AvatarTag, TagDropdownTrigger, Tag Group, Select, React Select, and User Picker tag values. Tags use motion.label.enter and motion.label.exit for entry and exit, while interactive tags and dropdown triggers use the button hover and pressed motion tokens; Tag Dropdown Trigger also fades between its content and loading spinner. The remove control is removed when exit begins so it cannot linger while the tag collapses.

    Motion is gated by platform-dst-motion-uplift-labels. Compatibility and adoption paths for the visually uplifted Tag, Tag Group, Select, React Select, and User Picker additionally remain behind platform-dst-lozenge-tag-badge-visual-uplifts.

    @atlaskit/react-select also adds an optional onMotionFinish callback to the exported MultiValueProps interface so the Select can restore its placeholder after the final multi-value exit completes.

    import Tag from '@atlaskit/tag/new'; <Tag text="Status" />;

Patch Changes

  • Updated dependencies

22.8.1

Patch Changes

  • a7e63cfd84876, (opens new window) - [ux] When platform-dst-top-layer is enabled, Select menus now use the native Popover API to handle Escape and light-dismiss before synchronizing menuIsOpen through onMenuClose. This ensures Escape dismisses a nested Select menu without also dismissing its containing popup.

    Existing public props keep their behavior. The top-layer Popover implementation gains an internal source prop for imperative native popover invokers. The public runtime differences behind the feature gate are:

    • Select no longer calls preventDefault() or stopPropagation() for Escape on the top-layer path, whether its menu is open or closed. Successive Escape presses can therefore dismiss the Select menu and then its containing native popover.
    • onMenuClose is called from the native popover close lifecycle rather than synchronously during Select's Escape keydown handler.
    • shouldPreventEscapePropagation no longer stops Escape propagation while a top-layer menu is open; its legacy-path behavior is unchanged.
    • Top-layer Escape invokes onInputChange with the menu-close action once, after native dismissal, instead of the legacy path's two calls.
    • Controlled Selects must continue updating menuIsOpen to false in response to onMenuClose.
    • PopupSelect delegates Escape dismissal and focus restoration to its native popover. A consumer onKeyDown handler can therefore prevent the native dismissal with preventDefault(); previously, PopupSelect closed before forwarding the event.
    • DatePicker's top-layer calendar now uses the Select menu portal's native popover instead of creating a nested manual popover.
    • The internal Popover forwarding API accepts a native source element so imperative Select popovers retain their trigger relationship for light-dismiss behavior.
  • Updated dependencies

22.8.0

Minor Changes

  • d82e6f76528ab, (opens new window) - Add direct subpath package exports as part of the linking-platform, search, media, and design-system barrel-removal (de-barrel) migration.

    These packages now expose their individual modules via explicit package.json exports subpaths so that consumers can import directly from the leaf module (e.g. @atlaskit/pkg/thing) instead of the package barrel/index. This adds new public entry points without changing or removing any existing exports, so it is a backwards-compatible additive change.

    No runtime behaviour changes; this is an API-surface (entry-point) addition to support tree-shaking and to unblock removal of the barrel index files.

Patch Changes

  • Updated dependencies

22.7.0

Minor Changes

Patch Changes

  • Updated dependencies

22.6.6

Patch Changes

  • Updated dependencies

22.6.5

Patch Changes

  • Updated dependencies

22.6.4

Patch Changes

  • Updated dependencies

22.6.3

Patch Changes

  • Updated dependencies

22.6.2

Patch Changes

  • 9356675edac18, (opens new window) - Replace generated ./src/* subpath export keys with lint-safe equivalents. The de-barreling migration produced export keys containing a src segment (e.g. @atlaskit/select "./src/select"), which are forbidden by no-restricted-imports (@atlaskit/*/src/*) in downstream products.

    Renamed keys:

    • @atlaskit/select: ./src/select./default
    • @atlaskit/icon: ./src/constants./constants/default
    • @atlaskit/react-select: ./src/async./async/default, ./src/creatable./creatable/default
    • @atlaskit/heading: ./src/heading-context./heading-context/default
    • @atlaskit/flag: removed the redundant ./src/flag-group key (duplicate of the existing ./flag-group export)

    The underlying source targets are unchanged.

  • Updated dependencies

22.6.1

Patch Changes

  • 6902b31db1608, (opens new window) - Consolidate direct Popper.js callers behind @atlaskit/popper compatibility entry points and feature-gated consumer adapters.

    @atlaskit/popper now exposes compatibility entry points so existing direct popper.js / react-popper callers can move their dependency ownership onto @atlaskit/popper without a full rewrite:

    • @atlaskit/popper/react-popper re-exports the React usePopper hook and Manager / Popper / Reference render-prop components.
    • @atlaskit/popper/unsafe-imperative re-exports the raw Popper.js v2 createPopper for non-React, imperative callers. This is an escape hatch for existing callers only. Do not use it for new code; build new overlays on @atlaskit/top-layer instead.
    // Imperative callers (migrating away from a direct `@popperjs/core` / `popper.js` import): import { createPopper } from '@atlaskit/popper/unsafe-imperative'; const instance = createPopper(referenceElement, popperElement, { placement: 'bottom-start', }); // React callers (migrating away from a direct `react-popper` import): import { usePopper } from '@atlaskit/popper/react-popper'; const { styles, attributes } = usePopper(referenceElement, popperElement, { placement: 'bottom-start', });
  • Updated dependencies

22.6.0

Minor Changes

Patch Changes

  • Updated dependencies

22.5.7

Patch Changes

  • Updated dependencies

22.5.6

Patch Changes

  • 44cfa83f61092, (opens new window) - Correct the list item motion transition timing. A CSS transition is governed by the timing declared on the state being transitioned into, so the pressed timing (motion.listitem.pressed, 100ms) belongs on :active, not :hover. Declaring it on :hover made normal → hover (and selected → hover) animate at 100ms instead of the intended 50ms. The :hover state now uses motion.listitem.hovered (50ms) across all list item consumers so both hovering and unhovering animate at 50ms, while :active keeps motion.listitem.pressed (100ms) and selected variants rest at motion.listitem.selected (100ms). Behaviour remains behind the platform-dst-motion-uplift-list-item feature gate.
  • Updated dependencies

22.5.5

Patch Changes

  • 6490d22c0d837, (opens new window) - Fix list item pressed motion so the hover to pressed transition uses motion.listitem.pressed (100ms) instead of the hover timing (50ms). The pressed timing is now declared on the :hover state so the transition into the pressed state animates correctly. Behaviour remains behind the platform-dst-motion-uplift-list-item feature gate.
  • Updated dependencies

22.5.4

Patch Changes

  • Updated dependencies

22.5.3

Patch Changes

  • Updated dependencies

22.5.2

Patch Changes

  • Updated dependencies

22.5.1

Patch Changes

22.5.0

Minor Changes

  • 92dd044d3bd44, (opens new window) - Add motion to select/dropdown-kind list items (hover, pressed, and selected interaction states) behind the platform-dst-motion-uplift-list-item feature gate. This covers the shared menu item primitive (@atlaskit/menu, which also drives Dropdown menu and the date/time picker menus) and the @atlaskit/select / @atlaskit/react-select options (including checkbox and radio options). Rendering is unchanged when the gate is off. Motion honours prefers-reduced-motion and focus rings remain immediate.

Patch Changes

  • Updated dependencies

22.4.0

Minor Changes

Patch Changes

  • Updated dependencies

22.3.1

Patch Changes

  • e4d8c83fbe0b3, (opens new window) - Fix the accessibility of disabled Select components so screen readers correctly announce the disabled state and selected value. This fix is currently behind a feature flag.
  • Updated dependencies

22.3.0

Minor Changes

  • fe2d23e30b442, (opens new window) - [ux] Bumps Select so consumers pick up the voice-control accessible dropdown indicator from @atlaskit/react-select. The dropdown chevron can be targeted by voice control when platform_dst_select_dropdown_voice_control is enabled, while visual appearance and keyboard tab order remain unchanged.

Patch Changes

  • 86c21c639404f, (opens new window) - Run scoped-jsx codemod, migrating atlaskit components and examples to import the JSX type from React and use logical CSS properties. The change is required for components to be compatible with React 19 version, which removed JSX from global scope.
  • Updated dependencies

22.2.0

Minor Changes

  • cd097a2111788, (opens new window) - Republish packages depending on @atlaskit/react-compiler-gating so their published dependency reference is updated to the renamed @atlaskit/react-compiler-gating scope.

    The earlier rename of @atlassian/react-compiler-gating to @atlaskit/react-compiler-gating only bumped the renamed package itself, so dependent packages were never republished and their published versions still referenced the old @atlassian/react-compiler-gating name, which is not available in the public npm registry. This minor bump republishes all affected packages with the corrected dependency.

Patch Changes

  • Updated dependencies

22.1.1

Patch Changes

  • ee28cf33718b0, (opens new window) - Add @atlaskit/react-compiler-gating as a runtime dependency to enable React Compiler platform gating.

  • 9a892d8dc000e, (opens new window) - Clean up feature gate platform_navx_sllv_dropdown_escape_and_focus_fix.

    Popup select dropdowns now consistently stop Escape keydown propagation when configured to do so, keeping parent dialogs open while closing the dropdown and preserving focus on the trigger.

  • Updated dependencies

22.1.0

Minor Changes

  • 642a4ddbce9f4, (opens new window) - [ux] The Select menu is being migrated to the browser top layer. The new behaviour is gated behind the platform-dst-top-layer feature flag and ships dark; there are no public API changes for @atlaskit/react-select or @atlaskit/select.

    Internal-only improvements to support consumer migrations:

    • Polyfilled the :popover-open CSS pseudo-class in the jsdom test polyfill so consumers can assert on popover open state in unit tests without a browser.
    • Removed a defensive try/catch around element.matches() in Popover that was only needed to work around the missing pseudo-class.
    • Clarified, via an inline comment in use-initial-focus, why the combobox carve-out is kept role-specific (menu / listbox) rather than hoisted above all role checks.
    • Fixed a unit test for PopupSelect top-layer trigger click that incorrectly called failGate in afterEach, which conflicted with the auto-reset behaviour of @atlassian/feature-flags-test-utils/mock-gates and caused the suite to fail.

    No public API or runtime behaviour changes for existing consumers.

Patch Changes

  • Updated dependencies

22.0.0

Major Changes

  • f2dc9097319f0, (opens new window) - ### Dropped support for legacy Typescript 4 types. Typescript 5 is now the new minimum.

    Removes the typesVersions property and dist/types-ts4.5 directory from the dist.

    Types are now exclusively via the "types": "dist/types/index.d.ts" property.

    - "typesVersions": { - ">=4.5 <4.9": { - "*": [ - "dist/types-ts4.5/*", - "dist/types-ts4.5/index.d.ts" - ] - } - },

Patch Changes

  • Updated dependencies

21.12.15

Patch Changes

  • Updated dependencies

21.12.14

Patch Changes

  • Updated dependencies

21.12.13

Patch Changes

  • 6d0485dce81c4, (opens new window) - Internal: updated to the new @atlaskit/top-layer Popover/Dialog behaviour where the host element unmounts after the exit animation completes. No consumer action required.
  • Updated dependencies

21.12.12

Patch Changes

  • Updated dependencies

21.12.11

Patch Changes

21.12.10

Patch Changes

  • Updated dependencies

21.12.9

Patch Changes

  • Updated dependencies

21.12.8

Patch Changes

  • Updated dependencies

21.12.7

Patch Changes

  • Updated dependencies

21.12.6

Patch Changes

21.12.5

Patch Changes

  • Updated dependencies

21.12.4

Patch Changes

21.12.3

Patch Changes

  • Updated dependencies

21.12.2

Patch Changes

  • Updated dependencies

21.12.1

Patch Changes

  • Updated dependencies

21.12.0

Minor Changes

  • 7250582895c0b, (opens new window) - Top-layer adoption work behind the platform-dst-top-layer feature flag. Public adopter APIs are intentionally kept narrow while the top-layer API surface settles, with one exception called out below.

    Highlights:

    • Pass the full [along, away] legacy popper offset through to the new top-layer placement.offset API (via fromLegacyPlacement). Previously only the away axis was forwarded, which dropped the along offset for consumers of Popup, PopupSelect, Spotlight, and Tooltip when platform-dst-top-layer is enabled.
    • Fix broken import of dialogHeight and dialogWidth from the removed utils module in @atlaskit/modal-dialog.

    Public API:

    • @atlaskit/tooltip (minor): add an optional testId?: string field to TriggerProps. This is additive (no existing prop changes shape). Required because @atlaskit/button/new (and other Pressable-backed primitives) overwrite data-testid from spread, so the legacy (triggerProps as any)['data-testid'] workaround is silently absorbed by those consumers. A typed testId field flows through their own testId destructure instead, restoring data-testid propagation onto the rendered trigger element.
    • @atlaskit/popup, @atlaskit/dropdown-menu (patch): no public type changes. Wider aria-haspopup unions that the FF-on path produces are bridged at the package boundary into @atlaskit/top-layer with localised FUDGE(top-layer-api) casts, documented in packages/design-system/top-layer/notes/decisions/migration-roadmap.md ("Open API decisions deferred to a follow-up PR"). They will be widened in a follow-up minor PR once the top-layer API is committed.
    • @atlaskit/modal-dialog, @atlaskit/select, @atlaskit/spotlight (patch/minor): no public type changes; bug fixes only.

    Merge-readiness fixes (FF-on test wiring + adopter behavior):

    • @atlaskit/popup (minor): wire the compositional PopupContent to delegate to PopupContentTopLayer when platform-dst-top-layer is enabled. Previously only the legacy Popup component had the FF branch, leaving consumers of the compositional API on the legacy popper path.
    • @atlaskit/select (minor): add an onClick handler to the PopupSelect top-layer trigger so clicks open/close the menu (mirrors the legacy global click handler in popup-select.tsx). Add explicit Escape handling on the menu's onKeyDown so the menu closes and focus returns to the trigger.
    • @atlaskit/top-layer (patch): the <dialog> rendered by the Dialog primitive now sets aria-modal="true" explicitly. Modern browsers infer modal semantics from .showModal() but some assistive tech still keys off the explicit attribute.
    • @atlaskit/top-layer (patch): guard use-anchor-positioning against environments where ResizeObserver is not defined (e.g. jest's node environment, used by the post-office test suite). The observer is used to wait for the popover's first valid layout before measuring; consumers in non-DOM jest environments now get a no-op observer and the scroll/resize listeners still apply if the host environment polyfills showPopover. Real browsers always have ResizeObserver.
    • @atlaskit/modal-dialog (patch): on the FF-on path, drop the tabIndex={-1} (and unused :focus-visible outline) from the modal content wrapper. The native <dialog>.showModal() focus-delegate algorithm picks the first focusable descendant (including tabindex=-1), and the wrapper was hijacking initial focus from the close button. Also honor shouldReturnFocus={ref} on the FF-on path (an unmount-cleanup focuses the ref after dialog.close() so it overrides the browser's automatic return-to-trigger). Boolean shouldReturnFocus={false} is not yet honored on the FF-on path — see top-layer/notes/merge-blockers.md.
    • @atlaskit/datetime-picker (patch): on the FF-on path, set mode="manual" on the Popup.Content rendered by both internal/menu-top-layer.tsx (date-picker calendar) and internal/fixed-layer-menu-top-layer.tsx (time-picker menu). With the default mode="auto", the same click event that opens the menu (which targets the react-select combobox input — outside the popover element) bubbles to the browser's native popover light-dismiss handler and immediately closes the menu. react-select / DateTimePicker already own outside-click and Esc dismissal via their own state, so opting out of the native auto-dismiss is the correct integration. Also extend the existing Esc → trigger-focus restoration in components/date-picker.tsx to the FF-on path (manual mode disables the browser's built-in focus return, and the legacy code path was already handling this for itself behind an FF negation).
    • @atlaskit/popup (no public API change): no source changes — only FF-on Playwright spec/example fixes drove the suite from 21/3/2 to 27/0/0. Notable: the two test.fixme'd nested-popover cases were not browser limitations; popover="auto" chains correctly via DOM ancestry (the original fixmes had the wrong testId selector). Added testId props to two examples (16-popup-with-a11y-props, 18-should-fit-container) so default-shape tests can reach the trigger.
    • Test alignment for FF-on Playwright suites across popup, select, datetime-picker, inline-dialog, inline-message, and modal-dialog: selector updates to match the new top-layer testId convention (${testId}--content, [role="dialog"][aria-label="calendar"]), per-spec skipAxeCheck() for example-level color-contrast violations unrelated to the migration, and focus assertions adjusted to match native <dialog> / Popup.Content auto-focus semantics (focus lands on the first focusable child, not the dialog container itself).
    • @atlassian/capacity-planning-capacity-graph, @atlaskit/color-picker, @atlassian/timeline-table, @atlassian/global-side-navigation (patch): scope fg mocks in unit tests so platform-dst-top-layer returns false. JSDOM does not implement the native Popover API (showPopover/hidePopover/toggle events), so leaving the gate ON in unit tests caused popover content to remain in the DOM after close and broke close-behaviour assertions. Browser coverage for the FF-on path is provided by the Playwright suites listed above.
    • @atlaskit/dropdown-menu (no public API change): test/example-only fixes for the FF-on Playwright suite. Added role="menuitem" to the nested-trigger ButtonItem in examples/93-testing-nested-keyboard-navigation-top-layer.tsx to satisfy axe's aria-required-children rule on the parent menu. Added a test.beforeEach(skipAxeCheck) to dropdown-menu.spec.tsx (FF-on suite) for example-level color-contrast violations on the pre-existing color.text.selected/color.background.selected token pair (3.91:1). Replaced a deadlocking await expect(moveItem).not.toBeFocused() pre-open assertion (Playwright's auto-wait blocks 5s on the absent element) with await expect(moveItem).not.toBeVisible(). Suite result: 22/22 passing.

Patch Changes

  • Updated dependencies

21.11.0

Minor Changes

  • 2bed6255731de, (opens new window) - Top-layer adoption work behind the platform-dst-top-layer feature flag. Public adopter APIs are intentionally kept narrow while the top-layer API surface settles, with one exception called out below.

    Highlights:

    • Pass the full [along, away] legacy popper offset through to the new top-layer placement.offset API (via fromLegacyPlacement). Previously only the away axis was forwarded, which dropped the along offset for consumers of Popup, PopupSelect, Spotlight, and Tooltip when platform-dst-top-layer is enabled.
    • Fix broken import of dialogHeight and dialogWidth from the removed utils module in @atlaskit/modal-dialog.

    Public API:

    • @atlaskit/tooltip (minor): add an optional testId?: string field to TriggerProps. This is additive (no existing prop changes shape). Required because @atlaskit/button/new (and other Pressable-backed primitives) overwrite data-testid from spread, so the legacy (triggerProps as any)['data-testid'] workaround is silently absorbed by those consumers. A typed testId field flows through their own testId destructure instead, restoring data-testid propagation onto the rendered trigger element.
    • @atlaskit/popup, @atlaskit/dropdown-menu (patch): no public type changes. Wider aria-haspopup unions that the FF-on path produces are bridged at the package boundary into @atlaskit/top-layer with localised FUDGE(top-layer-api) casts, documented in packages/design-system/top-layer/notes/decisions/migration-roadmap.md ("Open API decisions deferred to a follow-up PR"). They will be widened in a follow-up minor PR once the top-layer API is committed.
    • @atlaskit/modal-dialog, @atlaskit/select, @atlaskit/spotlight (patch/minor): no public type changes; bug fixes only.

    Merge-readiness fixes (FF-on test wiring + adopter behavior):

    • @atlaskit/popup (minor): wire the compositional PopupContent to delegate to PopupContentTopLayer when platform-dst-top-layer is enabled. Previously only the legacy Popup component had the FF branch, leaving consumers of the compositional API on the legacy popper path.
    • @atlaskit/select (minor): add an onClick handler to the PopupSelect top-layer trigger so clicks open/close the menu (mirrors the legacy global click handler in popup-select.tsx). Add explicit Escape handling on the menu's onKeyDown so the menu closes and focus returns to the trigger.
    • @atlaskit/top-layer (patch): the <dialog> rendered by the Dialog primitive now sets aria-modal="true" explicitly. Modern browsers infer modal semantics from .showModal() but some assistive tech still keys off the explicit attribute.
    • @atlaskit/top-layer (patch): guard use-anchor-positioning against environments where ResizeObserver is not defined (e.g. jest's node environment, used by the post-office test suite). The observer is used to wait for the popover's first valid layout before measuring; consumers in non-DOM jest environments now get a no-op observer and the scroll/resize listeners still apply if the host environment polyfills showPopover. Real browsers always have ResizeObserver.
    • @atlaskit/modal-dialog (patch): on the FF-on path, drop the tabIndex={-1} (and unused :focus-visible outline) from the modal content wrapper. The native <dialog>.showModal() focus-delegate algorithm picks the first focusable descendant (including tabindex=-1), and the wrapper was hijacking initial focus from the close button. Also honor shouldReturnFocus={ref} on the FF-on path (an unmount-cleanup focuses the ref after dialog.close() so it overrides the browser's automatic return-to-trigger). Boolean shouldReturnFocus={false} is not yet honored on the FF-on path — see top-layer/notes/merge-blockers.md.
    • @atlaskit/datetime-picker (patch): on the FF-on path, set mode="manual" on the Popup.Content rendered by both internal/menu-top-layer.tsx (date-picker calendar) and internal/fixed-layer-menu-top-layer.tsx (time-picker menu). With the default mode="auto", the same click event that opens the menu (which targets the react-select combobox input — outside the popover element) bubbles to the browser's native popover light-dismiss handler and immediately closes the menu. react-select / DateTimePicker already own outside-click and Esc dismissal via their own state, so opting out of the native auto-dismiss is the correct integration. Also extend the existing Esc → trigger-focus restoration in components/date-picker.tsx to the FF-on path (manual mode disables the browser's built-in focus return, and the legacy code path was already handling this for itself behind an FF negation).
    • @atlaskit/popup (no public API change): no source changes — only FF-on Playwright spec/example fixes drove the suite from 21/3/2 to 27/0/0. Notable: the two test.fixme'd nested-popover cases were not browser limitations; popover="auto" chains correctly via DOM ancestry (the original fixmes had the wrong testId selector). Added testId props to two examples (16-popup-with-a11y-props, 18-should-fit-container) so default-shape tests can reach the trigger.
    • Test alignment for FF-on Playwright suites across popup, select, datetime-picker, inline-dialog, inline-message, and modal-dialog: selector updates to match the new top-layer testId convention (${testId}--content, [role="dialog"][aria-label="calendar"]), per-spec skipAxeCheck() for example-level color-contrast violations unrelated to the migration, and focus assertions adjusted to match native <dialog> / Popup.Content auto-focus semantics (focus lands on the first focusable child, not the dialog container itself).
    • @atlassian/capacity-planning-capacity-graph, @atlaskit/color-picker, @atlassian/timeline-table, @atlassian/global-side-navigation (patch): scope fg mocks in unit tests so platform-dst-top-layer returns false. JSDOM does not implement the native Popover API (showPopover/hidePopover/toggle events), so leaving the gate ON in unit tests caused popover content to remain in the DOM after close and broke close-behaviour assertions. Browser coverage for the FF-on path is provided by the Playwright suites listed above.
    • @atlaskit/dropdown-menu (no public API change): test/example-only fixes for the FF-on Playwright suite. Added role="menuitem" to the nested-trigger ButtonItem in examples/93-testing-nested-keyboard-navigation-top-layer.tsx to satisfy axe's aria-required-children rule on the parent menu. Added a test.beforeEach(skipAxeCheck) to dropdown-menu.spec.tsx (FF-on suite) for example-level color-contrast violations on the pre-existing color.text.selected/color.background.selected token pair (3.91:1). Replaced a deadlocking await expect(moveItem).not.toBeFocused() pre-open assertion (Playwright's auto-wait blocks 5s on the absent element) with await expect(moveItem).not.toBeVisible(). Suite result: 22/22 passing.

Patch Changes

  • Updated dependencies

21.10.5

Patch Changes

  • Updated dependencies

21.10.4

Patch Changes

  • Updated dependencies

21.10.3

Patch Changes

  • Updated dependencies

21.10.2

Patch Changes

21.10.1

Patch Changes

21.10.0

Minor Changes

21.9.0

Minor Changes

21.8.4

Patch Changes

21.8.3

Patch Changes

21.8.2

Patch Changes

  • Updated dependencies

21.8.1

Patch Changes

  • Updated dependencies

21.8.0

Minor Changes

Patch Changes

  • Updated dependencies

21.7.8

Patch Changes

  • Updated dependencies

21.7.7

Patch Changes

  • Updated dependencies

21.7.6

Patch Changes

21.7.5

Patch Changes

  • Updated dependencies

21.7.4

Patch Changes

21.7.3

Patch Changes

21.7.2

Patch Changes

  • Updated dependencies

21.7.1

Patch Changes

  • Updated dependencies

21.7.0

Minor Changes

  • 2ff0f3751e4e4, (opens new window) - Clean up the platform_dst_nav4_layering_in_main_slot_fixes feature gate. This change was abandoned because it broke usage of fixed positioning in apps.

21.6.4

Patch Changes

  • 99876f547dece, (opens new window) - Adds support for shouldPreventEscapePropagation prop in PopupSelect to stop Escape keydown event propagation when closing the popup. This is useful when PopupSelect is inside a modal or other component that also listens for Escape key events. Feature is behind platform_navx_sllv_dropdown_escape_and_focus_fix feature flag.
  • Updated dependencies

21.6.3

Patch Changes

  • Updated dependencies

21.6.2

Patch Changes

21.6.1

Patch Changes

21.6.0

Minor Changes

Patch Changes

  • Updated dependencies

21.5.0

Minor Changes

Patch Changes

  • Updated dependencies

21.4.3

Patch Changes

21.4.2

Patch Changes

21.4.1

Patch Changes

21.4.0

Minor Changes

Patch Changes

  • Updated dependencies

21.3.10

Patch Changes

  • Updated dependencies

21.3.9

Patch Changes

  • Updated dependencies

21.3.8

Patch Changes

21.3.7

Patch Changes

21.3.6

Patch Changes

  • Updated dependencies

21.3.5

Patch Changes

  • Updated dependencies

21.3.4

Patch Changes

  • Updated dependencies

21.3.3

Patch Changes

21.3.2

Patch Changes

21.3.1

Patch Changes

21.3.0

Minor Changes

Patch Changes

  • Updated dependencies

21.2.10

Patch Changes

21.2.9

Patch Changes

21.2.8

Patch Changes

21.2.7

Patch Changes

21.2.6

Patch Changes

  • Updated dependencies

21.2.5

Patch Changes

  • Updated dependencies

21.2.4

Patch Changes

  • Updated dependencies

21.2.3

Patch Changes

21.2.2

Patch Changes

  • Updated dependencies

21.2.1

Patch Changes

  • Updated dependencies

21.2.0

Minor Changes

  • #179366, (opens new window) 675f6b4bd17c3, (opens new window) - Adds experimental changes to default popper behavior in PopupSelect behind the platform_dst_nav4_layering_in_main_slot_fixes feature gate. When enabled, PopupSelect popups will no longer slide across the trigger. Instead they will behave like other popups and stay anchored next to the trigger.

21.1.1

Patch Changes

  • Updated dependencies

21.1.0

Minor Changes

Patch Changes

  • Updated dependencies

21.0.1

Patch Changes

21.0.0

Major Changes

  • #155023, (opens new window) 7a305b4f49968, (opens new window) - [ux] Migrated underlying react-select implementation from @emotion/react to @compiled/react to improve performance, align with the rest of the Atlaskit tech stack, and support React 18 Streaming SSR. Style customization should now be applied via the components prop with the new xcss prop, which allows for safe and bounded style overrides. The styles prop is still supported for most inline styles, but pseudo-classes and advanced selectors are no longer supported and will be ignored.

    If you use the styles prop with selectors like :hover, :focus, :active, :disabled, :before, :after, attribute selectors, combinators, at-rules, or similar, you must migrate to the new components API and use the xcss prop. See the examples, (opens new window) for details.

    This is a breaking change for any consumers relying on advanced selectors in the styles prop.

Patch Changes

  • Updated dependencies

20.7.2

Patch Changes

20.7.1

Patch Changes

  • Updated dependencies

20.7.0

Minor Changes

Patch Changes

  • Updated dependencies

20.6.2

Patch Changes

  • Updated dependencies

20.6.1

Patch Changes

20.6.0

Minor Changes

Patch Changes

  • Updated dependencies

20.5.0

Minor Changes

Patch Changes

  • Updated dependencies

20.4.1

Patch Changes

  • Updated dependencies

20.4.0

Minor Changes

Patch Changes

  • Updated dependencies

20.3.1

Patch Changes

20.3.0

Minor Changes

Patch Changes

  • Updated dependencies

20.2.0

Minor Changes

  • #138461, (opens new window) 455c7f648d71a, (opens new window) - Internal refactor to PopupSelect behind a feature flag.
    • No longer closing the popup when the internal select menu's onMenuClose is called.
    • It now registers with the experimental open layer observer, allowing it to close when the observer gives the close signal (e.g. when resizing a page layout slot).

Patch Changes

  • Updated dependencies

20.1.0

Minor Changes

Patch Changes

  • Updated dependencies

20.0.8

Patch Changes

20.0.7

Patch Changes

20.0.6

Patch Changes

20.0.5

Patch Changes

20.0.4

Patch Changes

  • Updated dependencies

20.0.3

Patch Changes

  • Updated dependencies

20.0.2

Patch Changes

  • Updated dependencies

20.0.1

Patch Changes

20.0.0

Major Changes

  • #110498, (opens new window) 53ad7ff63b09a, (opens new window) - Migrated from @emotion/react to @compiled/react in order to improve performance, align with the rest of the Atlaskit techstack, and support React 18 Streaming SSR. Please note, in order to use this version of @atlaskit/select, you will need to ensure that your bundler is configured to handle .css imports correctly.

    Most bundlers come with built-in support for .css imports, so you may not need to do anything. If you are using a different bundler, please refer to the documentation for that bundler to understand how to handle .css imports. For more information on the migration, please refer to RFC-73 Migrating our components to Compiled CSS-in-JS, (opens new window).

Patch Changes

19.0.0

Major Changes

Patch Changes

  • Updated dependencies

18.10.6

Patch Changes

  • Updated dependencies

18.10.5

Patch Changes

18.10.4

Patch Changes

  • Updated dependencies

18.10.3

Patch Changes

18.10.2

Patch Changes

  • Updated dependencies

18.10.1

Patch Changes

18.10.0

Minor Changes

Patch Changes

  • Updated dependencies

18.9.6

Patch Changes

18.9.5

Patch Changes

  • Updated dependencies

18.9.4

Patch Changes

18.9.3

Patch Changes

18.9.2

Patch Changes

18.9.1

Patch Changes

  • Updated dependencies

18.9.0

Minor Changes

Patch Changes

  • Updated dependencies

18.8.2

Patch Changes

18.8.1

Patch Changes

18.8.0

Minor Changes

  • #173737, (opens new window) 667640085e5c7, (opens new window) - Update the font size for the textarea and select components at the xs breakpoint. The font size will be increased to 16px to prevent IOS Safari from zooming in on the text field when it is focused. Styles for larger breakpoints will remain unchanged.

    Apply a fix to the textfield component to ensure monospace is correctly applied to the input at the media.above.xs breakpoint.

    These changes are currently behind a feature gate and will be evaluated for effectiveness. If successful, they will be included in a future release.

Patch Changes

  • Updated dependencies

18.7.1

Patch Changes

18.7.0

Minor Changes

Patch Changes

  • Updated dependencies

18.6.1

Patch Changes

18.6.0

Minor Changes

Patch Changes

  • Updated dependencies

18.5.3

Patch Changes

18.5.2

Patch Changes

18.5.1

Patch Changes

18.5.0

Minor Changes

Patch Changes

  • Updated dependencies

18.4.3

Patch Changes

18.4.2

Patch Changes

  • Updated dependencies

18.4.1

Patch Changes

18.4.0

Minor Changes

Patch Changes

  • Updated dependencies

18.3.0

Minor Changes

Patch Changes

  • Updated dependencies

18.2.0

Minor Changes

18.1.3

Patch Changes

  • Updated dependencies

18.1.2

Patch Changes

18.1.1

Patch Changes

18.1.0

Minor Changes

18.0.0

Major Changes

Patch Changes

17.19.3

Patch Changes

17.19.2

Patch Changes

17.19.1

Patch Changes

  • Updated dependencies

17.19.0

Minor Changes

17.18.0

Minor Changes

17.17.0

Minor Changes

Patch Changes

  • Updated dependencies

17.16.0

Minor Changes

17.15.2

Patch Changes

17.15.1

Patch Changes

17.15.0

Minor Changes

17.14.0

Minor Changes

17.13.2

Patch Changes

17.13.1

Patch Changes

  • Updated dependencies

17.13.0

Minor Changes

  • #127511, (opens new window) db30e29344013, (opens new window) - Widening range of react and react-dom peer dependencies from ^16.8.0 || ^17.0.0 || ~18.2.0 to the wider range of ``^16.8.0 || ^17.0.0 || ^18.0.0` (where applicable).

    This change has been done to enable usage of react@18.3 as well as to have a consistent peer dependency range for react and react-dom for /platform packages.

Patch Changes

  • Updated dependencies

17.12.1

Patch Changes

  • Updated dependencies

17.12.0

Minor Changes

17.11.13

Patch Changes

17.11.12

Patch Changes

  • 941edf62401ae, (opens new window) - This version removes platform.design-system-team.use-default-select-in-popup-select_46rmj feature flag. The PopupSelect component now uses the internal Select component ensure the accessibility of options with group labels for assistive technologies.

17.11.11

Patch Changes

17.11.10

Patch Changes

17.11.9

Patch Changes

17.11.8

Patch Changes

17.11.7

Patch Changes

17.11.6

Patch Changes

17.11.5

Patch Changes

  • Updated dependencies

17.11.4

Patch Changes

  • Updated dependencies

17.11.3

Patch Changes

  • Updated dependencies

17.11.2

Patch Changes

17.11.1

Patch Changes

  • Updated dependencies

17.11.0

Minor Changes

Patch Changes

  • Updated dependencies

17.10.4

Patch Changes

17.10.3

Patch Changes

  • Updated dependencies

17.10.2

Patch Changes

17.10.1

Patch Changes

17.10.0

Minor Changes

17.9.0

Minor Changes

Patch Changes

  • Updated dependencies

17.8.0

Minor Changes

Patch Changes

  • Updated dependencies

17.7.1

Patch Changes

17.7.0

Minor Changes

17.6.1

Patch Changes

17.6.0

Minor Changes

Patch Changes

17.5.0

Minor Changes

17.4.0

Minor Changes

17.3.4

Patch Changes

17.3.3

Patch Changes

17.3.2

Patch Changes

17.3.1

Patch Changes

17.3.0

Minor Changes

Patch Changes

  • Updated dependencies

17.2.0

Minor Changes

17.1.3

Patch Changes

17.1.2

Patch Changes

17.1.1

Patch Changes

17.1.0

Minor Changes

17.0.5

Patch Changes

17.0.4

Patch Changes

17.0.3

Patch Changes

17.0.2

Patch Changes

17.0.1

Patch Changes

  • Updated dependencies

17.0.0

Major Changes

Patch Changes

  • Updated dependencies

16.7.6

Patch Changes

16.7.5

Patch Changes

16.7.4

Patch Changes

16.7.3

Patch Changes

16.7.2

Patch Changes

16.7.1

Patch Changes

16.7.0

Minor Changes

16.6.0

Minor Changes

16.5.14

Patch Changes

16.5.13

Patch Changes

16.5.12

Patch Changes

16.5.11

Patch Changes

16.5.10

Patch Changes

16.5.9

Patch Changes

16.5.8

Patch Changes

16.5.7

Patch Changes

16.5.6

Patch Changes

16.5.5

Patch Changes

16.5.4

Patch Changes

16.5.3

Patch Changes

16.5.2

Patch Changes

16.5.1

Patch Changes

16.5.0

Minor Changes

16.4.0

Minor Changes

16.3.1

Patch Changes

16.3.0

Minor Changes

16.2.3

Patch Changes

16.2.2

Patch Changes

16.2.1

Patch Changes

16.2.0

Minor Changes

Patch Changes

  • Updated dependencies

16.1.9

Patch Changes

16.1.8

Patch Changes

16.1.7

Patch Changes

16.1.6

Patch Changes

16.1.5

Patch Changes

16.1.4

Patch Changes

  • Updated dependencies

16.1.3

Patch Changes

16.1.2

Patch Changes

16.1.1

Patch Changes

16.1.0

Minor Changes

Patch Changes

16.0.3

Patch Changes

  • Updated dependencies

16.0.2

Patch Changes

  • Updated dependencies

16.0.1

Patch Changes

16.0.0

Major Changes

  • #26712, (opens new window) 95b3630e9b5, (opens new window) - Update @atlaskit/select to use react-select v5, and update types

    Use forwardRef for all wrapped components - this means that if you were accessing anything on the Select instance using a ref, the ref will now reference the internal Select directly (see below for how to upgrade)

    Replace HOCs with hooks - if you were using our HOCs to create custom Selects (i.e., makeCreatableSelect, manageState, makeAsyncSelect) these have now been replaced by hooks (i.e., useCreatable, useStateManager, useAsync)

    Remove imports of @types/react-select - no longer required as react-select v5 now uses Typescript,

    _ Example _

    @atlaskit/select v15 and earlier:

    import { makeAsyncSelect } from '@atlaskit/select'; const AsyncSelect = makeAsyncSelect(ProxyBaseSelect); return ( <AsyncSelect ... /> )

    @atlaskit/select v16:

    import Select, { useAsync } from '@atlaskit/select'; const asyncProps = useAsync({ promiseFn: useCallback(() => loadOptions(inputValue), [inputValue]) }); return ( <Select inputValue={inputValue} isLoading={asyncProps.isLoading} options={!asyncProps.isLoading ? asyncProps.data : []} ... /> )

    Remove dependency on AutosizeInput - our new solution uses CSS grid which IE11 does not fully support; also .prefix__input now targets the input and NOT the container

    IndicatorProps is deprecated and replaced with ClearIndicatorProps, DropdownIndicatorProps, LoadingIndicatorProps. Examples can be viewed in the constellation docs

    onInputChange now requires a 2nd argument of type InputActionMeta

    NoticeProps should be used as the prop to customize LoadingMessage and NoOptionsMessage components

  • b8430db3873, (opens new window) - "select package now uses declarative entry points. atlaskit/select now exports all necessary types. Consumers should now import directly from atlaskit/select, not from eg atlaskit/select/types"

Minor Changes

  • c55a340ea4c, (opens new window) - Consumers using Popup Select custom modifiers will now have typescript errors. This is how to fix them.

    Custom popper.js modifiers passed into Popup Select are now strictly typed, providing additional type safety and IDE code-completion.

    To support this, a third generic for <PopupSelect/> has been added. This generic takes a union of the names of each modifier you include in popperProps.

    If you currently set custom modifiers like this:

    import {OptionType, PopupSelect} from '@atlaskit/select' <PopupSelect<OptionType, false> popperProps = {modifiers: [ {name: 'custom-modifier', ...}, {name: 'custom-modifier-2', ...} ]}> ... </>

    In order to avoid type errors in the new release, you will need to add a generic to PopupSelect specifying the modifiers you are providing:

    import {OptionType, PopupSelect} from '@atlaskit/select' type myModifiers = 'custom-modifier' | 'custom-modifier-2' <PopupSelect<OptionType, false, myModifiers>>

    In addition, the ModifierList type is now exported. ModifierList is a union type containing the names of the default modifiers passed into PopupSelect. If you need to use them as well:

    import {OptionType, PopupSelect, ModifierList} from '@atlaskit/select' type myModifiers = ModifierList | 'custom-modifier' | 'custom-modifier-2' <PopupSelect<OptionType, false, myModifiers>>

Patch Changes

  • Updated dependencies

15.7.7

Patch Changes

15.7.6

Patch Changes

  • Updated dependencies

15.7.5

Patch Changes

15.7.4

Patch Changes

15.7.3

Patch Changes

15.7.2

Patch Changes

15.7.1

Patch Changes

15.7.0

Minor Changes

Patch Changes

15.6.2

Patch Changes

15.6.1

Patch Changes

15.6.0

Minor Changes

15.5.0

Minor Changes

  • #23381, (opens new window) c17c6943be2, (opens new window) - Updated appearance of multi-select tags; when delete button is hovered, the appearance now matches @atlaskit/tag. The change is only visible with design token CSS enabled (in light or dark mode)

  • 45cae79ec0f, (opens new window) - [ux] Internal changes to <CountrySelect /> to no longer override container and menu width. The behaviour is now the same as the default Select component. Visual changes are possible if the <CountrySelect /> is being used in an unconstrained container (it will now expand to fill as is the default).

    Component now also uses the correct types (previously set to any). Props are still passed through so there is no runtime effect, but this may effect compilation for users providing props that are unsupported by the runtime.

  • 6e6ff42cd4c, (opens new window) - Replaces focus-trap with react-focus-lock in line with implementation in Jira Frontend.

Patch Changes

15.4.0

Minor Changes

15.3.2

Patch Changes

15.3.1

Patch Changes

15.3.0

Minor Changes

Patch Changes

15.2.13

Patch Changes

  • Updated dependencies

15.2.12

Patch Changes

15.2.11

Patch Changes

  • Updated dependencies

15.2.10

Patch Changes

15.2.9

Patch Changes

  • Updated dependencies

15.2.8

Patch Changes

15.2.7

Patch Changes

15.2.6

Patch Changes

  • Updated dependencies

15.2.5

Patch Changes

15.2.4

Patch Changes

15.2.3

Patch Changes

15.2.2

Patch Changes

15.2.1

Patch Changes

  • Updated dependencies

15.2.0

Minor Changes

  • #13864, (opens new window) f7cbc6631cf, (opens new window) - Instrumented select with the new theming package, @atlaskit/tokens.

    New tokens will be visible only in applications configured to use the new Tokens API (currently in alpha).

    These changes are intended to be interoperable with the legacy theme implementation. Legacy dark mode users should expect no visual or breaking changes.

Patch Changes

15.1.0

Minor Changes

15.0.2

Patch Changes

15.0.1

Patch Changes

15.0.0

Major Changes

Patch Changes

14.1.0

Minor Changes

  • #11649, (opens new window) 1ffa16e7d54, (opens new window) - [ux] An argument of PopupSelect's target render props was extended with aria-haspopup, aria-expanded, and aria-controls fields . You should pass this fields to custom trigger like ({isOpen, ...triggerProps}) => <button {...triggerProps}>Trigger</button>. Provided aria attributes help users who use assistive technologies understand a component better.

Patch Changes

14.0.1

Patch Changes

14.0.0

Major Changes

Patch Changes

  • 6ac48c99a54, (opens new window) - The entire content of a selected country, including the abbreviated name and the country code, is announced to a screen reader not just the country name.
  • Updated dependencies

13.3.1

Patch Changes

13.3.0

Minor Changes

13.2.0

Minor Changes

Patch Changes

13.1.1

Patch Changes

13.1.0

Minor Changes

13.0.6

Patch Changes

13.0.5

Patch Changes

  • Updated dependencies

13.0.4

Patch Changes

13.0.3

Patch Changes

13.0.2

Patch Changes

13.0.1

Patch Changes

13.0.0

Major Changes

  • #3823, (opens new window) b85482c030, (opens new window) - Upgraded Popper JS to version 2.2.3, which comes with bug fixes, performance improvements and a reduced bundle size when combined with @popperjs/core. As a result, PopupSelect has some changes to the values accepted by the popperProps prop.

    Changes labelled with ⚙️ have codemod support:

    • ⚙️ the positionFixed prop has been replaced with strategy, which takes either "fixed" or "absolute"
    • the modifiers prop has been significantly updated:
      • The format is now an array of objects, each labelled via a name key:value pair. Previously the prop was an object where each property was the modifier name.
      • Prop options are grouped together in an options object
      • default boundary paddings have been removed from preventOverflow and flip; to restore original padding, set padding: 5
      • modifiers that supported a boundariesElement option now have two options in its place:
        • boundary, which takes clippingParents (similar to scrollParent)
        • rootBoundary which takes viewport or document (replacing viewport and windowrespectively)
      • Each modifier has more internal changes not listed here: see the Popper JS docs, (opens new window) for more information

    Note: due to a bug in react-popper, a console.error message relating to React act() may be raised on some tests using PopupSelect. It should not cause test failures. This issue has been raised in the React Popper issue tracker, (opens new window)

    Running the codemod cli

    To run the codemod: You first need to have the latest version of select installed before you can run the codemod

    yarn upgrade @atlaskit/select@^13.0.0

    Once upgraded, use the Atlaskit codemod-cli;

    npx @atlaskit/codemod-cli --parser [PARSER] --extensions [FILE_EXTENSIONS] [TARGET_PATH]

    Or run npx @atlaskit/codemod-cli -h for more details on usage. For Atlassians, refer to this doc, (opens new window) for more details on the codemod CLI.

Patch Changes

12.0.2

Patch Changes

12.0.1

Patch Changes

12.0.0

Major Changes

Patch Changes

  • Updated dependencies

11.0.14

Patch Changes

  • Updated dependencies

11.0.13

Patch Changes

11.0.12

Patch Changes

11.0.11

Patch Changes

  • Updated dependencies

11.0.10

Patch Changes

11.0.9

Patch Changes

11.0.8

Patch Changes

  • Updated dependencies e3f01787dd, (opens new window):
    • @atlaskit/webdriver-runner@0.2.0
    • @atlaskit/button@13.3.8
    • @atlaskit/checkbox@10.1.9
    • @atlaskit/drawer@5.3.4
    • @atlaskit/form@7.1.4
    • @atlaskit/modal-dialog@10.5.3
    • @atlaskit/spinner@12.1.5
    • @atlaskit/tooltip@15.2.4

11.0.7

Patch Changes

  • [patch]6548261c9a, (opens new window):

    Remove namespace imports from React, ReactDom, and PropTypes- Updated dependencies 6548261c9a, (opens new window):

    • @atlaskit/docs@8.3.2
    • @atlaskit/visual-regression@0.1.9
    • @atlaskit/analytics-next@6.3.5
    • @atlaskit/button@13.3.7
    • @atlaskit/checkbox@10.1.7
    • @atlaskit/drawer@5.3.2
    • @atlaskit/form@7.1.2
    • @atlaskit/icon@20.0.1
    • @atlaskit/logo@12.3.2
    • @atlaskit/modal-dialog@10.5.2
    • @atlaskit/spinner@12.1.4
    • @atlaskit/theme@9.5.1
    • @atlaskit/tooltip@15.2.3

11.0.6

Patch Changes

  • Updated dependencies c0102a3ea2, (opens new window):
    • @atlaskit/icon@20.0.0
    • @atlaskit/form@7.1.1
    • @atlaskit/logo@12.3.1
    • @atlaskit/modal-dialog@10.5.1
    • @atlaskit/docs@8.3.1
    • @atlaskit/button@13.3.6
    • @atlaskit/checkbox@10.1.6
    • @atlaskit/drawer@5.3.1
    • @atlaskit/tooltip@15.2.2

11.0.5

Patch Changes

11.0.4

Patch Changes

11.0.3

Patch Changes

11.0.2

Patch Changes

11.0.1

Patch Changes

11.0.0

Major Changes

  • [major]30acc30979, (opens new window):

    @atlaskit/select has been converted to Typescript. Typescript consumers will now get static type safety. Flow types are no longer provided. No API or behavioural changes.

10.2.2

Patch Changes

  • [patch]d222c2b987, (opens new window):

    Theme has been converted to Typescript. Typescript consumers will now get static type safety. Flow types are no longer provided.

    Breaking

    ** getTokens props changes ** When defining the value function passed into a ThemeProvider, the getTokens parameter cannot be called without props; if no props are provided an empty object {} must be passed in:

    <CustomTheme.Provider value={t => ({ ...t(), backgroundColor: '#333'})} >

    becomes:

    <CustomTheme.Provider value={t => ({ ...t({}), backgroundColor: '#333'})} >

    ** Color palette changes ** Color palettes have been moved into their own file. Users will need to update imports from this:

    import { colors } from '@atlaskit/theme'; colors.colorPalette('8');

    to this:

    import { colorPalette } from '@atlaskit/theme'; colorPalette.colorPalette('8');

    or for multi entry-point users:

    import * as colors from '@atlaskit/theme/colors'; colors.colorPalette('8');

    to this:

    import * as colorPalettes from '@atlaskit/theme/color-palette'; colorPalettes.colorPalette('8');

10.2.1

Patch Changes

10.2.0

Minor Changes

  • [minor]17a07074e8, (opens new window):

    Fix padding to be consistent with other Atlaskit form fields. This change includes removing padding from around the icon itself, and adding padding to the icon container, as well as altering the padding around the input container.

10.1.3

Patch Changes

10.1.2

Patch Changes

10.1.1

  • Updated dependencies 97bab7fd28, (opens new window):
    • @atlaskit/button@13.3.1
    • @atlaskit/form@6.2.3
    • @atlaskit/modal-dialog@10.3.1
    • @atlaskit/checkbox@10.0.0
    • @atlaskit/docs@8.1.7

10.1.0

Minor Changes

10.0.8

Patch Changes

  • [patch]097b696613, (opens new window):

    Components now depend on TS 3.6 internally, in order to fix an issue with TS resolving non-relative imports as relative imports

10.0.7

Patch Changes

10.0.6

Patch Changes

10.0.5

Patch Changes

  • [patch]abee1a5f4f, (opens new window):

    Bumping internal dependency (memoize-one) to latest version (5.1.0). memoize-one@5.1.0 has full typescript support so it is recommended that typescript consumers use it also.

10.0.4

Patch Changes

10.0.3

  • Updated dependencies 926b43142b, (opens new window):
    • @atlaskit/analytics-next@6.0.0
    • @atlaskit/button@13.1.2
    • @atlaskit/checkbox@9.0.5
    • @atlaskit/modal-dialog@10.1.3
    • @atlaskit/tooltip@15.0.9

10.0.2

Patch Changes

10.0.1

Patch Changes

10.0.0

Major Changes

9.1.10

9.1.9

Patch Changes

9.1.8

  • Updated dependencies 06326ef3f7, (opens new window):
    • @atlaskit/docs@8.1.3
    • @atlaskit/button@13.0.9
    • @atlaskit/checkbox@8.0.5
    • @atlaskit/form@6.1.1
    • @atlaskit/modal-dialog@10.0.7
    • @atlaskit/tooltip@15.0.2
    • @atlaskit/icon@19.0.0

9.1.7

Patch Changes

9.1.6

9.1.5

  • Updated dependencies cfc3c8adb3, (opens new window):
    • @atlaskit/docs@8.1.2
    • @atlaskit/button@13.0.8
    • @atlaskit/checkbox@8.0.2
    • @atlaskit/form@6.0.5
    • @atlaskit/modal-dialog@10.0.4
    • @atlaskit/tooltip@14.0.3
    • @atlaskit/icon@18.0.0

9.1.4

  • Updated dependencies 70862830d6, (opens new window):
    • @atlaskit/button@13.0.6
    • @atlaskit/form@6.0.4
    • @atlaskit/modal-dialog@10.0.2
    • @atlaskit/checkbox@8.0.0
    • @atlaskit/icon@17.2.0
    • @atlaskit/theme@9.1.0

9.1.3

  • [patch]b0ef06c685, (opens new window):
    • This is just a safety release in case anything strange happened in in the previous one. See Pull Request #5942 for details

9.1.2

9.1.1

9.1.0

9.0.1

9.0.0

  • [major]7c17b35107, (opens new window):
    • Updates react and react-dom peer dependencies to react@^16.8.0 and react-dom@^16.8.0. To use this package, please ensure you use at least this version of react and react-dom.

8.1.1

  • Updated dependencies 9c0b4744be, (opens new window):
    • @atlaskit/docs@7.0.3
    • @atlaskit/button@12.0.3
    • @atlaskit/checkbox@6.0.4
    • @atlaskit/form@5.2.7
    • @atlaskit/icon@16.0.9
    • @atlaskit/logo@10.0.4
    • @atlaskit/modal-dialog@8.0.7
    • @atlaskit/spinner@10.0.7
    • @atlaskit/tooltip@13.0.4
    • @atlaskit/theme@8.1.7

8.1.0

8.0.5

  • Updated dependencies 1e826b2966, (opens new window):
    • @atlaskit/docs@7.0.2
    • @atlaskit/analytics-next@4.0.3
    • @atlaskit/checkbox@6.0.3
    • @atlaskit/form@5.2.5
    • @atlaskit/icon@16.0.8
    • @atlaskit/logo@10.0.3
    • @atlaskit/modal-dialog@8.0.6
    • @atlaskit/spinner@10.0.5
    • @atlaskit/theme@8.1.6
    • @atlaskit/tooltip@13.0.3
    • @atlaskit/button@12.0.0

8.0.4

8.0.3

  • Updated dependencies 9d5cc39394, (opens new window):
    • @atlaskit/docs@7.0.1
    • @atlaskit/analytics-next@4.0.1
    • @atlaskit/checkbox@6.0.1
    • @atlaskit/form@5.2.1
    • @atlaskit/icon@16.0.5
    • @atlaskit/logo@10.0.1
    • @atlaskit/modal-dialog@8.0.2
    • @atlaskit/spinner@10.0.1
    • @atlaskit/theme@8.0.1
    • @atlaskit/tooltip@13.0.1
    • @atlaskit/button@11.0.0

8.0.2

8.0.1

8.0.0

  • [major]76299208e6, (opens new window):

    • Drop ES5 from all the flow modules

    Dropping CJS support in all @atlaskit packages

    As a breaking change, all @atlaskit packages will be dropping cjs distributions and will only distribute esm. This means all distributed code will be transpiled, but will still contain import and export declarations.

    The major reason for doing this is to allow us to support multiple entry points in packages, e.g:

    import colors from `@atlaskit/theme/colors`;

    Previously this was sort of possible for consumers by doing something like:

    import colors from `@atlaskit/theme/dist/esm/colors`;

    This has a couple of issues. 1, it treats the file system as API making internal refactors harder, we have to worry about how consumers might be using things that aren't actually supposed to be used. 2. We are unable to do this internally in @atlaskit packages. This leads to lots of packages bundling all of theme, just to use a single color, especially in situations where tree shaking fails.

    To support being able to use multiple entrypoints internally, we unfortunately cannot have multiple distributions as they would need to have very different imports from of their own internal dependencies.

    ES Modules are widely supported by all modern bundlers and can be worked around in node environments.

    We may choose to revisit this solution in the future if we find any unintended condequences, but we see this as a pretty sane path forward which should lead to some major bundle size decreases, saner API's and simpler package architecture.

    Please reach out to #fabric-build (if in Atlassian) or create an issue in Design System Support, (opens new window) (for external) if you have any questions or queries about this.

7.2.2

7.2.1

7.2.0

7.1.2

7.1.1

7.1.0

7.0.0

6.1.20

6.1.19

  • Updated dependencies d7ef59d432, (opens new window):
    • @atlaskit/docs@6.0.1
    • @atlaskit/button@10.1.2
    • @atlaskit/checkbox@5.0.11
    • @atlaskit/form@5.1.2
    • @atlaskit/modal-dialog@7.2.1
    • @atlaskit/tooltip@12.1.15
    • @atlaskit/icon@16.0.0

6.1.18

6.1.17

6.1.16

6.1.15

6.1.14

6.1.13

  • Updated dependencies 58b84fa, (opens new window):
    • @atlaskit/analytics-next@3.1.2
    • @atlaskit/button@10.1.1
    • @atlaskit/checkbox@5.0.9
    • @atlaskit/form@4.0.21
    • @atlaskit/icon@15.0.2
    • @atlaskit/logo@9.2.6
    • @atlaskit/modal-dialog@7.1.1
    • @atlaskit/spinner@9.0.13
    • @atlaskit/theme@7.0.1
    • @atlaskit/tooltip@12.1.13
    • @atlaskit/docs@6.0.0

6.1.12

6.1.11

6.1.10

  • Updated dependencies d13242d, (opens new window):
    • @atlaskit/docs@5.2.3
    • @atlaskit/button@10.0.4
    • @atlaskit/checkbox@5.0.8
    • @atlaskit/form@4.0.20
    • @atlaskit/icon@15.0.1
    • @atlaskit/logo@9.2.5
    • @atlaskit/modal-dialog@7.0.14
    • @atlaskit/spinner@9.0.12
    • @atlaskit/tooltip@12.1.12
    • @atlaskit/theme@7.0.0

6.1.9

  • Updated dependencies ab9b69c, (opens new window):
    • @atlaskit/docs@5.2.2
    • @atlaskit/button@10.0.1
    • @atlaskit/checkbox@5.0.7
    • @atlaskit/form@4.0.19
    • @atlaskit/modal-dialog@7.0.13
    • @atlaskit/tooltip@12.1.11
    • @atlaskit/icon@15.0.0

6.1.8

  • Updated dependencies 6998f11, (opens new window):
    • @atlaskit/docs@5.2.1
    • @atlaskit/analytics-next@3.1.1
    • @atlaskit/checkbox@5.0.6
    • @atlaskit/form@4.0.18
    • @atlaskit/icon@14.6.1
    • @atlaskit/logo@9.2.4
    • @atlaskit/modal-dialog@7.0.12
    • @atlaskit/spinner@9.0.11
    • @atlaskit/theme@6.2.1
    • @atlaskit/tooltip@12.1.10
    • @atlaskit/button@10.0.0

6.1.7

6.1.6

  • [patch]a637f5e, (opens new window):
    • Refine and fix some flow type errors found by fixing @atlaskit/analytics-next HOCs to allow flow to type check properly

6.1.5

6.1.4

6.1.3

6.1.2

6.1.1

6.1.0

6.0.4

6.0.3

6.0.2

  • [patch] Updated dependencies 65c6514, (opens new window)
    • @atlaskit/docs@5.0.8
    • @atlaskit/button@9.0.13
    • @atlaskit/checkbox@5.0.2
    • @atlaskit/form@4.0.10
    • @atlaskit/modal-dialog@7.0.2
    • @atlaskit/tooltip@12.1.1
    • @atlaskit/icon@14.0.0

6.0.1

6.0.0

5.0.19

5.0.18

  • [patch] Updated dependencies 80e1925, (opens new window)
    • @atlaskit/button@9.0.9
    • @atlaskit/form@4.0.5
    • @atlaskit/modal-dialog@7.0.1
    • @atlaskit/checkbox@5.0.0

5.0.17

  • [patch] Updated dependencies d5a043a, (opens new window)
    • @atlaskit/form@4.0.3
    • @atlaskit/icon@13.8.1
    • @atlaskit/tooltip@12.0.14
    • @atlaskit/modal-dialog@7.0.0

5.0.16

5.0.15

5.0.14

5.0.13

5.0.11

5.0.10

5.0.9

  • [patch] Updated dependencies df22ad8, (opens new window)
    • @atlaskit/theme@6.0.0
    • @atlaskit/tooltip@12.0.9
    • @atlaskit/spinner@9.0.6
    • @atlaskit/modal-dialog@6.0.9
    • @atlaskit/icon@13.2.5
    • @atlaskit/form@3.1.6
    • @atlaskit/checkbox@4.0.4
    • @atlaskit/button@9.0.6
    • @atlaskit/docs@5.0.6

5.0.8

5.0.7

  • [patch] Fix bug with Popup select not opening if target was an SVG object acd86a1, (opens new window)
  • [patch] Updated dependencies acd86a1, (opens new window)
    • @atlaskit/tooltip@12.0.4
    • @atlaskit/icon@13.2.2
    • @atlaskit/checkbox@4.0.2
    • @atlaskit/button@9.0.4
    • @atlaskit/theme@5.1.2
    • @atlaskit/spinner@9.0.4
    • @atlaskit/analytics-next@3.0.3
    • @atlaskit/docs@5.0.2
    • @atlaskit/modal-dialog@6.0.5
    • @atlaskit/form@3.1.4

5.0.6

  • [patch] Add a SSR test for every package, add react-dom and build-utils in devDependencies 7e331b5, (opens new window)
  • [patch] Updated dependencies 7e331b5, (opens new window)
    • @atlaskit/tooltip@12.0.3
    • @atlaskit/modal-dialog@6.0.4
    • @atlaskit/analytics-next@3.0.2
    • @atlaskit/checkbox@4.0.1
    • @atlaskit/button@9.0.3
    • @atlaskit/theme@5.1.1
    • @atlaskit/spinner@9.0.3
    • @atlaskit/icon@13.2.1
    • @atlaskit/form@3.1.3

5.0.5

5.0.4

5.0.3

5.0.2

  • [patch] Move analytics tests and replace elements to core 49d4ab4, (opens new window)
  • [none] Updated dependencies 49d4ab4, (opens new window)
    • @atlaskit/tooltip@12.0.1
    • @atlaskit/modal-dialog@6.0.1
    • @atlaskit/analytics-next@3.0.1
    • @atlaskit/button@9.0.2
    • @atlaskit/spinner@9.0.2
    • @atlaskit/docs@5.0.1

5.0.1

5.0.0

4.5.2

4.5.1

4.5.0

  • [minor] atlaskit/select now invokes a makeAnimated function to wrap passed in components in default animated behaviour. As this invocation returns a new set of react components each time, we've also implemented a lightweight component cache using memoize-one and react-fast-compare. Additionally updates made to datetime-picker to not instantiate a new component on render everytime (for performance reasons as well as to satisfy our caching logic), we now also pass relevant state values through the select as props to be ingested by our custom components, instead of directly capturing them within lexical scope. 9b01264, (opens new window)
  • [none] Updated dependencies 9b01264, (opens new window)

4.4.0

4.3.6

4.3.5

4.3.4

4.3.3

4.3.2

4.3.1

4.3.0

4.2.3

  • [patch] Clean Changelogs - remove duplicates and empty entries e7756cd, (opens new window)
  • [patch] Updated dependencies e7756cd, (opens new window)
    • @atlaskit/tooltip@10.2.1
    • @atlaskit/modal-dialog@5.2.2
    • @atlaskit/button@8.1.2
    • @atlaskit/theme@4.0.4
    • @atlaskit/checkbox@3.0.6
    • @atlaskit/icon@12.1.2
    • @atlaskit/form@2.1.2

4.2.2

4.2.1

4.2.0

  • [none] Updated dependencies 9d20f54, (opens new window)
    • @atlaskit/modal-dialog@5.1.0
    • @atlaskit/icon@12.1.0
    • @atlaskit/checkbox@3.0.4
    • @atlaskit/docs@4.1.0
    • @atlaskit/theme@4.0.2
    • @atlaskit/button@8.1.0

4.1.0

4.0.1

4.0.0

  • [major] makes styled-components a peer dependency and upgrades version range from 1.4.6 - 3 to ^3.2.6 1e80619, (opens new window)
  • [patch] Updated dependencies 1e80619, (opens new window)
    • @atlaskit/modal-dialog@5.0.0
    • @atlaskit/icon@12.0.0
    • @atlaskit/checkbox@3.0.0
    • @atlaskit/button@8.0.0
    • @atlaskit/theme@4.0.0
    • @atlaskit/docs@4.0.0

3.2.0

3.1.0

  • [minor] Added spacing prop, which allows for a compact mode that supports 32px trigger height for single-select, bumped react-select to beta.6 59ab4a6, (opens new window)
  • [minor] added spacing prop to support compact mode for single select.
  • bumped react-select to beta.6, this includes the following changes:
    • actionMeta for remove-value and pop-value events now contain a removedValue property.
    • Fixed bug with css attribute being applied to DOM element in SingleValue.
    • selectValue now filters items based on getOptionValue method.
    • Added createOptionPosition prop for Creatable select, which allows the user to specify whether the createOption element displays as the first or last option in the menu.
    • Added touch handling logic to detect user intent to scroll the page when interacting with the select control.

3.0.2

  • [patch] Updated dependencies d662caa, (opens new window)
    • @atlaskit/icon@11.3.0
    • @atlaskit/modal-dialog@4.0.5
    • @atlaskit/checkbox@2.0.2
    • @atlaskit/button@7.2.5
    • @atlaskit/theme@3.2.2
    • @atlaskit/docs@3.0.4

3.0.1

3.0.0

  • [major] Update to react-select@beta.4, removed developer preview warning. Stable release d05b9e5, (opens new window)
  • BREAKING: Removed maxValueHeight prop and functionality, this is a breaking change that affects multi -value components predominantly. The control will now expand to accommodate contained values, as opposed to constraining to a maxValueHeight with a scrollable area.
  • Async, Creatable, AsyncCreatable components now imported from react-select and not from react-select/lib/*.
  • Internal cx implementation refactored to reduce specificity of css-in-js base styles. By default these base-styles will be overridden by css styles associated to provided class names.
  • Fixed animated component bug where setting isSearchable to false would throw warnings in the console.
  • Added a classNamePrefix prop which now controls the class names applied to internal components, className prop is now intended for adding a className to the bounding selectContainer only. If the classNamePrefix field is left undefined, then the className prop will currently fulfill both these roles, however a warning will be shown and this functionality is intended to be deprecated in future releases.
  • Added --is-disabled className modifier to the default Option component
  • Fixed IE11 issues around element overflow in the menuList, and scroll indicators in the control.
  • Added multi-value keyboard navigation using left and right arrow keys.
  • Added fix to ensure focus is on the input when the menu opens.

2.0.2

2.0.0

  • [major] Classname prop added, if this is given a value we surface logical semantic classes prefixed with the supplied value to enable styling via css otherwise a generated hash value is used.W e also now export icon components from the components object to facilitate easier customisation. Previously this behaviour was enforced, and classes were given semantic values and prefixed with ‘react-select’ by default (i.e. react-select__dropdown-indicator) . See the following commit for details https://github.com/JedWatson/react-select/commit/109d1aadb585cc5fd113d03309d80bd59b5eaf9b, (opens new window) Also in this release, IE 11 display bugfix for centre alligned elements in a flex parent, fix for react15 compatibility, fix for bug where long tail values were not being truncated properly in the control 8d19b24, (opens new window)

1.3.1

1.3.0

1.2.0

1.1.1

1.1.0

1.0.0

0.3.0

  • [minor] Added Creatable and AsyncCreatable exports, added menuPortalTarget prop to portal select menu, updated selects to expose intenral focus and blur methods' a7b06f4, (opens new window)

0.2.1

0.2.0

0.1.7

0.1.6

0.1.5

0.1.4

0.1.3

0.1.2

0.1.1

0.1.0

  • Initial release
Was this page helpful?
We use this feedback to improve our documentation.
© 2026 AtlassianTrademark, (opens new window)Privacy, (opens new window)License