@atlaskit/media-card 77.12.1 → 77.12.3

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.
Files changed (164) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/compass.yml +6 -3
  3. package/dist/cjs/card/card.js +1 -1
  4. package/dist/cjs/card/cardView.js +1 -1
  5. package/dist/cjs/card/inlinePlayerWrapper.js +4 -1
  6. package/dist/cjs/card/inlinePlayerWrapperStyles.js +1 -1
  7. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  8. package/dist/cjs/card/ui/actionsBar/actionsBarWrapper.js +4 -1
  9. package/dist/cjs/card/ui/actionsBar/cardActions/cardActionButton.js +5 -1
  10. package/dist/cjs/card/ui/actionsBar/cardActions/cardActionsView.js +1 -1
  11. package/dist/cjs/card/ui/actionsBar/cardActions/styles.js +14 -2
  12. package/dist/cjs/card/ui/actionsBar/styles.js +13 -8
  13. package/dist/cjs/card/ui/blanket/blanket.js +2 -0
  14. package/dist/cjs/card/ui/blanket/styles.js +8 -2
  15. package/dist/cjs/card/ui/iconMessage/iconMessageWrapper.js +3 -0
  16. package/dist/cjs/card/ui/iconWrapper/iconWrapper.js +4 -1
  17. package/dist/cjs/card/ui/iconWrapper/styles.js +3 -0
  18. package/dist/cjs/card/ui/openMediaViewerButton/openMediaViewerButton.js +9 -20
  19. package/dist/cjs/card/ui/playButton/playButtonBackground.js +2 -1
  20. package/dist/cjs/card/ui/playButton/playButtonWrapper.js +2 -1
  21. package/dist/cjs/card/ui/playButton/styles.js +7 -0
  22. package/dist/cjs/card/ui/progressBar/styledBar.js +4 -1
  23. package/dist/cjs/card/ui/progressBar/styles.js +3 -0
  24. package/dist/cjs/card/ui/tickBox/tickBoxWrapper.js +14 -3
  25. package/dist/cjs/card/ui/titleBox/styles.js +24 -4
  26. package/dist/cjs/card/ui/titleBox/titleBoxComponents.js +30 -17
  27. package/dist/cjs/card/ui/unhandledErrorCard/index.js +22 -11
  28. package/dist/cjs/card/ui/wrapper/imageContainer.js +1 -0
  29. package/dist/cjs/card/ui/wrapper/styles.js +1 -1
  30. package/dist/cjs/card/ui/wrapper/wrapper.js +4 -1
  31. package/dist/cjs/card/v2/cardV2.js +1 -1
  32. package/dist/cjs/card/v2/cardViewV2.js +1 -1
  33. package/dist/cjs/card/v2/cardviews/cardViewWrapper.js +1 -0
  34. package/dist/cjs/card/v2/cardviews/errorCardView.js +1 -0
  35. package/dist/cjs/card/v2/cardviews/iconCardView.js +1 -0
  36. package/dist/cjs/card/v2/cardviews/imageCardView.js +1 -0
  37. package/dist/cjs/card/v2/cardviews/index.js +1 -0
  38. package/dist/cjs/card/v2/cardviews/loadingCardView.js +1 -0
  39. package/dist/cjs/card/v2/cardviews/processingCardView.js +1 -0
  40. package/dist/cjs/card/v2/cardviews/videoCardView.js +1 -0
  41. package/dist/cjs/card/v2/fileCard.js +18 -4
  42. package/dist/cjs/card/v2/svgView/errors.js +16 -0
  43. package/dist/cjs/card/v2/svgView/svgView.js +12 -1
  44. package/dist/cjs/inline/loader.js +1 -1
  45. package/dist/cjs/utils/analytics/analytics.js +3 -0
  46. package/dist/cjs/utils/lightCards/errorIcon/index.js +10 -7
  47. package/dist/cjs/utils/lightCards/errorIcon/styles.js +3 -0
  48. package/dist/cjs/utils/lightCards/lightCardWrappers.js +9 -5
  49. package/dist/cjs/utils/lightCards/styles.js +10 -2
  50. package/dist/cjs/utils/ufoExperiences.js +1 -1
  51. package/dist/es2019/card/card.js +1 -1
  52. package/dist/es2019/card/cardView.js +1 -0
  53. package/dist/es2019/card/inlinePlayerWrapper.js +4 -1
  54. package/dist/es2019/card/inlinePlayerWrapperStyles.js +1 -0
  55. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  56. package/dist/es2019/card/ui/actionsBar/actionsBarWrapper.js +4 -1
  57. package/dist/es2019/card/ui/actionsBar/cardActions/cardActionButton.js +4 -1
  58. package/dist/es2019/card/ui/actionsBar/cardActions/cardActionsView.js +1 -0
  59. package/dist/es2019/card/ui/actionsBar/cardActions/styles.js +14 -2
  60. package/dist/es2019/card/ui/actionsBar/styles.js +4 -1
  61. package/dist/es2019/card/ui/blanket/blanket.js +2 -0
  62. package/dist/es2019/card/ui/blanket/styles.js +7 -2
  63. package/dist/es2019/card/ui/iconMessage/iconMessageWrapper.js +2 -0
  64. package/dist/es2019/card/ui/iconWrapper/iconWrapper.js +4 -1
  65. package/dist/es2019/card/ui/iconWrapper/styles.js +2 -0
  66. package/dist/es2019/card/ui/openMediaViewerButton/openMediaViewerButton.js +7 -18
  67. package/dist/es2019/card/ui/playButton/playButtonBackground.js +2 -1
  68. package/dist/es2019/card/ui/playButton/playButtonWrapper.js +2 -1
  69. package/dist/es2019/card/ui/playButton/styles.js +6 -0
  70. package/dist/es2019/card/ui/progressBar/styledBar.js +4 -1
  71. package/dist/es2019/card/ui/progressBar/styles.js +2 -0
  72. package/dist/es2019/card/ui/tickBox/tickBoxWrapper.js +13 -3
  73. package/dist/es2019/card/ui/titleBox/styles.js +23 -4
  74. package/dist/es2019/card/ui/titleBox/titleBoxComponents.js +30 -17
  75. package/dist/es2019/card/ui/unhandledErrorCard/index.js +22 -10
  76. package/dist/es2019/card/ui/wrapper/imageContainer.js +1 -0
  77. package/dist/es2019/card/ui/wrapper/styles.js +1 -0
  78. package/dist/es2019/card/ui/wrapper/wrapper.js +4 -1
  79. package/dist/es2019/card/v2/cardV2.js +1 -1
  80. package/dist/es2019/card/v2/cardViewV2.js +1 -0
  81. package/dist/es2019/card/v2/cardviews/cardViewWrapper.js +1 -0
  82. package/dist/es2019/card/v2/cardviews/errorCardView.js +1 -0
  83. package/dist/es2019/card/v2/cardviews/iconCardView.js +1 -0
  84. package/dist/es2019/card/v2/cardviews/imageCardView.js +1 -0
  85. package/dist/es2019/card/v2/cardviews/index.js +1 -0
  86. package/dist/es2019/card/v2/cardviews/loadingCardView.js +1 -0
  87. package/dist/es2019/card/v2/cardviews/processingCardView.js +1 -0
  88. package/dist/es2019/card/v2/cardviews/videoCardView.js +1 -0
  89. package/dist/es2019/card/v2/fileCard.js +18 -4
  90. package/dist/es2019/card/v2/svgView/errors.js +10 -0
  91. package/dist/es2019/card/v2/svgView/svgView.js +12 -1
  92. package/dist/es2019/inline/loader.js +1 -1
  93. package/dist/es2019/utils/analytics/analytics.js +3 -0
  94. package/dist/es2019/utils/lightCards/errorIcon/index.js +10 -6
  95. package/dist/es2019/utils/lightCards/errorIcon/styles.js +3 -0
  96. package/dist/es2019/utils/lightCards/lightCardWrappers.js +9 -5
  97. package/dist/es2019/utils/lightCards/styles.js +9 -2
  98. package/dist/es2019/utils/ufoExperiences.js +1 -1
  99. package/dist/esm/card/card.js +1 -1
  100. package/dist/esm/card/cardView.js +1 -0
  101. package/dist/esm/card/inlinePlayerWrapper.js +4 -1
  102. package/dist/esm/card/inlinePlayerWrapperStyles.js +1 -0
  103. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  104. package/dist/esm/card/ui/actionsBar/actionsBarWrapper.js +4 -1
  105. package/dist/esm/card/ui/actionsBar/cardActions/cardActionButton.js +4 -1
  106. package/dist/esm/card/ui/actionsBar/cardActions/cardActionsView.js +1 -0
  107. package/dist/esm/card/ui/actionsBar/cardActions/styles.js +14 -2
  108. package/dist/esm/card/ui/actionsBar/styles.js +12 -8
  109. package/dist/esm/card/ui/blanket/blanket.js +2 -0
  110. package/dist/esm/card/ui/blanket/styles.js +7 -2
  111. package/dist/esm/card/ui/iconMessage/iconMessageWrapper.js +2 -0
  112. package/dist/esm/card/ui/iconWrapper/iconWrapper.js +4 -1
  113. package/dist/esm/card/ui/iconWrapper/styles.js +2 -0
  114. package/dist/esm/card/ui/openMediaViewerButton/openMediaViewerButton.js +7 -18
  115. package/dist/esm/card/ui/playButton/playButtonBackground.js +2 -1
  116. package/dist/esm/card/ui/playButton/playButtonWrapper.js +2 -1
  117. package/dist/esm/card/ui/playButton/styles.js +6 -0
  118. package/dist/esm/card/ui/progressBar/styledBar.js +4 -1
  119. package/dist/esm/card/ui/progressBar/styles.js +2 -0
  120. package/dist/esm/card/ui/tickBox/tickBoxWrapper.js +13 -3
  121. package/dist/esm/card/ui/titleBox/styles.js +23 -4
  122. package/dist/esm/card/ui/titleBox/titleBoxComponents.js +30 -17
  123. package/dist/esm/card/ui/unhandledErrorCard/index.js +22 -10
  124. package/dist/esm/card/ui/wrapper/imageContainer.js +1 -0
  125. package/dist/esm/card/ui/wrapper/styles.js +1 -0
  126. package/dist/esm/card/ui/wrapper/wrapper.js +4 -1
  127. package/dist/esm/card/v2/cardV2.js +1 -1
  128. package/dist/esm/card/v2/cardViewV2.js +1 -0
  129. package/dist/esm/card/v2/cardviews/cardViewWrapper.js +1 -0
  130. package/dist/esm/card/v2/cardviews/errorCardView.js +1 -0
  131. package/dist/esm/card/v2/cardviews/iconCardView.js +1 -0
  132. package/dist/esm/card/v2/cardviews/imageCardView.js +1 -0
  133. package/dist/esm/card/v2/cardviews/index.js +1 -0
  134. package/dist/esm/card/v2/cardviews/loadingCardView.js +1 -0
  135. package/dist/esm/card/v2/cardviews/processingCardView.js +1 -0
  136. package/dist/esm/card/v2/cardviews/videoCardView.js +1 -0
  137. package/dist/esm/card/v2/fileCard.js +18 -4
  138. package/dist/esm/card/v2/svgView/errors.js +10 -0
  139. package/dist/esm/card/v2/svgView/svgView.js +12 -1
  140. package/dist/esm/inline/loader.js +1 -1
  141. package/dist/esm/utils/analytics/analytics.js +3 -0
  142. package/dist/esm/utils/lightCards/errorIcon/index.js +10 -6
  143. package/dist/esm/utils/lightCards/errorIcon/styles.js +3 -0
  144. package/dist/esm/utils/lightCards/lightCardWrappers.js +9 -5
  145. package/dist/esm/utils/lightCards/styles.js +9 -2
  146. package/dist/esm/utils/ufoExperiences.js +1 -1
  147. package/dist/types/card/ui/openMediaViewerButton/openMediaViewerButton.d.ts +0 -1
  148. package/dist/types/card/v2/svgView/errors.d.ts +3 -0
  149. package/dist/types/card/v2/svgView/svgView.d.ts +4 -3
  150. package/dist/types/errors.d.ts +2 -1
  151. package/dist/types/utils/analytics/analytics.d.ts +2 -1
  152. package/dist/types-ts4.5/card/ui/openMediaViewerButton/openMediaViewerButton.d.ts +0 -1
  153. package/dist/types-ts4.5/card/v2/svgView/errors.d.ts +3 -0
  154. package/dist/types-ts4.5/card/v2/svgView/svgView.d.ts +4 -3
  155. package/dist/types-ts4.5/errors.d.ts +2 -1
  156. package/dist/types-ts4.5/utils/analytics/analytics.d.ts +2 -1
  157. package/example-helpers/cardViewWrapper.tsx +2 -0
  158. package/example-helpers/styles.ts +24 -0
  159. package/example-helpers/svg-helpers/cardContainer.tsx +7 -0
  160. package/example-helpers/svg-helpers/index.ts +1 -1
  161. package/example-helpers/svg-helpers/mediaApiTweaks.ts +64 -0
  162. package/example-helpers/svg-helpers/svgContainer.tsx +1 -0
  163. package/package.json +122 -120
  164. package/example-helpers/svg-helpers/delayApiResponses.ts +0 -31
@@ -5,6 +5,7 @@ import { type FileIdentifier, type ImageResizeMode } from '@atlaskit/media-clien
5
5
  import { type WithAnalyticsEventsProps, type UIAnalyticsEvent } from '@atlaskit/analytics-next';
6
6
  import { type CardStatus, type MediaCardCursor, type CardDimensions } from '../../../types';
7
7
  import { type MediaFilePreview } from '@atlaskit/media-file-preview';
8
+ import { MediaCardError } from '../../../errors';
8
9
  export declare const convertResizeMode: (resizeMode?: ImageResizeMode) => React.CSSProperties['objectFit'];
9
10
  export type OnClickFn = (event: React.MouseEvent<HTMLDivElement | HTMLButtonElement>, analyticsEvent?: UIAnalyticsEvent) => void;
10
11
  export interface SvgViewBaseOwnProps {
@@ -21,11 +22,11 @@ export interface SvgViewBaseOwnProps {
21
22
  readonly progress?: number;
22
23
  readonly alt?: string;
23
24
  readonly resizeMode?: ImageResizeMode;
24
- readonly onImageLoad?: (cardPreview: MediaFilePreview) => void;
25
- readonly onImageError?: (cardPreview: MediaFilePreview) => void;
25
+ readonly onLoad: () => void;
26
+ readonly onError: (error: MediaCardError) => void;
26
27
  readonly shouldOpenMediaViewer?: boolean;
27
28
  readonly openMediaViewerButtonRef?: React.Ref<HTMLButtonElement>;
28
29
  }
29
30
  export type SvgViewProps = SvgViewBaseOwnProps & WithAnalyticsEventsProps;
30
- export declare const SvgViewBase: ({ identifier, dimensions, onClick, onMouseEnter, testId, status, selected, fileName, cardPreview, mediaCardCursor, progress, alt, resizeMode, shouldOpenMediaViewer, openMediaViewerButtonRef, }: SvgViewProps) => jsx.JSX.Element;
31
+ export declare const SvgViewBase: ({ identifier, dimensions, onClick, onMouseEnter, testId, status, selected, fileName, cardPreview, mediaCardCursor, progress, alt, resizeMode, shouldOpenMediaViewer, openMediaViewerButtonRef, onLoad, onError, }: SvgViewProps) => jsx.JSX.Element;
31
32
  export declare const SvgView: React.ForwardRefExoticComponent<Omit<SvgViewBaseOwnProps & WithAnalyticsEventsProps, keyof WithAnalyticsEventsProps> & React.RefAttributes<any>>;
@@ -5,11 +5,12 @@ import { MediaFileStateError } from '@atlaskit/media-client-react';
5
5
  * Primary reason is logged through Data Portal.
6
6
  * Make sure all the values are whitelisted in Measure -> Event Regitry -> "mediaCardRender failed" event
7
7
  */
8
- export type MediaCardErrorPrimaryReason = 'upload' | 'metadata-fetch' | 'error-file-state' | 'failed-processing' | RemotePreviewPrimaryReason | LocalPreviewPrimaryReason | ImageLoadPrimaryReason | SsrPreviewPrimaryReason | 'missing-error-data' | 'preview-fetch';
8
+ export type MediaCardErrorPrimaryReason = 'upload' | 'metadata-fetch' | 'error-file-state' | 'failed-processing' | RemotePreviewPrimaryReason | LocalPreviewPrimaryReason | ImageLoadPrimaryReason | SsrPreviewPrimaryReason | SvgPrimaryReason | 'missing-error-data' | 'preview-fetch';
9
9
  export type ImageLoadPrimaryReason = 'cache-remote-uri' | 'cache-local-uri' | 'local-uri' | 'remote-uri' | 'external-uri' | 'unknown-uri';
10
10
  export type RemotePreviewPrimaryReason = 'remote-preview-fetch' | 'remote-preview-not-ready' | 'remote-preview-fetch-ssr';
11
11
  export type LocalPreviewPrimaryReason = 'local-preview-get' | 'local-preview-unsupported' | 'local-preview-rejected' | 'local-preview-image' | 'local-preview-video';
12
12
  export type SsrPreviewPrimaryReason = 'ssr-client-uri' | 'ssr-client-load' | 'ssr-server-uri' | 'ssr-server-load';
13
+ export type SvgPrimaryReason = 'svg-img-error' | 'svg-binary-fetch' | 'svg-unknown-error';
13
14
  export declare function isMediaFileStateError(err: Error): err is MediaFileStateError;
14
15
  export declare function getFileStateErrorReason(err: MediaFileStateError): MediaClientErrorReason | 'unknown';
15
16
  export declare function isPollingError(err?: Error): boolean;
@@ -1,3 +1,4 @@
1
+ import { type ErrorInfo } from 'react';
1
2
  import { type FileDetails, type FileStatus, type MediaClientErrorReason, type RequestMetadata } from '@atlaskit/media-client';
2
3
  import { type FileAttributes, type PerformanceAttributes, type OperationalEventPayload, type UIEventPayload, type WithFileAttributes, type WithPerformanceAttributes, type SuccessAttributes, type FailureAttributes, type ScreenEventPayload, type ScreenAttributes, type MediaTraceContext, type WithTraceContext } from '@atlaskit/media-common/analytics';
3
4
  import { type CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
@@ -52,7 +53,7 @@ export type ErrorBoundaryErrorInfo = {
52
53
  };
53
54
  export type AnalyticsErrorBoundaryAttributes = {
54
55
  error?: Error | string;
55
- info?: ErrorBoundaryErrorInfo;
56
+ info?: ErrorInfo;
56
57
  browserInfo: string;
57
58
  failReason: string;
58
59
  };
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type WrappedComponentProps } from 'react-intl-next';
3
- export declare const visuallyHiddenStyles: import("@emotion/react").SerializedStyles;
4
3
  declare const _default: React.FC<import("react-intl-next").WithIntlProps<{
5
4
  fileName: string;
6
5
  innerRef: React.Ref<HTMLButtonElement>;
@@ -0,0 +1,3 @@
1
+ import { type MediaSVGErrorReason } from '@atlaskit/media-svg';
2
+ import { type SvgPrimaryReason } from '../../../errors';
3
+ export declare const getErrorReason: (svgReason: MediaSVGErrorReason) => SvgPrimaryReason;
@@ -5,6 +5,7 @@ import { type FileIdentifier, type ImageResizeMode } from '@atlaskit/media-clien
5
5
  import { type WithAnalyticsEventsProps, type UIAnalyticsEvent } from '@atlaskit/analytics-next';
6
6
  import { type CardStatus, type MediaCardCursor, type CardDimensions } from '../../../types';
7
7
  import { type MediaFilePreview } from '@atlaskit/media-file-preview';
8
+ import { MediaCardError } from '../../../errors';
8
9
  export declare const convertResizeMode: (resizeMode?: ImageResizeMode) => React.CSSProperties['objectFit'];
9
10
  export type OnClickFn = (event: React.MouseEvent<HTMLDivElement | HTMLButtonElement>, analyticsEvent?: UIAnalyticsEvent) => void;
10
11
  export interface SvgViewBaseOwnProps {
@@ -21,11 +22,11 @@ export interface SvgViewBaseOwnProps {
21
22
  readonly progress?: number;
22
23
  readonly alt?: string;
23
24
  readonly resizeMode?: ImageResizeMode;
24
- readonly onImageLoad?: (cardPreview: MediaFilePreview) => void;
25
- readonly onImageError?: (cardPreview: MediaFilePreview) => void;
25
+ readonly onLoad: () => void;
26
+ readonly onError: (error: MediaCardError) => void;
26
27
  readonly shouldOpenMediaViewer?: boolean;
27
28
  readonly openMediaViewerButtonRef?: React.Ref<HTMLButtonElement>;
28
29
  }
29
30
  export type SvgViewProps = SvgViewBaseOwnProps & WithAnalyticsEventsProps;
30
- export declare const SvgViewBase: ({ identifier, dimensions, onClick, onMouseEnter, testId, status, selected, fileName, cardPreview, mediaCardCursor, progress, alt, resizeMode, shouldOpenMediaViewer, openMediaViewerButtonRef, }: SvgViewProps) => jsx.JSX.Element;
31
+ export declare const SvgViewBase: ({ identifier, dimensions, onClick, onMouseEnter, testId, status, selected, fileName, cardPreview, mediaCardCursor, progress, alt, resizeMode, shouldOpenMediaViewer, openMediaViewerButtonRef, onLoad, onError, }: SvgViewProps) => jsx.JSX.Element;
31
32
  export declare const SvgView: React.ForwardRefExoticComponent<Omit<SvgViewBaseOwnProps & WithAnalyticsEventsProps, keyof WithAnalyticsEventsProps> & React.RefAttributes<any>>;
@@ -5,11 +5,12 @@ import { MediaFileStateError } from '@atlaskit/media-client-react';
5
5
  * Primary reason is logged through Data Portal.
6
6
  * Make sure all the values are whitelisted in Measure -> Event Regitry -> "mediaCardRender failed" event
7
7
  */
8
- export type MediaCardErrorPrimaryReason = 'upload' | 'metadata-fetch' | 'error-file-state' | 'failed-processing' | RemotePreviewPrimaryReason | LocalPreviewPrimaryReason | ImageLoadPrimaryReason | SsrPreviewPrimaryReason | 'missing-error-data' | 'preview-fetch';
8
+ export type MediaCardErrorPrimaryReason = 'upload' | 'metadata-fetch' | 'error-file-state' | 'failed-processing' | RemotePreviewPrimaryReason | LocalPreviewPrimaryReason | ImageLoadPrimaryReason | SsrPreviewPrimaryReason | SvgPrimaryReason | 'missing-error-data' | 'preview-fetch';
9
9
  export type ImageLoadPrimaryReason = 'cache-remote-uri' | 'cache-local-uri' | 'local-uri' | 'remote-uri' | 'external-uri' | 'unknown-uri';
10
10
  export type RemotePreviewPrimaryReason = 'remote-preview-fetch' | 'remote-preview-not-ready' | 'remote-preview-fetch-ssr';
11
11
  export type LocalPreviewPrimaryReason = 'local-preview-get' | 'local-preview-unsupported' | 'local-preview-rejected' | 'local-preview-image' | 'local-preview-video';
12
12
  export type SsrPreviewPrimaryReason = 'ssr-client-uri' | 'ssr-client-load' | 'ssr-server-uri' | 'ssr-server-load';
13
+ export type SvgPrimaryReason = 'svg-img-error' | 'svg-binary-fetch' | 'svg-unknown-error';
13
14
  export declare function isMediaFileStateError(err: Error): err is MediaFileStateError;
14
15
  export declare function getFileStateErrorReason(err: MediaFileStateError): MediaClientErrorReason | 'unknown';
15
16
  export declare function isPollingError(err?: Error): boolean;
@@ -1,3 +1,4 @@
1
+ import { type ErrorInfo } from 'react';
1
2
  import { type FileDetails, type FileStatus, type MediaClientErrorReason, type RequestMetadata } from '@atlaskit/media-client';
2
3
  import { type FileAttributes, type PerformanceAttributes, type OperationalEventPayload, type UIEventPayload, type WithFileAttributes, type WithPerformanceAttributes, type SuccessAttributes, type FailureAttributes, type ScreenEventPayload, type ScreenAttributes, type MediaTraceContext, type WithTraceContext } from '@atlaskit/media-common/analytics';
3
4
  import { type CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
@@ -52,7 +53,7 @@ export type ErrorBoundaryErrorInfo = {
52
53
  };
53
54
  export type AnalyticsErrorBoundaryAttributes = {
54
55
  error?: Error | string;
55
- info?: ErrorBoundaryErrorInfo;
56
+ info?: ErrorInfo;
56
57
  browserInfo: string;
57
58
  failReason: string;
58
59
  };
@@ -1,4 +1,5 @@
1
1
  /**@jsx jsx */
2
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
2
3
  import { jsx } from '@emotion/react';
3
4
  import { Box, xcss } from '@atlaskit/primitives';
4
5
 
@@ -26,6 +27,7 @@ const largeStyles = xcss({
26
27
 
27
28
  const cardWrapperStyles = ({ small, displayInline }: CardViewWrapperProps) =>
28
29
  xcss({
30
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
29
31
  display: displayInlineStyles(displayInline),
30
32
  marginBlock: 'space.200',
31
33
  marginInline: 'space.250',
@@ -1,21 +1,26 @@
1
1
  import { token } from '@atlaskit/tokens';
2
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
2
3
  import { css } from '@emotion/react';
3
4
 
5
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
4
6
  export const editableCardOptionsStyles = css({
5
7
  padding: token('space.250', '20px'),
6
8
  borderBottom: `1px solid ${token('color.border', '#ccc')}`,
7
9
  maxWidth: '700px',
8
10
  });
9
11
 
12
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
10
13
  export const sliderWrapperStyles = css({
11
14
  display: 'flex',
12
15
  width: '50%',
16
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
13
17
  '> *': {
14
18
  flex: 1,
15
19
  margin: token('space.100', '8px'),
16
20
  },
17
21
  });
18
22
 
23
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
19
24
  export const editableCardContentStyles = css({
20
25
  padding: token('space.250', '20px'),
21
26
  border: '2px dashed',
@@ -28,20 +33,24 @@ export const editableCardContentStyles = css({
28
33
  boxSizing: 'border-box',
29
34
  });
30
35
 
36
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
31
37
  export const optionsWrapperStyles = css({
32
38
  display: 'flex',
39
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
33
40
  '> *': {
34
41
  flex: 1,
35
42
  margin: token('space.100', '8px'),
36
43
  },
37
44
  });
38
45
 
46
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
39
47
  export const cardDimensionsWrapperStyles = css({
40
48
  margin: `${token('space.100', '8px')} ${token('space.100', '8px')} ${token(
41
49
  'space.250',
42
50
  '20px',
43
51
  )} ${token('space.100', '8px')}`,
44
52
  display: 'flex',
53
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
45
54
  '> div': {
46
55
  border: `1px solid ${token('color.border.bold', 'black')}`,
47
56
  margin: token('space.075', '6px'),
@@ -50,13 +59,16 @@ export const cardDimensionsWrapperStyles = css({
50
59
  },
51
60
  });
52
61
 
62
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
53
63
  export const flexWrapperStyles = css({
54
64
  display: 'flex',
55
65
  });
66
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
56
67
  export const cardPreviewWrapperStyles = css({
57
68
  flex: 1,
58
69
  });
59
70
 
71
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
60
72
  export const cardWrapperStyles = css({
61
73
  border: `1px solid ${token('color.border.bold', 'black')}`,
62
74
  padding: token('space.150', '12px'),
@@ -68,45 +80,55 @@ export const cardWrapperStyles = css({
68
80
  display: 'inline-block',
69
81
  });
70
82
 
83
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
71
84
  export const cardFlowHeaderStyles = css({
72
85
  margin: `${token('space.250', '20px')} auto`,
73
86
  padding: `${token('space.150', '12px')} ${token('space.0', '0px')}`,
74
87
  });
75
88
 
89
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
76
90
  export const externalIdentifierWrapperStyles = css({
77
91
  display: 'flex',
78
92
  justifyContent: 'space-around',
79
93
  margin: `${token('space.0', '0px')} auto`,
94
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
80
95
  h2: {
81
96
  marginBottom: token('space.150', '12px'),
82
97
  },
83
98
  });
84
99
 
100
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
85
101
  export const unhandledErrorCardWrapperStyles = css({
86
102
  padding: token('space.250', '20px'),
103
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
87
104
  '> div:first-child': {
88
105
  display: 'flex',
89
106
  marginBottom: token('space.250', '20px'),
90
107
  },
108
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
91
109
  label: {
92
110
  marginRight: token('space.250', '20px'),
93
111
  },
94
112
  });
95
113
 
114
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
96
115
  export const inlineCardVideoWrapperItemStyles = css({
97
116
  padding: token('space.150', '12px'),
98
117
  border: `1px solid ${token('color.border.bold', 'black')}`,
99
118
  margin: token('space.150', '12px'),
100
119
  });
101
120
 
121
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
102
122
  export const mediaViewerExampleColumnStyles = css({
103
123
  flex: 1,
104
124
  });
105
125
 
126
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
106
127
  export const mediaViewerExampleWrapperStyles = css({
107
128
  display: 'flex',
108
129
  });
109
130
 
131
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
110
132
  export const mediaInlineWrapperStyles = css({
111
133
  display: 'flex',
112
134
  alignItems: 'center',
@@ -114,8 +136,10 @@ export const mediaInlineWrapperStyles = css({
114
136
  margin: token('space.1000', '80px'),
115
137
  });
116
138
 
139
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
117
140
  export const mediaInlineTableStyles = css({
118
141
  width: '800px',
142
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
119
143
  'tr, td': {
120
144
  border: `1px solid ${token('color.border', '#ddd')}`,
121
145
  },
@@ -1,10 +1,13 @@
1
1
  /** @jsx jsx */
2
2
  import React from 'react';
3
3
 
4
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
4
5
  import { jsx } from '@emotion/react';
5
6
 
6
7
  export const CardBox = ({ title, children }: { title: string; children: React.ReactNode }) => (
8
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
7
9
  <div style={{ marginBottom: '10px' }}>
10
+ {/* eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766 */}
8
11
  <h3 style={{ textAlign: 'center' }}>{title}</h3>
9
12
  {children}
10
13
  </div>
@@ -13,9 +16,13 @@ export const CardBox = ({ title, children }: { title: string; children: React.Re
13
16
  export const CardRow = ({ children }: { children: React.ReactNode }) => (
14
17
  <div
15
18
  style={{
19
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
16
20
  display: 'flex',
21
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
17
22
  flexWrap: 'wrap',
23
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
18
24
  gap: '10px',
25
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
19
26
  marginBottom: '10px',
20
27
  }}
21
28
  >
@@ -4,4 +4,4 @@ export { ToggleBox } from './toggle';
4
4
  export { SvgContainer } from './svgContainer';
5
5
  export { useSvgUploader } from './uploader';
6
6
  export { CardBox, CardRow } from './cardContainer';
7
- export { delayApiResponses } from './delayApiResponses';
7
+ export { delayApiResponses, errorApiResponses } from './mediaApiTweaks';
@@ -0,0 +1,64 @@
1
+ import { type MediaApi, RequestError } from '@atlaskit/media-client';
2
+ import { sleep } from '@atlaskit/media-test-helpers';
3
+
4
+ type Endpoints = Partial<Record<keyof MediaApi, number>>;
5
+
6
+ export const delayApiResponses = (
7
+ mediaApi: MediaApi,
8
+ { getImage, getItems, getFileBinary }: Endpoints,
9
+ ) => {
10
+ const baseGetImage = mediaApi.getImage;
11
+ mediaApi.getImage = async (...params) => {
12
+ await sleep(getImage);
13
+ return baseGetImage(...params);
14
+ };
15
+
16
+ const baseGetItems = mediaApi.getItems;
17
+ mediaApi.getItems = async (...params) => {
18
+ await sleep(getItems);
19
+ return baseGetItems(...params);
20
+ };
21
+
22
+ const baseGetFileBinary = mediaApi.getFileBinary;
23
+ mediaApi.getFileBinary = async (...params) => {
24
+ await sleep(getFileBinary);
25
+ return baseGetFileBinary(...params);
26
+ };
27
+ };
28
+
29
+ export const errorApiResponses = {
30
+ getFileBinary: (mediaApi: MediaApi, error?: Error) => {
31
+ mediaApi.getFileBinary = async () => {
32
+ throw (
33
+ error ||
34
+ new RequestError('serverForbidden', {
35
+ method: 'GET',
36
+ endpoint: '/file/:id/inary',
37
+ mediaRegion: 'adev',
38
+ mediaEnv: 'adev',
39
+ traceContext: { traceId: 'some-traceId', spanId: 'some-spanId' },
40
+ attempts: 10,
41
+ clientExhaustedRetries: true,
42
+ statusCode: 430,
43
+ })
44
+ );
45
+ };
46
+ },
47
+ getFileImage: (mediaApi: MediaApi, error?: Error) => {
48
+ mediaApi.getImage = async () => {
49
+ throw (
50
+ error ||
51
+ new RequestError('serverForbidden', {
52
+ method: 'GET',
53
+ endpoint: '/file/:id/image',
54
+ mediaRegion: 'adev',
55
+ mediaEnv: 'adev',
56
+ traceContext: { traceId: 'some-traceId', spanId: 'some-spanId' },
57
+ attempts: 10,
58
+ clientExhaustedRetries: true,
59
+ statusCode: 430,
60
+ })
61
+ );
62
+ };
63
+ },
64
+ };
@@ -1,6 +1,7 @@
1
1
  /** @jsx jsx */
2
2
  import React from 'react';
3
3
 
4
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
4
5
  import { jsx } from '@emotion/react';
5
6
 
6
7
  import { Box, xcss } from '@atlaskit/primitives';
package/package.json CHANGED
@@ -1,121 +1,123 @@
1
1
  {
2
- "name": "@atlaskit/media-card",
3
- "version": "77.12.1",
4
- "description": "Includes all media card related components, CardView, CardViewSmall, Card...",
5
- "publishConfig": {
6
- "registry": "https://registry.npmjs.org/"
7
- },
8
- "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
9
- "author": "Atlassian Pty Ltd",
10
- "license": "Apache-2.0",
11
- "main": "dist/cjs/index.js",
12
- "module": "dist/esm/index.js",
13
- "module:es2019": "dist/es2019/index.js",
14
- "types": "dist/types/index.d.ts",
15
- "typesVersions": {
16
- ">=4.5 <4.9": {
17
- "*": [
18
- "dist/types-ts4.5/*",
19
- "dist/types-ts4.5/index.d.ts"
20
- ]
21
- }
22
- },
23
- "sideEffects": false,
24
- "atlaskit:src": "src/index.ts",
25
- "af:exports": {
26
- "./types": "./src/types.ts",
27
- ".": "./src/index.ts",
28
- "./classnames": "./src/classnames.ts"
29
- },
30
- "atlassian": {
31
- "team": "Media Experience",
32
- "inPublicMirror": true,
33
- "releaseModel": "continuous",
34
- "website": {
35
- "name": "Media Card"
36
- }
37
- },
38
- "dependencies": {
39
- "@atlaskit/analytics-next": "^9.3.0",
40
- "@atlaskit/dropdown-menu": "^12.11.0",
41
- "@atlaskit/editor-shared-styles": "^2.12.0",
42
- "@atlaskit/icon": "^22.3.0",
43
- "@atlaskit/media-client": "^27.2.0",
44
- "@atlaskit/media-client-react": "^2.0.0",
45
- "@atlaskit/media-common": "^11.2.0",
46
- "@atlaskit/media-file-preview": "^0.5.0",
47
- "@atlaskit/media-svg": "^0.1.3",
48
- "@atlaskit/media-ui": "^25.10.0",
49
- "@atlaskit/media-viewer": "^48.6.0",
50
- "@atlaskit/platform-feature-flags": "^0.2.2",
51
- "@atlaskit/spinner": "^16.1.0",
52
- "@atlaskit/theme": "^12.9.0",
53
- "@atlaskit/tokens": "^1.49.0",
54
- "@atlaskit/tooltip": "^18.4.0",
55
- "@atlaskit/ufo": "^0.2.0",
56
- "@atlaskit/ufo-interaction-ignore": "^1.1.0",
57
- "@babel/runtime": "^7.0.0",
58
- "classnames": "^2.2.5",
59
- "eventemitter2": "^4.1.0",
60
- "lru_map": "^0.4.1",
61
- "react-loadable": "^5.1.0"
62
- },
63
- "peerDependencies": {
64
- "@emotion/react": "^11.7.1",
65
- "react": "^16.8.0",
66
- "react-dom": "^16.8.0",
67
- "react-intl-next": "npm:react-intl@^5.18.1"
68
- },
69
- "devDependencies": {
70
- "@af/integration-testing": "*",
71
- "@atlaskit/analytics-listeners": "^8.9.0",
72
- "@atlaskit/analytics-namespaced-context": "^6.9.0",
73
- "@atlaskit/form": "^10.2.0",
74
- "@atlaskit/inline-message": "^12.1.0",
75
- "@atlaskit/media-core": "^34.2.0",
76
- "@atlaskit/media-picker": "^66.4.0",
77
- "@atlaskit/media-state": "^1.1.0",
78
- "@atlaskit/media-test-data": "^2.3.0",
79
- "@atlaskit/media-test-helpers": "^33.0.0",
80
- "@atlaskit/primitives": "^7.0.0",
81
- "@atlaskit/range": "^7.2.0",
82
- "@atlaskit/ssr": "*",
83
- "@atlaskit/toggle": "^13.1.0",
84
- "@atlaskit/visual-regression": "*",
85
- "@atlassian/feature-flags-test-utils": "^0.2.0",
86
- "@atlassian/ufo": "^0.2.0",
87
- "@testing-library/dom": "^8.17.1",
88
- "@testing-library/react": "^12.1.5",
89
- "@testing-library/react-hooks": "^8.0.1",
90
- "@testing-library/user-event": "^14.4.3",
91
- "@types/classnames": "^2.2.6",
92
- "@types/react-loadable": "^5.4.1",
93
- "enzyme": "^3.10.0",
94
- "exenv": "^1.2.2",
95
- "react": "^16.8.0",
96
- "react-dom": "^16.8.0",
97
- "react-intl-next": "npm:react-intl@^5.18.1",
98
- "typescript": "~5.4.2",
99
- "uuid": "^3.1.0",
100
- "wait-for-expect": "^1.2.0"
101
- },
102
- "platform-feature-flags": {
103
- "platform.media-experience.cardv2_7zann": {
104
- "type": "boolean"
105
- },
106
- "platform.media-experience.card-views-refactor_b91lr": {
107
- "type": "boolean"
108
- },
109
- "platform.media-card-svg-rendering_6tdbv": {
110
- "type": "boolean"
111
- }
112
- },
113
- "techstack": {
114
- "@repo/internal": {
115
- "design-tokens": [
116
- "color",
117
- "spacing"
118
- ]
119
- }
120
- }
121
- }
2
+ "name": "@atlaskit/media-card",
3
+ "version": "77.12.3",
4
+ "description": "Includes all media card related components, CardView, CardViewSmall, Card...",
5
+ "publishConfig": {
6
+ "registry": "https://registry.npmjs.org/"
7
+ },
8
+ "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
9
+ "author": "Atlassian Pty Ltd",
10
+ "license": "Apache-2.0",
11
+ "main": "dist/cjs/index.js",
12
+ "module": "dist/esm/index.js",
13
+ "module:es2019": "dist/es2019/index.js",
14
+ "types": "dist/types/index.d.ts",
15
+ "typesVersions": {
16
+ ">=4.5 <4.9": {
17
+ "*": [
18
+ "dist/types-ts4.5/*",
19
+ "dist/types-ts4.5/index.d.ts"
20
+ ]
21
+ }
22
+ },
23
+ "sideEffects": false,
24
+ "atlaskit:src": "src/index.ts",
25
+ "af:exports": {
26
+ "./types": "./src/types.ts",
27
+ ".": "./src/index.ts",
28
+ "./classnames": "./src/classnames.ts"
29
+ },
30
+ "atlassian": {
31
+ "team": "Media Experience",
32
+ "inPublicMirror": true,
33
+ "releaseModel": "continuous",
34
+ "website": {
35
+ "name": "Media Card"
36
+ }
37
+ },
38
+ "dependencies": {
39
+ "@atlaskit/analytics-next": "^9.3.0",
40
+ "@atlaskit/dropdown-menu": "^12.13.0",
41
+ "@atlaskit/editor-shared-styles": "^2.12.0",
42
+ "@atlaskit/icon": "^22.4.0",
43
+ "@atlaskit/media-client": "^27.3.0",
44
+ "@atlaskit/media-client-react": "^2.0.0",
45
+ "@atlaskit/media-common": "^11.3.0",
46
+ "@atlaskit/media-file-preview": "^0.5.0",
47
+ "@atlaskit/media-svg": "^0.1.3",
48
+ "@atlaskit/media-ui": "^25.10.0",
49
+ "@atlaskit/media-viewer": "^48.6.0",
50
+ "@atlaskit/platform-feature-flags": "^0.2.2",
51
+ "@atlaskit/primitives": "^8.1.0",
52
+ "@atlaskit/spinner": "^16.2.0",
53
+ "@atlaskit/theme": "^12.11.0",
54
+ "@atlaskit/tokens": "^1.53.0",
55
+ "@atlaskit/tooltip": "^18.5.0",
56
+ "@atlaskit/ufo": "^0.2.0",
57
+ "@atlaskit/ufo-interaction-ignore": "^1.1.0",
58
+ "@atlaskit/visually-hidden": "^1.4.0",
59
+ "@babel/runtime": "^7.0.0",
60
+ "classnames": "^2.2.5",
61
+ "eventemitter2": "^4.1.0",
62
+ "lru_map": "^0.4.1",
63
+ "react-loadable": "^5.1.0"
64
+ },
65
+ "peerDependencies": {
66
+ "@emotion/react": "^11.7.1",
67
+ "react": "^16.8.0",
68
+ "react-dom": "^16.8.0",
69
+ "react-intl-next": "npm:react-intl@^5.18.1"
70
+ },
71
+ "devDependencies": {
72
+ "@af/integration-testing": "*",
73
+ "@atlaskit/analytics-listeners": "^8.10.0",
74
+ "@atlaskit/analytics-namespaced-context": "^6.10.0",
75
+ "@atlaskit/form": "^10.4.0",
76
+ "@atlaskit/inline-message": "^12.2.0",
77
+ "@atlaskit/media-core": "^34.2.0",
78
+ "@atlaskit/media-picker": "^66.4.0",
79
+ "@atlaskit/media-state": "^1.1.0",
80
+ "@atlaskit/media-test-data": "^2.3.0",
81
+ "@atlaskit/media-test-helpers": "^33.0.0",
82
+ "@atlaskit/radio": "^6.4.0",
83
+ "@atlaskit/range": "^7.3.0",
84
+ "@atlaskit/ssr": "*",
85
+ "@atlaskit/toggle": "^13.2.0",
86
+ "@atlaskit/visual-regression": "*",
87
+ "@atlassian/feature-flags-test-utils": "^0.2.0",
88
+ "@atlassian/ufo": "^0.3.0",
89
+ "@testing-library/dom": "^8.17.1",
90
+ "@testing-library/react": "^12.1.5",
91
+ "@testing-library/react-hooks": "^8.0.1",
92
+ "@testing-library/user-event": "^14.4.3",
93
+ "@types/classnames": "^2.2.6",
94
+ "@types/react-loadable": "^5.4.1",
95
+ "enzyme": "^3.10.0",
96
+ "exenv": "^1.2.2",
97
+ "react": "^16.8.0",
98
+ "react-dom": "^16.8.0",
99
+ "react-intl-next": "npm:react-intl@^5.18.1",
100
+ "typescript": "~5.4.2",
101
+ "uuid": "^3.1.0",
102
+ "wait-for-expect": "^1.2.0"
103
+ },
104
+ "platform-feature-flags": {
105
+ "platform.media-experience.cardv2_7zann": {
106
+ "type": "boolean"
107
+ },
108
+ "platform.media-experience.card-views-refactor_b91lr": {
109
+ "type": "boolean"
110
+ },
111
+ "platform.media-card-svg-rendering_6tdbv": {
112
+ "type": "boolean"
113
+ }
114
+ },
115
+ "techstack": {
116
+ "@repo/internal": {
117
+ "design-tokens": [
118
+ "color",
119
+ "spacing"
120
+ ]
121
+ }
122
+ }
123
+ }