@atlaskit/media-card 79.11.4 → 79.13.0
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 +22 -0
- package/dist/cjs/card/card.js +1 -1
- package/dist/cjs/card/externalImageCard.js +17 -12
- package/dist/cjs/card/fileCard.js +34 -12
- package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
- package/dist/cjs/card/ui/tickBox/tickBoxWrapper-compiled.compiled.css +0 -3
- package/dist/cjs/card/ui/tickBox/tickBoxWrapper-compiled.js +1 -3
- package/dist/cjs/card/ui/titleBox/failedTitleBox.js +0 -2
- package/dist/cjs/card/ui/titleBox/titleBoxComponents-compiled.js +1 -3
- package/dist/cjs/inline/loader.js +1 -1
- package/dist/cjs/inline/mediaInlineAnalyticsErrorBoundary.js +0 -2
- package/dist/cjs/utils/globalScope/globalScope.js +2 -1
- package/dist/cjs/utils/mediaPerformanceObserver/durationMetrics.js +1 -0
- package/dist/cjs/utils/ufoExperiences.js +454 -68
- package/dist/es2019/card/card.js +1 -1
- package/dist/es2019/card/externalImageCard.js +16 -13
- package/dist/es2019/card/fileCard.js +33 -13
- package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
- package/dist/es2019/card/ui/tickBox/tickBoxWrapper-compiled.compiled.css +0 -3
- package/dist/es2019/card/ui/tickBox/tickBoxWrapper-compiled.js +1 -3
- package/dist/es2019/card/ui/titleBox/failedTitleBox.js +0 -2
- package/dist/es2019/card/ui/titleBox/titleBoxComponents-compiled.js +1 -3
- package/dist/es2019/inline/loader.js +1 -1
- package/dist/es2019/inline/mediaInlineAnalyticsErrorBoundary.js +0 -2
- package/dist/es2019/utils/globalScope/globalScope.js +1 -0
- package/dist/es2019/utils/mediaPerformanceObserver/durationMetrics.js +1 -0
- package/dist/es2019/utils/ufoExperiences.js +449 -72
- package/dist/esm/card/card.js +1 -1
- package/dist/esm/card/externalImageCard.js +18 -13
- package/dist/esm/card/fileCard.js +35 -13
- package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
- package/dist/esm/card/ui/tickBox/tickBoxWrapper-compiled.compiled.css +0 -3
- package/dist/esm/card/ui/tickBox/tickBoxWrapper-compiled.js +1 -3
- package/dist/esm/card/ui/titleBox/failedTitleBox.js +0 -2
- package/dist/esm/card/ui/titleBox/titleBoxComponents-compiled.js +1 -3
- package/dist/esm/inline/loader.js +1 -1
- package/dist/esm/inline/mediaInlineAnalyticsErrorBoundary.js +0 -2
- package/dist/esm/utils/globalScope/globalScope.js +1 -0
- package/dist/esm/utils/mediaPerformanceObserver/durationMetrics.js +1 -0
- package/dist/esm/utils/ufoExperiences.js +454 -68
- package/dist/types/utils/globalScope/globalScope.d.ts +2 -0
- package/dist/types/utils/mediaPerformanceObserver/durationMetrics.d.ts +1 -0
- package/dist/types/utils/ufoExperiences.d.ts +88 -5
- package/dist/types-ts4.5/utils/globalScope/globalScope.d.ts +2 -0
- package/dist/types-ts4.5/utils/mediaPerformanceObserver/durationMetrics.d.ts +1 -0
- package/dist/types-ts4.5/utils/ufoExperiences.d.ts +88 -5
- package/package.json +9 -9
|
@@ -5,8 +5,10 @@ import { type MediaCardErrorInfo } from '../../utils/analytics';
|
|
|
5
5
|
import { type MediaCardSsr } from './types';
|
|
6
6
|
export declare const GLOBAL_MEDIA_CARD_SSR = "mediaCardSsr";
|
|
7
7
|
export declare const GLOBAL_MEDIA_NAMESPACE = "__MEDIA_INTERNAL";
|
|
8
|
+
export declare const GLOBAL_MEDIA_PERFORMANCE_ENTRIES = "performanceEntries";
|
|
8
9
|
export type MediaGlobalScope = {
|
|
9
10
|
[GLOBAL_MEDIA_CARD_SSR]?: MediaCardSsr;
|
|
11
|
+
[GLOBAL_MEDIA_PERFORMANCE_ENTRIES]?: PerformanceEntry[];
|
|
10
12
|
};
|
|
11
13
|
export declare function getMediaGlobalScope(globalScope?: any): MediaGlobalScope;
|
|
12
14
|
export declare function getMediaCardSSR(globalScope?: any): MediaCardSsr;
|
|
@@ -1,15 +1,98 @@
|
|
|
1
1
|
import { type CardStatus } from '../types';
|
|
2
2
|
import { type FileAttributes } from '@atlaskit/media-common';
|
|
3
|
-
import { type SSRStatus } from './analytics';
|
|
3
|
+
import { type MediaCardErrorInfo, type SSRStatus } from './analytics';
|
|
4
4
|
import { MediaCardError } from '../errors';
|
|
5
|
+
import { type RequestMetadata } from '@atlaskit/media-client';
|
|
5
6
|
import { type FileStateFlags } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Determines if performance events should be sampled for this instance.
|
|
9
|
+
* Approximately 5% of instances will be sampled.
|
|
10
|
+
*/
|
|
11
|
+
export declare const shouldPerformanceBeSampled: () => boolean;
|
|
12
|
+
export type SSRPreviewInfo = {
|
|
13
|
+
/** The srcset of the SSR preview (used to match performance entries) */
|
|
14
|
+
srcset?: string;
|
|
15
|
+
/** The full URI of the SSR preview (used to match performance entries) */
|
|
16
|
+
dataUri?: string;
|
|
17
|
+
/** Whether SSR was attempted (ssr prop was provided) */
|
|
18
|
+
wasSSRAttempted: boolean;
|
|
19
|
+
/** Whether SSR was successful (server or client status is 'success') */
|
|
20
|
+
wasSSRSuccessful: boolean;
|
|
21
|
+
};
|
|
6
22
|
type SucceedUfoPayload = {
|
|
7
23
|
fileAttributes: FileAttributes;
|
|
8
24
|
ssrReliability: SSRStatus;
|
|
9
25
|
fileStateFlags: FileStateFlags;
|
|
10
26
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
27
|
+
type FailedProcessingPayload = {
|
|
28
|
+
fileAttributes: FileAttributes;
|
|
29
|
+
ssrReliability: SSRStatus;
|
|
30
|
+
failReason: 'failed-processing';
|
|
31
|
+
fileStateFlags: FileStateFlags;
|
|
32
|
+
};
|
|
33
|
+
type ErrorUfoPayload = {
|
|
34
|
+
fileAttributes: FileAttributes;
|
|
35
|
+
ssrReliability: SSRStatus;
|
|
36
|
+
request: RequestMetadata | undefined;
|
|
37
|
+
fileStateFlags: FileStateFlags;
|
|
38
|
+
} & MediaCardErrorInfo;
|
|
39
|
+
export interface UseMediaCardUfoExperienceOptions {
|
|
40
|
+
/** Unique identifier for this experience instance */
|
|
41
|
+
instanceId: string;
|
|
42
|
+
/** Whether to enable UFO tracking for this instance */
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface StartOptions {
|
|
46
|
+
/**
|
|
47
|
+
* When true, uses the UFO interaction start time instead of current time.
|
|
48
|
+
* Use this for SSR non-lazy scenarios where the image loading started at interaction start.
|
|
49
|
+
*/
|
|
50
|
+
useInteractionTime?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface MediaCardUfoExperience {
|
|
53
|
+
/**
|
|
54
|
+
* Start the UFO experience. Call when card becomes visible.
|
|
55
|
+
* @param options - Optional configuration for start behavior
|
|
56
|
+
*/
|
|
57
|
+
start: (options?: StartOptions) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Complete the UFO experience with appropriate timing strategy.
|
|
60
|
+
* @param status - The final card status
|
|
61
|
+
* @param fileAttributes - File metadata
|
|
62
|
+
* @param fileStateFlags - File state flags
|
|
63
|
+
* @param ssrReliability - SSR reliability status
|
|
64
|
+
* @param error - Optional error for error status
|
|
65
|
+
* @param ssrPreviewInfo - SSR preview information for timing lookup
|
|
66
|
+
*/
|
|
67
|
+
complete: (status: CardStatus, fileAttributes: FileAttributes, fileStateFlags: FileStateFlags, ssrReliability: SSRStatus, error?: MediaCardError, ssrPreviewInfo?: SSRPreviewInfo) => void;
|
|
68
|
+
/** Abort the UFO experience. Call on unmount if not completed. */
|
|
69
|
+
abort: (properties?: Partial<SucceedUfoPayload>) => void;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Hook to create a UFO experience tied to a media card component lifecycle.
|
|
73
|
+
*
|
|
74
|
+
* This creates a unique UFOExperience instance per component, allowing:
|
|
75
|
+
* - Unique timing config per instance
|
|
76
|
+
* - Direct control over experience lifecycle
|
|
77
|
+
* - Proper cleanup on unmount
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```tsx
|
|
81
|
+
* const ufoExperience = useMediaCardUfoExperience({
|
|
82
|
+
* instanceId: internalOccurrenceKey,
|
|
83
|
+
* enabled: shouldSendPerformanceEvent,
|
|
84
|
+
* });
|
|
85
|
+
*
|
|
86
|
+
* // On card visible
|
|
87
|
+
* ufoExperience.start();
|
|
88
|
+
*
|
|
89
|
+
* // On card complete/error
|
|
90
|
+
* ufoExperience.complete(status, fileAttributes, fileStateFlags, ssrReliability, error, ssrPreviewInfo);
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare const useMediaCardUfoExperience: ({ instanceId, enabled, }: UseMediaCardUfoExperienceOptions) => MediaCardUfoExperience;
|
|
94
|
+
export declare const startUfoExperience: (id: string, startTime?: number) => void;
|
|
95
|
+
export declare const completeUfoExperience: (id: string, status: CardStatus, fileAttributes: FileAttributes, fileStateFlags: FileStateFlags, ssrReliability: SSRStatus, error?: MediaCardError, ssrPreviewInfo?: SSRPreviewInfo) => void;
|
|
14
96
|
export declare const abortUfoExperience: (id: string, properties?: Partial<SucceedUfoPayload>) => void;
|
|
15
|
-
export {};
|
|
97
|
+
export type { FailedProcessingPayload as _FailedProcessingPayload };
|
|
98
|
+
export type { ErrorUfoPayload as _ErrorUfoPayload };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-card",
|
|
3
|
-
"version": "79.
|
|
3
|
+
"version": "79.13.0",
|
|
4
4
|
"description": "Includes all media card related components, CardView, CardViewSmall, Card...",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -32,24 +32,24 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@atlaskit/analytics-next": "^11.1.0",
|
|
35
|
-
"@atlaskit/dropdown-menu": "^16.
|
|
35
|
+
"@atlaskit/dropdown-menu": "^16.4.0",
|
|
36
36
|
"@atlaskit/editor-shared-styles": "^3.10.0",
|
|
37
|
-
"@atlaskit/icon": "^29.
|
|
38
|
-
"@atlaskit/link": "^3.
|
|
37
|
+
"@atlaskit/icon": "^29.4.0",
|
|
38
|
+
"@atlaskit/link": "^3.3.0",
|
|
39
39
|
"@atlaskit/media-client": "^35.7.0",
|
|
40
40
|
"@atlaskit/media-client-react": "^4.1.0",
|
|
41
41
|
"@atlaskit/media-common": "^12.3.0",
|
|
42
42
|
"@atlaskit/media-file-preview": "^0.15.0",
|
|
43
43
|
"@atlaskit/media-svg": "^2.1.0",
|
|
44
44
|
"@atlaskit/media-ui": "^28.7.0",
|
|
45
|
-
"@atlaskit/media-viewer": "^52.
|
|
45
|
+
"@atlaskit/media-viewer": "^52.6.0",
|
|
46
46
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
47
47
|
"@atlaskit/primitives": "^17.0.0",
|
|
48
48
|
"@atlaskit/react-ufo": "^4.16.0",
|
|
49
49
|
"@atlaskit/spinner": "^19.0.0",
|
|
50
50
|
"@atlaskit/theme": "^21.0.0",
|
|
51
|
-
"@atlaskit/tokens": "^9.
|
|
52
|
-
"@atlaskit/tooltip": "^20.
|
|
51
|
+
"@atlaskit/tokens": "^9.1.0",
|
|
52
|
+
"@atlaskit/tooltip": "^20.12.0",
|
|
53
53
|
"@atlaskit/ufo": "^0.4.0",
|
|
54
54
|
"@atlaskit/visually-hidden": "^3.0.0",
|
|
55
55
|
"@babel/runtime": "^7.0.0",
|
|
@@ -71,14 +71,14 @@
|
|
|
71
71
|
"@af/integration-testing": "workspace:^",
|
|
72
72
|
"@atlaskit/analytics-listeners": "^9.2.0",
|
|
73
73
|
"@atlaskit/analytics-namespaced-context": "^7.2.0",
|
|
74
|
-
"@atlaskit/form": "^15.
|
|
74
|
+
"@atlaskit/form": "^15.3.0",
|
|
75
75
|
"@atlaskit/inline-message": "^15.5.0",
|
|
76
76
|
"@atlaskit/media-core": "^37.0.0",
|
|
77
77
|
"@atlaskit/media-picker": "^70.1.0",
|
|
78
78
|
"@atlaskit/media-state": "^1.8.0",
|
|
79
79
|
"@atlaskit/media-test-data": "^3.2.0",
|
|
80
80
|
"@atlaskit/media-test-helpers": "^39.0.0",
|
|
81
|
-
"@atlaskit/radio": "^8.
|
|
81
|
+
"@atlaskit/radio": "^8.4.0",
|
|
82
82
|
"@atlaskit/range": "^9.3.0",
|
|
83
83
|
"@atlaskit/ssr": "workspace:^",
|
|
84
84
|
"@atlaskit/toggle": "^15.2.0",
|