Spotlight
A spotlight introduces users to points of interest, from focused messages to multi-step tours.4.2.6
Patch Changes
- Updated dependencies
4.2.5
Patch Changes
a7ec100f7d560, (opens new window) - The top-layer code path now uses@atlaskit/top-layer'suseAnchoredPopover, 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 theplatform-dst-top-layergate (platform-dst-top-layer-tooltipfor@atlaskit/tooltip,platform-dst-top-layer-spotlightfor@atlaskit/spotlight); legacy (flag-off) behaviour is unchanged.- Updated dependencies
4.2.4
Patch Changes
724fabad010d6, (opens new window) - Cleaned up new shape theme styles, making new border and radius values the default.- Updated dependencies
4.2.3
Patch Changes
bcfe498b206d5, (opens new window) - Adopt button and list-item motion tokens behind the use-pressable-motion rollout.
4.2.2
Patch Changes
44a80d90ea61d, (opens new window) - Migrate Pressable hover and pressed colour transitions to semantic motion tokens behind platform-dst-motion-uplift-custom-button.
4.2.1
Patch Changes
- Use
@atlassian/testing-libraryexclusively in unit tests. - Updated dependencies
4.2.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.jsonexportssubpaths 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
4.1.0
Minor Changes
0075efb228821, (opens new window) - Autofix: barrel removal (imports + exports)005037db2dcaa, (opens new window) - Autofix: update cross-package imports away from barrel entries
Patch Changes
- Updated dependencies
4.0.1
Patch Changes
- Updated dependencies
4.0.0
Major Changes
-
f6328151ae86c, (opens new window) - Apply Volt entry-point and multi-export standards viavolt-migrate-package. This is a major change to@atlaskit/spotlight: the packageexportsmap has been restructured so every public subpath now resolves directly to its./src/*implementation instead of going through an intermediate./src/entry-points/*re-export. No public subpaths were removed.Why this is breaking
Because each subpath now points straight at its implementation module, a subpath and the package root can resolve to the same module instance. Consumers that deep-import the internal
entry-points/*files, or thatjest.mock()a specific subpath, may observe changed resolution/behaviour and need updating.Migration — public imports are unchanged
Importing the published subpaths continues to work as before:
// Still valid — no change required import { SpotlightCard } from '@atlaskit/spotlight/card';If you were reaching into the internal entry-point modules, switch to the public subpath:
-import { SpotlightCard } from '@atlaskit/spotlight/entry-points/card'; +import { SpotlightCard } from '@atlaskit/spotlight/card';Before / after
exportsmap"exports": { - "./actions": "./src/entry-points/actions.tsx", + "./actions": "./src/ui/actions/index.tsx", - "./body": "./src/entry-points/body.tsx", + "./body": "./src/ui/body/index.tsx", - "./card": "./src/entry-points/card.tsx", + "./card": "./src/ui/card/index.tsx", - "./controls": "./src/entry-points/controls.tsx", + "./controls": "./src/ui/controls/index.tsx", - "./dismiss-control": "./src/entry-points/dismiss-control.tsx", + "./dismiss-control": "./src/ui/dismiss-control/index.tsx", - "./footer": "./src/entry-points/footer.tsx", + "./footer": "./src/ui/footer/index.tsx", - "./header": "./src/entry-points/header.tsx", + "./header": "./src/ui/header/index.tsx", - "./headline": "./src/entry-points/headline.tsx", + "./headline": "./src/ui/headline/index.tsx", - "./media": "./src/entry-points/media.tsx", + "./media": "./src/ui/media/index.tsx", - "./popover-content": "./src/entry-points/popover-content.tsx", + "./popover-content": "./src/ui/popover-content/index.tsx", - "./popover-provider": "./src/entry-points/popover-provider.tsx", + "./popover-provider": "./src/ui/popover-provider/index.tsx", - "./popover-target": "./src/entry-points/popover-target.tsx", + "./popover-target": "./src/ui/popover-target/index.tsx", - "./primary-action": "./src/entry-points/primary-action.tsx", + "./primary-action": "./src/ui/primary-action/index.tsx", - "./primary-link": "./src/entry-points/primary-link.tsx", + "./primary-link": "./src/ui/primary-link/index.tsx", - "./secondary-action": "./src/entry-points/secondary-action.tsx", + "./secondary-action": "./src/ui/secondary-action/index.tsx", - "./secondary-link": "./src/entry-points/secondary-link.tsx", + "./secondary-link": "./src/ui/secondary-link/index.tsx", - "./show-more-control": "./src/entry-points/show-more-control.tsx", + "./show-more-control": "./src/ui/show-more-control/index.tsx", - "./spotlight-context-provider": "./src/entry-points/spotlight-context-provider.tsx", + "./spotlight-context-provider": "./src/controllers/context.tsx", - "./step-count": "./src/entry-points/step-count.tsx", + "./step-count": "./src/ui/step-count/index.tsx", - "./types": "./src/entry-points/types.tsx", + "./types": "./src/types.tsx", - "./update-on-change": "./src/entry-points/update-on-change.tsx", + "./update-on-change": "./src/ui/UNSAFE_update-on-change/index.tsx", - "./use-preload-media": "./src/entry-points/use-preload-media.tsx", + "./use-preload-media": "./src/utils/use-preload-media/index.tsx", }Because each subpath now exposes its whole implementation module, some subpaths expose additional symbols that the old shims filtered out — for example
SpotlightContextfrom./spotlight-context-provider, andPositionAreafrom./types.
Patch Changes
- Updated dependencies
3.0.11
Patch Changes
d2e8200fe66f3, (opens new window) - Experimental React 19 peer dependency support. This patch widens the peer range; CI coverage is partial.
3.0.10
Patch Changes
- Updated dependencies
3.0.9
Patch Changes
- Updated dependencies
3.0.8
Patch Changes
- Updated dependencies
3.0.7
Patch Changes
- Updated dependencies
3.0.6
Patch Changes
- Updated dependencies
3.0.5
Patch Changes
- Updated dependencies
3.0.4
Patch Changes
86ab2b717de75, (opens new window) - Handle browsers that exposecomputedStyleMapbut throw when readingposition-areaby falling back togetComputedStyle.
3.0.3
Patch Changes
- Updated dependencies
3.0.2
Patch Changes
- Updated dependencies
3.0.1
Patch Changes
- Updated dependencies
3.0.0
Major Changes
-
f2ec2ee8b495e, (opens new window) - ## Breaking change: barrel file (root entry point) removed from@atlaskit/spotlightThe main entry point (
@atlaskit/spotlight) has been removed. Every named export now lives in its own dedicated sub-path entry-point to reduce bundle size, improve build times, and minimise the package's overall footprint.Why we're doing this
Large barrel files (a single
indexthat re-exports everything) force bundlers to load the entire package even when only a small subset is used. By splitting exports into individual entry-points, consumers can import only what they need, leading to:- Faster build and typecheck times
- Smaller production bundles
- Clearer dependency boundaries
What's changed
Previously you could import anything from the root:
import { SpotlightCard, SpotlightHeader, PopoverContent, usePreloadMedia, type Placement, } from '@atlaskit/spotlight';The root entry point no longer exists — every export must now be imported from its own entry-point:
import { SpotlightCard } from '@atlaskit/spotlight/card'; import { SpotlightHeader } from '@atlaskit/spotlight/header'; import { PopoverContent } from '@atlaskit/spotlight/popover-content'; import { usePreloadMedia } from '@atlaskit/spotlight/use-preload-media'; import type { Placement } from '@atlaskit/spotlight/types';Full entry-point reference
Export(s) New import path SpotlightCard,SpotlightCardProps@atlaskit/spotlight/cardSpotlightBody,SpotlightBodyProps@atlaskit/spotlight/bodySpotlightHeader,SpotlightHeaderProps@atlaskit/spotlight/headerSpotlightHeadline,SpotlightHeadlineProps@atlaskit/spotlight/headlineSpotlightFooter,SpotlightFooterProps@atlaskit/spotlight/footerSpotlightActions,SpotlightActionsProps@atlaskit/spotlight/actionsSpotlightStepCount,SpotlightStepCountProps@atlaskit/spotlight/step-countSpotlightPrimaryAction,SpotlightPrimaryActionProps@atlaskit/spotlight/primary-actionSpotlightPrimaryLink,SpotlightPrimaryLinkProps@atlaskit/spotlight/primary-linkSpotlightSecondaryAction,SpotlightSecondaryActionProps@atlaskit/spotlight/secondary-actionSpotlightSecondaryLink,SpotlightSecondaryLinkProps@atlaskit/spotlight/secondary-linkSpotlightControls,SpotlightControlsProps@atlaskit/spotlight/controlsSpotlightDismissControl,SpotlightDismissControlProps@atlaskit/spotlight/dismiss-controlSpotlightShowMoreControl,SpotlightShowMoreControlProps@atlaskit/spotlight/show-more-controlSpotlightMedia,SpotlightMediaProps@atlaskit/spotlight/mediaPopoverProvider@atlaskit/spotlight/popover-providerPopoverContent,PopoverContentProps@atlaskit/spotlight/popover-contentPopoverTarget@atlaskit/spotlight/popover-targetUNSAFE_UpdateOnChange@atlaskit/spotlight/update-on-changeusePreloadMedia@atlaskit/spotlight/use-preload-mediaPlacement,DismissEvent@atlaskit/spotlight/typesAutomated migration with codemod
A codemod ships with this package to automatically update your imports. Run it with
@atlaskit/codemod-cli, passing the version you are upgrading from:npx @atlaskit/codemod-cli --packages @atlaskit/spotlight@2.1.1 <path-to-your-source>For example, to migrate all files in your
src/directory:npx @atlaskit/codemod-cli --packages @atlaskit/spotlight@2.1.1 ./srcThe codemod will:
- Split every
@atlaskit/spotlightimport out to its appropriate entry-point - Preserve type-only imports (
import type) and per-specifier type modifiers - Preserve import aliases (e.g.
import { SpotlightCard as Card }) - Group multiple imports that share the same entry-point into a single declaration
Patch Changes
- Updated dependencies
2.1.2
Patch Changes
- Updated dependencies
2.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.
2.1.0
Minor Changes
-
cd097a2111788, (opens new window) - Republish packages depending on@atlaskit/react-compiler-gatingso their published dependency reference is updated to the renamed@atlaskit/react-compiler-gatingscope.The earlier rename of
@atlassian/react-compiler-gatingto@atlaskit/react-compiler-gatingonly bumped the renamed package itself, so dependent packages were never republished and their published versions still referenced the old@atlassian/react-compiler-gatingname, which is not available in the public npm registry. This minor bump republishes all affected packages with the corrected dependency.
Patch Changes
- Updated dependencies
2.0.0
Major Changes
33235dd71a9df, (opens new window) - This package is now marked for general availability and is no longer considered experimental. While the API is likely to be stable, we reserve the right to make changes if required. This version bump contains no changes whatsoever.
Patch Changes
ee28cf33718b0, (opens new window) - Add @atlaskit/react-compiler-gating as a runtime dependency to enable React Compiler platform gating.56e9fd64a1333, (opens new window) - Remove beta label. This change is non-functional.- Updated dependencies
1.0.1
Patch Changes
ea69f44d1d210, (opens new window) - Undeprecateoffsetprop.
1.0.0
Major Changes
-
f2dc9097319f0, (opens new window) - ### Dropped support for legacy Typescript 4 types. Typescript 5 is now the new minimum.Removes the
typesVersionsproperty anddist/types-ts4.5directory 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
0.15.7
Patch Changes
- Updated dependencies
0.15.6
Patch Changes
- Updated dependencies
0.15.5
Patch Changes
6d0485dce81c4, (opens new window) - Internal: updated to the new@atlaskit/top-layerPopover/Dialogbehaviour where the host element unmounts after the exit animation completes. No consumer action required.- Updated dependencies
0.15.4
Patch Changes
e5b4070f51a93, (opens new window) - Remove Top Layer compatibility aliases and expose close-event helpers from thedialogandpopoverentry points.- Updated dependencies
0.15.3
Patch Changes
- Updated dependencies
0.15.2
Patch Changes
- Updated dependencies
0.15.1
Patch Changes
f7c1be45b8989, (opens new window) - Split@atlaskit/top-layermigration out from mainplatform-dst-top-layerFG toplatform-dst-top-layer-spotlightFG. This should be a noop for functionality.
0.15.0
Minor Changes
e09d8bc884f22, (opens new window) - Add a new@atlaskit/spotlight/spotlight-context-providerentry point that exportsSpotlightContextProvider. The provider accepts an optionaltargetRefprop which, when supplied, is used as the anchor element forPopoverContent's positioning — lettingPopoverContentbe rendered in a React subtree that doesn't share aPopoverProvider/PopoverTargetwith its visual anchor (for example, when the content is mounted by an external system but the anchor is owned by the host app).
0.14.14
Patch Changes
- Updated dependencies
0.14.13
Patch Changes
- Updated dependencies
0.14.12
Patch Changes
- Updated dependencies
0.14.11
Patch Changes
- Updated dependencies
0.14.10
Patch Changes
- Updated dependencies
0.14.9
Patch Changes
- Updated dependencies
0.14.8
Patch Changes
- Updated dependencies
0.14.7
Patch Changes
- Updated dependencies
0.14.6
Patch Changes
570302d63431d, (opens new window) - Automatic arrow placement on popover reposition as part of top-layer integration. Changes are behindplatform-dst-top-layerfeature flag.
0.14.5
Patch Changes
25115a2ad97bf, (opens new window) - Addappearanceprop toSpotlightPrimaryActionandSpotlightPrimaryLink. Available prop values areoutline(default), andprimary.
0.14.4
Patch Changes
-
7250582895c0b, (opens new window) - Top-layer adoption work behind theplatform-dst-top-layerfeature 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-layerplacement.offsetAPI (viafromLegacyPlacement). Previously only theawayaxis was forwarded, which dropped thealongoffset for consumers ofPopup,PopupSelect,Spotlight, andTooltipwhenplatform-dst-top-layeris enabled. - Fix broken import of
dialogHeightanddialogWidthfrom the removed utils module in@atlaskit/modal-dialog.
Public API:
@atlaskit/tooltip(minor): add an optionaltestId?: stringfield toTriggerProps. This is additive (no existing prop changes shape). Required because@atlaskit/button/new(and otherPressable-backed primitives) overwritedata-testidfrom spread, so the legacy(triggerProps as any)['data-testid']workaround is silently absorbed by those consumers. A typedtestIdfield flows through their owntestIddestructure instead, restoringdata-testidpropagation onto the rendered trigger element.@atlaskit/popup,@atlaskit/dropdown-menu(patch): no public type changes. Wideraria-haspopupunions that the FF-on path produces are bridged at the package boundary into@atlaskit/top-layerwith localisedFUDGE(top-layer-api)casts, documented inpackages/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-upminorPR 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 compositionalPopupContentto delegate toPopupContentTopLayerwhenplatform-dst-top-layeris enabled. Previously only the legacyPopupcomponent had the FF branch, leaving consumers of the compositional API on the legacy popper path.@atlaskit/select(minor): add anonClickhandler to thePopupSelecttop-layer trigger so clicks open/close the menu (mirrors the legacy global click handler inpopup-select.tsx). Add explicit Escape handling on the menu'sonKeyDownso the menu closes and focus returns to the trigger.@atlaskit/top-layer(patch): the<dialog>rendered by the Dialog primitive now setsaria-modal="true"explicitly. Modern browsers infer modal semantics from.showModal()but some assistive tech still keys off the explicit attribute.@atlaskit/top-layer(patch): guarduse-anchor-positioningagainst environments whereResizeObserveris not defined (e.g. jest'snodeenvironment, 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 polyfillsshowPopover. Real browsers always haveResizeObserver.@atlaskit/modal-dialog(patch): on the FF-on path, drop thetabIndex={-1}(and unused:focus-visibleoutline) from the modal content wrapper. The native<dialog>.showModal()focus-delegate algorithm picks the first focusable descendant (includingtabindex=-1), and the wrapper was hijacking initial focus from the close button. Also honorshouldReturnFocus={ref}on the FF-on path (an unmount-cleanup focuses the ref afterdialog.close()so it overrides the browser's automatic return-to-trigger). BooleanshouldReturnFocus={false}is not yet honored on the FF-on path — seetop-layer/notes/merge-blockers.md.@atlaskit/datetime-picker(patch): on the FF-on path, setmode="manual"on thePopup.Contentrendered by bothinternal/menu-top-layer.tsx(date-picker calendar) andinternal/fixed-layer-menu-top-layer.tsx(time-picker menu). With the defaultmode="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 incomponents/date-picker.tsxto 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 twotest.fixme'd nested-popover cases were not browser limitations;popover="auto"chains correctly via DOM ancestry (the original fixmes had the wrong testId selector). AddedtestIdprops 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, andmodal-dialog: selector updates to match the new top-layer testId convention (${testId}--content,[role="dialog"][aria-label="calendar"]), per-specskipAxeCheck()for example-level color-contrast violations unrelated to the migration, and focus assertions adjusted to match native<dialog>/Popup.Contentauto-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): scopefgmocks in unit tests soplatform-dst-top-layerreturnsfalse. JSDOM does not implement the native Popover API (showPopover/hidePopover/toggleevents), 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. Addedrole="menuitem"to the nested-triggerButtonIteminexamples/93-testing-nested-keyboard-navigation-top-layer.tsxto satisfy axe'saria-required-childrenrule on the parent menu. Added atest.beforeEach(skipAxeCheck)todropdown-menu.spec.tsx(FF-on suite) for example-levelcolor-contrastviolations on the pre-existingcolor.text.selected/color.background.selectedtoken pair (3.91:1). Replaced a deadlockingawait expect(moveItem).not.toBeFocused()pre-open assertion (Playwright's auto-wait blocks 5s on the absent element) withawait expect(moveItem).not.toBeVisible(). Suite result: 22/22 passing.
- Pass the full
-
Updated dependencies
0.14.3
Patch Changes
8f22e8eba4151, (opens new window) - Changed the motion uplift feature gate for Spotlight fromplatform-dst-motion-uplifttoplatform-dst-motion-uplift-spotlight
0.14.2
Patch Changes
-
2bed6255731de, (opens new window) - Top-layer adoption work behind theplatform-dst-top-layerfeature 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-layerplacement.offsetAPI (viafromLegacyPlacement). Previously only theawayaxis was forwarded, which dropped thealongoffset for consumers ofPopup,PopupSelect,Spotlight, andTooltipwhenplatform-dst-top-layeris enabled. - Fix broken import of
dialogHeightanddialogWidthfrom the removed utils module in@atlaskit/modal-dialog.
Public API:
@atlaskit/tooltip(minor): add an optionaltestId?: stringfield toTriggerProps. This is additive (no existing prop changes shape). Required because@atlaskit/button/new(and otherPressable-backed primitives) overwritedata-testidfrom spread, so the legacy(triggerProps as any)['data-testid']workaround is silently absorbed by those consumers. A typedtestIdfield flows through their owntestIddestructure instead, restoringdata-testidpropagation onto the rendered trigger element.@atlaskit/popup,@atlaskit/dropdown-menu(patch): no public type changes. Wideraria-haspopupunions that the FF-on path produces are bridged at the package boundary into@atlaskit/top-layerwith localisedFUDGE(top-layer-api)casts, documented inpackages/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-upminorPR 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 compositionalPopupContentto delegate toPopupContentTopLayerwhenplatform-dst-top-layeris enabled. Previously only the legacyPopupcomponent had the FF branch, leaving consumers of the compositional API on the legacy popper path.@atlaskit/select(minor): add anonClickhandler to thePopupSelecttop-layer trigger so clicks open/close the menu (mirrors the legacy global click handler inpopup-select.tsx). Add explicit Escape handling on the menu'sonKeyDownso the menu closes and focus returns to the trigger.@atlaskit/top-layer(patch): the<dialog>rendered by the Dialog primitive now setsaria-modal="true"explicitly. Modern browsers infer modal semantics from.showModal()but some assistive tech still keys off the explicit attribute.@atlaskit/top-layer(patch): guarduse-anchor-positioningagainst environments whereResizeObserveris not defined (e.g. jest'snodeenvironment, 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 polyfillsshowPopover. Real browsers always haveResizeObserver.@atlaskit/modal-dialog(patch): on the FF-on path, drop thetabIndex={-1}(and unused:focus-visibleoutline) from the modal content wrapper. The native<dialog>.showModal()focus-delegate algorithm picks the first focusable descendant (includingtabindex=-1), and the wrapper was hijacking initial focus from the close button. Also honorshouldReturnFocus={ref}on the FF-on path (an unmount-cleanup focuses the ref afterdialog.close()so it overrides the browser's automatic return-to-trigger). BooleanshouldReturnFocus={false}is not yet honored on the FF-on path — seetop-layer/notes/merge-blockers.md.@atlaskit/datetime-picker(patch): on the FF-on path, setmode="manual"on thePopup.Contentrendered by bothinternal/menu-top-layer.tsx(date-picker calendar) andinternal/fixed-layer-menu-top-layer.tsx(time-picker menu). With the defaultmode="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 incomponents/date-picker.tsxto 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 twotest.fixme'd nested-popover cases were not browser limitations;popover="auto"chains correctly via DOM ancestry (the original fixmes had the wrong testId selector). AddedtestIdprops 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, andmodal-dialog: selector updates to match the new top-layer testId convention (${testId}--content,[role="dialog"][aria-label="calendar"]), per-specskipAxeCheck()for example-level color-contrast violations unrelated to the migration, and focus assertions adjusted to match native<dialog>/Popup.Contentauto-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): scopefgmocks in unit tests soplatform-dst-top-layerreturnsfalse. JSDOM does not implement the native Popover API (showPopover/hidePopover/toggleevents), 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. Addedrole="menuitem"to the nested-triggerButtonIteminexamples/93-testing-nested-keyboard-navigation-top-layer.tsxto satisfy axe'saria-required-childrenrule on the parent menu. Added atest.beforeEach(skipAxeCheck)todropdown-menu.spec.tsx(FF-on suite) for example-levelcolor-contrastviolations on the pre-existingcolor.text.selected/color.background.selectedtoken pair (3.91:1). Replaced a deadlockingawait expect(moveItem).not.toBeFocused()pre-open assertion (Playwright's auto-wait blocks 5s on the absent element) withawait expect(moveItem).not.toBeVisible(). Suite result: 22/22 passing.
- Pass the full
-
Updated dependencies
0.14.1
Patch Changes
- Updated dependencies
0.14.0
Minor Changes
651ab3c79c1b4, (opens new window) - [ux] Add a feature-gated top-layer positioning path for Spotlight.
0.13.0
Minor Changes
aef119573f01b, (opens new window) - Autofix: add explicit package exports (barrel removal)
Patch Changes
- Updated dependencies
0.12.2
Patch Changes
- Updated dependencies
0.12.1
Patch Changes
- Updated dependencies
0.12.0
Minor Changes
856de5254340b, (opens new window) - [ux] Added motion on open and close of Spotlight behind fg platform-dst-motion-uplift
0.11.3
Patch Changes
- Updated dependencies
0.11.2
Patch Changes
02483200273ec, (opens new window) - Enrol all Design System UI packages into the React Compiler with platform gating via isReactCompilerActivePlatform.- Updated dependencies
0.11.1
Patch Changes
- Updated dependencies
0.11.0
Minor Changes
58f8502090976, (opens new window) - Exposeplacementprop onSpotlightCard.SpotlightCardis now better supported to render outside of aPopoverProvider.
0.10.10
Patch Changes
- Updated dependencies
0.10.9
Patch Changes
- Updated dependencies
0.10.8
Patch Changes
- Updated dependencies
0.10.7
Patch Changes
5db9e3f21a52f, (opens new window) - Internal refactoring- Updated dependencies
0.10.6
Patch Changes
9b038ce3c261e, (opens new window) - CreateSpotlightPrimaryLinkandSpotlightSecondaryLinkcomponents.
0.10.5
Patch Changes
- Updated dependencies
0.10.4
Patch Changes
- Updated dependencies
0.10.3
Patch Changes
- Updated dependencies
0.10.2
Patch Changes
- Updated dependencies
0.10.1
Patch Changes
- Updated dependencies
0.10.0
Minor Changes
51928601f0216, (opens new window) - Updated border radius values behind a feature gateplatform-dst-shape-theme-default.
Patch Changes
- Updated dependencies
0.9.8
Patch Changes
14e6e700928ef, (opens new window) - Internal changes to how border width and radius are applied.- Updated dependencies
0.9.7
Patch Changes
- Updated dependencies
0.9.6
Patch Changes
- Updated dependencies
0.9.5
Patch Changes
e0d5103c4e6cd, (opens new window) - Exposestrategyprop onPopoverContentwhich is passed through to the underlyingreact-popper.
0.9.4
Patch Changes
-
063f646d9daec, (opens new window) - AddedusePreloadMediahook to preload video and image assets before they are rendered in the DOM.This hook is useful in the context of
@atlaskit/spotlightwhere by default media will only load whenPopoverContent.isVisibleis set to true.usePreloadMediapreloads the assets for better performance and user experience. The hook accepts a source URL and a MIME type, creates a temporary media element to trigger browser caching, and the cached asset will be used when the actual media element is rendered.Supported MIME types:
- Videos:
video/mp4,video/webm,video/ogg,video/mpeg,video/x-matroska - Images:
image/jpeg,image/png,image/gif,image/webp,image/svg+xml
Example usage: usePreloadMedia(videoSrc, { mimetype: 'video/mp4' });
- Videos:
0.9.3
Patch Changes
- Updated dependencies
0.9.2
Patch Changes
80f0a09eede30, (opens new window) - Fix bug where PopoverContent initially renders in the default position before updating to user supplied position.
0.9.1
Patch Changes
- Updated dependencies
0.9.0
Minor Changes
e84be109faebe, (opens new window) - Applyoverflow: hiddenonSpotlightMedia.
Patch Changes
- Updated dependencies
0.8.0
Minor Changes
2a1e06ea7c3d7, (opens new window) - Exposeoffsetprop onPopoverContent.PopoverContentcan now be manually positioned anywhere within the viewport.
0.7.2
Patch Changes
ccbe07df5c620, (opens new window) - Update documentation to include motion example.
0.7.1
Patch Changes
991d1598db6d6, (opens new window) - Documentation for upcoming beta release.
0.7.0
Minor Changes
6e38d616cae8e, (opens new window) - Allow back, next, done actions to be passed into PopoverContent. These actions will be used if no onClick handler is passed to SpotlightSecondaryAction, SpotlightPrimaryAction. If onClick handlers are provided to the specific components, then they will take preference over what is passed to PopoverContent.
0.6.4
Patch Changes
- Updated dependencies
0.6.3
Patch Changes
1b4bf57dec49e, (opens new window) - Make 'click-outside-to-dismiss' functionality optional.- Updated dependencies
0.6.2
Patch Changes
- Updated dependencies
0.6.1
Patch Changes
598872f9c6e06, (opens new window) - Spotlight now dismisses on user click-outside.
0.6.0
Minor Changes
c43cbdde6f08c, (opens new window) -PopoverContentdismissprop is now required.
0.5.1
Patch Changes
4f9f525caaa13, (opens new window) - Implement 'dismiss on escape key press' functionality. Escape will cause the current spotlight to call thedismissfunction passed toPopoverContent. Implementation of thedismissfunction is up to the consumer of the package.- Updated dependencies
0.5.0
Minor Changes
72526321aecd0, (opens new window) - Create UNSAFE_UpdateOnChange component to test strategies for recalculating PopoverContent position when the DOM changes.
0.4.1
Patch Changes
499c871b73060, (opens new window) - Exports the PopoverContentProps
0.4.0
Minor Changes
07392017dde4f, (opens new window) - Removewidth: fit-contentstyling fromPopoverTarget.
0.3.5
Patch Changes
39e543109ec09, (opens new window) - add type info to forwardRef components- Updated dependencies
0.3.4
Patch Changes
cc92031710191, (opens new window) -SpotlightDismissControlnow appliesautofocuswhen it is mounted.
0.3.3
Patch Changes
bd8e43d78afb8, (opens new window) - - Addrole="dialog"to PopoverContent.aria-labelledbyis internally managed bySpotlightContext.- Add
aria-label='Dismiss'toSpotlightDismissControl. - Add
aria-label'prop toSpotlightPrimaryAction. - Add
aria-label'prop toSpotlightSecondaryAction.
- Add
0.3.2
Patch Changes
ec2250eef3ec9, (opens new window) - Spotlight now acceptstop-centerandbottom-centerplacements to ensure SpotlightCard content can be seen on small viewports.
0.3.1
Patch Changes
89687a02d7e6b, (opens new window) - Internal changes to support @compiled/react.
0.3.0
Minor Changes
7e3c08df816e2, (opens new window) - - Applyz-index: 700to caret to fix a bug with box-shadow in dark mode.- Apply
color: var(--ds-color-text-inverse)toSpotlightCardso consumers get inverse color styles without needing to useText. - Remove
SpotlightShowMoreControlreferences in examples and documentation. Functionality remains unchanged.
- Apply
0.2.6
Patch Changes
918be17f9334c, (opens new window) - Vertically align heading to caret.
0.2.5
Patch Changes
568c26a3efec9, (opens new window) - Apply elevation.shadow.overflow box-shadow to SpotlightCard.
0.2.4
Patch Changes
- Updated dependencies
0.2.3
Patch Changes
- Updated dependencies
0.2.2
Patch Changes
23bcc5bbc9cee, (opens new window) - Internal changes to how border radius is applied.- Updated dependencies
0.2.1
Patch Changes
3b5b4a919aaaf, (opens new window) - Internal changes to how border radius is applied.- Updated dependencies
0.2.0
Minor Changes
7663adf335f3f, (opens new window) - RenameSpotlighttoSpotlightCard. RemovedTourContext- please useuseStateto manage Spotlight visibility instead.
0.1.0
Minor Changes
0bc8c3d1f15ee, (opens new window) - Applyflex-direction: row-reverse;toSpotlightControlsto makeSpotlightDismissControlthe first focusable element inSpotlight.
Patch Changes
6fa400e1910b7, (opens new window) - Styling update toPopoverContentto setz-index: 700to ensureSpotlightdisplays correctly on top of Atlassian layering elements.- Updated dependencies
0.0.18
Patch Changes
24f083242a2df, (opens new window) - Styling update toPopoverTargetto setwidth: fit-contentto ensurePopoverContentdisplays correctly in relation to target element.- Updated dependencies
0.0.17
Patch Changes
- Updated dependencies
0.0.16
Patch Changes
13c698778e3c6, (opens new window) - [ux] Atlaspack version bump
0.0.15
Patch Changes
5d9897e6c4558, (opens new window) - Temporary styling update to SpotlightPrimaryAction, SpotlightSecondaryAction, SpotlightDismissControl, SpotlightShowMoreControl to more closely match design ahead of visually refreshed tokens.
0.0.14
Patch Changes
85a83a17c7d56, (opens new window) - Tweak offset of caret positioning so as not to overlap the target component.- Updated dependencies
0.0.13
Patch Changes
15963c2a4fb01, (opens new window) - Create StepCount component.
0.0.12
Patch Changes
7121a32fb1613, (opens new window) - Create ShowMoreControl component.
0.0.11
Patch Changes
- #200012, (opens new window)
fa829c42fc74f, (opens new window) - Create SpotlightMedia component.
0.0.10
Patch Changes
- #198989, (opens new window)
c4a86f623352d, (opens new window) - Allow Spotlight to be dismissed. Implement basic Spotlight Tour functionality.
0.0.9
Patch Changes
d972e69e6461e, (opens new window) - Create Body component. Rework spacing of Spotlight card. Minor refactoring.
0.0.8
Patch Changes
9d9570259070a, (opens new window) - Create PopoverProvider, PopoverTarget, PopoverContent components.9d9570259070a, (opens new window) - Create Caret component. Positions the Spotlight UI card in relation to the Caret component, and positions the Caret component in relation to the PopoverTarget element.
0.0.7
Patch Changes
- #197821, (opens new window)
f9dbe2c16f7e0, (opens new window) - Create PopoverProvider, PopoverTarget, PopoverContent components.
0.0.6
Patch Changes
11c7c29e7cff4, (opens new window) - Create Controls, and DismissControl components.
0.0.5
Patch Changes
d63550f8e338a, (opens new window) - Create Footer, Actions, PrimaryAction, SecondaryAction components.
0.0.4
Patch Changes
- Updated dependencies
0.0.3
Patch Changes
- #193958, (opens new window)
6fb7706c6ce32, (opens new window) - Create Header and Headline components. - Updated dependencies
0.0.2
Patch Changes
- #189418, (opens new window)
3f609b46c1aec, (opens new window) - Create initial @atlaskit/spotlight package scaffold.