@atlaskit/media-avatar-picker 28.0.1 → 28.1.1
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/AGENTS.md +7 -5
- package/CHANGELOG.md +28 -1
- package/compass.yml +36 -16
- package/dist/cjs/image-placer/index.js +27 -117
- package/dist/es2019/image-placer/index.js +0 -71
- package/dist/esm/image-placer/index.js +27 -117
- package/dist/types/image-placer/index.d.ts +0 -1
- package/media-avatar-picker.docs.tsx +71 -0
- package/package.json +18 -23
package/AGENTS.md
CHANGED
|
@@ -17,11 +17,13 @@
|
|
|
17
17
|
> codebase and the docs after any code change. Use the `generate` subcommand to bootstrap the index
|
|
18
18
|
> in a new repository.
|
|
19
19
|
|
|
20
|
-
**Entry point:** `.agents/knowledge-index/INDEX.md`
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
**CLI:**
|
|
24
|
-
|
|
20
|
+
**Entry point:** `.agents/knowledge-index/INDEX.md` **Unit doc:**
|
|
21
|
+
`.agents/knowledge-index/domains/media/units/atlaskit-media-avatar-picker.md` **Standards page:**
|
|
22
|
+
`.agents/knowledge-index/domains/media/units/atlaskit-media-avatar-picker/standards-and-patterns.md`
|
|
23
|
+
**CLI:**
|
|
24
|
+
`python3 .agents/skills/knowledge-index/scripts/kg.py {find,read,edit,investigate,validate,init,explore,generate} …`
|
|
25
|
+
**Refresh protocol:** never silently bump `Last verified` — always re-read the listed `Sources`
|
|
26
|
+
first, edit, then `kg.py edit <path> --message "<reason>"`.
|
|
25
27
|
|
|
26
28
|
---
|
|
27
29
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
# @atlaskit/media-avatar-picker
|
|
2
2
|
|
|
3
|
+
## 28.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`dbc145df6b864`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/dbc145df6b864) -
|
|
8
|
+
Clean up feature gate `platform_media_package_react19_lifecycle_fix`. The React 19-safe lifecycle
|
|
9
|
+
behaviour is now permanent: prop-change reactions run in `componentDidUpdate` and the legacy
|
|
10
|
+
`UNSAFE_componentWillReceiveProps` paths have been removed.
|
|
11
|
+
|
|
12
|
+
## 28.1.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- [`cd097a2111788`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/cd097a2111788) -
|
|
17
|
+
Republish packages depending on `@atlaskit/react-compiler-gating` so their published dependency
|
|
18
|
+
reference is updated to the renamed `@atlaskit/react-compiler-gating` scope.
|
|
19
|
+
|
|
20
|
+
The earlier rename of `@atlassian/react-compiler-gating` to `@atlaskit/react-compiler-gating` only
|
|
21
|
+
bumped the renamed package itself, so dependent packages were never republished and their
|
|
22
|
+
published versions still referenced the old `@atlassian/react-compiler-gating` name, which is not
|
|
23
|
+
available in the public npm registry. This minor bump republishes all affected packages with the
|
|
24
|
+
corrected dependency.
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Updated dependencies
|
|
29
|
+
|
|
3
30
|
## 28.0.1
|
|
4
31
|
|
|
5
32
|
### Patch Changes
|
|
6
33
|
|
|
7
34
|
- [`ee28cf33718b0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ee28cf33718b0) -
|
|
8
|
-
Add @
|
|
35
|
+
Add @atlaskit/react-compiler-gating as a runtime dependency to enable React Compiler platform
|
|
9
36
|
gating.
|
|
10
37
|
- Updated dependencies
|
|
11
38
|
|
package/compass.yml
CHANGED
|
@@ -1,41 +1,61 @@
|
|
|
1
1
|
name: Media Avatar Picker
|
|
2
|
-
id:
|
|
2
|
+
id: ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:component/c5751cc6-3513-4070-9deb-af31e86aed34/91b4a140-e4d9-4c93-b685-33ab22c6fa6d
|
|
3
3
|
description:
|
|
4
|
-
|
|
5
|
-
predefined avatars.
|
|
4
|
+
A component to select, drag and resize image avatars. It also provides a default list of
|
|
5
|
+
predefined avatars.
|
|
6
6
|
configVersion: 1
|
|
7
7
|
typeId: UI_ELEMENT
|
|
8
|
-
ownerId:
|
|
8
|
+
ownerId: ari:cloud:teams::team/3bee892f-cb1b-496c-b866-0f08d9e0296c # Media EXIF
|
|
9
9
|
fields:
|
|
10
|
-
lifecycle: Active
|
|
11
10
|
tier: 2
|
|
11
|
+
lifecycle: Active
|
|
12
|
+
isMonorepoProject: true
|
|
12
13
|
labels:
|
|
13
14
|
- atlassian-platform
|
|
15
|
+
- platform-code
|
|
16
|
+
- platform-afm
|
|
14
17
|
links:
|
|
15
18
|
- name: Root Repository
|
|
16
19
|
type: REPOSITORY
|
|
17
20
|
url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master
|
|
18
21
|
- name: ''
|
|
19
22
|
type: REPOSITORY
|
|
20
|
-
url:
|
|
23
|
+
url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master/platform/packages/media/media-avatar-picker/
|
|
21
24
|
- name: ''
|
|
22
25
|
type: DOCUMENT
|
|
23
|
-
url:
|
|
24
|
-
#- name: '' # Tome Capability
|
|
25
|
-
# type: OTHER_LINK
|
|
26
|
-
# url: ''
|
|
26
|
+
url: https://atlaskit.atlassian.com/packages/media/media-avatar-picker
|
|
27
27
|
- name: Media By Product
|
|
28
28
|
type: DASHBOARD
|
|
29
|
-
url:
|
|
29
|
+
url: https://atlassian.signalfx.com/#/dashboard/E-vk3wqAwAA?groupId=E-vkzo1AwAA&configId=E-vk5fsAwAA&startTime=-7d&endTime=Now
|
|
30
30
|
- name: ''
|
|
31
31
|
type: CHAT_CHANNEL
|
|
32
|
-
url:
|
|
32
|
+
url: https://atlassian.slack.com/archives/C05J5GNHPLN
|
|
33
33
|
- name: ''
|
|
34
34
|
type: ON_CALL
|
|
35
|
-
url:
|
|
35
|
+
url: https://atlassian.app.opsgenie.com/settings/schedule/detail/b62291ff-4029-4f26-b7fc-d75d46d7aebc
|
|
36
36
|
- name: ''
|
|
37
37
|
type: PROJECT
|
|
38
|
-
url:
|
|
38
|
+
url: https://product-fabric.atlassian.net/jira/software/c/projects/BMPT/boards/5090
|
|
39
|
+
- name: Slack Channel
|
|
40
|
+
type: CHAT_CHANNEL
|
|
41
|
+
url: https://atlassian.enterprise.slack.com/archives/C05J5GNHPLN # #help-media-platform
|
|
42
|
+
- name: Media Avatar Picker
|
|
43
|
+
type: REPOSITORY
|
|
44
|
+
url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master/platform/packages/media/media-avatar-picker
|
|
39
45
|
relationships: {}
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
customFields:
|
|
47
|
+
- name: Department
|
|
48
|
+
type: text
|
|
49
|
+
value: Eng - Automation
|
|
50
|
+
- name: Technical Owner
|
|
51
|
+
type: user
|
|
52
|
+
value: ari:cloud:identity::user/712020:678ede01-221b-4b2f-9fce-adcc0b0d095e # Anupama Majety
|
|
53
|
+
- name: Required Reviewers Opt In
|
|
54
|
+
type: boolean
|
|
55
|
+
value: true
|
|
56
|
+
- name: Reviewer Selection Mechanism
|
|
57
|
+
type: text
|
|
58
|
+
value: random(2)
|
|
59
|
+
- name: Required Reviewer Approvals
|
|
60
|
+
type: number
|
|
61
|
+
value: 1
|
|
@@ -9,7 +9,6 @@ exports.defaultProps = exports.ImagePlacer = exports.DEFAULT_ZOOM = exports.DEFA
|
|
|
9
9
|
require("./index.compiled.css");
|
|
10
10
|
var _runtime = require("@compiled/react/runtime");
|
|
11
11
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -24,7 +23,6 @@ var _image = require("./image");
|
|
|
24
23
|
var _margin = require("./margin");
|
|
25
24
|
var _imageProcessor = require("./imageProcessor");
|
|
26
25
|
var _constraints = require("./constraints");
|
|
27
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
28
26
|
var _imagePlacerErrorWrapper = require("./imagePlacerErrorWrapper");
|
|
29
27
|
var _util = require("../util");
|
|
30
28
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
@@ -257,102 +255,14 @@ var ImagePlacer = exports.ImagePlacer = /*#__PURE__*/function (_React$Component)
|
|
|
257
255
|
});
|
|
258
256
|
}
|
|
259
257
|
}
|
|
260
|
-
|
|
261
|
-
/* respond to prop changes */
|
|
262
|
-
}, {
|
|
263
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
264
|
-
value: (function () {
|
|
265
|
-
var _UNSAFE_componentWillReceiveProps = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(nextProps) {
|
|
266
|
-
var imageSourceRect, state, props, zoom, currentUseConstraints, currentContainerWidth, currentContainerHeight, currentMargin, currentSrc, nextZoom, nextUseConstraints, nextContainerWidth, nextContainerHeight, nextMargin, nextSrc, nextOnImageActions, isZoomChange, isUseConstraintsChange, isContainerWidthChange, isContainerHeightChange, isMarginChange, isImageAction, zoomReset, fileInfo;
|
|
267
|
-
return _regenerator.default.wrap(function (_context) {
|
|
268
|
-
while (1) switch (_context.prev = _context.next) {
|
|
269
|
-
case 0:
|
|
270
|
-
if (!(0, _platformFeatureFlags.fg)('platform_media_package_react19_lifecycle_fix')) {
|
|
271
|
-
_context.next = 1;
|
|
272
|
-
break;
|
|
273
|
-
}
|
|
274
|
-
return _context.abrupt("return");
|
|
275
|
-
case 1:
|
|
276
|
-
imageSourceRect = this.imageSourceRect, state = this.state, props = this.props;
|
|
277
|
-
zoom = state.zoom;
|
|
278
|
-
currentUseConstraints = props.useConstraints, currentContainerWidth = props.containerWidth, currentContainerHeight = props.containerHeight, currentMargin = props.margin, currentSrc = props.src;
|
|
279
|
-
nextZoom = nextProps.zoom, nextUseConstraints = nextProps.useConstraints, nextContainerWidth = nextProps.containerWidth, nextContainerHeight = nextProps.containerHeight, nextMargin = nextProps.margin, nextSrc = nextProps.src, nextOnImageActions = nextProps.onImageActions;
|
|
280
|
-
isZoomChange = nextZoom !== undefined && nextZoom !== zoom;
|
|
281
|
-
isUseConstraintsChange = nextUseConstraints !== undefined && nextUseConstraints !== currentUseConstraints;
|
|
282
|
-
isContainerWidthChange = nextContainerWidth !== undefined && nextContainerWidth !== currentContainerWidth;
|
|
283
|
-
isContainerHeightChange = nextContainerHeight !== undefined && nextContainerHeight !== currentContainerHeight;
|
|
284
|
-
isMarginChange = nextMargin !== undefined && nextMargin !== currentMargin;
|
|
285
|
-
isImageAction = (0, _typeof2.default)(nextOnImageActions) !== undefined;
|
|
286
|
-
zoomReset = {
|
|
287
|
-
zoom: 0
|
|
288
|
-
};
|
|
289
|
-
if (isZoomChange) {
|
|
290
|
-
this.setZoom(nextZoom);
|
|
291
|
-
}
|
|
292
|
-
if (isUseConstraintsChange) {
|
|
293
|
-
this.setState({
|
|
294
|
-
zoom: 0,
|
|
295
|
-
imageWidth: imageSourceRect.width,
|
|
296
|
-
imageHeight: imageSourceRect.height
|
|
297
|
-
}, this.update);
|
|
298
|
-
}
|
|
299
|
-
if (isContainerWidthChange || isContainerHeightChange || isMarginChange) {
|
|
300
|
-
this.setState(zoomReset, this.update);
|
|
301
|
-
this.updateZoomProp();
|
|
302
|
-
}
|
|
303
|
-
if (!(nextSrc instanceof File && nextSrc !== currentSrc)) {
|
|
304
|
-
_context.next = 3;
|
|
305
|
-
break;
|
|
306
|
-
}
|
|
307
|
-
_context.next = 2;
|
|
308
|
-
return (0, _mediaUi.getFileInfo)(nextSrc);
|
|
309
|
-
case 2:
|
|
310
|
-
fileInfo = _context.sent;
|
|
311
|
-
case 3:
|
|
312
|
-
if (!(typeof nextSrc === 'string' && nextSrc !== currentSrc)) {
|
|
313
|
-
_context.next = 5;
|
|
314
|
-
break;
|
|
315
|
-
}
|
|
316
|
-
_context.next = 4;
|
|
317
|
-
return (0, _mediaUi.getFileInfoFromSrc)(nextSrc);
|
|
318
|
-
case 4:
|
|
319
|
-
fileInfo = _context.sent;
|
|
320
|
-
case 5:
|
|
321
|
-
if (!fileInfo) {
|
|
322
|
-
_context.next = 6;
|
|
323
|
-
break;
|
|
324
|
-
}
|
|
325
|
-
_context.next = 6;
|
|
326
|
-
return this.preprocessFile(fileInfo);
|
|
327
|
-
case 6:
|
|
328
|
-
if (isImageAction) {
|
|
329
|
-
this.provideImageActions();
|
|
330
|
-
}
|
|
331
|
-
case 7:
|
|
332
|
-
case "end":
|
|
333
|
-
return _context.stop();
|
|
334
|
-
}
|
|
335
|
-
}, _callee, this);
|
|
336
|
-
}));
|
|
337
|
-
function UNSAFE_componentWillReceiveProps(_x) {
|
|
338
|
-
return _UNSAFE_componentWillReceiveProps.apply(this, arguments);
|
|
339
|
-
}
|
|
340
|
-
return UNSAFE_componentWillReceiveProps;
|
|
341
|
-
}())
|
|
342
258
|
}, {
|
|
343
259
|
key: "componentDidUpdate",
|
|
344
260
|
value: function () {
|
|
345
|
-
var _componentDidUpdate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
261
|
+
var _componentDidUpdate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(prevProps) {
|
|
346
262
|
var imageSourceRect, props, nextZoom, nextUseConstraints, nextContainerWidth, nextContainerHeight, nextMargin, nextSrc, nextOnImageActions, prevZoom, prevUseConstraints, prevContainerWidth, prevContainerHeight, prevMargin, prevSrc, prevOnImageActions, isZoomChange, isUseConstraintsChange, isContainerWidthChange, isContainerHeightChange, isMarginChange, isImageActionChange, zoomReset, fileInfo;
|
|
347
|
-
return _regenerator.default.wrap(function (
|
|
348
|
-
while (1) switch (
|
|
263
|
+
return _regenerator.default.wrap(function (_context) {
|
|
264
|
+
while (1) switch (_context.prev = _context.next) {
|
|
349
265
|
case 0:
|
|
350
|
-
if ((0, _platformFeatureFlags.fg)('platform_media_package_react19_lifecycle_fix')) {
|
|
351
|
-
_context2.next = 1;
|
|
352
|
-
break;
|
|
353
|
-
}
|
|
354
|
-
return _context2.abrupt("return");
|
|
355
|
-
case 1:
|
|
356
266
|
imageSourceRect = this.imageSourceRect, props = this.props;
|
|
357
267
|
nextZoom = props.zoom, nextUseConstraints = props.useConstraints, nextContainerWidth = props.containerWidth, nextContainerHeight = props.containerHeight, nextMargin = props.margin, nextSrc = props.src, nextOnImageActions = props.onImageActions;
|
|
358
268
|
prevZoom = prevProps.zoom, prevUseConstraints = prevProps.useConstraints, prevContainerWidth = prevProps.containerWidth, prevContainerHeight = prevProps.containerHeight, prevMargin = prevProps.margin, prevSrc = prevProps.src, prevOnImageActions = prevProps.onImageActions;
|
|
@@ -380,44 +290,44 @@ var ImagePlacer = exports.ImagePlacer = /*#__PURE__*/function (_React$Component)
|
|
|
380
290
|
this.updateZoomProp();
|
|
381
291
|
}
|
|
382
292
|
if (!(nextSrc !== prevSrc)) {
|
|
383
|
-
|
|
293
|
+
_context.next = 5;
|
|
384
294
|
break;
|
|
385
295
|
}
|
|
386
296
|
if (!(nextSrc instanceof File)) {
|
|
387
|
-
|
|
297
|
+
_context.next = 2;
|
|
388
298
|
break;
|
|
389
299
|
}
|
|
390
|
-
|
|
300
|
+
_context.next = 1;
|
|
391
301
|
return (0, _mediaUi.getFileInfo)(nextSrc);
|
|
302
|
+
case 1:
|
|
303
|
+
fileInfo = _context.sent;
|
|
392
304
|
case 2:
|
|
393
|
-
fileInfo = _context2.sent;
|
|
394
|
-
case 3:
|
|
395
305
|
if (!(typeof nextSrc === 'string')) {
|
|
396
|
-
|
|
306
|
+
_context.next = 4;
|
|
397
307
|
break;
|
|
398
308
|
}
|
|
399
|
-
|
|
309
|
+
_context.next = 3;
|
|
400
310
|
return (0, _mediaUi.getFileInfoFromSrc)(nextSrc);
|
|
311
|
+
case 3:
|
|
312
|
+
fileInfo = _context.sent;
|
|
401
313
|
case 4:
|
|
402
|
-
fileInfo = _context2.sent;
|
|
403
|
-
case 5:
|
|
404
314
|
if (!fileInfo) {
|
|
405
|
-
|
|
315
|
+
_context.next = 5;
|
|
406
316
|
break;
|
|
407
317
|
}
|
|
408
|
-
|
|
318
|
+
_context.next = 5;
|
|
409
319
|
return this.preprocessFile(fileInfo);
|
|
410
|
-
case
|
|
320
|
+
case 5:
|
|
411
321
|
if (isImageActionChange) {
|
|
412
322
|
this.provideImageActions();
|
|
413
323
|
}
|
|
414
|
-
case
|
|
324
|
+
case 6:
|
|
415
325
|
case "end":
|
|
416
|
-
return
|
|
326
|
+
return _context.stop();
|
|
417
327
|
}
|
|
418
|
-
},
|
|
328
|
+
}, _callee, this);
|
|
419
329
|
}));
|
|
420
|
-
function componentDidUpdate(
|
|
330
|
+
function componentDidUpdate(_x) {
|
|
421
331
|
return _componentDidUpdate.apply(this, arguments);
|
|
422
332
|
}
|
|
423
333
|
return componentDidUpdate;
|
|
@@ -425,16 +335,16 @@ var ImagePlacer = exports.ImagePlacer = /*#__PURE__*/function (_React$Component)
|
|
|
425
335
|
}, {
|
|
426
336
|
key: "preprocessFile",
|
|
427
337
|
value: function () {
|
|
428
|
-
var _preprocessFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
338
|
+
var _preprocessFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fileInfo) {
|
|
429
339
|
var maxZoom, previewInfo, width, height;
|
|
430
|
-
return _regenerator.default.wrap(function (
|
|
431
|
-
while (1) switch (
|
|
340
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
341
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
432
342
|
case 0:
|
|
433
343
|
maxZoom = this.props.maxZoom;
|
|
434
|
-
|
|
344
|
+
_context2.next = 1;
|
|
435
345
|
return (0, _imageProcessor.initialiseImagePreview)(fileInfo, this.containerRect, maxZoom);
|
|
436
346
|
case 1:
|
|
437
|
-
previewInfo =
|
|
347
|
+
previewInfo = _context2.sent;
|
|
438
348
|
if (previewInfo) {
|
|
439
349
|
width = previewInfo.width, height = previewInfo.height;
|
|
440
350
|
this.imageSourceRect = new _mediaUi.Rectangle(width, height);
|
|
@@ -447,11 +357,11 @@ var ImagePlacer = exports.ImagePlacer = /*#__PURE__*/function (_React$Component)
|
|
|
447
357
|
}
|
|
448
358
|
case 2:
|
|
449
359
|
case "end":
|
|
450
|
-
return
|
|
360
|
+
return _context2.stop();
|
|
451
361
|
}
|
|
452
|
-
},
|
|
362
|
+
}, _callee2, this);
|
|
453
363
|
}));
|
|
454
|
-
function preprocessFile(
|
|
364
|
+
function preprocessFile(_x2) {
|
|
455
365
|
return _preprocessFile.apply(this, arguments);
|
|
456
366
|
}
|
|
457
367
|
return preprocessFile;
|
|
@@ -9,7 +9,6 @@ import { ImagePlacerImage } from './image';
|
|
|
9
9
|
import { Margin } from './margin';
|
|
10
10
|
import { initialiseImagePreview, renderImageAtCurrentView } from './imageProcessor';
|
|
11
11
|
import { zoomToFit, applyConstraints, transformVisibleBoundsToImageCoords } from './constraints';
|
|
12
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
13
12
|
import { ImagePlacerErrorWrapper } from './imagePlacerErrorWrapper';
|
|
14
13
|
import { isSSR } from '../util';
|
|
15
14
|
|
|
@@ -245,77 +244,7 @@ export class ImagePlacer extends React.Component {
|
|
|
245
244
|
});
|
|
246
245
|
}
|
|
247
246
|
}
|
|
248
|
-
|
|
249
|
-
/* respond to prop changes */
|
|
250
|
-
async UNSAFE_componentWillReceiveProps(nextProps) {
|
|
251
|
-
if (fg('platform_media_package_react19_lifecycle_fix')) {
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
const {
|
|
255
|
-
imageSourceRect,
|
|
256
|
-
state,
|
|
257
|
-
props
|
|
258
|
-
} = this;
|
|
259
|
-
const {
|
|
260
|
-
zoom
|
|
261
|
-
} = state;
|
|
262
|
-
const {
|
|
263
|
-
useConstraints: currentUseConstraints,
|
|
264
|
-
containerWidth: currentContainerWidth,
|
|
265
|
-
containerHeight: currentContainerHeight,
|
|
266
|
-
margin: currentMargin,
|
|
267
|
-
src: currentSrc
|
|
268
|
-
} = props;
|
|
269
|
-
const {
|
|
270
|
-
zoom: nextZoom,
|
|
271
|
-
useConstraints: nextUseConstraints,
|
|
272
|
-
containerWidth: nextContainerWidth,
|
|
273
|
-
containerHeight: nextContainerHeight,
|
|
274
|
-
margin: nextMargin,
|
|
275
|
-
src: nextSrc,
|
|
276
|
-
onImageActions: nextOnImageActions
|
|
277
|
-
} = nextProps;
|
|
278
|
-
const isZoomChange = nextZoom !== undefined && nextZoom !== zoom;
|
|
279
|
-
const isUseConstraintsChange = nextUseConstraints !== undefined && nextUseConstraints !== currentUseConstraints;
|
|
280
|
-
const isContainerWidthChange = nextContainerWidth !== undefined && nextContainerWidth !== currentContainerWidth;
|
|
281
|
-
const isContainerHeightChange = nextContainerHeight !== undefined && nextContainerHeight !== currentContainerHeight;
|
|
282
|
-
const isMarginChange = nextMargin !== undefined && nextMargin !== currentMargin;
|
|
283
|
-
const isImageAction = typeof nextOnImageActions !== undefined;
|
|
284
|
-
const zoomReset = {
|
|
285
|
-
zoom: 0
|
|
286
|
-
};
|
|
287
|
-
if (isZoomChange) {
|
|
288
|
-
this.setZoom(nextZoom);
|
|
289
|
-
}
|
|
290
|
-
if (isUseConstraintsChange) {
|
|
291
|
-
this.setState({
|
|
292
|
-
zoom: 0,
|
|
293
|
-
imageWidth: imageSourceRect.width,
|
|
294
|
-
imageHeight: imageSourceRect.height
|
|
295
|
-
}, this.update);
|
|
296
|
-
}
|
|
297
|
-
if (isContainerWidthChange || isContainerHeightChange || isMarginChange) {
|
|
298
|
-
this.setState(zoomReset, this.update);
|
|
299
|
-
this.updateZoomProp();
|
|
300
|
-
}
|
|
301
|
-
let fileInfo;
|
|
302
|
-
if (nextSrc instanceof File && nextSrc !== currentSrc) {
|
|
303
|
-
fileInfo = await getFileInfo(nextSrc);
|
|
304
|
-
}
|
|
305
|
-
if (typeof nextSrc === 'string' && nextSrc !== currentSrc) {
|
|
306
|
-
fileInfo = await getFileInfoFromSrc(nextSrc);
|
|
307
|
-
}
|
|
308
|
-
if (fileInfo) {
|
|
309
|
-
await this.preprocessFile(fileInfo);
|
|
310
|
-
}
|
|
311
|
-
if (isImageAction) {
|
|
312
|
-
this.provideImageActions();
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
247
|
async componentDidUpdate(prevProps) {
|
|
316
|
-
if (!fg('platform_media_package_react19_lifecycle_fix')) {
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
248
|
const {
|
|
320
249
|
imageSourceRect,
|
|
321
250
|
props
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* index.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
|
-
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
3
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
4
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -19,7 +18,6 @@ import { ImagePlacerImage } from './image';
|
|
|
19
18
|
import { Margin } from './margin';
|
|
20
19
|
import { initialiseImagePreview, renderImageAtCurrentView } from './imageProcessor';
|
|
21
20
|
import { zoomToFit as _zoomToFit, applyConstraints as _applyConstraints, transformVisibleBoundsToImageCoords as _transformVisibleBoundsToImageCoords } from './constraints';
|
|
22
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
23
21
|
import { ImagePlacerErrorWrapper } from './imagePlacerErrorWrapper';
|
|
24
22
|
import { isSSR } from '../util';
|
|
25
23
|
|
|
@@ -251,102 +249,14 @@ export var ImagePlacer = /*#__PURE__*/function (_React$Component) {
|
|
|
251
249
|
});
|
|
252
250
|
}
|
|
253
251
|
}
|
|
254
|
-
|
|
255
|
-
/* respond to prop changes */
|
|
256
|
-
}, {
|
|
257
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
258
|
-
value: (function () {
|
|
259
|
-
var _UNSAFE_componentWillReceiveProps = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(nextProps) {
|
|
260
|
-
var imageSourceRect, state, props, zoom, currentUseConstraints, currentContainerWidth, currentContainerHeight, currentMargin, currentSrc, nextZoom, nextUseConstraints, nextContainerWidth, nextContainerHeight, nextMargin, nextSrc, nextOnImageActions, isZoomChange, isUseConstraintsChange, isContainerWidthChange, isContainerHeightChange, isMarginChange, isImageAction, zoomReset, fileInfo;
|
|
261
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
262
|
-
while (1) switch (_context.prev = _context.next) {
|
|
263
|
-
case 0:
|
|
264
|
-
if (!fg('platform_media_package_react19_lifecycle_fix')) {
|
|
265
|
-
_context.next = 1;
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
return _context.abrupt("return");
|
|
269
|
-
case 1:
|
|
270
|
-
imageSourceRect = this.imageSourceRect, state = this.state, props = this.props;
|
|
271
|
-
zoom = state.zoom;
|
|
272
|
-
currentUseConstraints = props.useConstraints, currentContainerWidth = props.containerWidth, currentContainerHeight = props.containerHeight, currentMargin = props.margin, currentSrc = props.src;
|
|
273
|
-
nextZoom = nextProps.zoom, nextUseConstraints = nextProps.useConstraints, nextContainerWidth = nextProps.containerWidth, nextContainerHeight = nextProps.containerHeight, nextMargin = nextProps.margin, nextSrc = nextProps.src, nextOnImageActions = nextProps.onImageActions;
|
|
274
|
-
isZoomChange = nextZoom !== undefined && nextZoom !== zoom;
|
|
275
|
-
isUseConstraintsChange = nextUseConstraints !== undefined && nextUseConstraints !== currentUseConstraints;
|
|
276
|
-
isContainerWidthChange = nextContainerWidth !== undefined && nextContainerWidth !== currentContainerWidth;
|
|
277
|
-
isContainerHeightChange = nextContainerHeight !== undefined && nextContainerHeight !== currentContainerHeight;
|
|
278
|
-
isMarginChange = nextMargin !== undefined && nextMargin !== currentMargin;
|
|
279
|
-
isImageAction = _typeof(nextOnImageActions) !== undefined;
|
|
280
|
-
zoomReset = {
|
|
281
|
-
zoom: 0
|
|
282
|
-
};
|
|
283
|
-
if (isZoomChange) {
|
|
284
|
-
this.setZoom(nextZoom);
|
|
285
|
-
}
|
|
286
|
-
if (isUseConstraintsChange) {
|
|
287
|
-
this.setState({
|
|
288
|
-
zoom: 0,
|
|
289
|
-
imageWidth: imageSourceRect.width,
|
|
290
|
-
imageHeight: imageSourceRect.height
|
|
291
|
-
}, this.update);
|
|
292
|
-
}
|
|
293
|
-
if (isContainerWidthChange || isContainerHeightChange || isMarginChange) {
|
|
294
|
-
this.setState(zoomReset, this.update);
|
|
295
|
-
this.updateZoomProp();
|
|
296
|
-
}
|
|
297
|
-
if (!(nextSrc instanceof File && nextSrc !== currentSrc)) {
|
|
298
|
-
_context.next = 3;
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
_context.next = 2;
|
|
302
|
-
return getFileInfo(nextSrc);
|
|
303
|
-
case 2:
|
|
304
|
-
fileInfo = _context.sent;
|
|
305
|
-
case 3:
|
|
306
|
-
if (!(typeof nextSrc === 'string' && nextSrc !== currentSrc)) {
|
|
307
|
-
_context.next = 5;
|
|
308
|
-
break;
|
|
309
|
-
}
|
|
310
|
-
_context.next = 4;
|
|
311
|
-
return getFileInfoFromSrc(nextSrc);
|
|
312
|
-
case 4:
|
|
313
|
-
fileInfo = _context.sent;
|
|
314
|
-
case 5:
|
|
315
|
-
if (!fileInfo) {
|
|
316
|
-
_context.next = 6;
|
|
317
|
-
break;
|
|
318
|
-
}
|
|
319
|
-
_context.next = 6;
|
|
320
|
-
return this.preprocessFile(fileInfo);
|
|
321
|
-
case 6:
|
|
322
|
-
if (isImageAction) {
|
|
323
|
-
this.provideImageActions();
|
|
324
|
-
}
|
|
325
|
-
case 7:
|
|
326
|
-
case "end":
|
|
327
|
-
return _context.stop();
|
|
328
|
-
}
|
|
329
|
-
}, _callee, this);
|
|
330
|
-
}));
|
|
331
|
-
function UNSAFE_componentWillReceiveProps(_x) {
|
|
332
|
-
return _UNSAFE_componentWillReceiveProps.apply(this, arguments);
|
|
333
|
-
}
|
|
334
|
-
return UNSAFE_componentWillReceiveProps;
|
|
335
|
-
}())
|
|
336
252
|
}, {
|
|
337
253
|
key: "componentDidUpdate",
|
|
338
254
|
value: function () {
|
|
339
|
-
var _componentDidUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
255
|
+
var _componentDidUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(prevProps) {
|
|
340
256
|
var imageSourceRect, props, nextZoom, nextUseConstraints, nextContainerWidth, nextContainerHeight, nextMargin, nextSrc, nextOnImageActions, prevZoom, prevUseConstraints, prevContainerWidth, prevContainerHeight, prevMargin, prevSrc, prevOnImageActions, isZoomChange, isUseConstraintsChange, isContainerWidthChange, isContainerHeightChange, isMarginChange, isImageActionChange, zoomReset, fileInfo;
|
|
341
|
-
return _regeneratorRuntime.wrap(function (
|
|
342
|
-
while (1) switch (
|
|
257
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
258
|
+
while (1) switch (_context.prev = _context.next) {
|
|
343
259
|
case 0:
|
|
344
|
-
if (fg('platform_media_package_react19_lifecycle_fix')) {
|
|
345
|
-
_context2.next = 1;
|
|
346
|
-
break;
|
|
347
|
-
}
|
|
348
|
-
return _context2.abrupt("return");
|
|
349
|
-
case 1:
|
|
350
260
|
imageSourceRect = this.imageSourceRect, props = this.props;
|
|
351
261
|
nextZoom = props.zoom, nextUseConstraints = props.useConstraints, nextContainerWidth = props.containerWidth, nextContainerHeight = props.containerHeight, nextMargin = props.margin, nextSrc = props.src, nextOnImageActions = props.onImageActions;
|
|
352
262
|
prevZoom = prevProps.zoom, prevUseConstraints = prevProps.useConstraints, prevContainerWidth = prevProps.containerWidth, prevContainerHeight = prevProps.containerHeight, prevMargin = prevProps.margin, prevSrc = prevProps.src, prevOnImageActions = prevProps.onImageActions;
|
|
@@ -374,44 +284,44 @@ export var ImagePlacer = /*#__PURE__*/function (_React$Component) {
|
|
|
374
284
|
this.updateZoomProp();
|
|
375
285
|
}
|
|
376
286
|
if (!(nextSrc !== prevSrc)) {
|
|
377
|
-
|
|
287
|
+
_context.next = 5;
|
|
378
288
|
break;
|
|
379
289
|
}
|
|
380
290
|
if (!(nextSrc instanceof File)) {
|
|
381
|
-
|
|
291
|
+
_context.next = 2;
|
|
382
292
|
break;
|
|
383
293
|
}
|
|
384
|
-
|
|
294
|
+
_context.next = 1;
|
|
385
295
|
return getFileInfo(nextSrc);
|
|
296
|
+
case 1:
|
|
297
|
+
fileInfo = _context.sent;
|
|
386
298
|
case 2:
|
|
387
|
-
fileInfo = _context2.sent;
|
|
388
|
-
case 3:
|
|
389
299
|
if (!(typeof nextSrc === 'string')) {
|
|
390
|
-
|
|
300
|
+
_context.next = 4;
|
|
391
301
|
break;
|
|
392
302
|
}
|
|
393
|
-
|
|
303
|
+
_context.next = 3;
|
|
394
304
|
return getFileInfoFromSrc(nextSrc);
|
|
305
|
+
case 3:
|
|
306
|
+
fileInfo = _context.sent;
|
|
395
307
|
case 4:
|
|
396
|
-
fileInfo = _context2.sent;
|
|
397
|
-
case 5:
|
|
398
308
|
if (!fileInfo) {
|
|
399
|
-
|
|
309
|
+
_context.next = 5;
|
|
400
310
|
break;
|
|
401
311
|
}
|
|
402
|
-
|
|
312
|
+
_context.next = 5;
|
|
403
313
|
return this.preprocessFile(fileInfo);
|
|
404
|
-
case
|
|
314
|
+
case 5:
|
|
405
315
|
if (isImageActionChange) {
|
|
406
316
|
this.provideImageActions();
|
|
407
317
|
}
|
|
408
|
-
case
|
|
318
|
+
case 6:
|
|
409
319
|
case "end":
|
|
410
|
-
return
|
|
320
|
+
return _context.stop();
|
|
411
321
|
}
|
|
412
|
-
},
|
|
322
|
+
}, _callee, this);
|
|
413
323
|
}));
|
|
414
|
-
function componentDidUpdate(
|
|
324
|
+
function componentDidUpdate(_x) {
|
|
415
325
|
return _componentDidUpdate.apply(this, arguments);
|
|
416
326
|
}
|
|
417
327
|
return componentDidUpdate;
|
|
@@ -419,16 +329,16 @@ export var ImagePlacer = /*#__PURE__*/function (_React$Component) {
|
|
|
419
329
|
}, {
|
|
420
330
|
key: "preprocessFile",
|
|
421
331
|
value: function () {
|
|
422
|
-
var _preprocessFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
332
|
+
var _preprocessFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(fileInfo) {
|
|
423
333
|
var maxZoom, previewInfo, width, height;
|
|
424
|
-
return _regeneratorRuntime.wrap(function (
|
|
425
|
-
while (1) switch (
|
|
334
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
335
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
426
336
|
case 0:
|
|
427
337
|
maxZoom = this.props.maxZoom;
|
|
428
|
-
|
|
338
|
+
_context2.next = 1;
|
|
429
339
|
return initialiseImagePreview(fileInfo, this.containerRect, maxZoom);
|
|
430
340
|
case 1:
|
|
431
|
-
previewInfo =
|
|
341
|
+
previewInfo = _context2.sent;
|
|
432
342
|
if (previewInfo) {
|
|
433
343
|
width = previewInfo.width, height = previewInfo.height;
|
|
434
344
|
this.imageSourceRect = new Rectangle(width, height);
|
|
@@ -441,11 +351,11 @@ export var ImagePlacer = /*#__PURE__*/function (_React$Component) {
|
|
|
441
351
|
}
|
|
442
352
|
case 2:
|
|
443
353
|
case "end":
|
|
444
|
-
return
|
|
354
|
+
return _context2.stop();
|
|
445
355
|
}
|
|
446
|
-
},
|
|
356
|
+
}, _callee2, this);
|
|
447
357
|
}));
|
|
448
|
-
function preprocessFile(
|
|
358
|
+
function preprocessFile(_x2) {
|
|
449
359
|
return _preprocessFile.apply(this, arguments);
|
|
450
360
|
}
|
|
451
361
|
return preprocessFile;
|
|
@@ -81,7 +81,6 @@ export declare class ImagePlacer extends React.Component<ImagePlacerProps, Image
|
|
|
81
81
|
get sourceBounds(): Bounds;
|
|
82
82
|
constructor(props: ImagePlacerProps);
|
|
83
83
|
private provideImageActions;
|
|
84
|
-
UNSAFE_componentWillReceiveProps(nextProps: ImagePlacerProps): Promise<void>;
|
|
85
84
|
componentDidUpdate(prevProps: ImagePlacerProps): Promise<void>;
|
|
86
85
|
preprocessFile(fileInfo: FileInfo): Promise<void>;
|
|
87
86
|
setSrc(fileInfo: FileInfo): void;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured MCP docs for `@atlaskit/media-avatar-picker`.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import path from 'path';
|
|
6
|
+
|
|
7
|
+
import type { StructuredContentSource } from '@atlassian/structured-docs-types/types';
|
|
8
|
+
|
|
9
|
+
import packageJson from './package.json';
|
|
10
|
+
|
|
11
|
+
const packagePath = path.resolve(__dirname);
|
|
12
|
+
|
|
13
|
+
const documentation: StructuredContentSource = {
|
|
14
|
+
package: {
|
|
15
|
+
package: '@atlaskit/media-avatar-picker',
|
|
16
|
+
packagePath,
|
|
17
|
+
packageJson,
|
|
18
|
+
overview:
|
|
19
|
+
'A component to select, drag and resize image avatars. It also provides a default list of predefined avatars.',
|
|
20
|
+
},
|
|
21
|
+
components: [
|
|
22
|
+
{
|
|
23
|
+
name: 'AvatarPickerDialog',
|
|
24
|
+
description: 'Main dialog component that orchestrates the avatar selection experience.',
|
|
25
|
+
status: 'general-availability',
|
|
26
|
+
import: {
|
|
27
|
+
name: 'AvatarPickerDialog',
|
|
28
|
+
package: '@atlaskit/media-avatar-picker',
|
|
29
|
+
type: 'named',
|
|
30
|
+
packagePath,
|
|
31
|
+
packageJson,
|
|
32
|
+
},
|
|
33
|
+
usageGuidelines: [
|
|
34
|
+
'Use `AvatarPickerDialog` when you need to allow users to upload or select an avatar.',
|
|
35
|
+
],
|
|
36
|
+
keywords: ['media', 'avatar', 'picker', 'upload'],
|
|
37
|
+
categories: ['media'],
|
|
38
|
+
examples: [
|
|
39
|
+
{
|
|
40
|
+
name: 'Avatar picker with source',
|
|
41
|
+
description: 'Basic usage of AvatarPickerDialog with an initial image source.',
|
|
42
|
+
source: path.resolve(packagePath, './examples/0-avatar-picker-with-source.tsx'),
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'ImageCropper',
|
|
48
|
+
description: 'Interactive component for cropping uploaded images.',
|
|
49
|
+
status: 'general-availability',
|
|
50
|
+
import: {
|
|
51
|
+
name: 'ImageCropper',
|
|
52
|
+
package: '@atlaskit/media-avatar-picker/image-cropper',
|
|
53
|
+
type: 'named',
|
|
54
|
+
packagePath,
|
|
55
|
+
packageJson,
|
|
56
|
+
},
|
|
57
|
+
usageGuidelines: ['Use `ImageCropper` for standalone image cropping functionality.'],
|
|
58
|
+
keywords: ['media', 'crop', 'image'],
|
|
59
|
+
categories: ['media'],
|
|
60
|
+
examples: [
|
|
61
|
+
{
|
|
62
|
+
name: 'Image cropper',
|
|
63
|
+
description: 'Basic usage of ImageCropper.',
|
|
64
|
+
source: path.resolve(packagePath, './examples/1-image-cropper.tsx'),
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export default documentation;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-avatar-picker",
|
|
3
|
-
"version": "28.
|
|
3
|
+
"version": "28.1.1",
|
|
4
4
|
"description": "A component to select, drag and resize image avatars. It also provides a default list of predefined avatars.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"react-compiler": {
|
|
21
21
|
"enabled": true,
|
|
22
22
|
"gating": {
|
|
23
|
-
"source": "@
|
|
23
|
+
"source": "@atlaskit/react-compiler-gating",
|
|
24
24
|
"importSpecifierName": "isReactCompilerActivePlatform"
|
|
25
25
|
}
|
|
26
26
|
},
|
|
@@ -30,21 +30,21 @@
|
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@atlaskit/button": "^24.
|
|
33
|
+
"@atlaskit/button": "^24.3.0",
|
|
34
34
|
"@atlaskit/css": "^1.0.0",
|
|
35
|
-
"@atlaskit/flag": "^18.
|
|
36
|
-
"@atlaskit/form": "^16.
|
|
37
|
-
"@atlaskit/icon": "^36.
|
|
38
|
-
"@atlaskit/media-ui": "^30.
|
|
39
|
-
"@atlaskit/modal-dialog": "^16.
|
|
35
|
+
"@atlaskit/flag": "^18.1.0",
|
|
36
|
+
"@atlaskit/form": "^16.1.0",
|
|
37
|
+
"@atlaskit/icon": "^36.2.0",
|
|
38
|
+
"@atlaskit/media-ui": "^30.6.0",
|
|
39
|
+
"@atlaskit/modal-dialog": "^16.1.0",
|
|
40
40
|
"@atlaskit/platform-feature-flags": "^2.0.0",
|
|
41
|
-
"@atlaskit/primitives": "^20.
|
|
42
|
-
"@atlaskit/range": "^11.
|
|
43
|
-
"@atlaskit/
|
|
44
|
-
"@atlaskit/
|
|
45
|
-
"@atlaskit/
|
|
46
|
-
"@atlaskit/
|
|
47
|
-
"@
|
|
41
|
+
"@atlaskit/primitives": "^20.5.0",
|
|
42
|
+
"@atlaskit/range": "^11.1.0",
|
|
43
|
+
"@atlaskit/react-compiler-gating": "^0.2.0",
|
|
44
|
+
"@atlaskit/spinner": "^20.1.0",
|
|
45
|
+
"@atlaskit/textfield": "^9.1.0",
|
|
46
|
+
"@atlaskit/tokens": "^15.5.0",
|
|
47
|
+
"@atlaskit/visually-hidden": "^4.1.0",
|
|
48
48
|
"@babel/runtime": "^7.0.0",
|
|
49
49
|
"@compiled/react": "^0.20.0",
|
|
50
50
|
"exenv": "^1.2.2",
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@atlaskit/media-core": "^38.0.0",
|
|
60
|
-
"@atlaskit/media-test-helpers": "^42.
|
|
61
|
-
"@atlassian/a11y-jest-testing": "^0.
|
|
62
|
-
"@atlassian/testing-library": "^0.
|
|
60
|
+
"@atlaskit/media-test-helpers": "^42.2.0",
|
|
61
|
+
"@atlassian/a11y-jest-testing": "^0.13.0",
|
|
62
|
+
"@atlassian/testing-library": "^0.11.0",
|
|
63
63
|
"@testing-library/react": "^16.3.0",
|
|
64
64
|
"@testing-library/user-event": "^14.4.3",
|
|
65
65
|
"@types/exenv": "^1.2.0",
|
|
@@ -67,11 +67,6 @@
|
|
|
67
67
|
"react-dom": "^18.2.0",
|
|
68
68
|
"react-intl": "^7.0.0"
|
|
69
69
|
},
|
|
70
|
-
"platform-feature-flags": {
|
|
71
|
-
"platform_media_package_react19_lifecycle_fix": {
|
|
72
|
-
"type": "boolean"
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
70
|
"techstack": {
|
|
76
71
|
"@repo/internal": {
|
|
77
72
|
"design-tokens": [
|