@atlaskit/inline-message 15.6.9 → 15.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,208 @@
1
1
  # @atlaskit/inline-message
2
2
 
3
+ ## 15.6.11
4
+
5
+ ### Patch Changes
6
+
7
+ - [`7250582895c0b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7250582895c0b) -
8
+ Top-layer adoption work behind the `platform-dst-top-layer` feature flag. Public adopter APIs are
9
+ intentionally kept narrow while the top-layer API surface settles, with one exception called out
10
+ below.
11
+
12
+ Highlights:
13
+ - Pass the full `[along, away]` legacy popper offset through to the new top-layer
14
+ `placement.offset` API (via `fromLegacyPlacement`). Previously only the `away` axis was
15
+ forwarded, which dropped the `along` offset for consumers of `Popup`, `PopupSelect`,
16
+ `Spotlight`, and `Tooltip` when `platform-dst-top-layer` is enabled.
17
+ - Fix broken import of `dialogHeight` and `dialogWidth` from the removed utils module in
18
+ `@atlaskit/modal-dialog`.
19
+
20
+ Public API:
21
+ - **`@atlaskit/tooltip`** (`minor`): add an optional `testId?: string` field to `TriggerProps`.
22
+ This is additive (no existing prop changes shape). Required because `@atlaskit/button/new` (and
23
+ other `Pressable`-backed primitives) overwrite `data-testid` from spread, so the legacy
24
+ `(triggerProps as any)['data-testid']` workaround is silently absorbed by those consumers. A
25
+ typed `testId` field flows through their own `testId` destructure instead, restoring
26
+ `data-testid` propagation onto the rendered trigger element.
27
+ - **`@atlaskit/popup`**, **`@atlaskit/dropdown-menu`** (`patch`): no public type changes. Wider
28
+ `aria-haspopup` unions that the FF-on path produces are bridged at the package boundary into
29
+ `@atlaskit/top-layer` with localised `FUDGE(top-layer-api)` casts, documented in
30
+ `packages/design-system/top-layer/notes/decisions/migration-roadmap.md` ("Open API decisions
31
+ deferred to a follow-up PR"). They will be widened in a follow-up `minor` PR once the top-layer
32
+ API is committed.
33
+ - **`@atlaskit/modal-dialog`**, **`@atlaskit/select`**, **`@atlaskit/spotlight`**
34
+ (`patch`/`minor`): no public type changes; bug fixes only.
35
+
36
+ Merge-readiness fixes (FF-on test wiring + adopter behavior):
37
+ - **`@atlaskit/popup`** (`minor`): wire the compositional `PopupContent` to delegate to
38
+ `PopupContentTopLayer` when `platform-dst-top-layer` is enabled. Previously only the legacy
39
+ `Popup` component had the FF branch, leaving consumers of the compositional API on the legacy
40
+ popper path.
41
+ - **`@atlaskit/select`** (`minor`): add an `onClick` handler to the `PopupSelect` top-layer
42
+ trigger so clicks open/close the menu (mirrors the legacy global click handler in
43
+ `popup-select.tsx`). Add explicit Escape handling on the menu's `onKeyDown` so the menu closes
44
+ and focus returns to the trigger.
45
+ - **`@atlaskit/top-layer`** (`patch`): the `<dialog>` rendered by the Dialog primitive now sets
46
+ `aria-modal="true"` explicitly. Modern browsers infer modal semantics from `.showModal()` but
47
+ some assistive tech still keys off the explicit attribute.
48
+ - **`@atlaskit/top-layer`** (`patch`): guard `use-anchor-positioning` against environments where
49
+ `ResizeObserver` is not defined (e.g. jest's `node` environment, used by the post-office test
50
+ suite). The observer is used to wait for the popover's first valid layout before measuring;
51
+ consumers in non-DOM jest environments now get a no-op observer and the scroll/resize listeners
52
+ still apply if the host environment polyfills `showPopover`. Real browsers always have
53
+ `ResizeObserver`.
54
+ - **`@atlaskit/modal-dialog`** (`patch`): on the FF-on path, drop the `tabIndex={-1}` (and unused
55
+ `:focus-visible` outline) from the modal content wrapper. The native `<dialog>.showModal()`
56
+ focus-delegate algorithm picks the first focusable descendant (including `tabindex=-1`), and the
57
+ wrapper was hijacking initial focus from the close button. Also honor `shouldReturnFocus={ref}`
58
+ on the FF-on path (an unmount-cleanup focuses the ref after `dialog.close()` so it overrides the
59
+ browser's automatic return-to-trigger). Boolean `shouldReturnFocus={false}` is not yet honored
60
+ on the FF-on path — see `top-layer/notes/merge-blockers.md`.
61
+ - **`@atlaskit/datetime-picker`** (`patch`): on the FF-on path, set `mode="manual"` on the
62
+ `Popup.Content` rendered by both `internal/menu-top-layer.tsx` (date-picker calendar) and
63
+ `internal/fixed-layer-menu-top-layer.tsx` (time-picker menu). With the default `mode="auto"`,
64
+ the same click event that opens the menu (which targets the react-select combobox input —
65
+ outside the popover element) bubbles to the browser's native popover light-dismiss handler and
66
+ immediately closes the menu. react-select / DateTimePicker already own outside-click and Esc
67
+ dismissal via their own state, so opting out of the native auto-dismiss is the correct
68
+ integration. Also extend the existing Esc → trigger-focus restoration in
69
+ `components/date-picker.tsx` to the FF-on path (manual mode disables the browser's built-in
70
+ focus return, and the legacy code path was already handling this for itself behind an FF
71
+ negation).
72
+ - **`@atlaskit/popup`** (no public API change): no source changes — only FF-on Playwright
73
+ spec/example fixes drove the suite from 21/3/2 to 27/0/0. Notable: the two `test.fixme`'d
74
+ nested-popover cases were not browser limitations; `popover="auto"` chains correctly via DOM
75
+ ancestry (the original fixmes had the wrong testId selector). Added `testId` props to two
76
+ examples (`16-popup-with-a11y-props`, `18-should-fit-container`) so default-shape tests can
77
+ reach the trigger.
78
+ - Test alignment for FF-on Playwright suites across `popup`, `select`, `datetime-picker`,
79
+ `inline-dialog`, `inline-message`, and `modal-dialog`: selector updates to match the new
80
+ top-layer testId convention (`${testId}--content`, `[role="dialog"][aria-label="calendar"]`),
81
+ per-spec `skipAxeCheck()` for example-level color-contrast violations unrelated to the
82
+ migration, and focus assertions adjusted to match native `<dialog>` / `Popup.Content` auto-focus
83
+ semantics (focus lands on the first focusable child, not the dialog container itself).
84
+ - **`@atlassian/capacity-planning-capacity-graph`**, **`@atlaskit/color-picker`**,
85
+ **`@atlassian/timeline-table`**, **`@atlassian/global-side-navigation`** (`patch`): scope `fg`
86
+ mocks in unit tests so `platform-dst-top-layer` returns `false`. JSDOM does not implement the
87
+ native Popover API (`showPopover`/`hidePopover`/`toggle` events), so leaving the gate ON in unit
88
+ tests caused popover content to remain in the DOM after close and broke close-behaviour
89
+ assertions. Browser coverage for the FF-on path is provided by the Playwright suites listed
90
+ above.
91
+ - **`@atlaskit/dropdown-menu`** (no public API change): test/example-only fixes for the FF-on
92
+ Playwright suite. Added `role="menuitem"` to the nested-trigger `ButtonItem` in
93
+ `examples/93-testing-nested-keyboard-navigation-top-layer.tsx` to satisfy axe's
94
+ `aria-required-children` rule on the parent menu. Added a `test.beforeEach(skipAxeCheck)` to
95
+ `dropdown-menu.spec.tsx` (FF-on suite) for example-level `color-contrast` violations on the
96
+ pre-existing `color.text.selected`/`color.background.selected` token pair (3.91:1). Replaced a
97
+ deadlocking `await expect(moveItem).not.toBeFocused()` pre-open assertion (Playwright's
98
+ auto-wait blocks 5s on the absent element) with `await expect(moveItem).not.toBeVisible()`.
99
+ Suite result: 22/22 passing.
100
+
101
+ - Updated dependencies
102
+
103
+ ## 15.6.10
104
+
105
+ ### Patch Changes
106
+
107
+ - [`1f9114700d351`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1f9114700d351) -
108
+ Moved new motion changes from `platform-dst-motion-uplift` feature gate to
109
+ `platform-dst-motion-uplift-popup`
110
+ - [`2bed6255731de`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2bed6255731de) -
111
+ Top-layer adoption work behind the `platform-dst-top-layer` feature flag. Public adopter APIs are
112
+ intentionally kept narrow while the top-layer API surface settles, with one exception called out
113
+ below.
114
+
115
+ Highlights:
116
+ - Pass the full `[along, away]` legacy popper offset through to the new top-layer
117
+ `placement.offset` API (via `fromLegacyPlacement`). Previously only the `away` axis was
118
+ forwarded, which dropped the `along` offset for consumers of `Popup`, `PopupSelect`,
119
+ `Spotlight`, and `Tooltip` when `platform-dst-top-layer` is enabled.
120
+ - Fix broken import of `dialogHeight` and `dialogWidth` from the removed utils module in
121
+ `@atlaskit/modal-dialog`.
122
+
123
+ Public API:
124
+ - **`@atlaskit/tooltip`** (`minor`): add an optional `testId?: string` field to `TriggerProps`.
125
+ This is additive (no existing prop changes shape). Required because `@atlaskit/button/new` (and
126
+ other `Pressable`-backed primitives) overwrite `data-testid` from spread, so the legacy
127
+ `(triggerProps as any)['data-testid']` workaround is silently absorbed by those consumers. A
128
+ typed `testId` field flows through their own `testId` destructure instead, restoring
129
+ `data-testid` propagation onto the rendered trigger element.
130
+ - **`@atlaskit/popup`**, **`@atlaskit/dropdown-menu`** (`patch`): no public type changes. Wider
131
+ `aria-haspopup` unions that the FF-on path produces are bridged at the package boundary into
132
+ `@atlaskit/top-layer` with localised `FUDGE(top-layer-api)` casts, documented in
133
+ `packages/design-system/top-layer/notes/decisions/migration-roadmap.md` ("Open API decisions
134
+ deferred to a follow-up PR"). They will be widened in a follow-up `minor` PR once the top-layer
135
+ API is committed.
136
+ - **`@atlaskit/modal-dialog`**, **`@atlaskit/select`**, **`@atlaskit/spotlight`**
137
+ (`patch`/`minor`): no public type changes; bug fixes only.
138
+
139
+ Merge-readiness fixes (FF-on test wiring + adopter behavior):
140
+ - **`@atlaskit/popup`** (`minor`): wire the compositional `PopupContent` to delegate to
141
+ `PopupContentTopLayer` when `platform-dst-top-layer` is enabled. Previously only the legacy
142
+ `Popup` component had the FF branch, leaving consumers of the compositional API on the legacy
143
+ popper path.
144
+ - **`@atlaskit/select`** (`minor`): add an `onClick` handler to the `PopupSelect` top-layer
145
+ trigger so clicks open/close the menu (mirrors the legacy global click handler in
146
+ `popup-select.tsx`). Add explicit Escape handling on the menu's `onKeyDown` so the menu closes
147
+ and focus returns to the trigger.
148
+ - **`@atlaskit/top-layer`** (`patch`): the `<dialog>` rendered by the Dialog primitive now sets
149
+ `aria-modal="true"` explicitly. Modern browsers infer modal semantics from `.showModal()` but
150
+ some assistive tech still keys off the explicit attribute.
151
+ - **`@atlaskit/top-layer`** (`patch`): guard `use-anchor-positioning` against environments where
152
+ `ResizeObserver` is not defined (e.g. jest's `node` environment, used by the post-office test
153
+ suite). The observer is used to wait for the popover's first valid layout before measuring;
154
+ consumers in non-DOM jest environments now get a no-op observer and the scroll/resize listeners
155
+ still apply if the host environment polyfills `showPopover`. Real browsers always have
156
+ `ResizeObserver`.
157
+ - **`@atlaskit/modal-dialog`** (`patch`): on the FF-on path, drop the `tabIndex={-1}` (and unused
158
+ `:focus-visible` outline) from the modal content wrapper. The native `<dialog>.showModal()`
159
+ focus-delegate algorithm picks the first focusable descendant (including `tabindex=-1`), and the
160
+ wrapper was hijacking initial focus from the close button. Also honor `shouldReturnFocus={ref}`
161
+ on the FF-on path (an unmount-cleanup focuses the ref after `dialog.close()` so it overrides the
162
+ browser's automatic return-to-trigger). Boolean `shouldReturnFocus={false}` is not yet honored
163
+ on the FF-on path — see `top-layer/notes/merge-blockers.md`.
164
+ - **`@atlaskit/datetime-picker`** (`patch`): on the FF-on path, set `mode="manual"` on the
165
+ `Popup.Content` rendered by both `internal/menu-top-layer.tsx` (date-picker calendar) and
166
+ `internal/fixed-layer-menu-top-layer.tsx` (time-picker menu). With the default `mode="auto"`,
167
+ the same click event that opens the menu (which targets the react-select combobox input —
168
+ outside the popover element) bubbles to the browser's native popover light-dismiss handler and
169
+ immediately closes the menu. react-select / DateTimePicker already own outside-click and Esc
170
+ dismissal via their own state, so opting out of the native auto-dismiss is the correct
171
+ integration. Also extend the existing Esc → trigger-focus restoration in
172
+ `components/date-picker.tsx` to the FF-on path (manual mode disables the browser's built-in
173
+ focus return, and the legacy code path was already handling this for itself behind an FF
174
+ negation).
175
+ - **`@atlaskit/popup`** (no public API change): no source changes — only FF-on Playwright
176
+ spec/example fixes drove the suite from 21/3/2 to 27/0/0. Notable: the two `test.fixme`'d
177
+ nested-popover cases were not browser limitations; `popover="auto"` chains correctly via DOM
178
+ ancestry (the original fixmes had the wrong testId selector). Added `testId` props to two
179
+ examples (`16-popup-with-a11y-props`, `18-should-fit-container`) so default-shape tests can
180
+ reach the trigger.
181
+ - Test alignment for FF-on Playwright suites across `popup`, `select`, `datetime-picker`,
182
+ `inline-dialog`, `inline-message`, and `modal-dialog`: selector updates to match the new
183
+ top-layer testId convention (`${testId}--content`, `[role="dialog"][aria-label="calendar"]`),
184
+ per-spec `skipAxeCheck()` for example-level color-contrast violations unrelated to the
185
+ migration, and focus assertions adjusted to match native `<dialog>` / `Popup.Content` auto-focus
186
+ semantics (focus lands on the first focusable child, not the dialog container itself).
187
+ - **`@atlassian/capacity-planning-capacity-graph`**, **`@atlaskit/color-picker`**,
188
+ **`@atlassian/timeline-table`**, **`@atlassian/global-side-navigation`** (`patch`): scope `fg`
189
+ mocks in unit tests so `platform-dst-top-layer` returns `false`. JSDOM does not implement the
190
+ native Popover API (`showPopover`/`hidePopover`/`toggle` events), so leaving the gate ON in unit
191
+ tests caused popover content to remain in the DOM after close and broke close-behaviour
192
+ assertions. Browser coverage for the FF-on path is provided by the Playwright suites listed
193
+ above.
194
+ - **`@atlaskit/dropdown-menu`** (no public API change): test/example-only fixes for the FF-on
195
+ Playwright suite. Added `role="menuitem"` to the nested-trigger `ButtonItem` in
196
+ `examples/93-testing-nested-keyboard-navigation-top-layer.tsx` to satisfy axe's
197
+ `aria-required-children` rule on the parent menu. Added a `test.beforeEach(skipAxeCheck)` to
198
+ `dropdown-menu.spec.tsx` (FF-on suite) for example-level `color-contrast` violations on the
199
+ pre-existing `color.text.selected`/`color.background.selected` token pair (3.91:1). Replaced a
200
+ deadlocking `await expect(moveItem).not.toBeFocused()` pre-open assertion (Playwright's
201
+ auto-wait blocks 5s on the absent element) with `await expect(moveItem).not.toBeVisible()`.
202
+ Suite result: 22/22 passing.
203
+
204
+ - Updated dependencies
205
+
3
206
  ## 15.6.9
4
207
 
5
208
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/inline-message",
3
- "version": "15.6.9",
3
+ "version": "15.6.11",
4
4
  "description": "An inline message lets users know when important information is available or when an action is required.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -33,13 +33,13 @@
33
33
  "dependencies": {
34
34
  "@atlaskit/button": "^23.11.0",
35
35
  "@atlaskit/ds-lib": "^7.0.0",
36
- "@atlaskit/icon": "^34.0.0",
36
+ "@atlaskit/icon": "^34.5.0",
37
37
  "@atlaskit/link": "^3.4.0",
38
38
  "@atlaskit/platform-feature-flags": "^1.1.0",
39
- "@atlaskit/popper": "^7.1.0",
40
- "@atlaskit/popup": "^4.16.0",
39
+ "@atlaskit/popper": "^7.2.0",
40
+ "@atlaskit/popup": "^4.19.0",
41
41
  "@atlaskit/primitives": "^19.0.0",
42
- "@atlaskit/theme": "^23.0.0",
42
+ "@atlaskit/theme": "^23.2.0",
43
43
  "@atlaskit/tokens": "^13.0.0",
44
44
  "@babel/runtime": "^7.0.0",
45
45
  "@compiled/react": "^0.20.0"
@@ -51,9 +51,9 @@
51
51
  "@af/accessibility-testing": "workspace:^",
52
52
  "@af/integration-testing": "workspace:^",
53
53
  "@af/visual-regression": "workspace:^",
54
- "@atlaskit/docs": "^11.7.0",
54
+ "@atlaskit/docs": "^11.8.0",
55
55
  "@atlaskit/heading": "^5.4.0",
56
- "@atlaskit/modal-dialog": "^14.15.0",
56
+ "@atlaskit/modal-dialog": "^15.0.0",
57
57
  "@atlaskit/section-message": "^8.12.0",
58
58
  "@atlassian/react-compiler-gating": "workspace:^",
59
59
  "@atlassian/ssr-tests": "workspace:^",
@@ -97,7 +97,10 @@
97
97
  },
98
98
  "homepage": "https://atlassian.design/components/inline-message/",
99
99
  "platform-feature-flags": {
100
- "platform-dst-motion-uplift": {
100
+ "platform-dst-motion-uplift-popup": {
101
+ "type": "boolean"
102
+ },
103
+ "platform-dst-top-layer": {
101
104
  "type": "boolean"
102
105
  }
103
106
  }
package/offerings.json DELETED
@@ -1,34 +0,0 @@
1
- [
2
- {
3
- "name": "InlineMessage",
4
- "package": "@atlaskit/inline-message",
5
- "import": {
6
- "name": "InlineMessage",
7
- "package": "@atlaskit/inline-message",
8
- "type": "default"
9
- },
10
- "keywords": ["message", "inline", "feedback", "status", "alert"],
11
- "categories": ["feedback"],
12
- "shortDescription": "A component for displaying inline messages and feedback.",
13
- "status": "general-availability",
14
- "accessibilityGuidelines": [
15
- "Ensure message content is announced by screen readers",
16
- "Use appropriate message types and colors",
17
- "Provide clear message context",
18
- "Consider message timing and persistence"
19
- ],
20
- "usageGuidelines": [
21
- "Use for inline feedback and messages",
22
- "Choose appropriate message types",
23
- "Position messages near relevant content",
24
- "Consider message timing and dismissal"
25
- ],
26
- "contentGuidelines": [
27
- "Use clear, concise message text",
28
- "Provide specific, actionable feedback",
29
- "Use appropriate tone for message type",
30
- "Keep messages focused and relevant"
31
- ],
32
- "examples": ["./examples/ai/inline-message.tsx"]
33
- }
34
- ]