Modal dialog

A modal dialog displays content that requires user interaction, in a layer above the page.

17.0.1

Patch Changes

17.0.0

Major Changes

  • 0c7c7be927bde, (opens new window) - Remove deprecated Volt re-export shims from public package entry points. Consumers should import from the replacement subpaths or implementation entry points instead.

Patch Changes

  • Updated dependencies

16.6.7

Patch Changes

  • Updated dependencies

16.6.6

Patch Changes

  • Updated dependencies

16.6.5

Patch Changes

  • Updated dependencies

16.6.4

Patch Changes

  • Updated dependencies

16.6.3

Patch Changes

  • Updated dependencies

16.6.2

Patch Changes

  • 610d564dbc5dd, (opens new window) - Behind platform-dst-top-layer, harden the Popover and Dialog animation lifecycle state machine and completion callbacks, restore focus before controlled Popover closure removes native listeners, and preserve Modal Dialog open-complete callbacks across reopen cycles.
  • Updated dependencies

16.6.1

Patch Changes

16.6.0

Minor Changes

Patch Changes

  • Updated dependencies

16.5.4

Patch Changes

16.5.3

Patch Changes

16.5.2

Patch Changes

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

16.5.1

Patch Changes

16.5.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

16.4.0

Minor Changes

Patch Changes

  • Updated dependencies

16.3.4

Patch Changes

  • Updated dependencies

16.3.3

Patch Changes

  • ccb9237bc10d9, (opens new window) - Add the dismissedBy API to control Dialog dismissal consistently across browsers. Align Dialog with Popover by notifying onClose after native dismissal, ensure both primitives unmount after native dismissal, and simplify Modal close handling behind platform-dst-top-layer.
  • Updated dependencies

16.3.2

Patch Changes

  • Updated dependencies

16.3.1

Patch Changes

  • Updated dependencies

16.3.0

Minor Changes

Patch Changes

  • Updated dependencies

16.2.5

Patch Changes

  • Updated dependencies

16.2.4

Patch Changes

  • Updated dependencies

16.2.3

Patch Changes

16.2.2

Patch Changes

  • Updated dependencies

16.2.1

Patch Changes

  • 25392f10c50ee, (opens new window) - Deprecate shouldCloseOnEscapePress prop. Closing on escape is standard accessible modal behaviour and should not be disabled. Handle the onClose callback conditionally instead.

16.2.0

Minor Changes

Patch Changes

  • Updated dependencies

16.1.8

Patch Changes

  • Updated dependencies

16.1.7

Patch Changes

  • Updated dependencies

16.1.6

Patch Changes

  • Updated dependencies

16.1.5

Patch Changes

  • Updated dependencies

16.1.4

Patch Changes

16.1.3

Patch Changes

16.1.2

Patch Changes

  • Updated dependencies

16.1.1

Patch Changes

  • 820f00bd7db09, (opens new window) - Enable platform-dst-motion-uplift-button by default in constellation examples so button motion is previewed in component demos. Docs/examples-only; no change to shipped component behaviour.

16.1.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

16.0.1

Patch Changes

16.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

15.3.1

Patch Changes

  • Updated dependencies

15.3.0

Minor Changes

Patch Changes

  • Updated dependencies

15.2.8

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

15.2.7

Patch Changes

15.2.6

Patch Changes

  • Updated dependencies

15.2.5

Patch Changes

  • Updated dependencies

15.2.4

Patch Changes

  • Updated dependencies

15.2.3

Patch Changes

  • Updated dependencies

15.2.2

Patch Changes

  • dec4f3444bce8, (opens new window) - Hardens Popup, Popover, and Dialog through stricter typed contracts, focus-management fixes, and clearer entry points.

    • Stricter API contracts. Popup, Popover, and Dialog props are now discriminated unions, so misuse (manual mode with onClose, dialogs without a label, popovers without an accessible name for their role) fails at compile time.
    • Better defaults. Popup's placement prop now defaults to "below trigger, centered, with space.100 gap", removing the awkward placement={{}} boilerplate.
    • Focus-management fixes. Empty/loading dialogs no longer trap Tab on <body>; rapid open/close/open sequences no longer focus a torn-down popover; nested top-layer popovers stay in their own focus scope.
    • Cleaner entry points. createCloseEvent is now available as per-primitive subpaths (@atlaskit/top-layer/dialog/create-close-event and @atlaskit/top-layer/popover/create-close-event); the combined entry point is deprecated. The placement-map entry point now exposes a public LEGACY_PLACEMENTS const for migration consumers.
    • Per-primitive data attributes. Animation hooks now emit data-ds-popover-* for Popover and data-ds-dialog-* for Dialog, preventing cross-primitive selector collisions.
    • Performance and internal correctness. setStyle snapshots and restores prior inline values; CSS-length resolution is memoised and probes inside the popover for correct token scope; placement resolution is stable across renders.
  • Updated dependencies

15.2.1

Patch Changes

  • Updated dependencies

15.2.0

Minor Changes

  • 8e9ab10567283, (opens new window) - When platform-dst-top-layer is enabled, the open layer observer registration now happens inside the Dialog and Popover primitives directly, so popup, modal-dialog, and tooltip no longer register with the open layer observer separately (avoiding double-counting).
    • Dialog registers as type: 'modal', with a no-op onClose, as there is no current use case for programmatic close of modals via the open layer observer.
    • Popover registers as type: 'popup' for interactive overlay roles (dialog, alertdialog, menu, listbox, tree, grid) and omits type for other roles (e.g. tooltip).
    • A new programmatic value has been added to TPopoverCloseReason to distinguish programmatic closes, such as those from the open layer observer's closeLayers() calls.

Patch Changes

  • Updated dependencies

15.1.3

Patch Changes

  • Updated dependencies

15.1.2

Patch Changes

  • Updated dependencies

15.1.1

Patch Changes

15.1.0

Minor Changes

Patch Changes

  • Updated dependencies

15.0.4

Patch Changes

  • Updated dependencies

15.0.3

Patch Changes

15.0.2

Patch 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.
  • Updated dependencies

15.0.1

Patch 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.
  • Updated dependencies

15.0.0

Major Changes

  • babe23b40c154, (opens new window) - Removes the boolean type for the autoFocus prop in the modal dialog. This improves the accessibility of the modal dialog by ensuring focus always moves to the first interactive element, as per the WCAG accessibility guidelines for modal dialogs.

    You can run the included codemod to remove all boolean instances of autoFocus.

Patch Changes

  • Updated dependencies

14.18.3

Patch Changes

14.18.2

Patch Changes

  • Updated dependencies

14.18.1

Patch Changes

14.18.0

Minor Changes

  • d182ea0a08b1f, (opens new window) - Added temporary UNSAFE_shouldDisableMotionUplift prop to override the platform-dst-motion-uplift feature gate and disable the motion uplift

14.17.0

Minor Changes

14.16.0

Minor Changes

14.15.1

Patch Changes

  • Updated dependencies

14.15.0

Minor Changes

Patch Changes

  • Updated dependencies

14.14.6

Patch Changes

  • Updated dependencies

14.14.5

Patch Changes

14.14.4

Patch Changes

14.14.3

Patch Changes

14.14.2

Patch Changes

  • Updated dependencies

14.14.1

Patch Changes

14.14.0

Minor Changes

Patch Changes

  • Updated dependencies

14.13.1

Patch Changes

14.13.0

Minor Changes

  • bbfd308f360d8, (opens new window) - Add flag to remove internal focus lock from running when using false in autoFocus. This is in service of eventually removing boolean autoFocus from the API.

14.12.0

Minor Changes

Patch Changes

  • Updated dependencies

14.11.5

Patch Changes

  • Updated dependencies

14.11.4

Patch Changes

14.11.3

Patch Changes

  • Updated dependencies

14.11.2

Patch Changes

  • Updated dependencies

14.11.1

Patch Changes

  • Updated dependencies

14.11.0

Minor Changes

14.10.5

Patch Changes

14.10.4

Patch Changes

  • Updated dependencies

14.10.3

Patch Changes

  • Updated dependencies

14.10.2

Patch Changes

  • Updated dependencies

14.10.1

Patch Changes

  • Updated dependencies

14.10.0

Minor Changes

  • a6376c3a0cd91, (opens new window) - Modal body now explicitly sets the font style to use typography tokens, instead of relying on the CSS reset to be present. This change is no longer behind a feature flag.

    This change was previously reverted and is being redone.

14.9.5

Patch Changes

14.9.4

Patch Changes

14.9.3

Patch Changes

  • Updated dependencies

14.9.2

Patch Changes

14.9.1

Patch Changes

  • Updated dependencies

14.9.0

Minor Changes

  • 5b72169f84be0, (opens new window) - This change makes the autoFocus prop always true behind a flag. This fixes accessibility issues from misuse of the autoFocus prop. If successful, this will be released for all consumers and the flag will be removed.

14.8.0

Minor Changes

Patch Changes

  • Updated dependencies

14.7.3

Patch Changes

14.7.2

Patch Changes

  • Updated dependencies

14.7.1

Patch Changes

  • Updated dependencies

14.7.0

Minor Changes

  • 05dd9b7db95b7, (opens new window) - Modal dialog now registers with the open layer observer using the useNotifyLayerObserver hook.

    This change was previously behind the feature flag platform-dst-open-layer-observer-layer-type, which has now been removed.

Patch Changes

  • Updated dependencies

14.6.2

Patch Changes

  • Updated dependencies

14.6.1

Patch Changes

  • Updated dependencies

14.6.0

Minor Changes

  • 8a71ce992f8c8, (opens new window) - Modal dialog now registers with the open layer observer using the useNotifyLayerObserver hook. This is behind the platform-dst-open-layer-observer-layer-type feature flag.

Patch Changes

  • Updated dependencies

14.5.3

Patch Changes

  • Updated dependencies

14.5.2

Patch Changes

  • Updated dependencies

14.5.1

Patch Changes

  • Updated dependencies

14.5.0

Minor Changes

14.4.2

Patch Changes

14.4.1

Patch Changes

14.4.0

Minor Changes

  • 76a0ea5849a69, (opens new window) - Increases the specificity on the top inset positioning the Modal Dialog to be !important to reduce the impact of Compiled consumption issues in DC and Ecosystem.

Patch Changes

  • Updated dependencies

14.3.13

Patch Changes

14.3.12

Patch Changes

14.3.11

Patch Changes

  • 71adf38dec5b2, (opens new window) - Increases the specificity of the insetBlockStart whitespace for the Modal Dialog to lessen the impact of Compiled consumption issues in DC and Ecosystem.
  • Updated dependencies

14.3.10

Patch Changes

  • Updated dependencies

14.3.9

Patch Changes

14.3.8

Patch Changes

14.3.7

Patch Changes

14.3.6

Patch Changes

  • Updated dependencies

14.3.5

Patch Changes

  • Updated dependencies

14.3.4

Patch Changes

  • Updated dependencies

14.3.3

Patch Changes

14.3.2

Patch Changes

  • Updated dependencies

14.3.1

Patch Changes

14.3.0

Minor Changes

Patch Changes

  • Updated dependencies

14.2.12

Patch Changes

14.2.11

Patch Changes

  • Updated dependencies

14.2.10

Patch Changes

14.2.9

Patch Changes

  • Updated dependencies

14.2.8

Patch Changes

  • Updated dependencies

14.2.7

Patch Changes

  • Updated dependencies

14.2.6

Patch Changes

  • Updated dependencies

14.2.5

Patch Changes

  • Updated dependencies

14.2.4

Patch Changes

14.2.3

Patch Changes

14.2.2

Patch Changes

14.2.1

Patch Changes

14.2.0

Minor Changes

14.1.4

Patch Changes

  • Updated dependencies

14.1.3

Patch Changes

14.1.2

Patch Changes

14.1.1

Patch Changes

  • Updated dependencies

14.1.0

Minor Changes

Patch Changes

  • Updated dependencies

14.0.4

Patch Changes

14.0.3

Patch Changes

14.0.2

Patch Changes

  • Updated dependencies

14.0.1

Patch Changes

  • Updated dependencies

14.0.0

Major Changes

  • #128593, (opens new window) 19d6172ffdfe9, (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/modal-dialog, 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 understandhow 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

  • Updated dependencies

13.4.0

Minor Changes

13.3.0

Minor Changes

13.2.0

Minor Changes

  • #127054, (opens new window) fb709895d8d5c, (opens new window) - [ux] Adds a new hasCloseButton prop to ModalHeader to add a close button. This uses the exported CloseButton internally.

    This is done to improve the accessibility of all modal dialogs and ensure that users of assistive technology get full context of the modal and so that pointer users have a more clear way to close the modal.

13.1.1

Patch Changes

13.1.0

Minor Changes

13.0.4

Patch Changes

  • Updated dependencies

13.0.3

Patch Changes

  • Updated dependencies

13.0.2

Patch Changes

13.0.1

Patch Changes

  • Updated dependencies

13.0.0

Major Changes

Patch Changes

  • Updated dependencies

12.20.8

Patch Changes

12.20.7

Patch Changes

  • Updated dependencies

12.20.6

Patch Changes

  • Updated dependencies

12.20.5

Patch Changes

12.20.4

Patch Changes

12.20.3

Patch Changes

  • Updated dependencies

12.20.2

Patch Changes

  • Updated dependencies

12.20.1

Patch Changes

  • Updated dependencies

12.20.0

Minor Changes

Patch Changes

  • Updated dependencies

12.19.3

Patch Changes

12.19.2

Patch Changes

12.19.1

Patch Changes

  • Updated dependencies

12.19.0

Minor Changes

12.18.5

Patch Changes

  • Updated dependencies

12.18.4

Patch Changes

12.18.3

Patch Changes

12.18.2

Patch Changes

  • Updated dependencies

12.18.1

Patch Changes

12.18.0

Minor Changes

12.17.14

Patch Changes

  • Updated dependencies

12.17.13

Patch Changes

12.17.12

Patch Changes

12.17.11

Patch Changes

  • Updated dependencies

12.17.10

Patch Changes

12.17.9

Patch Changes

  • Updated dependencies

12.17.8

Patch Changes

  • Updated dependencies

12.17.7

Patch Changes

  • Updated dependencies

12.17.6

Patch Changes

  • Updated dependencies

12.17.5

Patch Changes

12.17.4

Patch Changes

  • Updated dependencies

12.17.3

Patch Changes

12.17.2

Patch Changes

  • Updated dependencies

12.17.1

Patch Changes

  • Updated dependencies

12.17.0

Minor Changes

12.16.0

Minor Changes

12.15.7

Patch Changes

12.15.6

Patch Changes

12.15.5

Patch Changes

12.15.4

Patch Changes

12.15.3

Patch Changes

12.15.2

Patch Changes

12.15.1

Patch Changes

  • Updated dependencies

12.15.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

12.14.10

Patch Changes

  • Updated dependencies

12.14.9

Patch Changes

  • Updated dependencies

12.14.8

Patch Changes

12.14.7

Patch Changes

12.14.6

Patch Changes

12.14.5

Patch Changes

  • Updated dependencies

12.14.4

Patch Changes

  • Updated dependencies

12.14.3

Patch Changes

  • Updated dependencies

12.14.2

Patch Changes

12.14.1

Patch Changes

  • Updated dependencies

12.14.0

Minor Changes

Patch Changes

  • Updated dependencies

12.13.5

Patch Changes

  • Updated dependencies

12.13.4

Patch Changes

12.13.3

Patch Changes

12.13.2

Patch Changes

  • Updated dependencies

12.13.1

Patch Changes

  • Updated dependencies

12.13.0

Minor Changes

Patch Changes

  • Updated dependencies

12.12.0

Minor Changes

12.11.1

Patch Changes

12.11.0

Minor Changes

12.10.10

Patch Changes

12.10.9

Patch Changes

  • Updated dependencies

12.10.8

Patch Changes

  • Updated dependencies

12.10.7

Patch Changes

  • Updated dependencies

12.10.6

Patch Changes

12.10.5

Patch Changes

  • Updated dependencies

12.10.4

Patch Changes

12.10.3

Patch Changes

12.10.2

Patch Changes

12.10.1

Patch Changes

12.10.0

Minor Changes

12.9.1

Patch Changes

12.9.0

Minor Changes

12.8.5

Patch Changes

  • Updated dependencies

12.8.4

Patch Changes

  • Updated dependencies

12.8.3

Patch Changes

12.8.2

Patch Changes

12.8.1

Patch Changes

12.8.0

Minor Changes

  • #39425, (opens new window) f0df9a3b6e7, (opens new window) - [ED-19408] Add new prop to modal shouldReturnFocus - shouldReturnFocus is used to control what happens when the user exits focus lock mode. If true, focus will be returned to the element that had focus before focus lock was activated. If false, focus remains where it was when the FocusLock was deactivated

12.7.1

Patch Changes

12.7.0

Minor Changes

Patch Changes

  • Updated dependencies

12.6.10

Patch Changes

12.6.9

Patch Changes

12.6.8

Patch Changes

12.6.7

Patch Changes

12.6.6

Patch Changes

12.6.5

Patch Changes

12.6.4

Patch Changes

12.6.3

Patch Changes

12.6.2

Patch Changes

12.6.1

Patch Changes

12.6.0

Minor Changes

12.5.7

Patch Changes

12.5.6

Patch Changes

12.5.5

Patch Changes

12.5.4

Patch Changes

12.5.3

Patch Changes

12.5.2

Patch Changes

12.5.1

Patch Changes

12.5.0

Minor Changes

Patch Changes

  • Updated dependencies

12.4.13

Patch Changes

12.4.12

Patch Changes

12.4.11

Patch Changes

12.4.10

Patch Changes

  • Updated dependencies

12.4.9

Patch Changes

12.4.8

Patch Changes

  • Updated dependencies

12.4.7

Patch Changes

12.4.6

Patch Changes

12.4.5

Patch Changes

12.4.4

Patch Changes

  • Updated dependencies

12.4.3

Patch Changes

  • Updated dependencies

12.4.2

Patch Changes

  • Updated dependencies

12.4.1

Patch Changes

12.4.0

Minor Changes

Patch Changes

  • Updated dependencies

12.3.1

Patch Changes

12.3.0

Minor Changes

Patch Changes

  • Updated dependencies

12.2.15

Patch Changes

12.2.14

Patch Changes

12.2.13

Patch Changes

12.2.12

Patch Changes

12.2.11

Patch Changes

12.2.10

Patch Changes

12.2.9

Patch Changes

  • Updated dependencies

12.2.8

Patch Changes

12.2.7

Patch Changes

12.2.6

Patch Changes

  • Updated dependencies

12.2.5

Patch Changes

12.2.4

Patch Changes

  • Updated dependencies

12.2.3

Patch Changes

  • Updated dependencies

12.2.2

Patch Changes

12.2.1

Patch Changes

  • Updated dependencies

12.2.0

Minor Changes

Patch Changes

12.1.1

Patch Changes

12.1.0

Minor Changes

  • #14777, (opens new window) 993eb469fcb, (opens new window) - Instrumented @atlaskit/modal-dialog with the new theming package, @atlaskit/tokens. 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

  • Updated dependencies

12.0.3

Patch Changes

  • Updated dependencies

12.0.2

Patch Changes

  • Updated dependencies

12.0.1

Patch Changes

  • Updated dependencies

12.0.0

Major Changes

  • #13864, (opens new window) 07ad26948a1, (opens new window) - In this version we made modal dialog dramatically faster and lighter with a new composable API. This is a large change and we have provided a codemod to help you upgrade. Once you have run the codemod there may be manual change required so read below for all the changes in this release.

    Running the codemod cli

    To run the codemod: You first need to have the latest version installed

    yarn upgrade @atlaskit/modal-dialog@^12.0.0

    Once upgraded, use @atlaskit/codemod-cli:

    npx @atlaskit/codemod-cli --parser {tsx|babylon} --extensions ts,tsx,js [relativePath]

    The CLI will show a list of components and versions so select @atlaskit/modal-dialog@^12.0.0 and you will automatically be upgraded. If your usage of @atlaskit/modal-dialog cannot be upgraded a comment will be left that a manual change is required.

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

    Visual changes

    The primary button in the footer is now on the right. This has changed from being on the left to match the design documentation, (opens new window).

    The codemod will automatically reverse the order of your actions for this to happen. You could previously achieve this behaviour by adding an appearance key to your actions. The codemod will detect this and not reverse the array in this case.

    Composable API

    The old version of modal dialog had three props that mapped into components.

    • heading was the text for the header.
    • children was the React node that ended up in the modal body.
    • actions was an array of objects that mapped into buttons in the footer.

    The new composable API exposes these components so that you can use them directly as a child of modal dialog. This creates a clear parallel between what is given as children and what the modal dialog renders. It also allows you to use any valid React node as a child of modal dialog.

    // Before import Modal, { ModalTransition } from '@atlaskit/modal-dialog'; ... <ModalTransition> {isOpen && ( <Modal onClose={close} heading="Modal Title" actions={[ { text: 'Secondary Action', onClick: secondaryAction }, { text: 'Close', onClick: close }, ]} > <Lorem count={2} /> </Modal> )} </ModalTransition> // After import Modal, { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition, } from '@atlaskit/modal-dialog'; import Button from '@atlaskit/button/standard-button'; ... <ModalTransition> {isOpen && ( <Modal onClose={close}> <ModalHeader> <ModalTitle>Modal Title</ModalTitle> </ModalHeader> <ModalBody> <Lorem count={2} /> </ModalBody> <ModalFooter> <Button appearance="subtle" onClick={secondaryAction}> Secondary Action </Button> <Button appearance="primary" autoFocus onClick={close}> Close </Button> </ModalFooter> </Modal> )} </ModalTransition>

    Children

    The original children need to be wrapped in a ModalBody.

    // Before <Modal> <Lorem count={2} /> </Modal> // After <Modal> <ModalBody> <Lorem count={2} /> </ModalBody> </Modal>

    Heading

    The heading prop turns into a ModalHeader and ModalTitle.

    // Before <Modal heading="Modal Title"> <Lorem count={2} /> </Modal> // After <Modal> <ModalHeader> <ModalTitle>Modal Title</ModalTitle> </ModalHeader> <ModalBody> <Lorem count={2} /> </ModalBody> </Modal>

    Actions

    The actions prop turns into Button's in a ModalFooter.

    // Before <Modal actions={[ { text: 'Secondary Action', onClick: secondaryAction }, { text: 'Close', onClick: close }, ]} heading="Modal Title" > <Lorem count={2} /> </Modal> // After <Modal> <ModalHeader> <ModalTitle>Modal Title</ModalTitle> </ModalHeader> <ModalBody> <Lorem count={2} /> </ModalBody> <ModalFooter> <Button appearance="subtle" onClick={secondaryAction}> Secondary Action </Button> <Button appearance="primary" autoFocus onClick={close}> Close </Button> </ModalFooter> </Modal>

    Previously in the examples the primary button was on the left, we’ve updated the documentation to match our design documentation so that the primary button is on the right. You could previously achieve this behaviour by adding an appearance key to your actions. The codemod will reverse the order of your actions if you have not set the appearance in the actions.

    Components prop

    The components prop has been entirely replaced with the composable API. The philosophy of creating a custom component that receive modal's props has been replaced with custom components where the user can define their own props.

    Container

    To replace using the Container prop you can wrap Modal's children in the container component. Note that unless you are using a form you will need to add the style all: inherit; to ensure scrolling works.

    // Before <Modal components={{ Container: (props) => ( <form {...props} onSubmit={onSubmit}> {props.children} </form> ), }} > {children} </Modal> // After <Modal> <form onSubmit={onSubmit}> {children} </form> </Modal>

    To replace using the Header prop you can use your custom header as the first child.

    // Before <Modal components={{ Header: CustomHeader, }} > {children} </Modal> // After <Modal> <CustomHeader /> {children} </Modal>

    If you are creating a custom header you should call the new hook useModal to get the title id so the content and the title can be linked. You can also access the onClose function this way.

    import { useModal } from '@atlaskit/modal-dialog'; const CustomHeader = () => { const { onClose, titleId } = useModal(); return ( <div css={headerStyles}> <h1 css={headingStyles} id={titleId}> Custom modal header </h1> <Button onClick={onClose}> Close </Button> </div> ); };

    If you are doing something simple like adding a button you can continue to use ModalHeader.

    <ModalHeader> <ModalTitle>Custom modal header</ModalTitle> <Button appearance="link" onClick={closeModal}> Close </Button> </ModalHeader>

    Similar to Header, if you were using the Footer or Body prop, you can replace ModalFooter and ModalBody with any valid React node. ModalFooter and ModalBody also accept any valid React node as children. useModal works in any of Modal's children if you wish to use it.

    Scroll behaviour

    The scrollBehavior prop has changed from strings 'inside', 'inside-wide' and 'outside' to a boolean shouldScrollInViewport. 'inside' and 'inside-wide' have consolidated to be shouldScrollInViewport={false} and 'outside' is shouldScrollInViewport={true}.

    Appearance

    The appearance prop has been removed from Modal and is now set on ModalTitle and the primary Button.

    // Before <ModalTransition> {isOpen && ( <Modal appearance="danger" onClose={close} heading="Modal Title" actions={[ { text: 'Secondary Action', onClick: secondaryAction }, { text: 'Close', onClick: close }, ]} > <Lorem count={2} /> </Modal> )} </ModalTransition> // After <ModalTransition> {isOpen && ( <Modal onClose={close}> <ModalHeader> <ModalTitle appearance="danger">Modal Title</ModalTitle> </ModalHeader> <ModalBody> <Lorem count={2} /> </ModalBody> <ModalFooter> <Button appearance="subtle" onClick={secondaryAction}> Secondary Action </Button> <Button appearance="danger" autoFocus onClick={close}> Close </Button> </ModalFooter> </Modal> )} </ModalTransition>;

    isChromeless

    The isChromeless is no longer supported as you can any valid React node in Modal and choose not to use ModalHeader, ModalBody and ModalFooter. The only change to this behaviour is that there is no way to turn off the box shadow and border radius, which used to happen when isChromeless={true}. You only need to change your usage if Modal's children set their own background and don’t have a border radius of 3 px. In this case set the border radius to 3px.

    Test IDs

    The mapping for test IDs have changed.

    Modal: {testId} -> {testId}

    Modal content: {testId}-dialog-content -> DOM node removed

    Modal header: {testId}-dialog-content--header -> {testId}--header

    Modal title: {testId}-dialog-content--heading -> {testId}--title

    Modal body: {testId}-dialog-content--body -> {testId}--body

    Modal footer: {testId}-dialog-content--footer -> {testId}--footer

    Scrollable body content: {testId}-dialog-content--scrollable -> {testId}--scrollable

    Blanket: {testId}--blanket -> {testId}--blanket

    Modal actions: {testId}-dialog-content--action-{index} -> Removed, can set on Button

    Miscallaneous changes

    • ModalFooter now uses flex-end instead of space-between to justify its contents.
    • Inner components ModalFooter, ModalHeader and ModalBody no longer accepts style prop. If you wish to modify the styles, you have to build your own component.
    • ContainerComponentProps and ScrollBehavior types are now removed with no replacements.
    • (Header|Body|Footer|Title)ComponentProps types are now aliased to Modal(Header|Body|Footer|Title)Props, however most props are not used anymore as state is shared via the useModal hook.

Patch Changes

  • 1efbaebfbf3, (opens new window) - Fixes a bug in the appearance of the modal focus state which is now consistent with other elements in the Design System.
  • Updated dependencies

11.7.4

Patch Changes

11.7.3

Patch Changes

  • #12837, (opens new window) f75544b8b57, (opens new window) - [ux] As a part of DSP-895, a 0px margin was applied to button to fix a regression in Safari. This has been reverted as the 0px margin will be moved to css-reset instead. As a part of that same ticket, the specificity of the footer buttons in modal dialog was updated. This has also been reverted now that the 0px margin is being moved to css-reset.
  • Updated dependencies

11.7.2

Patch Changes

11.7.1

Patch Changes

  • Updated dependencies

11.7.0

Minor Changes

Patch Changes

11.6.3

Patch Changes

11.6.2

Patch Changes

11.6.1

Patch Changes

11.6.0

Minor Changes

Patch Changes

  • Updated dependencies

11.5.0

Minor Changes

Patch Changes

11.4.1

Patch Changes

  • Updated dependencies

11.4.0

Minor Changes

Patch Changes

11.3.0

Minor Changes

Patch Changes

11.2.9

Patch Changes

11.2.8

Patch Changes

11.2.7

Patch Changes

11.2.6

Patch Changes

11.2.5

Patch Changes

11.2.4

Patch Changes

11.2.3

Patch Changes

11.2.2

Patch Changes

  • Updated dependencies

11.2.1

Patch Changes

11.2.0

Minor Changes

Patch Changes

11.1.6

Patch Changes

11.1.5

Patch Changes

11.1.4

Patch Changes

11.1.3

Patch Changes

11.1.2

Patch Changes

11.1.1

Patch Changes

11.1.0

Minor Changes

  • #3954, (opens new window) 727776fa32, (opens new window) - Missing types for component overrides are now exposed - you can access them through the root entrypoint.

    import { BodyComponentProps, TitleComponentProps, ContainerComponentProps, FooterComponentProps, HeaderComponentProps, ScrollBehavior, } from '@atlaskit/modal-dialog';

11.0.3

Patch Changes

11.0.2

Patch Changes

11.0.1

Patch Changes

11.0.0

Major Changes

Patch Changes

  • Updated dependencies

10.6.4

Patch Changes

10.6.3

Patch Changes

10.6.2

Patch Changes

10.6.1

Patch Changes

10.6.0

Minor Changes

Patch Changes

10.5.9

Patch Changes

  • Updated dependencies

10.5.8

Patch Changes

10.5.7

Patch Changes

10.5.6

Patch Changes

10.5.5

Patch Changes

10.5.4

Patch Changes

10.5.3

Patch Changes

  • Updated dependencies e3f01787dd, (opens new window):
    • @atlaskit/webdriver-runner@0.2.0
    • @atlaskit/avatar@17.1.8
    • @atlaskit/button@13.3.8
    • @atlaskit/checkbox@10.1.9
    • @atlaskit/form@7.1.4
    • @atlaskit/inline-dialog@12.1.10
    • @atlaskit/select@11.0.8
    • @atlaskit/textfield@3.1.8

10.5.2

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/avatar@17.1.7
    • @atlaskit/blanket@10.0.17
    • @atlaskit/button@13.3.7
    • @atlaskit/checkbox@10.1.7
    • @atlaskit/field-radio-group@7.0.1
    • @atlaskit/form@7.1.2
    • @atlaskit/icon@20.0.1
    • @atlaskit/inline-dialog@12.1.9
    • @atlaskit/portal@3.1.6
    • @atlaskit/select@11.0.7
    • @atlaskit/textfield@3.1.6
    • @atlaskit/theme@9.5.1

10.5.1

Patch Changes

  • Updated dependencies c0102a3ea2, (opens new window):
  • Updated dependencies b9dc265bc9, (opens new window):
    • @atlaskit/field-radio-group@7.0.0
    • @atlaskit/icon@20.0.0
    • @atlaskit/avatar@17.1.6
    • @atlaskit/form@7.1.1
    • @atlaskit/docs@8.3.1
    • @atlaskit/button@13.3.6
    • @atlaskit/checkbox@10.1.6
    • @atlaskit/inline-dialog@12.1.8
    • @atlaskit/portal@3.1.5
    • @atlaskit/select@11.0.6
    • @atlaskit/textfield@3.1.5

10.5.0

Minor Changes

Patch Changes

10.4.0

Minor Changes

10.3.6

10.3.5

Patch Changes

10.3.4

Patch Changes

10.3.3

Patch Changes

10.3.2

Patch Changes

10.3.1

  • Updated dependencies 97bab7fd28, (opens new window):
    • @atlaskit/button@13.3.1
    • @atlaskit/form@6.2.3
    • @atlaskit/select@10.1.1
    • @atlaskit/checkbox@10.0.0
    • @atlaskit/docs@8.1.7

10.3.0

Minor Changes

  • [minor]66e147e6a1, (opens new window):

    Adding an optional prop testId that will set the attribute value data-testid. It will help products to write better integration and end to end tests.

10.2.1

10.2.0

Minor Changes

10.1.9

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.1.8

Patch Changes

10.1.7

Patch Changes

10.1.6

Patch Changes

10.1.5

Patch Changes

10.1.4

Patch Changes

10.1.3

Patch Changes

  • [patch]926b43142b, (opens new window):

    Analytics-next has been converted to Typescript. Typescript consumers will now get static type safety. Flow types are no longer provided. No behavioural changes.

    Breaking changes

    • withAnalyticsForSumTypeProps alias has been removed, please use withAnalyticsEvents
    • AnalyticsContextWrappedComp alias has been removed, please use withAnalyticsContext

    Breaking changes to TypeScript annotations

    • withAnalyticsEvents now infers proptypes automatically, consumers no longer need to provide props as a generic type.
    • withAnalyticsContext now infers proptypes automatically, consumers no longer need to provide props as a generic type.
    • Type WithAnalyticsEventProps has been renamed to WithAnalyticsEventsProps to match source code
    • Type CreateUIAnalyticsEventSignature has been renamed to CreateUIAnalyticsEvent to match source code
    • Type UIAnalyticsEventHandlerSignature has been renamed to UIAnalyticsEventHandler to match source code
    • Type AnalyticsEventsPayload has been renamed to AnalyticsEventPayload
    • Type ObjectType has been removed, please use Record<string, any> or [key: string]: any
    • Type UIAnalyticsEventInterface has been removed, please use UIAnalyticsEvent
    • Type AnalyticsEventInterface has been removed, please use AnalyticsEvent
    • Type CreateAndFireEventFunction removed and should now be inferred by TypeScript
    • Type AnalyticsEventUpdater removed and should now be inferred by TypeScript

10.1.2

10.1.1

Patch Changes

10.1.0

Minor Changes

10.0.14

Patch Changes

10.0.13

Patch Changes

10.0.12

Patch Changes

10.0.11

Patch Changes

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

    TypeScript users of withAnalyticsEvents and withAnalyticsContext are now required to provide props as a generic type. This is so that TypeScript can correctly calculate the props and defaultProps of the returned component.

    Before:

    withAnalyticsEvents()(Button) as ComponentClass<Props>;

    After:

    withAnalyticsEvents<Props>()(Button);

10.0.10

10.0.9

Patch Changes

10.0.8

10.0.7

  • Updated dependencies 06326ef3f7, (opens new window):
    • @atlaskit/docs@8.1.3
    • @atlaskit/avatar@16.0.6
    • @atlaskit/button@13.0.9
    • @atlaskit/checkbox@8.0.5
    • @atlaskit/field-radio-group@6.0.4
    • @atlaskit/form@6.1.1
    • @atlaskit/inline-dialog@12.0.3
    • @atlaskit/portal@3.0.7
    • @atlaskit/select@9.1.8
    • @atlaskit/textfield@2.0.3
    • @atlaskit/icon@19.0.0

10.0.6

Patch Changes

10.0.5

Patch Changes

  • [patch]02f1f73671, (opens new window):

    heading prop type changed from string to React.ReactNode. This provides more flexibility for consumers to provide i18n components like FormattedMessage.

10.0.4

  • Updated dependencies cfc3c8adb3, (opens new window):
    • @atlaskit/docs@8.1.2
    • @atlaskit/avatar@16.0.3
    • @atlaskit/button@13.0.8
    • @atlaskit/checkbox@8.0.2
    • @atlaskit/field-radio-group@6.0.2
    • @atlaskit/form@6.0.5
    • @atlaskit/inline-dialog@12.0.1
    • @atlaskit/portal@3.0.3
    • @atlaskit/select@9.1.5
    • @atlaskit/textfield@2.0.1
    • @atlaskit/icon@18.0.0

10.0.3

10.0.2

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

10.0.1

  • [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

10.0.0

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.0.9

8.0.8

8.0.7

  • Updated dependencies 9c0b4744be, (opens new window):
    • @atlaskit/docs@7.0.3
    • @atlaskit/avatar@15.0.4
    • @atlaskit/blanket@8.0.3
    • @atlaskit/button@12.0.3
    • @atlaskit/checkbox@6.0.4
    • @atlaskit/field-radio-group@5.0.3
    • @atlaskit/field-text@8.0.3
    • @atlaskit/form@5.2.7
    • @atlaskit/icon@16.0.9
    • @atlaskit/inline-dialog@10.0.4
    • @atlaskit/select@8.1.1
    • @atlaskit/textfield@0.4.4
    • @atlaskit/theme@8.1.7

8.0.6

  • Updated dependencies 1e826b2966, (opens new window):
    • @atlaskit/docs@7.0.2
    • @atlaskit/analytics-next@4.0.3
    • @atlaskit/avatar@15.0.3
    • @atlaskit/blanket@8.0.2
    • @atlaskit/checkbox@6.0.3
    • @atlaskit/field-radio-group@5.0.2
    • @atlaskit/field-text@8.0.2
    • @atlaskit/form@5.2.5
    • @atlaskit/icon@16.0.8
    • @atlaskit/inline-dialog@10.0.3
    • @atlaskit/portal@0.3.1
    • @atlaskit/select@8.0.5
    • @atlaskit/textfield@0.4.3
    • @atlaskit/theme@8.1.6
    • @atlaskit/button@12.0.0

8.0.5

8.0.4

8.0.3

8.0.2

  • Updated dependencies 9d5cc39394, (opens new window):
    • @atlaskit/docs@7.0.1
    • @atlaskit/analytics-next@4.0.1
    • @atlaskit/avatar@15.0.1
    • @atlaskit/blanket@8.0.1
    • @atlaskit/checkbox@6.0.1
    • @atlaskit/field-radio-group@5.0.1
    • @atlaskit/field-text@8.0.1
    • @atlaskit/form@5.2.1
    • @atlaskit/icon@16.0.5
    • @atlaskit/inline-dialog@10.0.1
    • @atlaskit/portal@0.2.1
    • @atlaskit/select@8.0.3
    • @atlaskit/textfield@0.3.1
    • @atlaskit/theme@8.0.1
    • @atlaskit/button@11.0.0

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.3.0

7.2.4

7.2.3

7.2.2

7.2.1

  • Updated dependencies d7ef59d432, (opens new window):
    • @atlaskit/docs@6.0.1
    • @atlaskit/avatar@14.1.8
    • @atlaskit/button@10.1.2
    • @atlaskit/checkbox@5.0.11
    • @atlaskit/field-radio-group@4.0.15
    • @atlaskit/form@5.1.2
    • @atlaskit/inline-dialog@9.0.14
    • @atlaskit/portal@0.0.18
    • @atlaskit/select@6.1.19
    • @atlaskit/icon@16.0.0

7.2.0

  • [minor]07c4cd1, (opens new window):
    • Feature: components prop now has an optional container entry that is wrapped around the header, body and footer. This provides compatibility for forms with fields in the body, and submit buttons in the footer
    • API changes:
      • The header, body and footer props have been deprecated; such custom components should be passed within the components prop instead.
      • Custom Body components passed in using the new method must contain a ref element; this can be done using forwardRef, as seen in the custom example.
    • Documentation: Examples have been updated to demonstrate the new container prop, as well as utilise the new composition method for custom header/body/footers.

7.1.2

7.1.1

  • Updated dependencies 58b84fa, (opens new window):
    • @atlaskit/analytics-next@3.1.2
    • @atlaskit/avatar@14.1.7
    • @atlaskit/blanket@7.0.12
    • @atlaskit/button@10.1.1
    • @atlaskit/checkbox@5.0.9
    • @atlaskit/field-radio-group@4.0.14
    • @atlaskit/field-text@7.0.18
    • @atlaskit/icon@15.0.2
    • @atlaskit/inline-dialog@9.0.13
    • @atlaskit/portal@0.0.17
    • @atlaskit/select@6.1.13
    • @atlaskit/theme@7.0.1
    • @atlaskit/docs@6.0.0

7.1.0

7.0.14

  • Updated dependencies d13242d, (opens new window):
    • @atlaskit/docs@5.2.3
    • @atlaskit/blanket@7.0.11
    • @atlaskit/button@10.0.4
    • @atlaskit/checkbox@5.0.8
    • @atlaskit/field-radio-group@4.0.13
    • @atlaskit/field-text@7.0.16
    • @atlaskit/icon@15.0.1
    • @atlaskit/inline-dialog@9.0.12
    • @atlaskit/theme@7.0.0
    • @atlaskit/avatar@14.1.6

7.0.13

  • Updated dependencies ab9b69c, (opens new window):
    • @atlaskit/docs@5.2.2
    • @atlaskit/avatar@14.1.5
    • @atlaskit/button@10.0.1
    • @atlaskit/checkbox@5.0.7
    • @atlaskit/field-radio-group@4.0.12
    • @atlaskit/inline-dialog@9.0.11
    • @atlaskit/portal@0.0.16
    • @atlaskit/icon@15.0.0

7.0.12

  • Updated dependencies 6998f11, (opens new window):
    • @atlaskit/docs@5.2.1
    • @atlaskit/analytics-next@3.1.1
    • @atlaskit/avatar@14.1.4
    • @atlaskit/blanket@7.0.10
    • @atlaskit/checkbox@5.0.6
    • @atlaskit/field-radio-group@4.0.11
    • @atlaskit/field-text@7.0.15
    • @atlaskit/icon@14.6.1
    • @atlaskit/inline-dialog@9.0.10
    • @atlaskit/portal@0.0.15
    • @atlaskit/theme@6.2.1
    • @atlaskit/button@10.0.0

7.0.11

7.0.10

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

    • Removes dependency on @atlaskit/layer-manager

    As of component versions:

    • `@atlaskit/modal-dialog@7.0.0`
    • `@atlaskit/tooltip@12.0.2`
    • `@atlaskit/flag@9.0.6`
    • `@atlaskit/onboarding@6.0.0`

    No component requires `LayerManager` to layer correctly.

    You can safely remove this dependency and stop rendering `LayerManager` in your apps.

7.0.9

7.0.8

7.0.7

  • [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

7.0.6

7.0.5

7.0.4

7.0.3

7.0.2

  • [patch] Updated dependencies 65c6514, (opens new window)
    • @atlaskit/docs@5.0.8
    • @atlaskit/avatar@14.0.11
    • @atlaskit/button@9.0.13
    • @atlaskit/checkbox@5.0.2
    • @atlaskit/field-radio-group@4.0.8
    • @atlaskit/inline-dialog@9.0.6
    • @atlaskit/layer-manager@5.0.13
    • @atlaskit/portal@0.0.10
    • @atlaskit/icon@14.0.0

7.0.1

7.0.0

6.0.12

6.0.11

6.0.9

  • [patch] Updated dependencies df22ad8, (opens new window)
    • @atlaskit/theme@6.0.0
    • @atlaskit/layer-manager@5.0.6
    • @atlaskit/inline-dialog@9.0.2
    • @atlaskit/icon@13.2.5
    • @atlaskit/field-text@7.0.6
    • @atlaskit/field-radio-group@4.0.5
    • @atlaskit/checkbox@4.0.4
    • @atlaskit/button@9.0.6
    • @atlaskit/blanket@7.0.5
    • @atlaskit/avatar@14.0.8
    • @atlaskit/docs@5.0.6

6.0.8

6.0.7

6.0.6

6.0.5

  • [patch] Updated dependencies acd86a1, (opens new window)
    • @atlaskit/inline-dialog@8.0.3
    • @atlaskit/layer-manager@5.0.4
    • @atlaskit/icon@13.2.2
    • @atlaskit/field-radio-group@4.0.3
    • @atlaskit/checkbox@4.0.2
    • @atlaskit/button@9.0.4
    • @atlaskit/theme@5.1.2
    • @atlaskit/field-text@7.0.3
    • @atlaskit/blanket@7.0.3
    • @atlaskit/analytics-next@3.0.3
    • @atlaskit/docs@5.0.2
    • @atlaskit/avatar@14.0.5

6.0.4

  • [patch] Add a SSR test for every package, add react-dom and build-utils in devDependencies 7e331b5, (opens new window)
  • [none] Updated dependencies 7e331b5, (opens new window)
    • @atlaskit/inline-dialog@8.0.2
    • @atlaskit/field-text@7.0.2
    • @atlaskit/analytics-next@3.0.2
    • @atlaskit/checkbox@4.0.1
    • @atlaskit/button@9.0.3
    • @atlaskit/theme@5.1.1
    • @atlaskit/blanket@7.0.2
    • @atlaskit/field-radio-group@4.0.2
    • @atlaskit/layer-manager@5.0.3
    • @atlaskit/icon@13.2.1
    • @atlaskit/avatar@14.0.4

6.0.3

6.0.2

6.0.1

  • [patch] Move analytics tests and replace elements to core 49d4ab4, (opens new window)
  • [none] Updated dependencies 49d4ab4, (opens new window)
    • @atlaskit/inline-dialog@8.0.1
    • @atlaskit/field-text@7.0.1
    • @atlaskit/analytics-next@3.0.1
    • @atlaskit/button@9.0.2
    • @atlaskit/docs@5.0.1
    • @atlaskit/blanket@7.0.1
    • @atlaskit/field-radio-group@4.0.1
    • @atlaskit/avatar@14.0.2

6.0.0

5.2.8

5.2.7

5.2.6

5.2.5

5.2.4

5.2.3

5.2.2

  • [patch] Clean Changelogs - remove duplicates and empty entries e7756cd, (opens new window)
  • [none] Updated dependencies e7756cd, (opens new window)
    • @atlaskit/inline-dialog@7.1.2
    • @atlaskit/field-text@6.0.4
    • @atlaskit/button@8.1.2
    • @atlaskit/theme@4.0.4
    • @atlaskit/checkbox@3.0.6
    • @atlaskit/field-radio-group@3.0.4
    • @atlaskit/layer-manager@4.2.1
    • @atlaskit/icon@12.1.2

5.2.1

5.2.0

5.1.1

  • [patch] Update changelogs to remove duplicate cc58e17, (opens new window)
  • [none] Updated dependencies cc58e17, (opens new window)
    • @atlaskit/theme@4.0.3
    • @atlaskit/layer-manager@4.1.1
    • @atlaskit/inline-dialog@7.1.1
    • @atlaskit/icon@12.1.1
    • @atlaskit/field-radio-group@3.0.3
    • @atlaskit/checkbox@3.0.5
    • @atlaskit/button@8.1.1
    • @atlaskit/blanket@6.0.3
    • @atlaskit/avatar@11.1.1
    • @atlaskit/docs@4.1.1

5.1.0

  • [none] Updated dependencies 9d20f54, (opens new window)
    • @atlaskit/inline-dialog@7.1.0
    • @atlaskit/layer-manager@4.1.0
    • @atlaskit/avatar@11.1.0
    • @atlaskit/icon@12.1.0
    • @atlaskit/field-radio-group@3.0.2
    • @atlaskit/checkbox@3.0.4
    • @atlaskit/docs@4.1.0
    • @atlaskit/theme@4.0.2
    • @atlaskit/field-text@6.0.2
    • @atlaskit/blanket@6.0.2
    • @atlaskit/button@8.1.0

5.0.1

  • [patch] Update readme's 223cd67, (opens new window)
  • [patch] Updated dependencies 223cd67, (opens new window)
    • @atlaskit/layer-manager@4.0.1
    • @atlaskit/icon@12.0.1
    • @atlaskit/inline-dialog@7.0.1
    • @atlaskit/field-radio-group@3.0.1
    • @atlaskit/field-text@6.0.1
    • @atlaskit/checkbox@3.0.1
    • @atlaskit/button@8.0.1
    • @atlaskit/theme@4.0.1
    • @atlaskit/blanket@6.0.1
    • @atlaskit/docs@4.0.1
    • @atlaskit/avatar@11.0.1

5.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/layer-manager@4.0.0
    • @atlaskit/icon@12.0.0
    • @atlaskit/inline-dialog@7.0.0
    • @atlaskit/field-radio-group@3.0.0
    • @atlaskit/field-text@6.0.0
    • @atlaskit/checkbox@3.0.0
    • @atlaskit/button@8.0.0
    • @atlaskit/theme@4.0.0
    • @atlaskit/blanket@6.0.0
    • @atlaskit/docs@4.0.0
    • @atlaskit/avatar@11.0.0

4.0.5

  • [patch] Updated dependencies d662caa, (opens new window)
    • @atlaskit/icon@11.3.0
    • @atlaskit/layer-manager@3.0.4
    • @atlaskit/inline-dialog@6.0.2
    • @atlaskit/field-radio-group@2.0.3
    • @atlaskit/field-text@5.0.3
    • @atlaskit/checkbox@2.0.2
    • @atlaskit/button@7.2.5
    • @atlaskit/theme@3.2.2
    • @atlaskit/blanket@5.0.2
    • @atlaskit/avatar@10.0.6
    • @atlaskit/docs@3.0.4

4.0.2

4.0.1

4.0.0

3.5.1

3.5.0

  • [minor] Updated website to use iframe to load examples. Example loader now in a separate react app. Webpack config refactored to compile separate example loader, chunking refactored to be more performant with the new website changes. Updated modal-dialog to use new component structure to optionally specify a Body wrapping component. e1fdfd8, (opens new window)

3.4.0

3.3.15

3.3.14

3.3.12

3.3.11

3.3.9

  • [patch] Updated inline-dialog to include boundaries element prop, updated Layer to have dynamic boolean escapeWithReference property, updated modal-dialog Content component with overflow-x:hidden' cb72752, (opens new window)

3.3.8

3.3.5

3.3.4

3.3.3

3.3.2

3.3.1

3.3.0

3.2.5

3.2.4 (2017-11-30)

3.2.3 (2017-11-30)

3.2.2 (2017-11-17)

3.2.1 (2017-11-13)

3.2.0 (2017-10-26)

3.1.3 (2017-10-26)

3.1.2 (2017-10-22)

3.1.1 (2017-10-12)

3.1.0 (2017-10-11)

3.0.2 (2017-10-05)

3.0.1 (2017-09-26)

3.0.0 (2017-09-13)

2.6.0 (2017-08-07)

  • feature; Added support for custom modal heights, with the new ModalDialog.height prop. It accepts a number (converted to px) or string (not converted to px, so you can use any unit you like such as %, vh, etc). (issues closed: ak-1723) (3c1f537, (opens new window))

2.5.2 (2017-07-27)

2.5.1 (2017-07-25)

2.2.0 (2017-07-17)

2.2.0 (2017-07-17)

2.1.2 (2017-06-15)

2.1.1 (2017-05-26)

2.1.0 (2017-05-06)

2.0.0 (2017-05-05)

  • switch modal styling to styled-components (f9510b4, (opens new window))
  • breaking; Modal dialog now has a peerDependency on the styled-components package.
  • ISSUES CLOSED: AK-2290

1.3.3 (2017-05-03)

1.3.2 (2017-04-27)

1.3.1 (2017-04-26)

1.3.0 (2017-04-20)

1.2.15 (2017-03-31)

1.2.14 (2017-03-29)

1.2.13 (2017-03-29)

1.2.10 (2017-03-21)

1.2.9 (2017-02-28)

1.2.7 (2017-02-28)

1.2.7 (2017-02-28)

1.2.6 (2017-02-28)

1.2.5 (2017-02-27)

1.2.4 (2017-02-13)

1.2.3 (2017-02-08)

1.2.2 (2017-02-07)

1.2.1 (2017-02-06)

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